Aperture v Photos.app, El Capitan Edition

I have been a very happy user of Apple’s Aperture since 2011. I remember spending a few months using trial versions of both Lightroom and Aperture, before deciding Aperture suited me a little bit better—I think its integrated editing tools were slightly more powerful at the time and it seemed likely that Adobe would be keen not to make the built-in tools so powerful as to compete with their premier product. I was not overly worried when Apple first announced that Aperture would be discontinued because they have a track record of introducing revolutionary new products without every advanced feature in the initial version but then iterating consistently year-on-year until the gap is closed. With that in mind there was much anticipation around this Autumn’s release of OS X El Capitan, and consequently considerable disappointment that support for external editing extensions was the only addition. However it is important to remember that Photos.app was only released six months prior to El Capitan and so this was not a full year of iteration.

Although I had dismissed the initial version of Photos, with the availability of external editors to replace any missing editing tools, perhaps it is time to start thinking about the transition. Photos already has a few features in its favour, for instance it feels faster at navigating between photos, and does not spin for 30 seconds whenever it encounters a video. The advanced tools are comprehensive once you drill down enough to find them, and kudos to Apple for building a textbook example of how to make an interface that provides such a progressive user learning experience. In a taste of what new functionality is being denied Aperture hold outs, the noise reduction in Photos appears much improved over the equivalent in Aperture.

Perhaps the most significant omission is that there is no mechanism to apply an edit to only part of a photo, an equivalent of Aperture’s brushes. This may be a gap that Apple expects editing extensions to fill although I find Apertures’s non-destructive edits much quicker and simpler to use than the layer-mask approach of Photoshop and Pixelmator. There is also no way to display hot/cold regions to see under- and over-exposed areas.
Photos.app also has greatly simplified camera-data and EXIF display. These are useful when trying to improve one’s photography “post-mortem” by looking at how the camera was setup for a particular (usually unsuccessful) photograph so their removal is disappointing.

Star ratings are also no longer available. In Aperture each photograph could be assigned a colour and a flag as well as a star rating, so it is easy to see that there were probably too many options for the majority of users who will be much happier with a simple “favourite” function. But when dealing with a large library having different ways to annotate a photograph is useful, a flag can signify a photograph that needs more attention before it is “finished” while star ratings can be used when dealing with many similar photographs of a single subject to distinguish the great from the merely good, and then the 1-star, “bad but captures some unique moment so worth keeping.” Another problem when dealing with multiple exposures of the same subject is that inability to do a side-by-side comparison of two-or-more photos. In Aperture it is possible to bring up all the photographs of a particular subject in a single view and eliminate them one-by-one. This seems to be completely impossible in Photos.app and therefore a complete showstopper for me because I use this feature a great deal when deciding which images from a set to discard and which to publish here.

Which of these missing features Apple will eventually bring to Photos.app is difficult to guess. Star ratings seem the most unlikely to return since only obsessive-compulsive types rate their possessions on a five-point scale, plus Apple already expended the effort to convert the ratings to keywords/tags. I sincerely hope side-by-side comparison returns since that is the raison d’être of both photograph management software and large screens. Brushes require a significantly more complex user interface, especially on an iOS, but are also an ideal use case for Apple’s new iPad Pro Pencil. Or Apple may decide that such advanced editing functionality has no place in a management app, and cede the space to third party developers via the extensions API.

Too Busy To… Flickr Galleries

My most recent photoblog posts here have been hosted using flickr. The upload experience is slick and efficient, and the 1TB of online storage means I can freely upload my files at full resolution and let flickr figure out the best way to serve it to a given client, whether a bandwidth constrained smartphone or a 30 inch display with a “fat pipe”.

flickr can also take care of other optimisations. Two of the key findings when I analysed my website was to use the progressive jpeg format and a content-distribution network. I could do the former myself by adding a manual step1 to my export-and-upload workflow, but the latter requires a considerable amount of effort to setup and maintain. Another unexpected but welcome benefit has been flickr’s social aspect: my photographs are seen by more people than when I host them solely here on my own site.

Hosting on flickr does have some disadvantages. flickr has no supported way to embed a gallery of images in a webpage. The photographs are being displayed here using the very good Flickr Justified Gallery plugin, although the full size image display is not quite as nice as the one used for native WordPress galleries. Entrusting my content to a third party service also carries risks for the long term longevity—will flickr still be serving my photographs in 2025? That risk is somewhat present even using the open source software that hosts this blog should it stopped being maintained, although the size of the WordPress user community means there is a good chance of an export path. While not quite the same, flickr also has a large community and good API support, so for the moment the benefits I listed above seem to outweigh this risk.


One of the more tedious parts of uploading a batch of photographs is captioning. Most websites, flickr and WordPress included, will take the filename as the primary title. The problem with this is that since filenames must be unique within a directory, multiple files with the same title end up with a extraneous number that must be removed.2 Any text in Aperture’s “caption” field becomes the description in flickr. On a album-orientated website such as this, the title does not need to include any context since that is provided by the album itself, for example an image entitled San Telmo in an album about Buenos Aires is unambiguous even if there are multiple cities in the world with a district of the same name. However flickr’s stream-orientated approach to images means that at least some visitors may arrive at the photograph without the context provided by an album. To complicate matters, only the title is shown on this website when displaying a gallery. I include this information here purely for reference since if a few months go by between uploads then I struggle to remember the exact mappings and have to spend time fixing up the titles manually!

  1. $ jpegtran -copy all -progressive -outfile $x.new $x [back]
  2. flickr makes this very quick and easy, which is why I described its upload process as efficient above. [back]

OS X Notes.app and IMAP Accounts

On a fresh install of OS X Yosemite, the notes.app was unable to see the notes stored on my IMAP server. The account was working properly in Mail, and notes.app worked fine with other accounts.

I recall having this same problem with a previous version of OS X, and that it was related to the “IMAP Path Prefix” advanced setting within the Internet Accounts system preference panel. The prefix is set correctly so I was about to give up on this as being an annoying–but–ignorable bug when the very last post in this forum discussion indicated that a cargo-cultish approach of changing the prefix, opening and closing notes, then reverting the setting had fixed it. I can confirm that this solution also worked for me. I kept Mail.app closed for the duration to prevent it being confused, and observed that simply unsetting the value is insufficient, it must temporarily be set to another value, such as “none”, to work.

Which email addresses receive spam?

One of the advantages of owning a domain name is the ability to create a limitless number of email aliases. I use this to allocate each company that requests an email address a unique one, which makes it a lot easier to spot phishing emails, and track whether a company has used it according to my expectations. A recent browse through my spam email folder showed some egregiously bad spam (obvious frauds, scams, etc) being sent to aliases assigned to companies.

  • Vision Express
  • Tumblr (the micro-blogging platform)
  • JET Photographic, Cambridge
  • Adobe — suffered a well publicised data theft
  • LinkedIn — likely someone with whom I am connected since they would then see this email and could import it into their personal address book
  • Dropbox — dropbox includes this email address when I share files and links with others via its service so again the leakage is probably from a third party

Another surprising result of my browse is that the email address I publish on this website does not get very much automated spam, although it does get the occasional offer of “sponsored posts”.

Resolving mixed content errors with WordPress

This blog has in theory been available via a secure (“https“) connection for about 2 years. I say “in theory” because some of the images were being loaded from insecure connections which meant there still ways to easily circumvent that security. After some digging it seems this is a long-standing known problem with the WordPress software that runs this blog, and despite some recent activity, still not fixed in last week’s 4.0 release.

Fortunately the discussion in the bug report does provide a one-line workaround. There was no advice on where to put that one liner, so I decided to write a plugin as it would then be easy to toggle on and off if required.

 * @package fix_ssl_attachment_url
 * @version 1.0
Plugin Name: Fix SSL Attachment URL
Plugin URI: https://core.trac.wordpress.org/ticket/15928
Description: Hacky fix for wp_get_attachment_url function not checking for https. 
Taken from the bug report referenced above.
Version: 1.0
Author URI: http://www.toobusyto.org.uk

add_filter( 'wp_get_attachment_url', 'set_url_scheme' );

The next challenge was that the instapress plugin I had been using to display my Instagram photographs in the side bar was also using insecure content. It seems that instapress is no longer supported, and although worked for me, might not continue to work for much longer so I upgraded to Simple Instagram. This was a straightforward drop-in replacement (once I had successfully made an Instagram developer account) but displayed three Instagrams per row which I found a bit small. The author appears to be very active and helpful on the forums, providing these hints on how to customise it, but initially I could not get this to work for me when I put the settings in my custom theme’s style.css. The problem is that the first CSS class is now .si_feed_list and I found I needed to mark the customisation as !important in order to override the default.

/* For use with the Simple Instagram plugin */
.si_feed_list .si_item {
  width: 50% !important;

Finally I had to disable the Simple Facebook Connect plugin. Like instapress, this was reported as being broken and discontinued by the author.

Managing cron.d with chef

I have recently been playing with the chef configuration management system. I was looking for a way to manage files in a directory such that any that were created by chef would be cleaned up again when they were no longer needed. A classic use case is the /etc/cron.d directory which may be populated by files from multiple sources. There appeared to be no established pattern for this but since chef allows the use of ruby in its recipes, I was able to construct the following. It assumes the use of the cron cookbook.

cron_d 'usercron.chef' do
  minute 0
  hour 23
  command '/bin/true'
  user 'myuser'

Dir.glob("/etc/cron.d/*.chef") do |f|
  name = f.split('/')[-1]
    t = resources("cron_d[#{name}]")
  rescue Chef::Exceptions::ResourceNotFound
    cron_d name do
      action :delete

OS X Terminal.app, bash and UK Keyboards

On an Apple UK keyboard, the # symbol is accessed by pressing ⌥-3 (pronounced option 3). Unfortunately the terminal application is only useable when option has been mapped to the UNIX meta-key, which takes precedence over “special” characters such as #. Thanks to this tumblr post, it is possible to work around this problem:

$ cat .inputrc
"\e3": "#"

Unfortunately .inputrc is a bash-specific configuration file and this does not solve the problem for terminal-based applications.

Google Maps and iOS Background App Refresh

I am posting this to the web in case it helps anyone else trying to troubleshoot a similar problem.

Recently I noticed my iPhone’s battery was ending each day significantly lower than usual, causing me to have to charge it every night instead of every couple of days. At first I suspected the extra consumption was caused by communicating to my Pebble smart watch but quickly eliminated that possibility when turning the Pebble off for a day had no effect.

After some experimentation, the change that restored my battery usage to its previous norm was disabling background apps refresh for Google Maps. This was an application I had recently installed because it works very, very, nicely with the Pebble, sending turn-by-turn navigation directions to your wrist as you walk. This completely removes the need to take the phone out of its pocket every few minutes to double check that the road you just passed was not the one you were supposed to turn down! However I do not use it frequently enough to justify doubling my daily power consumption…

Wearable Tech: Pebble

I have a new gadget, a pebble smartwatch. The “smart” moniker seems appropriate because it does something in addition to its primary function (telling the time), and as a platform it has a lot of potential, but like the first few generations of smartphones were merely OK phones, this is only a good digital watch rather than a great one.

Why would I want a mini-computer on my wrist when I already have one in my pocket/bag?

It seems to me that large screen phones are popular for a reason: they make better computers. Conversely as the screen size increases they lose all the properties that made smartphones attractive in the first place—easily carried always with-you devices. All the major mobile phone makers have launched voice-based interfaces but not only are they slow and error prone, in many cases the desired responses are fundamentally visual. Hence, the idea is a second screen for the phone that can then safely remain zipped away in a secure location.

What is it for?

For the moment, notifications. There is some rudimentary fitness tracking if you are into that sort of thing, but even being able to read notifications without getting my phone out of my pocket has turned out to be quite useful. For a start, I often fail to notice calls and texts when walking but the pebble makes them much more prominent. I can also see, with one glance and without taking off a glove, whether it is something urgent, or whether it can be dealt with later. People in the habit of leaving their phone in another part of the house will also find it useful since the bluetooth range easily stretches across a couple of floors.

While the pebble can run apps, currently these are mostly of novelty value rather than actually useful. The forthcoming 2.0 API looks a lot more capable and has proof of concept apps for things like displaying the last train departures from the nearest tube station. Notably the pebble does not have any built in speaker, microphone or camera which places it a long way from the significantly more expensive Galaxy Gear.

How good a watch is it?

Functional. Its e-paper screen means the time is always displayed (if you want it to be) and there is a cool motion sensor activated backlight. I did struggle to find a nice watch face that matched the functionality of my Timex Ironman digital watch, but since many watch faces are open sourced it would have been possible to modify one to my purposes had I not found one. Since the platform is very immature, sifting the good watch faces from the gimmicky was also part of the problem: it is currently not possible to search for something as specific as “digital 24 hours with seconds date and day of week”.1 The lack of built-in applications for what I would consider standard watch functionality is probably the biggest weakness right now. For example my Timex digital watch comes with chronograph, countdown timer and multi-timezone functions by default; for the pebble I had to search for an app and then try different ones out until I found one that worked well.

I find many normal watches too bulky for my slim wrists but as you can see from the photo, the pebble fits just about OK—I certainly would not want it any larger. The strap is a standard fitting so can easily be replaced and the battery is claimed to last 5-7 days between charges, which seems accurate based on my usage so far.


The pebble is fun and I already find it a useful addition to my every day life. It is by no means essential—yet, that will require several more iterations of both hardware and software—but the pebble proves the concept has utility in the world outside of Silicon Valley’s reality distortion field.

  1. Currently very few faces display seconds at all, it is not clear whether this is an unfilled gap in the market or because it drains the battery 59 times faster. [back]

Buddy online notification in Messages (OS X Mavericks)

In the days when OS X’s instant messenger program was called iChat, I think it was possible to setup a notification when a particular buddy came online. Mostly not very useful to non-stalker-types, especially as some services logged people in and out fairly continuously, but I would occasionally turn it on when trying to get in touch with an elusive friend or family member in a timezone that offers very little overlap with my own. It appears that is no longer an option in the main interface in Mavericks, but Apple do provide the ability to run an AppleScript whenever an event is triggered.

Continue reading


The HTC One V Android phone was recently added to the list of devices I am called upon to provide technical support for, and this weekend I had the chance to have a good play with it (i.e. its owner found it to be acting up and I had to help).

This is not meant to be a full review but rather a couple of observations, and a record of some “features” that lacked adequate documentation. Overall I found it to be a nicely put together piece of hardware with good ergonomics. On the software side the “pattern swipe unlock” requires less brain power to use than PIN, and gestures to switch between tabs in the web browser made multitasking on the web as easy as multitasking between apps.

On the negative side, the keyboard was awful. I have written entire blog posts on my iPhone keyboard of similar dimensions, yet could not enter a simple web search correctly first time on this one. A few Android users have recommend installing Swype, but that’s not available from the official App Store. It also turns out to be completely unnecessary as the HTC One comes with a built-in “trace keyboard” hidden away behind Settings -> Language and Keyboard -> HTC Sense Input -> Trace Keyboard which, in just a few minutes of testing, seemed much more useable.

General impressions aside, the reason I was called upon was because events added to the calendar application were not being synchronised to Google calendar on the web. This seemed odd, since synchronisation to Google’s services is supposed to be Android’s forte. The problem was that all new events were defaulting to a calendar called PC Sync, that was not synchronised anywhere, and no where did it seem possible to either change that default, or remove that calendar from the phone. Searching the web revealed only other people complaining of the same problem, and no solution—the cause though appears to be that HTC have replaced the default calendar application with one of their own that has this inexplicable and inexcusable “feature”. Fortunately there is now a workaround available—download the official Google calendar app from the App Store!

Making money from photographs on the Internet

This week Internet photo sharing site Instagram made headlines for an apparent change in its terms and conditions that would, it was claimed, allow the site to sell users’ uploaded photographs without further compensation. A few days later it made an apparent u-turn.

In the midst of the storm of dis-proportionate rage and indignation, Never Mrgan makes the point that even if Instagram did claim the right to resell a photograph without compensating the owner1, properly licensed high quality professional photographs are better and of more certain provenance. I think broadly this is true, but online photography fora are also full of stories of traditional media outlets ripping off photographs from websites such as flickr (where copyright licence terms are clearly asserted) and then claiming ignorance of copyright law and/or offering only negligible compensation when challenged by the owner.

Since many people just click through terms and conditions without reading or understanding them, any publicity that increases public understanding as to how online services work and make money has to be a good thing. For many people finding themselves to have taken a highly sought after photograph, perhaps of some rare or newsworthy event, the fame brought by being properly credited as the owner will be sufficient. But the clear message here is that if you ever think you might be in possession of a photograph or video more valuable than five minutes of fame, be very careful where you post it.

Perhaps this week’s outrage is also a symptom of the division in Internet photograph sharing between those photographers who prefer niche sites such as flickr and 500px, and everyone else who uses Facebook. The first group know that Facebook’s ability to disseminate content through its social graph is far greater than the dissemination available on their preferred platforms and they had hoped Instagram would bridge that gap, providing the features they wanted with the distribution potential of a social network.

This was also a potential missed opportunity for Instagram. The aforementioned copyright thefts by large media companies happen because a copyright holder has pursue each infraction individually, usually against corporate legal departments. If Instagram were to start selling sub-licences to photographs but promised to return a portion of the money over some large threshold to the photographer2 then Instagram would be the platform of choice.

  1. and it is possible it always has [back]
  2. similar to YouTube’s partner programme [back]

Encrypting filesystems with OS X Lion

Sadly some manufacturers1 of portable USB hard drives have yet to realise that there are operating systems other than Windows™ and include non-OS specific hardware encryption. OS X Lion supports software encrypted filesystems but the graphical Disk Utility application can only create new encrypted partitions. Fortunately the command line version of the same program can encrypt an existing partition without loss of data.

The drive must have a GUID partition scheme and the partition must have a HFS Journaled filesystem. You can view the partition information by typing diskutil list in a Terminal. The final column of output shows the IDENTIFIER you must use in the next command (disk1s2 in my case).

Encrypt the partition using the command:
diskutil cs convert disk1s2 -passphrase

You will them be prompted for a passphrase (do not lose or forget this, there is no way to recover the data if you do!). The drive will then be converted to a special corestorage volume and encrypted. Converting and encrypting a 1TB drive (with 500GB of data) took nearly 24 hours for me. You can monitor the process using the command diskutil cs list (the cs stands for core storage).

  1. Western Digital being one for which this is not true, their My Passport drive has been an excellent Mac citizen. [back]

HP DeskJet 3050A — The Missing Manual

Printers used to be a simple peripheral: connect it to your computer and hope that it will automatically configure the correct driver. If your printer was newer than your OS you accepted that you had no choice but to insert the supplied CD and install the driver along with whatever useless software the manufacturer decided would “enrich your experience”.

In an ideal world a networked printer would be similarly simple: connect it to your network and proceed as before but without the USB cable. Entering a non-trivial wireless password into device with just 6 buttons would be a tedious but infrequent task. Sadly not that simple.
Continue reading

Au Revoir, Internet Café

On previous trips, publishing a blog post or keeping in touch with home meant allocating some time to locate a reasonably priced Internet café and writing while watching a ticking timer. For this trip however I have been able to write at leisure in spare moments on my phone thanks to the availability of pre-pay GSM sim cards with data allowances.

In Australia, amaysim have been particularly good value although I only discovered their existence after considerable Internet research. A $10 purchase in-store sim card purchase gave us 1GB of data valid for 30 days plus $10 of pre-pay phone credit (90 day expiry). The network is provided by Optus, in common with most of the cheap prepaid sim offerings. There were a couple of issues though which I document here for future travellers.

  • We bought the sim card in a Seven-Eleven. The website claims you can buy them in post offices but the one we tried did not stock it so the availability might not be great. The same pack contains a sim that may be used with either the normal or micro sim formats.
  • Online activation claimed to work but actually failed because of my non-Australian address and credit card. You must call them to get your $10 purchase converted to a data plan. I have not tried to top up the credit yet but it makes me think that credit card top ups might be difficult. Buying vouchers works around this, but see the note above on availability.
  • The sim we bought has been used in multiple devices. I can report that despite rumours to the contrary, a sync with iTunes is not required to change the provider on an iPhone (at least on iOS5). However some devices could not access the Internet until the APN had been set manually to “Internet”, others just worked, for reasons I have yet to figure out.