FAQ

I get asked a lot of questions.  Some of the more common ones are answered below…

What programming languages do you know?

Most of the work I do is in C/C++.  However, I am somewhat proficient in higher level languages such as Java, C#, Python, Perl and Erlang.  I know a little JavaScript/ActionScript too, but try to stay away from the browser.

When did you start programming?

I started programming at the age of 5 in various dialects of BASIC, and then progressed to REXX on the Amiga, followed by C on Amiga (using the DICE compiler).  My first serious application was an Amiga game at the age of 9 where you blew stuff up while flying through a starfield.

What is the worst platform you’ve ever had to code on?

Amiga was pretty awful development-wise, but the worst platform I’ve ever coded on was the PS2.  The PS2 is an extremely over-engineered device, almost completely opposite of the design principles that went into the PS1.  One can learn a lot from the Amiga however, especially in the simplicity of the design… but the Amiga was too simple.

When did you start using Linux?

My first encounter with Linux was in either 1996 or 1997 on my Amiga, running Debian 2.0.  I got banned from #debian on IRC back then for asking stupid questions in case you’re wondering.  My second, more serious encounter with Linux was in 1999 or 2000 running MandrakeLinux on a Pentium II 350Mhz box with 256MB RAM, my third encounter was in 2002 with Debian 3, and I haven’t looked at any other OS since (although I have looked at plenty of distributions).

Will you teach me how to program?

I don’t think I am a very good teacher, so no.  You can learn a lot from reading code and papers I’ve worked on though!

How do I contact you about stuff?

The appropriate contact channels would be on whatever site for whatever you are talking about.  My personal website is you know, personal, which means anything about my job or a project I’m working on or whatever will be ignored.

How do I do _________ in the game ___________?  Cheat codes?

How the hell should I know?  I only provide middleware for the most part.

Why has the Linux desktop experience become utterly depressing?

Jamie Zawinski has a good writeup on that, and for the most part I agree with it.

What do you think about Haiku?

I would like to use it, but I’ve become attached to the apps that I’ve written for myself, so I don’t know if I can give up those apps to switch.

What do you think about MacOS?

There’s some really good apps for MacOS, but they’re not really targeted toward people with my skill level.  I have a mac, but I find using it to be draining because of the attitude that MacOS apps take where they assume you are stupid, so I don’t use my mac in MacOS very often… unfortunately it’s become a Windows 7 box.

What do you think about Windows?

I grew up on Amiga and MacOS classic, so honestly I find Windows confusing.  Windows 7 makes me less angry than prior versions of Windows, though.

What desktop environment do you use?

Enlightenment DR17, which is downright awesome.

What distribution do you use?

I’m working on a GLIBC-based derivative of Alpine Linux.  It’s ok if you know what you’re doing.

Will you review my code for me?

Will you come teach my product development team how to write better code?

I need to pick your brain on a product I am developing.

The answer to the above three questions is that I am open for paid consulting opportunities.  Unfortunately, without some sort of financial benefit, I don’t have the time to review your commercial product’s codebase or development team.

You act like you’re autistic.

Alas, I’ve been busted, and I apologize if I’ve annoyed you.  It’s true that I have highly functional autism.  Initially I was misdiagnosed with Asperger’s Syndrome, but upon further review of my behavioural traits, that diagnosis was later changed.

Why do emulators mostly suck?

Most emulators are written by people who just want to get a working app, so they don’t worry about design until it’s too late.  In general, this is a problem with RAD programming techniques, not just emulator development.

I have a question not listed here.

Contact me then… but only if it’s not really listed here.  Otherwise it’s likely I won’t reply.