August 18, 2008

IT Anniversary

On the third Monday in August, 1998 I began my first IT job: first-level support for a bottom of the barrel PC maker whose low-quality computers were sold on a home shopping network. On one hand it seems like a long time ago; on the other hand it seems like it was just yesterday.

I've learned a few things since then. In no particular order here are 10.

Permalink | Posted by Joe at 12:32 PM | Comments (0)

August 08, 2006

Borland Brings Back Turbo

Today I read at PC Magazine that Borland (formerly Inprise, formerly Borland) is bringing back the Turbo line of compilers. In anticipation of the September 5 release date, the website has gone live and begun the countdown.

Wow. The Turbo line was one of the most unfortunate casualties of the 90s. Back in the 1980s when the personal computer was on the rise, very few programming tools were available for home hobbyists. PCs typically came with the MS BASIC interpreter and there were a few shareware/freeware tools available, but real compilers for real languages (Pascal, C, etc) were only available for hundreds of bucks each--a lot more than the budget of many experimenters.

Then Philippe Kahn created Borland International, packaged up his Pascal compiler and started selling it for $49.95. It was smaller, faster and cheaper than anything else, and it sold like crazy. While other packages provided a command line compiler, Turbo languages gave you an IDE, a command line compiler, programming tools, examples and great documentation. Borland grew and created more Turbo compilers such as Turbo C, Turbo Prolog, Turbo Basic and Turbo Assembler. Suddenly average Joes could afford real production-quality programming tools for the PC, and it created a flood of new software and small software companies. Hobbyists and kids could try their hand at writing real programs in real languages.

I was a Turbo C fan. Late in 1997 I picked a C book at random and bought the second edition of Prata's C Primer Plus. It was a great book, but I didn't have a C compiler (all C compilers cost $300-500+) and couldn't run any of the examples or do any of the exercises. The next spring Borland released Turbo C 1.0 and I plunked down my hard-earned $99.95 for it. It was a great little compiler, and I upgraded it to 1.5, then Turbo C Professional (with Turbo Assembler and Turbo Debugger). Although I never sold any software I wrote with it, I spent many hours during my college years with Turbo C and Assembler, and got a lot of enjoyment out of the package. In 1991 I made my final upgrade to Borland C++ 1.0. After that I had no time to program until I finally reached the Linux world.

Now Borland is planning to resurrect the Turbo brand with the release of 4 new compilers: Turbo C++, Turbo C#, Turbo Delphi and Turbo Delphi for .NET. They'll be giving away an "Explorer" edition for free (but you can only have one language installed per computer); those who need more capabilities can purchase the "Professional" edition for "less than $500". Looking at the feature list, the Explorer editions already look pretty capable.

Although I'm happy to see the return of Turbo and wish Borland the best, I have to ask the question: does it matter?

Once upon a time, if you wanted to get into programming on the PC you had to use BASIC or cough up money for a real development system. Borland made real development systems at affordable prices (and Microsoft soon followed with its own line of "Quick" compilers) and opened up programming to "the rest of us".

Nowadays, though, it's a different world. Young 'uns who are technically-oriented and interested in programming have a whole universe-on-a-disc in Linux, with all the tools and compilers they could possibly want.

Borland is aiming to attract Windows programmers: kids who want to learn to program "visually" on Windows, programmers who want to try out a new programming environment, programmers who are tired of Microsoft's tools and are looking for an alternative. Alternatives are good.

Will Borland's alternatives be good enough to lead programmers away from Microsoft? Personally, I can't say (my only experience with Microsoft was that copy of Visual C++ I bought and barely used). Borland knows the challenge. We'll see if it can live up to that challenge. Go, Borland!

Permalink | Posted by Joe at 02:16 PM | Comments (0)

August 04, 2006

Happy 4/8/6

In 1996 I pulled the motherboard out of my former-286 and replaced it with a 486SX handed down by my friend Matt. He sold it to me for $50, the cost of the 4MB of RAM. I don't remember how fast it ran, but it was something like 33MHz. Very speedy: the DOS DIR command generated output faster than I could possibly read it.

This machine ran DOS 6.2, Windows 3.1 and clocked a lot of WordPerfect time. There was no need for communications programs since I lived in far western Minnesota, out of range of BBSs or internet.

The important software, though, was Linux. I'd met a local ham who'd moved back to Montevideo, Minnesota after spending many years in the real world. He was shocked that anyone in Nowheresville Minnesota had ever heard of Linux, and invited me to come over to his workshop to discuss radios and computers. He dug around and found an extra 4MB of RAM to bring my system up to a full 8MB to run X, and gave me my first multi-CD multi-distribution Infomagic set with Red Hat 2, Slackware 1.something, an old Debian and the sunsite archives. Great stuff.

Over the next week I spent numerous hours trying to figure out how to install Slackware on my system. Partitioning the hard drive was simple. The hard part was figuring out and manually performing a lot of tasks which are done automatically now. It was a serious learning experience, and it was a dream come true when I finally booted to the Slackware login prompt.

I made the 45 mile trip to the nearest bookstore in Marshall, Minnesota and bought the only Linux book to be found in that part of the state: the second edition of Running Linux. I finally had a chance to check out Unix, and it was a whole new world: fun and full of new things to learn. Ten years later I'm a Perl programmer who uses Linux every day, thanks to that little 486SX and that set of Linux CDs (which still have a place of honor on my CD rack).

Permalink | Posted by Joe at 01:52 PM | Comments (0)

August 03, 2006

Happy 3/8/6

Yesterday I wrote about my old 286. Today is 3/8/6, so how about my old 386? Well, I don't really remember much about it. Sometime in the mid-90s (I think it was 1995) my friend Matt gave me his 386SX motherboard when he upgraded to a 486SX. I vaguely remember that I used it to run Windows 3.1, X-Com and Ultima VII, but didn't have enough RAM to run Linux.

And I'm fairly sure that I didn't use it for long before he upgraded again and sold me his 486SX. More (much more) about that tomorrow.

Permalink | Posted by Joe at 02:40 PM | Comments (0)

August 02, 2006

Happy 2/8/6

Someone pointed out that today is 2/8/6, so I thought I'd reminisce about my old 286.

I bought my 286 in 1989. I can't really remember why; I think I'd caught the upgrade bug. My old Epson 8086 machine felt a little slow for Turbo C and Ultima IV or V, though realistically it was probably fine--I just wanted to upgrade.

So I sold it to a classmate and started reading every page of Computer Shopper (back then it was as thick as a phone book). Finally found the absolute cheapest price and bought a 286 from an outfit called Syntax Computers in California. It was junk: froze up randomly and was generally built very shoddily. I returned it and waited a month to get my cash back. The world is a better place without Syntax Computers.

While waiting for my refund I read some reviews of PC clone makers and ended up buying a 286 machine from a place in Chicago. It ran at a blazing 12MHz, had a full 1MB of RAM and a 256K VGA card. I bought my own 65MB hard drive and a 2400 baud Cardinal modem and installed them myself, then loaded DOS 5 or 6.2.

I probably got more use out of that 286 than any other computer I've ever had. It ran without a problem or a change for at least 6 years. During that time I used it for a lot of C programming, a lot of Ultima and Wing Commander, Civilization I and Might & Magic III, F-15 Strike Eagle II and F-19 Stealth Fighter and the SSI Gold Box AD&D games and many other PC game classics.

Then there were the hours spent on the local BBS systems in Milwaukee, on ExecPC (are they still around) and even on the Internet in 1992. I remember going to back when you could look at all the new websites listed every day. I didn't have any form of Windows, so it was all text-based browsing. I used gopher more than www. And I remember seeing a notice about a little homebrew Unix-alike called Linux, but was disappointed that it required at least a 386. I'd always wanted to try Unix.

More than all of those combined were the hours spent running WordPerfect 5.1. The 286 took me through college with my own papers and the papers I typed for others (at $1 per page), all the way through seminary with many, many papers, and through at least my first year of my first church. It never quit.

In 1996 or so I started replacing parts and the motherboard was one of the first to go (I still have it packed away in a box, though), but I used the case for up until 2002 or so: over the years it held a 386, a 486SX and various Pentia. It's still sitting in my basement with a 100 or 200 MHz motherboard and CPU.

So I bought the 286 out of the pointless desire to upgrade for the sake of upgrading, and ended up learning that the specifications of your computer are far less important than getting real use from it.

Permalink | Posted by Joe at 10:24 AM | Comments (0)

March 31, 2006

New computer!

Since the motherboard on my 2002-vintage Athlon 800 system was on its way to computer heaven, and since Windows 98 was steadily becoming less and less stable, and since I got a job with much higher pay and almost zero commute, I decided to put together a new system.

The old computer had some salvageable parts--DVD writer, 120 GB hard drives--so all I really needed was a new case (with bigger power supply), motherboard and CPU, RAM and video card. I shopped Newegg this time and would definitely buy from them again. I got the parts last Friday and had the system together in an hour or so, but Windows XP took another 2 to install. Overall it's a great system:

Athlon Sempron 64 3100+
Biostar TForce6100 motherboard
ATI Radeon X1300Pro 256 MB video card

On Saturday morning I went to Meijer's and got Oblivion and am very pleased with its performance on the new system.

I'm also very pleased to be able to run Linux on the system without having to dual-boot, thanks to Qemu. Now I can run Slackware in a separate window on Windows XP, and it's even pretty snappy. What a crazy world.

Permalink | Posted by Joe at 01:57 PM | Comments (0)

February 16, 2006

Back from the Future

One evening sometime late in 1987 or early 1988 I stopped at a local computer store and discovered that Borland Turbo C 1.0 had finally been released. That was big news to me: I was a poor college student who had been learning C on my own, and all commercial C compilers at the time cost at least $300-500, far more than my budget would allow. "Borland", "Turbo" and the $100 price tag made it a sure bet, and I plunked down my hard-earned cash.

I spent a lot of time in Turbo C's yellow-on-blue IDE, upgrading to 1.5, 2.0, and then Borland C++ over the next few years. After college I no longer had time to program, and Turbo C still remains packed up in a box somewhere (no, I never throw anything away).

Back in those days I had the dream of becoming a self-made C programmer, but it never happened. Until this year, when I finally (18 years after learning C, 7 years after becoming a self-made IT guy) was hired to be a C programmer, anyway. The large corporation where I work provides all employees with laptops, but we aren't allowed to install any software other than the officially approved packages. That's fine, but the officially approved packages don't include any C compilers. There's no way to do C programming unless we're connected to the corporate network and its servers.

Where there's a will, there's a way: I've figured out how to do local C programming on my (company-supplied) laptop. In November I bought a 512MB USB drive, very handy for carrying my own documents and software apart from the company laptop. And several years ago Borland (or whatever it's called nowadays) released several of its "antique" (hey, I think I resent that term) software packages free to anyone who wants to download them. One of those packages is Turbo C 2.0. After a short download and installation to my USB drive, I have a working C compiler without installing anything to the company laptop. After 18 years, I'm back to the familiar 80x25 yellow-on-blue text mode IDE.

Who says that you can't go back home?

Update 10:00PM

I found some nice stuff for USB drives at, specifically MPUI, a media file player which can handle a bundle of different formats. SLAX includes MPUI, and it's very slick. It's even slicker to have it completely portable on my USB drive. Now I can watch my (DIVX-encoded) Japanese shows on the laptop without installing anything on their sacred hard drive.

For programming purposes, I'm also carrying elvis on the drive. Now I just need a nice portable version of ksh or bash for DOS/Windows, and my life will be complete.

Permalink | Posted by Joe at 11:21 AM | Comments (0)

January 11, 2006

Certification as a means of avoiding knowledge?

Spotted on comp.lang.c: "Leo" wrote,

"I just had a job phone interview. Somebody asked me a lot of C questions which I was not prepared well. To avoid such questions in the future job interview, I hope to take some kind of C certificate."

"Leo's" request caught my eye: the place I work is doing a lot of hiring, and C is a required skill. If you have an interview, you WILL be asked C questions. I hear that some interviewees take 5 minutes or more to answer simple C questions; I'd guess that these are the guys who don't get hired.

If you go to an interview and they ask you if you speak English, you can't expect to point to a piece of paper which says, "I speak English" and hope that they'll be satisfied. If you interview for a job which requires knowledge and use of C, you really should expect to demonstrate knowledge of C. Maybe some skills can be certified away, but you can't fake it with C: either you know the language or you don't.

Hmmm. It makes me wonder if there ARE certificates you can get which will deflect any requirement of proving the skills in an interview. Scary thought.

Permalink | Posted by Joe at 09:36 AM | Comments (0)

January 02, 2006

Back to the Computing Future

All this working with C really brings back the 80s. I started learning C in 1987 and started programming when I bought Turbo C 1.0 on release day in 1988. Those were the days.

Of course, reviewing C leads naturally to reading Let's Build a Compiler and Compilers and Compiler Generators, and that leads to assembly language and cool articles about preserving/reviving old computers and I ended up spending several hours yesterday working on my VAXstation.

Unfortunately I hadn't fired up the VAXstation in over a year and couldn't guess the system password (it wasn't the usual password I use). Fortunately a former coworker had enlightened me to the fact that you can still break into a VAX and reset the system password, so I managed to accomplish that. However, all my software licenses expired in 2004, so I need to get new ones, and naturally that has to wait until my new Encompass/DECUS membership number gets registered with

Yikes. All this just to do some VAX MACRO programming. I could do it on the 3600, but it might seem antisocial to spend the entire weekend in the basement. I really need to get that thing networked.

Operating system fans, be sure to check out The Operating Systems Handbook, now freely available in PDF form. I really wanted this book 6 or 7 years ago and am really looking forward to reading it. It could be a great resume-booster.

Also, be sure to check out The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!). I wish it were about 3 times as long, but it's a great start if you know absolutely nothing about the subject (except the "fact" that "Unicode is simply a 16-bit code where each character takes 16 bits and therefore there are 65,536 possible characters"--completely untrue).

Permalink | Posted by Joe at 11:52 AM | Comments (0)

December 01, 2005

More Skypitude

I spent Sunday afternoon and evening working on our database group project at the apartment of another group member. As midnight approached I really needed to get home, but we also really needed to keep working. The solution turned out to be our good friend Skype. With Skype we were able to keep working till 3am, and the next night until 4am. Wait a minute. Is this supposed to be a good thing? Oh well, at least we handed in our project on time.

Permalink | Posted by Joe at 11:03 PM | Comments (0)

August 03, 2005

Too many languages, too little time

I have quite a wish list for programming languages.

I want to learn C++. C was my first programming language, back in 1987, and it'll always have a special place in my heart. C++ is a much bigger language but it has more capabilities. Java? No thanks. Give me a compiled language with some history. And jobs with C++ seem to pay pretty well too.

I want to learn Lisp. Ever since reading an introductory article in Scientific American back in 1986, I've wanted to dig in and get going. Several times over the last year or two I've felt like I was pushing the limits of Perl. I've known that I could do some things more easily in Lisp, but never learned enough to make it work.

I want to learn APL. Now there's some history, and who wouldn't love a language which uses such weird symbols...and binds such power to them?

I want to learn Forth. I want to learn Ruby. I want to learn assembly. Heck, I want to learn them all.

That's why I never get around to digging into any one of them. For now, I'm narrowing the focus to C++ and Lisp. That should be enough computer goodness for a while.

Permalink | Posted by Joe at 08:10 PM | Comments (0)

July 24, 2005

Slax: cooler than ever.

A while back I wrote about the goodness that is Slax, a live-CD Slackware distribution which fits on a cool 210MB mini-CD. Last night I spent some time on the site and am impressed with the pace of Slax development. Slax now gives you a boot option which permits you to store your Slax configuration on the Slax servers, giving you some real portability. I look forward to the day when Slax also permits you to store your configuration on your own servers.

Slax now also supports the ability to load the entire OS into RAM (256MB required), freeing a CD or DVD drive for other uses. I'm running Slax from RAM right now, and it is really snappy.

I've always been a fan of portable bootable Linux systems (Cramdisk, tomsrtbt, Knoppix, etc) but this is the best one I've ever used. I'm really interested in putting together my own version with a lightweight window manager and crammed full of programming tools. It'd make a great portable system to take along...well, anywhere.

Permalink | Posted by Joe at 02:25 PM | Comments (1)