More from Rubenerd
I feel like I righted a wrong in some small way recently. It also gives me an excuse to write another of my shaggy dog posts about old computers, which I’ll never pass up the opportunity to do. Behold, our boxed copy of Digital Research DOS 6.0 from 1992: The first OS I ever used was MS-DOS 5.x on the family 486, upgraded shortly after to MS-DOS 6.2 [sic], then Windows 95. DOS was “what came with computers” to me at the time, so the idea there were alternatives didn’t even cross my mind. MS-DOS’s origins lay with QDOS, itself a broad clone of Digital Research’s CP/M operating system. CP/M-86 was compiled and offered for the original PC, but IBM famously went with Microsoft instead. The circumstances surrounding this decision remain… contentious. Either way, I’ve had a soft spot for Gary Kildall since I first saw him on those archived episodes of the Computer Chronicles. People like exploring an alternative universe where IBM went with CP/M over DOS, and Gary had become the billionaire tyrant instead of Gates. We can only speculate, but Gary always struck me as more of a self aware, Woz-type character than Bill. I’ve mentioned how Digital Research’s GEM desktop was a big part of the reason why I got into the Atari ST, but I haven’t talked much about DR DOS, the OS Digital Research released to compete with Microsoft and IBM. I never used it as a kid, but I wondered what Gary and his team had been able to deliver. Last year I acquired disk images for every major release, in part for a blog post series about DOS that I never ended up publishing. Version 6.0 quickly supplanted IBM PC DOS 7 as my preferred DOS; everything from the installer to the included utilities are vastly superior, and it even came with ViewMAX, a file manager based on GEM/3. Awesomesause! Pair this with Turbo Pascal, Commander Keen, Sim City 2000, The Games: Winter Challenge, the Brief editor, and the DOS port of Lemmings, and I’ve got all the bases covered! DR DOS 6 was released in 1992, around the time Digital Research was acquired by Novell. For context, Lynne and William Jolitz released 386BSD at the same time, and Microsoft was selling MS-DOS 5.0 to my dad for our first family PC. He could have ended up with DR DOS 6.0 instead, which makes this all the more interesting. This boxed set of DR DOS 6 includes the instruction manuals for DOS and ViewMAX, along with a handy reference card. The “Value Pack” sleeve contained the install disks, but I’m not sure if it previously had something else. The OS itself is contained on two 5.25-inch high density disks, along with the original voucher for 360 KiB disk versions. So many of the disk labels from the time seem to have developed this blotchy appearance, but fortunately it’s only cosmetic. Funnily enough, my PC DOS 2.1 disk is about the only one from the early 1980s that hasn’t developed this odd label issue. In the next post, I’ll get a basic install of DR DOS 6 going, to demonstrate why I like it so much. Only took me (checks calendar) two and half decades. By Ruben Schade in Sydney, 2026-09-02.
I worked briefly in process control when I was younger, and saw Things.™ One of those Things™ was a wall of LEDs to indicate statuses of various valves and sensors across the entire plant. It was old school, but it worked. It also made you feel like you were on a 1960s-era sci-fi set. What does this have to do with databases? That’s an extremely excellent, and dare I say handsome, question. While we’re on the topic of things I used to do, I used to work against a large database that had a schema with a specific quirk that used to drive me up the wall. Take this contrived example of a table for an account: username | active | paid ---------------+--------+------ nagato_yuki | true | true takarada_rikka | true | false And another for some basic infrastructure: hostname | running | error ------------------+---------+------- retro.rubenerd.au | true | false www.sasara.moe | true | true Do you spot the subtle difference between the two? Why is the first table well designed, and the second one horrible? The first table has uniform positive attributes. Having an active account is good, and being paid is good. This means one can tell at a glance whether an account is in good standing or not. You can also do trivial boolean algebra to derive a status. The second table has a mix of positive and negative attributes. Having a running state of true is good, but having an error state of true is bad. This means you can’t as easily tell at a glance the status of an instance. You can’t also as easily derive an overall status. The value of consistent booleans was something that was immediately obvious when looking at that status wall. It mostly had white lights. When one of these changed colour, you knew there was something actionable. If that status wall instead was designed with some lights being positive, and some being negative, it would be almost (but perhaps not entirely) useless. ☕︎ ☕︎ ☕︎ Why am I thinking about this today? I’ll admit it’s for an incredibly embarrassing reason: I had a dream about databases last night. I know, some people have fun dreams involving flight, reliving something they enjoyed, or exploring a new side of themselves. I dreamed I was back at uni with my DB professor who insisted that all booleans should have positive assertions. Anyway, I was shy at the time when I went to that class in the real world, and said nothing. But what I wanted to say was that uniformity is more important. Most of the time there’s an unambiguous, convenient term to describe something positive, but I also acknowledge there are some circumstances where forcing this naming can get clumsy, such as having a schema full of not_$foo attributes. It’s not a data science to me, but I’m reminded of the sixth rule from The Economist Style Guide: Break any of these rules sooner than say anything outright barbarous. The same applies for software variables, but that would be a whole other post, can of worms, and kettle of fish. By Ruben Schade in Sydney, 2026-07-01.
So here’s the thing. Late last year I bought the excellent SilverStone FLP02, a retro-themed computer case with modern component support. It was absolutely, jaw-droppingly gorgeous, and has easily become my favourite modern case alongside the legendary NCASE M1. It’s big, relatively easy to work in with just a few caveats (a topic for another time), and yet looks the part so well. I’ve since moved our FreeBSD bhyve/jail server into our FLP02, and am giving serious consideration to an additional one for my desktop in the loungeroom. It’s that good! I subsequently received email from angry people asking me what the point was, which I answered in a detailed reply. Turns out that just made them more cranky, because they thought I was mocking them somehow. Perish the thought! But use of such a case poses a problem, and it’s the same one the plagued seemingly all beige computer towers at the tail end of what I call the Golden Era of computer cases. Which I suppose should really be called the Beige Era. The era when computer case manufacturers thought the buying public should be able to buy whatever colour they want, as long as it matches a Model T Ford. It was such a disappointing development. If we were going to replace beige—a colour mostly unique to computers in the consumer electronics space—why did it have to be the most boring colour (or lack thereof) of all time? But I digress. The biggest problem beige towers face is the pairing of drives and peripherals. During that transition period between awesome beige and mediocre black, you were lucky to get a part that matched. Black optical drives in beige cases, and beige disk drives in black cases became a distressingly common sight. Retrospectively, I have friends who harbour a nostalgic attachment to that anti-design. To them, a beige case doesn’t look complete if it doesn’t have a mismatched drive. I respect that position, but it’s not for me. I grew up with beige DIY towers with beige drives, and that’s what I want for this glorious FLP02 damn it! I want stuff to match, even though I concede plenty of people mismatched components owing to price, convenience, and/or availability. Which leads us to this contraption pictured here: This is a drive cage, designed to slot into two 5.25-inch drive bays and hold three 3.5-inch hard drives. While the FLP02 is stupendously wonderful, it technically has fewer internal drive bays for storage than the Antek Three Hundred I used to use, which resulted in me needed to purchase additional drive capacity. This drive cage allows me to mount an 80 mm Noctua fan (itself beige!) into the front, and keep three additional drives cool. I have a separate post about how this works pending. I prefer finding beige components when I can for new and old builds alike, but when that isn’t possible I’ve developed a system that (mostly) works using these three cans: They are, from left to right: A self-etching primer. I like the White Knight Rust Guard SLS the most, though I’ve had success with others too. Primer gives your paint better adhesion, and self-etching means you don’t need to do any manual work to rough up the surface to accept the paint. This is especially important for smooth painted surfaces or bare metal, though it’s also worked great on rougher powder-coated computer parts for me. A colour, of course. Rust-Oleum Chalked Chiffon Cream is brighter than the beige used in computer components, but it’s the closest match I’ve found thus far after exhaustive testing. A top coat to protect the painted surface. I like Rust-Oleum’s Satin Clear, becuase it gives a similar finish to the powder-coated surfaces on beige powder coatings. Painting takes a while, but I’ve found being slow and building up very thin coats works best. My approach: Wipe down and clean the item to paint with isopropyl alcohol until there isn’t any dust, fluff, or other detritus across the surface. If you don’t, and you paint over the top, you’ll get a lump that will have to be sanded down, and likely result in you repainting the whole thing. Place a tarp down over a table or other surface outside, and weigh it down with some heavy objects. We use a few large stone coasters. Don a mask too; you don’t need to vape paint, let alone anything else. Place the item to be painted on top of the tarp. Shake the cans vigorously for at least a minute. In cold weather, use a hair dryer to heat the can and its contents slightly (though obviously not too long). This is a tip multiple artists and industrial designers have told me about, before you write an email telling me this is a bad idea. Hold your can about 20-30 cm away from the part, and spray across the surface with your primer, overlapping a little with each pass. I find two coats works best, with at least an hour between each coat. The cans claim they dry in less than ten minutes, but yeah, nah. Spray three to four thin coats of your beige coloured analogue, leaving at minimum an hour in between again. Err on the side of not applying enough instead of applying too much. You can always build up more layers, but if you apply too much at once, it’ll goop up, take forever to dry, and will get stuff stuck to it. Every mistake I’ve made has been down to impatience. Finish it off with one or two coats of clear satin finish. This is what my drive case part looked like after two coats of the coloured paint. You can see the lower edge is slightly darker than the rest, so I went over that area a bit more on a subsequent pass. Note also the droplets of rain on the tarp, which required me to pause painting last week (cough). Once I’d finished, I attached it back to the drive cage and installed it into the FLP02, along with the Noctua fan and the supplied dust filter. Success! As you can tell, the colour isn’t exactly the right shade of beige, but it’s still a significant improvement (to me) over the matte black of the previous part. If anything, slightly yellowed case parts look closer to it, so this approach works especially well for older towers. Now I just need a SATA DVD-RW in the appropriate beige colour, and another drive sled to arrive from SilverStone (post incoming!), and this build will be done. What an awesome case. What a fun time! By Ruben Schade in Sydney, 2026-06-02.
I was going through my drafts folder, and came across a post I’d written way back in 2018. I’m not sure what site I was browsing at the time, but it was still a fun observation. If I came across this error in a more modern context, I’d assume site owners are placing limits to deal with the onslaught of gen-“AI” DDoS attacks. ☕︎ ☕︎ ☕︎ I was browsing an online store, like a gentleman, when I saw a message that sent me back to the Web 1.0 days: Due to an above average number of visitors, the maximum number of connections have been reached. Please try again later. I wonder how many other sites still have a codified ceiling on the number of visitors? It reminds me of the old days of CGI. This used to be much more common in my experience, but thesedays sites are expected to scale indefinitely. Or in the case of one of our banks, let their servers grind to a near halt when too many account holders try to log in at once. If I were more cynical, I’d claim they do it because they have plausible deniability among a client base who may not be tech savvy. “Not sure what you’re talking about, it loads fine for us! Have you tried turning your modem off and on again?” Calculating these limits when you’re talking about database transactions, processes, threads, or memory is somewhat easier, because you’re dealing with finite, measurable metrics. But my favourite are those (almost always rude) client calls that begin by asking how many clients can access a remote desktop, without any context about what applications the clients will run, or what their connections are. Sure thing, and how long is a piece of string, good sir? By Ruben Schade in Sydney, 2026-04-05.
More in life
Laetitia@Work #104
Trustocracy sounds funny, but it's a more accurate representation of how we're measured. We aren't (and can't) be measured objectively on what we accomplish at work. But we are (unavoidably) measured by the trust we've built with our co-workers.
When you’re young, making a bucket list – things you want to do before you die — feels like you’re choosing prizes that will arrive in the mail later. I’ll take fluency in Italian, please, a 300-lb bench press, and a swim in the Nile. I’ll definitely want to drive a Ferrari on the Autobahn at some point. How about […]
The Email Exchange That Radicalised Me