• Uploading old photos to Google Photos

    How to attach metadata for google photos for uploading legacy photos to google photos with GPS, ratings and descriptions. The tool of choice for me is exiv2. It gives command line access to the various metadata attributes in JPEG files. (exiftool is another alternative.) The metadata of files can be...


  • Python AsyncIO

    The don’t make this stuff easy to understand, especially if you are stuck on an older version of python. No guarantee that these are the best methods, but they help me understand the program flow. Coroutines and Callbacks Tips for next time: A coroutine is much like a future. A...


  • Disruptive Technology and International Markets - Lecture by Gilman Louie

    Today I started listing to the great Lecture “7. Disruptive Technology and International Markets” on iTunes U, here. I’m about 1/2 way through the series. All of this series has been good, from my perspective it’s better than a similar one from Y-Combinator. Key points I took from this lecture...


  • C++ 17 Register Access

    A simple C++17 class library for low level programming. Interfacing to hardware devices via MMIO registers. Interface code generated from CMSIS-SVD via Jinja templates. I recently read Real Time C++, by Christopher Kormanyos. It gives a good overview of C++ for small embedded devices and I’ve been meaning to try...


  • MMIO Registers - CMSIS-SVD & Template Based Code Generation

    This post is about a common requirement in low level programming - accessing hardware devices via MMIO registers. CMSIS-SVD is an XML file format used by the Keil IDE and MCU on Eclipse to define a hardware device to the debugger. The XML file defines the registers, interrupts and CPU...