Goodbye First-gen Roku

I just factory-reset my first-gen roku N1000 in preparation for junking. A cursory ebay search shows these listed on ebay as “vintage.” While it seems like I was able to successfully stream netflix, amazon, and PBS kids through it recently, it was probably a few years ago. (This is what growing old feels like, I guess.)

I type this post on an AMD phenom-II x2 that is only a year newer than the roku, yet runs win10 just fine, and continues to function as a contemporary to newer hardware systems. (A predecessor system with twice the cores but only 4GiB memory did not fare so well.) I added a GTX1650 to replace the anemic on-board video, and my kids have had no complaints so far about their game performance. (They are big fans of Terraria, Minecraft, and Geometry Dash, but it also runs WoW classic at 60FPS.)

Back to the roku… the reason the N1000 no longer works for streaming is not a technical one. It has its hardware limitations of 720p, and I suspect only a fixed set of supported CODECs, but I have run brand-spanking-new software on hardware from the early 90s, so I posit the decision to discontinue support is economic. I wonder what the real or perceived cost in continuing to support roku channels on the N1000 was when they decided to cut it loose? The projected margin for sales new hardware due to upgrades exceeds the cost of maintaining a CI environment for new software on old hardware?

Hobbyists can afford to have a warped sense of economy. Reduction in cost is an indirect goal, not maximization of revenue. For me, the primary cost has been time, followed by power consumption. I can’t recommend running PHP on a 400MHz alpha if you care about speed, but it was functional. Spamassassin took ~30s per message when I moved mail from my dual-processor SPARC 20 to an x86 VM. The same phenom-II x2 that I’m typing this message on now used to host all my VMs, and was replaced a couple years ago by a Dell Romley system which consumes roughly the same amount of power, but with 8x the hardware threads, 16x the memory, and 1/3 the rack space.

Tonight I packed up my c64 which is still able to read most of its disks from c1990 and isn’t dependent on the whims of a vendor for it to continue working correctly. I have three nexus 6 phones in my household now which had support dropped by google in 2017, but are able to run a frequently updated android 10 thanks to lineageOS. My kids’ chromebooks from ~2015 are both supported until mid 2021, and I expect I could install a third party chromeOS distro to extend the lifetime.

The c64 isn’t dependent on a third party to continue functioning. My nexus 6 and chromebooks will continue to work after the vendor drops support, but won’t receive security updates. In contrast, the roku is effectively dead, even though the hardware continues to work correctly. It can play videos from USB media, but the streaming services it utilized have been discontinued.

I want a long tail to hardware. I want the computing equivalent of replacing a refrigerator from 1978 because it no longer efficiently cooling its contents, not because the vendor decided they didn’t want to support cooling for that model. I want the decision to drop support for a given product to be made over a congregation of known users and code escrow being handed over to a non-profit or placed in public domain.

Sorry to see you go, first generation roku N1000. You seem to be working just fine hardware-wise, but apparently I never really owned you, and your true owners have a different software development optimization point than I do.

Loading the Barge

  • DEC
    • VAX
      • VAXStation 3100 M76
      • VAXStation 3100 M30 (VS42A)
      • uVAX-II (BA23 case, no rails)
      • VAXStation 4000 VLC
    • MIPS
      • DECStation 2100
    • Alpha
      • AlphaServer 1000A 5/400
      • Multia / UDB. Three of these, take ’em all! [only one taken so far]
      • Alpha 3000/400
  • Sun
    • SparcStation 1 (possibly 128M memory)
    • SparcStation 2
  • Terminals
    • ADM3a
    • Ann Arbor Ambassador

Systems marked in bold have found new homes.

The Multias are low-end and flaky; I can understand why they haven’t found new homes. The sparcs I’m a little surprised about… no love there?

goodnight clock radios

My wife has been modernizing her family’s vacation property, and all the clock radios have been replaced with newer ones which include USB charging jacks. A couple of them even have built-in cassette players, I suspect with very low use. I’m putting these cassette models on the street in the hopes a Portland Hipster or two will be willing to take them home and give them some love.

With practically everybody having an accurate network-synced clock on their nightstand which can trivially function as a clock radio and media player, are clock radios a technological anachronism being kept alive by millenials?

Spirit of Alpha, and the mottainai of old hardware

Mottainai is a Japanese term which roughly translates to a sense of regret or shame in throwing old objects away. Old objects (historically 100 years old) may gain spirits (Tsukumogami) and be even more wasteful to throw away. Much of my old hardware gives me these feelings.

Thus we return to my AlphaServer 1000A 5/400, which dropped not only a disk from its RAID5 years ago when I started this post, but also the spare it was going to rebuild on. Luckily I had a spare drive, and still had written notes on how to perform the (offline) component restore, and was able to move home directories to more recent hardware to lessen the stress on the array. It has been holding without losing more disk for over two years. (The uptime typically reflected long term power outages more than hardware issues.)

I dragged out the process of moving everything off the Alpha and retiring it permanently, since it still seems somehow disrespectful. It’s a huge (8U) box, eats up loads of power (250W idle), and is easily bested compute-wise by my decades-old x86 hardware. Apparently the 1000A was also not well-known for reliability, but somehow mine has worn the ages well. It was the main academic server for many years at my alma mater, and ran my primary domin services for roughly two decades after that.

I could probably have taken the disk array offline to save half the power, and for a period I was seriously examining what it would take to install a PCI SATA controller with an external disk tray. This, of course, never happened.

Tonight I migrated the last service off of it (NIS) and it has been powered down. It’s a little quieter, and I am a little sad. Alpha never got what it deserved, buried under double-acquisition over a failed bet. (IA64)

If nothing is completely broken by its offline-ness, it’s only a matter of time until it is evicted from my basement. This is perhaps the event that hurts the most; even though I cannot justify the space taken up by inanimate obsolete computers, I feel like they deserve space in a shrine of some sort, not disassembly.

bridges to past peripherals

I’ve been slowly bringing up a dual Xeon E5472 system from circa 2008 as a storage server. It has a single PCI-X slot, with the rest PCIe x4. The PCI-X slot is occupied by a 3ware escalade variant, so I have no other PCI slots available. I originally intended to run Joyent SmartOS on it for use as a dedicated storage server, possibly migrating some VMs to containers. The SmartOS kernel (nee OpenSolaris) unfortunately doesn’t support the 3ware card, even in JBOD mode, and I already deal with ZFS with Linux at work, so I figured I’d try FreeBSD. I was able to get it installed on a ZFS mirror of mismatched drives after running through a manual gauntlet, but spare SATA drives are in short supply in my basement datacentre, so I figured I’d see what else I could connect to it. (I’m holding out hope for a PCIe SCSI controller to keep some SCA drives in service.)

For kicks, I purchased a PCIe to PCI bridge, so I could install a PATA controller, and try running ZFS mirrors on some new-old-stock PATA drives. I expected the PATA controller to be minimally functional, but I’m pleasantly surprised at how well it works. Benchmark performance is comparable to within a couple percent (2% worse, in some cases 10% better) than a mirror assembled from my mismatched SATA drives. I suppose this isn’t surprising since the drives I’m testing are contemporaries, just with different interfaces. (I also expect that as I add more spindles to the PCI-X SATA controller it will continue to scale bandwidth, which ye olde IDE controller can’t physically do.)

My computing conscience pointed out that a far better use of this newly acquired SATA connectivity would be to buy some large SATA drives and copy images and/or data from the smaller obsolete drives I have been collecting for data retention purposes, and then get rid of them. Going through a few drives so far, the storage space is trivial, since all the drives of interest are < 100GB. After optionally transferring contents of and clearing a few drives, I ended up with a pile to take to the local recycler. While I was there, I picked up three 500GB WD blues to assemble into a ~1TB RAIDZ. I'm getting roughly 100MByte read and write benchmark speeds, which seems plenty fast for my purposes. The only benchmarks I have which beat it are SSDs or a (very) large (now waterfalled) fibrechannel disk array. Seems like adding a few more disks for a 6-disk RAIDZ2 could make sense, but I also have a couple 3TB drives I plan on shuffling into the array as part of my grand migration scheme.