Posts

Interrupt-Driven Concurrency With TinyGo

Interrupts are one of the most important mechanisms in microcontrollers. An “interrupt” is essentially a callback triggered by hardware to allow a CPU to process an event. The CPU interrupts whatever it was previously working on, saves the current processing state, and invokes a function. In TinyGo v0.14, channels have been adapted to allow interrupts to interact with goroutines. This allows for goroutines to effectively process hardware events using mechanisms already included in the language.

The Rise and Fall of Panux

One of the things I had wanted to do for a long time was to build a Linux distribution that was simple, straightforward, and decently resource efficient. I attempted this, and did not exactly succeed. In the process, I learned a lot, broke many things, and fundamentally changed my understanding of technology, systems, and software engineering. I intend to share some of the lessons and paradoxes I encountered on my journey.

Hello Blog

Today, I decided to create a website for myself, to host random code and blog about (mostly) programming. Tech Stack To build this blog, I used Hugo with the Binario theme. To host this, I ran Hugo and a custom reverse proxy with docker-compose on a VM on Google Cloud Platform. I am using Cloudflare for DNS and HTTPS. In the past, I have used a lot of web hosting tech, some of which worked out well and some of which did not.

A big LITTLE Problem: A Tale of big.LITTLE Gone Wrong

hey guys, I have a library project that I’m using in my android app w/ gomobile, there’s a SIGILL crash on exynos (samsung), so I’m looking for .o and/or .sym for the compiled binary, #general says this is the place to pose this question — shipit, on Gophers Slack The night of October 24, this question appeared on the #darkarts channel in the Gophers Slack (a group chat of ~33k Go programmers — sign up here).