January 2009 Archives

January 31, 2009

Cambridge Openmoko

Yesterday was the second Cambridge Openmoko users' group meeting. It was fun. It's good to meet new people - that doesn't seem to happen to me very often at the moment. The atmosphere was a lot more positive that it was at the first meeting, which I think bodes well for Openmoko as a whole.

Now it's time for a lengthy weekend geek-out with Glamo-DRI. It was very encouraging to have someone popping up on the OM-Devel mailing list having solved almost all of the current problems with 2D acceleration...!

January 29, 2009

Beyond Fear

I'm reading "Beyond Fear" by Bruce Schneier.  There's a paragraph right at the end of Chapter 3 which affected me quite a lot.  It's something a lot of people have been trying to tell me for a long time but I didn't listen.  It's about security, but I think it's relevant to a lot of other situations.  Perhaps I just needed to have it said to me in these terms by someone I look up to as much as I do to Schneier:

"It's pointless to hope that a wave of selfless, nonsubjective security sensibilities will suddenly sweep across society.  The agendas of, and the power relationships between, players are an inevitable part of the process; to think otherwise is to delude yourself.  Security will always be a balancing game between various players and their agendas, so if you want a level of security that matches your agenda and your ideas of risk management, you're going to have to approach it as a social problem.  Don't underestimate, or gloss over, the differences among players."

January 27, 2009

A Proper Entry

Right then.  Time for a proper post, I guess.

Welcome to the WizBlog.  Here you can follow my adventures as I eventually manage to leave Cambridge after my PhD and move on to new and exciting things.  Also: read about the progress of my work on 3D acceleration for the SMedia Glamo chip used in the Openmoko Neo FreeRunner phone, follow the development of Thrust3D, a silly game programming project I started last Easter, and learn about OpenMooCow, my even sillier moobox simulator for accelerometer-enabled devices.  And much more besides...

Why did I decide to use a blog?   Well, I absolutely hate doing web design.  Abnormal for your average geek, perhaps, but over a period of a few years I slowly developed a dislike of doing almost all user-interface things: faffing around with getting everything the right size, making it fit right, making sure the right things get enabled or disabled at the appropriate times.  And at the end of all that, you find you have to completely re-design it to play down to MSIE (fortunately this seems to be getting a lot better in many ways).  So, the blog lets me concentrate on the content while still having it neatly cross-referenced and (hopefully!) easy to find.

I'll try to put things in a bit of context.

Regarding my work and its potential adventures:  I'm currently a PhD student in the Electron Microscopy Group of the Department of Materials Science and Metallurgy in the University of Cambridge.  Right now, I'm approaching the end of writing up my thesis and searching for possible jobs.  In a couple of weeks, I'll be visiting this place to talk about possible post-doc options.  The work they do there, and the places it could lead in the future, are pretty incredible.  It'll be fantastic even just to visit, and to work there would be simply amazing.

In my spare time, I'm an open-source type of programming geek.  Amongst other things, I volunteered to help with 3D acceleration for the Glamo chip a few months ago.  At the time, it looked like there were lots of very keen people, but it appears to be just me and a couple of other people.  Perhaps people were scared off by the need to sign an NDA.  I know many people in the open-source world have objections to this on principle, but no-one vocalised any such thing at the time.  Maybe they were put off by the difficulty of the task.  It certainly seems true that writing graphics drivers is one of the most difficult things anyone can volunteer to do in this field: You have to handle kernel code, memory management, all the subtleties of the hardware and hook it all into a complicated program which there is little internal documentation about.  For the Linux kernel there are many books which gently teach you about the internals of the code and how to go about working on it, but for X.org there appears to be almost nothing.  Fortunately, the inhabitants of #dri-devel on Freenode appear to be very friendly and willing to put up with our basic questions at this early stage.

Well, I was looking for a bit of a challenge.

Not so long ago I wrote OpenMooCow, mostly for a bit of a laugh.  It's a little program which plays a "moo" audio sample in response to activity from accelerometers, trying to be like one of the moobox things you might have played with.  It became quite popular, and I even had patches sent in to make it work with an IBM ThinkPad's accelerometers as well as the FreeRunner for which it was originally concieved.  I haven't done much with it for a little while because, well, there's only so far you can go with a picture of a cartoon cow and four seconds of audio.

Finally, I'm going to mention Thrust3D.  This is a game I started because I wanted to play with the more advanced capabilities of OpenGL, somewhat bored with the limited use I had for it during my PhD work (visualising dots and lines in 3D) while being fascinated by what was possible. In Thrust3D (which perhaps needs a better name), you pilot a little decontamination vehicle around a post-apocalyptic nuclear power station which has undergone a meltdown.  If you played a game called "Lander" on RISC OS many years ago, you'll recognise this idea (not the demo version of Zarch which came with the computer, I'm talking about a 2D game quite similar to Jet Set Willy).  I wanted to recreate a feeling of exploration around a seemingly endless world, full of things to spark the imagination.

Now, the basic game engine is almost completely functional.  The problem is, I've realised I can't draw.  Well, I always knew I couldn't, but I can't draw in 3D either.  So, if you can, and want to contribute to this, I'm waiting to hear from you...

So, there it is.  Come for the geekery, stay for the science, and try to tolerate my occasional whinging or waffling on other subjects.  Let's see where it goes... 

January 26, 2009

Git Server

You might be interested in my public Git server. There you will find source code on all my exciting software projects, including OpenMooCow (the scarily popular moobox simulator), my Openmoko bits which constitute the beginnings of hardware-accelerated 3D rendering with Glamo, and Thrust3D, my silly 3D version of Jet Set Willy in a post-apocalyptic scenario.