nobody's blog


about me

project links

my bookshelf


crystal doc with multiple versions

Margret Riegert

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 CrystalDoc.info, 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 DePalma

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

Margret Riegert

Why I'm moving to iOS

Margret Riegert

Using Pathlib with Pain

Margret Riegert

ponyo - a framework for ISA simulation

Margret Riegert

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

Margret Riegert

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 Riegert

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 Riegert

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 DePalma

EccCPU - Error Correcting Code Central Processing Unit

Margret Riegert

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 Riegert

Intel 4004 Assembler in Python

Margret Riegert

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

VHDL PreProcessor in Python

Margret Riegert

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 Riegert

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 (https://github.com/nturley/netlistsvg) and the open source FPGA toolchain on Linux.

UnifiedNLP on LineageOS 16.0/17.1

Margret Riegert

A combination of the LineageOS and UnifiedNLP logos

VGA on the Upduino

Margret Riegert

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

the second best time to plant a tree

Margret Riegert

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-2024 Margret Riegert
Unless otherwise noted, content is under a CC BY 4.0 license.