28 December 2014

Camera memory card backup on the go

I'm recently back from a two-and-a-bit week holiday in Peru and before we went the wife and I invested in new cameras to catalogue our adventures. As our cameras are both enthusiast/semi-pro level you have the option of shooting in RAW format to take advantage of greater post processing capabilities however the huge file sizes involved can be a real problem. Both our cameras use SDHC cards and we bought four with pretty high capacity coupled with good performance. Even these large cards didn't leave us with much room for two week's worth of photos and we really wanted to be able to easily back up photos while we were away should we lose a card or if it got corrupted.

Jobo Giga One 300
On previous holidays we took a portable hard disk with built-in card reader which worked really well however you don't seem to be able to buy these any more. I'm guessing, these days, with more portable PC options like netbooks or ultrabooks a lot of people use those to back up so demand for an alternative has dropped. An iPad with a decent size internal storage and a lightning to SD adapter would also be an option.

We didn't want to buy a small laptop just for backup purposes as netbooks are still quite expensive and we were looking for a cheaper option, preferably that made use of my Nexus 10 Android tablet.

The Nexus 10 has a micro USB port which you use for charging the device but when you plug in an OTG (on-the-go) cable it gives you a full size USB port into which you can plug many different types of USB device and the Nexus 10 will host them and use their capabilities. For example, plugging in a USB keyboard will allow you to input text as you would on a full PC. Plugging in a USB hub allows you to connect multiple devices at the same time as with any other PC. Lots of other Android tablets have a micro USB port and will work in the same way, not just the Nexus devices.

What we ended up taking with us was:
This hub and card reader have the advantage that they’re both about 2” square so they form quite a compact unit and you could, for example, wrap an elastic band around them to keep them together. We took a small (3" x 5" x 2") tupperware-style box and, tablet excluded, all this fitted along with a couple of spare camera batteries and SDHC cards.

nexus-media-importerThe other piece of the puzzle to get it all working is the Nexus Media Importer app. Ignore the "Nexus" in the name, this app should work with any "Android 4.0+ devices with USB Host support". The app supports a variety of different media files (photos, video, audio) and allows you to preview files as well as perform file management (move, copy, delete, etc) operations. Usefully the app (or Android itself) has native support for all the major RAW file formats so regardless of what make of camera you have you should be able to preview your photos right in the app. 

Putting the pieces together

Using the USB hub means you can plug in the card reader and a memory stick (or a USB hard disk) at the same time - they all connected together and plugged in to the tablet as illustrated here:


Note that, if you're using a USB hard disk you'll probably need a powered USB hub unless the hard disk has its own power supply.

Once Nexus Media Importer in installed, when you connect a mass storage device you get a popup message asking if you want to open the app:

After you select OK and the app opens you'll be prompted to select the storage device you want to import from:

This is fine if you want to copy your photos onto the devices internal storage but we want to copy from one external storage (the SDHC card) onto another external device (the USB pen drive) and to do that we switch into the app's "Advanced" mode by selecting it in the drop down on the right that currently says "Importer".

Here we select our source and destination respectively and the app then switches to a view showing you the source file system on the left and the destination on the right.

Navigating to the correct folder is somewhat counter-intuitive at first as you have to tap the folder name to go into that folder, tapping on the folder icon to its left selects the folder meaning you can copy entire folders quite easily.

Once you've found the right folder e.g. the folder your camera saves photos to on the left and the place you're backing up those photos to on the right the app has a great feature allowing you to select any new photos and only copy those.

Once you've made a selection the other options such as "Copy" and "Move" become available in the menu and you pick the one you want.

Selecting one and you'll get a prompt about the action you're about to perform - hit OK and the transfer begins. The file transfer goes on in the background meaning you can swap to a different app while the transfer is happening or even put the tablet into standby to save power.

Assuming the read and write speeds of the memory cards and memory sticks you're using is good the transfers shouldn't take too long - the Transcend SDHC cards we bought had 90MB/s read speeds which made backup nice and quick.

We made two backups of our photos onto the two USB sticks, my wife kept one and I kept the other and then we just formatted and reused our SDHC cards as required. All in all, was a fairly low cost and space and weight efficient solution I was really happy with and will be using on subsequent trips.

20 May 2014

DDD South West 5

Last Saturday I was at DDD South West in Bristol. Unlike 2012 I was marginally more organised (thanks to a timely prompt from @mjjames) so I was straight in rather than going via the waiting list.

As ever, this instalment maintained the high standards of organisation, variety of quality sessions and great weather (at least ones I’ve attended) that I've come to expect from DDD events.

This year's addition of the Pocket DDD web app which allowed you to browse the agenda and collected session feedback added an extra point of interaction which seemed to work really well. I look forward to seeing how the DDD guys utilise the app for other things in future – linking out to Twitter and pre-populating a session hashtag, maybe?


This time around I ended up only attending sessions from people I haven’t seen speak before. The ones I went to were:

​Continuous Integration, in an hour, on a shoestring; Phil Collins

I found this session to be a great, light-hearted opener to the day with much praying to the demo gods as Phil attempted to set up a complete CI environment and show it working end-to-end in an hour. He was successful.

Complexity => Simplicity; Ashic Mahtab

This session was broadly a look at Domain Driven Design and how, when exercising it, you need to change your way of thinking about problems to create a less coupled solution.

F# Eye for the C# Guy; Phil Trelford

This was one of those "mind blown" sessions and it provided a great introduction to the power of F#. I understand what @dantup has been banging on about now.

The amount of content covered I found to be ideal and Phil’s delivery was great – definitely a presenter I’ll look out for in future!

An introduction to Nancy; Mathew McLoughlin

Somehow I’ve managed to avoid talks about Nancy up to now and, although I’ve had cursory looks at the documentation for it in the past, I thought I’d attend Mat’s talk and actually see it in action to gain a better insight.

Mat managed to cover quite a lot in this session and it was interesting to see how it differed from ASP.NET MVC and Simple.Web which I’m more familiar with.

10 things I learnt about web application security being pen tested by banks; James Crowley

Security talks tend to have a habit of making you walk out incredibly worried about your products out in the wild and this one was no exception.

I’m pretty familiar with the standard vulnerabilities for web sites – things like the OWASP Top 10 – but there’s nothing like a really scary demo of exploiting them with some script kiddie tools to really hammer home how much of a security risk they represent.

James managed to pack a lot of good advice into the hour with demos where appropriate and this was a great end to the day.


Overall it was a very enjoyable day – organisation and catering were great, the sessions were of a very high standard and it was good to catch up with some folks I haven’t seen in a while. Big thanks to everyone involved.