Hacker Newsnew | past | comments | ask | show | jobs | submit | sagacity's commentslogin

The article is about arcade games.


You can just right-click and hide it, though.


It also really depends on whether you pick your battles or not. If an engineer complains every detail of a system then you get a "boy who cried wolf" effect at some point.


Nevertheless many details can be wrought poorly!


This is genuinely a really fun way to browse Wikipedia. Only drawback is that folder names that contain ellipsis don't show the full name when clicked.


If you click on the tile icon at the top of the window, you can have it display as a list!


Oof, that first example (the idiomatic C++26 way) looks so foreign if you're mostly used to C++11.


I was very curious to see what C++ 26 brings to the table, since I haven't used C++ in a while.

When I saw the 'no boilerplate' example, the very first thought that came to my mind:

This is the ugliest, most cryptic and confusing piece of code I've ever seen. Calling this 'no boilerplate' is an insult to the word 'boilerplate'.

Yeah, I can parse it for a minute or two and I mostly get it.

But if given the choice, I'd choose the C-macro implementation (which is 30+ years old) over this, every time. Or the good old switch case where I understand what's going on.

I understand that reflection is a powerful capability for C++, but the template-meta-cryptic-insanity is just too much to invite me back to this version of the language.


As a developer who doesn't really write C++ code I'm inclined to agree, but I think Herb Sutter's "syntax 2" project might provide a nice way out of that mess eventually.

I played around with cppfront over Christmas and it was a lot more ergonomic than my distant memories of C++11, which I don't even have negative memories of per se.

[0] https://github.com/hsutter/cppfront


That isn't going anywhere official.

It is no different from any other language that compiles via C or C++ code generation, it got sold a bit differently due to his former position at WG21.


Well, if you mean "as an official C++ syntax" then I agree, and I suspect Sutter would agree as well. He labeled one talk about it a "Towards a Typescript for C++", after all[0].

But I do think it is different than other "compile to C++" languages, because it seems to be more of a personal case study for Sutter to figure out various reflection and metaprogramming features, and then "backport" those worked out ideas to regular C++ via proposals. And the latter don't have to match the CPP2 syntax at all.

In multiple examples he's given in talks the resulting "regular" C++ code is easier to read, mainly because the metaprogramming deals with so much boilerplate.

[0] https://www.youtube.com/watch?v=8U3hl8XMm8c


What Herb Stutter misses on his Typescript and Kotlin for C++ metaphor is the actual reality how those languages integrate, unlike cpp2.

Typescript is a linter, nothing else, type annotations for JavaScript. The two features that aren't present in JavaScript, enums and namespaces, are considered design mistakes and the team vouched to focus only on being a linter,and polyfill for older runtimes, when possible (some JS features require runtime support).

While Kotlin spews JVM bytecode many language constructs, like co-routines, make it one way, it is easy to call Java from Kotlin, the other way around requires boilerplate code, manipulating the additional classes generated by the Kotlin compiler for its semantics.


My point was that TypeScript isn't exactly about to replace JavaScript, which was what you were arguing. I'm honestly not sure what you're trying to argue now.

Like, yeah, what you say about TS and Kotlin is true about TS and Kotlin. But since you're not explaining what cpp2 does or plans to do differently, and why it matters, I'm not sure where you're going with that. It's probably obvious but I'm not getting it.

The metaphor Sutter was going for, as I see it, is that TS and Kotlin both added missing features to their host language. Most importantly reflection and decorators in TS, which are now becoming a standard in JS as well[0]. cpp2 mainly focuses on experimenting with reflection and metaprogramming as well, adding features currently missing in C++ by being a compiles-to-C++ language. Sutter has written C++ proposals what would allow give C++ similar reflection and metaprogramming capabilities based on what he discovered by working on cpp2. That's pretty comparable if you ask me.

[0] https://github.com/microsoft/reflect-metadata


> But if given the choice, I'd choose the C-macro implementation (which is 30+ years old) over this, every time.

Why? The implementation is not pretty, but you only need to write it once and then it works for all enums. The actual usage is trivial, it's just a function call.

The C macro version is horrendous in comparison. Why would I want to declare my enums like that just because I might want to print them?


Then why isn't part of the stdlib? Why should everybody maintain their own version?


Just wait for C++32 :-D. After all, we only got `std::string::starts_with` in C++20 and C++23 finally gave us `std::string::contains`. It's a clown show, you just need to take it with humor.


For comparison, in Java they do much more significant changes each release


It is "cryptic" and "ugly" to you just because you're not familiar with it. You'd pick the macro-based implementation because you are familiar with it.

Seeing this argumentation is so tiresome, because it feels like there is a lack of self-awareness regarding what is "familiar" and what isn't, which is subconsciously translated to "ugly" and "bad".


Have you ever used other (modern) programming languages ?

In a lot of languages, you achieve the same with 1 line of code. It's not about familiarity, it's about the fact that it's a long and convoluted incantation to get the name of an enum.

Why do I have to be familiar with all those weird symbols just to do a trivial thing ?

Update:

Zig:

const Color = enum { red, green, blue };

const name = @tagName(Color.red); // "red"

Rust:

#[derive(Display)]

enum Color { Red, Green, Blue }

let name = Color::Red.to_string(); // "Red"

Clojure:

(name :red) => "red"


And what if you want to implement something like Rust's "derive"? That is what the article shows.

As far as I understand you would have to mess with individual parser tokens in Rust instead of high-level structures like "enum" (C++ reflection). It would be much, much uglier to implement anything like "to_enum_string" in Rust as you would have to re-implement parts of the compiler to get the "enum" concept out of a list of tokens.


C++:

  enum Color { red, green, blue };
  auto name = to_enum_string(Color::Red); // "Red"


... and where does that `to_enum_string` come from exactly? It doesn't seem to be built-in, which is the point of the parent comment.


It's a fair comparison. The parent comment isn't showing the compiler source code for the built-in reflection mechanisms.

You won't have to care about ^^ and [:X:] if you just want to consume reflection-based utils, which was the whole point of my comment.


What? No. Parent comment is comparing C++ to modern programming languages, showcasing how they provide commonly used utilities out-of-the-box instead of making every programmer re-implement them again and again and again and again and again.


The parent comment is quite clear:

> Why do I have to be familiar with all those weird symbols just to do a trivial thing ?

And my answer demonstrates that you do not have to.


> And my answer demonstrates that you do not have to

Then again - "where does that `to_enum_string` come from exactly?".


A library that you install via vcpkg or conan.

How many libraries do you read the source code after installing them with the package manager?


So it is NOT built-in and the code example shown above is dishonest - @SuperV1234 compares how "lean" two languages are but conveniently hides half of the code in their preferred language to make it seem simpler that it actually is, as otherwise it would look bad in the comparison!


Reflection is built in, the support is there, anyone can make a left pad out such simple snippet.


> Reflection is built in

Can you quote the C++ standard section that specifically talks about the `to_enum_string` function?


Some people like to really be obtuse on purpose.

It is on the same place as left pad on ECMA 262.


The comparison was about `to_enum_string` example, so I'm asking for exactly that! You can't just make up different rules, that's not how comparisons work!


Typical C++ dev schizophrenia. In one thread complain about Node and its death-by-a-thousand-packages, then suggest the same in another.


Don't put assumptions in others heads.

First of all, the only correct way to use package managers is with validated internal repos, don't vibe install, that goes for node, and goes for C++ as well.

Second this thread was all about how code lands in one's computer.


Package? We're suggesting to copy paste 5 lines and stick them into a header.


You can press 'parent' button my comment.


Header files are libraries as well.


  #include "to_enum_string.h"
You don't have to understand it to use it. Even then, it's not that hard to understand, it just looks unfamiliar.


So finally, it's NOT built-in, and the parent comment was showing that in other languages - it IS built-in. So your code example is NOT correct and comparison is NOT correct, because you just hid the most important part of it, which is the implementation, that the user has to either: a) write themselves, b) find somewhere on the Internet.


So? The original argument was about the "ugly" syntax that the user didn't want to interact with nor read. I proved that there's no need to do so to consume reflection utils.


XD.


The whole point of reflection is that it doesn't have to be builtin.


No, it is objectively cryptic and ugly. I honestly don’t understand how can anyone keep up with this garbage, but the ship has sailed long time ago. It is just a soup of symbols at this point.


No, it objectively isn't objective.


I was a fool to assume that the same forces shaping the ugliness of C++ syntax would not also be at work in C++ 26.


Reflect/reify, quasiquote/unquote, etc. are the final boss of syntax design. Even Template Haskell looks rather bad.


I find it quite readable. I can understand what it does even though I haven't written reflection code yet myself.


Is it? I'm mostly used to (pre-)C++11 and the only unusual operators I see are ^^T (which I presume accesses the metadata info of T) and [:e:] (which I assume somehow casts the enumerator metadata 'e' to a constant value of T).

And template for but I assume that's like inline for like in zig.


requires is also new (not sure exactly when that appeared, it's after the last time I wrote C++ in anger) although I think it's fairly clear what it means. I can only guess at the other two.

Not familiar with Zig but AFAICT `inline for` is about instructing the compiler to unroll the loop, whereas `template for` means it can be evaluated at compile time and each loop iteration can have a different type for the iteration variable. It's a bit crazy but necessary for reflection to work usefully in the way the language sets it up.


Zig's inline for is also evaluated at comptime:

https://ziglang.org/documentation/master/#inline-for


Well yes, but the _effect_ is to unroll the loop for runtime, if the inline-for survives that long.

A for loop executed during comptime is just

    const stuff = comptime stuff: {
       for (0...8) |i| {
         // etc, build up some stuff
       }
       break :stuff some_stuff;
    };
The difference is that a comptime block won't leave behind runnable 'residue', only whatever data is constructed for later. An inline for might not leave behind an unrolled loop either, but it can.


requires is concept, one of big-C-words of ++20


I wish I understood the reason for the `std::define_static_array`... Why can't `std::meta::enumerators_of` just return something that can be iterated through????


It is kind of weird at first but the reason is that `std::vector` requires heap allocation and transient allocations are not allowed in `constexpr` contexts. The purpose of `std::define_static_array` is to promote the storage of the vector to static storage to eliminate the transient allocation issue, and so that the `template for` can work properly with it.

See wg21.link/P3491


Is there a reason why `std::meta::enumerators_of`, a reflection feature that's surely almost exclusively going to be used in constexpr contexts, returns a value which doesn't work in constexpr contexts?


It works generally, but not with expansion statements. See section 3.2 here: https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2025/p13...

It seems that this is being worked on, and eventually the `define_static_array` won't be needed anymore


Just another example where C++ language features are incompatible with each other, to be fixed "in a later version" which may or may not happen. There are so many of those in C++. I desperately wish they'd just do it properly initially.


Me too, unfortunately the old guard sees no value in implementation before standardisation for each single feature.

So it is as it is, plenty of software in C++ isn't going to be rewriten into something else.

Maybe someone can do a Claude rewrite from LLVM into something else. /s


You realize c++11 is closer in age to C++98 than C++26?


I’m not sure the nominal publication date of a standard is all that relevant when the implementors’ reaction is as lukewarm as it has been to C++ ≥20.


I recently got locked out of my machine because logging in with the mandatory Microsoft account-backed primary user of my machine didn't work anymore. It said I was offline and I had to use the "previous password" even though I didn't have a previous password for that account.

Hacking around in the recovery console to add another administrator user worked, but then I couldn't reset the original user's password because it was tied to the Microsoft account and you can't change the password locally.

I don't need Copilot managing my inbox through AI, nor do I need a more exciting widget experience.

I just want an OS where if something like the above happens there's a way to fix it without having to reinstall. It doesn't seem like much to ask.

Edit: yes, I can use Linux but I have decades of Windows muscle memory and I do a bunch of DirectX programming. I shouldn't have to switch :)


> I can use Linux but I have decades of Windows muscle memory and I do a bunch of DirectX programming.

I see a likely inversion of motives here: you earn your living coding or otherwise are deeply vested in Windows, so you are committed for survival to Windows and to fixing the absurd account problem that MSFT has inflicted on you.

The expression "muscle memory" here just means the cognitive load of working with a technology. MSFT has added a hard-blocking piece of stupidity to your cognitive load.

I am sure this is not the first time! Registry problems, update problems, and now for pity's sake account problems.

As a long-time user of both Linux and Windows, I'd say my OS cognitive load with Linux is almost entirely related to efficient actions, whereas with Windows I have a quiver of stupid arrows to shoot at all the problems that MSFT inflicts.

When people advise you to switch to Linux if you can, they are giving solid advice.


My Ubuntu servers have been in an undefined state since canonical botched a regular upgrade to 26.04 LTS due to the ongoing DDOS. Their status page says everything works. A simple ping tells me nothing works.

Let's not pretend Microsoft has a monopoly on idiocy in the software world. All major Linux distros are hell bent on repeating the mistakes of Windows. Especially since the people in control of the stack (minus the kernel) are the rejects who couldn't make it in Microsoft and Apple in the 90s and 00s but really wanted to.

Meanwhile my small happy place with OpenBSD and Guix just works.


Linux has lot of bugs and issues, but they are not caused by intention to make users' life worse.


They are caused by moral busy bodies who think they know better.

To quote CS Lewis:

>Of all tyrannies, a tyranny sincerely exercised for the good of its victims may be the most oppressive. It would be better to live under robber barons than under omnipotent moral busybodies. The robber baron's cruelty may sometimes sleep, his cupidity may at some point be satiated; but those who torment us for our own good will torment us without end for they do so with the approval of their own conscience.


> They are caused by moral busy bodies who think they know better.

If you know better just hack it your way. Linux is an open platform. Nothing prevents you from gutting Ubuntu and making it your own. You can't say the same for Windows though.

So I guess is not a matter of monopoly of idiocy, but whether you can do something about idiot decisions when they are made. This is why an open platform will always win. It's just architecturally better for the end user.


>If you know better just hack it your way.

While this might be technically true, I also think it's a lazy argument that ignores practical reality. It's basically a way to avoid any kind of accountability or self-reflection on the part of developers. "Users aren't happy? If they don't want to make the change themselves, they can fuck off." This is a toxic attitude which I see a lot in discussions of free software.

In practice, 99% of the time it's not worth the time and effort to fork and maintain a large project. Even in a free ecosystem, users get locked into specific products and technologies. This is why sane technical leadership and responsiveness to user feedback are important, even (especially?) in open source projects.


Can you tell me an instance where users got locked into a dying ecosystem in Linux?

What I can tell you is that CentOS, which was used extensively in servers, died and you didn't really see much issue, at least not as much as compared to the pain and suffering users are having to go through now that Windows is the dying place.

What's lazy is the repetition of this realist fallacy of the technical lockin, when in fact what you really have is what you see, an open platform you can very well just leave for another when you disagree with the current vendor.

Dislike Ubuntu and you can very well migrate. That's the practical reality.


There are several software packages that are essentially mandatory if you want to run a modern distro with good desktop hardware support. Some that come to mind are glibc, systemd, and Wayland. These projects have made controversial design decisions which impact the entire ecosystem of Linux software.

I actually did leave Ubuntu because background Snap updates were randomly crashing running applications. Now, I'm fairly happy with Fedora, but it's far from perfect. I reject the idea that if I have technical critiques of these projects, that the fault somehow lies with me if I'm not willing to waste my time jumping distros or rewriting them myself. That attitude is exactly analogous to the user-hostile bullshit coming out of Microsoft.


> These projects have made controversial design decisions which impact the entire ecosystem of Linux software.

> I reject the idea that if I have technical critiques of these projects, that the fault somehow lies with me if I'm not willing to waste my time jumping distros or rewriting them myself. That attitude is exactly analogous to the user-hostile bullshit coming out of Microsoft.

I understand it's frustrating when your distro or OS starts acting up. It's a means to an end, it should get out of your way and let you do your work.

On the other hand, it's impossible to appeal to everyone, so every decision will make some people happy and others unhappy. There's no way around it. The only thing that matters is whether we can live with it or not, in which case the option is to fix it or move on.

It's frustrating but nobody owes you anything. The sooner you realise this the better.

I for instance wasn't happy with anything available. The closest thing was hyprland so I made my own micro-distro on top of it: https://github.com/gchamon/archie. It's way less work than you think in the age of AI, but it does require you intimate knowledge of the system.


If the expected Linux experience is "go build your own if you disagree", then I'm not clear how that is any better than being told the same by Microsoft/Apple


It's better because at least you can. With windows and apple you have to live with it. But that's not the expected experience. UX in Linux has only become better with time, all things considered.


There are alternatives to Wayland, Systemd, Vulkan, etc. on Linux. There are far fewer options on macOS and Windows, "build your own" typically entails starting from scratch.


> There are several software packages that are essentially mandatory if you want to run a modern distro with good desktop hardware support. Some that come to mind are glibc, systemd, and Wayland.

I run Gentoo on one machine and Alpine on several. I promise, none of those are required.


> If you know better just hack it your way. Linux is an open platform.

The GP already knows about FOSS. He uses OpenBSD and Guix and in his own words this is his "small, happy place".

Guix in particular is an excellent example of FOSS innovation.


>If you know better just hack it your way. ... It's just architecturally better for the end user.

As an end user I want the product/tool to serve me well out of the box, I don't have time to hack it to fix what I dislike about it on my own dime. That's what my job is for.


This is not always available. What smartphones "serve well out of the box", meaning zero telemetry, root privileges, open source, not requiring an account in a foreign country (and not spamming notifications about this), and working? Google Pixel requires time to fix, despite costing like 3-4 ordinary smartphones.

The same probably can be said about laptops. Linux is great but buggy, and proprietary OSes do not pass the requirements.


Tangential, but how is

> The robber baron's cruelty may sometimes sleep, his cupidity may at some point be satiated

Holding up in 2026? Pretty poorly, I’d say.


How ironic. Reactionary old fart mostly known for writing moralistic children’s novels wants you not to listen to moralistic crusaders. I shall take his advice.


CS Lewis certainly got it wrong, if he believed that the greed of robber barons can ever be satisfied. I’ll take the moral busybodies, if I have to take either.


CS Lewis: a prolific author of fantasy, science fiction, and Christian apologetics


Does that mean what he says is less valuable?

> Fairy tales are more than true: not because they tell us that dragons exist, but because they tell us that dragons can be beaten.

Said by a monster himself, but doesn't make it any less true.


In this moment, I am euphoric. Not because of any phony god's blessing. But because, I am enlightened by my intelligence.


Intention or not, Gnome 3's "desktops are outdated" caused even Linus to switch away from it.


He actually still uses GNOME, at least as recently as 5 months ago.

I'm a KDE user but I get why people like it.


and I am a GNOME user and I find it totally fine to use KDE. Thats the cool thing about open plattforms. Just some people having too much time to make a UI interface part of their personality rant too much on the internet about other UI interfaces.


What's your point? At least he was able to switch away from it and choose from any plethora of other options.


… Linux literally just had the age-verification outcry, and the "let's put AI in Ubuntu" thing, and that's just off the top of my head.

I want to toot the Linux horn too, and I do think MS is on another level here, but let's take a look in the mirror first.


There is plenty of elitism going on where everyday users' experience is intentionally made bad.


> My Ubuntu servers have been in an undefined state since canonical botched a regular upgrade to 26.04 LTS due to the ongoing DDOS. Their status page says everything works. A simple ping tells me nothing works.

So is it the DDOS that's responsible, status page notwithstanding?

Anyway, heard about Timeshift for Ubuntu on here, might be worth taking a look at it: https://github.com/linuxmint/timeshift

Doesn't require a GUI, so it can be used for servers/headless too. Please note that's it's not a backup solution, just an OS snapshot one, albeit with scheduling.


> Let's not pretend Microsoft has a monopoly on idiocy in the software world.

Entirely fair, but let's not pretend the situation is symmetrical. Canonical doesn't have monopoly on the linux or broader *nix world the same way that Microsoft has on the Windows world.


normalize coming up through slackware like many did in the 90s


You can download from a different mirror in linux and open source you always have another option


> When people advise you to switch to Linux if you can, they are giving solid advice.

They absolutely are not. Switching operating systems isn't like switching toothpaste. They are declaring, without evidence, that you don't need Windows, without knowing if you do or not. They are avoiding the problem that the person is having entirely and asking that the user replace their single problem with a whole new class of problems that the user has no idea how to solve. And there will be problems, because someone who has never used Linux before isn't going to know how to do anything in Linux. They aren't going to know what software to use to do anything, they aren't going to know how to install software or update it, they aren't going to know what to do when any problem comes up at all.

"Just switch to Linux" is a malevolent and self-serving recommendation, is absolutely not realistic, and is not ever intended to actually help the user needing help with a problem they are having.


Yeah, so, to be clear: I'm fairly sure Linux will also have its fair share of issues that I occasionally would have to repair.

I don't necessarily even have a problem with Windows occasionally needing a bit of hand-holding, either. It sucks, but it's IT so meh, unfortunately it still comes with the territory.

What I'm mostly pissed off about is the fact that I have a perfectly useable machine but since I'm unable to login due to vague Microsoft nonsense and there doesn't seem to be a way to fix it I need to reinstall. This seems wholly unnecessary.

Even having some sort of repair installation that doesn't blow away all installed applications would have been somewhat ok as a last resort, but that doesn't exist either.


> Yeah, so, to be clear: I'm fairly sure Linux will also have its fair share of issues that I occasionally would have to repair.

Issues with account, login and passwords would be none of them. Sure, there are other areas of common issues at times, but I have never, ever had issues logging into any of the linux OS I ran for the last 23years or so.


I've had PAM break due to distro's ridiculous policy of updating the system in place allowing for invalid combinations of files to exist. I've had Linux distros break the booting process countless times.


I don't know where you are but oobe/bypassnro worked for me just 2 weeks ago.


I've reinstalled using this trick, so this issue won't bite me again in the future.


> When people advise you to switch to Linux if you can, they are giving solid advice.

I am forced to use Linux at work and I dread updating anything because the result is usually a broken system. I never have that problem with Windows.

So YMMV is as always valid here.


Also years of Windows muscle memory here, especially the keyboard shortcuts. I’ve used Windows since 1997. I’ve decided I’m done. A new PC arrives in a month. It’ll be running Ubuntu. I’m done.

Maybe there is a Linux language similar to DirectX you might transition to? Maybe test code in a VM? (Although that gets you right back into Win11.)


> Maybe there is a Linux language similar to DirectX you might transition to?

Yes: DirectX. Just make sure that it runs in Wine or Proton.

Nit: DirectX is a bunch of APIs and libraries, not a language. Same for Wine and Proton.


DXVK works great for DirectX 11. However, it's rather annoying to debug through this intermediate layer. I wouldn't recommend this for development.


Sure is nice as a user. I get better frames in some games than Windows users do!


>It’ll be running Ubuntu. I’m done.

https://status.canonical.com/

You're in for a bad time. It's been three days and they still can't get updates to work.

Get Debian if you must. Use something sane like Guix and OpenBSD if you can.


I've been watching Linux from a safe distance for 25+ years. The one thing that remains constant over the decades is that whenever someone says "You're having this problem? Well what did you expect, you're using X distro. Obviously you should use Y distro, then all your problems will be solved" and then another person comes along and says "No, you idiot, Y distro is completely broken, any sane person would use Z distro!" And if you play that game long enough, you eventually complete the circle.


Haven't seen this specific "you're using wrong distro" so far. I'm more often bumping on a general rude attitude of people answering. As if asking questions, looking for solutions is not what all these distro forums were made for.


It's always the exact same distro, and it has been for 10+ years. Nobody is recommending it anymore but users still come with issues due to that.

There are different distros for different taste/needs, but Ubuntu always has been the worst choice of all.


That's funny, because half of what I remember reading about Linux is people writing "Forget all these other distros, just go with Ubuntu, it just works!"


When was that? I haven't seen Ubuntu recommended seriously for more than 10 years.

Mint or others have been the goto


Zero issues with Lubuntu on my road laptop for over a year now. I’ve tested most of the apps I would install at home.

Not everyone hits the edge cases.


I have no problem using Debian (I’m actually a Linux sysadmin by profession) so I have no problems later switching distros. But as of today, I’m happy with Ubuntu on my road laptop and I would no doubt be happy switching the home PC, too. (Actually the road lap is Lubuntu and it currently has zero visible AI influence.)


To be fair, they're allegedly experiencing under attack by the Iranian government. I doubt Guix or OpenBSD would be able to sustain service under a similar attack, though granted there's a reason Cannonical is the target and not OpenBSD.

https://arstechnica.com/security/2026/05/ubuntu-infrastructu...


Quite the extrapolation from "A group sympathetic to the Iranian government" -> "the Iranian government" especially considering the source: "posts on Telegram and other social media".


OpenBSD can be downloaded from a variety of mirror hosts (including ones hosted by Cloudflare).

So OpenBSD would probably be able to sustain service at least in terms of being able to download updates.


Same. I used to develop Windows apps with Borland C++ once, that's how old I am. Last year, I finally installed a second Linux Mint boot - for Windows games!

The level of disregard for quality from MS is just obnoxious. We are really crossing some kind of line here, I think, where taking the pain of migrating once seems easier than dealing with all this nonsense.

(I had to clean install Windows after that infamous update with system check infinite loop at boot time).


Ubuntu will also introduce AI. Why not use pure Debian? (and the distribution flame war starts)


I have no problem using Debian (I’m actually a Linux sysadmin by profession) so I have no problems later switching distros. But as of today, I’m happy with Ubuntu on my road laptop and I would no doubt be happy switching the home PC, too. (Actually the road lap is Lubuntu and it currently has zero visible AI influence.)


they want to start with 26.10, will be interesting if they include it with a long term release


These suggestions are like telling someone that that is being harassed to maybe wear something different.

While it would, yes, likely avoid the problem happening again, it shifts the responsibility to the party that should not be at fault.

Meanwhile the harasser is like “what’s wrong? I took an anti-harassment class?”


It's more like telling someone in an abusive relationship to leave the abusive relationship.


Do both. Insist that the authorities reform the abuser AND leave the relationship.

In a real life abusive relationship that would look like both calling the cops and leaving. In the case of software, demand reform and also switch OSes.


> These suggestions are like telling someone that that is being harassed to maybe wear something different.

Weird analogy - it's telling someone who is paying to be abused to simply stop paying...

If Windows was actually free, as in download a copy and use it as you wish, then sure, maybe you might have a (very tiny) point, but it's not like that at all.


Many legit users have a license applied to their Microsoft account that predates the current situation. That is to say, a license carried over from windows 10 and possibly as far back as windows 7, since there was a time where Microsoft was offering free license transfers. Many people see windows 7 as being not shitty and abusive.


> there was a time where Microsoft was offering free license transfers

I don't think they ever stopped. Maybe they ceased advertising it, but installing Windows 10 over 7 or 8 would silently inherit the license far past the original terms. The time-limited offer was just a FOMO-inducing marketing scam.


You don't choose to use Windows. You have to. Because it's the only OS that supports whatever tool you need for your work. Windows is mandatory in many situations, which is why it can afford being obnoxious.


your analogy would be fitting for a jurisdiction that had no sexual assault laws or way for victims to defend themselves. In which case "Don't provoke an attack" is sound advice.

in other industries, you can sue product manufacturers if their defects cause you inordinate grief, lost wages, or excessive repair costs.


> Edit: yes, I can use Linux but I have decades of Windows muscle memory and I do a bunch of DirectX programming. I shouldn't have to switch :)

Understood. However, your choices are:

1. Keep complaining while paying $$$ for the privilege of complaining.

2. Switch to something else.

My tolerance level is much lower than yours (I switched my daily driver around 1998), obviously...


  paying $$$
There arrr the ways (depending on one's moral compass)


`irm https://get.activated.win | iex` lives in my head rent-free


I used Windows since my first PC on 3.1. But recently it just became too much. Switched over to Mint for just over a year now and loving it. No issues at all for development or gaming. The machine just works. No lag at the lock screen, typing in your password and hitting enter has the desktop loaded instantly. It just works the way you expect and with the performance you expect. I used to defend Windows but I cannot say the same about it anymore.


Hello fellow DirectX programmer! I gave up and got a Mac. I made myself get used to the defaults. I can't go back. I tried putting together a gaming pc a couple years ago and Windows annoyed me too much. It's better here!

And yeah - I gave up on DirectX programming to do it. I do like Metal...


As Windows more and more difficult to use at very basic, after passing certain threshold, just developing on Linux is more practical. Even for DirectX.


That's one thing that struck me in TFA, almost everything mentioned was stuff I never asked for and never wanted: CoPilot in my inbox, some Insider Program bumf, widgets and feeds, the sole thing in there that means anything is that updates are slightly less annoying.

So TFA is really "we've spent the last two months monkeying with the crap that no-one asked for or wants, and Update is mildly less annoying". That's not really much of an announcement.


Have you considered Linux on bare metal and a Windows VM for your coding? Two monitor setup and you can have Windows on one side when working then all your other daily stuff is in Linux. Shared drives and clipboards make things pretty easy.

Also just debloat the Windows install, why are you suffering with Co-Pilot? I have a VM running on Proxmox and I rdp to it from Linux when needed, but daily use, no way and honestly there really is no reason to put all your eggs in the Windows basket in this day and age.


> I recently got locked out of my machine because logging in with the mandatory Microsoft account-backed primary user of my machine didn't work anymore. It said I was offline and I had to use the "previous password" even though I didn't have a previous password for that account

Not sure what's so confusing here... When Windows is online, it checks your password against the cloud and updates the local store. When Windows is offline, it checks your password against a local store. By previous password, Windows just means the password you used on the last successful login for the user on that machine.


Clearly if that was the actual issue I would've been able to get it working :)

The thing is, I was online, I had a working internet connection (and confirmed this by doing the 'utilman' hang to get a command prompt and getting a working ping command). It was just that Windows corrupted some kind of internal Microsoft Account connection and was locking me out.


The day I can’t make a local-only account on windows (for personal use, work is a different matter unfortunately) is the day I stop using windows.

It’s irritating enough that new linux installs want me to add accounts. I can skip it, which is nice, but just don’t show the screen. If you’re installing linux you either know what you’re doing or you don’t: if you do you know it’s possible and don’t need it jammed in your face, and if you don’t you’re probably not quite tall enough to understand it isn’t needed and you probably don’t want it anyways.


I don't even want a local account, I just want to be able to set a custom username for my account instead of some autogenerated jumble of letters.

My Microsoft Account email is "contact@<my-domain-name>". If I set up a new Windows 11 computer using this account, Windows picks the first 4 letters of my email address and sets that as the username. So my username becomes "conta", and the path to my user directory becomes "C:\Users\conta".

I know this is a really small thing, but I find it incredibly irritating. I can't be typing that into the terminal all day long! It's not the end of the world, but it speaks to a lack of polish and care across the whole product, not to mention a disrespect for their users' intelligence.

I'm not a Windows user—I only use it for gaming—so I don't really know how to get around this issue. Maybe there's a secret keycombo I can press during install? Or some unrelated checkbox that I can toggle that will do the magic? I just know that I login via my iCloud account on all my Macs, and Apple has always allowed me to choose my own username and home directory.

I don't think this is high on their list of issues to fix so I'm not very hopeful that this will ever get addressed. Maybe I should just change my legal name to Conta?


> I'm not a Windows user—I only use it for gaming—so I don't really know how to get around this issue.

5ish years back I used to have a PCI passthrough via OVMF [0] setup for my GPU and my windows VM (Arch host) so I could game on windows.

Then I realized Proton/wine had gotten good enough to play all my games (I don't play AAA competitive shooters) and I dropped the VM and never looked back.

I would encourage everyone to give Steam/Proton on Linux a shot if you haven't recently and see if you're able to drop windows for good. These days, I don't even look at compatibility - 95% of games work OOTB and the other 5% work by changing the proton version (i.e. proton-ge). YMMV of course but I've been much happier without windows on my system.

[0] https://wiki.archlinux.org/title/PCI_passthrough_via_OVMF


Yes, just a username.

“ To create an offline (local) account during Windows 11 setup, disconnect from the internet, then use the command OOBE\BYPASSNRO in the command prompt (Shift+F10) to enable a "I don't have internet" ”

This is what I do. I have heard this has been patched out. My work gives me an MSDN account, and so far I’ve been able to still do this. When this goes away forever and I lose all my ISO’s/access to ISO’s that allow this, I’ll be done with windows forever.


My account email is info@<domain-name>.com.

I feel you.

And what I do is create a local account and then add the Microsoft account to it after creation.


> It’s irritating enough that new linux installs want me to add accounts.

I don't quite understand what you are saying here. If you're talking about setting up an account to use the system, it's the same idea as setting up a local account on Windows.

If you're talking about online accounts, I believe you are referring to a convenience feature offered during setup. Ironically, it was put there to guide people who are coming to Linux from Windows.


What are you suggesting here? Everyone who runs linux should log in and run everything as root all the time?


No, I guess I didn’t explain it, though I thought I had. Don’t ask me to turn on location settings, don’t ask me to connect my email/online accounts, during a gui install. I can turn those on myself if I want to. Someone else up-thread pointed out that this probably exists to help windows uses transition over to a Linux install in a way that feels more familiar, and that makes sense. I don’t like it, but I can accept that.

I’ll still grumble when I see that screen though.


Oh. I thought you were talking about making a user account.

I've never seen anything like that on any linux install I've ever done. But then I've been pretty much Debian-only since I started using Linux over 30 years ago.



You also attributed this to "Linux", instead of whatever guided installer/desktop environment you chose. I have never encountered the screens you are lamenting.


That's fair, its mostly "mainstream" distros. Here is an example:

https://d3t0tbmlie281e.cloudfront.net/igi/framework/q6Yb16Bq...

Linux was too broad a term.


The funny thing is I actually had Windows 11 reliably black-screen on me after creating a local account. On a recent Surface Pro device, no less.

I blame Nadella. Gates or Ballmer had their own deficiencies but they would never have tolerated the absolute bullshit going on at Microsoft today.


on a similar vein, it deleted all my mfa tokens without telling me, as part of an update that also disabled the built-in finger reader as a token source.

woulda been nice to know before hand that it was going to do that, so i could make sure those other accounts werent so reliant on that finger reader working


I run Windows 11 on my gaming PC powerful desktop and a good work laptop. No issues.

No idea what you guys are doing.

I can also now run and install over cmd powershlle with choco, scoop and winget.

Get Firefox, VLC, MPV and all that.

Get Powertoys.

Run Christitustech utlity for tweaks.

So even less usage for Linux imo.


> No idea what you guys are doing.

A friend of mine has been running the same Arch install since 2009. Does this mean Linux is problem-free and people who struggle with it are doing something wrong? No, it doesn't. Same with Windows.


Doctor, it hurts when i put this screwdriver in my eye, please help!!


there are (will be) lots of calls on the muscle memory slacking off. I can't think of anything that is not reproducible on Mint.

I have tons of Windows experience (starting off by manually installing windows w/o installation floppies and manually editing win/system.ini, through win32 to current day nonsense), yet I find the command line interface of linux a lot more powerful.

I am not aware of the exact use of directX, it should be possible to run Windows through virtualization just for this task. (unless wine is sufficient)


This exact problem was the last straw for me and pushed me to Linux on my desktop. Haven't looked back.


Well for decades Windows was adequate-to-excellent for small business and individual consumer use in major ways that Windows 11 is recently continuing to disrespect more and more, as it migrates away from how worthwhile Windows formerly used to be.

All this fluff about the insider program seems to be very ignorantly missing the point.

What's needed more than ever is No BS instead of more BS.

Namely get Microsoft Accounts back out of the picture unless opted in.

Along with curtailing Bitlocker, One Drive, Copilot, and things like that.

Now to make it really good again, there needs to be no further disk activity after Windows has booted, other than user-initiated saving & loading. Plus of course no network traffic other than user-directed bandwidth usage.

Along those lines I think it goes without saying that as soon as Microsoft has any legitimate commitment to open-source efforts, we'll know by the way they document & release everything they know about NTFS.


M$ account is not strictly "mandatory" as you claim. There are ways to work around this. I NEVER in my life had an M$ account, I have a GitHub Account, but that is still separate AFAIK. Rufus can mod the ISO for it, and there is another way around it during install. They just want you to use one so they can spy in you better. It's on you to have an OS account to an online service in the first place. Then entire concept is utterly retarded, I do not care who it is M$ or some of the best champions of Open Source and ethical Linux distro, I will not use any fucking account of them to log into my LOCAL PRIVATE OS, it makes ZERO sense and its pathetic how that managed to lure so many morons onto doing this.

I remember first seeing this during a Win install and instantly looked for a way around it, I think they even have removed a workaround to make it even harder for people to work around this BS.


FWIW I've done some d3d9 and d3d11 tinkering and my stuff looks like it works pretty good under proton.


> Edit: yes, I can use Linux but I have decades of Windows muscle memory and I do a bunch of DirectX programming. I shouldn't have to switch :)

The computer on my left uses Windows (Win10) so I still use Microsoft-related software. I switched to Linux in late 2004 or so. Linux kind of spoiled me here; every time I transfer files on Windows and notice how slow it is, I wonder what the heck Microslop is doing here. Why does it waste my time and my computer's resources so much? That's one example of so many more. It would be kind of great to be able to abandon Windows completely. For that Linux has to improve a lot, so that Average Joe also is able to use it just fine.


There are ways of changing a lot of the shortcuts on Linux to be the same. And a lot of the default KDE shortcuts are similar to windows' ones iirc.


Yeah I've found modern KDE's shortcuts are not only similar to the best parts of Windows, but also slightly better (Win arrow keys reposition without doing minimize/maximize, only win pgdn/pgup minimize/maximize) so I can move shit around more fearlessly.


Same, I had to use some hack to trigger sticky keys on the login screen to launch cmd.exe, then I could run the few elevated commands I needed to get back in.

At least notepad has rich text, AI, tabs! /s


you just can't keep supporting that adware with operating system functionality and keep hoping they'll make it more convenient for you


This is pretty nice, but why do a lot of Mac apps insist on living in the menu bar?


Agreed, especially for something like this that might get used a handful of times (I’m assuming most people don’t have myriad cables or want to check them regularly?)

The problem of course is that on my 14” screen the area to the right of the notch is already close to full and I don’t even have that many things there…


It works for me, but I understand for others it might not. So, there's now a "Show in menu bar" toggle in Settings. Turn it off and WhatCable runs as a regular Dock app with a normal window instead.


Making 1 click to access is faster than typing the app name in finder. Dock is usually full and used for different type of apps. Makes also constantly visible output possible with standard ui patterns.


And ‘every’ Mac developer thinks people will want to run their tool all the time.

For this kind of read-only tool, I doubt that’s the case. A regular application probably serves most users better.

Also, if you want users to have the option of permanently displaying this kind of info, a desktop widget (https://developer.apple.com/documentation/widgetkit) may be a better option than a menu bar item.


Exactly, this should just be a regular app with an optional menu bar option for those who want to switch it on.


I like this idea.


> Dock is usually full

My menu bar is also full and, unlike the Dock, I can’t resize it to fit more.


You can put it in a secondary onclick taskbar with Ice (similarly to Windows)


Just a heads up Ice is abandoned and broken on upcoming versions of MacOS. I still need to look into an alternative



Thank you for posting this, I've been increasingly frustrated with ice recently and have been considering paying for bartender, now i won't.


Thaw is a fork of Ice which is maintained and woks on Tahoe.

https://github.com/stonerl/Thaw


There's also Bartender, Hidden Bar etc., but they all come with some downsides.

I just don't get why Apple doesn't recognize this as a problem. Do the engineers working on macOS all have two of these 5:1 aspect ratio ultra wide monitors!?


Whenever I look at my partner's Macbook I'm having a flashbacks from Win9x/2000 times when tray area was filled up.

But Microsoft managed to deal with that issue - years ago. With XP they introduced collapsible tray area and later, it also become possible to rearrange icons.

Somehow for Apple the problem doesn't exist or they assume that their users will choose a 3rd party solution. Frankly, it's them who should provide the solution straight within the operating system. Especially when Apple computers revolve nowadays more around laptops which by definition have smaller display area.


Worse - even if you have two, Apple just duplicates the menu bar on both screens.

Especially with the abomination that is The Notch, the menu bar has been overcrowded for years. No offense to OP. I’m talking about the 5 or so items I can’t get rid of in there.


Sure you can.

defaults -currentHost write -globalDomain NSStatusItemSpacing -int 2

defaults -currentHost write -globalDomain NSStatusItemSelectionPadding -int 2

Replace write with delete to undo.


OK, thanks. We understand what a menu bar is.

How is this conducive to the typical usage pattern of an app like this?


For some reason the app supports a separate standalone window mode as well [0]. It's not clear why the developer took the trouble to support two different modes when the menubar mode doesn't seem to add anything (like a live-updating icon for throughput).

Well, I can think of one reason why it wasn't that much more trouble. François Chollet had a nice tweet [1] on why removing human cognitive friction is resulting in needless software complexity.

[0] https://github.com/darrylmorley/whatcable/blob/main/Sources/...

[1] https://x.com/fchollet/status/2045929951539707957


> removing human cognitive friction is resulting in needless software complexity

This is kind of a hilarious statement just on the surface. Isn't removing burden from humans the whole purpose of software? How can you call the complexity "needless"?!

(the actual tweet seems to go into a bit more detail around being incentivized to find good abstractions)


I think you're conflating the burden of creation with the burden of relevance, suitability, usability and usefulness of the created artifact. The more the person in charge is disengaged, the sloppier the output is likely to be.


Making it trivial to generate software is making people turn their brains off. They don't think through the details and accept the "default" from an LLM which has no concern for the user experience.


> It's not clear why

People asked for it in these comments here and the developer added it.


Thanks, from the git log I see it was committed 20 minutes before my comment. I was going by the HN title and description and missed those comments.


Are you saying you wish this was a desktop app and you would just open it occasionally when curious?

If so, it feels like a needlessly indirect and combative way to go about it.


Why is it "combative"? Seems like a needlessly hyperbolic description of launching a desktop app.


Spotlight exists. Typing is much faster than moving your cursor to a small target like a menu bar item.


Is it not rather useful in this particular case? You will see the reported capabilities whenever you plug in a cable. Or do people rather want to diagnose and label their cables just once?


Sure, but do you diagnose cables so often that you need a permanent icon in the menu bar?

Following that logic, every application you use more than a handful of times should live there.

Anyway. I'm not trying to argue, I think this is a neat tool, but when the Windows tray got bloated with icons people used to complain about it.


oh no you're right, my menu bar is full already.


Ah yes, like those EUV machines America and China have worked on.


Dreams uses SDFs though?


Dreams uses SDFs to generate splats on the GPU - all the actual rendering is splat-based.

Alex Evans gave a really great talk about the whole tech stack, the PDF is here: https://www.mediamolecule.com/blog/article/siggraph_2015


To be fair, it's mostly an evergreen skill because people don't know how to exit.


I know you're joking but if one can't figure out how to quit vi they should find other employment opportunities in other fields of work.


And I bet emacs has a mode for that too.


I don't have a problem, I can quit anytime I want!


Friends don't let friends use vi - they know that once you start, you'll never quit!


if you learned it in class, I hope you learn how to exit!


shift :wq

Or....

Ctrl-Z


You dropped a ‘kill %1’…


Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: