Alejandro Erickson
Software Developer at Copperleaf Technologies
flickr/ geoburst/ youtube/ instructables/ facebook/ linkedin/

A few years ago I made my PhD in to a pen-and-paper puzzle book. Here it is, in full. Contact me if you want it in pdf format.

Complete the puzzles by deciding which grid-squares to cover with each

For each puzzle you are given some tiles and a grid. Each tile can only be placed in a certain row or column, and no four tiles are allowed to meet. It’s challenging but the whole book is doable. Good luck!

As I prepare for the most important job-search of my career thus far, I am faced with the problem of organising all the directories and files that will factor into it. There are versioned copies of my CV and cover letters, old applications, reference letters and student evaluations, advice and leads from other people, and even shell scripts to help set-up new application directories.

With all this stuff floating in disarray around my Job Search directory, I am in danger of being bogged down and distracted with managing it when the time comes to build specific applications.

Organisation and automation lets me focus on the job applications

My technical requirements are as follows:

  • Versioned CV, résumé, cover letter.
  • New job prospects can be added and categorised efficiently.
  • Records of my work and reference letters are readily accessible.

The directory structure shown below suits my needs.

   - prospects (job prospects and applications. 
       dir name format for each job 
       <deadline in iso date format>-<title> or open-<title>)
     - interested
       - 2016-12-21-example-title
         - file:
         - submitted-materials
     - submitted
     - in-progress
     - not-interested
   - sandbox
   - file:
     - leads, notes, todos, etc
   - meta-resources (such as scripts and CV styles I'm trying out)
   - cv-git (résumé, CV, publication list and other long-term curated
     - cl (cover letters for each position.)
       - file: EricksonCL-example-title.tex
   - records (records and reviews of my work and impact)
     - reference letters
     - student evaluations
   - archive
     - prospects-pre-2016 (and similarly named directories)
       - uncategorised
       - interested
       - submitted
       - in-progress
       - not-interested

Most of this only needs to be created once, or once in a while, but I would like to automate the creation of a new directory ready to start editing résumé when I come across an interesting job. The barrier to starting a job application needs to be as low as possible. I want to pass the job’s deadline and title to a script and immediately add a new directory structure to prospect/.

Here is a bash script that does that for me when I call it from the root job-search directory.

ARGUMENTS="<application deadline> <job prospect title>"
if [ $# -ne 2 ] || [ $1 = "help" ] || [ $1 = "h" ] || \
       [ $1 = "-h" ] || [ $1 = "--help" ]
    echo ""
    cat <<EOF
Arguments: ${ARGUMENTS}
This script:
Creates the directory './prospects/<application deadline>-<job prospect title>'
Creates the directory './prospects/<application deadline>-<job prospect title>/resources'
Creates the directory './prospects/<application deadline>-<job prospect title>/submitted-materials'
Creates './prospects/<application deadline>-<job prospect title>/'
Creates './cv-git/cl/EricksonCL-<job prospect title>.tex'
Date format example 2016-12-31
<job prospect title> should contain only alpha-numeric characters or '-'

# Check for illegal characters
if ! [[ ${1}-${2} =~ $re ]] ; then
    echo Arguments given: ${1}-${2}
    echo "Invalid characters in arguments.  See ${0} help"

echo ${1}-${2}

if [ -d prospects/${1}-${2} ]; then
    echo "Directory exists, exiting"
    exit 1

if [ -f cv-git/cl/EricksonCL-${2}.tex ]; then
    echo "Cover letter file exists, exiting"
    exit 1

mkdir -pv prospects/${1}-${2}/resources
mkdir -pv prospects/${1}-${2}/submitted-materials
touch prospects/${1}-${2}/
touch cv-git/cl/EricksonCL-${2}.tex

echo Completed successfully
if hash tree 2>/dev/null; then
    echo "Created:"
    tree prospects/${1}-${2}

So how do I organise cv-git itself? That will have to wait for another post, but I’ll give a hint: My résumé is composed in markdown.

Update: I no longer branch my git repository for each job. The post has been updated

My most popular Youtube video, from 2011, now has over half a million views. It is a how-to video about how to dismantle a pallet without splitting it, without special tools, and recover the nails, and as far as I know, no one else’s method does all of these things.

It’s not without controversy though. Over the years I have enjoyed watching the comments sway back and forth between positive and negative. Even as I watch my 28-year-old self humping that cement block up and down I think, “there is no way I would do that now”. Here are some of my favourite comments, as people argue about whether or not it should be done this way.

ghostlymoron Thats a great tip! I’ve wrecked so many useful bits of wood over the years. Some pallets are nailed with ridged nails - these are particulary resistant.

galanie Great idea! And you really dismantle it rather than cutting it into toothpicks like i see too many people here doing.

Edward Roberts Physics at work… well done. If you were in my class at the university you would have gotten an A……. :)

alan30189 You are going to wear your ass out lifting that heavy block. Better get a 5lb hand sledge and build a rig at waist level, then using your block of wood, knock the slats off the frame. Ten times quicker as well.

e smith Too much lifting bro. 

SUQUORO This is a perfect example of “work smarter, not harder”. Thanks.

Kevin Smith You are doing it completely wrong!!!!! you should get the wife to do the concrete block throwing!

MLTomson I don’t know why… but I get the mental image/picture in my brain of a monkey tearing apart a container in order try and get at his banana that is hidden inside. How, is by using simple ordinary objects found around within his environment. It doesn’t necessarily need to be a banana hidden inside, perhaps wood termites or grubs?

jacinta brooks Buy a sledgehammer caveman

Oh!sama This is actually genius, even damaged wood could be salvaged this way and you get free nails.

Kenneth E Hockenberry Why hammer the nails out… I mean you could drop bricks on them…

nekbiodieselworks what are you building?

What am I building indeed? I used the wood in this here kitchen shelf that I made for my then-girlfriend and now wife!

Pallet Shelf

As I prepared to move to the UK three years ago, there was one thing I knew for certain: It is not (yet) a coffee culture. Much less so is the post-industrial wasteland that I have moved to. So, being the coffee enthusiast that I am, I bought a nice espresso machine to ensure my family’s survival.

To be fair, the UK is a diverse place, with many serious coffee spots. I have had wonderful coffee at Brew Lab , Takk , North Tea Power , and Quarter Horse Coffee . The best espresso shot I have ever had was a Kenya that tasted like fresh garden blueberries, at Artisan Roast , in Edinburgh. But I don’t live in those places. I live near Newcastle Upon Tyne, in a small coal mining village with no mine, and there is one glimmering Beacon of light that keeps the dream of bringing a true coffee shop culture to this corner of England alive. It is Flat Cap Joe’s coffee shop.

This post is about Kickstarting Flat Caps’ second shop, but let me explain what I mean by “not a coffee culture”. I have never seen a coffee shop open past 7:30pm, and I’m checking the local Starbucks’ hours as I write this. At least one specialty coffee shop in Newcastle closes at 3:30pm on Saturdays, and Flat Whites, in Durham, doesn’t open at all on Mondays. On Mondays! Certain Starbucks shut down their filter coffee machines before 5 and then serve americanos instead, because there aren’t enough customers to keep it fresh. And if you think you live in a UK city with a good coffee culture, count the number of times you hear a foreign accent at the specialty coffee shops; you probably have a bias in your sample of coffee lovers.

Flat Caps is owned and operated by Joe Meagher, who displays a collection of Barista Championship trophies at his service counter. Below is an image that I stole off his website without permission.

Flat Cap Joe

Joe bootstrapped his shop about 6 years ago with a bit of money from his former job in banking, and has made a serious oasis of coffee in downtown Newcastle. The best coffee in Newcastle is found descending a spiral staircase to the basement of a shop full of esoteric, spiritual trinkets. The quiet, friendly atmosphere, away from the business of the major shopping promenade above, make it the perfect getaway. But greater things can be done when your opening hours are not controlled by a trinket shop, and your outside visibility isn’t limited to a sign the size of a computer monitor.

It’s time for Flat Caps to open a second shop

If you are a coffee evangelist, you can help spread the message in this dark land because Joe is crowd-sourcing the initial funding on Kickstarter!

Back up Flat Caps’s Kickstarter Campaign today. You’ll feel good because you helped expand the reach of specialty coffee beyond its current borders, and you helped a hard-working man who left banking to do something interesting and rewarding, and to give back to his home-town community.

I backed Flat Caps, and I won’t even be in the UK by the time it opens. Coffee matters that much to me.

Try Spacemacs.

If you only take one thing away from this post, that’s it. No matter whether you are Emacs, Vim, or you hate these old fashioned editors with terrible defaults, you must try Spacemacs.

Spacemacs is a curated initialisation directory for Emacs. Get Emacs at least version 24.4, and then get Spacemacs. Back up your ~/.emacs.d directory if you have one, and rename the Spacemacs directory to ~/.emacs.d. Open Emacs and follow the prompts. Choose between Emacs and Vim bindings when it asks you and Spacemacs will bootstrap itself and download the packages necessary to complete the installation. You can always change back to regular Emacs by swapping Spacemacs ~/.emacs.d with the one you backed up.

Why am I so excited about Spacemacs?

In short, Spacemacs is Emacs with not only a good set of default packages and key bindings, including Vim-like modal editing, its integrated “command centre” (my own term) continuously shows you the key bindings you need to see. When I press the space bar, a dialog instantly appears below and offers some command categories, like windows, files, or buffers. If I press “b” for buffers, the choices are narrowed to that category, as in the picture below.

Spacemacs Command Centre

In just a few days of using Spacemacs I feel like I have benefited from intensive Spacemacs training, without even the pain of doing a tutorial (granted, I have a working knowledge of Emacs and Vim). Each time I open the Command Centre I feel like I discover little gems. It has improved my work-flow so much that I have time to write this blog post!

Instead of spending hours sifting through GitHub pages and Elpa packages, trying to discern whether I’m (a) looking at the best Emacs package for the job, (b) whether the package is actively maintained, (c) whether or not I’m building my customisations around a package that will die soon; and, (d) how to set good defaults for the package, the Spacemacs expert hive-mind has done all that for the vast majority of packages that I use.

Veteran Emacsers and Vimmers alike are all but tossing years worth of customisations in favour of Spacemacs’ defaults, plus you can still integrate them in a “layer”.

The success of Spacemacs is founded upon three packages: Evil-mode, Helm, and Company. For the uninitiated, that’s Vim emulation, fuzzy searching, and an auto-completion engine. These are the modes that begin to turn a basic text editor into a modern and powerful programmer’s light-sabre.

Seriously go try Spacemacs.

My journey to Spacemacs

My degrees are in Computer Science and Mathematics, for which I wrote theses in LaTeX, and as a postdoc at Durham University I do a lot of programming in C and Python as well. I started with Emacs and AUCTeX about 5 years ago, slowly building up my configuration file and environment for LaTeX, Maple, PHP, Sage, Python, C, and so on, a few lines at a time.

With all the programming I have been doing I got Emacs pinky; an RSI caused by the awkward reaching my fingers did to hit Emacs’ famously complex key commands. I solved this problem in April 2016 by installing Evil-mode, which simulates Vim modal-editing (i.e., a mode for commands, a mode for movements, a mode for inserting text, etc., which minimises hand-contortions and finger-stretching) and I bought a TypeMatrix Keyboard and a trackball mouse. Truly life-changing kit, all of this.

But with all the packages I had installed, Emacs eventually became unuseably laggy. I had just filled my init file with every package I fancied, like a noob, and Emacs was stuck rendering whole pages just to display line numbers, and parsing entire C-projects just to provide auto-completion. Being near a deadline I temporarily jumped ship to Atom (a good backup plan) but soon I found the time to eliminate the packages that were slowing Emacs down.

As I sifted around for the latest and best packages, plus a way of bootstrapping my Emacs installation in order to port it to my other computers and have it download packages automatically, I decided to try Spacemacs. Not only was I astounded to find Spacemacs does exactly this, I realised I was just doing an amateur job putting together many of the same packages that Spacemacs assembles perfectly!

And so, here I am, very happy with Spacemacs