It’s not just being able to control my desktop in a keyboard driven matter with shortcuts I’m familiar with. Because from what I hear, Gnome desktops are pretty keyboard driven. It’s the idea of being able to control my entire Operating System, from programming in it, navigating it, interacting with it, and running the shell through it, all seamlessly with minimal context switching through one interface.
It’s fun to try to get there with Emacs sometimes, even if in my heart I know it’s not what it was meant to do.
Edit: and yes, their installer lets you select EXWM as your window manager right from the get go.
: Efficiency is probably second priority though to getting rid of the annoyance of windows showing up in weird places making everything around hardly legible. Prior to the customization I felt as if I was pair-programming with an angry gremlin who would keep making a mess on my desk. Now I have more peace of mind.
Does tini offer something better? On quick glance it seems rather limited.
That is the point. It does just what we need with a minimal amount of code.
More seriously, it would be great to have the good parts of systemd (logind, ability to control containers, the runner of unit files) implemented independently and without the "invasive" parts like control of DNS or binary logging.
This is the root cause of the problem. Regular initd + rc scripts are simple enough to be understood by everybody, which systemd is too complex to understand in the limited time we have. There is no "systemd senior developer" or "systemd solutions architect" positions for systemd developers, to adjust investment into systemd ecosystem.
I've wanted this for some scenarios where I'm bridging the gap between VM/OVAs and containers, and would like a single rootfs to be able to serve in both capacities. Basically all the current options are not great:
* Make invasive changes to move the container-relevant stuff to another init system.
* Make invasive changes to run a systemd instance in user mode in the container.
* Run the container as privileged.
* Something something podman (not an option for k8s).
It’s also not like journald uses some secret format.
Text logs are easy to get at, I don’t need a special program to read, I just need something to display a raw byte on the screen.
Also, I wonder what the actual performance benefits are. I remember back when most protocols were text and/or binary. Usually binary was slower when messing about with stringy stuff. For example, using memcached to cache strings. Why encode/decode strings in a binary protocol when you can just use strings all the way down? I don’t know if that premise is still true, but for us older people, it makes sense to keep inherently stringy stuff stringy to avoid overhead.
I've seen this type of comment a lot on reddit and I don't understand why people say this. You do not really need a special program to read the systemd logs either, in the event that journalctl doesn't work you can easily use `strings` to read the logs. Feel free to try it right now just for fun, the binary format of journald is actually extremely simple and well-documented and just stores the logs sequentially, it's not "encoding" the strings at all. Why would it need to? It's all fulltext data.
Re performance: Strings are most defintely worse than some fixed size format. It’s not an accident that FPGAs were used to serialize/deserialize XMLs, why Google made a whole new binary protocol, etc. Just think about it, you have to parse a string character by character (yeah some clever vector magic can make some string processing go a few chars at a time), while a binary format with fixed layout will be practically random access. You can query the nth entry, etc.
As I recall, there were two reasons for the binary format - a signing scheme to make it tamper proof and more metadata on each log entry.
I'd prefer it to be a separate independent component, the way syslogd is. (Yes, I know that in systemd the binary logging can be switched off, or even replaced with a different implementation.)
I care mostly about having an independent implementation with a different internal architecture, narrower scope, and a separate governance.
Something which simply was not solved with the previous generation of init systems and is greatly important. During booting the file system may not even be mounted, it could hardly be done by a separate process.
Not sure I understand this, do you mean you would use something that had the exact same feature set, if the internal architecture was different and if someone else was maintaining it? What would be the point of that? Are there some performance or security improvements to the architecture that were suggested upstream that they aren't doing?
Not sure I understand this either, the scope of journald is actually quite small, there are many syslog implementations that are bigger and have a lot more features.
There is a reason that certain things have multiple implementations compatible at the level of key interfaces but different inside. Examples: cron and anacron, more, less, and bat, different NTP implementations, different syslogd implementations, to say nothing of the variety of DNS, SMTP, and HTTP servers.
Specify that you only want to last day or so (which is quite likely what you actually want), but I do agree that the default could be something sane like only the last week.
For me, it's less that it's binary and more that it's some bespoke format specific to journald instead of, say, an SQLite database or something else similarly widely-used and well-known.
Latency is measurably better than PulseAudio even via pipewire-pulse.
edit: I think the confusion is over my use of the word "shim". Pipewire doesn't route through PulseAudio, it replaces PulseAudio but includes an implemenation of the same API. There's no increase in latency or complexity because there's no extra steps.
Guess even Emacs has managed to put on some weight since then. :)
There are a lot of useful things to be build, but does everything has to be quirky in some form? Are we so limited in our imagination, that we decided the ultimate artistic achievement is to be "different", not good different, just weird different? I don't find it funny, I don't find this creative, it's just different for the sake of being different. We are, if I may use the term, in a baroque era of software development. Instead of going for efficiency, simplicity and extracting the essential, we go for the unusual, uncalled for, uncanny and unconventional.
If you read that, and then remember that this site is called "Hacker News", perhaps that will illustrate things.
Apart from that, I think a lot of commercial software development is even more "useless". In the sense that, a lot of software is reinvented without any real improvements or much "educative benefits" for its developers.
My point wasn't that commercial software is actually useless though. More like, in the grand scheme of things, even something that's just quirky for the sake of being quirky is kinda useful.