README.TXT
------------------------------------------------------------------------
I'm writing this document so I can point people to it that ask me for
advice on a selection of technical and social topics. If I pointed you
here, you most likely asked me a question, which I don't like to answer,
because supporting you would mean acting against my believes.
Or maybe just because you asked me something that's answered below and
I'm too lazy to type/explain it again.
"Every program should do one thing and do it right."
https://en.wikipedia.org/wiki/Unix_philosophy
ABOUT OPERATING SYSTEMS
========================================================================
I prefer an OS that can be configured in a minimalistic and mostly
static way. I don't want the OS to do anything without my explicit
order. I also prefer text interfaces. They can be scripted and they're
more expressive than any GUI could ever be. I prefer simple and elegant
designed solutions. Of course it must be open source and free. I don't
support binary drivers. I unwillingly tolerate firmware blobs.
ABOUT DESKTOP ENVIRONMENTS / WINDOW MANAGER
========================================================================
Desktop Environments are the natural enemy to everything I value in an
operating system. They try to automate everything to a point where the
user has to rely on these automatisms to work, without being able to
understand/fix/debug these functions. This leads to people only knowing
how to do something in a click sequence in their desktop environment
instead of learning the few lines they would have to add to a config
file. This poisons the Internet with Desktop Environment specific
Solutions that are cumbersome and unnecessary and make new users
struggle.
I prefer tiling window manager. I3 and dwm are a good choice. But there
are many other good WMs out there: Cwm, icewm, fvwm, bspwm, xmonad,
awesome, even the good old windowmaker has some charme. The important
part is, that the window manager is going out of the way. It's there to
manage windows, and it shall do this good. Nothing else. Once the window
manager offers system configuration UIs, you're in the area of desktop
environments, which are crap and should die.
ABOUT EMAIL
========================================================================
Don't use gmail. Encrypt your mails with GPG or SMIME. Send text-only
mails (no HTML). Use a proper mail client (claws, mutt, gnus...). If you
can't, at least send mails with a html part that can easily be parsed
with lynx/w3m etc. (Color, Bold, Italic, Numbering/Bullets are okay.
Tables, inline images, divs etc. are not.)
ABOUT CHAT / MESSENGER
========================================================================
For synchronous text communication, I prefer IRC or XMPP. Both can be
encrypted with OTR or PGP. I am currently using Telegram with people
that are less technically knowledgable. I will _not_ use Whatsapp,
Facebook or any other centralized tool operated by a company whos main
business is adtech, targeting, data-harvesting or related. I used
Threema/Signal before, but stopped due to low user acceptance (Signal)
and missing multi device capabilities (Threema).
ABOUT THE WORLD WIDE WEB
========================================================================
The web sucks. It has evolved from a space where people can share their
ideas and interact with each other to a marketing platform that
limits users in their creativity. The web would have been better
without JavaScript and other client side rendering solutions that allow
companies to waste your computing power and compromise your device. I
love hand crafted websites because none is like the other. Hand crafted
means writing your own HTML and CSS. I'm tired of looking at yet another
$framework with $theme.
If you're looking for a challenge: Don't express your skill with complex
JavaScript code. I'm much more impressed if you build fast and beautiful
looking websites _without_ JavaScript.
ABOUT NOTEBOOK / LAPTOP
========================================================================
I prefer small/portable laptops that are durable, compatible,
repairable, upgradable, with a navpoint (I don't care for touchpads) and
a good standard layout keyboard as well as a proper network port.
Currently, this is only available in older Thinkpad Laptops. If a new
feature makes the laptop less durable, I don't want it. If it decreases
tthe typing experience, I don't want it. I tried HP, Toshiba, Dell,
Apple, MSI and Acer. While Dell is probably closest in terms of quality,
Lenovo is still the best (even though they're trying hard to become
second). Once System76 or Purism add a navpoint to their laptops I'm
going to try those. Since Apple has decided to add a propritary
"Security Chip" that does prevent the free OS choice, they're no longer
anything I would consider buying. Also, I don't know anything about
where to get the fastest and biggest CPU or GPU for the buck.
ABOUT HARDWARE
========================================================================
I hope opensource hardware will become the norm at some point in future.
I'm terrified by all the buggy, intransparent firmware that's running
below the OS (uefi/bios/me/ipmi) or even custom "security" chips (Apple
A). I support coreboot/libreboot, opensource hardware and tools that
free hardware from closed source components (intel me cleaner, open-
ipmi).
ABOUT WEB SERVICES (CLOUD SERVICES)
========================================================================
I use cloud services only when I can use them in a secure way. For
example uploading encrypted files to dropbox. Everything else I selfhost
or roll my own solution.
ABOUT SOCIAL MEDIA
========================================================================
Everything that's self-hosted is okay. However most modern social media
platforms like mastodon, matrix/synapse, diaspora etc. are build in
overly complicated ways and I don't like to host service that are hard
to control with a high number of dependencies.
A notable exception is "honk", which is a slim ActivityPub server which
won't cook your CPU. You can find my social media activities here:
- RSS: https://honk.codevoid.de/rss
- Web: https://honk.codevoid.de/u/sh
- ActivityPub Handle: @sh@honk.codevoid.de (can be added on mastodon or
any other ActivityPub service)
EDITOR
========================================================================
I use vim (bare and without python, ruby, lua, gtk support) or vi. While
I like emacs in general, it's startup time is hilarious and I need one
editor for everything that starts in less than 300ms (mg doesn't quite
cut it for me in terms of features).
PROGRAMMING LANGUAGES
========================================================================
I use POSIX Sh, Perl, C. If that is not enough I add Lua or use C++. I
stay away from languages with own package managers that connect to the
Internet. This is not secure, not future proof and does not allow OS
specific patching. I'm watching GO and Rust but would only ever use
tthem without the package manager functionality and stick to OS provided
libraries. The same applies to Python/Ruby (which I try to avoid). Under
no circumstances will I tolerate NodeJS on my system.
To be continued as needed...
# Changelog:
# * 2019-06-11: Created
# * 2019-08-24: Enhanced Laptop, corrected typos
# * 2019-09-02: Added Hardware, Programming Languages, corrected typos
# * 2019-10-17: Added honk to social media. Added to Email/Chat
# * 2019-11-26: Corrected more typos