Monthly Archive for April, 2008

wp update

I updated to the newest wordpress. There’s a lot to like about it. A huge step forward. The K2 theme isn’t compatible yet, so I’ve switched back to the default theme till it is.

Travel plans

I’m heading off on a trip soon. I’ve finally bought tickets.

I’m going to Hong Kong, London, Paris and Tokyo. I was going to go to New York as well, but I don’t have enough money. I leave in about 2 weeks. So much to organize.. Eek..

I might even have some things to blog about while on the road.

Oh yeah, in related news. My current internship ends around the same time, they offered me a full time job as a junior programmer. Mostly C++ in a unix enviroment. I’m squeezing this trip in before I start. Yay!

Frank said to wear it crooked.

I went to a 1930’s cocktail party last night. Got this hat for it. ’twas swell.

Audiosurf the MMOG

Audiosurf is an amazing game for music lovers.. There’s an upcoming patch in beta, which adds Last.fm scrobbling support, which I dreamed of from the start.

This will make Audiosurf an MMOG. It enables a persistent record of the players path in the game. It does lack the scores next to the play counts however. For me though each play through a song is an achievement in it’s own right. To track that journey is something I crave. Perhaps that’s what makes things like last.fm and twitter so popular anyway, in a way they are social games, to be able to share and display progress is a requirement.

There really is a convergence between social networking sites and gaming like mechanics. This new patch is really a leveraging of emerging experiences that enhances the user experience of both, all through the power of web 2.0. How’s that for some buzzwords?

Lets say last.fm is a game and our profile is our character. I find it interesting that initially when playing audiosurf it I felt like I wasn’t able to ‘improve’ my last.fm character. This is the same experience I have when I use my mp3 player (which doesn’t track my song play count), which frustratingly is most of my music time these days.

C++ concept maps

I was going over some of the additions coming to the C++ standard. There’s an interesting thing in there about templates. They’ll be adding a feature where when defining a template class you require that the passed in class adhere to certain ‘concepts’.

concept will be a new key word. A concept will basically specify what kinds of methods the class will need.

The interesting thing to me is they used the word concept. They were obviously directly influenced by the relatively new mathematical theory of “concept lattices” which is derived from lattice and set theory.

In that theory, a concept is defined by an attributes set and the elements it applies to. There is also a ‘context’ which essentially the biggest possible concept. A common example is the context being all the planets in the solar system and some list of properties about the planets. A concept from this context could be, ‘all the planets with moons’. Really to reference a concept you only need the attributes and it’s context, as the elements will be easily derived. I might be fudging this a bit, it’s been awhile.

In this case, the elements will be all the defined classes. The attributes will be members of all these classes. Mathematically a concept is a subset of a context. The interesting things about concepts defined this way is they form a lattice. They are inherently ordered. Most importantly though, they form a complete lattice. That is, all subsets (of the concept lattice) are closed under join and meet, or in this case all abitrary union and intersections of concepts yield a new concept (including infinite ones if that is a possibility in the context, not that this would happen in compsci).

This means that no matter how many weird concepts you have, you can require or exclude them and the resultant set of matching classes is easily determined. This may seem obvious I guess. What impressed me though is that the people coming up with this chose to implement it directly using concrete pure mathematics.

This probably the best example to me of why I like C++.

Complete lattices also have very useful properties. I’d be interested to know if any of them could be used for compiler optimisations when matching a class to a template.

[edit: Damn Wordpress thinks my C++ tag is a C# tag. so I have to use C plus plus]

Greenhouse

PA has just announced Greenhouse. This is very positive news. I’ve always wondered why steam doesn’t have more indie games. Considering the success of Audiosurf people are certainly willing to buy them.

One problem with steam is it has some really really bad games available there, browsing is a hassle and thus browsing comes up with lots of crappy games. Greenhouse looks like it’ll have high standards.

As far as I’m concerned the more competition for digital distribution the better. It’ll force innovation.