Farewell Scott Hutchison

News rolled in today that Scott Hutchison committed suicide earlier this week. He often sang about depression and many of Frightened Rabbit’s songs are openly full of his pain. But they can also be tremendously uplifting and joyous. This anthemic melancholy touched and sustained me at moments when I have been struggling myself. I am incredibly sad that he was suffering so much that he decided he couldn’t carry on.

On Tuesday, shortly before he was last seen, he wrote:

Be so good to everyone you love. It’s not a given. I’m so annoyed that it’s not. I didn’t live by that standard and it kills me. Please, hug your loved ones.

And then, twenty minutes later:

I’m away now. Thanks.

The spectre of suicide has been far too close for comfort in our family recently. I have given Alex and Fiona big awkward, tearful hugs, because they’re the only ones I happen to have close by right now.

In the song “Floating In The Forth”, he sings “I think I’ll save suicide for another year.” I’m so sorry that this year, he didn’t. My heart goes out to his family and friends.

When it’s all gone
Something carries on
And it’s not morbid at all
Just when nature’s had enough of you

When my blood stops
Someone else’s will have not
When my head rolls off
Someone else’s will turn
And while I’m alive
I’ll make tiny changes to earth

Twiskemolen repair

In October 2016 a storm blew through and ripped the top off of our local windmill, the Twiskemolen. Abi and I walked past the windmill last week, and we saw the new crown sitting on the ground next to it, and a sign up nearby saying that the project was due for completion in May, so we knew it was going to be fixed soon. On my way back from driving Fiona to school this morning I spotted the top of a large crane in the distance. When I got home, I grabbed my camera and walked into het Twiske. I was too late to see them hoisting the new crown into place, but I was in time to see the second blade being mounted.

men watching twiske molen
I wasn’t the only one watching
Crane lifting the second blade

Dropping the second blade into position:

twiskemolen second blade dropping into position

twiskemolen second blade dropping into position

twiskemolen second blade dropping into position

Percussive adjustments:

twiskemolen hammering the second blade tight

twiskemolen hammering the second blade tight

For reference, this is what the wind did to the old blade. I think they’re planning to keep it on site as a memento.

twiskemolen blade bent by the force of the 2016 storm

twiskemolen blade bent by the force of the 2016 storm

Old and new together:

Twiskemolen with new blades mounted, and old blade in foreground
Oud en nieuw

I took some video of the blade being moved into place as well:

Mixed media, Sunday 6 May 2018


⭐️Travelers I love a good time travel story. Like in 12 Monkeys and Continuum, we have heroes who travel back to our current time to prevent a disaster in the future. The gimmick of Travelers is that the future can send back human consciousnesses to overwrite people in the past. For ethical reasons, they only overwrite hosts in the moments before the historical record shows they died anyway. Thus, a lot of the show is about these people from the future picking up the lives of the people they replaced. And likewise, their friends and lovers dealing with abrupt personality changes in the people they care for. For a sci-fi TV show, the special effects are almost non-existent. Shots where travelers arrive in a new host are acted rather than digitally added. And it doesn’t just go for prevent-the-event-of-the-week episodic storytelling, either. The first season had a couple of large arcs, but it felt like the writers were still finding their feet with the characters, and how the actors inhabited them. In the second season the team and their entourage evolve significantly, with some mighty gut punches along the way. Netflix has renewed the show for a third season, and I’m eager to see what comes next.

Brooklyn Nine-Nine season 4 continues to be fun.


  • ⭐️ A Quiet Place I don’t think I’ve ever been in a cinema so full where everyone was so quiet. The film may have some gaping plot holes, but I was so wrapped up in the hushed tension of the film that they didn’t bother me. The way it deploys different types of silence is simply amazing.
  • Annihilation is a deeply weird and disturbing film. Kind of a cross between The Thing and 2001. It’s very good, but I don’t think I’m in a hurry to watch it again.
  • Red Eye: short, simple, and effective thriller.
  • Ready Player One: Hmm. I really enjoyed the book when I read it in 2012. To a person of a certain generation, with a certain background in videogames and other cultural markers, it hits all the buttons. And until the film appeared I hadn’t gone back to examine that aspect: that by speaking strongly to one group, it is tone-deaf, exclusionary, and deeply troublesome to people without the right background. Read Laura Hudson’s article “If you want to know how we ended up in a cyber dystopia, read Ready Player One to see what I mean. As for the film, I just found it bland and joyless. And no Rush songs at all? C’mon.
  • Tower Heist: Moderately entertaining heist caper. Funny moments, but not the kind of splashy comedy you might expect.
  • ⭐️ Avengers: Infinity War: Thanos clearly hasn’t internalized the concept of exponential growth yet, because getting rid of 50% of a population isn’t going to be as effective as he thinks it will be. Oh well. But other than that: whoo.
  • 💩 Anon: Dull. Duuuuulll. The production team has clearly thought about how the “Mind’s Eye” technology would affect the world. It shows in things like how office workers sit around at desks apparently staring into space rather than doing “work” as we understand it now. Streets and corridors seem empty, because ubiquitous AR/VR must have reduced the need for people to leave their apartments. The clinically black and white AR overlays and brutalist set design reinforce the barren sterility of this new world, and the camera work and editing leave the characters isolated in their own shots even when they’re surrounded by other people. And the actors were obviously directed to dial down their emotions to match, even when they’re in the middle several completely gratuitous sex scenes. The outcome is a film that is wholly intentionally, unapologetically dull. At that, it was a huge success.

Games: I finished ⭐️ Alto’s Adventure and ⭐️ Alto’s Odyssey! As in, unlocked all characters, and completed all goals and achievements. I think I preferred the simplicity of Adventure.


  • ⭐️ Bryant and May: The Bleeding Heart by Christopher Fowler is another satisfying entry in the series.
  • ⭐️ The Wild Storm by Warren Ellis and Jon Davis-Hunt. I have not read any of the original Wild Storm stories, so this is all new to me. Loved it.
  • New Avengers vol 1: Everything Dies by Jonathan Hickman and Steve Epting: left me entirely cold.
  • ⭐️ Squirrel Girl vol 7: I’ve been waiting for a squirrel like you by Erica Henderson, Ryan North, and Rico Renzi. Sad that Erica Handerson will be leaving the book, but I’m enjoying the heck out of this while it runs.
  • Ms Marvel vol 8: Mecca by G. Willow Wilson, Marco Failla, Diego Olortegui, et al.: good. Great Lockjaw moment.


⭐️Errthang by Al Letson and Willie Evans Jr. is the latest show to be featured on Radiotopia’s Showcase, and I’m enjoying it a lot. Emotionally open and vulnerable stories about race, parenthood, masculinity, and everything else Al wants to talk about.

⭐️ = would gladly re-watch/read/listen
🤔 = there’s something interesting there, but I have mixed feelings about it

Edam walk, Sunday 6 May 2018

Still water in ‘t Twiske

It has been very nice weather here for the last few days. I got up early this morning and took a walk to Edam: Twiske – Den Ilp – Ilpendam – Purmer – Edam. I had originally planned to walk up the Oosterweg for the last stretch, but the route map at the crossing between Oosterweg and Monnickedammerweg made it look like there was a walking path along the west bank of the water a little further east. Well, sort of. It’s really just slightly flattened grass along the dyke that you have to share with a lot of sheep. And their byproducts. Having to lift my feet up high to stop getting tangled in the grass was slow and tiring. My walking shoes are wonderfully breathable but not waterproof at all, so I was glad that this came at the end of the walk.

Pylon and cables against the sky

My tracker says the route I took was 20.65km, and I did it in 4h 6m. Not a bad pace at all, considering that last stretch, and all the breaks I took for photos along the way. I had set out shortly before 07:00. When I got to Edam I wandered around for a bit, and then took the bus back (via Amsterdam CS). Alex and Fiona weren’t even up yet ?.

Song Exploder: On Top Of The World

Here’s a lesson I should have learned by now: even though I myself reluctant to listen to a new episode of Hrishikesh Hirway’s podcast Song Exploder — because I don’t know the artist being featured, or because I do know them and don’t generally find their music to my taste — I always find the show engaging and find myself fascinated with the artist’s process of constructing a song. And sometimes I find a new favourite song.

This week, “On Top Of The World” by Kimbra:


When it comes to my online lifestyle, I’m quite stodgy and old-fashioned. I like having a domain that is the canonical digital representation of me. I like running software on my own server, so that I’m in control of my own content. I prefer writing here, and having the words copied to Twitter rather than the other way around. Over the years I’ve been guilty of tweaking the URL structure here on sunpig.com (cool URIs don’t change), but I have tried to keep redirects in place for old content. The last change was four years ago when I moved from Movable Type to WordPress and settled on the sunpig.com/martin/year/month/day/slug/ format, dropping the “.html” suffix. I’m quite particular about my URLs.

And I really like WordPress! But compared to the ease of putting up a Tweet, it has always felt overcomplicated. Now that I have a lovely new (actually, not that new any more, but it still feels new) iPhone X that is capable of great feats of computing, I’ve been wanting to post to my blog more often, and more casually. And while there is a WordPress app for iOS, the image upload workflow had me stymied for a long time.

See, I don’t use WordPress’s built-in image uploading capabilities, because it puts uploaded images in the wrong place. By default, WordPress puts them under /.../wordpress/wp-content/uploads/sites/$SITE_ID/$YEAR/$MONTH/. I don’t like storing CMS content in the directory structure of the application itself. It feels like I’m tying myself to the application, and I hate that. (I also still write my HTML by hand, rather than using WordPress’s visual editor. Like I said, stodgy and old-fashioned. It’s also a position of privilege, and I’m aware of that.) Uploaded images should be served from https://sunpig.com/martin/images/$YEAR/, and I want them stored on disk in a location that maps closely to that same structure. So until today, my image workflow had been:

  • Take picture.
  • Manipulate picture, usually in Acorn.
  • Save suitably compressed picture to a folder on disk that has an OSX Automator folder action on it that does an rsync upload of any new files to the matching folder on my server. (Or, if I’m not on my home computer, use Transmit to do the upload manually.) Because I’ve got nginx serving images direct from disk, that image is now immediately available over https.
  • In WordPress, use the “Add Media” option to “insert from URL”, manually typing out the URL where I know the image lives.
  • Save the blog entry.

If this is tedious on a desktop machine, it’s ten times worse on a phone. On iOS there are plenty of really nice image editors; fewer options for scaling and optimizing images for the web; and only a few apps I’d feel happy entrusting with my ssh keys for connecting to remote servers. With Panic Software sunsetting Transmit for iOS I didn’t see the workflow getting any better. I briefly contemplated writing my own app that would do all of this in a single gulp, but…I’ve got better things to do with my time.

Today I was messing around with micro.blog, whose concept I love, and which I backed on Kickstarter. I installed the iOS app because it supports posting directly to a WordPress blog. But then I ran into the upload problem again: if I upload an image from any third-party application, WordPress would just put it in its own stupid location, and I wouldn’t be any better off.


But I dug a bit deeper and found that there’s actually a pretty simple answer to this. One of the great things about WordPress is how madly customizable it is. Pretty much every function in the application can be tweaked or completely overridden through the use of filter hooks, and this includes the location of file uploads. In the end, I created a child theme to hold my customizations, so that they won’t get overwritten when the parent theme is updated. In the child theme, I add a filter to the built-in upload_dir function that will replace the default upload locations with my preferred locations:

// Customize the uploads directory:
// By default, WP uploads to $WORDPRESS_DIR/wp-content/uploads/sites/$SITE_ID/$YEAR/$MONTH/
// I want to upload to $BLOG_ROOT/images/$YEAR/
// The $uploads parameter contains details of the uploads directory and the
// path on which uploaded files will be served. Default:
// {
//     "path":"/var/www/sunpig.com/wordpress/wp-content/uploads/sites/2/2018/05",
//     "url":"https://sunpig.com/martin/wp-content/uploads/sites/2/2018/05",
//     "subdir":"/2018/05",
//     "basedir":"/var/www/sunpig.com/wordpress/wp-content/uploads/sites/2",
//     "baseurl":"https://sunpig.com/martin/wp-content/uploads/sites/2",
//     "error":false
// }
function sunpig_martin_upload_dir_filter( $uploads ) {
    $year = date("Y");
    $uploads['basedir'] = "/var/www/sunpig.com/martin/images";
    $uploads['baseurl'] = "https://sunpig.com/martin/images";
    $uploads['path'] = "/var/www/sunpig.com/martin/images/$year";
    $uploads['url'] = "https://sunpig.com/martin/images/$year";
    $uploads['subdir'] = "/$year";

    return $uploads;

add_filter( 'upload_dir', 'sunpig_martin_upload_dir_filter' );

And boom ? WordPress now puts my uploaded images exactly where I want. I could have done this more elegantly, with less hard-coding, but LOL no. This is perfectly fine.

UPDATE 5 June 2018: Putting this functionality in a child theme is the wrong place, because it means that I have to make a new child theme whenever I want to change the theme of my blog. The right place for this code to go is in a functionality plugin that can operate no matter what theme is active.

The WordPress app and the Micro.blog app now sit on the home screen of my phone. I like the “messing around in photo apps” part of my blogging workflow – that bit was never the problem. Now that I’ve fixed the image uploading step, I hope that this means I’ll post more often, and in smaller chunks. We’ll see!