I've learned to use default configurations pretty much everywhere. It's far too much of a hassle to maintain customizations, so it's easiest to just not care. The exception is my ~50 lines of VS Code settings I have sync'd in a mysterious file somewhere that I've never seen, presumably on github's servers, but not anywhere I can see?
Is it? The vast majority of the time, I change settings/set things up the way I want, and then... leave them for literally years. Hell, I can directly restore a backup I have of Sublime Text from years ago and my customizations will work.
Somewhere along the way I lost interest in customizing the OS. These days I routinely switch between MacOS, Windows and various Linux flavors on lots of computers. The only thing I may customize is I write my .vimrc from memory.
On my Android phones, I change the wallpaper and I disable animations. Otherwise, stock everything.
Now that I think about it, it can't be the time saved, surely I waste more time on HN. It likely correlates more with using computers for work as opposed to for fun and learning. Even the learning I do these days is rather stressful - if I can steal an hour or two on the weekend, I feel lucky, so spending time to customize the environment seems like a waste.
Maybe if life slows down, I'll find joy in customizing my OSes again.
On the note of programming not being fun anymore, that's exactly why I'm making my secret project that I hope to release very very soon, maybe in a week or so. I want to make programming fun again, in a similar way that pico8 did, but x100.
> I have the same history customizing everything! ... then giving up because life gets busy.
I think this might be why some people have such different experiences. I don't try to customize "everything" - just what needs to be. Like, yeah, I would expect it to be difficult to maintain random Explorer customizations. I would not expect it to be difficult to maintain customization for a popular IDE.
Too much software put host-specific stuff in settings files (like absolute paths) or just are not stable enough in general that it is worth trying to maintain a portable configuration.
The hard part of maintaining a config is that there's no such thing as cost-free usage, it always takes a mental toll to change a config, to learn a new config, to remember which configs are in use and what they do, to backup configs, or at least to setup and maintain a config-auto-backup flow.
By far, the easiest mental model is just learning how everything works out of the box, and getting used to it. Then again, sometimes what people want is to do things the hard way for its own sake. That's probably part of why I kept going back to C over and over for so many years.
The oldest parts of my emacs config go back at least 30 years and I have had it in a git repo for ~15. I keep my entire .emacs.d versioned, including all third-party packages I depend on (so no fetching of anything from the cloud).
Have had to do at most minimal changes when upgrading to newer versions and with some tiny amount of work the same config still works for emacs from around version 21 to 31 (but features are of course missing in older versions).
Just your regular reminder that nix is good actually.
"I have a bug, you can get a full VM that reproduces it with 'nixos-rebuild build-vm --flake "github:user/repo#test-vm" && ./result/bin/run-*-vm'"
And the code producing that VM isn't just a binary blob that's a security nightmare, it's plain nix expressions anyone can read (basically json with functions).
And of course applying it to a new machine is a single command too.
(Would it be pedantic of me to say that I receive my fair share of bug reports on nix code I maintain, and when someone sends me their entire nixosConfig the very first thing I do is punt it back with a "can you please create a minimal reproducible configuration"? :D but your point stands. I think. I like to think.)
Now you have to guess whether the software has really loaded or not before you start using it.
I could understand it if your device needed special access (VPN to prod etc), but you usually can't do that either from the dev machines - and need to first connect to a virtual machine (via browser or rdp) to be able to do that...
and it has migrated to web apps today - where doing something causes the UI to show a loading/progress wheel, but it takes forever in actuality (or on start up of the webpage, you get a blank screen with placeholder bars/blurred color images etc).
And this is the so-called responsive design...
Ding! Ding! Ding! We got a winner!
Yeah, maybe we could expect machines which got 40 years of Moore's law to give you an experience at least as snappy as what you got on DOS apps.
if (request.authenticationData) {
ok := validate(etc);
if (!ok) {
return authenticationFailure;
}
}
Turns out the same meme spans decades.If there is no authenticationData then the if !Ok is never run and the code continues execution as it were authenticated.
void doFoo(PermissionToDoFoo permission, ...){...}
and then, the only way to call it is through something like from request import getAuth, respond
\\ Maybe<AuthenticationData> getAuth(Request request)
\\ void respond(String response)
from permissions import askForPermissionToDoFoo
\\ Maybe<PermissionToDoFoo> askForPermissionToDoFoo(AuthenticationData auth)
response =
try
auth <- getAuth(request)
permission <- askForPermissionToDoFoo(auth)
doFoo(permission)
"Success!"
fail
"Oopsie!"
respond(response)
It becomes impossible to represent the invalid state of doing Foo without permission.Teams not loading due to security issues, but notifications coming through with full content of messages. Ability to type a handful of words in cloud version of Word (or paste full documents) before security check catches up and requires me to set up a sensitivity label. Etc.
It mostly tells me about MS doing very bad software architecture for web apps, though apparently the desktop apps are not immune to it either.
Those photos may have already been uploaded to google's web servers (from my understanding, this happens with google photos by default?), from which a preview has been generated. The permission is at the android app level, and is requested at some point to ensure that the permission model is respected from the POV of the user. I can imagine the permission request being out of sync!
1. All teams will henceforth expose their data and functionality through service interfaces.
2. Teams must communicate with each other through these interfaces.
3. There will be no other form of interprocess communication allowed: no direct linking, no direct reads of another team’s data store, no shared-memory model, no back-doors whatsoever. The only communication allowed is via service interface calls over the network.
4. It doesn’t matter what technology they use. HTTP, Corba, Pubsub, custom protocols — doesn’t matter.
5. All service interfaces, without exception, must be designed from the ground up to be externalizable. That is to say, the team must plan and design to be able to expose the interface to developers in the outside world. No exceptions.
6. Anyone who doesn’t do this will be fired.
7. Thank you; have a nice day!
Number 7 is a joke, etc.
I'm certain that some idiotic change just like the ones suggested in the article destroyed this perfectly working feature, and nobody is bothered to fix it because it would impact the latest harebrained scheme to make my 10 year laptop do AI in its sleep and suggest helpful ads about the things it couldn't help overhear while "sleeping".
Some additional examples beyond the OP:
- In the latest macOS, trying to set a custom solid color background just gives you a blinding white screen (see: https://discussions.apple.com/thread/256029958?sortBy=rank).
- GNOME removed all UI controls for setting solid color backgrounds, but still technically supports it if you manually set a bunch of config keys — which seem to randomly change between versions (see: https://www.tc3.dev/posts/2021-09-04-gnome-3-solid-color-bac...).
The pattern here seems pretty clear: a half-baked feature kept alive for niche users, rather than either properly supporting or cleanly deprecating it. Personally, I’d love to simply set an RGB value without needing to generate a custom image. But given the state of things, I’d rather have one solid, well-maintained wallpaper system than flaky background color logic that’s barely hanging on.
Quite a capable machine for my uses.
Not supported in Windows 11. Maybe with some additional config? Can’t be bothered with something hat might turn out to be fragile and need more maintenance than I can be bothered with. That’s a young man’s gane.
Ok, I’m about due to give Linux another tickle anyways.
Hmm, which distro… can always give a few a spin.
Keep it simple, Pop!_OS.
Installed fast, no issues, runs fine, stable. Seems entirely usable.
Customisations? Nah, keep it simple.
I’ll set a black background though.
Nope.
win11 ltsc works perfectly on it. With a solid background :D
Based on: Arch. Init: systemd. https://cachyos.org
Based on: Debian. Init: Non-systemd. https://www.devuan.org
Based on: Arch. Init: systemd. https://garudalinux.org
Based on: Independent. Init: Non-systemd. https://www.gentoo.org
Based on: Red Hat Fedora. Init: systemd. https://nobaraproject.org
Because they made it a runtime thing - "components just have to remember to do this", the code structure itself affords this bug.
There was a similar bug at facebook years ago where the user's notification count would say you had notifications - and you click it, and there aren't any notifications. The count was updated by a different code path than the code which inserted notifications in the list, and they got out of sync. They changed the code so both the notification count & list were managed by the same part of the system, and the all instances of the bug went away forever.
Typical response is "Well it should just work anyway!". Which is theoretically true -- the worst kind of true.
But on my Win10 it stopped working idk why, so I wrote a script to download Bing Image of the Day instead: https://blog.est.im/2025/stdout-03
Seeing how that complicated if-then logic is just too stiff a challenge to your average developer, we should probably just dispense with it.
sightofcorbie•6h ago
90s_dev•6h ago
CorpOverreach•6h ago
ryao•6h ago
suyula•4h ago
tedunangst•3h ago
kirenida•4h ago
toast0•3h ago
Would have been easier to stick with the pixel density we had.
Oh, and we have to wait a frame to see everything because of compositing that I still don't quite understand what it's supposed to do? Something something backing store?
flomo•59m ago