Monthly Archive:: April 2023

The worst-selling Microsoft software product of all time: OS/2 for the Mach 20

In the mid-1980’s, Microsoft produced an expansion card for the IBM PC and PC XT, known as the Mach 10. In addition to occupying an expansion slot, it also replaced your CPU: You unplugged your old and busted 4.77 MHz 8088 CPU and plugged into the now-empty socket a special adapter that led via a ribbon cable back to the Mach 10 card. On the Mach 10 card was the new hotness: A 9.54 MHz 8086 CPU. This gave you a 2× performance upgrade for a lot less money than an IBM PC AT. The Mach 10 also came with a mouse port, so you could add a mouse without having to burn an additional expansion slot. The Mach 20 took the same basic idea as the Mach 10, but to the next level: As before, you unplugged your old 4.77 MHz 8088 CPU and replaced it with an adapter that led via ribbon cable to the Mach 20 card, which you plugged into an expansion slot. This time, the Mach 20 had an 8 MHz 80286 CPU, so you were really cooking with gas now. And, like the Mach 10, it had a mouse port built in. According to a review in Info World, it retailed for $495. Microsoft also produced a customized version of OS/2 for the Mach 20. Despite being tailor-made for the Mach 20, it still had terrible performance problems. One of my former colleagues spoke with the person who took over from him as the support specialist for OS/2 for Mach 20. According to that person’s memory (which given the amount time that has elapsed, means that we should basically be saying “according to legend” at this point), a total of eleven copies of “OS/2 for Mach 20” were ever sold, and eight of them were returned. That leaves three customers who purchased a copy and didn’t return it. And the support specialist had personally spoken with two of them. If these numbers are accurate, I believe this makes OS/2 for Mach 20 a strong candidate for being the worst-selling actually-shipped Microsoft software product of all time. We have to find this. Someone must have a copy of OS/2 for Mach 20 in a box in the attic somewhere. This is the final boss of software preservation.

Of Sun Ray laptops, MIPS and getting root on them

In Sun’s ideal world, a user would run programs on a central server (a Sun, of course), having their session follow their smart card seamlessly from terminal to terminal along with any other shared resources they might require. While Sun produced the JavaOS-based JavaStation in 1996 — ironically based on Oracle’s Network Computer concept — it used relatively expensive hardware, being essentially a miniaturized SPARCstation 4. Instead, the new proof of concept for a cheaper, more connected world was the 1997 NetWorkTerminal “NeWT” — one wonders if that abbreviation was a coincidence — based on Sun’s MicroSPARC IIep CPU, and that prototype in turn evolved into the first Sun Ray thin client in 1999, codenamed Corona. Setting up a number of Sun thin clients – both fixed and laptop models – running off a Sun Ultra 45 workstation, with smartcards and all, is basically my retro computing end game. I have always been deeply fascinated by “the network is the computer”, and while there’s quite a few other thin client platforms, it’s the Sun one that feels like the real, original concept. I can’t find a reasonably priced Ultra 45 anywhere – feel free to contact me if you have one on offer – but Sun thin clients are a dime a dozen on eBay. In any event, it will come as no surprise that I love the linked article.

JanOS: turn your phone into an IoT board

JanOS is an alternative operating system for mobile phones, designed to run on devices without their screen attached. It was demonstrated as a proof of concept during JSConf.EU 2014. Shortly after it was chosen as the OS that powers Gonzo, a cellular connected and low-power camera. The project is maintained and funded by Telenor Digital. It’s heavily based on Firefox OS, and currently only supports a relatively small number of devices. It’s open source, and the project’s goal is to make the ‘motherboards’ inside phones more useful and extend their useful lifespan.

Apple’s foray into mental health is going to make everything worse

Behavioral health interventions are notoriously difficult. They require a grasp of psychology, sure, but they also require a certain amount of flexibility because people’s lives are complicated. Apple’s ham-handed approach to physical health has been bad enough — the idea it is now going to approach mental health does not fill me with confidence. I’m sure there are plenty of people out there who won’t mind letting Apple toy with their emotions. But we’ve got a lot of evidence now that too much screen time is linked to bad health — and for Apple, its entire business is getting you to spend more time with its software and gadgets, not less. This is a great article, and highlights the problems that stem from tech bros trying to be doctors, or in this case, even psychologists and therapists. Health interventions require a personalised approach, and blanket one-size-fits-all attempts are generally suboptimal. A person with weight issues who happens to perform a physically intensive job will require a different approach than someone with similar weight issues who has a desk job. A generic “move!” on your Apple Watch a few times a day won’t really help either of those people. This gets even more problematic with mental health issues. A great example of just how counterintuitive health information can be comes from myself – I have a severe anxiety disorder and related mental ailments, and I’ve been trying to learn to live with it since I was a child (there’s probably a genetic element, since similar disorders run in my family). Through a combination of extensive behavioural, cognitive, and physical therapy, a lot of scientific studying with my doctor and other specialists into what, exactly, is wrong inside my brain and body to gain a crystal clear insight into how anxiety fluctuates in my body during the day and what internal and external stimuli affect it, and to cap it off a very small dose of daily anxiety medication (it took me almost two decades to come around to taking medication), I now have my mental health issues well under control. That being said, I will always have these problems. I manage them every day, and they’re never gone, like someone with chronic back problems, even if I seem completely “normal”. Passively and actively, throughout every day, I manage my anxiety, make sure I keep it in check, and recognise the earliest possible warning signs, all made just a little bit easier by my medication. When I emigrated to Sweden four years ago to live together with my now wife, we went to IKEA, about a 90 minute drive away on the border with Finland. Since trips like that generally increase my anxiety considerably, I had a few rough days leading up to it, but during the car ride, I finally managed to overcome it and settle down. As we parked, everything was back to my normal levels – a change in venue from e.g. car to destination often works as a “reset button” of sorts – and we were ready to shop and eat meatballs. And then my smartwatch pinged me in the IKEA lobby. Despite me feeling entirely normal with for me acceptable levels of anxiety, it started telling me I was experiencing the highest level of “stress”. Even though I did not feel any stress whatsoever, such a small thing can be enough to send me into a downward spiral of a panic attack – which I actually do not have very often, maybe once a year or so. Due to having just emigrated thousands of kilometers away to the Arctic, leaving family and friends behind, I was obviously already susceptible, and this stupid digital piece of crap on my wrist telling me I was “stressed” was all it took to trigger a massive panic attack. I’m used to always having a heightened level of anxiety and associated vitals compared to others, but this watch didn’t know that. It just had some basic data programmed in about what is “normal” for someone of my stature, gender, and age, and didn’t take my personal situation into account at all – because it couldn’t. There are countless little indicators, both internal and external, that come into play in a situation like this, and a smartwatch has no way of learning or disseminating such information. It takes a dumb, standardised, generalised shotgun approach in determining if its wearer is “stressed”, actual, real-world stress levels in the moment be damned. This is why I am incredibly weary of Apple”s rumoured plans to enter the realm of mental health with its Apple Watch. As the linked article details, it’s already not doing a great job at managing people’s physical health, and I am genuinely afraid of what effects such a crude approach will have on people’s mental health. Shotgun mental health notifications are going to make people obsessive, they’re going to give people anxiety, they’re going to give people panic attacks, they’re going to give people depressive episodes, they’re going to disturb people’s sleep, they’re going to worsen or even cause eating disorders, and much more. Mental health is not something you should leave to Silicon Valley tech bros – you should leave it to your doctor, trained medical personnel, licensed psychologists and therapists, other specialists, and science, not to a glorified wrist calculator.

Microsoft leak hints show labels on taskbar and more features coming to Windows 11

Speaking of Windows, here’s something I’m pretty sure many of you will be very happy about: In March, we exclusively confirmed the tech giant’s plan to restore classic taskbar features in the fall as part of the Windows 11 version 23H2 update. One of the features set to return is “never combine” for the taskbar. As the name suggests, this new toggle would let you ungroup icons/apps on the taskbar. Microsoft has finally added the early bits of the functionality to the taskbar with Windows 11 Build 23440, which is available in the Dev Channel. In the update, Microsoft has reintroduced the taskbar show labels feature and the ability to ungroup app icons on the taskbar in Windows 11, addressing user demands for these popular legacy features. I prefer the more dock-style approach to managing and opening applications, but I know a considerable number of you prefer the more traditional taskbar-based approach.

Windows 10 22H2 is the final version of Windows 10

As documented on the Windows 10 Enterprise and Education and Windows 10 Home and Pro lifecycle pages, Windows 10 will reach end of support on October 14, 2025. The current version, 22H2, will be the final version of Windows 10, and all editions will remain in support with monthly security update releases through that date. Existing LTSC releases will continue to receive updates beyond that date based on their specific lifecycles. It’s important for organizations to have adequate time to plan for adopting Windows 11. Today we’re announcing that the next Windows LTSC releases will be available in the second half of 2024. You will move to Windows 11, whether you like it or not.

The glorious return of a humble car geature: buttons are coming back

You don’t see a lot of good news about road safety in the United States. Unlike in most peer countries, American roadway deaths surged during the pandemic and have barely receded since. Pedestrian and cyclist fatalities recently hit their highest levels in 40 years, but U.S. transportation officials continue to ignore key contributing factors. In a February interview with Fast Company, Transportation Secretary Pete Buttigieg said that “further research” is needed before addressing the obvious risks that oversized SUVs and trucks pose to those not inside of them. Happily, there is one area where we are making at least marginal progress: A growing number of automakers are backpedaling away from the huge, complex touchscreens that have infested dashboard design over the past 15 years. Buttons and knobs are coming back. Good. Now all we need is for all these popular YouTube car reviewers to stop drooling over these dangerous touch screens and we can get back a sense of normalcy in our cars.

First ROM Shadowing

The other day I was asked an interesting question: What was the first BIOS with support for ROM shadowing? In the 1990s, ROM shadowing was common, at first as a pure performance enhancement and later as a functional requirement; newer firmware is stored compressed in ROM and must be decompressed into RAM first, and firmware may also rely on writing to itself before being locked down and write protected. Old PCs did not use ROM shadowing because it made no sense. ROMs were only marginally slower than RAM, if at all, and RAM was too precious to waste on mirroring the contents of existing ROMs. Over the years, RAM speeds shot up while ROM remained slow. By about 1990, executing BIOS code from ROM incurred a noticeable performance penalty, and at the same time devoting 64 or 128 KB to ROM shadowing was no longer prohibitively expensive. But who did it first? The OS/2 Mussum’s content never fails to be deeply interesting. And the answer to the question is the same answer it always is when it comes to who did something first in the early years of the PC platform. It’s always the same.

CISC-y RISC-ness

If you’ve kept a close eye on the technology space of late, you probably know that this is perhaps one of the most interesting times for processors in many years. After a number of stagnant generations, Intel has started competing again; AMD’s Ryzen chips are still pretty solid; ARM is where a lot of the innovation is happening; and RISC-V looks like it’s going to be the coolest thing in the world in about a decade. But none of these chips, honestly, can hold a candle to the interestingness of the chip I’m going to tell you about today. It didn’t set the world ablaze; in fact, it was designed not to. In the end, it was used in relatively minor systems, like internet appliances and palmtops. But technologically, it bridged the gap between two camps—RISC and CISC. And that’s what makes it interesting. Today’s Tedium looks back at the Transmeta Crusoe, perhaps the most interesting processor to ever exist. The Crusoe was absolutely fascinating, and the most bonkers what if?-scenario with the Crusoe is that in theory, there was nothing preventing the Crusoe’s software translation layer from emulating something other than x86. If this technology had evolved and received far more funding and success, we could’ve had a vastly different processor and ISA landscape today.

Deleting system32\curl.exe

I just want to emphasize that if you install and run Windows, your friendly provider is Microsoft. You need to contact Microsoft for support and help with Windows related issues. The curl.exe you have in System32 is only provided indirectly by the curl project and we cannot fix this problem for you. We in fact fixed the problem in the source code already back in December 2022. If you have removed curl.exe or otherwise tampered with your Windows installation, the curl project cannot help you. Both Windows and macOS have along history of shipping horribly outdated, insecure, and unsupported versions of open source software, and it seems that hasn’t changed.

Haiku’s (kernel) condition variables API: design and implementation

A few months after my contract with Haiku, Inc. began, I rewrote the implementation of the Haiku kernel’s condition variables (as opposed to our userspace condition variables, which are from POSIX.) As this new implementation has run in Haiku for over a year and shipped in the latest release with no sign of any remaining issues, I figured it is high time for a deep-dive on the API, its implementation history, and the design of the new implementation I wrote. I expect this article will be of broader interest than just to Haiku’s community, because Haiku’s condition variables API has some notable (and powerful) features not found in those of other operating systems, and its implementation is thus likewise unique (at least, as far as I have been able to figure out.) I’m currently working on a “state of Haiku” sort of article, and I’m incredibly impressed with just how stable, fast, full-featured, and usable Haiku has become on real hardware. I’ve always kept an eye on Haiku in virtual machines, but now I’m running it on real hard hardware – where it belongs – and it’s been an absolute joy. The fact that waddlesplash managed to pull off this switch basically without any issues and with few people noticing, is further illustration the project’s in a good place.

ARM is developing its own prototype chip, says report

British chip designer ARM is working on its own advanced semiconductor to showcase the power and capabilities of its design, Financial Times reports. According to people briefed on the move, ARM will work with manufacturing partners to bring the new chip to fruition. They’re not intending to get into the chip game, as this will only be a prototype chip to demonstrate what they can do.

Compromising Garmin’s sport watches: a deep dive into GarminOS and its MonkeyC virtual machine

I reversed the firmware of my Garmin Forerunner 245 Music back in 2022 and found a dozen or so vulnerabilities in their support for Connect IQ applications. They can be exploited to bypass permissions and compromise the watch. I have published various scripts and proof-of-concept apps to a GitHub repository. Coordinating disclosure with Garmin, some of the vulnerabilities have been around since 2015 and affect over a hundred models, including fitness watches, outdoor handhelds, and GPS for bikes. Raise your hands if you’re surprised. Any time someone takes even a cursory glance at internet of things devices or connected anythings that isn’t a well-studied platform from the likes of Apple, Google, or Microsoft, they find boatloads of security issues, dangerous bugs, stupid design decisions, and so much more.

Windows on btrfs

Using Quibble, an open source reimplementation of the Windows boot loader, a btrfs driver for Windows, and guest starring ntfs2btrfs, an in-place conversion tool, you can make Windows boot and run on btrfs, as Lily discovered and detailed. She took it a step further though, and decided to see if you could really redefine “cursed”. I decided to make a new btrfs partition and just copy over all the files and see if that would boot. I was shocked to see that it did and now that I had a clean and uncorrupted filesystem it was time for the incredibly dumb idea I had. There are no directories in the Windows and Linux roots that share the same name so you should be able to boot them both from the same partition without any file conflicts. After a reboot into Linux, installing Arch with pacstrap, and fucking with grub. This kinda just works. The btrfs driver for Windows is incredibly solid so once you get past the bootloader there really isn’t anything weird. It just does its thing. Yeah, but your scientists were so preoccupied with whether or not they could, they didn’t stop to think if they should. Good lord.

Microsoft’s GitHub Copilot is massive copyright infringement

Before you read this article – note that Codeium offers a competitor to GitHub Copilot. This means they have something to sell, and something to gain by making Copilot look bad. That being said – their findings are things we already kind of knew, and further illustrate that Copilot is quite possibly one of the largest, if not the largest, GPL violations in history. To prove that GitHub Copilot trains on non permissive licenses, we just disable any post-generation filters and see what GPL code we can generate with minimal context. We can very quickly generate the GPL license for a popular GPL-protected repo, such as ffmpeg, from a couple lines of a header comment. Codeium claims it does not use GPL code for its training data, but the fact it uses code licensed more permissively still raises questions. While the BSD and MIT-like licenses are more permissive and lack copyleft, they still require the inclusion of the terms of the license and a copyright notice to be included whenever the covered code is used. I’m not entirely sure if using just permissively licensed code as training data is any better, since unless you’re adding the licensing terms and copyright notice with every autocompleted piece of code, you’re still violating the license. If Microsoft or whoever else wants to train a coding “AI” or whatever, they should either be using code they own the copyright to, get explicit permission from the rightsholders for “AI” training use (difficult for code from larger projects), or properly comply with the terms of the licenses and automatically add the terms and copyright notices during autocomplete and/or properly apply copyleft to the newly generated code. Anything else is a massive copyright violation and a direct assault on open source. Let me put it this way – the code to various versions of Windows has leaked numerous times. What if we train an “AI” on that leaked code and let everyone use it? Do you honestly think Microsoft would not sue you into the stone age?

The weird world of Windows file paths

File system paths on Windows are stranger than you might think. On any Unix-derived system, a path is an admirably simple thing: if it starts with a /, it’s a path. Not so on Windows, which serves up a bewildering variety of schemes for composing a path. When I implemented the path autocompletion feature in Fileside 1.7, I needed to take a closer look at this to make sure I had all bases covered. This blog post shares my findings. You think you know everything about file system paths on Windows? Trust me – you don’t. What on earth.

A quick look back at Microsoft’s first PC hardware product back in 1980, the Z80 SoftCard

However, many people at the time didn’t realize was that Microsoft had actually sold a PC hardware product, well before it launched Windows, and even before it released MS-DOS. Then Microsoft CEO Steve Ballmer actually mentioned this fact at the first Surface press event in June 2012. It was called the Z80 SoftCard, and it was first released 43 years ago this month, on April 2, 1980. In an even more ironic twist, the product was made as an add-in card for the Apple II PC. I’ve always been fascinated by expansion cards that contain entire computers to make it possible to run one architecture inside another – Apple had a DOS card, for instance, and Sun sold the SunPCi line of cards that could run x86 operating systems on SPARC systems, and there were countless more. They’re not as needed today, and you’ll have a hard time finding, for instance, an ARM PCI-e card to stick in your PC.

Ubuntu 23.04, Fedora 38 released

Two major Linux distributions released major new versions this week. First, Ubuntu: There’s a big user experience uplift courtesy of GNOME 44 and enhancements, and a brand new Ubuntu installer helps improves the onboarding experience. Foundationally, Ubuntu 23.04 runs on the latest Linux kernel 6.2 release, ships Mesa 23.0 graphics drivers (with in-distro access to proprietary NVIDIA drivers for those who need them), plus updates all of the requisite tooling, toolchains, and programming packages developers need. I’m curious to try the new installer if someone else adopts it (I have no need for Ubuntu), but other than that, this is a fairly small release that won’t rock the boat too much. Second we have Fedora: Fedora Workstation focuses on the desktop experience. As usual, Fedora Workstation features the latest GNOME release. GNOME 44 includes a lot of great improvements, including a new lock screen, a “background apps” section on the quick menu, and improvements to accessibility settings. In addition, enabling third-party repositories now enables an unfiltered view of applications on Flathub.  With this release, we’ve shortened the default timeout when services shut down. This helps your system power off faster — important when you need to grab your laptop and go. Fedora is, in my view, the best desktop Linux distribution, and I use it myself on two of my three main PCs. So far, Fedora 38 doesn’t feel like a major new release either, but just more of what you already know.

Installing OpenVMS 9.2 for x86 on VirtualBox

OpenVMS on x86 is now available for hobbyists! Almost a year after the official release. This is a part 1 of my getting started guide, showing you how to install OpenVMS on VirtualBox on Windows 10/11. More parts will follow, documenting license installation, network setup, ssh, application installation etc. If you’ve been wanting to get your feet wet with the new OpenVMS x86 release – like I am – this series of articles is the one place to start.

Apple’s fight against iPhone sideloading was pointless at best, harmful at worst

If Apple had very quietly allowed sideloading a few years ago, that would have removed the antitrust threat – while the overwhelming majority of iPhone owners would have continued to get their apps from the App Store, just as they always have. The percentage of iPhone owners who will ever sideload an app is vanishingly small, so Apple has spent a lot of time and energy fighting a battle that is completely pointless Worse, by fighting the issue so loudly and for so long, Apple has actually given the issue way more publicity than it would ever have received otherwise. It has turned what would otherwise have been a boring technical detail covered only by the Apple press into a mass-media news story. Apple has effectively contributed to its portrayal as a bad guy, with zero benefit to the company. Right on the money – and I’m glad it has transpired this way. I doubt we’d ever have gotten this far without Apple continuously trying to stop it.