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