
Yup. yup. I sure do love to play with computers!
Anyhow, I've been at it long enough that now people pay me to play with computers. I'm glad, because I sure can't do anything else worth a paycheck.

In the beginning, we had the Odyssey.
I was a kid at this point, so of course I was captivated by playing games on this thing. Among them was a Pacman-clone K.C. Munchkin. Yeah, way too many hours spent on this.
Eventually, the cartridge called "Computer Intro" made its way into my life. This rather unique cart allowed ambitious people to actually write little game applets and other programs for the Odyssey2. The concepts of hexidecimal codes, sprites, sounds and control logic were forevermore etched into my mind.
The seed of a programmer had been planted.

This is the first real "computer" I got my hands on. I remember spending many hours in fascination with the (crumby little) BASIC programming language. Soon, the idea took shape that I could make this machine execute my thoughts in the form of computer programs.
A revelation : I could make it do things!
I can recall staying up nights scribbling little BASIC programs (or psuedocode BASIC-ish scrawlings) in notebooks, feverishly looking forward to my next visit to the TI994a. It was the shared family computer, afterall... I had to wait my turn! I can still remember the rush of excitment at seeing my concepts come to life right there on the monitor (er, TV screen).
Was it a programmer or a hacker that bloomed here? Hard to say.

Ever heard of this thing? Didn't think so.
Nevertheless, a brief but important stage of my early computer programming development took place through this computer. I began to really poke at what was beyond the simple BASIC language they gave me.
Those earlier experiences with the Computer Intro Odyssey cart came in handy here, I fathom.
I'd write little games, utilities, and other fun little programs just to see what this machine and I were capable of. Sprites, sounds and other techniques were the focus of my development, inspired by console video games of the time. Aside from that, I was interested in the I/O. How did this thing called a "disk drive"? Etc.

First off, I've got so much to show and tell about Commodore, I've made a separate page to hold it all!
Now, on with the role the Commodore played in my past.
A Hacker was born
Far and away, the greatest impact on my developmental years of programming came from the Commodore 64 and its successor, the C128.
On these machines I really got into assembly, the innards of graphics (VIC-II), sound (SID), memory, the processor (6502), and
hacking the BASIC interpreter with ML wedges and so forth.
.... ah, the memories!
Going On-Line
My mother hosted a fairly large Commodore BBS from our basement. A dedicated bank of phone lines and modems
pulsed 24-7 providing a variety of services and activies for users who dialed in with their -- get this -- modems.
Overall, it was an experience similar to discussion
board and file-sharing sites on the Internet today, only slower. Lots slower.
Even so, I was instantly fascinated with the idea of computers talking with one another. Among my early projects were mini-BBS "servers" (using today's name for it). I remember devising a way to transcend the primitive ASCII-based presentation of then-modern BBS protocols, in a way not unlike HTML today.
Social Networking
Aside from technical interests, the Commodore actually opened a few social doors. I wound up meeting
a few friends via the BBS circuit, some of whom are still friends to this day!
A Harddrive, At Last!
At some point, the BBS grew beyond the capacity of our daisy-chained array of disk and tape drives.
Thus, a hard disk entered the picture (and my grasp).
I remember the day my parents brought home a CMD 20MB Harddrive designed to work with the C64. What a tank! It was about the size of a modern PC tower. But, oh, the SPACE! Remember, the Commodore had 64 or 128 K of memory, and here this tank had 20 MB of storage. The possibilities!

That's me at the Commodore 64 with some of my cousins.

My buddy Shawn and I programming an early version of Paradoxia
into the Commodore 64.


I had a brief transitionary period with GW-BASIC and QuickBasic, DOS Basic interpreters, and from
there explored the wonders of MS-DOS, the concept of a (gasp!) directoried file system.
Shortly thereafter I made my way to more sophisticated compilers, assemblers, and somehow achieved something
more resembling a practical skill with code.
One of my early projects was to write a GM utility to help me run my Paradoxia RPG. Little did I know that it would stay with me for over 10 years!
Although that thing remained entrenched, I moved on.

Turbo Pascal. By the time high school rolled along, I was already
hammering away in the Borland compilers like this one for fun and kicks.
I once wrote a little utility that helped hack the school computer network
(Novell) in Pascal. That was fun!

Borland Turbo C++. This sparked the object-oriented epiphany. C++ would forevermore change the way I think about programming.
The apparent potential
of what could be expressed with the C++ language, combined with the abstractive power of object-oriented
programming was captivating.
Early thoughts in C++ gelled my programming hobby into a life-long pursuit.
And yes, by now I had pretty much become an entrenched "Microsoft" (platform) developer, a distinction that would come into crisp focus with the later advent of Linux advocacy. Oh well. Its not that I particularly love Microsoft, its operating systems, development environments or overall platform. Thats just what I grew up with, became familiar with, and came to be good with. For quite some time, I never really had the knowledge of, access to, or time for anything remotely resembling Linux or Unix, so... on I went further into MS land. Having since become aware of Linux/Unix (and its whole paradigm), I can't say that I particularly vault Microsoft in comparison, but I saw nothing in Linux/Unix that won me over.
Time wore on, and the Windows platform matured. I stayed with it, accumulating valuable ground-up experience along the way.
Win32, Automation/ActiveX/COM, MFC, ATL, and so on...
Windows CE / PocketPC
When PocketPCs came out, I got my hands on one and started codin'.
Futzing with VB6 forms or C/C++ resource files was a serious pain, and here was a platform that promised far more agile GUI development/deployment. Along with that, client/server was broken at last, and distributed, N-tier apps became the norm.
By the time the Windows 2000 fleet of operating systems and servers rolled out, I had reached a turning point in programming language/paradigm preference.
C++ suddenly felt -- clunky. Old. VB was dead. COM/Automation/ATL/MFC, etc was --- a mess.
Brief stint with Java
Meanwhile in the world beyond Windows, Java had caught on for both client and server development. But while I was interested by the idea of a virtual machine, and the "write once, run anywhere"
hype, a few months of hands-on experimentation with Java left me ... dissatisfied.
Broken Loose
There I was. Disliking the Microsoft VB/VC/COM developments, and finding no great gravity toward Java (after having concluded it was too cludgy as well),
I still wanted a language and environment to program in. Something with ubiquity but without all the mess. To have fun in. So I turned to...
Even non-technical folks are likely to respond poorly to JavaScript as a signifcant element of my programming experience. These folks, perhaps with a decent recognition of at least some of what has preceded this, might either scratch their heads asking "what's JavaScript?", finding themselves in disinterest, or instead curse aloud "bah! Javascript, that nasty evil Internet boogie-thing like, like ... cookies!", in this case falling victim to stereotyped misinformation.
Even so, I shall proceed.
Of course, JavaScript doesn't have many things like, oh, say, true OOP semantics or a rich class library to draw upon. That didn't stop me. I wrote my own OOP-ish runtime, and upon that my own foundation class library. That out of the way, I began building things in JavaScript. Sure, some meant to run in a brower, but most had no such assumption. The browser was just a convenient GUI canvas, one among many.
(So you might wonder by now: if I'm experienced with web development and JavaScript in particular, why is my site so ... ugly? First off, I call it simple, and simple has the virtue of working. Second, I'm lazy. )
Anyhow, in the early 2000's, for the lack of an acceptable "real" language to play in, I turned to JavaScript. That lasted a good year or two, and although I've gone back to "real" (sort-of) languages, I never lost my affinity for JavaScipt in a pinch.
As it turns out, my affinity for web technologies has paid off, as it seems that, more and more, the forthcoming Windows Vista operating system will have a development platform that is built on many of the same technologies -- markup languages and TCP/IP. We'll see.