My name is Jakob Kreuze (/ˈdʒeɪkəb ˈkɹuz/ and /ˈjaːkɔp ˈkʁɔʏ̯tsə/ are both acceptable pronunciations), and I'm a 26 year-old cybersecurity professional living in the Commonwealth of Virginia. Outside of work, I like to program and tinker with free software, reverse engineer things, and hunt for security vulnerabilities. In the past, I've used the traditional definition of "hacker" to describe myself. These days, the vernacular meaning is a bit more accurate.
The best way to contact me is by email at zerodaysfordays (at) sdf.org. My GPG key fingerprint is 6581 A4FC 404F 6434 AEA3 008C 45ED 4DC3 05BA DA33. I'm also on Signal as @B4D.455.
In general, I opt for "jakob" as a handle, settling for "0daysfordays" or "zerodaysfordays" if "jakob" was taken. Not every account with one of those handles is mine!
Nearly every programming language has some flavor of "structure" declaration, where the programmer can conjure a new type representing the composition of other primitive types or structures, neatly organized into named fields. While the concept is practically universal, the way the programmer defines and interacts with these types can vary dramatically between languages. In Scheme, such structures are called "records". I found that the existing facilities left a lot to be desired, so I wrote a few macros to provide an experience more akin to Common Lisp.
read more →
Packed lunches are a great way to save money, but being limited to foods palatable at room temperature (or colder) can be a little discouraging. In most American workplaces, a microwave oven is readily available in the breakroom, making it easy to reheat a home-cooked meal. However, after leaving a desk-bound white-collar job for one that often takes me into the field, that's only occasionally an option. So I DIY'd a device for warming up food that's portable and usable in almost any situation.
read more →
Spaced repetition is an effective habit for memorizing small fragments of information for, effectively, an indefinite amount of time. The idea is to repeatedly challenge your recall of a piece of information, typically with a sort of flashcard, doing so at a frequency determined by your previous recall performance: new information is challenged frequently until you remember it, and previously learned information is challenged less frequently. The concept is simple enough to implement with a few index cards and a shoebox. Despite the simplicity, the landscape of software implementations of spaced repetition is relatively small. The venerable Anki is the best-known spaced repetition application, and I've used org-drill and org-fc in the past, but other than those three, I'm not aware of many other programs for it. These existing systems are fine, but I have a fairly specific use-case that none are appropriate for: I might want to do my reviews on a system where I'm unable to install Anki or GNU Emacs, and I don't want to have to trust a third-party with my cards. This rules out services like Quizlet and AnkiWeb. It's a simple enough concept, so I wanted to see if I could write a flash card application contained within a single HTML file. All we really need is a spaced repetition scheduler algorithm, a way of implementing the "challenge" piece in the browser, and a way of storing cards and their scheduling parameters across reviews.
read more →
Click a thumbnail to view project details.
This is my personal website for showcasing the things I make. Currently, that is long-form writing in the form of blog posts.
The website is built using the Haunt static site generator, but features some dynamic components that use Guile's (http server) module. The source code is available on Sourcehut. It started in 2015 as tsar-fox.com and was written in Python using the Flask web framework. In late 2018, I dropped that code base and began using the Hugo static site generator until mid 2019 when I began using Haunt. The Wayback Machine has several snapshots reaching back to December of 2016.
I am not currently aware of any attempts to censor this website. Nonetheless, I maintain mirrors on Tor and I2P should you have difficulty accessing this website in your locality.
I aim to be as transparent as possible about the use of generative artificial intelligence on this website. Unless stated otherwise, all text and source code is written by myself.
Licensing information for this website, including Javascript licenses, is available here.