August 26, 2011

BlueSG on Sourceforge

Victor asked if I would share the code to BlueSG. So I did. You can now find it on sourceforge, BSD licensed as usual.

There is next to no documentation, but there are several examples in the sandbox packages to get an idea of how to use it. If you do use it, please let me know so I can brag about it. ;-) And if you've got some improvements you're willing to share, I'd be very interested.

Have fun!

August 25, 2011

Visual Complexity

Visual Complexity has a nice collection of visualisation of software-related topics. This includes one of my favourites: the Linux Kernel Graphing Project by Rusty Russel.

This is kind of the inverse of what I showed with X-Ray so far. It's basically all static info, including some extra developer knowledge (to define the rings). You don't see any of the dynamics. But it is still a compelling picture.

August 24, 2011

Make Install: Tethical

So the Make Install category continues with, yes, another Final Fantasy game remake. This time it's Tethical which tries to create a Final Fantasy Tactics clone, but with multiplayer goodness.

I checked out the code briefly (Yay for Python!), and it's actually surprisingly easy to get something like this going.

PS. If you're into Let's Plays I can also recommend the Final Fantasy Tactics co-op by GetDaved and Snapwave.

August 20, 2011

X-Ray: Firefox loading Ars Technica

(Still looking for a good name for this project...; X-Ray will have to do for now. I'm open to suggestions though.)

Take 2 of my software visualisation experment. (See here for take 1.) This time I managed to get some static info into the picture as well: the module in which the called method resides. I therefore decided to switch the visualisation to a treemap. Each rectangle represents one module, and is assigned one colour/hue. Sizes are relative to the number of methods which were used in that module.

The colour's saturation is a reflection of the number of times that method was called. So the less washed out a colour looks the more that method has been used.

I also experimented with plotting method exits but threw it out in the end for two reasons. One is that I couldn't get reliable data on all exits (about 10% went missing). The second is that it didn't make any notable difference to the visualisation anyway.

August 19, 2011


More amazing videos (Team Fortress and Minecraft live action!), including making-of's, on their YouTube channel.

August 13, 2011

Thirty seconds of Ars Technica

I've been working on a little experiment the last few evenings and I wanted to share the result with you guys. Here it is:

What you see here is 30 seconds of me browsing Ars Technica on Firefox. Doesn't look familiar ? That's probably because this is a behind-the-scenes video.

Every square represents one method/function/procedure being called by Firefox while browsing the web. When you see it light up you've just witnessed a call. The brightness will then fade, unless it gets called again. In addition the colour gives an indication of the overall number of times the method was called. It starts out reddish, moves past green and blue and ends up at pink (the colours are what they are; I didn't really choose them, or I would not have gone with pink ;).

When you see this through to the end, this is what you get:

This time brightness is an indicator of the overall number of times the method was called. As you can see there are slightly over 3300 methods which were used, and close to one million calls in the thirty seconds timeframe. And as you can tell from the amount of red and relative darkness, most of those didn't have much to contribute (*).

Why go through all this trouble ? Well, I've been wondering how to visualize the static and dynamic structure of software, so that people can get some idea of the complexity behind the tools they use. The above was a very basic look at some of the dynamics while browsing the web. It looks cool (to me :), and you get to see some nice patterns if you slow it down somewhat more than you see in the video. But I think that with some extra presentation of the static structure this could be improved quite a bit.

That, however, is for another day.

(*) This isn't necessarily true. I'm only lighting up the entry of a method, not the exit. It is quite possible that a lot of the lesser used methods were running quite a bit longer than the others. That's another thing I'd like to see handled somehow in the visualisation.

August 09, 2011

Make install: Q-Gears

Here is one of the craziest remake projects I have seen: the Q-Gears Final Fantasy Engine. Yup, this guy is creating his own Final Fantasy VII engine. This includes reverse-engineering the data-formats (for the models, backgrounds, scripts,...) so that it can run the game as defined on the original discs.

There is a sourceforge project page which seems somewhat unmaintained. But you can also check the developer's journal for more up to date info and screenshots. Finally, if you really want to get into this you can also check the forums.

August 07, 2011

"Knowledge is silver. Outlook is gold. IQ is a lead weight."

Great talk here by one of the pioneers of computer science, Alan Kay. If you're involved in building software in any way I really suggest you watch it. There are a few minor tangents, and a lot of food for thought.

August 02, 2011

ThunderCats are on the move

But why did they have to turn Lion-O into this juvenile ?

Check out the original trailer for comparison (sorry, no embedding allowed). At least he had some manes back then. You could feel the roar. The new one probably does little more than purr.

Well, maybe the story will be better this time. Though the battle scenes in the trailer are straight copies from the Lord of the Rings movies...

August 01, 2011

Stephen Fry on Free Software

Have a look at the following endorsement by Stephen Fry for GNU/Linux software.

Now, I'm a fan of Stephen Fry; he's one of the most interesting people walking the earth at this moment. But there is something about the message in this video which bothers me: science is open and free and so software should also be.

First of, people assume science is open and free, when it is not; at least not entirely. IEEE, ACM, all the big journals in computer science don't offer published papers for free. If you want to access this supposedly free knowledge you'll have to pay. Knowledge comes at a price, it seems. Now there are some authors which help out the issue somewhat by publishing drafts of their papers on their website. This, however, is entirely the author's choice. You either get lucky or you don't (and mostly you don't).

Second, software isn't science, nor is it knowledge. Software is a product. When someone builds a product it should be their choice whether or not they charge money for their work. Why is it ok for a contractor to charge for building a house, but not for Apple to charge for building Mac OS X ? (*) That's not to say that I feel that Apple can start telling us what to do with our own copies of Mac OS X (**), same as a contractor can't tell us what to do with our own house.

Some of my software I have given away for free, other software is what I make a living with. I think the same is true for most developers (***), and I don't see anything wrong with that. And, given his love for Apple products, I don't think that Stephen Fry does either.

Now the science behind software should be open and free, and it isn't. And that is what I feel more of us should really care about.

(*) Be glad Apple isn't charging us the full cost of building Mac OS X. Most people won't make enough money in their life to cover that.

(**) This is why I have a love/hate relationship with iPods/iPhones/iPads, and why I have switched to an Android smartphone.

(***) Then there are the lucky ones who get to build free and open software and get paid while doing so. I don't see that working for all software though...