Hi, my name is Ron. Nice to meet you.

I’ve been writing software professionally for about 18 years now. I’ve seen more technologies come and go than you could shake a stick at.

Over the years, I’ve developed a rather sizeable library of code written in various languages. Some of my stuff is experimental in nature, but a lot of it is in use in real-world, mission-critical apps that are used by many people every day.

I’ve developed all kinds of software, including telephony apps, air and ground vehicle simulation software (including flight simulation), accounting/POS/inventory control (ERP) software, embedded control applications, imaging software, database-driven apps (including highly scalable web apps and web services), video surveillance and monitoring systems, document imaging/storage/retrieval systems, OCR algorithms, image/audio/video compression and streaming software, signal processing algorithms, 3D animation/virtual reality applications, stock market data aggregation/distribution systems, real-time/web-based stock charting systems, subscription-based web sites, web-based advertising software (banner ad networks), and the list goes on.

I say this not to boast, but to introduce myself and to pique your interest. In the future, I plan to post some of my experiences onto this weblog in the hope that it will be useful to you, the reader. This weblog will serve as a sort of “clearing house” of information. I’ll post my ideas, thoughts and comments on various technologies that I’ve worked with, and share with you my tips and tricks that I’ve learned by working with the technologies I cover.

When it comes to programming languages, I’m mostly a Java guy, but prior to that I was a C/C++ guy for many years. I just like Java better because it’s easier to get things done. You don’t have to worry about leaking memory or accidentally freeing a block of memory more than once. If you overrun an array, you get an Exception instead of silently trashing something else in memory.

For the past year, along with heavy Java usage, I’ve also done quite a bit of intranet and Internet application development in .NET (mainly C#, but some VB.NET). This includes co-developing a banner ad serving system for my employer.

When it comes to operating systems, I’m primarily a Linux guy, but I have significant experience with other UNIX-based OSes, some experience with Mac OS, and of course the dreaded Windows. I’ve been using Linux consistently since 1993. I started with Slackware Linux, circa version 1.2??? or so, I can’t remember for sure. When Red Hat became really popular in the late 90s, I switched to Red Hat Linux 4.0. Since then, I’ve pretty much stayed with Red Hat, through all of the major releases (and many of the minor releases), except that I skipped Red Hat 9.0. Bot never fear, I’ve used Red Hat 9 Enterprise WS at work. Most recently, I’ve been using Fedora Core 4 (started with FC1 and have used each of the releases since). I love Fedora (also from Red Hat) because it’s a little more bleeding-edge than the mainline Red Hat stuff. So you get more toys to play with.

My UNIX experience goes back to 1989. I started with AT&T System V on a box made by a company that’s no longer in business. After that, I spent several years working on SCO Open Server 5. A short trial of Coherent UNIX proved that it was not ready for prime time. The company went out of business around 1995, and released the source code to that operating system, which you can download here. I’ve developed on IBM AIX, SGI IRIX, and spent a few years developing on (and operating a server farm running) Solaris 8 and 9 from Sun Microsystems. Some UNIXes (UNICES???) are very flaky (SCO, for example - think “kernel panic on a regular basis, and without cause”), but most are incredibly stable. Solaris is one of my more favorite UNIXes due to its stability and incredible scalability (it has an excellent threading model). Linux, I believe, has since caught up with it, though.

My latest (and hottest) area of interest is currently LAMP (Linux, Apache, PHP and MySQL). PHP is a fabulous language. It’s sort of a cross between C and shell scripting. PHP uses dollar signs to reference variable values, which reminds me of shell scripting. Most of the built-in functions are named after their counterparts in the standard C library, which makes it incredibly friendly to the veteran C programmers out there (including myself). The language syntax is sort of a mix of C, JavaScript, C++ and Java (pretty much in that order). However, PHP 5 (which is the only version of PHP I would care to mess around with) is also an Object-Oriented language. You can go procedural, O-O, or a combination of both. And it’s incredibly fast, from the point of view of performance, yes, but also from the development point of view. It’s just incredibly easy to edit the page, save it, and then just refresh the browser and instantly see the results. I’ve been using PHP and MySQL on Apache (running on Linux, of course) to develop a new banner ad serving platform at work, and it’s done great. I tossed memcached into the mix in order to achieve the scalability and performance goals, and the project just turned out wonderfully. You know, I’ve done projects using Enterprise JavaBeans (EJBs) to separate out the business logic, and I’ve played around with all kinds of persistence frameworks, presentation frameworks, etc., but I’ll tell you one thing: If you really want scalability and performance, it’s hard to beat the LAMP stack. The more I use this incredibly simple platform, the more I love it. PHP compiles nearly instantly, and if you use APC, your pages are bytecode-cached automatically so they run pretty much as fast as native code.

I hope this is enough to get your interest piqued. I’ll be posting more soon!

Ron