PHP Google Static Maps

A few years ago I created a wrapper for the Google Static Map API, it never received much fanfare, but it was a fun little project and it was functional. During my last holiday I found a little time to bring the whole thing more inline with what I've learnt So with that, it's been updated and now makes use of: PHP7 syntax Friends of PHP-CS-Fixer PSR-4 Auto-loading PHPUnit tests TravisCI testing/badges »

Burnout 2017

So today was officially my last day with Futureproofs, after working for the company for nearly 4 years I've decided to move on. This post isn't about the reasons behind that decision, but rather what has dawned on me as I've used my remaining 10 days annual leave. For sometime now I've felt like I'd lost my way; the sensation which drove me to learn things and try new development techniques has slowly faded. »

rclone and Amazon Cloud Drive Broken

So rClone and Amazon Cloud Drive was too good to be true. So good in fact that Amazon have pulled the access tokens that rClone uses and my dream of Linux based photos backups has gone. For now I'll have to sync my photos using one of Amazons crappy crappy interfaces. The issue is here and the developer feedback. (Nb: Header image from »

rclone and Amazon Cloud Drive

I wanted to take a minute to post about the most useful tool I've stumbled across in recent months rclone. Rclone is a command line tool written in Go designed to synchronise file between local and remote systems. I'll let you read the homepage to see the complete list of destinations, but the 2 that are instantly useful for me are ‘Amazon Cloud Drive’ (for personal projects) and Amazon S3 (for work). »

Operation Scan All The Things Complete

I am done. I have scanned some 6240 photos over the last 6 months, a mixture of 35mm, 110, 4x3” and slide film, not to mention a large quantity of printed pictures. Just over a 1000 images came from my grandparents photo collection, and the other 5000+ my parents. If I'm honest, it has been a slog; a slog I don't wish to repeat. Constantly switching negatives over, adjusting images, trying to guesstimate when a photo might have been taken, trying to work out who is in what photo and if I'm feeling really pedantic, where the photo might have been taken. »

Operation Scan All The Things

So this weekend I started a new personal project, its not programming related, but it does involve a computer. A computer and what can only be defined as a “shit ton” of negatives. After playing with Google Photos, deciding that its the greatest thing since sliced bread and introducing it to my entire family; I've decided to archive my parents entire collection of film. Why Google photos Google Photos is an online service that provides unlimited photo and video storage (provided image are no more than 16MP and no videos no greater than 1080). »

NodeJS Scaping

Every programmer at some point in their career will need to scrape at least 1 webpage, guaranteed; it's almost a rite of passage. Recently I've started a side-project that required data, data which unfortunately couldn't be provided in a programmatic manner and needed extracting from 2 completely different websites. An annoyance? Maybe. An opportunity to tryout some different scraping frameworks, definitely! We wanted to do this scraping in a lean manner and we don't anticipate using the final code in anger, so the search was limited to NodeJS and the following two libraries found: »

Ghost to Middleman

Just recently I've been struggling with Ghost. It's always worked flawlessly, but since I added SSL support its become kind of flakey, the site would be working and then BOOM nothing, Now this might be nothing to do with Ghost, it might be the way I have LetsEncrypts certificate set to automatically renew; it might be… but honestly I didn't check. Now this blog isn't really anything more of a sounding board for things I've learnt, so missing traffic doesn't bother me. »

Operation Scan All The Things 1st 1000

So operation “scan all the things” is well and truely under way. I've scanned/adjusted just over 1000 photos and wanted to provide some insight into the results and process modification over the last few weeks. Negative Tray Utilisation So initially I was scanning the 35mm negatives as I found them. The scanner can hold 12 at a time, but they're typically sliced in strips of 4. I quickly realised loading the scanner with 8 negatives when it can take 12 is a waste of my time. »

Selenium testing with Nightwatch.js

We love automated testing over at Futureproofs. Up until recently we'd been using the Selenium IDE to write and execute browser tests. The IDE worked well enough initially, but as the system became ever more complex and the person we were leaning on to maintain them found his time tied up, we needed another solution. Our webapp is written in AngularJS so it made sense to use something written in javascript; we looked at protractor but ultimately decided that the tests should be agnostic and not tied specifically to AngularJS. »