I was probably 15 or 16 years old when computers first started appearing at the consumer level.

In the late 1970s, these were mostly for playing games. I played Pong (1972) and Asteroids (1979) on the first arcade consoles; Air-Sea Battle (1977) at Sears on the Atari VCS; Carriers at War (1984) on the Apple ][, and Crush, Crumble and Chomp! (1981) on the TRS-80.

My first experience using a computer for anything other than games was the University of Maine mainframe in 1982, long before the invention of the Web (1989) or even the TCP/IP protocol (1983) that heralded the creation of the Internet.

This was a time when card punches and readers were still being actively used. Students preferred to do homework on paper-fed teletype terminals like the DECwriter II rather than video display monitors, because they would still have a printed record of their assignment if the mainframe crashed and lost their work. It would be years before the first IBM PC model would appear on campus.

It’s a fair question to ask: with no games and no Internet, what did we actually do on the university computer?

Herein lies an interesting tale. You see, before TCP/IP, IBM had created its own networking protocol called RSCS, and in 1981 – a year before I arrived at UMaine – RSCS was used to connect computers at UMaine, Yale, CUNY, and a handful of other colleges in an academic network known as BITNET. BITNET allowed users at different sites to send programs and data files to one another, exchange email, and send interactive messages, and it would eventually grow to over 3,000 universities across much of the developed world.

In 1982, the idea of being able to send an instant message to someone across campus – or even across the country! – was incredibly compelling.

But RSCS messages weren’t all that. An incoming message would interrupt whatever you were doing, whether that was running a program, archiving files to magnetic tape, or composing a term paper. Each message was separate; there was no concept of an ongoing conversation, and there was no way to include anyone other than the sender and one recipient.

TeleVideo 925 terminal

TeleVideo 925 terminal

That all changed in 1983, when one of our university’s computer center staffmembers took an example program from a magazine and ran it on his mainframe account: WGH@MAINE. The program was what we called a chat machine; users across BITNET could sign in and send messages to it, and the program would echo those messages to all the other signed-in users. It was the ultimate ancestor of later services like Chat@PSUVM1, Relay@Bitnic, IRC, and Discord.

And its use spread like wildfire among the undergrads. If you were a smart kid who wasn’t into partying, then hanging out on a chat machine was how you spent your time. I devoted endless hours with a cadre of other geeks in the mainframe’s “user area”, idly hanging out on these early chat machines, conversing by text message with an increasingly familiar set of students from random sites across the world. I joined several other Mainers in making the trip down to New York City to attend the world’s first ChatCon meetup in 1984.

These days, I still retain a deep sense of nostalgia for those early days, and keep a few of the memories alive in odd, eccentric ways. Not only does my laptop’s “Terminal” window open in the classic green-on-black of a monochrome mainframe terminal, with the standard CMS “Ready;” prompt, but it also paints the default character-graphic VM/370 login panel. I wish one of my friends still had a copy of the old CAPS/UMaine login panel: an outline of the state of Maine, done in asterisk characters!

My Terminal window also uses the same idiosyncratic font-face as the huge old IBM 3278 terminals of the day. That’s kind of an indulgence, because I never used one… The only 3278s were kept inside the mainframe machine room; lowly student users like me only had access to TeleVideo 925 or 955 terminals… And no one has bothered to port those terminals’ fonts to modern Truetype or Postscript files!

One of the attributes of those mainframe terminals that I recall most fondly were their industrial-strength keyboards. They were of the same vintage as IBM’s “Big Iron” mainframes, long before “planned obsolescence” was a thing. Those keyboards were built to easily withstand a decade of student use, or a direct thermonuclear explosion, whichever came first.

Those old 4½ pound mainframe keyboards were so different from the flimsy, commodity rubber membrane actuated keyboards you get today, or the 1.4 pound Apple Magic Keyboard with its little scissor switches and a mere 1.15mm of key travel. And frankly I really missed the typing experience of a solid, durable keyboard with mechanical switches.

So now I have to admit… This whole nostalgia dump was really just a lead-up to this: I recently bought my first mechanical keyboard.

Now the first thing I’m gonna do is warn you: if you get intimidated by too many choices, selecting a mechanical keyboard is a complete morass! You’re absolutely inundated with choice, beginning with what size keyboard you want, and what keyboard layout. Then there’s tons of different keycaps to choose from, coming not just in different colors, but with different heights and profiles. Next there’s hundreds of different types of switches, with different travel, activation, and sound profiles. Mechanical keyboards are – unexpectedly – one of those incredibly detailed, technical areas that enthusiasts love to submerse themselves into, for reasons known only to the cognoscenti.

Keychron V6 Max keyboard

Saving you all the drama, I chose a Keychron V6 Max. I wanted something really traditional: a full-sized keyboard with dedicated function keys, arrow keys, and a number keypad, similar to the original IBM Enhanced PC keyboard, which is probably the most famous keyboard in history. The V6 Max is also wireless, which I prefer, given that I often type with the keyboard on my lap. And it’s sturdy, weighing in at 4.47 pounds, only half an ounce lighter than my beloved TeleVideo 925!

I kept the stock keycaps, which are a nice two-toned blue, with reddish ESC and ENTER keys. The keyboard has modes for both Mac and Windows, as well as dedicated keycaps for both OS’ idiosyncratic command keys.

Not knowing much about switches, I ordered two sets: the Gateron Jupiter Brown and Gateron Jupiter Banana, but I quickly opted to run the latter, which have a more satisfying sound, which will hopefully not perturb my housemate.

Other features… The keyboard is customizable with industry-standard QMK or VIA software. It also has a handy dedicated volume/mute knob on the top row just to the right of the F12 key. Like many modern keyboards, it comes with (often maligned) programmable LED backlighting, which I’ve set to simply flash blue underneath each key as it is activated. I also bought a nice clear plastic keyboard cover to put over it when not in use.

Having had it for six weeks, I have to say that it’s been a pure delight, and I find myself looking for reasons to sit down at the keyboard and bang away on it. In fact, I enjoy typing on it so much that I’ve been thinking about setting up a Discord text chat for a gathering of BITNET friends to revisit those old days when we used to spend hours upon hours typing to one another across the ether (hence the reminiscing about chat machines, above). And fair warning: another way I’ll satisfy my rejuvenated enthusiasm for typing is to produce more longwinded blogposts like this one!

I’ve only had two minor niggles. I had one bad switch – which happened to be on my ‘s’ key – that would register a double-strike about half the time. However, that was easily remedied by swapping the switch out. The other niggle is one I’ve had in the past with several other keyboards: the little rubber feet on the ends of the keyboard’s prop-up legs always seem to come loose for me, requiring an end-user application of superglue to stay put.

So after all that, the bottom line of this post was just to spend time gushing about having finally bought myself a quality keyboard. I’ve been dealing with garbage chiclet keyboards ever since I left college back in the late 1980s, and – given the amount of time I still spend sitting at the computer! – I was way overdue in treating myself to a higher quality input device.

And I’ll type, type, type till my baby takes my key-board away…
(no apologies to Brian Wilson)

When I was in school, the original IBM PC came out. Anyone who used them will never forget carrying a handful of those black-sleeved 5¼-inch floppy disks around. Talk about data portability! You could fit the entire PC-DOS operating system on one 360 kB floppy and still have room left over for some user files. A blank diskette could hold the equivalent of about 175 pages of text!

But the cool kids never used PCs; we had Big Iron. At that time, most of the disk drives used on the university’s IBM mainframe were 3380s. Each drive was the size of a refrigerator and held 2.5 GB of data (about 7,300 floppies). You could daisy-chain eight of them together into a string that was about the size of one of those moving/storage “pod” containers (see below) and which held 20 GB.

After I graduated from college, I ran a mainframe shop for a company doing statistical analysis of medical records, and I bought a couple strings of used 3380s. Man, those were the days when people knew you were computing hard! Nowadays you can get one of those fingernail-sized MicroSD cards (see below) with 64 GB of storage—the equivalent of three full strings of 3380s!—for less than fifty bucks.

Where is all this going? Today I received shipment of an external hard drive to backup my home laptop. Two freakin’ terabytes. That’s the equivalent of 820 of those refrigerator-sized 3380s, all sitting in the palm of my hand in a box that’s about the size of a paperback novel.

Boggle!

Work rant. Only interesting to geeks.

I’m working at a client site. Last week I had to ask the person who runs their testing team whether they test a particular feature before releasing their software.

The staffperson figured the best way to find out would be to do a text search on the files they use for testing. Nothing could be simpler, right?

Well, not so fast! This person was a unix weenie. So she opened up a commandline window and entered a find command and piping that into grep. Not so simple, but I guess it works for some.

Well, not really. See, those files had spaces in their names, which causes unix to gag unless you know how to deal with them. Our heroine didn’t. I continued to stand around, waiting for an answer, while she dorked around in a laborious attempt to enter random command options in hopes that something would work.

After several minutes of watching this farce, I suggested she consider using Windows’ find utility, which would have done the job in less than fifteen seconds, without having to rely on her all-too-fallible monkey brain’s recollection of unix’s intentionally difficult-to-use command set. My comment wasn’t even given the honor of a grunt.

After a few more minutes, our erstwhile heroine looked at me and mumbled, “I guess I’m going to have to write a perl script.” Yeah, you’re going to recreate an entirely new text search utility from scratch, when there’s a perfectly good one built into Windows, and when a little RTFM action might allow you to perform the function in the precious unix you apparently don’t know as well as you think…

But then the topper came. “I wonder if Eclipse has anything that would do this?” Yeah. I imagine a full, bloated Java IDE would have a search function built into it. Of course, that’s a bit like using a Boeing 747 to deliver your pizza, when there’s a perfectly good car standing nearby.

This is why it’s important to be technology agnostic. Your favorite tool may be great at one thing, but it’s not the only tool there is, and often other tools will do a better or faster job at solving your problem. A carpenter whose toolkit only includes one belt sander is pretty stupid, and it’s downright pathetic when he doesn’t even know how to use that properly…

Not to open up the whole OS wars thing, but I’ve never seen the appeal of unix, and I’ve worked on it a fair amount. Its editors suck, and its command syntax sucks. Not that Windows is much better. It’s incredibly inefficient bloatware, and is ludicrously susceptible to system hangs and crashes. And Macs remain an oddity, never anything more than a footnote in the personal computer’s evolution.

I stopped using IBM’s VM/CMS mainframe operating system back in 1994, but there are things I still miss about it. It was stable. Its commands were powerful *and* intuitive at the same time (OMG!!!). And in the two dozen years that I’ve been coding under other operating systems, I’ve never found another editor that could hold a candle to Xedit. In fact, I’m composing this very article in Kedit, an excellent Windows port of Xedit. It rules, although I'm also thinking about checking out THE

And while I’m ranting about work, how about this one? After struggling with mysterious database connection issues and seemingly resolving them, I was asked to walk some of the client’s clients through part of the system. In the middle of the demo, the system starts having database connection issues. I have to abandon the demo in shame and attempt to triage the issue.

What did I find out two hours later? The client’s client’s IT people were in the server room, physically moving the server around, and kicked the power cord, dropping the entire database machine. Great. They have all kinds of siloed testing and formal processes to move programs from testing through production, but they pay a generous salary to a big hairless ape who randomly takes the server boxes out for constitutional strolls around the server room! Gee, what are we gonna do today, Brain?

If there’s one thing I’ve learned in more than a decade of consulting, it’s that no clients (and certainly no client’s client) should ever be allowed to touch a computer.

Frequent topics