FR version is available. Content is displayed in original English for accuracy.
Advertisement
Advertisement
⚡ Community Insights
Discussion Sentiment
45% Positive
Analyzed from 5284 words in the discussion.
Trending Topics
#software#don#focus#where#why#support#experience#more#windows#app

Discussion (118 Comments)Read Original on HackerNews
One of my absolute favourite features on KDE Plasma with Wayland is the global setting to control what can steal focus. It works wonderfully, and I always miss it when I have to use my work mac or windows computers.
See here for docs, under "Focus stealing prevention" - https://docs.kde.org/trunk_kf6/en/kwin/kcontrol/windowbehavi...
NixOS has a longstanding issue where library loading (and therefore program start, particularly GUI programs that load a lot) is n^2, but programs still all start in ~1 second or less on my n100 minipc. I still found that to be annoying enough to look into why it seemed so slow (and learned about the loading issue). Can't imagine things taking so long that you actually switch to another task. The same minipc can easily handle my 4k 240hz HDR monitor as well, and the whole experience is completely smooth.
The computer also just obeys me. It does exactly what I tell it to, and nothing more.
That's a pretty good description of it, I even have KDE laid out the same way I did on Windows 7 (or more accurately I guess on KDE going back even further since Linux has been my main OS since the 90's with Windows relegated to gaming).
To this day - Taskbar shows window titles, only shows window titles for windows on that screen, there is no grouping, there is no ordering except order opened etc.
I think autonomously in terms of which physical screen a window is on and when it was opened relative to others so I know exactly where to look/it'll be - the Mac style (and Linux/Windows style at least out the box) defaults of hiding all windows for an application behind it's icon in the dock never made sense to me, I have widescreens why do I want a doc that only takes up 40-50% of the horizontal space?.
Is this workflow part of the Kwin settings? It's not interrupting typing part of the settings?
You most likely want to return to the main task as soon as possible because that scrolling is just a time filler because you can't do anything productive. So you don't need any notification and extra action, just switch back asap and continue work with as little interruption as possible.
But even in the specific example that depends entirely on what you're switching from and to and for what reason. If it's for something quick non-interactive (I don't know, switch to a file browser to check the file name or something), then yes, you'd prefer to seamlessly be switched back to the main app to do the thing you launched it for.
But if it's not an important app, then yeah, you just want it to be ready for you and switch to it whenever you decide to avoid the launching delay later
Maybe you do. I don't. With this setting we can both be hapopy.
That was annoying, but it let you finish doing what you were doing until you were ready to switch focus.
I still don't understand how a full focus stealability debounce is not the norm. If I am in the middle of writing, or interacting with one UI bit in any way, no other app should be able to steal focus, full stop. Add an annoying popup if you want, make angry computer noises, flash icons, I don't care. 99.9, if not 100% of the time, it's completely unrelated to what I'm doing and can absolutely wait. While some OSs have something along these lines, they also give the tools to bypass it (I'm looking at you, Cisco AnyConnect! Being connected after clicking on connect is not an emergency!)
Imagine you're working in a terminal and an app decides to steal STDIN. Why do we accept that for a GUI?
You don't know that until you ask users. That would be a much more useful question than those boring "tour guide on first login" or "please activate cortana/copilot" or "do you want to sync to onedrive" stuff one gets notified on some major desktops.
My preference is focus follow mouse, no focus stealing on new window opening.
I do, this is also pretty bad. User focus is more valuable than that
My experiences as a user haven't really changed. Streamers fail to cast to TVs. Browsers are devices which reliably and efficiently propagate red console text and 500s from companies to you. I still see bluescreens on public touchscreens.
Uncle Bob nailed one reason why the industry isn't getting better: the growth of programmers is exponential, such that half of all programmers have less than n years experience (5?).
I offer two additional reasons:
Firstly, you hone your skills doing individual algorithms on a single thread, where it's OK to get it wrong and change it as many times as you like.
When you get a job, you don't even realise you're in a distributed system and the getter/setter model you practiced on is woefully inadequate for interacting with partner systems, cqrs, event-sourcing, auditability, idempotency or whatever else is required.
In short, 10 years of practicing writing for-loops and data-structures will not translate into building a system that customers can access via their phone and multiple tabs of a browser, at the same time as a database schema is being updated.
Secondly, while I don't think there is any realistic alternative to agile development, it seems that nontechnical POs have captured the software lifecycle. 'Focus on happy path only, for the MVP' is how you build buggy software. Good developers can learn that this will guarantee the need for a rewrite in the future, but POs never will.
It seems like the languages have been increasingly targeting the beginner segment (C++ -> Java -> JS -> Python), while the tasks have been getting more complicated (b2b distributed systems, 24/7 uptime, millions of users, resistance to hackers, machine learning, etc.)
Optimistically, I think we might just enter a new phase at some point, where businesses make very conscious decisions about what to invest in to differentiate. Like, everyone has support bots now. Where do we invest, absolutely stunning human support? Or is support not that key and we should invest into being the most reliable? The most enjoyable to use?
One can hope.
If developers are producing garbage to begin with, chances are they still produce garbage just at an accelerated rate.
Bizarre experience.
And bring back change & configuration management processes and documentation reviews. All the boring slow stuff.
Except now make it part of your CI/CD pipeline.
That's a complete non-starter unless you're serving some extreme luxury premium market with absurd margins, and/or your customer interactions already require a lot of human involvement. So 99.9% of digital products are right out.
Good human support is absurdly expensive and will easily make your product 10 times more expensive than your competitor's. But almost no customer is willing to pay 10 times more for good support.
If you create a startup you really want to focus on a small audience that you understand and know really well, instead of chasing everyone. And for that a support team is one of the most important asset you have
A month later, no refund. I contacted them again, they said unless the book is sent back, no refund. I told them about the previous conversation and they said that the CSR had lied to inflate his scores, and if I've thrown the book away I'm out of luck, he generated a return label. I complained and they threatened to close my account unless I send verification documents. I didn't, I just sent the book back and the refund processed automatically.
About a year before that I had a Samsung Fold and it cracked down the middle. I told Amazon that it was only 6 months old and it was broken, and Samsung said I need to send it to Cyprus for some reason. Amazon said to send it back for a refund, I did, and I got a warning that I'd returned something "not in original condition" and next time I'll be banned.
Last week a package didn't arrive. I queried it and there was no longer the option to talk to anyone, just a link to phone numbers for the external courier.
So I would say that Amazon having stellar support 15 years ago, building a brand on it, and then choosing to stop doing that mostly proves how wrong you are. Sure, you can still sometimes speak to someone, but it's getting worse.
There was a brief stint of UX, ergonomics and HMI getting traction in enterprise, and, imo, the biggest technological achievements in consumer software has been in the realm of UX in twenty first century. But it lost its importance, I suppose, as you don’t need to make good software to make money off consumers.
Whatever capabilities AI gives to programmers in terms of speed of development, etc, doesn’t change the fundamental behavior —- commercial software is not developed for humans. It is developed for investors, markets, around operational needs, based on CEOs whims, developers’ personal itches, relying on approximation of human experience that gets regurgitated through layers of commercial processes of product managers, UX researchers (who, if present at all, often don’t get invited to the conversation until there are buttons to move in a GUI of an already existing product). Where human experience is considered, it’s from the perspective of our natural weaknesses with the goal to exploit them to maximize profits. Hence why 21st century tech gave us all the dark patterns, feeds, social media, LLM chatbots, etc.
Even when I talk to individual engineers who are committed to creating something good, wholesome, something that they can be proud of -— many think and reason about the problem in a way that sounds like they are trying to engineer human experience the same way one would engineer instructions for machines.
It will never get better, IMO. AI only exemplifies what already exists.
IME this happens more often than people think. If you’re leading a team part of your job is to manage the expectations of those around you and explain your choices. If you do that well you can absolutely have quarters where you only pay down debt, it doesn’t require some huge attitude shift in the industry. Just explain why it’s the right thing and then do it.
If you're making a Linux distro, please don't do this. I will not watch your video. I was interested, and now I'm not.
What is "a fascist" (in context of being labelled that on the interwebs). That could mean a lot of things.
As a reader, you learn basically nothing about DHH other than that some people might not like him.
___
So to fix that:
DHH has always been a very opinionated guy - with not all of those being agreed on, but there being usually some kind of point to them.
Starting somewhere late-ish last year, however, he seems to have dropped deep through the alt-right pipeline and started babbling talking points basically copy-pasted as-is from other talking heads.
So, in essence, he kinda stopped being opinionated, because that would require having an own opinion, and instead started just being yet another person not doing all too well mentally on the internet.
I mean the guy suddenly started talking about "body counts". What's his age again?
__
Of course, moral outrage happened but achieved absolutely nothing, because it's not the right tool for the job here.
I do not disagree with what your said, but I think it just boils down to that.
For example in his latest blog post he first describes problem of growing populations of wolves that are killing sheep and cannot be shot because they are protected by the state. And then starts to compare the situation with danish gypsies (Romani) in danish cities.
That's as close to fascism as you can get... it's pretty out there on the edge of legality.
I mean I used to respect his (at the time mainly technical) takes and I recommended Basecamp to so many organizations. How has this table turned so much I have no idea.
Fascist is not just a silly label. The political collapse of neoliberalism made a lot of closet fascists emerge and they seem quite common among what was earlier thought of as "techno libertarians". E.g. the VPN provider owner (forgot which) just lately.
If there was too much crying wolf 15 years ago, doesn't really matter now anyways.
Microsoft didn't need AI to make windows 11 as bad as it is.
The incentives are large companies are fundamentally not in align with making high quality software people actually enjoy interacting with.
I would actually recommend disabling SIP. https://lapcatsoftware.com/articles/2024/2/3.html
> So why does software keep getting worse across the board?
Because good software requires the exact opposite of what LLMs provide: care and empathy.
> Software has always had bugs, and the nostalgia for the good old macOS Snow Leopard era when everything was stable is mostly the product of selective memory.
The Snow Leopard era was very long. Mac OS X 10.6.0 was released 22 months after 10.5.0, and 10.7.0 was released 23 months after 10.6.0. The last version of Snow Leopard 10.6.8 v1.1 was also released 23 months after 10.6.0.
The higher quality that everyone remembers came after a long succession of minor bug fix updates with no major updates. 10.6.0 was quite buggy, as all major updates are, with a number of really bad problems. If you look back fondly at Snow Leopard, you're probably remembering the later versions.
The difference between then and today is that everything changes so fast now, there's never enough time to achieve stability. The major update release schedule has been accelerated to twice as fast, and moreover, new features keep getting added even in "minor" updates. It's become practically "Agile" development, one of the worst ideas ever IMO. Constant change, no stability, the hamster wheel spins.
Something else worth noting: back in the day, major Mac OS X updates were delivered via physical discs. You had to go to the store to buy it. Thus, uptake was much slower. Nowadays, major updates are free and relentlessly pushed on us, sometimes via dark patterns. I would pay not to have to update.
The smaller the org, the better the chances of having only reasonable levels of misalignment... but without taking on high risk, it's just better pat to work on a large, worse org. Frustrating.
Imo we know the tools (social, + technical) to make good software that works. But in the face of massive complexity, people just want the next feature, the next thing sales can use as a win
And yeah I agree with the other commenter here - I don't think this is AI. We had terrible software before, even declining quality.
This is hilarious.
Expectations is neither about creation not use. "May" isn't a revolution outside of the historic calendar, so on both counts it's trivial to deny an ungrounded statement.
> So why does software keep getting worse across the board?
Because the premise on which the expectation is built is wrong?
Also plenty of the issues are prehistoric with all the past meat bag generations to blame, case in point: > Just then, the Slack window appeared, stole focus from Ghostty
So who stopped that huge fruit corpo from doing the very basics of managing user experience in the past few decades minus a few AI years?
I don't necessarily believe in 10x devs, but there is a very clear output difference between various developers. During my career I've been both in a position where I was delivering much higher quality code at a similar pace to other coworkers and also mediocre code at a slower pace. Sometimes at the same time.
Now, AI itself is a force multiplier. Depending on the task, your setup, your skill level (both as a developer and with LLMs), the weather, the model and so on, it can range anywhere from actively hindering you, to solving the entire thing for you. Let's say that on average you get a 20% productivity boost.
If you take a 0.8x developer and give them a 1.2 force multiplier LLM, you get a 0.96x developer. Worse, the axis that has moved is speed, not quality.
All this to say that if you let a below average developer vibecode, you get a much higher volume of slop. You can make an agent create good code, but this developer didn't care before so why should they now?
*Note that this is from experience. I've started getting feature PRs from our devops team. It's been a very enlightening experience.
I think that points do the solution. We should not make stuff more complex than we can the level of complexity at which we can make it reliable.
I work in mediation and have recently seen a few cases where I’ve wondered if the participants were suffering from AI psychosis as related to their claims: where they’d constructed their legal cases hand-in-hand with an LLM and had become absolutely convinced despite a contestable set of facts.
People have always been subject to delusion, but in these cases, all documentation submitted was obviously created by chatbots.
It crashed, and crashed hard, a few times per week. That never happens today, maybe at most once a month.
However, what has changed in terms of quality is that there are 1000% more smaller bugs. I never felt that small annoyances or problems were even noticeable or even existent back then. Every feature seemed to actually work. Yet just so far today I have encountered over a dozen small problems in my operating system and apps I use.
It’s exhausting in a different way. Two decades ago I felt ”safe” from problems by frequently saving my files. Today I dread having to navigate a UI that keeps giving me a thousand paper cuts of small bugs.
I work in development and programming and with all the modern tools and testing frameworks and QA engineers and analytics and modern language we seem to only have achieved less crashes and more non-crashing bugs. It annoys me and I am a bit ashamed at my own profession.
This extends to any device which has software or firmware: banking websites, banking apps on mobile phones, car firmware, etc.
I find it very depressing, especially when I think of the people who design, develop and deploy these apps. We are talking about large companies and teams of people. Entire chains of well-paid people designed, looked at, developed, tested, and then accepted these apps. And yet they break in the most obvious ways, or fail to be usable, instead pestering us with pop-ups and useless drivel and forgetting their state at every point.
These problems are not subtle. To take a glaring example from my everyday life, in my car there are buttons for moving windows up and down. Sometimes when you press the button to move the window down, it will actually start moving up. We are talking about a simple button that moves a window. And seemingly everybody thinks this is fine?
I don't know what to do about this.
I mean, he has given the answer in the article: Because "coding has been solved" is from the perspective of upper management, not devs or users - and that cares about software quality and usability (as standalone metrics) about as much as the McDonald's board cares about nutrition value.
Running non free software is essentially giving up our freedom. Before internet connectivity the problem wasn't too bad but nowadays there is always the temptation to squeeze the lusers.
So taking it at face value is kinda part of the problem here.
The only way this can get better is by completely suffocating it off attention. It doesn't exist. It's not real.
Back when I was using IRC from Emacs (with erc) I had written a safeguard in elisp against that. Haven't been on IRC in a while but this helped me prevent sending to the "group chat" (the IRC channel) a great many private infos.
Same for my real name for example: I had a filter where anything containing my actual name would be blocked.
I think a great many software where you "chat" with "groups of people" would benefit from having both default and configurable filters that catch obvious mistakes. Say you probably want a confirmation before attaching a private SSH key, or before sending a password in the clear (which could be filtered by blocking words matching the hash of the password), etc.
Not that it solves the fundamental problem TFA is talking about: nothing works.
But that is a given: that's why we need safeguards.
Let's have a look at a few rarely quoted examples from the last decade, shall we?
Just six years ago, a big company rolls out a line of new chips so good that geeks and technology experts all get ecstatic and can't stop churning endless raving reviews. Those chips are fast, small and consume little energy. On top of that, the big company reworks their entire OS (OS!), the whole suite of software it has for it, the developer suite with compilers and SDKs and god knows what else and also ensures that everything ever written for that OS for the old chips continues to work and it indeed does.
Then there's another big company that launched a file storage service around 20 years ago. Back then it was reliable and only gotten better over the years. They started offering their storage for a nanocent per gajibyte and twenty years of hard work allowed them to lower that cost to a picocent per gajibyte. They don't lose data, they are highly available, half of the internet stores their data at their servers.
And then there's a -- gasp! -- consortium of big companies (fools would reply to this with an XKCD standards strip) that works on improvements to a shared set of standards for 4G, one of the most widely used technology stacks in the world, agrees on it, calls it 5G and rolls it out across the world and the whole spectrum of hardware and software vendors in a manner that resembles replacing a wing of an aircraft mid-flight so that not a single pasta strand falls from the forks of the business class customers.
And here we have someone who thinks that a customer support page for his fridge (fridge!) thrown together by a low-paid second-grade developer in a third-world country is indicative of the whole industry decline.
"Nothing works", my hairy bum. Get real.
It's glaringly obvious that poorly checked, AI-written, code is the culprit, I'm just wondering when companies will wake up.
Nobody gives a flying fuck about resiliency, good practices, security or any of that now that AI is there. All anyone cares about is pure output of features.
Any and all "productivity" gains attributed to AI efficiency are actually due to the complete disregard for any care or standard in the software industry in the past 2 years. Yeah you can output more shit when you don't give a fuck, big surprise, AI doesn't change anything here.
The issue is only partially within those who code. They get directions from those in charge, and they are just making idiotic decisions. And those who code, for some reason don't stand against those idiotic decisions in defense of a common sense and a great UX.
A blatant, exaggerated parallel would be: you are designing your kitchen and you've chosen a place for your washing machine such as that it will be unable to open its door. When inviting a professional, you expect them to correct such wrong decisions and explain to you that it won't work. But in programming, those who program, calling themselves "software engineers", would just place this washing machine where they're told, because it's "not my job". It's not a feature of an "engineer". It's being a coder lemming.
Now with AI new superior people can actually produce compilable code, and ship it to production!