Programming
-
Adding Tags to My Projects Page written Oct 03, 2024
How I used Hugo to set up an easy system for adding tags to the project listings on this site.
-
Arduino Geiger Counter Dosimeter written Aug 19, 2019
A short write-up of my rough-and-ready Geiger counter, and lessons learned from building and testing it.
-
What Is Rust's unsafe? written Jul 12, 2019
An in-depth look at why Rust has the unsafe keyword, what it does, and how it's used to make the Rust ecosystem as a whole safer.
-
Let's Build a Terrible Search written Feb 03, 2019
In which I build a very slow searching algorithm and compare it to the built-in Python searching algorithm.
-
Fedidict Implementation: Setting Up the Database written Sep 06, 2018
The core of Fedidict is the data it stores, for which it uses a traditional SQL database with a simple but powerful schema. This post explores both the SQL and Rust sides of the schema.
-
FediDict UX Design, Part 2 written Sep 02, 2018
More in-depth analysis and design for the UX of FediDict, focused on security.
-
FediDict UX Design, Part 1 written Aug 23, 2018
My first stab at defining the user experience for my federated dictionary software.
-
PDF Embedding Attacks written Aug 04, 2018
Turns out, it's possible to embed files that automatically execute as soon as a PDF is opened, making it an optimal malware delivery mechanism.
-
Chaining Fallible Operations with Combinators written Jun 26, 2018
A demonstration of some techniques for chaining fallible operations, such as parsing or network requests, using Rust's iterator combinators, without introducing overhead.
-
Improved User Interface 0.3.0! written Jun 13, 2018
Release announcement for the 3rd pre-release of the Improved User Interface library.
-
Additional Exercises in Reverse Engineering written Feb 03, 2018
Some more exercises and commentary about reverse engineering 64-bit Intel binaries.
-
An Intro to x86_64 Reverse Engineering written Nov 16, 2017
A thorough introduction to understanding the radare reverse engineering toolkit, demonstrated by taking apart some programs compiled for Intel x86_64, a.k.a. AMD64, under Linux.
-
A Gentle Introduction to Practical Types written Sep 29, 2017
Some programmers talk a lot about types, but what is a "type", anyway? This tutorial explores the definition and utility of a ML-like type system.
-
SBrain, an extension of BrainF.ck written May 02, 2017
A summary of some adventures in esolang design and genetic programming.
-
MLeM, a VM for genetic programming written Apr 17, 2017
A summary of a virtual machine I designed as a genetic programming target.
-
Getting started with Piston, a game library for Rust written Mar 14, 2017
A comprehensive tutorial for a basic Piston 0.64 application which draws a spinning square on the screen.
-
Session Types written Feb 16, 2017
Rust's type system is very powerful, even beyond memory safety. Session types are one way to leverage compiler analysis to prevent API misuse.
-
socketserver: the Python networking module you didn't know you needed written Dec 24, 2016
The Python 3 socketserver module makes network servers much easier and more readable than similar code using raw sockets.
-
Rewriting tinyhttpd in Rust, Part One written Oct 21, 2016
The beginning of the process of rewriting an old C webserver in Rust.
-
Am I in a Terminal? written Sep 13, 2016
A useful code for determining if a Python program is running in an interactive terminal or not.
-
Learning Japanese the Python Way written Aug 29, 2016
A short discussion and source listing of a program I used to study Japanese.
-
Porting Deucalion to Rust written Jul 11, 2016
A quick note on my experience with Rust for game programming.