Monthly Archive:: August 2025
There’s a lovely device called a pistorm, an adapter board that glues a Raspberry Pi GPIO bus to a Motorola 68000 bus. The intended use case is that you plug it into a 68000 device and then run an emulator that reads instructions from hardware (ROM or RAM) and emulates them. You’re still limited by the ~7MHz bus that the hardware is running at, but you can run the instructions as fast as you want. These days you’re supposed to run a custom built OS on the Pi that just does 68000 emulation, but initially it ran Linux on the Pi and a userland 68000 emulator process. And, well, that got me thinking. The emulator takes 68000 instructions, emulates them, and then talks to the hardware to implement the effects of those instructions. What if we, well, just don’t? What if we just run all of our code in Linux on an ARM core and then talk to the Amiga hardware? ↫ Matthew Garrett This is so cursed. I love it.
We are observing stealth crawling behavior from Perplexity, an AI-powered answer engine. Although Perplexity initially crawls from their declared user agent, when they are presented with a network block, they appear to obscure their crawling identity in an attempt to circumvent the website’s preferences. We see continued evidence that Perplexity is repeatedly modifying their user agent and changing their source ASNs to hide their crawling activity, as well as ignoring — or sometimes failing to even fetch — robots.txt files. The Internet as we have known it for the past three decades is rapidly changing, but one thing remains constant: it is built on trust. There are clear preferences that crawlers should be transparent, serve a clear purpose, perform a specific activity, and, most importantly, follow website directives and preferences. Based on Perplexity’s observed behavior, which is incompatible with those preferences, we have de-listed them as a verified bot and added heuristics to our managed rules that block this stealth crawling. ↫ The CloudFlare Blog Never forget they destroyed Aaron Swartz’s life – literally – for downloading a few JSTOR articles.
It’s not every day you stumble upon an X11 desktop environment you’ve never hard of, but today’s one of those days. The Orbitiny Desktop Environment is a one-person project, consisting of an entirely custom desktop environment written in Qt. Version 1.0 Pilot 4 was just released. Built from the ground up using Qt and coded in C++, Orbitiny Desktop is a new, 100% portable, innovative and traditional but modern looking desktop environment for Linux. Innovative because it has features not seen in any other desktop environment before while keeping traditional aspects of computing alive (desktop icons, menus etc). Portable because you can run it on any distro and on any live CD and that’s because everything gets saved inside the directory that gets created when the archive is extracted (this can be changed so that the settings go to $HOME/.config/orbitiny). ↫ Orbitiny Desktop Environment Gitea page It’s got all the usual amenities like a desktop, panels, and so on, and a custom file manager. It’s also replete with a ton of small features that you don’t see very often, like full mouse gesture support on the desktop and a device manager that can enable/disable devices without blacklisting kernel modules. When you cut or copy a file, its icon will get a little emblem to indicate it’s on the clipboard, you can append and prepend files using simple drag-and-drop operations, you can set individual desktop directories for each virtual desktop, and much more. Now, it’s technically not a full desktop environment, because it doesn’t have things like a session manager, power manager, various hardware configuration panels, and so on, but it can be run on top of existing desktop environments. While it has basic Wayland support, not all components work there, so X11 is the main focus for now. Considering it’s a one-person project, you can’t expect a bug or issue-free experience, but that doesn’t mean it’s any less damn impressive. I honestly feel like there’s something valuable and interesting here, and I’d love for more people to get involved to see where this can go. There’s clearly a ton of love and dedication here, and the various unique features clearly set it apart from everything else. If you have the skills, consider helping out.
Solène Rapenne, who writes a lot about and contributes to operating systems like OpenBSD and Qubes OS, has published a primer about what, exactly, Qubes OS is. I like to call Qubes OS a meta operating system, because it is not a Linux / BSD / Windows based OS: its core is Xen (some kind of virtualization enabled kernel). Not only it’s Xen based, but by design it is meant to run virtual machines, hence the name “meta operating system” which is an OS meant to run many OSes make sense to me. ↫ Solène Rapenne Rapenne explains the various ways in which isolated virtual machines are used in Qubes OS, and it’s easy to see just how secure Qubes OS’ way of doing things is. At the same time, it seems quite cumbersome to me as a regular user, and I don’t think I’m up for dealing with all of that. If you do security research, handle private or classified data, are a whistleblower or an investigative journalist, thoug, Qubes seems like a natural choice. Interesting to note is that Rapenne used to use OpenBSD for her security work, but moved to Qubes OS because its virtual machine infrastructure is far more robust, and hardware support is better, as well.
In October 1997 you could have bought a PowerBook 3400c running up to a 240MHz PowerPC 603e for $6500 , which was briefly billed as the world’s fastest laptop, or you could have bought this monster new to the market, the RDI PrecisionBook running up to a 160MHz (later 180MHz) PA-7300LC starting at $12,000 . Both provided onboard Ethernet, SCSI and CardBus PCMCIA slots. On the other hand, while the 3400c had an internal media bay for either a floppy or CD-ROM, both external options on the PrecisionBook, the PrecisionBook gave you a 1024×768 LCD (versus 800×600 on the 3400c), a bigger keyboard, at least two 2.5″ hard disk bays and up to 512MB of RAM (versus 144MB) — and HP-UX. And, through the magic of Apple’s official Macintosh Application Environment, you could do anything on it an HP PA-RISC workstation could do and run 68K Mac software on it at the same time. Look at the photograph and see: on our 160MHz unit we’ve got HP-UX 11.00 CDE running simultaneously with a full Macintosh System 7.5.3 desktop. Yes, only a real Power Mac could run PowerPC software back then, but 68K software was still plentiful and functional. Might this have been a viable option to have your expensive cake and eat it too? We’ll find out and run some real apps on it (including that game we must all try running), analyze its performance and technical underpinnings, and uncover an unusual artifact of its history hidden in the executable. ↫ Cameron Kaiser at Old Vintage Computing Research I actually have Apple’s Macintosh Application Environment installed and running on my PA-RISC machines, and it’s incredible just how well-made and complete it really is. You get a full Mac desktop and its applications, excellent integration with the host, file sharing between host and client, and so much more. Running it on newer versions of HP-UX than it was originally intended for does lead to the odd issue here and there, but due to HP-UX’ excellent backwards compatibility, it all just works. It has created this odd situation that my 2004 HP c8000 machine, with two of the fastest dual-core PA-RISC processors ever made, will most likely be the fastest machine I’ll ever officially run classic Mac OS on. Sure, you can use other emulators not created and blessed by Apple and run classic Mac OS on much faster hardware, but if you want to stick to official, supported methods of running the classic Mac OS, it doesn’t get much faster than this.
Guest post by Morgan
2025-08-03
Internet
AWS: Not even once. This prominent Ruby developer lost his entire test environment – which, ironically, was pivotal to AWS’ own infrastructure – because of a rogue team within AWS itself that apparently answers to no one and worked hard to cover up a dumb mistake. On July 23, 2025, AWS deleted my 10-year-old account and every byte of data I had stored with them. No warning. No grace period. No recovery options. Just complete digital annihilation. This is the story of a catastrophic internal mistake at AWS MENA, a 20-day support nightmare where I couldn’t get a straight answer to “Does my data still exist?”, and what it reveals about trusting cloud providers with your data. ↫ Abdelkader Boudih Nightmare scenario doesn’t even begin to describe what happened here.
Security isn’t exactly a strong point of X11, and improving it is one of the main reasons why Wayland is such a vast improvement over X11. Just one of the many examples of X11 being inherently insecure is that keyloggers are entirely trivial on X11, because keylogger functionality is effectively built into it. Of course, this isn’t exactly news, and as Peter Hofmann details, there is an old X11 extension that adds somewhat rudimentary security to X11: the X11 SECURITY extension. This extension is part of every X.org installation, but it hasn’t seen any meaningful work in a long, long time. What it does is allow you to do is set X11 clients as “trusted” and “untrusted”, where untrusted clients cannot interact with tusted ones. This provides some basic security – it actually prevents keylogging! – but only very basic, as Hoffman notes: The thing is that it’s immediately clear that this extension — in its current state — is not the answer to “X11 is insecure”: You only have two classes, trusted and untrusted. That’s not enough. For example: When you run your browser as untrusted, you can’t simultaneously run some sandboxed program (Snap, Flatpak, …) in a meaningful way, because those two clients can spy on each other again. You want a proper per-client isolation instead. Sandboxing plays an important role here. If you run programs “the traditional way” (i.e., full access to the filesystem and network), then an attacker can do all kinds of things and X11 keylogging is just one of a million concerns. ↫ Peter Hofmann but it also happens to break a lot of things, and many applications simply don’t work with it at all. Oddly enough, Firefox has no issues with it, and will happily run in untrusted mode. The biggest problem, however, is that untrusted clients only have access to exactly two other X11 extensions, which leads to a whole host of problems, like no scaling, broken keyboard layouts, no 3D acceleration, and so on. On top of all of that, it breaks clipboard functionality, as anything copied in an untrusted client cannot be pasted anywhere else. As such, Hoffman concludes: In its current state, I’d say the SECURITY extension is “somewhat useful”, but more work would have to be done. Both in X.Org and in the clients. You would have to come up with a new clipboard protocol, for example. And the list goes on. (See where I’m going with this?) It’s not that simple. ↫ Peter Hofmann Since pretty much nobody adopted it when this extension came out in the ’90s, and it hasn’t seen much work since, the amount of work that would be required to bring it up to modern standards would be astronomical, and trying to get clients to adopt it would probably prove fruitless considering Wayland already exists, and offers all of the potential security benefits and then some. People often claim it would be “easy” to modernise X11, but just this one particular issue – security, kind of important – shows just how quickly the X11 house of cards comes crashing down if you try to do anything to drag it out of its ’80s and ’90s mindset.
Patchwork is a 64-bit monolithic NON-POSIX operating system for the x86_64 architecture that rigorously follows a “everything is a file” philosophy. Built from scratch in C it takes many ideas from Unix, Plan9, DOS and others while simplifying them and sprinkling in some new ideas of its own. ↫ PatchworkOS GitHub page Patchwork is a surprisingly advanced operating system considering it’s a hobby project. It has multithreading with a constant-time scheduler, fully preemptive mutitasking, SMP, file-based IPC (including pipes, shared memory, sockets and Plan9 inspired “signals” called notes), and much more. It also uses a Linux-style VFS and has a custom C standard library. On top of that, there’s a modular window manager that supports themes, in which everything is a window, and so much more. It supports x86_64, but only supports running in RAM. It’s licensed under the MIT license.
Claude Code has considerably changed my relationship to writing and maintaining code at scale. I still write code at the same level of quality, but I feel like I have a new freedom of expression which is hard to fully articulate. Claude Code has decoupled myself from writing every line of code, I still consider myself fully responsible for everything I ship to Puzzmo, but the ability to instantly create a whole scene instead of going line by line, word by word is incredibly powerful. ↫ Orta Therox Oh sweet Summer child. As a former translator, I can tell you that’s how it starts. As time goes on, your clients or your manager will demand more and more code from you. You will stop checking every line to meet the deadlines. Maybe you just stop checking the boilerplate at first, but it won’t stay that way. As pressure to be more “productive” mounts, you’ll start checking fewer and fewer lines. Before you know it, your client or manager will just give you entire autogenerated swaths of code, and your job will be to just go over it, making sure it kind of works. Before long, you realise there are fewer and fewer of you. Younger and less-skilled “developers” can quickly go over autogenerated code just as well as you do – but they’re way cheaper. You see the quality of the code you sign off on deteriorate rapidly, but you have no time, and not enough pay, to rewrite the autogenerated code. It works, kind of, and that will have to be enough. The autogenerated codebases you’re supposed to be checking and fixing are so large now, you’re no longer even really checking anything anymore. Quick, cursory glances, that’s all you have time for and can afford. Documentation and commenting code went out the window a long time ago, and every line of code scrolling across your screen is more tech debt you don’t care about, because it’s not your code anyway. And then it hits you. There’s no skill here. There’s no art here. You’re no longer a programmer. There’s no career prospects. Scrolling past shitty autogenerated code day in, day out, without the time or pay to wrangle it into something to be proud of, is the end of the line for you. Speak up about it, and you’ll be replaced by someone cheaper. The first time I was given a massive pile of autotranslated text to revise, without enough time and pay to ensure I was delivering a quality product, I quit and left the translation industry instantly. Like programming, translating is part skill, part art, and I didn’t get two university degrees in language and translation just to deliver barely passable trash. I took pride in my work, and I wasn’t going to let anyone put my name under a garbage product. Programmers, you’re next. Will you have the stones to stand by your art?
Wayback has been barely announced, and the first version 0.1 has barely left git, but it’s already time for version 0.2. It won’t surprise you to find out this isn’t some massive release, and you’d be right. It really only addresses a few very small bugs, while the developers also take the opportunity to highlight Wayback is now available on Gentoo GURU and Nixpkgs.
If there’s one thing Microsoft is good at, it’s creating weird variants of Windows with odd names that tech media talk about for like a day, after which everyone, especially Microsoft, forgets they even exist. Usually, these weird Windows variants are the result of either legal requirements, or, more commonly, of perceived threats to Windows’ dominance on the desktop. An example of the former are the various “N” editions of Windows, while an example of the latter is the one we’re talking about today: Windows 11 SE. I honestly had completely forgotten Windows 11 SE existed, and most likely you did, too. Windows 11 SE was (one of) Microsoft’s response(s) to the growing popularity of Chromebooks in schools, and as such, this Windows variant omitted a bunch of features for performance and distraction reasons, stored files in OneDrive instead of locally, was locked down so only administrators could control which applications could be used, and so on. In fact, unless specifically whitelisted, Windows 11 SE would not run any Win32 or UWP applications – everything had to be either a PWA or a website. Notably, it was only available in combination with a few specific devices. The past tense in the preceding paragraph should be a dead giveaway of what’s happening. Yes, Microsoft just cancelled the whole thing, after being on the market for only a few years. Microsoft will not release a feature update after Windows 11 SE, version 24H2. Support for Windows 11 SE—including software updates, technical assistance, and security fixes—will end in October 2026. While your device will continue to work, we recommend transitioning to a device that supports another edition of Windows 11 to ensure continued support and security. ↫ Windows 11 SE support document In other words, if your school fell for Microsoft’s sales pitch for Windows 11 SE, you’re kind of screwed after October 2026, because Windows 11 SE only shipped on specific, low-cost, low-powered devices. You’d think other variants of Windows 11 will more or less run on those, too, but if not – or far too slowly – your school is now sitting on a pile of e-waste. Anybody want to run a betting pool for the Windows variant Microsoft will cancel next?
Late last year, we talked about Bismuth, a virtual machine being developed by Eniko Fox, one of the developers of the awesome game Kitsune Tails. Part of a operating systems development side project, Bismuth is a VM (think Java Virtual Machine, not VMware) on top of Fox’ custom kernel, designed specifically to run programs in a sandbox. The first article detailed the origins of Bismuth, and the second article delved into memory safety, sandboxing, and more. We’re a few months down the line now, and Fox recently published another article in the series, this time explaining how a hello world-program works in Bismuth. This is the third in a series of posts about a virtual machine I’m developing as a hobby project called Bismuth. I’ve talked a lot about Bismuth, mostly on social media, but I don’t think I’ve done a good job at communicating how you go from some code to a program in this VM. In this post I aim to rectify that by walking you through the entire life cycle of a hello world Bismuth program, from the highest level to the lowest. ↫ Eniko Fox There’s a ton of detail here, and at the end you’ll have a pretty solid grip on how Bismuth works.
Servo is unique for a few other reasons, too. It’s managed by the Linux Foundation Europe with decisions made by a technical steering committee, not a big tech company. One of the main goals is to be an “embeddable web rendering engine,” meaning it’s not just for browsers—it could be a replacement for Electron or the Android WebView. Servo is also the first completely new browser engine in decades, so it’s taking lessons learned from mainstream browsers while building a new foundation. ↫ Corbin Davenport At the moment, as Davenport notes, Servo is far from ready to be a daily driver browser engine. Tons of websites’ rendering is broken and some crash the browser altogether, and performance is nowhere near that of the other browser engines. This makes perfect sense, as Servo is still in heavy development, and there’s no massive corporation with endless money (and ulterior motives) backing it. Still, out of all the various attempts at wrestling control away from Blink and WebKit, I feel like Servo’s the one with the most promise in the long term.
When someone has a plumbing emergency, they’re not flipping through a phone book; they’re Googling for help nearby. That’s why local SEO matters more than ever for plumbing businesses. If your name doesn’t show up in those local searches, you’re missing out on jobs that could’ve been yours. Thankfully, getting found online isn’t as hard as it sounds. With the right strategies in place, you can turn online visibility into real, paying customers. Start with Google Business Profile Optimization One of the first steps in digital marketing for plumbers is claiming and optimizing your Google Business Profile. This is what appears when someone searches for “plumber near me,” and it’s packed with potential. Add your business hours, contact details, services, and plenty of photos. Encourage happy customers to leave reviews, and always reply to them. Reviews help boost your ranking and show potential customers that you’re responsive and trustworthy. Keeping this profile updated is a small task with a big impact. Use Location-Based Keywords Across Your Website People don’t just search for “plumber.” They look up phrases like “drain cleaning in ” or “emergency plumber near .” That’s why location-based keywords are so important. They help your business appear in searches that are specific to your service area. Add these keywords to your homepage, service pages, image alt texts, and meta descriptions. This tells Google exactly where you work and what you offer. It also helps visitors know right away that you serve their area, which builds instant trust. Create Service Pages for Each Location You Cover If you work in multiple towns or neighborhoods, create a separate service page for each one. These pages should mention the area name in the title, headers, and throughout the text. Include unique content for each page to prevent duplication. For example, instead of a single generic service page, create separate pages for “Water Heater Repair in ” and “Toilet Installation in .” This enhances your local reach, making it easier for potential customers to locate you. Plus, it boosts your SEO by showing relevance in each area you serve. Earn Backlinks from Local Websites Backlinks, links from other websites to yours, are like digital referrals. Local backlinks are even more valuable when you’re trying to establish a strong presence in a specific area. You can earn these by sponsoring community events, listing your business in local directories, or being featured in neighborhood blogs. Write guest posts, connect with local bloggers, or ask your suppliers to mention your business online. Each backlink signals to search engines that your site is trustworthy and relevant. And the more relevant the site linking to you, the better your SEO will be. Publish Helpful, Local-Focused Content Regularly One of the best parts of digital marketing for plumbers is using content to their advantage. Writing blog posts about common plumbing problems, seasonal maintenance tips, or FAQs can boost your visibility and show that you know your stuff. Focus on local topics, such as how to protect pipes during your area’s winter or the local water issues people commonly face. Make your content conversational and easy to understand. When people find helpful answers on your site, they’re more likely to remember your name when they need a plumber. Fresh content also keeps your site active, which Google loves. Showing up in local searches doesn’t have to be complicated. It’s about being clear, helpful, and consistent online. Focus on the basics: a solid Google Business Profile, smart keyword use, and content that speaks to the people you serve. Local SEO is one of the most effective ways to ensure your plumbing business appears when and where it matters most.