Jeremy Penner
|
IRC nicks: |
ApM, ArmpitMan |
Personal web site: |
||
E-mail address: |
<jeremy AT SPAMFREE sporktania DOT com> |
How were you involved with TPU?
I started an obnoxious and ill-informed flamewar that made people leave TPU when it was still just a mailing list!
I ran the ill-fated TPU Music Interest Group!
I gushed incessantly about QNX on IRC!
I wrote the graphics engine for Codename: Flash (the DJGPP interest group's videogame project) several months after the project had lost all momentum!
How about a capsule summary of the programming you did in your TPU years?
As I recall, the fine folks at TPU turned me on to the fact that the potent combination of the freely available 32-bit C compiler DJGPP and the powerful graphics library Allegro existed. The result was an atrocious piece of work called "Barney Mutilator", in which you blew off the limbs of Barney the purple dinosaur while he screamed and two-tone two-frame MS Paint-style blood spurted from his wounds. The whole thing was maybe a couple hundred lines, had no indentation, and used parallel arrays because I had yet to grok structs. As I recall, I somehow managed to get the creator of Allegro to link to it with an "over 18s only" disclaimer.
I believe my next project was a fighting game demo for "Goober" Software, which I don't even remember who started it, but was a game programming "company" that never went anywhere. I still hadn't grokked structs, but rand0m had gotten me into the wonderful world of tracked music and I'd gotten my hands on some obscure Amiga-ported 3D modelling software, so it actually looked and sounded pretty okay. I threw all the graphical effects I could think of into it -- weird palette effects, things rotating for no reason, the Doom screen-melting effect.
Probably next came Codename: Flash. I think maybe it had been running out of steam for quite some time before I actually managed to write any useful code for it, which was a graphics engine that did some poorly-thought-out parallax scrolling. I'm pretty sure I wrote music for it before the Goober Software demo. Anyway, that was the project where the concept of pointers finally clicked.
Then there was CatSmash, a game where you run over cats using cars ripped from Grand Theft Auto that I wrote to piss off my math teacher in Grade 10 or 11. This was the last project that used my horrible "indentation style" of not indenting unless I felt like it, which was almost never. Eventually I would add extremely flaky networking capability.
Somewhere in there was an awesome "Iron Coder" competition, in which EvilTech and myself had four hours to write a real-time version of Daleks. His was not real-time, mine used a digitised picture of xekul's head for the main character and had air strikes.
Honestly, I don't know how Adam put up with us idiots. He was off writing C compilers and network-aware virtual machines while I was telling people in TPJ that the only way to do linked lists was to use global variables.
What are you up to now professionally and/or academically?
Well, after being hired to work at a small QNX consulting company out of Grade 12 (late 1999) and spending 6 years or so working in embedded systems while getting my bachelor's in computer science at the University of Manitoba, I've completely changed course and am working at Intentional Software, building some extremely cool stuff that I think will change the way software is built.
What are your favorite programming languages and tools today?
Well, obviously, I think my employer is building a hell of a tool. I think XL looks pretty interesting, but development moves pretty slowly and it's kind of competitor to Intentional, so I'm not exactly in a position to help out.
I'm always on the lookout for higher-level languages that can be easily used in resource-constrained environments, on weird processors and stuff. I think Forth has a lot to teach us, even though nearly every language design choice is bizarre and totally inapplicable to any other language. Right now I've got my eye on Felix and Chicken Scheme. Dylan looks pretty interesting, but my perfect language has some feature that can at least fake lightweight coroutines.
My hack-something-up language of choice is Python. It's got a nice SDL interface, which is nice because I've never really stopped throwing together ridiculous proto-videogames. I like Ruby better in many ways, but it's slow and the deployment story isn't great.
What sorts of software are you most often developing lately?
My hobbyist programming mostly consists of hacking videogame consoles and obsolete 8-bit computers. Right now I'm trying to port Chicken Scheme to the Nintendo DS; for what purpose, it's not immediately clear to me, but I like having a REPL in my pocket.
