New Qt releases possibly restricted to paying customers for 12 months, KDE not particularly happy

There’s a storm brewing in the world of Qt and KDE, as the parent company of Qt, The Qt Company, is contemplating restricting new Qt releases to paying customers (i.e., not releasing them as open source) for twelve months. This obviously affects the KDE project considerably, who have been negotiating with The Qt Company for years now.

An announcement made by The Qt Company in January derailed said negotiations, however. As KDE’s Olaf Schmidt-Wischhöfer explains:

They announced that LTS releases of Qt will only be available for paid license holders. It is still unclear what this implies for contributions to Qt and for the sharing of security fixes between the various parties (including The Qt Company, the many Qt experts contributing, the KDE community, and Linux distributions).

It seemed the two parties were working on a path forward acceptable to all parties involved, but then came the announcement earlier today that The Qt Company was contemplating restricting all releases to paid customers for twelve months. It seems bad blood has been brewing for a while, as Schmidt-Wischhöfer states:

The Qt Company says that they are willing to reconsider the approach only if we offer them concessions in other areas. I am reminded, however, of the situation half a year ago. We had discussed an approach for contract updates, which they suddenly threw away by restricting LTS releases of Qt instead.

All software changes in Qt will still be available at as Open Source as required by our contract – maybe with a delay of 12 months if the company decides to part ways with the communities. We will continue to work on a contract update that helps all sides. But even if these negotiations were to be unilaterally stopped by The Qt Company, Qt will stay Open Source, and KDE will be able to use it. I am also absolutely sure that the Qt + KDE communities will continue cooperation on new features, bug fixes, and security fixes, even should The Qt Company decide to forgo the benefits of cooperation.

Luckily for the future of KDE and Qt, there is an agreement in place between KDE and The Qt Company that states that “[…] should The Qt Company discontinue the development of the Qt Free Edition under the required licenses, then the Foundation has the right to release Qt under a BSD-style license or under other open source licenses.”

This is a serious issue that I hope can be resolved, as nobody will benefit from a serious rift between The Qt Company and the KDE project.

Windows 10 gets support for browsing Linux file systems in WSL

Windows is getting support for browsing Linux file systems! Except, not really, since it only applies to WSL.

We’ve had the ability to access your Linux files since Windows 1903, but now you can easily get to them from your left-hand navigation pane in File Explorer. Selecting the Linux icon will show you a view of all your distros, and selecting those will place you in the Linux root file system for that distro.

As far as I can tell, this only applies to distributions installed through Windows Subsystems for Linux, not to actual distributions installed elsewhere on your computer (on other hard drives or partitions). Cool new feature, I guess, but properly sanctioned Windows support for Ext4 and other Linux-focused file systems would be so much more helpful.

This week in KDE: moar performance!

Some very nice performance fixes landed this week, which should substantially boost move and copy speeds for local transfers and transfers to and from Samba shares in particular. But that’s not all, and there’s more on the menu…

Every week, there’s a blog post highlighting the various changes, bugfixes, small new features, fixed paper cuts, and other small changes within KDE and its associated projects and programs. They’re a joy to read, and I would love it if more major software projects did this.

HPE sets end date for hobbyist licenses for OpenVMS

Hobbyist licenses for OpenVMS have been a notable option for users of the VAX, Alpha, and Integrity business servers. HP 3000 users tried for a similar license for MPE/iX, especially in the months following HP’s news it wouldn’t continue its 3000 business. HP declined to create the kind of license the users wanted to power the basement and in-garage 3000 servers they’d brought home.

With the change in ownership of OpenVMS — HP Enterprise turned over the business to VMS Software Inc. — the hobbyist program is ending at HPE. VSI is considering one option to continue hobbyist-class licenses.

That’s one hell of a bummer. I hope they can come to sort of solution or agreement.

In-depth: the Game Boy Printer

One of my goals with GBE+ is to program an emulator that is as complete as I can possibly make it. That means emulating devices like the GB Printer. To tell the truth, I had my eye on GB Printer support for some time, but only recently have I done enough work on the DMG/GBC core to make that possible. A long time ago, I tried getting the GB Printer to work in VBA-M (1.8.0) but the Linux version didn’t seem to do anything. That is to say, VBA-M did emulate the printer as if it were connected, but it didn’t save the image anywhere I could find. The Windows version worked flawlessly and showed me the final print as I expected. Maybe that was just user-error on my part, but it inspired me to one day make an emulator that would properly emulate the GB Printer on Linux, my OS of choice. Digressing, let’s take a look at what the GB Printer is doing and how it interacts with a Game Boy system.

The Game Boy Camera and Game Boy Printer were these almost mythical items I’d talk about with my friends and my brothers, and the idea of taking photos with a Game Boy was so wild and out there it sparked our imaginations. To this day, I’ve never seen or used one in real life, and that bums me out.

Microsoft buys so bad guys can’t

In February, KrebsOnSecurity told the story of a private citizen auctioning off the dangerous domain for the starting price of $1.7 million. Domain experts called dangerous because years of testing showed whoever wields it would have access to an unending stream of passwords, email and other sensitive data from hundreds of thousands of Microsoft Windows PCs at major companies around the globe. This week, Microsoft Corp. agreed to buy the domain in a bid to keep it out of the hands of those who might abuse its awesome power.

I had no idea that a seemingly innocuous default chosen decades ago had this much of an impact.

Chrome OS Terminal app gains new features, makes working with Linux easier

Google has been ramping up the Linux environment on Chrome OS lately, with features like microphone support and USB connections. For those of you who spend a lot of time in the command-line Terminal, Chrome OS 83 (currently in the Dev channel) has updated the app with new themes and customization options.

The Terminal app on Chrome OS has changed very little since the Linux container was originally released — it’s a single window with text. However, the new version shipping in Chrome OS 83 offers tabs, pre-made themes, customizable colors and fonts for text, and even cursor options.

To be honest, I’d rather have a proper, traditional Linux distribution than Chrome OS, but I guess these are welcome additions for those among us using the terminal on Chrome OS.

Canonical contributing upstream improvements to Plymouth ahead of Ubuntu 20.04 LTS

I guess current world events are starting to affect the flow of news in our sector, too, since there’s a decided lack of interesting stuff to talk about. So, let’s talk about this:

One of the immediate differences Ubuntu 20.04 desktop/laptop users will notice when booting in UEFI mode is the boot splash screen improvements thanks to leveraging Red Hat’s work on providing a flicker-free boot experience and pulling in the UEFI BGRT system/motherboard logo during the boot process to provide a more transitive experience. Canonical in turn is working on pushing some of their improvements back into upstream Plymouth.

The Ubuntu 20.04 LTS boot experience is on-par to what has been found in Fedora and other Linux distributions like Arch Linux for over one year.

I love it when different distributions and other projects work together to improve something that isn’t particularly sexy or high on anybody’s agenda, yet still is a welcome improvement. This is a great example of that.

Cidco MailStation as a Z80 development platform

The Cidco MailStation is a series of dedicated e-mail terminals sold in the 2000s as simple, standalone devices for people to use to send and receive e-mail over dialup modem. While their POP3 e-mail functionality is of little use today, the hardware is a neat Z80 development platform that integrates a 320×128 LCD, full QWERTY keyboard, and an internal modem.

After purchasing one (ok, four) on eBay some months ago, I’ve learned enough about the platform to write my own software that allows it to be a terminal for accessing BBSes via its modem or as a terminal for a Unix machine connected over parallel cable.

A year old story, but come on, this is timelessly cool.

Windows 10’s new Hosted App Model

In Windows 10 version 2004, we are introducing the concept of Hosted Apps to the Windows App Model. Hosted apps are registered as independent apps on Windows, but require a host process in order to run. An example would be a script file which requires its host (eg: Powershell or Python) to be installed. By itself, it is just a file and does not have any way to appear as an app to Windows. With the Hosted App Model, an app can declare itself as a host, and then packages can declare a dependency upon that host and are known as hosted apps. When the hosted app is launched, the host executable is then launched with the identity of the hosted app package instead of its own identity. This allows the host to be able to access the contents of the hosted app package and when calling APIs it does so with the hosted app identity.

This seems like something that could be useful for progressive web apps, and maybe even Electron apps by making them use Edge Chromium’s rendering engine instead of having every Electron application use its own copy of Chromium, which could benefit performance and battery life.

How SNES emulators got a few pixels from complete perfection

As the lead coder of bsnes, I’ve been attempting to perfect Super Nintendo emulation for the past 15 years. We are now at a point where that goal is in sight, but there we face one last challenge: accurate cycle timing of the SNES video processors. Getting that final bit of emulation accuracy will require a community effort that I hope some of you can help with. But first, let me recap how far we’ve come.

The bsnes saga is a fascinating story of how an obsession for perfection can lead to something beautiful – not just the emulator itself, but also the various technical details and stories written about it. I doubt most people really needs the insane emulation accuracy bsnes strives for, but in the future, when original, first party SNES consoles have all died out or get incredibly rare, the accuracy of bsnes will be a godsend.

Dropbox’s journey to type checking 4 million lines of Python

Dropbox is a big user of Python. It’s our most widely used language both for backend services and the desktop client app (we are also heavy users of Go, TypeScript, and Rust). At our scale—millions of lines of Python—the dynamic typing in Python made code needlessly hard to understand and started to seriously impact productivity. To mitigate this, we have been gradually migrating our code to static type checking using mypy, likely the most popular standalone type checker for Python. (Mypy is an open source project, and the core team is employed by Dropbox.)

This post tells the story of Python static checking at Dropbox, from the humble beginnings as part of my academic research project, to the present day, when type checking and type hinting is a normal thing for numerous developers across the Python community. It is supported by a wide variety of tools such as IDEs and code analyzers.

I recently came across an article complaining about Python’s dynamic typing and couldn’t quite believe this was still the case. As it turns out, nowadays there is indeed a standardized way to do write type annotations and to type-check prior to runtime using mypy, all the while being driven forward by the good folks at Dropbox (which includes Python’s Benevolent Dictator for Life Guido van Rossum). This article provides a fascinating insider insight into the history of type-checking in Python and how it evolved in symbiosis with Dropbox’s codebase.

LineageOS 17.1, based on Android 10, released

We have been working extremely hard since Android 10’s release last August to port our features to this new version of Android. Thanks to massive refactoring done in some parts of AOSP, we had to work harder than anticipated to bring some features forward, and in some cases, introduced implementations similar to some of our features into AOSP (but we’ll get to that later).

Other than the Android 10 features, LineageOS 17.1 also brings back theming support (deprecated in 13.0), and the default installation solution is now Lineage Recovery (but other recoveries are still supported, and may even be advised by maintainers for specific devices).

Not every Android devices is supported right away, of course, but there’s a decent number of supported devices regardless.

Swift on Mac OS 9

It’s April 1, and that means it’s both April Fools’ Day and the anniversary of the founding of Apple Inc. While this year is a sober one due to current events, I think a lot of people still appreciate what people are creating and sharing to keep spirits up, whether that be music or art or… Impractical programming projects. And while pranks on April Fools’ seem less and less fun, obvious jokes and whimsy, not at anyone’s expense, are still something I believe in… And even better if they actually work.

Last year I implemented the world’s best code visualizer. This year I decided to seriously attempt something that I’d thought about in the past: getting a Swift program to run on Mac OS 9.

This is not an April Fools joke, but a real project that really works. An absolutely outstanding effort and great technical write-up.

Microsoft Edge is becoming the browser you didn’t know you needed

It’s no secret that we’ve been enthusiastic about Microsoft’s new, Chromium-based Edge browser for a while now. But that enthusiasm has mostly been limited to “a default Windows browser that doesn’t suck,” rather than being for any particularly compelling set of features the new Edge brings to the browser ecosystem.

In a folksy announcement this week, Microsoft politely declared its determination to step up our expectations from “doesn’t suck” to somewhere on the level of “oh, wow.” Microsoft Corporate VP Liat Ben-Zur spent plenty of time enthusing about the way the new features are, apparently, already changing her life.

The only thing that has me excited about the new Edge is that Windows will finally have a proper default browser that isn’t either complete garbage (Internet Explorer) or ignored by every web developer ever (the old Edge).

Rethinking OpenBSD security

OpenBSD aims to be a secure operating system. In the past few months there were quite a few security errata, however. That’s not too unusual, but some of the recent ones were a bit special. One might even say bad. The OpenBSD approach to security has a few aspects, two of which might be avoiding errors and minimizing the risk of mistakes. Other people have other ideas about how to build secure systems. I think it’s worth examining whether the OpenBSD approach works, or if this is evidence that it’s doomed to failure.

I picked a few errata, not all of them, that were interesting and happened to suit my narrative.

Honda bucks industry trend by removing touchscreen controls

Honda has done what no other car maker is doing, and returned to analogue controls for some functions on the new Honda Jazz.

While most manufacturers are moving to touchscreen controls, identifying smartphone use as their inspiration – most recently seen in Audi’s latest A3 – Honda has decided to reintroduce heating and air conditioning controls via a dial rather than touchscreen, as in the previous-generation Jazz.

Unlike what the introduction states, Honda joins fellow Japanese car maker Mazda in not just blindly using touchscreens for everything inside cars. This is a good move, and definitely takes some guts, since I’ve seen countless car reviewers – including my standout favourite, Doug DeMuro – kind of blindly assuming that any car without 100% touchscreen control is outdated, without questioning the safety consequences.

Good on Honda.

GNOME’s Mutter working on variable refresh rate support

A work-in-progress patch series was posted over the weekend for adding variable refresh rate support into Mutter for X.Org and Wayland. This includes checking for VRR support from connected monitors using the DRM properties, support for activating VRR, and the ability to toggle the VRR support via a DBus API. The VRR support isn’t advertised to Wayland clients at the moment for the lack of an upstream Wayland protocol around VRR.

I can’t wait for Mutter and Kwin to adopt and integrate support for variable refresh rates, so seeing these first patches is good news.

Ryzen 4000 review: AMD’s 7nm Ryzen 9 offers game-changing performance for laptops

When AMD introduced its Ryzen 4000 mobile CPUs at CES, the company made bold claims of game-changing performance. Coming off of years of underwhelming laptop chips, AMD promised it had optimized Ryzen 4000 for mobile computing.

Now we’ve tested those claims in AMD’s Ryzen 9 4900HS chip, an 8-core, 7nm chip with Radeon Vega cores. We’re stunned at the CPU’s impressive tour de force that defeats just about every Intel 8th- and 9th-gen laptop CPU we’ve ever seen.

Just open up your YouTube feed and you’ll see pretty much every PC hardware channel staring at disbelief in just how good AMD’s Ryzen 4000 mobile processors really are. This isn’t just a “kind of good enough” processor – the top of the line model is faster than or equal than Intel’s top of the line processor at both single core and multicore workloads, while using slightly more than half the power.

It’s all well and good for AMD to roundly run circles around Intel in the server and desktop/workstation space, but the laptop space is where the real money and mindshare can be found. This new line of AMD mobile processors is simply stunning.

Linux 5.6 released with WireGuard

Earlier this evening, Linus released Linux 5.6, which contains our first release of WireGuard. This is quite exciting. It means that kernels from here on out will have WireGuard built-in by default. And for those of you who were scared away prior by the “dOnT uSe tHiS k0de!!1!” warnings everywhere, you now have something more stable to work with. The last several weeks of 5.6 development and stabilization have been exciting, with our codebase undergoing a quick security audit, and some real headway in terms of getting into distributions.

WireGuard is probably the biggest new feature in 5.6, announced earlier today.