Danke an meine Heimatgemeinde Edingen-Neckarhausen, die in diesem Brief nochmal deutlich macht, warum Deutschland ein Internetentwicklungsland ist und bleiben wird. Übrigens konnte ich auch nicht herausfinden, mit wem von #Freifunk sie angeblich gesprochen hatten…
I finally managed to write a LaTeX-Template for generating bulk-letters... happy #GDPR personal data request day, everyone!
So today as a "social experiment" I changed the embedded search field on our intranet page to #duckduckgo just to see who actually uses it, and if they would even notice. For some older staff I theorised this was the only way they would know how to "google" at work.
Took 52 minutes for someone to complain - ""I don't want this duck, I want google"
Github is now a fully owned, proprietary tool of Microsoft.
It's time to decide.
Do we as a community allow our future to depend upon commercial interests of a company that to this day spreads FUD and minimizes our impact when it suits their plans?
Or do we step up, do what we do best and take our code to somewhere created by the us for us and the good of the community?
This isn't about hating Microsoft. It's about loving our own sovereignty and controlling our *own* future.
Please Boost.
Immerhin geht Youtube mit v6-only Internet.
Frankfurt rekonstruiert Altstadt und Architekten drehen frei weil wo kommen wir denn da hin wenn man sich in ner Stadt als Mensch wohl fühlt.
So here's a nice idea (and I have no clue how difficult it would be to implement). Implementing a federated source repository issue tracker frontend! So instead of forcing people creating an account on _my_ system, issues would be tracked across the fediverse.
Interesting problem: GitHub is a centralized hub using a decentralized protocol. So it's pretty easy to migrate away. So I was thinking "Gitea or CGit on my own server as public repo discovery frontend". At first I was thinking "Gitea b/c issue tracker". Then I was thinking "ugh, privacy, I don't want to accumulate other people's data on my server"
to put in more simple terms: tasks that are just visual/repetitive/low thinking tasks, I can do with music on; things like writing code that requires lots of thought, the music distracts me from thinking xux
If you're using bash or zsh and you don't know the ^X^E shortcut, learn it now.
First, ensure you have a valid `EDITOR` environment variable set to your favourite editor (like vim or emacs).
Second, enter some command, but don't hit enter.
Third, use Ctrl+X Ctrl+E and learn that you can use your editor to modify the command before running it in the shell.
This is pretty helpful if you're trying to edit a long command line.
So, jetzt ist es offiziell: Mein Hirn ist für heute durch. Gerade eben versucht Tab-Completion auf ein Passwort anzuwenden.
Waves under grating
Solution 1: Do everthing through the audio server and remove users from the audio group so that they can't access /dev/snd/*, however this cut's off every program/library that doesn't speak pulse.
Solution 2: chmod 700 /bin/use/pulseaudio
FUCK YOU libpulseaudio, your permission to launch the server as a unprivileged user is literally revoked.
So I have a systemwide pulseaudio server, alright. The problem is, when the system goes to sleep, that server process is stopped. Unfortunately this created a racecondition with this stupid autospawn of libpulseaudio, which sees the server go away, to which it reacts by launching a new server in the user session, which will open the audio device and with a certain probability cause powermanagement issues in the driver… thanks a lot (not!), dickhead.
There are two possible solutions:
Anyway, a systemwide pulseaudio server it is, for me. It's dicouraged, but know what: That configuration works far better than a per-user-session (better performance, measureably less power consumption, fewer audio glitches). It's probably because the IPC writes through unix domain sockets actually give the kernel a decent chance in deciding in which order to schedule processed (no practical way, if everything goes though shm and atomics, you'd need condition variables).
The *clean* solution to deal with sleeping and device multiplexing daemons is to make sleep a dedicated runlevel and stop all the problematic services when entering that runlevel… easy peasy.
You can run pulseaudio as a system service. It's highly discouraged, because then you no longer can use shared memory (for security reasons; right decision). But newsflash: You don't really need shared memory. All that zerocopy mumbo jumbo of pulseaudio goes out of the window the moment audio gets mixed.
And as far as I can tell, this particular autospawn behaviour is not configurable. That kind of programming is just rude. But it also causes problems.
One big issue with many ALSA drivers is, that their power management code completely breaks down, if a device is opened by a process when the system goes to sleep. Since there's no "standard" way of signalling processed to release their device filedescriptors, crude hacks like upower exist.
Of course sleeping is just another runlevel…
This brings me to the problem: Because I have to use libpulseaudio I also must have /usr/bin/pulseaudio started. And pulseaudio positively thinks, I'd have ingested all the audiowisdom by the spoonfull and if there's no pulseaudio server running, than it will be spawned by through libpulseaudio if it is not running.
Think about that: If there's only one process running, that for some reason is linked against libpulseaudio that process will spawn the server unconditionally. It doesn't ask.