Public Org Documentation
#+AUTHOR: Colin Powell
#+EMAIL: mailto:colin@onec.me
#+LANGUAGE: en
#+OPTIONS: toc:nil h:4 html-postamble:nil html-preamble:t tex:t f:t
#+OPTIONS: H:2 num:nil toc:t \n:nil @:t ::t |:t ^:nil f:t *:t TeX:t LaTeX:t skip:nil p:nil
#+OPTIONS: prop:("VERSION")
#+HTML_DOCTYPE: <!DOCTYPE html>
#+SETUPFILE: theme-readtheorg-local.setup
There is a joy to being your own master. No one need know how the things you
build work, or why you do the things you do. But then there's everyone else.
The ability to communicate how or why you do things may be one of the most
important and defining factors in human civilization. Together with the ability
to find meaning in a random assortment of events, communication is important.
So why are you here? Why not?! Here you'll find my justifications and process
for the digital world I've created. As with most things freely given, there are
no guarrantees that following any of this will help you rebuild. But maybe
you'll understand a little more why I've done this and build something better.
The impetus for all these services was to divest myself of as much corporate
internet infrastructure as possible. This means services like Github, Slack,
Spotify, Google and Facebook/Twitter had to go. I've made a number of runs at
this in the past, but it's never felt so possible to go it alone as it does
right now. A big part of that is the availability of open source projects that
fill in all the gaps that used to really stand out when ripping out corporate
software from my life. I also have a stable home internet connection and
mostly-always on electricity, which are privileges of my class and education
that allow me to this as well.
Hosting
Chat
Dendrite [Matrix]
Element [Matrix Client]
Prosody [XMPP]
Converstions.js [XMPP Client]
Music
Mopidy
Overview
I use a custom-built docker container to run a personal instance of Mopidy behind Traefik with a custom subdomain. While I've thought about a direct connection out of the container to the host it's running on for music, right now I just have any tracks played piped through an Icecast stream for listening.
The result is actually pretty neat. I can pop up a stream wherever I happen to
be and it's kind of like a low-rent Sonos system.
Mopidy is hooked up to my personal music collection (which isn't very
comprehensive), Spotify, and Soundcloud. I'm a little disappointed that I still
use Spotify, but it's the least evil way I can find to enjoy new music. I do
wish there was a way to more easily compensate musicians I listen to most
directly. But this will suffice.
Resources
- https://github.com/wernight/docker-mopidy
Media
Plex
Editing
Emacs
I made the full time switch to Emacs back in 2016 after being a stalwart vim +
terminal developer since probably 1996 when I first figure out how to actually
quit out of vim. That's a long time to use vim, and not much time to use Emacs.
Naturally, I picked an evil-mode configuration of Emacs when I made the jump. At
first I played with Spacemacs but found it's default installation method of
re-checking all packages on start exhausting. I need my editor to start in less
than 1 second on a reasonable machine. Spacemacs couldn't deliver.
The real nail in the coffin, however, was when I was doing a screenshare with a
fellow developer and Spacemacs pulled a spinning beachball and just froze on me.
That was inexcusable. Trying to reason about which layer did it proved fruitless
and I left on a quixotic adventure to find a new pre-configured version of
evil-mode Emacs that might suit my fancy.
Thankfully I landed on Doom Emacs back in 2017 and there was no going back.
Henck has done a fantastic job balancing customization with stock Emacs such
that commands that need not be over-ridden are not. This is not the
transformation of Emacs into a vim machine. It is a vim-like layer over
traditional Emacs. Thus, I still use M-x an awful lot. And I'm often falling
back to default Emacs keystrokes to do simple things.
Vim
For vim, I keep as much to vanilla vim as possible. There was a great lecture a
while back by Max Cantor [1] about doing 90% of what is usually done with plugins in
vim with vanilla vim. Given that I use a hulking beast of an editor in Emacs for
most of my editing work, it stands to reason that when I do open vim, I expect
it to do so quickly.
Thus, I don't use plugins at all. My vimrc file is really straightforward [2]
and when I need to search for files, I exit vim, fire up ranger and go to town.
This also means that when I'm on a server I haven't been on before I know
exactly what I'm getting when I open vim.
[1] https://invidio.us/watch?v=XA2WjJbmmoM
Search
Searx
I remember dogpile. The Great Midwest Trivia contest encouraged you to cull
answers from all around the internet. A single search engine would not do.
Searx is the modern dogpile, a search engine aggregator that pulls in results
from all over the place. It also, thankfully, obfuscates your searches to sites
that like to track you. So Google, Yahoo and Bing are still accessible, but
hidden behind API calls that can't tailor their response to your search history.
What I lose in result filtering, I gain in transparency over what's on the
internet and knowing that the search engines are not tailoring their response
for what the they think I want. Let me figure out what I think. Let the search
engine show me what it found.
Git
Gitea
Mailinabox (Hosting)
Overview
I had wanted to host my own email for a while. Google is more and more evil
everyday, and the thought of depending on them for communication makes me throw
up in my mouth a little bit. But running your own email server is horrible.
Postfix is one of the least obvious pieces of software I've ever tried to
configure, and the ability to foot-shoot yourself is tremendously high.
Add on to that spam, bouncing, blacklisting and evertyhing else and there had to
be a better way.
Enter, https://mailinabox.email
This software stack is great. With a $5 Digital Ocean VPS I have a secure,
upgradeable and performant personal email server. It has a nice admin interface
so I can easily add new email addresses or domains. Best yet, it uses a DNS glue
configuration to allow me to use my MiB machine as a personal DNS service (see
Traefik above) that updates super fast.
Notmuch (Indexing)
iSync + mSMTP (Receiving + Sending)
Social media
Mastodon
Tusky
Browsing
Qutebrowser
Firefox
I pretty much never use Firefox these days. It tends to suck up resources and
cause lower battery life when I'm not wired.
One unique use case is Zoom meetings. Qutebrowser does not open Zoom links
properly, and it doesn't integrate with GCal. So I still use Firefox for Zoom
meetings. But otherwise, Qutebrowser has replaced it for now.
I may go back in the future.