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 25 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 @incellebrite.666.
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!
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 →
This blog post is about a GNU/Linux rabbit hole I fell down in the belief I was chasing a mighty adventure. It was not nearly as adventurous as I had hoped, but I am nonetheless posting about it in case this information is helpful to someone else. My story begins with a purchase of four wireless gamepads from 8BitDo. I had done little research outside of scrolling past a few positive comments about their products on the Fediverse and viewing enough of their marketing materials to see that the controller I was interested in was supported by SteamOS. That was enough to encourage me to put in an order, so I did, and patiently awaited their arrival. When they were finally in my hands, I plugged two of them into my media center, hoping to play some Mario Kart with Oli. They were clearly working in some capacity because RetroArch pops up a toast when it detects that a controller has been plugged in, but something was wrong. I twiddled the analog sticks and I mashed the buttons. Nothing seemed to happen.
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.