• The 9 Ps

    I often have conversations with friends and colleagues about their careers. And many times, i point people to a great blog post by my colleague Liz Aab, about the “7 Ps”. But i always find myself adding two to the list, so i thought i’d just post it here. There are lots of factors which go in to choosing a job. You can’t have all of them, all of the time. At least, i think you can’t. But you can (and should) decide which are most important to you. Here are Liz’s 7 Ps (which she says were originally 5… Continue reading →


  • Fix: This must be accepted explicitly before updates for this repository can be applied

    Some repos, such a the one for the Unifi Controller, use different ‘field’ values to tie a release and require manual updates. For someone like me who has a standalone, automated controller setup designed mainly to keep the firmware up to date without much intervention, this is a hassle. It looks something like this: It’s an easy fix. Just tell apt-get to ignore the codename field: and then it works! Continue reading →


  • Fix pyodbc.Error: (‘01000’, “[01000] [unixODBC][Driver Manager]Can’t open lib ‘ODBC Driver 13 for SQL Server’ : file not found (0) (SQLDriverConnect)”)

    I was connecting from my macbook to a SQL Azure Database when i hit the following error: The solution was to install the ODBC driver, following the instructions on the Microsoft website: Continue reading →


  • Fix: unable to kmem_alloc enough memory for scatter/gather list in ZFS Solaris 10.5

    The ZFS Pool on my server was showing degraded state. After checking the SMART status of the constituent drives and finding no problem, I discovered that there’s a bug in Solaris 10.5 where the system reports a growing number of errors and eventually fails the pool. dmesg shows an error unable to kmem_alloc enough memory for scatter/gather list, however, there is actually nothing wrong with the pool. Running zpool status shows degraded state: Running zpool clear recovers the pool: Continue reading →


  • Powering a Yale Smart Lock with Mains Electricity and Backup Battery

    For various reasons, not least because I wanted to play with it, we have a Yale Keyless Connected Smart Door Lock with a Z-Wave module (we have the v1 module which works fine). This lock has a couple of key features that we liked: It’s connected to our Samsung SmartThings hub, and i run the RBoy Apps custom device type and smart app to enable the scheduled key rotation etc. Overall, we’ve been fairly happy with it, but the thing really does eat up batteries, and I started to feel guilty about putting between 4 or 8 AA batteries in the… Continue reading →


  • Amazon: ‘Soon we won’t talk about the smart home but a world of smarts’

    Daniel Rausch, Amazon's Vice President of Smart Home, reveals that it took 3 years to get to 4,000 Alexa-compatible devices on the market, but in the past 9 months that number has risen from 9,000 to 20,000, helped in no small part by Amazon's efforts to simplify OEM vendor adoption through SDKs, hardware development training, supply chain options and more. So where does Amazon see this ending up? “The sky’s the limit … you will also see that Alexa will just be embedded in more devices and customers will stop thinking about talking to a device per se. It will… Continue reading →


  • 5G is almost here — here’s how everyone’s getting ready

    The Verge has published a great round up on 5G, outlining the technical background, (US) carrier rollout plans, chip manufacturers, and phone vendor plans. https://www.theverge.com/2018/9/7/17829270/5g-phone-cell-mobile-network-hardware The state of 5G Continue reading →


  • Amazon.com: Holiday Toy List: Top 100 Toys: Toys & Games

    It's only September, and already people are thinking about Christmas shopping, or so Amazon would have us believe. In what's pitched as an example of data science at scale, but which a cynic might refer to as a solid marketing campaign, Amazon's published their "Top 100 toys" to put under the Christmas tree, apparently based on recent sales and product searches. https://www.amazon.com/b/ref=Top10018GNO/ref=nav_shopall_Top10018GNO?_encoding=UTF8&node=17911189011&pf_rd_p=3dfdd357-c450-4a32-aa11-180e30e86c1c&pf_rd_s=nav-sa-toys-kids-baby&pf_rd_t=4201&pf_rd_i=navbar-4201&pf_rd_m=ATVPDKIKX0DER&pf_rd_r=R03RC9P44A6RWFYTZFYX Online shopping for Holiday Toy List: Top 100 Toys from a great selection at Toys & Games Store. Continue reading →


  • Voyager 1 Fires Up Thrusters After 37 Years

    Sometimes the code i write doesn't work 6 months later – so I was incredibly impressed to read about the NASA team who reprogrammed the Voyager 1 space probe some 37 YEARS after the code was last changed. I can't imagine what the 40 hour wait between sending the commands and receiving the response was like. https://www.nasa.gov/feature/jpl/voyager-1-fires-up-thrusters-after-37 The Voyager team is able to use a set of four backup thrusters, dormant since 1980, for orienting the spacecraft. Continue reading →


  • It looks like tech-savvy drivers will have to lead connected car data purge

    Although we're all used to resetting our smartphones before we sell them, I have to admit that i often forget to wipe the memory of the carplay-enabled hire cars I used over the summer before returning them to the hire company. The Register highlights growing concern among a range of stakeholders – but not car manufacturers – around the privacy and security implications of my forgetful behaviour. https://www.theregister.co.uk/2018/09/07/connected_cars_privacy/ Manufacturers seem reluctant to do anything about it Continue reading →


About me

I’m rob. I spend my time exploring the world, playing board games with my family, solving complex technical problems, and learning new things. At work, I lead a team of solution architects designing and building complex realtime trading systems. Sometimes i write about things here, or code them on GitHub. I believe a few things that guide what I do and how I do it:

  • Hard things are hard. It takes time, effort and practice to be good at them.
  • Everybody can learn something new every day. When we’re born we know how to eat and cry and that’s about it. Everything else we’ve learnt, and we can keep doing that all our lives.
  • Great teams are fun to work in, and great teams achieve great outcomes. The wider the range of people and perspectives in the room, the better the work.

Look back