Show more

Outside of Mastodon, I communicate with others almost exclusively via email; many days, I live in it. Since my MUA (Gnus) is integrated into my editor (Emacs), and my mail is in plain text, it's easy for me to manipulate.

It therefore makes sense for me to use it as a means of aggregating data.

One such example is RSS: I use r2e (rss2email) to gather RSS feeds and convert them to email, which is then sent to my local Dovecot server. I can then read them comfortably, offline.

A reminder to US voters (and spectators) that counting the surge of mail-in ballots will take time in certain states and we are unlikely to have election results tonight.

If I need to access my mail, I do so via SSH, which requires my Nitrokey; my mailserver is inaccessible outside of the box that it's running on. Consequently, I use Gnus via that SSH session; I do not connect to my local IMAP server from my laptop, to limit attack surface a bit further.

This is also out of respect to people I correspond with, since any compromise of my system is a breach of their privacy as well.

I also use fetchmail via POP, so I don't have my mail accessible potentially to attackers on remote servers. But I wait to flush the mail until after I run my backups locally, just to make sure I don't lose any messages.

How I handle my email:

I run a Dovecot server on my home network (inaccessible externally) that I connect to via Gnus. I use fetchmail to pull mail from my personal mailserver (mikegerwitz.com, also running Dovecot), and fencepost.gnu.org.

Mail rules are assigned on mikegerwitz.com if it needs to bounce, via Sieve. Otherwise, I have Sieve rules on my internal mailserver.

My SMTP server at mikegerwitz.com is Postfix. The SMTP server I use depends on my From address.

The Call For Sessions deadline for (the fully-online) #LibrePlanet 2021 is coming up on November 11, and we want YOU to submit a session about how you're empowering users to take full control of their computing: u.fsf.org/359

I use BBDB (Big Brother Database) with Gnus. This creepy-sounding package stores information about contacts. For example, I'll store their mail aliases; IRC handles; software they maintain (especially within GNU); organizations they're a part of; desired gender pronouns; country/state; and other non-sensitive data.

Importantly, though, I want to respect the privacy of individuals, so I added a `.gpg` suffix to my bbdb file so that Emacs encrypts it (using my Nitrokey).

My MUA (email client) is Gnus, which runs under Emacs. I migrated to it from Mutt many years ago because of the level of flexibility it offers.

It also has integration with other important packages. For example, cross-references can be stored using Org mode, which I use frequently in my notes to reference messages and threads.

I've gathered nearly 1 million messages (I subscribe to many lists) over the years, and get many 100s a day, and it manages them well.

I tried to design my personal website to be accommodating to users on slow connections (e.g. Tor, mobile) when rendering CSS. To avoid the page jumping when the CSS file is finally loaded, I generate a small chunk of CSS from the main CSS file, and inline it into the HTML which produces the proper page structure.

mikegerwitz.com/projects/thoug

I don't use fancy, expensive CSS frameworks to do it; just a little bit of awk to grab flagged CSS blocks and sed/tr to slim it down a bit.

Professor Frisby's Mostly Adequate Guide To Functional Programming is an interesting work:

github.com/MostlyAdequate/most

It walks the reader through deriving, through solid intuition, functors; monads; monoids; natural transformations; and other key concepts. It's one of the best derivations of monads that I've personally read.

JS may or may not be your thing, and modern FP libraries use TypeScript, but try to look past that. I enjoyed reading this, having an existing (less formal) FP background.

The source files don't do justice; it's best viewed in Org mode. I also use column view (C-c C-x C-c) for better viewing and quicker toggling of properties for the slides.

Here's a couple of my past talks in Org (you can see it evolve via Git):

mikegerwitz.com/projects/cs4m/

mikegerwitz.com/projects/sapsf

You can see how the document evolves, e.g. as I rehearse each slide, via Git:

mikegerwitz.com/projects/cs4m/

I didn't include my associated time tracking in here (which I kept in a separate file that linked to it) for privacy reasons.

These source files produced the actual slides, using Beamer (LaTeX):

mikegerwitz.com/talks/cs4m.pdf

mikegerwitz.com/talks/sapsf.pd

One of the original reasons I adopted Emacs (after evil-mode was created) was Org mode.

I use it for time tracking; agendas; note taking and organization; recording and graphing of data; preparing, rehearsing, and rendering slides for talks; cross-references to emails (Gnus integration); literate programming; my emacs config; project planning; Kanban; and much more.

Add .gpg to the file and have your notes automatically encrypted by Emacs.

orgmode.org/

I've hit a tipping point with polarization, from politics to technology to every day life. I have no appetite for it anymore. I am so exhausted.

People become so willfully ignorant toward perspectives of those who disagree with them that they live in fantasy worlds that are incompatible with one-another.

I've done much reflection on my own behavior during this time. And I've changed from it. I intend to write about that a lot more in the future, especially with how it impacts my activism.

@johns I'd love to know more about when the new forge is likely to be up! The work to be done on GNU Autoconf lwn.net/SubscriberLink/834682/ includes a lot of patch management, and a more featureful forge would likely help.

I guess now would be a good time get that new FSF forge launched. Not that we won't also have to deal with DMCA-related notices, but I have a feeling our approach will be informed by a different set of values.

My wife and I are installing new flooring, which first involved tearing up what's already there.

First I was horrified by how much dirt was underneath the carpet padding (we have dogs) from ~6y of use.

Then we started tearing up the tongue and groove hardwood under that, which was installed (naildown) in the 1960s, and it too had a ton of dirt underneath it, even in areas with virtually no damage.

Apparently the only way to get a deep clean is to strip down to the subfloor.

Important #LibrePlanet 2021 news: 1) the Call for Sessions deadline has been extended to November 11th, and 2) the conference will be held in March 2021 entirely online, opening it to participation from the entire (libre)planet! u.fsf.org/36e

I primarily use GNU Emacs as my editor, but I've been using Vim for much longer (~15y). I find the keybindings of Vim to be superior for text editing (and so use evil-mode in Emacs), though I will mix Emacs keybindings in when they are more appropriate. I tend to use Vim for quick edits, or when I use heavy macros on large files.

But Emacs is so much more than a text editor, and I use it for many things. That will be the subject of a number of future posts.

The commands `kill` and `pkill` are useful for more than just killing processes---they can send many different signals (see `kill -l`).

For example, I have `pkill -STOP icecat` and `pkill -CONT icecat` as i3 keybindings to pause and resume IceCat (a Firefox derivative), since most of the time I'm just working out of a terminal and don't need wasted battery. (Despite allowing JS only on my self-hosted Mastodon instance, it still uses more CPU than I'd like it to.)

Show more
Mike Gerwitz's Mastodon Instance

Mike Gerwitz's personal Mastodon instance