Using alpine with Fastmail

I spent a bit of time the other day looking into using the terminal email client alpine with Fastmail. It wasn’t too hard, and things are working really well. There are basically four steps. (I’m using the default alpine provided by brew, on Mac OS.)

  1. Get an app password from Fastmail
  2. Set up IMAP, SMTP, and some default folders in alpine
  3. Set up a collection so you have access to your other Fastmail folders
  4. Create a basic mailcap so you can use Mac OS’ open command for attachments, and configure URL viewers

Get an app password from Fastmail

  1. In the Fastmail interface, open the dropdown that by default says “mail”, and choose “Settings”
  2. In “Settings”, select “Password & Security”
  3. Select “Manage” next to “App Passwords”. Enter your password, and generate a new app password
  4. I selected “Custom” for name, and entered “alpine”. For access, I selected “Mail”, giving me IMAP and SMTP
  5. Keep that password somewhere safe, but where you can find it. You’re going to be entering/pasting it often

Set up IMAP, SMTP, and default folders

  • In alpine, open the config by pressing S, then C from the main menu
  • For SMTP, enter smtp.fastmail.com:465/user=YOURUSERNAME/ssl
  • For Inbox Path, enter {imap.fastmail.com:993/user=YOURUSERNAME/ssl}Inbox
  • For Default Fcc, enter {imap.fastmail.com:993/user=YOURUSERNAME/ssl}Sent
  • For Default Saved Message Folder, enter {imap.fastmail.com:993/user=YOURUSERNAME/ssl}Archive
  • For Postponed Folder, enter {imap.fastmail.com:993/user=YOURUSERNAME/ssl}Drafts
  • For Trash Folder, enter {imap.fastmail.com:993/user=YOURUSERNAME/ssl}Trash
  • Exit and save your settings. You may need to restart alpine

Set up a collection list

  • From the main menu, edit collection lists by pressing S, then L
  • Enter Fastmail as your nickname
  • For the server, enter imap.fastmail.com:993/user=YOURUSERNAME/ssl
  • You will now be able to view all your folders from the main menu folder list

Create a basic mailcap and configure URL viewers

  • From the main menu, edit your config by pressing S, then C
  • Find (W for Whereis) “Enable Message View URL Links“, and enable it
  • Find “URL-Viewers“, and enter /usr/bin/open _URL_ to allow alpine to use the open command for inline URLs
  • Find “Mailcap Search Path“, and enter ~/.mailcap
  • Exit alpine, and create the file ~/.mailcap Into that file, paste the following:
application/*; /usr/bin/open %s
audio/*; /usr/bin/open %s
image/*; /usr/bin/open %s
text/*; /usr/bin/open %s
video/*; /usr/bin/open %s

This will allow you to use Mac OS’ default file handling applications for the majority of attachments you’ll come across.

One more point: you may find that your email address is funny. You can fix that by adding From: "Your Name" <your@email.com> to the custom-headers field.

Mac specifics for this post came from https://www.madboa.com/geek/pine-macosx/.

I’m starting a depth year

Judging by the volume of posts I’ve seen on the topic, a lot of people are becoming frustrated by the rate of churn on internet technologies. Not only are new things being introduced all the time, but established technologies are evolving so rapidly, and increasingly introducing breaking changes between versions. I’m certainly feeling it. I’m also noticing diminishing returns in staying on top of all these changes. Particularly since in the work that I do I am mostly working with a few established technologies. Much of the new hotness is only peripherally related to what I am asked to produce. Trying to keep up is time consuming, stressful, and ultimately unnecessary. So I have decided to jump on a two year old trend, and am declaring this a depth year (in my case, it’s a depth school year, since I’m starting it at the same time as my daughter is beginning school.)

What does this mean?

I am going to focus entirely on things that I know will add value to my work. I am not buying any new books, courses, tools. I am not subscribing to any new newsletters, or following any new sites. Instead I’m going to work through the backlog of resources I’ve already accrued. I am going to work to identify the stuff that is core to my work–the stuff I’m called on to do regularly–and just get better at that. At this time, that’s HTML/CSS (and SCSS), JavaScript, WordPress, and Linux server administration. I also think it’s really handy to know your tools, so I’ll be spending time learning how to better use Visual Studio Code, and Python.

That already sounds like too much

When you break it down like that, it sounds like so much. If I only had an hour a day to spend on improving my abilities, and I worked seven days a week, I’d only have one hour a week for each thing. I won’t be working like that; this is just an illustration. And some things won’t require as much focus (HTML, CSS, VS Code) as others (WordPress, Linux). But you can see how things add up. And then on top of learning you have to stack paying work, plus life.

What I’m going to be doing

WordPress has seen significant changes in the past few years. I haven’t done any theme development from scratch since the classic editor was deprecated in favour of Gutenberg. In addition, I’m seeing more interest in working with these comprehensive page builders like Divi and Elementor. I find those tools frustrating and restrictive, but they’re really popular, so I think there’s just something I’m not getting.

My HTML and CSS are very strong, but there’s always newer and better. I haven’t delved much intro grid layout, but it seems like it’s finally time. I also really want to bone up on accessibility. I’ve seen some amazing wizardry in responsive layouts; that’s somewhere I can probably improve.

I have no specific plan for JavaScript yet. I’ve done a bit of Angular, a bit of React. I still believe very strongly that JQuery has a place, even as vanilla JS has started to cover a lot more of the syntactic sugar that made JQuery a near necessity in the first place.

For Linux, I need to be better at bringing up a Ubuntu server ready to serve WordPress. This includes all the extra PHP libraries I tend to forget about, as well as the act of securing the server itself. I would also like to move away from VPS snapshots as my backup method. It feels a bit fragile.

Like JavaScript, I have no real plan for python. I use it for a lot of simple tasks like generating tables and lists, or converting between formats. I started using python mostly by copying/pasting and modifying existing scripts, so I should do a tutorial that takes me from first principles.

I have done a lot of editor and IDE hopping. I have stuck with Visual Studio pretty much since launch, though. I’ve used it more than any other editor save BBEdit, and the now defunct Coda and TextMate. I like it enough, and am confident enough in its longevity, that I think it is time to dig more into being efficient with it.

Where I go from here

None of this is set in stone, of course. If I’m working on something, and it becomes apparent that I need to shift focus, get a new tool, etc., then I’ll make that change. I will be very deliberate about what I add on or let in. Where possible, I’ll share my learnings here. There is also a more personal component to this depth year that I’ll be expanding on elsewhere.

April/May’s reading/watching/playing

As a result of travel, a busy entertaining schedule, and some work stuff, I’m way behind. On everything.

In March and April I watched a number of Marvel films. I’m well into “Phase Two” now, having watched Captain America: Winter Soldier, and Ant-Man. I’ve even dipped a toe into “Phase Three”, with the second Guardians of the Galaxy.

I finished Meditation for Fidgety Sceptics. I recommend it. I got the audio book, and admit I had to relisten to a few passages, but I’d recommend going that way. If you’re already familiar with mindfulness meditation, it’s not going to really teach you anything new. It’s a good primer, though, and the central message is a good one: just start, start again if you mess up, and even a little bit helps.

Dead Space 3 is still happening. It’s too stressful, given that I mostly game just before bed. Instead, I’d get all lazy and play Destiny 2.

Currently reading: Annihilation (on my lovely new Kobo Aura, which replaced my refurbished second-gen Kobo which literally fell apart)
Currently watching: The Good Place