A string being parsed as a date-time is presumably user input, which is potentially invalid.
A string being parsed as a date-time is presumably user input, which is potentially invalid.
What happens when you coerce a string to a date-and-time but it’s not valid?
Where I’m from (Rust), error handling is very strict and very explicit, and that’s how it should be. It forces you to properly handle everything that can potentially go wrong, instead of just crashing and looking like a fool.
user session features don’t work properly unless your DE sends session start/end information to systemd
Which features, exactly? I just tried IceWM, which has no systemd-related dependencies and vastly predates systemd, and the session appears correctly on loginctl
and disappears from there a few seconds after logging out, same as logging in and out of Plasma. Seems like it works fine.
I did notice that loginctl lock-session
doesn’t work with IceWM, and presumably neither does anything else that involves sending D-Bus messages to the process controlling the session, but that’s not the end of the world.
this breaks various systemd features in surprising ways; I found out about this when my user services wouldn’t work
I definitely have not observed this issue. I have loginctl enable-linger
ed myself, so my user services start during boot, before any desktop environment is loaded. I haven’t tested whether user services work in IceWM without that, but as far as I know, user service managers are started and stopped by logind in response to session start/stop, and logind gets notified of session start by the PAM module pam_systemd
, not by the desktop environment.
systemd forks tend to accumulate compatibility issues with the rest of userland very quickly due to breaking API and functionality changes in the interdependent systemd process ecosystem (and these breakages can very quickly propagate to downstream programs — a breakage in logind can be expected to be catastrophic for auth in general, for example).
Breaking changes affecting programs outside of the systemd suite? Can you give me some concrete examples of such breaking changes and the problems they caused? I wasn’t aware there were any. I would have expected to see some serious fireworks if such a thing ever happened.
socially, both cryptocurrency projects and systemd possess notably toxic communities which severely punish forks and dissent, which is also used as a mechanism by which control over the project is maintained. the upshot to this is an additional high cost to the morale and community resources of a fork, which particularly harshly punishes forks run by individuals and small teams.
We’re discussing a community hard fork that leaves IBM behind, like what happened with XFree86. What IBM says or does after that is irrelevant, I would think.
Dynamic typing is insane. You have to keep track of the type of absolutely everything, in your head. It’s like the assembly of type systems, except it makes your program slower instead of faster.
Difficult to test == poorly designed
It’s pretty much a natural law that GUIs are hard to thoroughly test.
I will say that it’s impressive that modern GUIs, as staggeringly complex as they are, work as well and as quickly as they do, not to mention how ridiculously fast the hardware is. That’s quality engineering right there.
it has to be said that a lot of systemd’s features are broken if you’re operating a system without a dbus-enabled desktop manager
Huh? Most of systemd’s features, including all in the above list, work even if you have no GUI installed at all.
I do wish there were a good alternative that did not (via network effects) give firm control over a big portion of the Linux userland to a big corporation like IBM and its associated development practices
I’m not seeing it. This isn’t Chromium, where it takes an army of world-class developers just to keep it up-to-date enough to be fit for its purpose. If systemd were hard-forked right now, and the new maintainer did little more than the occasional bug fix, systemd would still be useful for the foreseeable future.
Because it looks cool. That’s seriously the only reason.
And it does look cool, although yeah, it is also harder to parse visually, which I suppose is why CSS has a media query specifically for asking whether the user wants reduced transparency.
As for suckless, the biggest target of their hate seems to be systemd, and there are quite a lot of reasons to recommend it. A few off the top of my head (all but one of which I have used at one point or another):
systemctl --failed
)systemctl status
)systemd-cgls
) and optionally cleaning up (KillUserProcesses
in logind.conf
) user sessionsloginctl enable-linger
)ProtectHome
, InaccessiblePaths
, SystemCallFilter
, CapabilityBoundingSet
, etc)Requisite=sys-subsystem-net-devices-wlan.device
+ WantedBy=sys-subsystem-net-devices-wlan.device
= “don’t start hostapd
unless the Wi-Fi dongle is plugged in, and stop it if the dongle is unplugged”)journalctl -p warning -b -u smbd
= “give me all log entries made by smbd
, of warning level or higher, since the last reboot”)If you’re pathologically opposed to software complexity, you probably shouldn’t be using a GUI at all. Many millions of lines of code are involved in turning UTF-8 into pixels on your screen, laying out widgets, driving a GPU, and so forth.
Can’t say I’m overly surprised. They always did strike me as irrationally angry at harmless things and irrationally afraid of anything different from what they’re used to, which is exactly who right-wing ideology appeals to.
One wonders how exactly a shield generator, generally portrayed as one of the most power-intensive components of a starship after the warp drive, still has enough power to function with only the fusion reactors and no warp core.
Of course it did. It’s an antimatter reactor. It goes boom like a giant photon torpedo. Trouble is, warp cores don’t exactly grow on trees, neither does the antimatter fuel, and you have to somehow get clear of the huge explosion without a working warp drive.
The warp core isn’t the only source of power on the whole ship; it’s just the biggest and electroplasmiest. Starships also have fusion power plants. Y’know, those old-fashioned atom-smashing machines? They’re crude, like the power-plant equivalent of two cavemen swinging wooden clubs at each other, but they power the impulse drives, and nobody’s going to complain about at least being able to go somewhere when the anomaly of the week turns the warp core into a flower pot or something.
For some reason, nothing bad ever seems to happen to the fusion reactors. I guess it’s because the reaction fizzling out and shutting down quietly isn’t very dramatic. Fusion reactors aren’t all explodey like antimatter is.
Humans: beating the laws of physics into submission since 2061.
Three centuries later, they still haven’t rewritten everything in Rust.
Sandboxing the binary doesn’t protect you. It can still insert malicious code into your application.
By “user” I mean the person who is using the application.
Using exceptions for handling unexceptional errors (like invalid user input) is a footgun. You don’t know when one might be raised, nor what type it will have, so you can easily forget to catch it and handle it properly, and then your app crashes.