August 3, 2020

On-Chip debugging with STM32 chips

I was looking for a nice IDE integrated on-chip debugging setup for STM32 chips and the STLink V3 on macOS. Neither OpenOCD nor st-util worked out of the box with CLion. I didn’t want to use gdb directly. STCubeIDE works great, but I don’t want to use STCubeMX projects. I’m writing firmware using chibios right now. I wanted something which works for any RTOS without much hastle. So I took some inspiration from how STCubeIDE works. Read more

June 6, 2020

challenges working on electronics

Working on electronics makes me appreciate how easy software engineering is. Why is that? Personally I can work efficiently when I have a tight feedback loop and when I can simulate the environment I’m working in. This allows me to make small changes and quickly converge my design towards the desired state I want to reach. With electronics establishing a tight feedback loop is much more complicated. Assuming you layed down your schematic, sanity checked all nets and verified your PCB with design rule checks you eventually end up ordering a PCB. Read more

January 11, 2020

Tic Tac Toe in pony

I’ve spent some time learning the pony programming language on the side and I thought it would be fun to write a small command line game using it. The result is published on github. Tic Tac Toe is a nice example because it can be used to understand most primitives of the language and learn about the standard library along the way, side stepping most dependencies and build issues for now. Read more

April 1, 2018

upcoming changes to the terraform provider for scaleway

The upcoming release of Scaleway 1.3.0 will contain two new resources which will allow you to better utilize your Scaleway account. Specifically, you can now use terraform to create additional scaleway api tokens, as well as manage server user data. Let’s take a look. First, you might want to create additional API tokens to be used by applications interacting with the Scaleway API. Now you can create new tokens like this: Read more

March 31, 2018

re-learning how to type.

Three weeks ago I decided to bit the bullet and get an ergonomic keyboard. Specifically I bought an Ergodox EZ. I’ve always thought about myself as being able to type well with 10 fingers, but now that my typing skills are being tested, I realize that over time I’ve developed some very bad typing habits: when typing on my MacBook my right hand has left the home row entirely. It’s mostly located around the arrow keys, shift, enter and backspace because of my modified position my left hand reaches to many keys my right hand usually should be typing. Read more

January 7, 2018

effective engineers

Software engineers need to embrace feedback loops more. While I don’t know when the science of continuous improvement originated, I know that it has been around for at least 60+ years, as Demings published his Plan, Do, Check, Act cycle in the early 1950s. By 2018 one might expect that feedback loops are well understood and widely adopted. Yet many companies and software development teams are still not practicing continuous delivery or a selection of extreme programming practices*. Read more

December 14, 2017

macOS Sleep/ Wake notifications in golang

While working on my golang chime SDK I ran across the issue of properly reconnecting when macOS wakes up from sleep mode. Apple provides an official example using IOKit, so I had to wrap this with cgo to use it. This post outlines the required steps and provides an example implementation. write a small wrapper to register/ unregister notifications # main.h #include <ctype.h> #include <stdlib.h> #include <stdio.h> #include <mach/mach_port. Read more

June 24, 2017

Modifying binaries to replace proprietary APIs

Note This is a follow up post on exploring private apis from late May. Soon I want to use the Things 3 macOS application with my own API. To achieve this goal I have built a working SDK for the things cloud to understand the structure of the communication between client and server. This time I want to modify my Things 3 binary so it actually talks to an API of my choice. Read more

May 28, 2017

Exploring private HTTPS apis

Today I want to take a look at how you can explore private HTTPS APIs. I’ll be using @culturedcode Things Cloud as an example: it’s the main engine behind keeping Things for iOS and Things for macOS in sync, and as there is no web version available it’s a little more tricky to take a peek behind the scenes. First off some requirements: you need to be running macOS for this to work, and you need a Things 3 installation along with a thingscloud account. Read more

March 25, 2017

Awesome AWS CodePipeline CI

After several talks at work about the feasibility of using AWS Codebuild and AWS Codepipeline to verify the integrity of our codebase, I decided to give it a try. We use pull-requests and branching extensively, so one requirement is that we can dynamically pickup branches other than the master branch. AWS Codepipeline only works on a single branch out of the box, so I decided to use Githubs webhooks, AWS APIGateway and AWS Lambda to dynamically support multiple branches: Read more

© Raphael Randschau 2010 - 2022 | Impressum