GoPro Fusion Workflow

I’m an avid skier and love capturing video of my trips. I’ve invested heavily in GoPro tech over the last few years but have consistently been frustrated with the footage; the mounted camera never seems to be pointing the right way. So, I thought I’d try the GoPro Fusion which — in addition to capturing incredibly smooth digitally stabilized footage — also allows me to choose the direction of the frame in the edit, after recording… Amazing!

As seems to be common with GoPro, the hardware and video quality is excellent — Here’s some random footage from a recent ski trip to Vail:

However, also as usual, the problem with GoPro kit is the software and user experience: it’s pretty poor.

In particular, I find that my iMac does not recognize the camera and can’t directly import files. On a PC it recognizes the camera but messes up the export frequently, and it’s very slow. The internet recommends that the better workflow is to pull the files off the SD cards directly. But that is pretty complicated, especially if you have a lot of files.

The files are split across two SD cards — one for the front camera and one for the back. And if you try to import too many files into GoPro’s Fusion Studio it goes nuts 🤯.

So, the best workflow requires that you pull the files off the SD card then organize them neatly into folders. Clearly, this is a task best scripted so I created a command-line utility called fusion-copy to help. The project is open-sourced over on GitHub: https://github.com/joshtwist/fusion-copy

What does it do?

The script copies (it does not delete) your files from your Fusion SD cards to a destination folder of your choice. It organizes them into dated folders and then groups the files by the file number (Fusion creates files with a four-digit numbering system). It also tags the folders to help you identify the type of the capture with either “(Video)” or “(Image)” in brackets. Here’s what the folder structure looks like after import:

  • /destination-folder/
    • 2018-11-17 Fusion
      • 0012 (Video)
        • GPBK0012.LRV
        • GPBK0012.MP4
        • GPBK0012.WAV
        • GPBK0012.THM
        • GPFR0012.LRV
        • GPFR0012.MP4
        • GPFR0012.THM
      • 0098 (Image)
        • GB010098.JPG
        • GB010098.JPG

Hardware

I bought a great-looking Anker USB hub and 2 fast SD card readers as shown below:

anker_usb

Links to these products on Amazon:

Now I can easily work from both SD cards simultaneously, which is way less hassle. The script should work if you only have one card reader but it’s more convenient if you have two.

Installing the script

The script was written in NodeJS so you can install via NPM, it’s super easy. Just open a terminal window and execute the following command:

npm install fusion-copy

If you don’t have node or NPM installed, follow the instructions here first: Installing Node and NPM.

Running the script

Once installed running the script is easy

fusion-copy -v FusionSD -d /Volumes/YourDrive/YourDestinationFolder/

A few things to note:

    1. You should name your SD cards a name, I call both of mine “FusionSD”. This is the default in the script and makes it easier.
    2. The files are enormous so copying takes a long time… I added a progress bar to the script but patience is still required. Go get a coffee whilst you wait ☕️.

Screen Shot 2018-11-23 at 5.12.56 PM

Importing into Fusion Studio

Now the hard part is over, you can simply import the files using the ADD MEDIA function in Fusion Studio as shown below:

2018-11-23 17.16.00.gif

Video

Here’s a video explaining this workflow – if you’d prefer to watch vs read:

Important

A few things to note:

  • The script shouldn’t delete the original files off of the SD cards. To be safe, I’ll leave this for you to do manually.
  • The script has not been tested on Windows – no idea if it works. Feel free to try it and let me know how you get on.
  • ⚠ Use at your own risk, it’s a simple script created in a few hours and ut has not been thoroughly tested.

Moving my own cheese (and what I’m up to next)

Almost 9 years ago, I achieved a goal I’d held for many years and started an incredible journey: November 20, 2006 was my first day working for Microsoft. Based in the UK, I was a consultant working with customers helping them build awesome solutions on the Microsoft platform before moving to the mothership in the USA in 2010.

I couldn’t have imagined just how amazing the opportunities would be, how awesome the colleagues I’d get to work with and the lifelong friends I’d get to make (although many are now thousands of miles away).

Just a few of my favorite highlights from the last 9 years:

  • Working on an in car entertainment and telemetry system with Aston Martin that we actually installed into an Aston Martin DBS. My buddy Dave Brown actually got to ride in the car whilst it was driven by Aston’s equivalent of The Stig around their test track in Gaydon. The work featured at MIX ’08 – video here.
  • Working with a great team to create the Developer Foundation Assessment which later was used globally by Microsoft Services (and building a version on the original Surface). Video here.
  • Being entered, and somehow winning the Systems Developer of the Year award at the UK IT Industry awards. I even got to meet one of my favorite comedians, Sean Lock who was giving out the gongs. There was an amazingly geeky picture of me on stage with him in the print version of computing magazine, with both thumbs up! Sadly* no digital version was ever captured and it is now lost to history (* not sadly).
  • Being part of the small team that created the original versions of Azure Mobile Services (or Project ZUMO as it is still affectionately known internally). Some of my favorite experiences at Microsoft were the long nights leading up to that preview. It’s the closest to a startup I’ve experienced and it certainly helped plant the seed for what happens next.
  • Presenting ZUMO at the Microsoft Company Meeting in Key Arena to over 15,000 people and of course getting to chat with SteveTM backstage. Never forget watching Ballmer rehearse his stage entrance to the music from Kanye West’s “POWER” (Not sure if the folks who chose the track had actually listened to the lyrics of the song but it was a mind-blowing way to enter an arena. There’s a very different vibe these days). For the safety of my iPhone, I had to borrow a friend’s Windows Phone for the picture below.
    ballmer keyarena
  • Presenting at the BUILD 2012 and 2013 Keynotes (about 6000 people each) and TechEd 2014. Nobody would believe how much work goes into these things – I have to call out my friend Nick Harris who was the real star of most of these presentations and made it all happen backstage.
  • As a result of those keynote presentations I also got to meet Satya multiple times. He’s a genuinely nice guy and a great leader – it’s not surprising to see the company transforming with him at the helm.
  • Organizing a huge internal hackathon for the Azure team (Azurathon) – we got all the big wigs to show up (Soma, Mark Russinovich, Scott Gu, Satya, Jason Zander and even Vittorio Bertocci – that’s the picture at top)
  • Working on the acquisition of Apiphany and subsequently launching Azure API Management with the great team we brought into Microsoft.  Always wanted to say I’d worked in ‘M&A’ 😉
  • Meeting and presenting to a Simpson’s character: Bill Gates (twice!)
  • Launching Logic Apps as part of the Azure App Service launch. Lots of work still to be done here but the team is incredible so good things are no doubt still to come.

There’s so much more I could write about – it really has been an amazing ride and I’ll be eternally grateful to Microsoft, all my managers and mentors for the opportunities that came my way. Needless to say, I’d highly recommend a career at Microsoft – but all good things must come to an end.

I made the tough decision to leave Microsoft for a new but hopefully equally exciting adventure.

Thanks again to everybody who supported me during my time at Microsoft. I’ll leave you with another fond memory of mine – some as yet unreleased footage from the Mobile Services team featuring the legendary Scott Gu. We made this video to celebrate the launch of the Android SDK but for some reason we never got around to sharing it – too cheesy maybe. Enjoy #gubot

The Leaf Check Experiment

One day, my big ass VW Touareg burst into flames on my driveway. That’s a real picture of the incident at the top of the page. What a morning that was. Anyway, as you can imagine, I needed to set about buying a replacement car soon after. I chose a Nissan Leaf (I’m practicing for a Tesla) and I have to say I love everything about it, almost without exception.

But there is an exception. The battery on the car is only enough to drive about 60-80 miles on a charge which means I need to top up nightly for my commute. Which should be fine, but on occasion I forget to plug it in. Not often, maybe once every two months; something distracts me when I’m getting out of the car and I forget to plug it in. Worse still, I only find out the following morning when I’m about to drive to work and can’t.

By the third time this happened, I decided enough was enough and I needed a technological solution and ‘leafcheck’ was born. The premise was simple: every day at 8pm, I wanted an automated service to check the charge state of my car (using it’s API) and send me a mail or SMS if it wasn’t plugged in.

During the recent holiday period I decided to build my solution – a simple NodeJS app running in a docker container on an Azure VM would do exactly this. And it works very well. Except for the one night when I popped to the store at 9pm and forgot to plug it in after the scheduled check had taken place. That’s when I realized I needed an app that used a geo-fence to know when I’ve arrived home, and checks the charge status 5 minutes later.

leafcheckI built this just for me, just for fun. But a friend thought it would make a pretty interesting business idea – “why not create a subscription service that other leaf users can sign up to, and if it’s successful you can extend to other types of EV”. I argued that only I was absent-minded enough to keep forgetting and there was no market for this. With about 50,000 LEAF users in the US, a 1% adoption rate (pretty good) would yield just 500 folks – so I wouldn’t be quitting my job any time soon. But this could be a bit of fun and I was curious to test the idea using lean techniques and so www.leafcheck.com was born.

This was my MVP (minimum viable product) to prove my hypothesis:

“Only I am absent-minded enough to spend time or money on a service that shouts at me when I forget to charge my car”

The website really was minimal:

  • Some simple content in a bootstrap template
  • A form, the first stage of the subscription process
  • Google analytics
  • Optimizely for some A/B tests

The whole thing took about 1-2 days effort, including my struggles with the bootstrap template. And whilst the site suggested there was a ‘checkout process’, there wasn’t. The first page of the subscription process collected user details like name and e-mail and notified me. I was really seeking to measure the intent to subscribe – I didn’t have something of service quality to sell yet.

Ideally I would have asked for Credit Card numbers – as that’s the ultimate indicator that a customer is interested in subscribing but I wanted to avoid any complexity dealing with Credit Cards might pose. So my checkout process just ended abruptly with a “thanks, we’ll be in touch”.

On pricing

Pricing is tricky – something is worth what people are willing to pay for it. How much is this service worth? How much would I pay for it?

I decided to double down on the experimentation and use A/B testing to experiment with price too. Using Optimizely, I ran an A/B test that adjusted the advertised price. Users would see either:

A: $1.99 per month / $15.99 per year

B: $2.99 per month / $24.99 per year

C: $3.99 per month / $46.99 per year

Optimizely really is an incredible tool. I can view my webpage in their browser based editor and change the text or HTML on the fly for each variation.

Screen Shot 2015-01-20 at 7.25.10 PM

Below, you can see how I even edited the href links for each variation so I can track it through my funnel (p=low below means variation 3, or lowest price).

Screen Shot 2015-01-20 at 7.25.26 PM

In theory, with enough traffic, I’d be able to estimate the best price to go with based on the percentage of conversions. Of course, this assumes my hypothesis was wrong and somebody else is crazy enough to pay for a service like this. It’s all about the learning though, and so onward…

Driving Traffic

Building a site and driving traffic is hard. Building a site that can drive organic search takes a very long time and I wanted this experiment to be short and provide rapid feedback. Fortunately, social networks like Twitter and Facebook make it very easy to target a specific type of user. For example, on Twitter I can promote tweets to people who follow @NissanLeaf and likewise with facebook, people who ‘like’ Nissan Leaf. Surely a fantastic way to find other leaf owners! I might be even more targeted and go after people who follow @NissanLeaf and @ICanImproveYourMemory but the audience overlap was too narrow.

And with a shoestring budget (no more than $100) I launched my campaigns.

Facebook Results

It’s amazing how easy facebook make it to advertise. Their experience is slick. As I entered my URL they automatically harvested my website to design ads using images from the site. I was seriously impressed with how easy they made it for anybody to get a campaign up and running. It took me less than 20 minutes to be up and running.

These are the folks that saw the ad.

Screen Shot 2015-01-19 at 8.54.29 PM

Nearly 10,000 in total. 110 folks clicked for a CTR of just over 1%, which is pretty good[1].

Screen Shot 2015-01-19 at 8.54.40 PM

Of the 110 folks that made it through to the website – 12 clicked on the buttons to start the subscription process: 4 at the top price, 4 at the low price and 5 at the middle price.

[1] Clearly, the numbers in this article aren’t large enough to support statistical conclusions – but interesting to see what you might be able to do with larger numbers and a larger budget. This was for just a $50 spend.

None. Nada. Nobody actually converted and submitted their details. Not enough data to prove anything, but zero conversions from 110 clicks isn’t encouraging. On to twitter…

Twitter results

Twitter also do a pretty good job of making it easy to advertise – although I had to wait a while for my new @leafcheck account to qualify for advertising. Like facebook, I invested 50 hard earned bucks on my twitter ads, here’s the results:

Screen Shot 2015-01-20 at 7.31.28 PM

My $50 earned me just 2,642 impressions in total, with an average CTR of 0.95%. As you can see, the lower ad with the image had a much higher CTR with 1.03% vs 0.51%.

So in this case my $50 earned me 25 clicks – just one quarter of those I received from facebook. This isn’t to say that facebook > twitter for advertising – I’m sure there are many variables that decide what’s best for each problem. Here’s the funnel for each:

Screen Shot 2015-01-20 at 7.51.57 PM

Note that the lower cells look at the percentage of the previous stage acquired, e.g. of all facebook impressions – 1.1% clicked. Of those that clicked, 10% went through to sign up. Nobody actually signed up.

I think we can assume that my hypothesis: “Only I am absent-minded enough to spend time or money on a service to shout at me when I forget to charge my car” was proven and I declare the fast failure of project leafcheck a success. Or depending on your point of view – a fail – and the image of a burning car for the post is ironically apt. But I had fun in the process and probably saved a lot of time, had somebody managed to convince me this was a viable project.

Of course, It is possible (though unlikely) that this is a viable project. Conversion rates for most premises are in the very low percentage numbers, so it’s likely I’d have to have driven much more traffic to the site before I see a conversion – that’s just the cost of customer acquisition. Maybe with simple modifications of the text and subtle changes to the site I could have increased conversions significantly, but I’d need to drive a lot more traffic to support reasonable statistical analysis and to support re-testing future revisions – which would cost me money I’m not willing to spend on my little pet project.

Don’t let good data go to waste

There’s no doubt that leveraging data and using it to drive decisions is an incredibly useful technique – if you’re lucky enough to have data pumping through your site/product/system/app make sure you’re capturing and leveraging it. It’s expensive to buy if you don’t.

In review: Lean Startup Conference

Last week I was fortunate enough to attend the Lean Startup conference. In case you’ve had your head buried in the sand for the last four years – Eric Ries‘ incredibly popular business book, The Lean Startup, begat the conference and has a growing attendance and community every year.

For me, the Lean Startup is basically the scientific method applied to business. One could argue that the arts of management consultancy and MBA have been doing this for sometime, just as an engineer can apply proven science to have confidence that a component will perform in a specific way under certain conditions. However, the reality of businesses is far from this today. The context is extreme uncertainty and if planes were built like traditional businesses in that context, I’d never get on one*.

Build. Measure. Learn.

The practice of lean is to hypothesize, experiment, analyze results (usually data) and iterate to success. The movement is becoming hugely popular and I’m a big fan.

Much of this may sound familiar to practitioners of ‘Agile’ development. But in truth agile usually starts from requirements. With Lean you get iterative much earlier in the lifecycle of your business (often before you write any code, more on this below). You need to be agile in understanding your requirements and even who your customer might be. Not so much sell what you can build as build what you can sell.

The conference had some excellent speakers. We got to visit with a number of ‘Lean’ organizations and incubators including Highway 1, Creative Live and 18F (yup, that last one is a .gov, more on that later). I got to spend the whole day with the awesome Alastair Croll, author of my favorite lean-series book: Lean Analytics.

The conference was epic. Sessions ran from 9am to 10pm and there was just too much for me to comprehensively cover here. However, I do want to take this chance to summarize the keystones of my new understanding of the lean community. I’ll start with some highlights from one of my favorite sessions, from Bill Gross of idealab.

No excuses

Bill Gross founded Idealab in 1996 and has arguably been practicing many Lean Startup principles since long before the book was written, especially the idea of the MVP or Minimum Viable Product. Bill has the energy of a caffeinated 12-year old and gave one of the most inspirational talks at the conference, sharing some of his amazing MVP stories.

My takeaway from Bill’s talk, was that there really are no excuses. You can build an MVP to prove your idea and you can test it, on any budget. He shared many stories, but I’ll highlight just a few that specifically resonated for me, like CarsDirect.com.

In a fairytale eureka moment, the idea for CarsDirect.com came to Bill following a (typically) unpleasant experience buying a car. He knew what model, color and options he wanted but the dealership didn’t have this in stock and spent a lot of time persuading him to take another car that was in stock rather than place a backorder. He wondered, wouldn’t people prefer to just do this online and avoid the whole meat-grinder of the salesroom? At the time, few things were bought online. Users were frightened to use their credit cards on the web and Amazon was still in it’s infancy.

In true MVP style, Bill and his team created an extremely simple website for CarsDirect.com to test his hypothesis. There was no car selector widgets; users had to type freeform text to describe the car they wanted! However, there was a box for a credit card number – they wanted to be sure that customers were serious and thus asked for a deposit to place an order. There was no backend behind this, they didn’t even use or store the credit card numbers – they were just testing the viability of the idea. Now all they had to do was sit, and wait. Not expecting anybody – in the infancy of eCommerce – to actually order a car and be willing to place a deposit via credit card with an unknown, unreviewed website. A few days later they had 4 orders and the rest, as they say, is history.

A later innovation, Pantry Mate was a bluetooth scale that would sense when a consumable (like coffee beans) was getting low and automatically re-order. How do you test a product like this in as lean a manner as the CarsDirect.com MVP? Easy – they created mock product packaging, ‘reverse-stole’ them onto the shelves at Bed, Bath and Beyond and just watched. That’s right – they took their product into a store, without permission, and found some shelf space. This is Bill’s genius at work.

He did something similar with another product, aimed at children in education called Jump Start. Finding the best product placement in an appropriate store and watching customers. They observed a series of customers picking up the product and after spending a short while reading the packaging, they returned it to the shelves. But why? These appeared to be the perfect target customer?

Upon investigation, they found that these customers doubted the quality or fit as it targeted too broad an age range. They’d be more successful with a range of packaging targeting specific ages – ‘Jump Start  Kindergarten’ is more attractive to a Kindergarten parent than ‘Jump Start K thru 5’.

Get out of the building

The Jump Start experiment above typifies how the LeanStartup community feel about the importance of talking to customers and the benefits of doing so.

It’s easy to forget this. We talk to customers all the time. Our advisors, prospects, conference attendees, people who reach out with issues – anybody who’s willing to talk to us. But how good are we at reaching into the belly of our customer base and talking to those who aren’t just presented to us? Those who tried the service and left quietly? Those who ‘picked up the package but put it back on the shelf and walked out’?

Process > Tactics

Josh and Hiten at Lean Startup conferencePart of the event affords Gold and Platinum pass holders the opportunity to join an ‘Office Hours’ with their experts and mentors. I was lucky enough to spend some time with Hiten Shah, CEO and co-founder of KISSmetrics.

I wanted to pick Hiten’s brains on being data-driven and settling debates about some of the minutiae. We talked for a long time about what to measure, what not to measure, when to measure, how to measure, you get the idea… With each specific example there was a discussion about the trade off of cost of measure vs benefit (e.g. lost engineering time implementing telemetry vs can we actually use the data). I liked Hiten’s way of thinking about this, how it was a trap and you should focus on the process. Being data-driven, adding telemetry and analyzing the data needs to become muscle memory: cheap, automatic and thoughtless. Data is like a stress toy, as you squeeze one question, more emerge. Focus on the process not the tactics.

Don’t mix the soups

Screen Shot 2014-12-14 at 8.57.33 PM

In being data-driven there’s a few important things to remember. Averages are misleading – when grandma visits the average age of the classroom leaps up dramatically – but you knew that already. Another important idea is the correct application of cohorts.

Your product has been improving over time. A cohort is a slice of your customers organized by timeline. When comparing customers we “mustn’t mix the customers that tasted the awesome July soup with those that tried the awful January soup”. Check out Alastair’s full and epic slideshare (361 slides!).

Success is a barrier to change

A huge percentage of content at the event was focussed on corporate innovation and the challenges faced by intrapreneurs – those who want to bring LeanStartup to their already successful, large employer.

Such large businesses seem aware of the need to support this. In fact, many have gone much further and have actively created internal innovation programs in their business to find ways to disrupt themselves and not fall foul of the innovator’s dilemma.

One interesting twist on this idea was PCH International‘s Highway 1. PCH specialize in hardware manufacture and supply chain management and as such created an incubator specializing in hardware startups. Highway 1 currently houses a number of high profile early stage businesses including navdy and a personal favorite: switchmate.

An interesting way for PCH to ‘stuff their own pipe’ whilst fostering these exciting small hardware businesses.

Any smart CEO can see the importance of reinventing their own processes and embracing innovation at this time. There’s a genuine sense that we’re at a new zenith in business change right now and both the risks and opportunities are huge. This was evident in the sheer number of large organizations that had significant attendance or were presenting at the conference. Here’s just a few employers of people I met at the event recalled from memory: Google, Toyota, Cisco, Yammer (Microsoft), HP, Thomson Reuters, Davidson College (177 year old educational institution), Telefonica and Adobe. It’s not just for startups.

As the idea of experimentation matures in the lean community, there’s a growing swell around the idea that evolution trumps intelligent design. That is, if you can run more experiments and let data decide the winner, you stand a higher chance of being successful. Which raises the question, how do you dramatically increase the number of experiments?

Adobe Kickbox

Adobe had one of the most interesting presentations on corporate innovation with their kickbox project which aimed to answer exactly this question. Kickbox is a formalized innovation program that itself has been productized. A selected employee receives a red box that contains resources necessary for them to run an innovation experiment. Lots of enterprises are running similar programs (but without the beautiful graphic design) but the real innovation in kickbox is the inclusion of a $1000 pre-paid credit card. The recipient can spend this on their experiment however they like with no need to file receipts or submit expense reports. Anybody reading this who works at a large organization just had their head explode.

Table stakes

The Lean Startup conference is comfortably one of my favorite events and this is just a pinch of my highlights. To conclude the article I want to close with my biggest learning at the event. This wasn’t yielded from a single session or discussion but was innate and ingrained. It was apparent in the experiences of the experts and attendees.

The Lean Startup approach is no longer an advantage, it’s table stakes. 

Nothing made me realize this more than my visit to 18F, the part of the US Federal Government that is driving lean and agile throughout the GSA (General Services Administration). A team of fearless, talented and dedicated folks who come to work and hack at a previously immovable corporate culture to allow themselves to move at the speed of startups. And they’re already demonstrating results. If they can do it, you have to.

 

Follow Josh on Twitter @joshtwist

*written on the flight back from San Francisco.