“Why I stopped using OpenBSD”

I’ve linked to quite a few posts by OpenBSD developer Solène Rapenne on OSNews, mostly about her work for and knowledge of OpenBSD. However, she recently posted about her decision to leave the OpenBSD team, and it mostly comes down to the fact she hasn’t been using OpenBSD for a while now due to a myriad of problems she’s encountering. Posts like these are generally not that fun to link to, and I’ve been debating about this for a few days now, but I think highlighting such problems, especially when detailed by a now-former OpenBSD developer, is an important thing to do.

Hardware compatibility is an issue because OpenBSD has no Bluetooth support, its gamepad support is fractured and limited, and most of all, battery life and heat are a major issue, as Solène notes that “OpenBSD draws more power than alternatives, by a good margin”. For her devops work, she also needs to run a lot of software in virtual machines, and this seems to be a big problem on OpenBSD, as performance in this area seems limited. Lastly, OpenBSD seems to be having stability issues and crashes a lot for her, and while this in an of itself is a big problem already, it’s compounded by the fact that OpenBSD’s file system is quite outdated, and most crashes will lead to corrupted or lost files, since the file system doesn’t have any features to mitigate this.

I went through a similar, but obviously much shorter and far less well-informed experience with OpenBSD myself. It’s such a neat, understandable, and well-thought out operating system, but its limitations are obvious, and they will start to bother you sooner or later if you’re trying to use it as a general purpose operating system. While it’s entirely understandable because OpenBSD’s main goal is not the desktop, it still sucks because everything else about the operating system is so damn nice and welcoming.

Solène found her alternative in Linux and Qubes OS:

I moved from OpenBSD to Qubes OS for almost everything (except playing video games) on which I run Fedora virtual machines (approximately 20 VM simultaneously in average). This provides me better security than OpenBSD could provide me as I am able to separate every context into different spaces, this is absolutely hardcore for most users, but I just can’t go back to a traditional system after this.

↫ Solène Rapenne

She lists quite a few Linux features she particularly likes and why, such as cgroups, systemd, modern file systems like Btrfs and ZFS, SELinux, and more. It’s quite rare to see someone of her calibre so openly list the shortcomings of the system she clearly otherwise loves and put a lot of effort in, and move to what is generally looked at with some disdain within the community she came from. It also highlights that issues with running OpenBSD as a general purpose operating system are not confined to less experienced users such as myself, but extend towards extremely experienced and knowledgeable people like actual OpenBSD developers.

I’m definitely not advocating for OpenBSD to change course or make a hard pivot to becoming a desktop operating system, but I do think that even within the confines of a server operating system there’s room for at least things like a much improved and faster file system that provides the modern features server users expect, too.

Windows 365 Link: a thin client from Microsoft

One of my favourite devices that never took on in the home is the thin client. Whenever I look at a fully functional Sun Microsystems thin client setup, with Sun Rays, a Solaris server, and the smartcards instantly loading up your desktop the moment you slide it in the Ray’s slot, my mind wonders about the future we could’ve had in our homes – a powerful, expandable, capable server in the basement, running every family member’s software, and thin clients all throughout the house where family members can plug their smartcard into to load up their stuff.

This is the future they took from us.

Well, not entirely. They took this future, made it infinitely worse by replacing that big server in our basement with massive datacentres far away from us in the “cloud”, and threw it back in our faces as a shittier inevitability we all have to deal with. The fact this model relies on subscriptions is, of course, entirely coincidental and not all the main driving force behind taking our software away from us and hiding it stronghold datacentres.

So anyway Microsoft is launching a thin client that connects to a Windows VM running in the cloud. They took the perfection Sun gave us, shoved it down their throats, regurgitated it like a cow, and are now presenting it to us as the new shiny. It’s called the Windows 365 Link, and it connects to, as the name implies, Windows 365. Here’s part of the enterprise marketing speak:

Today, as users take advantage of virtualization offerings delivered on an array of devices, they can face complex sign-in processes, peripheral incompatibility, and latency issues. Windows 365 Link helps address these issues, particularly in shared workspace scenarios. It’s compact, lightweight, and designed to maximize productivity with its highly responsive performance. It takes seconds to boot and instantly wakes from sleep, allowing users to quickly get started or pick up where they left off on their Cloud PC. With dual 4K monitor support, four USB ports, an Ethernet port, Wi-Fi 6E, and Bluetooth 5.3, Windows 365 Link offers seamless connectivity with both wired and wireless peripherals.

↫ Anthony Smith at the Windows IT Pro Blog

This is just a thin client, but worse, since it seemingly can only connect to Microsoft’s “cloud”, without the ability to connect to a server on-premises, which is a very common use case. In fact, you can’t even use another vendor’s tooling, so if you want to switch from Windows 365 to some other provider later down the line, you seemingly can’t – unless there’s some BIOS switches or whatever you can flip. At the very least, Microsoft intends for other vendors to also make Link devices, so perhaps competition will bring the price down to a more manageble level than $349.

Unless an enterprise environment is already so deep into the Microsoft ecosystem that they don’t even rely on things like Citrix or any of the other countless providers of similar services, why would you buy thousands of these for your employees, only to lock your entire company into Windows 365? I’m no IT manager, obviously, so perhaps I’m way off base here, but this thing seems like a hard sell when there are so, so many alternative services, and so many thin client devices to choose from that can use any of those services.

FLTK 1.4.0 brings Wayland support

FLTK 1.4.0 has been released. This new version of the Fast Light Toolkit contains some major improvements, such as Wayland support on both Linux and FreeBSD. X11 and Wayland are both supported by default, and applications using FLTK will launch using Wayland if available, and otherwise fall back to starting with X11. This new release also brings HiDPI support on Linux and Windows, and improves said support on macOS. Those are the headline features, but there’s more changes here, of course, as well as the usual round of bugfixes.

Right after the release of 1.4.0, a quick bugfix release, version 1.4.0-1, was released to address an issue in 1.4.0 – a build error on a single test program on Windows, when using Visual Studio. Not exactly a major bug, but great to see the team fix it so rapidly.

Why did Windows 95 setup use three operating systems?

Way back in April of this year, I linked to a question and answer about why some parts of the Windows 98 installer looked older than the other parts. It turns out that in between the MS-DOS (the blue part) and Windows 98 parts of the installation process, the installer boots into a small version of Windows 3.1. Raymond Chen posted an article detailing this process for Windows 95, and why, exactly, Microsoft had to resort to splitting the installer between MS-DOS, Windows 3.1, and Windows 95.

The answer is, as always, backwards compatibility. Since Windows 95 could be installed from MS-DOS, Windows 3.1, and Windows 95 (to fix an existing installation), the installer needed to be able to work on all three. The easiest solution would be to write the installer as an MS-DOS program, since that works on all three of these starting points, but that would mean an ugly installer, even though Windows 95 was supposed to be most people’s first experience with a graphical user interface. This is why Microsoft ended up with the tiered installation process – to support all possible starting points in the most graphical way possible.

Chen also mentions another fun fact that is somewhat related to this: the first version of Excel for Windows was shipped with a version of the Windows 2.1 runtime, so that even people without Windows could still run Excel. Even back then, Microsoft took backwards compatibility seriously, and made sure people who hadn’t upgraded from MS-DOS to Windows 2.x yet – meaning, everyone – could still enjoy the spreadsheet lifestyle.

I say we pass some EU law forcing Microsoft to bring this back. The next version of Excel should contain whatever is needed to run it on MS-DOS. Make it happen, Brussels.

DOJ will push Google to sell Chrome to break search monopoly

Speaking of Google, the United States Department of Justice is pushing for Google to sell off Chrome.

Top Justice Department antitrust officials have decided to ask a judge to force Alphabet Inc.’s Google to sell off its Chrome browser in what would be a historic crackdown on one of the biggest tech companies in the world.

The department will ask the judge, who ruled in August that Google illegally monopolized the search market, to require measures related to artificial intelligence and its Android smartphone operating system, according to people familiar with the plans.

↫ Leah Nylen and Josh Sisco

Let’s take a look at the history and current state of independent browsers, shall we? Netscape is obviously dead, Firefox is hanging on by a thread (which is inconspicuously shaped like a giant sack of money from Google), Opera is dead (its shady Chrome skin doesn’t count), Brave is cryptotrash run by a homophobe, and Vivaldi, while an actually good and capable Chrome skin with a ton of fun features, still isn’t profitable, so who knows how long they’ll last. As an independent company, Chrome wouldn’t survive.

It seems the DoJ understands this, too, because they’re clearly using the words “sell off”, which would indicate selling Chrome to someone else instead of just spinning it off into a separate company. But who has both the cash and the interest in buying Chrome, without also being a terrible tech company with terrible business incentives that might make Chrome even more terrible than it already is?

Through Chrome, Google has sucked all the air out of whatever was left of the browser market back when they first announced the browser. An independent Chrome won’t survive, and Chrome in anyone else’s hands might have the potential to be even worse. A final option out of left field would be turning Chrome and Chromium into a truly independent foundation or something, without a profit motive, focused solely on developing the Chromium engine, but that, too, would be easily abused by financial interests.

I think the most likely outcome is one none of us want: absolutely nothing will happen. There’s a new administration coming to Washington, and if the recent proposed picks for government positions are anything to go by, America will be incredibly lucky if they get someone smarter than a disemboweled frog on a stick to run the DoJ. More likely than not, Google’s lawyers will walk all over whatever’s left of the DoJ after 20 January, or Pichai will simply kiss some more gaudy gold rings to make the case go away.

Google is reportedly killing Chrome OS in favour of Android

Mishaal Rahman, who has a history of being right about Google and Android-related matters, is reporting that Google is intending to standardise its consumer operating system efforts onto a single platform: Android.

To better compete with the iPad as well as manage engineering resources more effectively, Google wants to unify its operating system efforts. Instead of merging Android and Chrome OS into a new operating system like rumors suggested in the past, however, a source told me that Google is instead working on fully migrating Chrome OS over to Android. While we don’t know what this means for the Chrome OS or Chromebook brands, we did hear that Google wants future “Chromebooks” to ship with the Android OS in the future. That’s why I believe that Google’s rumored new Pixel Laptop will run a new version of desktop Android as opposed to the Chrome OS that you’re likely familiar with.

↫ Mishaal Rahman at Android Authority

The fact both Chrome OS and Android exist, and are competing with each other in some segments – most notably tablets – hasn’t done either operating system any favours. I doubt many people even know Chrome OS tablets are a thing, and I doubt many people would say Android tablets are an objectively better choice than an iPad. I personally definitely prefer Android on tablets over iOS on tablets, but I fully recognise that for 95% of tablet buyers, the iPad is the better, and often also more affordable, choice.

Google has been struggling with Android on tablets for about as long as they’ve existed, and now it seems that the company is going to focus all of its efforts on just Android, leaving Chrome OS to slowly be consumed and replaced by it. In June, Google already announced it was going to replace both the kernel and several subsystems in Chrome OS with their Android counterparts, and now they’re also building a new version of Chrome for Android with extensions supports – to match Chrome on Chrome OS – as well as a terminal application for Android that gives access to a local Linux virtual machine, much like is available on Chrome OS.

As mentioned, laptops running Android will also be making an entrance, including a Pixel laptop straight from Google. The next big update for Android 15 contains a ton of new proper windowing features, and there’s more coming: improved keyboard and mouse support, as well as external monitors, virtual desktops, and a lot more. As anyone who has ever attempted to run Android on a desktop or laptop knows, there’s definitely a ton of work Google needs to do to make Android palatable to consumers on that front.

Of course, this being Google, any of these rumours or plans could change at any time without any sense of logic behind it, as managers fulfill their quotas, get promoted, or leave the company.

iOS 18.1 will reboot iPhones to a locked state after 72 hours of inactivity

In recent weeks, law enforcement in the United States discovered, to their dismay, that iPhones were automatically rebooting themselves after a few days of inactivity, thereby denying them access to the contents of these phones. After a lot of speculation online, Jiska Classen dove into this story to find out what was going on, and through reverse-engineering they discovered that this was a new security feature built by Apple as part of iOS 18.1, to further make stolen iPhones useless for both thieves as well as law enforcement officers.

It’s a rather clever feature. The Secure Enclave Processor inside the iPhone keeps track of when the phone was last unlocked, and if that period exceeds 72 hours, the SEP will inform a kernel module. This kernel module will then, in turn, tell the phone to gracefully reboot, meaning no data is lost in this process. If the phone for whatever reason does not reboot and remains powered on, the module will assume the phone’s been tampered with somehow and kernel-panic. Interestingly, if the reboot takes place properly, an analytics report stating how long the phone was not unlocked will be sent to Apple.

The reason this is such a powerful feature is that a locked iPhone is entirely useless to anyone who doesn’t have the right code or biometrics to unlock it. Everything on the device is encrypted, and only properly unlocking it will decrypt the phone’s contents; in fact, a locked phone can’t even join a Wi-Fi network, because the stored passwords are encrypted (and I’m assuming that a locked phone does not provide access to any methods of joining an open network either). When you have a SIM card without any pincode, the iPhone will connect to the cellular network, but any notifications or calls coming in will effectively be empty, since incoming phone numbers can’t be linked to any of the still-encrypted contacts, and while the phone can tell it’s received notifications, it can’t show you any of their contents.

A thief who’s now holding this phone can’t do much with it if it locks itself like this after a few days, and law enforcement won’t be able to access the phone either. This is a big deal in places where arrests based purely on skin colour or ethnicity or whatever are common, like in the United States (and in Europe too, just to a far lesser degree), or in places where people have to fear the authorities for other reasons, like in totalitarian dictatorships like Russia, China or Iran, where any hint of dissent can end you in harsh prisons.

Apple is always at the forefront with features such as these, with Google and Android drunkenly stumbling into the open door a year later with copies that take ages to propagate through the Android user base. I’m legitimately thankful for Apple raising awareness of the need of features such as these – even if they’re too cowardly to enable them in places like China – as it’s quite clear a lot more people need to start caring about these things, with recent developments and all.

Migrating Windows VMs from Proxmox BIOS/KVM to FreeBSD UEFI/Bhyve

Another excellent guide from friend of the website Stefano Marinelli.

A client of mine has several Windows Server VMs, which I had not migrated to FreeBSD/bhyve until a few weeks ago. These VMs were originally installed with the traditional BIOS boot mode, not UEFI, on Proxmox. Fortunately, their virtual disks are on ZFS, which allowed me to test and achieve the final result in just a few steps.

This is because Windows VMs (server or otherwise) often installed on KVM (Proxmox, etc.), especially older ones, are non-UEFI, using the traditional BIOS boot mode. bhyve doesn’t support this setup, but Windows allows changing the boot mode, and I could perform the migration directly on the target FreeBSD server.

↫ Stefano Marinelli

I link to guides like these because finding such detailed guides born out of experience, written by actual humans with actual experience – instead of bots on content farms – is remarkably hard. There’s more than enough similar content like this out there covering Windows or popular Linux distributions like Red Hat, but the BSDs tend to fall a bit short here. As such, promoting people writing such content is something I’ll happily do.

Marinelli also happens to host the Matrix server (as part of his BSD Cafe effort) that houses the OSNews Matrix room, accessible by becoming an OSNews Patreon.

Linux 6.12 released

Version 6.12 of the Linux kernel has been released. The main feature consists of the merger of the real-time PREEMPT_RT scheduler, most likely one of the longest-running merger sagas in Linux’ history. This means that Linux now fully supports both soft and hard real-time capabilities natively, which is a major step forward for the platform, especially when looking at embedded development. It’s now no longer needed to draw in real-time support from outside the kernel.

Linux 6.12 also brings a huge number of improvements for graphics drivers, for both Intel and AMD’s graphics cards. With 6.12, Linux now supports the Intel Xe2 integrated GPU as well as Intel’s upcoming discrete “Battlemage” GPUs by default, and it contains more AMD RDNA4 support for those upcoming GPUs. DRM panics messages in 6.12 will show a QR code you can scan for more information, a feature written in Rust, and initial support for the Raspberry Pi 5 finally hit mainline too.

Of course, there’s a lot more in here, like the usual LoongArch and ARM improvements, new drivers, and so on. and if you’re a regular Linux user you’ll see 6.12 make it to your distribution within a few weeks or months.

Free Towns OS: an open source recreation of FM Towns OS

A few weeks ago I linked to a story by Misty De Meo, in which they explored what happened to the various eccentric Japanese PC platforms. One of the platforms mentioned was FM Towns, made by Fujitsu, which came with its own graphical operating system from the era of Windows 3.x. I had never heard of this one before, but it looks incredibly interesting, with some unique UI ideas I’d love to explore, if only I could read Japanese. Since learning Japanese is a serious life-long commitment, I can safely say that’s not going to happen.

It seems I’m not the only one interested in FM Towns, as a new project called Free Towns OS (or Tsugaru OS in Japanese) aims to provide an open source replacement for the Free Towns operating system.

The goal of this project is to write a copyright-free FM Towns OS to run free games and the re-released games, or why not a brand-new game for FM Towns. without concerns of violating copyrights of the files included in the original Towns OS.

Let’s see how far we can go! But, so far so good. Now Tsugaru OS is capable of running the three probably the most popular free games, Panic Ball 2, VSGP, and Sky Duel. All playable without single file from the original Towns OS.

↫ Free Towns OS GitHub page

That’s a pretty good milestone already. The project aims to eventually also be able to run on real hardware instead of just emulators, but further than that, it’s difficult for me to extract more information from the descriptions since not every paragraph has been translated to English just yet. Finding English information on FM Towns OS in general is hard, so I’m also not entirely sure just how much the project has already been able to recreate. I definitely hope this effort attracts more interest, hopefully also from outside of Japan so we can get a translated version people outside of Japan can use.

Microsoft finally publishes ISO for Windows on ARM

This option is for users that want to create a Windows 11 on Arm virtual machine on supported hardware using an ISO file or to install Windows 11 on Arm directly without a DVD or USB flash drive.  The ISO file can also be used to manually create bootable installation media (USB flash drive) to install Windows 11 on Arm, but it may be necessary to include drivers from the device manufacturer for the installation media to be successfully bootable. This download is a multi-edition ISO which uses your product key to unlock the correct edition.

↫ Windows on ARM ISO download

Oddly enough, up until now, Microsoft hadn’t published a Windows 11 on ARM ISO yet. With this new ISO, ARM users can do a fresh install, and create Windows on ARM virtual machines. Not the biggest news in the world, but it’s a little bit surprising it’s taken them this long to publish this ISO file.

Massive Half-Life 2 20th Anniversary Update is here

Valve has been holding on to a special surprise for Half-Life 2 fans to celebrate the game crossing its 20th birthday. Today, the company shipped the 20th Anniversary Update for the iconic Gordon Freeman adventure from 2004, combining the base experience and all episodes into one, bringing developer commentary, Steam Workshop support, and much more. Adding to all that, the game is completely free to claim on Steam right now too.

↫ Pulasthi Ariyasinghe at NeoWin

Valve even made a nice web page with fun animated characters for it (they’re just video loops). Definitely a nice surprise for those of us who’ve already played the game a million times, and for those of us who haven’t yet for some reason and can now claim the game for free. This update also fixes some more bugs, adds a ton of new graphics settings, allows you to choose between different styles for certain visual effects, aim assist for controller users has been massively updated, and so much more. For a 20 year old game, such a free update is not something that happens very often, so good on Valve for doing this.

I can barely believe it’s been 20 years, and that we still have no conclusion or even continuation to the story that so abruptly ended with Episode Two. I honestly doubt we’ll ever going to see a Half-Life 3 or even an Episode Three, simply because at this point the expectations would be so bonkers high there’s no way Valve could meet them. On top of that, why waste time, money, and possibly reputation and goodwill on Half-Life 3, when you can just sit on the couch and watch the Steam gravy train roll into the station?

Because that’s a hell of a lot of gravy.

PureDarwin intends to make Apple’s Darwin usable with a MATE desktop, future custom desktop environment, and more

Remember Darwin? It’s the core of Apple’s macOS, and the company has always – sometimes intermittently – released its source code as open source. Not much ever really happens with Darwin, and any attempts at building a usable operating system on top of Darwin have failed. There was OpenDarwin, which at one point could run a GNOME desktop, but in 2006 it shut itself down, stating:

Over the past few years, OpenDarwin has become a mere hosting facility for Mac OS X related projects. The original notions of developing the Mac OS X and Darwin sources has not panned out. Availability of sources, interaction with Apple representatives, difficulty building and tracking sources, and a lack of interest from the community have all contributed to this. Administering a system to host other people’s projects is not what the remaining OpenDarwin contributors had signed up for and have been doing this thankless task far longer than they expected. It is time for OpenDarwin to go dark.

↫ OpenDarwin announcement from 2006 (archived)

Any other attempts at making Darwin work as a standalone operating system were further frustrated by the fact that Apple stopped releasing bootable Darwin images, so Darwin never amounted to much more than Apple throwing some code over the fence every now and then for some cheap goodwill among the few people who still believe Apple cares about open source. However, the dream is still alive – the idea that you could use Darwin to build a general purpose operating system, perhaps one with some semblance of compatibility with macOS software, is an attractive one.

Enter PureDarwin. This project has been around for a while now, releasing an X11-capable build of Darwin somewhere in 2015, followed long, long after that by a CLI-only build in 2020. A few days ago, the project announced an ambitious change in direction, with a plan and roadmap for turning PureDarwin into a general purpose operating system.

The PureDarwin project, originally created to bring Apple’s open-source Darwin OS to more people, is heading in a fresh new direction with some clear short-term and long-term goals. These new plans are all about breathing new life into PureDarwin. In the short term, we’re focused on getting some solid basics in place with graphical interfaces using MATE Desktop and LightDM, so users can get a functional and accessible experience sooner rather than later. Looking further down the line, the long-term goals—shown in some early wireframes—are about creating a fully featured, polished desktop experience that’s easy to use and visually appealing. Plus, a new versioning system will make it clear how PureDarwin is progressing independently from Apple’s Darwin updates, making it easier for everyone to keep track. This refreshed direction sets PureDarwin up to grow from its roots into a user-centered operating system.

↫ PureDarwin announcement

These plans and roadmap sound quite well thought-out to me. I especially like that they first focus on getting a solid MATE desktop running before shifting to building a more custom desktop environment, as this makes it much easier – relatively speaking – to get people up and running with Darwin. Once Darwin with MATE is halfway usable, it can serve its job as a development platform for the more custom desktop environment they have planned. It won’t surprise you, by the way, that the sketches for the custom desktop environment are very Apple-y.

As part of the goals of creating a usable MATE desktop and then a more custom desktop environment, a whole bunch of low-level things need to be handled. All the kexts (drivers) required for Darwin to boot need to be built, and CoreFoundation needs to be updated, a process that was already under way. On top of that, the project wants to focus on getting Wayland to work, make Darwin buildable under BSD/Linux, and develop an installer.

Beyond those goals, the project has an even bigger, tentative ambition: API compatibility with macOS. They make it very clear they’re not at all focused on this right now, and consider it more of a pie-in-the-sky goal for the the distant future. It’s an interesting ambition we’ve seen tried various times before, and it surely won’t be even remotely easy to get it to a level where it could do much more than run some command-line utilities. Darling, a similar project to run macOS binaries on Linux in the style of Wine, has only recently been able to run some small, very basic GUI applications.

I like all of these goals, and especially getting it to a state where you can download a Darwin ISO running MATE should be entirely realistic to achieve in a short timeframe. A custom desktop environment is a lot more work of course, all depending on how much they intend to reuse from the Linux graphics and desktop stack. Anything beyond that, and it becomes much murkier, obviously. As always, it’s all going to come down to just how many active and enthusiastic contributors they can attract, and more importantly retain once the initial excitement of this announcement wears off.

Startup’s “AI” tool spams GitHub repositories with bogus commits, without consent

Update: that was quick! GitHub banned the “AI” company’s account. Only GitHub gets to spam AI on GitHub, thank you very much.

Most of the time, products with “AI” features just elicit sighs, especially when the product category in question really doesn’t need to have anything to do with “AI” in any way, shape, or form. More often than not, though, such features are not only optional and easily ignorable, and we can always simply choose not to buy or use said products in the first place. I mean, over the last few days I’ve migrated my Pixel 8 Pro from stock Google Android to GrapheneOS as the final part of my platform transition away from big tech, and Google’s insistence on shoving “AI” into everything certainly helped in spurring this along.

But what are you supposed to do if an “AI” product forces itself upon you? What if you can’t run away from it? What if, one day, you open your GitHub repository and see a bunch of useless PRs from an “AI” bot who claims to help you fix issues, without you asking it to do so? Well, that’s what’s happening to a bunch of GitHub users who were unpleasantly surprised to see garbage, useless merge requests from a random startup testing out some “AI” tool that attempts to automatically ‘fix’ open issues on GitHub.

The proposed ‘fixes’ are accompanied by a disclaimer:

Disclaimer: The commit was created by Latta AI and you should never copy paste this code before you check the correctness of generated code. Solution might not be complete, you should use this code as an inspiration only.

This issue was tried to solve for free by Latta AI – https://latta.ai/ourmission

If you no longer want Latta AI to attempt solving issues on your repository, you can block this account.

↫ Example of a public open issue with the “AI” spam

Let me remind you: this tool, called “Latta AI”, is doing all of this unprompted, without consent, and the commits generally seem bogus and useless, too, in that they don’t actually fix any of the issues. To make matters worse, your GitHub repository will then automatically appear as part of its marketing – again without any consent or permission from the owners of the GitHub projects in question.

Clicking through to the GitHub repositories listed on the front page will reveal a lot about how developers are responding: they’re not amused. Every link I clicked on had Latta AI’s commit and comment marked as spam, abuse, or just outright deleted. We’re talking public open issues here, so it’s not like developers aren’t looking for input and possible fixes from third parties – they just want that input and those possible fixes to come from real humans, not some jank code generator that’s making us destroy the planet even faster.

This is what the future of “AI” really looks like. It’s going to make spam even easier to make, even more pervasive, and even cheaper, and it’s going to infest everything. Nothing will be safe from these monkeys on typewriters, and considering what the spread of misinformation by human-powered troll farms can do, I don’t think we’re remotely ready for what “AI” is going to mean for our society. I can assure you lying about brown people eating cats and dogs will be remembered as quaint before this nonsense is over.

Google drastically improves quality of the Android Emulator

One of the things I’ve consistently heard from just about anyone involved in Android development are laments about the sorry state of the Android Emulator included in Google’s Android Studio. It seems that particularly its performance is not great, with people often resorting to third-party options or real devices. Well, it seems the Android development team at Google has taken this to heart, and has spent six months focusing almost solely on fixing up the Android Emulator.

We know how critical the stability, reliability, and performance of the Android Emulator is to your everyday work as an Android developer. After listening to valuable feedback about stability, reliability, and performance, the Android Studio team took a step back from large feature work on the Android Emulator for six months and started an initiative called Project Quartz. This initiative was made up of several workstreams aimed at reducing crashes, speeding up startup time, closing out bugs, and setting up better ways to detect and prevent issues in the future.

↫ Neville Sicard-Gregory at the Android Developers Blog

Steps taken include moving to a newer version of Qt for the user interface of the emulator, improving the graphics rendering system used in the Android Emulator, and adding a whole bunch of tests to their existing test suite. The end result is that the number of crashes in the Android Emulator dropped by 30%, which, if bourne out out in the real world, will have a material impact for Android developers. During the Project Quartz effort, Google also cut the number of open issues by 44%, but they do note only 17% of those were fixed during Project Quartz, with the remainder being obsoleted or previously fixed issues.

If you download or update to the latest version of Android Studio, you’ll get the new and improved Android Emulator as well.

.NET 9 released

Today, we are excited to announce the launch of .NET 9, the most productive, modern, secure, intelligent, and performant release of .NET yet. It’s the result of another year of effort on the part of thousands of developers from around the world. This new release includes thousands of performance, security, and functional improvements. You will find sweeping enhancements across the entire .NET stack from the programming languages, developer tools, and workloads enabling you to build with a unified platform and easily infuse your apps with AI.

↫ .NET Team at the .Net Blog

All I know is that these are very important words, and a very important release, for thousands and thousands of unknown developers slaving away in obscurity, creating, maintaining, and fixing endless amounts of corporate software very few of us ever actually get to see very often. They toil away for meager pay in the 21st century version of the coal mines of the 19th century, without any recognition, appreciation, or applause. They work long hours, make their way through the urban planning hell that is modern America, and come home to make some gruel and drink water from lead pipes, waiting for the sweet relief of what little sleep they manage to get, only to do it all over again the next day.

…I may have a bit of a skewed perception of reality for most IT people.

In all seriousness, .NET is a hugely popular set of tools and frameworks, and while it’s probably not the most sexy topic in the tech world, any new release matters to a ton of people. .NET 9.0. This new version’s main focus seems to be performance, with over 1000 performance-related changes tot he various components that make up .NET. In a blog post about these performance improvements, Stephen Toub explains in great detail what some of the improvements are, and where the benefits lie.

Of course, there’s an insane amount of talk about “AI” features in .NET 9, and apparently .NET MAUI is seeing a surge in popularity on Android, if you believe Microsoft (“30$” increase in “developer usage” means little when you don’t provide a baseline). .NET MAUI is Microsoft’s cross-platform framework for building applications for Android, iOS, macOS, and Windows. Among other things, .NET MAUI 9 provides more access to platform-native features, as well as benefiting from some of the performance improvements.

There’s also a paragraph about .NET 9 development on Windows, just in case you thought the .NET team forgot Windows existed.

With .NET 9, your Windows apps will have access to the latest OS features and capabilities while ensuring they are more performant and accessible than ever before. Whether you are starting a new modern app with WinUI 3 and the Windows App SDK or modernizing your existing WPF and WinForms applications, your Windows apps run best on .NET 9. We have been collaborating closely with the Windows developer community to bring features that you have been requesting. This includes Native AOT support for WinUI 3 for smaller and more performant apps, modern theming enhancements with Fluent UI for WPF, and WinForms gets a boost with a new Dark Mode, modern icon APIs, and improved asynchronous API access with Control.InvokeAsync.

↫ .NET Team at the .Net Blog

There’s way more on top of all of this, from changes to the languages .NET uses to new releases of the various developer tools, like Visual Studio.

Improving Steam Client stability on Linux: setenv and multithreaded environments

Speaking of Steam, the Linux version of Valve’s gaming platform has just received a pretty substantial set of fixes for crashes, and Timothee “TTimo” Besset, who works for Valve on Linux support, has published a blog post with more details about what kind of crashes they’ve been fixing.

The Steam client update on November 5th mentions “Fixed some miscellaneous common crashes.” in the Linux notes, which I wanted to give a bit of background on. There’s more than one fix that made it in under the somewhat generic header, but the one change that made the most significant impact to Steam client stability on Linux has been a revamping of how we are approaching the setenv and getenv functions.

One of my colleagues rightly dubbed setenv “the worst Linux API”. It’s such a simple, common API, available on all platforms that it was a little difficult to convince ourselves just how bad it is. I highly encourage anyone who writes software that will run on Linux at some point to read through “RachelByTheBay”‘s very engaging post on the subject.

↫ Timothee “TTimo” Besset

This indeed seems to be a specific Linux problem, and due to the variability in Linux systems – different distributions, extensive user customisation, and so on – debugging information was more difficult to parse than on Windows and macOS. After a lot of work grouping the debug information to try and make sense of it all, it turned out that the two functions in question were causing issues in threads other than those that used them.

They had to resort to several solutions, from reducing the reliance on setenv and refactoring it with exevpe, to reducing the reliance on getenv through caching, to introducing “an ‘environment manager’ that pre-allocates large enough value buffers at startup for fixed environment variable names, before any threading has started”. It was especially this last one that had a major impact on reducing the number of crashes with Steam on Linux.

Besset does note that these functions are still used far too often, but that at this point it’s out of their control because that usage comes from the libraries of the operating system, like x11, xcb, dbus, and so on. Besset also mentions that it would be much better if this issue can be addressed in glibc, and in the comments, a user by the name of Adhemerval reports that this is indeed something the glibc team is working on.

Valve ends Steam’s support for Windows 7 and 8

Steam has finally stopped working on several older Windows operating systems, following a warning from Valve that it planned to drop support earlier this year. With little fanfare, Windows 7 and Windows 8 gaming on Steam is no longer possible following the most recent Steam client update on November 5.

↫ Ben Stockton at PCGamesN

It’s honestly wild that Valve supported Windows 7 and 8 for this long for Steam in the first place. They’ve been out of support for a long time, and at this point in time, less than 0.3% of Steam users were using Windows 7 or 8. Investing any resources in continuing to support them would be financially irresponsible, while also aiding a tiny bit in allowing people to use such unsupported, insecure systems to this day.

I’m sure at least one of you is still rocking Windows 7 or 8 as your daily driver operating system, so I’m sorry if you don’t want to hear this, but it’s really, really time to move on. Buying a Windows 10 or 11 license on eBay or whatever costs a few euros at most – if you’re not eligible for one the free upgrade programs Microsoft ran – and especially Windows 10 should run just fine on pretty much anything Windows 7 or 8 runs on.

Do note that with Windows 10, though, you’ll be back in the same boat next year.

Mozilla Foundation lays off 30% of its employees, ends advocacy for open web, privacy, and more

More bad news from Mozilla.

The Mozilla Foundation, the nonprofit arm of the Firefox browser maker Mozilla, has laid off 30% of its employees as the organization says it faces a “relentless onslaught of change.”

[…]

Announcing the layoffs in an email to all employees on October 30, the Mozilla Foundation’s executive director Nabiha Syed confirmed that two of the foundation’s major divisions — advocacy and global programs — are “no longer a part of our structure.”

↫ Zack Whittaker at TechCrunch

This means Mozilla will no longer be advocating for an open web, privacy, and related ideals, which fits right in with the organisation’s steady decline into an ad-driven effort that also happens to be making a web browser used by, I’m sorry to say, effectively nobody. I just don’t know how many more signs people need to see before realising that the future of Firefox is very much at stake, and that we’re probably only a few years away from losing the only non-big tech browser out there. This should be a much bigger concern than it seems to be to especially the Linux and BSD world, who rely heavily on Firefox, without a valid alternative to shift to once the browser’s no longer compatible with the various open source requirements enforced by Linux distributions and the BSDs.

What this could also signal is that the sword of Damocles dangling above Mozilla’s head is about to come down, and that the people involved know more than we do. Google is effectively bankrolling Mozilla – for about 80% of its revenue – but that deal has come under increasing scrutiny from regulars, and Google itself, too, must be wondering why they’re wasting money supporting a browser nobody’s using.

We’re very close to a web ruled by Google and Apple. If that prospect doesn’t utterly terrify you, I honestly wonder what you’re doing here, reading this.