Projects


When I was 5 or 6, I used to "program" on my father's Apple ][.  Most of my creations consisted of variations on the following canonical form:

10 PRINT "YOU STINK!"
20 GOTO 10

This amused me to no end.  However, despite the - clearly bottomless - source of mirth at hand, the novelty eventually did fade and I was forced to graduate to the more powerful constructs that are IF, GOSUB, et al.

After a few years of fumbling around in BASIC writing spaghetti-code text adventures, "graphical shells" to launch programs using the machine's mouse, MIDI programs to play my favorite tunes on a keyboard (with endless DATA statements) and more sophisticated insults than the above, I started reading my father's old BYTE magazines.  I punched in pages and pages of hex code to input games, and learned about 6502 assembler.

However, by this point - early 90s - I was playing point-and-click games at my friends' houses on their powerful PCs, and I felt like I was missing the technology bandwagon.  It was obvious to me that even with ninja programming, the Apple ][ could never come close to providing such an experience.  Leave it to my father to save the day by making the purchase of a 486 DX2/66, an absolute bomb, in a timely fashion.  I shortly discovered the existence of Q(uick)BASIC and went to town "hacking" Nibbles, an occupation which was undoubtedly going to lead me to fame and fortune.

As history would have it, real-mode programming and the relative pain of interfacing with external libraries written in different languages would get in the way.  But I kept hope, for there were obvious instances of software breaking the performance barriers keeping me in check.

I clearly remember the sunny afternoon at a friend's place where he showed me his Turbo Pascal IDE.  Of course the code ran incredibly fast and the libraries were quite powerful, but really the ease with which you could seamlessly switch between Pascal and assembler was what harpooned my mind.  (On my friend's machine, assembler showed up in light green on a black background.  This gave it an extra 50% hacker points as far as I was concerned.)

I came home that day searching my soul for spare bits I could sell in exchange for a copy Turbo Pascal 7.0.  I'm not sure which part of my relentless drooling and pining convinced him, but my dad bought a copy, ushering in what I would call the first serious phase of my programming career.  I hope to eventually post about some of the projects I wrote back then.

Fast forward a few years to the fall of 2000, when a legit copy of Visual Studio was given to me - once again by my father, relentless sponsor of my now-profitable, ever-deepening interest in computers.  Since no Express versions existed back then, this was quite a deal, and it allowed me to start developing in C/C++ at home.

After graduation, with income and free time, I found myself slowly incorporating electronics into my projects, which lends them a tangible and usually interactive aspect I find enjoyable.  It does, on the other hand, increase the odds of personal injury.

So, here it is; I scoured the contents of my hard drives of yore to find interesting content to share.  Here is a selection, which I'll strive to update periodically as I dredge up stuff.  As with many other hobbyists, many projects were stopped before being "completed."  I don't like to think of them as being abandoned, however, because it's always about the journey; when I stop working on a project, it's usually because the interesting part that tickled my fancy is "done," and I can move on to learning something else.  (Optimisation of personal time.  :-)  )

This should not be considered a professional portfolio...  It's just a hobby log.