Monday, February 18, 2008

My Computing Past

Scudder's recent post recounting his march from young computer nerd, to professional computer nerd, has inspired me to do the same. Here is an outline of my computing past: projects I remember, things that inspired me, languages I played around in ...

Early School Years

  • The first memory I can think of that involves me making a computer do something interesting, was in early grade school when we would go to the "computer lab" and drew pictures with LogoWriter. I loved making that crazy little turtle draw spin 'round and 'round, drawing lines all over those ~256 color screens. I didn't really have much of an idea of what I was doing, but man it was cool to send him off drawing with his little pen in a random direction, for some huge number units. Lines-galore!
  • At some point near the end of elementary school my dad showed me some very basic things in QuickBASIC and I was off (I am still trying to prove Dijkstra wrong). I can remember spending large amounts of time, trying to remember the few things he had taught me, trying my darnedest to create a password protection program. The thing didn't really protect anything in particular and I am sure the password was in the code in plain text .... but if you didn't type it perfectly the first time and/or do it in a short amount of time .... all hell would break loose. The program would start playing random musical notes and flash the screen bright colors until you hit Esc or Ctrl+Q.
High School
  • My freshman year of HS I took a class in BASIC. I learned a lot more during this class, with very little of it coming from the curriculum.
    • Most of my new knowledge came from working on a "large" casino simulation game that a few of my classmates and I cooked up. With BASIC's inherently simple graphics drawing capabilities (gotta love screen 12), some random code downloaded off the internet and a TON of hacking together, we actually ended up with a decent game. The first screen showed the outside of the casino including flashing neon lights. When you entered the casino you had to "walk" down a "3D" hall to get to the game rooms (this took me several days to figure out). I think we had simplified versions of poker, roulette, and some dice game. Not bad for a total n00b.
    • My second crowning achievement was a program which displayed zillions of ASCII characters to look like the BASIC editor. When you typed, the text showed up in the right window and if you hit Alt+F, etc ... the drop down menus popped up. However, the best part was when you hit "Run". At that point the program played some freaky random noise generator out the PC's internal speaker, showed a blank screen with a pulsing cursor and wouldn't let you do anything (unless you hit Ctrl+Break). The teacher thought it was hilarious and suggested I leave it running for the next class. Well, the next day I found out that the girl who sat in my seat next typed in a bit of her program for the day and tried to run it .... at which point the computer "freaked-out" and she began to cry b/c she thought she broke the machine. ;-) Blame the teacher, not me. :-)
  • UNetIt.com - To try and make a long story short, a HS friend of mine got it into his head that tons of money could be made if we could put together an online web directory of just programming tutorials, scripts, hosts, links, etc. www.UNetIt.com was the answer. The site was backed by some crazy VB-esque code, a horrible Access DB and ran on IIS .... but it worked. I spent countless hours surfing the web finding links to hosts, tutorials and scripts written in PHP, ASP, and JSP before I had any clue what they really did. The site actually was getting some decent traffic at the time and he was able to sell some banner adds to random companies netting us 10's of dollars!!!! While the site never really took off, given our experience it was a huge success. If you Google around for it you can still find some random broken links from back in its heyday.
  • AP Computer Science brought C++ into my sphere of knowledge. Granted it took me a few weeks to have any clue what all those #include lines were doing and it took me until college to fully realize that people didn't use APString in the real world ... but I learned a lot. I got a 5.
  • My senior year my parents didn't think I should take a study hall ... so instead I took a new class on VisualBasic which replaced my original one in BASIC. The teacher told me that he didn't want me bugging him about too many "advanced" questions since I already knew the stuff he was going to teach ... so he had me fill out the final exam in the first week and told me that if helped out the other kids and didn't bug him too much, I would get an A without doing any homework. :-D
College
  • Most of the early classes were taught with C++
  • We had to take a file manipulation and storage class that used COBOL
  • Reverend Thomas Schoen taught a very interesting class with C and Assembly
  • Numerous DB classes with SQL and PL/SQL
  • In a projects class on Genetic Algorithms and Evolutionary Computing, we wrote programs that tried to match facial photos by "evolving" better matching algorithms with Matlab.
  • Out later classes were mainly taught in Java including one where we wrote an assembler and virtual processor to handle a subset of some Motorola chip's instruction set.
  • Our research was mainly done in very naive Java using Aglets
  • I also did random web design work for on-campus jobs and FlyerWebDesign in HTML/JavaScript/Flash/PHP (neither contain my code anymore, thankfully).
Professional Career
  • The vast majority of my professional work experience has been on the JVM doing J2EE web applications and client applications in Java.
  • Lately I have taken an interesting in dynamic languages and have started playing around with Python and am intending to look more into Groovy and Ruby in the upcoming months.

Anyone else have some interesting old-school computing stories to tell? I re-found an interesting diagram of programming language time lines here.

4 comments:

Jeff Scudder said...

Holy Cow! I think I remember your casino game and Unetit definitely sounds familiar. I didn't mention any specific programs in my blog post but I'm sure you remember the screen-saver we loaded on all of the computers in the AP class lab.

Benjamin P Lee said...

Oh yeah. Those were fun times.

Anonymous said...

lol that dice game was retarded...but man you had to give me some props at how the dice looked. Was pretty nice.

Further, reading yours and jeff's synopsis has gotten me in the mood to write up my own story in regards to programming and the like.

Benjamin P Lee said...

you have to love hundreds of lines of undocumented code full of goto's, labels like "aaaaa2", and no methods ...

all to get the lights to blink!


** I found a copy of what might be The Casino, but when I try and run it from an old QBASIC interpreter, on XP, in Parallels, on my Mac .... it bombs. Still trying though.