Archive for October, 2006

Mood swings

Monday, October 30th, 2006

Depressed this morning, manic this afternoon, hypermanic this evening and I’ve crashed again now. Starting to wonder if I’ve got the fashionable disease of the moment… :)

(Context: I’ve been up and down like a yo-yo this past fortnight)

DirectX vs OpenGL

Sunday, October 29th, 2006

I’ve just been flipping through the comments on a story on OSNews about DirectX 10. Lots of the comments were postulating conspiracy theories about why games programmers use DirectX and not OpenGL.

I’ve used both APIs and let me tell you OpenGL just doesn’t compare to DirectX. The actually 3D API of both is pretty much on a par modulo object vs state-based models. Where DirectX wins is a) there is more than just 3D in the API even if Direct{Input,Sound,Show} and friends are pretty awful and b) far more importantly there is a bushel of useful utility functions.

To take a trivial example, DirectX has utilities to save any texture or rendering surface in its own DDS file format. DDS can save in formats that no other standard format can, e.g. S3-style texture compression, multiple MIP levels, floating-point buffer formats, etc.

It wouldn’t be rocket science to make a little library to save/load OpenGL textures from DDS files but there just isn’t an easily available one. Direct3D has loads of useful utilities like this which makes the life of someone on a short turnaround timescale just that bit more convenient.

The final thing about Direct3D which makes it useful is the flip side of one explicit design goal of OpenGL. Direct3D cases and, to an extent, leads the hardware making the successive incompatable versions of the API follow a similar model to the hardware of the day. Hence we’re on DirectX 9. OpenGL still appears tied to SGI two-decade old architecture. Hence we’re on OpenGL 2[1].

What can be done to fix this? Make a simple utility library to save/load textures would be good for one. Also a rapidly updated OO API on top of OpenGL that codifies all the myriad OpenGL frameworks within a single abstraction layer would be another. Just banging on about how Open{GL,AL} + SDL is a valid solution isn’t.

[1] Playing version number penis size is dangerous but in this case it does illustrate a valid point.

(Comprehensive) Linux Developer Network

Sunday, October 29th, 2006

Recently I’ve been looking around at the Linux Developer Network. For those who aren’t aware of the project it is, partly, an attempt to create a resource similar to the Microsoft Developer Network. It is in no way even slightly comparable given the way I use MSDN.

I’m going to assume I’m a fairly typical programmer and, when coding for Win32, use MSDN in a typical way. That way is usually to type “<functionality I require> msdn” into Google and make use of the vast swathes of API documentation and API HOWTOs available there. In my selfish view a really useful resource would have the following properties.

  • Be a single point of contact for links to, or mirrors of, the best documentation for FOSS libraries and applications.
  • Crucially, be useful for the working programmer/sysadmin. We’re not pushing politics here, we just want to drill down to docs that are available. Ideally there should be a menu down the left hand side which lets you get at the goods quickly.
  • Have bucket loads of API documentation all available in an AJAX-y goodness tree list and no more than two or three clicks from the front page. This surely can’t be too difficult in that many existing projects have good-quality, machine-readable, documentation available under a free license.
  • Related to this it should be accessable with a plain ol’ HTML tree list for lesser browsers and, most importantly, so it can be crawled by search bots! It should be bookmarkable and one should be able to middle-click hyperlinks to queue up a load of tabs for easy switching. Basically all the things wrong with AJAX-y goodness should be fixed.
  • Be categorised by subject, project and documentation type. This means that under a hypothetical ‘Networking/Samba’ node there would be nodes like ‘Books’, ‘Reference’, ‘Tutorials’, etc which are either mirrors of or links to documentation cherry picked.
  • Make said selection and cherry picking all Web 2.0 friendly. By this I mean have some sort of emergent system whereby all users can submit and categorise documentation, rate it and have the cream rise to the top. Obviously there are lots of subtleties to do with this but the principle appears to work for things like Digg. Oh, and it should have gradients and rounded borders.
  • Have a fairly unique abbreviation to make a Google search work the way I want. “LDN” is not terribly unique. Naming a project is really hard but generally it should be easier to find a relatively under used four letter acronym. We might have ‘Comprehensive Linux Developer Network’ or CLDN for example.
  • For machine-readable docs, try to impose a standard, configurable, style on top. For example, documentation can be linked to, submitted, fetched, etc and parsed be it in Doxygen, JavaDoc, Monodoc and Qt/GTK style. It should then just look as if it is part of the site.
  • Be fast. I want to click on a link and get the damn page. I don’t want to see my browser spaz as it hits a redirect loop in an attempt to escape from or add a huge wrapping of frames. I want it to be as responsive as GMail as a minimal standard.

So how can this happen? Well the above bit of rant could start as a high-level design goal for a really useful developer website. A website that, when I want to remember the order of arguments for FrobnicateFoo(), I can just Google for “FrobnicateFoo CLDN” and be plopped into a familiar documentation system and easily navigate to more in depth articles on the library. Currently the top hit for “FrobnicateFoo libname” is rarely the API docs.

Who will create this website? Ideally someone with experience with such things backed by a big distro. In reality it’ll probably have to be muggins here. The problem is I have very little experience with trying to set up ‘proper’ websites. Mono’s documentation site seems to be a good starting point (except that it suffers from some AJAX-y goodness bugs).

Life annoyances

Wednesday, October 25th, 2006

Today’s petty annoyance: people who write “visit www.example.com, click on foo, look for bar and follow buzz” instead of “take a look at http://example.com/foo/bar/buzz.html”.

Richard Herring is a God…

Monday, October 23rd, 2006

Richard Herring is a comedy god and you should all listen to/watch as much stuff of his as possible. Also, if you’re a lady, you should send him lots of fan mail implying that a sexually excited woman is now separated by but 3 spatial dimension from him.

Jennie seems to find him attractive at least but God alone knows why she should find a hairy, overweight commedian called Richard sexy.

Why improv is funny

Saturday, October 21st, 2006

Matt recently wrote a great post on why improv is far easier than stand up despite it appearing harder at first glance. I share his view that, although I’m happy doing improv, I’d be scared silly doing stand up.

First real improv gig of term

Saturday, October 21st, 2006

I had the first real (i.e. one I wasn’t too tired to instantly forget) improv gig of term yesterday. A really high energy show in King’s bar with a really good audience lead to a really good show. It was the first show for one person as well and they did terribly well.

In other news I’m going to be the evil baddie (the Uncle?) in CULES’ Aladdin later on this term. Only the best fscking part in the panto :).

OkCupid! dating test.

Friday, October 20th, 2006

From megamole…


Read My Result
Take the Test

Anyone think that is me?

Whoring it up

Thursday, October 12th, 2006

My passing-viva-present-to-self arrived today. A shiny new black iPod to replace the old B&W screen white plastic iPod I had previously. I am ashamed to say I got a black one so it would match my laptop. Would someone kindly point me to the queue to kiss Steve’s arse?

OMFG

Wednesday, October 11th, 2006

Bleurgh…

Never… Drinking… Again…