Saving time one piece at a time.


Over the past week I’ve been working outside the office, at a conference run by Saint Paul’s Outreach. The main task I’ve had has been on the web–end: during the conference we decided to have a somewhat private website where the day’s seminars, schedules, maps &c would be available. Like many similar projects it very quickly began to suffer from feature bloat1. So I was particularly glad that I decided to go with a Squarespace 6 site, rather than a customized install of Drupal that I’d have gone for a few years ago, or (more recently) a themed Wordpress install. Both of the latter always felt like using a tractor to drive to the grocery store. An old and slightly malfunctioning tractor, at that.

Squarespace (the newly released version 6) was, by comparison, refreshingly straightforward (and fast to set up). It has the same familiar CMS feel at its core, but a lot has been done to divorce the user from actually messing around in the guts. If you want to know more about how good it is you need merely tune in around the halfway mark to any episode of Back to Work. (They also generally have a handy offer code which will get you even more percents off the Squarespace discounts.)

After a mammoth evening session early in the week, in which I edited and uploaded 15 different seminars2 including accompanying materials, I realized I would be wise to try to automate as much of the site content as possible. Editing seminars was difficult to streamline – although I shaved a few minutes off each one when I realized that I could just as easily trim the ends using Quicktime as anything else. Audio editing is just time–consuming.

I quickly realized another area where I was losing some time was that I constantly had to refer back to a paper version of the schedule to see locations of seminars, mealtimes, etc. Fortunately I had a spreadsheet version of the schedule which I managed to fiddle around with until it was in a format that could be imported by Google Calendar. You can read more about that format here. This was a case where a little bit of time up front will yield incremental saved time in the future. I’m not even sure I saved myself any time this week (although I certainly enjoy looking at Agenda more than I did thumbing through a battered booklet) but I’ll know in future what to do when people send me spreadsheet calendars. Of course it was a simple matter to embed the calendar I’d created on the site and provide an .ical file for subscribing.

The next project I set myself was probably, again, not an immediate time–saver, but will be, I think, in future. I realized that I was going to have to spend some time uploading pictures to the website for the photo section. However thanks to a well-publicized hashtag on twitter, there was an average 2-3 images being uploaded per hour that were easily referenceable as pertinent to the conference. Thus it was a matter of a few moments to create an IFTTT recipe which uploaded any photo tweeted along with the hashtag to a flickr account. I then embedded the flickr account’s photostream in the photos page on the site using flickrSLiDR (varying uppercase theirs). This took slightly longer because I had to mess around with various different ways of embedding code on Squarespace before I hit on something that worked. The video embed block seemed to work where other methods didn’t. However I soon ran into trouble: the IFTTT was uploading error-images even when the attached tweet didn’t actually reference an image at all. A quick hack at the twitter search and I had a way to only grab tweets that included an image tweeted to the default twitter service.

This was all fine and well, but it irked me that if someone used an image service different than ones I’d planned for, their photo wouldn’t make it on the site. I realized that a better plan would have to be more circuitous. I finally settled on something so roundabout that I wouldn’t recommend it to anyone, but it works. Here’s the run down:

  1. An IFTTT recipe downloads the first referenced link from every tweet with a particular hashtag and downloads it to a Dropbox folder.

  2. Another IFTTT recipe spots when the downloaded file is an image and moves it to another dropbox folder. You could also very easily use Hazel for this and have slightly faster turnaround.

  3. A third IFTTT recipe watches the latter folder and uploads the new files to flickr, they then become part of the photostream slideshow.

This is, obviously, not very pretty. But it works. The other interesting thing you could do with this would be to create a separate post per image in a Squarespace blog, by setting up a script like this one to automatically send an email with any new image in a given folder as an attachment. Each blog (or “journal”) on Squarespace can have its own unique post-via-email address. Setting the names of the files properly in your IFTTT recipe would allow you to use a bit of simple scripting to pull lots of data from the filename to include in the blog post. IFTTT also has an email ingredient, although I’m hesitant to just allow access to my email to a web service, no matter how nifty.

Time saved to time taken ratio on all this was about 0.001, but I feel like I learned quite a lot along the way, including getting my hands dirty with some applescript, which I haven’t done for a while.