Jan 16 2008
My First Computer
In my early school years (second or third grade), I was introduced to the Commodore VIC-20. My grandmother had one that my sister and I would often play games on. One day, by accident, I hit a couple keys together which caused the game to stop and print out some odd-looking text. At first, I thought I had broken the thing, so I turned it off. A couple days later it happened again. This time I went to the closet, retrieved the Commodore books, and looked through them.
When I came across two, “introduction to BASIC” books, I had found the jackpot. After playing around with some of the examples for awhile, I wondered if I could break out of the game again, and this time, change it. Sure enough, I was able to change all kinds of things about the game. I would actually say that it was more fun changing the game than playing it. It was at that moment when I knew there was power in programming.
Several years later, after becoming proficient with BASIC, I was in our school library and asked the librarian why there was a computer in the corner that just sat unused. It was an IBM PS/2 Model 25 that she told me never had worked since the school bought it. I asked her if I could try it and she, assuming there was nothing to lose, allowed me to do so. I booted it up and didn’t see any errors, just that it booted into the BASIC interpreter. With my VIC-20 knowledge, this didn’t seem too bad, but I knew it had DOS on it (which I hadn’t used yet), so I got the book and read up on the boot process. After getting a DOS boot disk, I restarted the system and got my first A:\> prompt.
At home, we finally purchased an IBM PS/1 486SX/25 with DOS 5.0. Above all else, I no longer had to skip class to use the library computer.
Other Programming Languages
In addition to working with GCC on FreeBSD, I learned several other languages. My grandfather, also a computer hobbyist, helped foster my interest in computers by supplying me with software (PowerC, Turbo C, Turbo C++, Turbo Pascal, Layout for DOS, Layout for Windows) and books such as Assembly Language Step-By-Step. He also introduced me to Linux (Slackware 2.3/kernel 1.2.8) with Linux: Configuration and Installation.
Introduction to Databases
My love of databases began with the simplest version of them all, DBM. Though, I can’t seem to recall whether it was NDBM or GDBM on FreeBSD (2.0 I think).
Nevertheless, shortly thereafter I began playing with Berkeley DB 1.85; I was in sixth grade. I’m not quite sure why, but databases just became a personal hobby of mine. Every database package I could find, I learned inside-and-out. From Btrieve to dBase to RaimaDB, I loved every minute of it.
It’s All Relational
Outside the realm of the key-value, network, and hierarchical database models was my first relational database experience; INGRES. Ahh yes, good old QUEL. My interest in INGRES actually begat my introduction to Oracle. Oracle was quite different. At first, I didn’t really like it. But something about it just seemed to interest me. Ever since then I’ve tried to learn as much as possible about it.
While there are still many similarities between Oracle 11g and Oracle7, it was quite a bit easier to research back then; there just wasn’t as much to it.
From Hobby to Profession
When I was fifteen, I started doing custom software and web development for local businesses. When performing custom software development, I called my creations, “Harrisworks Software”. At the time, I wished I was eighteen so I could incorporate and rename it, “Harrisworks Software, Inc.”; alas, I was far too busy at that point and it was not to be.
Regardless, my first professional software project requiring a database was a billing and parts management system for a local industrial equipment service and repair shop. Due to the customer’s time and financial constraints, I decided to quickly write their application in Visual Basic for DOS using the BULLET Database Engine. After three months, the application worked well and I had learned several valuable lessons in project management which followed on into my later business ventures.
One of those other ventures was web development. I (as the developer) had teamed up with a friend of mine (an awesome graphic designer) to design and develop several web sites under the name of Vortex Web Development. All of the initial sites were static HTML (that’s just how it was in those days), but then one day I had an epiphany; plug-in databases to fill-in template pages thereby eliminating the need to write up hundreds of static pages. Obviously others had thought of this too, but somehow it just hit me and wow, what an advantage we had over the five or so other web developers in our city.
The first customer to make use of my newfound technology was a real estate broker. I met with him one day and explained to him how we could create a site that was able to show and search his properties. He didn’t really see a difference between us and his current developer (one of our competitors who would soon be out of business). So, I explained how static pages worked and why he paid his current developer an hour or so for every new listing (as well as time to remove listings). Then, to differentiate us, I explained how dynamic pages worked and how he could manage his own listings. I think he thought I was crazy. But, he did give us a chance and decided to go with it. In fact, so did several other businesses; a radio station, a supermarket, and another realtor.
From Development to Administration
After High School ended in 1999, I got a job as the IT Director and Webmaster at one of my previous clients, a large independent supermarket chain named Van Winkle’s IGA. As part of that job, I had to administer an Oracle system in addition to several remote RaimaDB databases.
As our supermarket chain relied on the now defunct Fleming Companies, Inc. as its primary vendor, we were somewhat forced into using Fleming’s backoffice Automated Systems for Supermarket Evaluation & Tracking (ASSET) software which relied heavily on RaimaDB. Over the course of my tenure at Van WInkle’s, we had decided to upgrade from the old Netware network systems onto Windows. What we didn’t find out until months later was that Microsoft’s implementation of the NetBIOS protocol was not up to snuff, resulting in the RaimaDB lock manager allowing multiple users to corrupt the database.
Databases: My Gift, My Curse
Databases are my hobby and my profession. While some people claim to understand Oracle simply by researching its algorithms and data structures, they can’t be sure that they truly understand it. Being a developer at heart, I take a different approach.
I generally pick a component of Oracle I’m interested in and, after thoroughly researching it, I’ll implement my own proof-of-concept (POC) to verity that my understanding of the concepts, algorithms, and data structures is truly accurate.