User:Flexibeast
About me
i've been using Linux since late 1997, with my first distro being RedHat 5.2 ("Apollo"). i subsequently used Mandriva, Ubuntu, Debian, and Void, before moving to Gentoo in late 2021. i've also been using OpenBSD since 6.2, around late 2017; i maintain a couple of OpenBSD servers.
i run Gentoo on my laptop, my primary machine. It's a Dell Latitude 7490, with a Core i7 (8th gen) CPU, Intel UHD graphics, and 32G of memory. Previously i was running Gentoo on an AMD Ryzen 5 3500U laptop, with Radeon Vega Mobile Gfx, and 12G of memory (2G of which was allocated to a Portage TMPDIR).
My system is OpenRC-based, and i currently use Wayfire as my window manager (though in the past i've happily used Sway, i3, Fluxbox, and others). Some of the software i use in my Wayland setup includes:
- Waybar, a status bar.
- Mako, a notification daemon.
- Wofi, a dmenu-style menu provider.
- imv, an image viewer.
i use Emacs as my primary editor - though i regularly use Vim as well - and as my platform for email (mu4e), IRC (ERC), Web bookmark management (Ebuku), etc.
i have an interest in typography and typesetting, and am comfortable writing both LaTeX and roff(7); i'm also actively following the development of Typst.
Documentation
i place a high value on quality documentation, and in particular, want to demystify the standards / specifications / software related to desktops on *n*x-ish systems, e.g. those of freedesktop.org and POSIX, so that users can make informed decisions about whether they want to use them, and implement their own custom usages should they wish to do so.
While using Void, i made a number of contributions to the Void documentation.
Gentoo wiki
My contributions to the Gentoo wiki can be found here.
Some of the pages i've created from scratch include:
Guides
i maintain some Gentoo-specific guides:
- OpenRC user services via s6
- An update function for Gentoo
- A minimal Gentoo kernel for your hardware
- Desktop notifications of emerge progress
- Making man pages usable after switching from man-db to mandoc
as well as a small collection of ICT guides outside of this wiki, including:
- D-Bus: The essentials
- D-Bus and X sessions
- D-Bus reference
- Writing man pages with mdoc(7): a quickstart guide
The s6 ecosystem
i'm the porter and maintainer of mdoc(7) man pages for:
- S6 : s6-man-pages, app-doc/s6-man-pages
- dev-lang/execline : execline-man-pages, app-doc/execline-man-pages
- sys-apps/s6-rc : s6-rc-man-pages, app-doc/s6-rc-man-pages
- sys-apps/s6-linux-init : s6-linux-init-man-pages, app-doc/s6-linux-init-man-pages
- net-misc/s6-networking : s6-networking-man-pages, app-doc/s6-networking-man-pages
- sys-apps/s6-portable-utils : s6-portable-utils-man-pages, app-doc/s6-portable-utils-man-pages
- tipidee : tipidee-man-pages
- shibari : shibari-man-pages
Software
i'm the author of several Emacs Lisp packages, including Ebuku, an Emacs UI for the buku bookmark manager, and pulseaudio-control, an Emacs UI for PulseAudio.
i'm also the author of some small POSIX shell scripts which focus on portability, such as qemu-start, for starting QEMU VMs from the command line, and epub-create, for creating minimal EPUBs. Both are available in the 'flexibeast' overlay.
i'm comfortable with Perl, and as part of my work on the Void Linux documentation, contributed some simple Perl scripts: mdbook-latex, to generate a LaTeX (and thus PDF) version of the Void docs, and mdbook-gemini, to generate a gemtext version.
Other programming languages with which i have at least a basic familiarity include C, Zig, Haskell and Ada.
Bug wrangling
My contributions to bugs.gentoo.org.
Resources for using s6/66
On this wiki
- S6 (or my draft overhaul of this page)
- S6-rc
- S6 and s6-rc-based init system
- Capezotte's "s6 on Gentoo" guide
External to this wiki
Gentoo-oriented resources
- forums.gentoo.org discussion: "From OpenRC to s6: Any tips?"
- alecStewart1's "gentoo-s6-scripts" repo
- Adib Saad's "66tools-overlay" repo (cf. Adib Saad's "66" page)
- architekt's "66tools-overlay" repo
General resources
- How to convert systemd unit files to an s6 installation
- The "S6" page on the Artix wiki
- Artix s6 services
- s6-overlay - s6 init and supervision for Docker images
- Capezotte's zsh completions for s6
- The s6-rc FAQ/recipes page
- The s6-rc 'examples' set of service definition directories
- Dudemanguy's s6-rc user services guide
- Capezotte's bash completions for s6-rc
Some light reading
- "Clang vs. Clang: You're making Clang angry. You wouldn't like Clang when it's angry", by Daniel Bernstein (2024)
It would be interesting to study what percentage of security failures can be partly or entirely attributed to compiler "optimizations".
- "Why Quantum Cryptanalysis is Bollocks", by Peter Gutmann (2024) [PDF of slides]
People really like fancy headline-grabbing (but eminently impractical) things ... Only when you’ve fixed the top ten are you allowed to look at the fancy named attacks on crypto, side-channels, etc
- "I Will F-----g Piledrive You If You Mention AI Again", by Nikhil Suresh (2024) [nb. The word redacted here is not redacted in the article]
Unless you are one of a tiny handful of businesses who know exactly what they're going to use AI for, you do not need AI for anything - or rather, you do not need to do anything to reap the benefits.
- "C and C++ Prioritize Performance over Correctness", by Russ Cox (2023)
The explanatory shift from non-portable to optimizable also seems revealing. As far as I can tell, C89 did not use performance as a justification for any of its undefined behaviors. They were non-portabilities, like signed overflow and null pointer dereferences, or they were outright bugs, like use-after-free. But now experts like Chris Lattner and Hans Boehm point to optimization potential, not portability, as justification for undefined behaviors.
- "The Empty Hall Of Smiling Assassins", by Nikhil Suresh (2023)
I've attended my first two large tech conferences. One was hosted by a trendy database vendor, and the other was a general tech conference in a non-hub that no one should know about. Despite some highlights, I would describe both experiences as "grotesque", "troubling", and "oily".
- "Discord, or the Death of Lore", by Jason Scott (2023)
There are more Discords than you realize, and more lore pouring into them than anyone can truly comprehend. They are not the exclusive spigots of lore but they’re a major pipeline, a notable artery on Knowledge’s Heart that we would definitely notice if, for whatever reason, it was clogged with Mission Shift or New Opportunities cutting it off.
- "M----rf-----s need package management", by Michael Orlitzky (2015) [nb. The word redacted here is not redacted in the article]
If I've made any mistakes in the table, it's not because I secretly hate your package manager and want to make it look bad: I overtly hate your package manager, and it is bad.
- "A guide to undefined behaviour in C and C++, Part 2", by John Regehr (2010)
It is basically evil to make certain program actions wrong, but to not give developers any way to tell whether or not their code performs these actions and, if so, where.