• 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...


  • Bash For Loop With Spaces

    I always forget how to do this. Iterating over files with a bash for loop when the file name has a space. There are few ways I tried using arrays and delimiters, but changing $IFS worked best. In this case I’m sorting by the first lowercase letter or number. files0="$(find...