Did GitHub Copilot really increase my productivity?

Yuxuan Shui, the developer behind the X11 compositor picom (a fork of Compton) published a blog post detailing their experiences with using GitHub Copilot for a year.

I had free access to GitHub Copilot for about a year, I used it, got used to it, and slowly started to take it for granted, until one day it was taken away. I had to re-adapt to a life without Copilot, but it also gave me a chance to look back at how I used Copilot, and reflect – had Copilot actually been helpful to me?

Copilot definitely feels a little bit magical when it works. It’s like it plucked code straight from my brain and put it on the screen for me to accept. Without it, I find myself getting grumpy a lot more often when I need to write boilerplate code – “Ugh, Copilot would have done it for me!”, and now I have to type it all out myself. That being said, the answer to my question above is a very definite “no, I am more productive without it”. Let me explain.

↫ Yuxuan Shui

The two main reasons why Shui eventually realised Copilot was slowing them down were its unpredictability, and its slowness. It’s very difficult to understand when, exactly, Copilot will get things right, which is not a great thing to have to deal with when you’re writing code. They also found Copilot incredibly slow, with its suggestions often taking 2-3 seconds or longer to appear – much slower than the suggestions from the clangd language server they use.

Of course, everybody’s situation will be different, and I have a suspicion that if you’re writing code in incredibly popular languages, say, Python or JavaScript, you’re going to get more accurate and possibly faster suggestions from Copilot. As Shui notes, it probably also doesn’t help that they’re writing an independent X11 compositor, something very few people are doing, meaning Copilot hasn’t been trained on it, which in turn means the tool probably has no clue what’s going on when Shui is writing their code.

As an aside, my opinion on GitHub Copilot is clear – it’s quite possibly the largest case of copyright infringement in human history, and in its current incarnation it should not be allowed to continue to operate. As I wrote over a year ago:

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?

↫ Thom Holwerda

It’s curious that as far as I know, Copilot has not been trained on Microsoft’s own closed-source code, say, to Windows or Office, while at the same time the company claims Copilot is not copyright infringement or a massive open source license violation machine. If what Copilot does is truly fair use, as Microsoft claims, why won’t Microsoft use its own closed-source code for training?

We all know the answer.

Deeply questionable legality aside, do any of you use Copilot? Has it had any material impact on your programming work? Is its use allowed by your employer, or do you only use it for personal projects at home?

Raspberry Pi Connect: remote desktop for your Pi

Today we’re pleased to announce the beta release of Raspberry Pi Connect: a secure and easy-to-use way to access your Raspberry Pi remotely, from anywhere on the planet, using just a web browser.

It’s often extremely useful to be able to access your Raspberry Pi’s desktop remotely. There are a number of technologies which can be used to do this, including VNC, and of course the X protocol itself. But they can be hard to configure, particularly when you are attempting to access a machine on a different local network; and of course with the transition to Wayland in Raspberry Pi OS Bookworm, classic X remote desktop support is no longer available.

We wanted to be able to provide you with this functionality with our usual “it just works” approach. Enter Raspberry Pi Connect.

↫ Gordon Hollingworth

Pi Connect uses WebRTC, and a daemon running on your Pi listens for incoming screensharing requests from the Raspberry Pi website to connect the VNC server on your Pi to the VNC client running in your browser. The service is in beta, it’s free, but the one major downside is that for now, there’s only one TURN server for this service, located in the UK, but they might set up more of them if demand is high enough.

If you want to try this service on your own Pi running Raspberry Pi OS, you’re going to need to be using a Raspberry Pi 5, 4, or 400, using the latest version of the operating system running Wayland. Update your operating system, install the rpi-connect package, reboot, and you’re good to go.

US revokes Intel, Qualcomm’s export licenses to sell to China’s Huawei, sources say

The U.S. has revoked licenses that allowed companies including Intel and Qualcomm to ship chips used for laptops and handsets to sanctioned Chinese telecoms equipment maker Huawei Technologies, three people familiar with the matter said.

↫ Alexandra Alper, Fanny Potkin, David Shepardson

The timing of this news is very interesting, as despite the massive sanctions the United States levied against Huawei, the company seems to be doing really well, with its smartphone business seeing massive gains in the Chinese market, at the expense of everyone else. This proves that Huawei does not need access to western chips and technologies to be successful, which must definitely sting in the US and Europe.

Strong financial results, using hardware and chips designed not by western companies but by Chinese ones, combined with the only mobile operating system that has any serious potential to at least somewhat threaten Android and iOS. The various sanctions were clearly intended to hurt Huawei and possibly contain it to just China, but it seems they’re not having their desired effect at all.

NetBSD 8.3 released, marks the end of the 8.0 branch

NetBSD 10 and NetBSD 9.4 were only recently released, leaving one final branch to receive what will be its last update: NetBSD 8.3. NetBSD 8.0 was originally released in 2018, so this final release marks six years of updates, which is a good track record, especially now that two newer main releases are available to choose from. With 8.3 being the final release, this means no more regular or security updates, pkgsrc no longer supports the 8.0 branch either – so yeah, time to upgrade.

NetBSD 8.3 brings various updates and bug fixes for libX11, xterm, tmux, and httpd, and the root name servers and time zone data have been updated to their latest iterations as well. There’s of course a full list of changes to peruse through if you want to know every little detail that’s changed. You can update your installation in-place, of course, or download the installation media for 8.3 from one of the many mirrors.

Just a bunch of scanners (JBOS?)

This is the story on how I spent far too much money and time getting a scanner to work over iSCSI so that I could prove “Chris O” wrong on StackExchange. The TL;DR is that yes scanners work fine over iSCSI.

↫ xssfox

The next step is connecting a bunch of flatbed scanners to a disk array enclosure, but that turns out to be quite an expensive little exercise. Regardless, this is absolutely wild, and I love it when people go to great lengths just to prove that something pointless can actually be done. Bravo.

LPCAMM2 memory is finally here

But today we got our hands on LPCAMM2 for the first time, and this looks like the future to us. LPCAMM2 is a totally modular, repairable, upgradeable memory standard for laptops, using the latest LPDDR chips for maximum speed and efficiency. So instead of overpaying (or under-speccing) based on guesswork about your future memory needs, you’ll hopefully be able to buy your next laptop and then install more RAM as needed. Imagine that!

↫ Carsten Frauenheim

LPDDR memory, used in modern laptops, has been difficult – or impossible – to upgrade because its low power nature means it needs to be located as close to the processor as possible with short traces, since the longer the traces, the more power is needed to maintain signal integrity between the processor and RAM. This would defeat the entire purpose of low-power DDR memory to begin with.

Originally developed by Dell and eventually adopted by JEDEC and the wider industry, LPCAMM2 solves this problem by using screw-down RAM modules located right next to the processor. These modules can, like regular memory modules, be replaced and upgraded when needed or desired. This is a great leap forward, and I really, really hope we’re going to see quick, widespread adoption.

GCC 14.1 released

GCC 14.1 has been released, and it should come as no surprise that the new features are not exactly something I, someone who doesn’t program, can properly parse. So, here’s the three items GCC itself thought were important to list first.

The C frontend when targeting standards newer than C89 now considers many non-standard constructs as errors that were previously only warnings. See https://gcc.gnu.org/gcc-14/porting_to.html#warnings-as-errors for more details. C23 _BitInt Bit-precise integer types are now supported, for now only on IA-32, x86-64 and AArch64.

The C++ frontend now implements several C++26 features, some missing C++23 bits and defect report resolutions. Diagnostics involving C++ templates now quote source from the instantiation context.

The libstdc++exp.a library now includes all symbols for the Filesystem TS and the experimental symbols for the C++23 std::stacktrace class, so -lstdc++exp can be used instead of -lstdc++fs. The libstdc++_libbacktrace.a library is not longer installed. Improved experimental support for C++20, C++23, and C++26. Updated parallel algorithms that are compatible with oneTBB.

↫ GCC 14.1 release announcement

GCC 14.1 is available for download, of course, but most of us will get it once it hits our distribution’s package repositories.

Stack Overflow signs deal with OpenAI, bans users trying to alter answers

We’re all aware of Stack Overflow – it’s a place where programmers and regular users can ask technical questions, and get answers from anyone who thinks they know the answer. Stack Overflow has become so ubiquitous among programmers and developers, the concept of “I just copied the code off Stack Overflow” has become a consistent meme to indicate you don’t fully grasp how something works, but at least it works.

If you’ve ever contributed answers to Stack Overflow, you might want to consider deleting them, altering them, or perhaps even go as far as request a GDPR removal if you’re in the European Union, because Stack Overflow has just announced a close partnership with “AI” company OpenAI (or, more accurately, “Open” “AI”). Stripped of marketing speak, the gist is exactly as you’d expect: OpenAI will absorb the questions and answers on Stack Overflow into its models, whether their respective authors like it or not.

As much as you may want to try and delete your answers if you’re not interesting in having your work generate profit for OpenAI, deleting popular questions and answers is not possible on Stack Overflow. The other option is altering your answers to render them useless, but it seems Stack Overflow is not going to allow you to do this, either. Ben Humphreys tried to alter his highest-rated answers, and Stack Overflow just reverted them back, and proceeded to ban him from the platform.

Stack Overflow does not let you delete questions that have accepted answers and many upvotes because it would remove knowledge from the community.

So instead I changed my highest-rated answers to a protest message.

Within an hour mods had changed the questions back and suspended my account for 7 days.

↫ Ben Humphreys

Now that they’ve made what is most likely an incredibly lucrative deal with OpenAI that’s going to net Stack Overflow’s owners boatloads of money, they obviously can’t let users delete or alter their answers to lower the monetary value of Stack Overflow’s content. Measures to prevent deletion or alteration are probably one of the clauses in the agreement between Stack Overflow and OpenAI. So there’s likely not much you can do to not have your answers sucked into OpenAI, but you should at least be aware it’s happening in case of future answers you might want to contribute.

Running NetBSD on OmniOS using bhyve

I want to run GoToSocial on some *BSD system. Because I am who I am, I went for using NetBSD 10.0 . And because my hypervisor is running bhyve on OmniOS , you get the title of this blog post.

Don’t get too anxious, it is quite straightforward. So let the journey begin.

↫ Joel Carnat

Bhyve is a hypervisor originating from FreeBSD, while OmniOS is a distribution of illumos, a continuation of the last open source Solaris release from Oracle. GoToSocial, meanwhile, is an ActivityPub social network server, so it belongs in the same family as Mastodon, Glitch, Akkoma, and countless others. This guide makes this whole process look like a piece of cake, so if you’ve ever been interested in running your own ActivityPub server – read on.

On a slightly related sidenote, there’s no OSNews AT instance, partly because I don’t want to deal with the moderation and costs, and partly because I’m incredibly happy being a member of Exquisite, a Glitch instance running on OpenBSD, managed by OpenBSD enthusiasts. Never say never, of course, but the odds of seeing an OSNews AT instance in the future are very slim.

The VGA attribute controller is weird

The grabber in Windows 3.1 was improved to save and restore the index register as well, but it does not attempt to restore the flip-flop state, which is significant. The problem with the VGA emulation was that it erroneously applied the flip-flop state to reads from port 3C0h, and Windows 3.1 would save the wrong index register value… but only the second time through, because the flip-flop state was different at that point. That is to say, the Windows 3.1 standard mode grabber read from port 3C0h to query the attribute controller index register state, but the emulation returned the currently selected data register contents instead.

And then, when restoring the attribute controller index register the next time around, the register would be restored to the wrong value which didn’t have bit 5 set, causing the screen to go blank.

↫ Michal Necasek

It’s not every day that you learn how an aspect of the workings of VGA causes a blank screen under very specific circumstances when running Windows 3.1 in Standard mode under emulation, and that this specific aspect of the workings of VGA was implemented to maintain backwards compatibility with EGA.

Absolutely bonkers.

PowerPC 40x processor support to be dropped from the Linux kernel

In addition to Linux 6.10 expected to drop support for very old DEC Alpha processors (EV5 and earlier), it looks like the PowerPC 40x (early PowerPC 400 series) processor and platform support will be retired too.

Back in 2020 was a proposal for dropping PowerPC 40x support from the Linux kernel given that the code was orphaned for a long time with no apparent users. The PowerPC 40x processors were found in thin clients, set-top boxes, and other devices during the 90’s. Finally now it looks like that the PowerPC 40x removal is set to happen.

↫ Michael Larabel

Spring cleaning in the hardware support department. I wonder what has more users – Windows on ARM, or Linux on PowerPC 40x.

First-generation Windows on ARM PCs will not be able to run Windows 11 24H2

Windows 11 supports a variety of ARM processors from Qualcomm. According to the official documentation, you need a computer with the Snapdragon 850 processor inside or newer to run the current operating system officially. However, customers with PCs powered by the Snapdragon 835, the original Windows on ARM chip from 2016, can bypass hardware requirements and install Windows 11 at their own risk. Sadly, those days will be ending soon.

Starting with Windows 11 version 24H2, Microsoft’s operating system requires ARM v8.1 to run. An attempt to boot it from a device with an ARM v8.0-based processor results in system crashes. For reference, the Snapdragon 835 from 2016 is a chip with Kryo 280 cores, which are derivative of ARM’s Cortex-A73 cores.

↫ Taras Buria at Neowin

I’m sure all three Windows on ARM users are devastated.

Snikket: this week’s sponsor

Snikket is a FOSS project for creating private chat spaces for small groups, such as families, friends, or clubs. It doesn’t depend on a phone number, doesn’t upload address books anywhere, and doesn’t sell data to advertisers. It supports all the features you expect, including media and voice messages, audio and video calls, end-to-end encryption, group messaging, and more. Use it from multiple devices at once with the official apps, or even with unofficial, third-party apps. Snikket is easy to self-host, and professional managed hosting is also available.

Our previous sponsor, JMP, opted to donate a free week’s sponsorship to Snikket, which any paying OSNews sponsor can opt to do. This is our very small way of giving something back to the countless open source and/or smaller projects out there. Thank you Snikket for sponsoring OSNews!

With PowerPC, Windows CE and the WiiN-PAD slate, everyone’s a WiiN-er (except Data General)

That’s right: it’s PowerPC, the most unloved of the architectures CE ever ran on — in fact, this is the first PowerPC Windows CE device I’ve ever found, and I’m the self-described biggest pro-PowerPC bigot in the world. Here’s an unusual form factor Windows CE device, running on the operating system’s least used CPU, from a storied computer company near the end of its run, intended for medical applications, produced in very small numbers and cancelled within months.

What are we going to do with it? Well, what do you think we’re gonna do with it? We’re going to program it, so that we can finally have some software! And, of course, since this wacky thing was there at the bitter end, we’ll talk more about the last days of Data General and what happened next.

↫ Cameron Kaiser

I knew Windows CE supported PowerPC, but I never knew any PowerPC-based Windows CE devices ever actually shipped and made it to market. Only Windows CE 2.0 seems to have supported the architecture, and it seems to have been eliminated in 3.0 and 4.0, so it’s not surprising there weren’t many PowerPC Windows CE devices out there. The device that’s the subject of this article, too, only lasted on the market for a few months, so it’s definitely a rarity.

Palm OS gets a TOTP application

Still rocking your Palm OS device, but mutter under your breath every time you need to log into a website or service with two-factor authentication? Sick of carrying around an Android or iOS device just so you can log in on your Palm PDA? Worry no more, your prayers have been answered, you can finally throw that Android or iOS garbage into the sun.

Get your 2-factor codes on your Palm, just like Google Authenticator. Unlike Hotpants (an old port of a J2ME phone app), this version takes up much less space and supports all Palm OS versions.

↫ Nathan Korth

You can now generate 2FA codes on your Palm device. This is wild, and I absolutely love it. I might if set it up on one of my dozens of Palm OS devices and just put it next to my keyboard for easy access. There’s no cooler way to handle 2FA than this.

Thanks to our outgoing sponsor: JMP

We’d like to thank this past week’s sponsor JMP for sponsoring OSNews. As a reminder, JMP is a fully FOSS service providing a way to get a real phone number that operates over the internet using XMPP. They provide numbers in the USA and Canada with everything you need to access SMS/MMS/etc. and voice calls using your XMPP (or SIP) clients of choice across all your devices. They are committed to growing the use of open communications technology such as XMPP, ultimately working to help people move their communication off the unencrypted telephone network and onto the federated, encrypted, and diverse Jabber network.

Once again, thanks to JMP for sponsoring OSNews!

Why I run a BSD on a PC

But the biggest differential factor between BSDs and GNU/Linux is the way it is structured.

In Linux, all components are designed to work together, but are completely separate. You’ve got the kernel, init systems, multimedia daemons, userland, bootloader, virtualization and containerization mechanisms, package managers, and so on. They are all separate projects with their own goals and are operated by separate entities. This is why we’ve got different Linux Distributions instead of Operating System. Everyone can take the kernel, start adding components on top of it, and a few minutes later the DistroWatch is even harder to keep up with.

Each BSD on the other hand is designed as single system. All components are created and developed together. Things work together perfectly, because they are designed, coded, tested and released as one.

↫ Michał Sapka

As I’ve mentioned here and there over the past few weeks, I’ve been exploring the world of BSD lately, and after bouncing of FreeBSD I’ve found a very happy home on OpenBSD. Now, this doesn’t mean I’m now a full-time OpenBSD user or anything like that – Linux is the main operating system on my gaming PC, my laptop, and my workstation, and that’s not going to be changing any time soon. However, after installing, exploring, and using OpenBSD on a machine cobbled together from spare and older parts, I can definitely see the appeal.

OpenBSD feels more coherent than a Linux distribution – I use Fedora KDE, if that matters – and the various lower-level systems seem to talk to each other in ways that make more intuitive sense than the individually developed systems in a Linux distribution do. Diving into the command-line interface of a Linux distribution can sometimes feel confusing because different tools use different conventions, because they’re developed by entirely different people and projects, with different ideas about how flags should work, how output should be presented, and so on. On OpenBSD, it seems much easier to carry over something you learn from one tool to the next. I simply feel more secure and knowledgeable, even if it’s still the same idiot me.

The documentation plays a big role here. They’re in one place, written in a consistent style, and reference each other left and right, making it easy to find your way around to other commands or tools you haven’t yet considered using. On Linux, you’re going from one project’s documentation to another project’s documentation, and not only will the style change, the quality will also vary greatly.

That’s not to say everything’s perfect on OpenBSD – it’s clearly a hardened server operating system, and its focus on security will definitely throw up annoying hurdles if you’re just trying to do workstation things. Firefox, for instance, is hobbled by strict security rules through unveil, which makes perfect sense for what OpenBSD is first and foremost trying to be, but if you’re just a regular user like me, it’s annoying that Firefox can only access ~/Downloads, or that it can’t set itself as the default browser so unless you disable that check, Firefox will keep complaining about it. Diving into Firefox and unveil is on my list, though, because you should be able to ‘fix’ this.

Furthermore, while every piece of software, or an equivalent, is pretty much always available for Linux, on OpenBSD it’s more hit and miss, and it seems to take a bit longer for new releases of especially bigger software packages to get updated. I mean, there’s obviously no Steam on OpenBSD, but smaller, less well-known projects generally also don’t support OpenBSD, so you’re either going to be compiling things yourself or hope someone packages it up for OpenBSD.

Then there’s the various vanity things we’ve come to expect from modern Linux distributions, like slick, fully graphical boot and shutdown sequences, detailed graphical tools for managing your packages, graphical firmware and driver managers, and so on. OpenBSD has none of these things, and while that’s no issue for me, I can see how it would throw other people off.

FreeBSD, OpenBSD, NetBSD, and the few others often kind of get lost in all the Linux, Windows, and macOS violence, and to be quite honest – I feel like many people in the BSD community seem mostly okay with that. If you’ve never spent any serious time using any of the BSDs, but you’re interested in operating systems and don’t mind spending a few hours learning how to manipulate your system through CLI tools – dive in. There’s a ton of fun to be had, and things to learn.

For now, I’m continuing my exploration of OpenBSD, and if things keep going as well as they are, I may consider at least switching over the workstation in my office from Fedora KDE to OpenBSD – but I highly doubt it’ll ever make its way to my gaming desktop or my laptop.

The Game of Trees version control system

Game of Trees (Got) is a version control system which prioritizes ease of use and simplicity over flexibility.

Got is still under development; it is being developed on OpenBSD and its main target audience are OpenBSD developers.

Got uses Git repositories to store versioned data. Git can be used for any functionality which has not yet been implemented in Got. It will always remain possible to work with both Got and Git on the same repository.

↫ Game of Trees website

OpenBSD is developing Game of Trees because they want a version control system that adheres to OpenBSD coding conventions, implements various OpenBSD security practices, and uses nothing but BSD-licensed code. It’s important to note, as its developers make very clear, that GoT is not in any way intended as a replacement for git.

X.Org on NetBSD: the state of things

The big question – does all this have a future? The good news is that all new hardware has generic support in X. Someone writes either a modesetting kernel driver or a classical wsdisplay kernel driver and they will be automatically supported by the associated drivers in X. The bad news is that to have applications running we require access to a larger open source ecosystem, and that ecosystem has a lot of churn and is easily distracted by shiny new squirrels. The process of upstreaming stuff to X.Org is an ongoing process, but it’s likely we’ll run into things that will never be suitable for upstream.

↫ Nia Alarie on the NetBSD blog

I had no idea NetBSD did such heavy customisations of its X.Org implementation, many of which have never made their way upstream. The project also maintains support for several older GPUs, uses its own input driver, and more – it’s quite impressive.