Marcus' Homepage

Work in Progress July 2015

June was an exhausting month for me, both at work and for myself personally. Usually things slow down during the summer, but this year was pretty much the opposite. This meant that I didn’t get as much work done on my own projects as I had planned, and it’s the reason why I didn’t write a WIP article last month.

I did however manage to release a new app, Bother. It’s an app I made to help myself take notes on what I’ve been working on, since I tend to jump between projects frequently. It was originally meant to be a more complete time tracking application, but I figured that there already were better alternatives for that available, so I aimed to make something simpler instead.

I also released a new update to FuzzyTime, with a few new languages and a new feature that allows you do display calendar events in your menubar. I think it’s pretty neat, but I have to optimize it a bit more to decrease CPU usage.

A lot of people have submitted more translations for FuzzyTime that I will add soon™ as well.

Dota 2 Goldrush

Usually when I just can’t bring myself to write any code, I play some video games instead. A game I’ve been playing a lot lately is Dota 2, so a few weeks ago I decided to finally learn how to make custom maps for it (yay, more code). I’ve always wanted to make a port of Howling Abyss, one of the game modes in League of Legends that I actually like.

The map I created is called Goldrush, named as a homage to the map with the same name in Team Fortress 2, and because I am using the mine assets that were available.

Goldrush is very similar to regular Dota, but instead of having three lanes and space between them, there’s only one. Everyone starts at level 3 with a random hero, and gets more gold and regeneration that normally. This makes Goldrush much faster and intense than normal games, since it forces team fights. A game takes 10-20 minutes instead of the 40-60 minutes a regular Dota game requires.

A release with great timing

Shortly after I released Goldrush to the public, Valve released the first beta of their new Dota 2 client called Reborn. The new client was rebuilt in Source 2, has a new user interface and is the first version that makes it easy for everyone to try out custom games.

This, combined with how recent my release was, made the map very popular. The first week it even made it to the top 3 most played maps, which was a lot of fun! I got a lot of great feedback and managed to make a lot of quick changes to make the map even better.

This is a screenshot of the custom game screen in Dota 2 Reborn Beta on June 22, when Goldrush had 14 763 subscriptions. Today there are over 20 000.

I definitely want to keep making custom games, it was a very fun experience. For now I have some ideas on how to make Goldrush better, but I would also like to make something even more customized.

Hypernap 2 progress

I’ve also worked a bit more on Hypernap 2, and even though it’s still very early in development I think I can announce some of the new feat­ures I’m working on. Needless to say, being this early means it’s all subject to change, especially the interface.

Nested groups

Yes. As I rewrote the sidebar, I made sure to enable so you can have groups within groups. Amazing. Revolutionary.

New editor and new themes

Today I’m using the ACEView component that’s available on CocoaPods. It has worked great so far, and I can recommend it if you’re writing an application where you just want a simple code editor. I wanted a little bit more in Hypernap 2, so I decided to change the editor to one powered by the CodeMirror project.

A bonus with this is that there will be more themes available, and it will be easier to create new ones. And speaking of themes, in Hypernap 2 the themes will not only be applied to the editor, but the whole interface. The window chrome will also change appearance depending on if the theme is light or dark.

Using responses in other connections

I think this addition will be the most useful for a lot of people. I’m currently calling it “chained connections”, but I’m trying to figure out a better name. It will allow you to set a connection that will be loaded before, so you can use its response as variables.

As long as the response is valid JSON or XML, you’ll be able to use a keypath as a variable in any field in your connection:

You will also be able to use variables from groups (like a base URL), or even chain multiple connections (useful for authentication that requires several steps).

That’s all for today

I guess the best way to summarize this post is to say: I’m not dead, I’m just very tired. 😝