nobody's blog

about me

useful links

crystal doc with multiple versions

Margret Riegert22 Nov 2023

The Crystal programming language includes a tool for generating API documentation from source code and comments, called via crystal doc. This blog post goes over how crystal doc works with API docs for multiple versions of a project, something I had to figure out while developing, a website I created for hosting Crystal API documentation based around the built-in docs tool.

Fio: A LEG Ahead

Margret Riegert, Zev Pogrebin, Charles DePalma20 Sep 2023

(An Attempt In) Porting QMK to the Razer Blackwidow Ultimate Stealth 2016

Margret Riegert12 Feb 2023

Why I'm moving to iOS

Margret Riegert15 Jan 2023

Using Pathlib with Pain

Margret Riegert12 May 2022

ponyo - a framework for ISA simulation

Margret Riegert3 Mar 2022

logidiff - library and website to determine if two logical statements are equivalent

Margret Riegert14 Jan 2022

I developed a tool that determines whether two or more logical statements are equivalent to assist with a digital logic course.

Quick note on capo-calc

Margret Riegert10 Oct 2021

In the interest of wanting to find the best capo to use when transposing songs to play on guitar, I came across a useful webpage called Capo Calculator. While this page is really good at what it does, it is limited in that it’s impossible to use on a mobile device. So I decided to try and create my own version of it. That’s how capo-calc was created.

On the things we have but never use

Margret Riegert20 Aug 2021

I have a tendency to collect electronics. Maybe it’s a broken controller to fix. Maybe it’s an old phone or videogame system to hack. Maybe it’s a laptop I only boot up or use every once in a while. Over time, this has accumulated in a sizable collection of everything from videogame systems, to android devices, to audio equipment, to laptop and desktop computers, to microcontrollers and their accessories.

Audio visualizer using an 8 point FFT

Margret Riegert, Charles DePalma22 Jun 2021

EccCPU - Error Correcting Code Central Processing Unit

Margret Riegert16 May 2021

I had an idea after watching both BenEater's and 3Blue1Brown's videos on hamming codes: what if they were baked into the instruction set of a CPU? This would mean that each instruction in a program could be checked and corrected against single bit errors natively, and provide more reliable operation.

Improving netlistsvg

Margret Riegert29 Mar 2021

Intel 4004 Assembler in Python

Margret Riegert12 Mar 2021

A photograph of a gold-legged intel 4004 processor, in an 8 wide DIP package

VHDL PreProcessor in Python

Margret Riegert12 Jan 2021

I spent a lot of time last summer messing around with VHDL and an Upduino. Nothing too serious, but it was a lot of fun. During one of the many nights I spent researching various things, I came across vpp. It was a preprocessor for VHDL that Takashige Sugie had been working on since 2007, licensed under GPL2.

VHDL block diagrams using netlistsvg

Margret Riegert30 Nov 2020

While tools for generating block diagrams are already included in most HDL development environments, these are typically proprietary (though they may be free as in beer, they're not free as in freedom). Here is how to generate a block diagram from VHDL using netlistsvg ( and the open source FPGA toolchain on Linux.

UnifiedNLP on LineageOS 16.0/17.1

Margret Riegert29 Oct 2020

A combination of the LineageOS and UnifiedNLP logos

VGA on the Upduino

Margret Riegert4 Sep 2020

The final assembly of the project, a VGA connector attached to the Upduino v3 FPGA

the second best time to plant a tree

Margret Riegert31 Aug 2020

It was on a car ride home from school in 5th grade that I asked my Dad what programming language I should learn, due mostly in part to jealousy about a kid my age who had gotten their own app into the iOS app store. I wanted to emulate their success. My Dad recommended Python, and later that week he bought me Beginning Game Development with Python and Pygame.

all posts

© 2020-2023 Margret Riegert
Unless otherwise noted, content is under a CC BY 4.0 license.