Microsoft is adding a new key to PC keyboards for the first time since 1994

Copilot key will eventually be required in new PC keyboards, though not yet.

Ars Technica

Seriously, if Apple copy Microsoft with a stunt like this, that'd be my cue to buy a Framework laptop and switch 100% to Linux for work.

(Which would be enormously painful as Scrivener isn't supported on Linux and it's been my work platform for the past 15 years.)

NB: only distributions with X.org ranther than Wayland and sysv init instead of systemd need apply.

@cstross why not wayland
@graphite Because Wayland AIUI isn't compatible with all previous X apps. And I want compatability. (Also, it's needless change for change's sake, just like systemd.)
@cstross I'm using Wayland and it works with pretty much every app.
@cstross X11 applications can run on Wayland, via Xwayland
@hko So they've built an X display server that runs as a guest on Wayland, which is otherwise useful for what, precisely? It seems like a waste of CPU cycles to me (that is: I have no use case for it).

@cstross Telling the people who write display servers and protocols how to do their jobs is well above my paygrade.

For better or worse, the ecosystem seems to have mostly moved from X11 to Wayland. And personally, I'm not quite old enough yet to want to expend my energy on going against the grain, there.

@cstross @hko

It seems like a waste of CPU cycles to me (that is: I have no use case for it).

Huh, but you just said higher up that you need compatibility?

@lonjil @hko I need compatability = I want to run X11. I am uninterested in whatever innovations Wayland is supposed to bring. I want a Linux desktop like it was in 1999, running KDE 3.5.8 or thereabouts!
@cstross @lonjil @hko The problem is X was architected around a single standard: VGA graphics provided by the system BIOS. But in this day and age monitors are driven by many different combinations of microprocessor extensions, graphics cards, and operating system facilities, and they are not to a single standard. It is unfortunately necessary to break everything to fix it again, and Wayland is an architecture which can work across the spectrum of modern display devices...
@cstross @lonjil @hko ... which includes foldable phones with sentinel displays on the back, e-ink readers, ray-traced game accelerators, 90-inch TVs, etc, etc.

@khleedril @lonjil @hko

You are Wrong. X11 had *nothing* to do with the VGA standard.

X11 predates VGA graphics by three years and wasn't intended to run on PCs or deal with a BIOS at all—it was designed for workstations with a variety of graphics hardware. I remember it on Sun 3/60 kit circa 1989 ...

@cstross @lonjil @hko Yeh, sorry, I made a crap post there. Was trying to put across that it was designed to run on a system with *one* graphics sub-system, not several possibly disparate ones, but never mind my parabolicism.

@khleedril @cstross @lonjil @hko X11 was a network protocol. It came from project Athena, launched in 1983 as a joint project between MIT, DEC and IBM to produce a "campus-wide computing environment".

X11 was designed to pop up GUI windows on a different physical machine than the program was running on, potentially with different OS on different hardware at each end. That was central to the design.

The xfree86 clowns broke a lot of that over the years "optimizing", but that's not X11's fault.

@khleedril @cstross @lonjil @hko Back at Rutgers I loved playing a game called "xbattle" which was implemented as 1 game process opening windows on a bunch of different machines (listed on the command line) so people could play against each other in a shared map.

If you could trivially do that in 1992 on a LAN, one computer with 4 monitors does not require significant new plumbing from X11.

Alas people wrapped the protocol with layers of shared libraries, each with "simplifying assumptions"...

@landley @khleedril @lonjil @hko Yup. X11 dates to the era of thin clients with bitmapped displays connected by ethernet because hard disks and CPUs were comparatively expensive. We turned the corner around 1993-96 when the price of RAM and hard disks dropped enough to make a single-user PC with an SVGA or better display running UNIX/X11 cheaper than X terminal plus a slice of a Sun or VAX server to drive it.

@cstross @khleedril @lonjil @hko 20 years ago I wrote an extensive historical analysis of how Moore's Law's consistent advance was in part market collusion, in order to explain why Itanium failed in the context of SCO's lawsuit against IBM.

I'm still kind of proud of that writeup:

http://www.catb.org/~esr/halloween/halloween9.html#itanium

Halloween IX: It Ain't Necessarily SCO

there have been many eras of thin clients, and we're going through one of them right now. there were dumb text terminals, then there were dumb graphical terminals, then there were netbooks, and now there are javascrippled web sites, often packaged as TRApps. the pocket computers people carry are the dumb terminals of yore, capable of computing fonts and even doing turing-complete postscript, but artificially constrained to serving a remote master

@khleedril @cstross @lonjil @hko With the result that "nobody programs against libX11.so anymore, use gtk or qt to talk to libx" and I'm going "libX11 is _itself_ a wrapper around a documented protocol!""

Posix was a common subset of shared Unix API, an attempt at similifying and stabilizing, "you can rely on this, there may be extensions but they can be ignored".

Nobody even tried to do that for X11...

@landley @khleedril @cstross @lonjil since the 1980s, many people have started to want their display system to do new things, which are not very efficient on vanilla X11. Like rendering video streams with obscene numbers of pixels. Possibly scaled up to full screen, on displays with bazillions of pixels.

@cstross @lonjil @hko The most important innovation of Wayland is convincing people post-2010 to give away their time for free to maintain it.

X works fine for now, but bitrot is slowly chipping away at the ability to successfully run it, and it's going to continue that way unless someone volunteers for the thankless, unpaid job of maintaining it.

@cstross @hko For one, CPU cycles are essentially free. X11 worked well on a Sun 3/60 with a single 8GhZ 68020. And secondly, having a single modern display engine means that you only need to support hardware compatibility once. Then you can run your different frameworks on top of that.

@StephanSchulz @cstross @hko fuck no!

It's this mentality that "CPU circles are essentially free, storage is practically unlimited, network bandwidth is a given" that makes software that could run on a Super Nintendo bloat to the point that you need a state of the art computer bought in the last two months to run.

@hackbarth @cstross @hko Well, say goodbye to bloaty languages like Perl, AWK, Python, or Java then. Pure C on the bare metal is the only solution. Operating Systems are for wimps! Yes, bloat can be a problem. But not all abstraction is bloat - or if it is, some is well worth it. I have no interest in running anything on a Super Nintendo. And I do write pretty mean C code for my main project - where performance matters. I use "bloaty" Python for e.g. data analysis.
@StephanSchulz @cstross @hko CPU cycles are essentially free. The earth has infinite resources to waste, war is peace, and are you interested in this nice little bridge I happen to have to sell you?

@cstross @StephanSchulz @hko I think you mentioned “with a single 8 *MHz* 68020”

Just imagine a Mac IIfx with an 8 GHz CPU. The mind boggles!

@clith @StephanSchulz @hko Mac IIfx: March 1990-April 1992. Sun 3/60: launched some time after mid-1985, end-of-life by 1989. So it predates the Mac IIfx by approximately half a decade (at a time when things were changing FAST). Also, no Sun 3 ran slower than 15.7MHz.
@cstross @clith @hko MHz: Granted, I misremembered. Must have confused that with the Atari ST.

@cstross @hko mostly Wayland is a performance improvement for applications running locally on a computer, at the expense of applications which rely on the X windows client/server model. I don't know enough about the engineering issues to speak to its advantages if any, but Wayland has basic user interface problems.

It is a consistent problem of Linux that usability invariably take second place to engineering issues.

@ravenonthill that's actually bullshit and there are practically no contemporary toolkits that use x primitives anymore – and to get a decent desktop experience you have to work around the protocol. this is one of the reasons why x is so painful to develop.

(and i actually did set up and then run regular x protocol over network around ~2005, with thin clients running x servers and connecting to a beef-ish application server. it was bad even then.)

i mean, wayland is by no means perfect, but you clearly have no bloody idea about how x works, and why its developers all moved to work on wayland.

@hko @cstross
Not all, or at least not completely; eg MS Teams Linux app can't share screen under Wayland (but can if run via Firefox, which is a hassle albeit workable)
@sabik @hko @cstross The teams app on Linux has been deprecated for a long time. The web client as a PWA via Edge is the way to go. Screen sharing etc works flawlessly on Wayland via xdg-desktop-portal
@cstross
I was quite an systemd opponent. In reality I don't really write my own startup scripts any more and systemd makes startup much faster and more reliable.
Undecided on Wayland. I'm on Cinnamon as WM and that's still only on X.
@graphite
@cdamian @cstross @graphite
Specifically for running init scripts, systemd is pretty great. Dependency graph is great for the more advanced stuff so you can get a faster startup. Being able to just say "keep this program running, restart it if it stops, and make the logs available somewhere sensible" is great for someone who just wants to write a quick init script.

The weird things for me are the built-in DNS server and taking over log files so you need a special program to view them.
@neia
True.
I'm still not used to journald and related programs.
@graphite @cstross

@cstross at this stage systemd is an old, stable building block for most linux systems. if you don't demand to tear out launchd from macosx, why would you care what does precisely the same job on linux?

ditto with wayland, which, by the way, is developed by the same people who worked on x(free|org). regarding xwayland – how frequently do you use quartz's x server on macosx? xwayland it's like that, but much better integrated than xquartz.

@graphite

@mawhrin @graphite Stop trying to shame me into learning something new that I don't need! I'm about 80% of my way through my life expectancy, and I want to keep my remaining brain cpu cycles for stuff I find interesting and that bring me joy. Being forced to learn new software just because some devs think it's cool and neat to have something to work on does not bring me joy (or help me write my novels).

Only reason I can't stick with old kit is: security holes grow and hardware decays.

@cstross i don't, and i'm not recommending switching (back) to linux if other options work for you.

it's just that these days actively ignoring wayland and systemd requires more tedious work from the end-user, not less, and people considering linux must be aware of that.

systemd is not new: it's old, stable and boring (debian switched to systemd in 2014), and unless you want or need to know about it, you probably won't even touch it. (hence my launchd parallel; they do precisely the same low-level set of jobs).

as for wayland and xwayland, xwayland is the only x server that receives active development these days. if you want to use only x on linux, you either need someone handling all potential issues for yourself (like with steamdeck) or you're setting yourself up to deal with various little problems with bitrotting code base, with dwindling number of people who actually want to engage with them.

(for example, you might encounter a mysterious case of electron apps infuriatingly crashing mid-typing – something that made me ultimately switch to wayland-based desktop last year.)

@graphite

@mawhrin @cstross @graphite Don't compare xwayland to xquartz! xwayland actually works...
@cstross @graphite Aw, man... I was with you until you said Wayland was a needless change. I guess everyone can be wrong every once in a while.
@cstross @graphite > (Also, it's needless change for change's sake, just like systemd.)
I'd disagree on that aspect.

X11 has some definite limitations (and resulting problems) that cannot be fixed without making a new protocol version (not all of the problems are implementation-specific Xorg problems), and I have little hopes for any such new revision (which would have to /remove/ from the older ones, not just add). Using another protocol entirely sidesteps that (which has its own issues).

Similarly, sysvinit has a bunch of limitations that are annoying and effectively require a separate daemon manager if you want something halfway sensible (some PID 2 to its PID 1, I suppose).

(I also profoundly dislike the use of shellscript for anything that has to be reliable and isn't absolutely trivial.)

There are also problems with both of the newer options though, I'll grant that without reserve.

@lispi314 @graphite @cstross
I hate how they both seem to be forced on people while metastasising to envelop everything they can.

I wonder how long it'll be until mainstream linux distros are Linux kernel+systemd+wayland plus a few apps and nothing else.

@kirtai @cstross @graphite The strong coupling between parts that should instead have defined interfaces is indeed a concern and annoyance.

I don't see what's so problematic in the kernel+systemd+wayland specifically in that before it was stil kernel+$thing+xorg. And basically always Xorg. Still a monoculture with its idiosyncracies.

The problem with systemd is that its interfaces and scope are ill-defined and it keeps sprawling, while what should happen instead is that a specific scope is considered, junction points are pre-determined, and then when it's done? It's done. Implement something else for interacting with those junction points if you need to.
@cstross Means I’ll need to decide what function to map ai-ctrl-shift-meta-x to in emacs…

@cstross JFC.

Last night, I was working on a high-priority incident at work, and my boss produced a script to do some of the work. About 10 minutes into trying to make this thing work:

Me: "This method call doesn't have that parameter at all. Was this generated by AI?"
Him: "Yes"
Me: "Fuck that, then. I'm rewriting every line of this using the documentation."

He still thinks it's a good idea. 

@darkling imagine the cost reduction if specialised computer pushers could be replaced entirely by a middle management person with a script generator.

(and then the middle management jobs get eliminated too.)

@cstross

@darkling @cstross Sounds like he just volunteered to make it work. See who finishes first.
@ergative @cstross You don't think I'd give him write access to that infrastructure, do you?
@darkling @cstross Think, no. Feared, yes. Bosses have a way of getting access to things. I'm glad yours doesn't.
@darkling @cstross the only area where I see copilot be really useful right now is as fancy autocomplete. It really speeds me up when working in an existing code base, but it needs a human in the loop every step along the way.

@blikkie @darkling @cstross

Do you accept every completion without validating it or do you go hmmm, that's right? In which case it would distract me if I used it, I have enough distractions :-).

@simon_lucy @darkling @cstross there's a lot of accept and then edit, so I do end up reading it all.

But one thing I like is that when I have a function with a return type declared and if I e.g. just declared an iterable, I can just type "for " and copilot with suggest a loop that at least roughly does what I want to do

@blikkie @darkling @cstross

That would probably give me horrible flashbacks of pairing, "Oh, you do it like that, do you?".

@darkling @cstross I have a colleague who also was declaring a bullshit generator the best solution to Life, the Universe and Everything.

At the moment all so-called AI is just glorified lorem ipsum bullshit generator crap. It's worse than the way I used to abuse Dreamweaver in 1999, 2000 when I was just starting out.

@darkling @cstross

They likely think it saves time, but it really only saves them time and someone else, sometimes everyone else, exponentially more time.

@darkling @cstross My boss tried this on me. The code was to access OpenAI’s API. The code had zero relationship to the OpenAI API spec.

@darkling
> He still thinks it's a good idea. :facepalm:

Definitely. That flavour of manager *loathes* the period of cognitive contemplation needed before actually producing something tangible.

He wants that period reduced and, ideally, eliminated, to get directly to the "we're doing something!" reward step.

If he can just press a button to "get things started", that's a win for him. Doesn't matter at all how much worse it makes the result.

@cstross