Thursday, December 13, 2007

Don't Buy Western Digital Hard Drives

More political posting I'm afraid...

Anyway, to get straight to the point, Western Digital HD's are crippled with DRM to prevent files with certain media extentions (e.g. AVI, MP3) from being shared across network drives. Even if they are your own creation! And the name of the software that does this? "WD Anywhere Access". You couldn't make it up!

Friday, December 07, 2007

My Programming Adventure - Is the journey nearly over?

I've alluded before to the fact that I sometimes think of my time spent programming as an adventure, looking for the reason why I program and what I hope to achieve. (I'm talking about my hobby programming of course - I do my profesional programming to pay the bills).

Several times I've been in the middle of writing one of my games, and suddently realised I'm not actually enjoying writing it. Or I've finished a game and realised it's not that much fun to play, or I think it is but the ROTW disagrees.

However, I have now found my holy grail. I've written a small, simple and (AFAIK) original puzzler called Chain Reaction. It's pretty addictive, but what has caused it to really take of here where I work is the high score table. People are falling over themselves to try and beat each other, and I'm loving the fact the people are telling me they hate the game because they're spending too much time playing it but they can't stop! I may be egotistical, but I think it's the kind of praise and recognition I've been looking for all these years.

Thursday, December 06, 2007

New Language Update

Here's a tip for anyone who's thinking about writing their own language - plan it first. I know I should have. I've got a reasonable understanding of how Lisp works (i.e. evaluate everything inside the brackets recursively, and then process it) but I made some silly mistakes...

..Like evaluating the brackets each time I read them. For example, the program:-

(defvar lst (quote 1 2 3) ; <- "lst" now contains (1 2 3), correct.
(print (lst)) ; Error! I've processed "lst", but the function "1" (i.e. the first item in the list) is (obviously) unknown!

This is just one example. I'm going to start again. I've learnt a lot from my mistakes though, and my aim is to have a language with the best Lisp features like Macros, but more practical with simple functions to connect to databases etc...