RSSAmplifier

Blog

404wolf.com

Wolf Mermelstein's website

404wolf.comRSS feed ↗28 posts

Latest posts

404Wolf.com

How I made my website, and an overview of all its unique features, including an integrated what-you-see-is-what-you-get markdown viewer, and fully featured Obsidian plugin. I explain my stack choice, how the posts are managed, and present my custom in-site editor. I also talk briefly about some specific struggles when building the website, like creating a good backup protocol and getting my…

Android in the Browser

An ongoing effort to get a fully functional android phone embedded into an iFrame in a browser, with as little latency as possible. Note: post in progress!

Bitwarden Backup Utility

Bitwarden, a popular open source and free password manager, does a great job of securely storing passwords and other personal data in their cloud, well-encrypted and accessible. However, their option to export your vault (to maintain a local/physical backup) is to export it as a .json file, leaving data in a very human-unfriendly format. So, I made a program that converts the json to a more human…

Coin Date Sorting Robot

Coin-sort-bot is a physical robot that I co-designed and wrote software for to automatically align and sort coins based on their physical features like year, date, and mint location. It is designed mostly with fusion360 for CAD and Python driver software, and is an IOT device that connects to a separate Django webserver. It is still in development, and currently has a basic 3d printed prototype…

CWRU Free Food Finder

For Case Western's 2024 hackathon two friends and I built a webapp for locating free food on our campus. We used a fine tuned OpenAI model to read all events from our university's event management system and determined whether they had food, of what type, and to generate other metadata. We then displayed this data on a appealing MUI-React UI, and set up a deployment at free-cwru-food.404wolf.com!…

DNA Nanotube Design Software

NATuG (Nucleic Acid Tube Grapher) was an academic research project I undertook in my senior year that's a Python3-based desktop application designed to streamline the DNA nanotube design process. It's one of my most extensive projects, involving a complex and dynamic UI that lets users visualize DNA nanotube shapes, weave together strands of DNA with cross-strand exchanges, set and export…

Eclectic English Vocab

Conglomeration, obstreperous, mercurial, preantepenultimate, rapacious, verisimilitude. For some, it's coins—for me, words. Over the past year, I've fastidiously curated those with intriguing meanings, idyllic spellings, eccentric pronunciations, and compelling origins, bolstering my lexicon and piquing my logophilia. It's been an engrossing use of free-time tranches, and a process as delightful…

Forced Browser-Based Zoom Extension

This idea spawned from my hatred and eternal frustration with Zoom. It's just always a pain to deal with; screen share often just doesn't work right, the UI glitches out, audio is a mess and very inconsistent, and it eats up system resources and is probably doing mysterious things behind the scenes intruding on privacy. There's a solution though: use Zoom in your browser, only, always, ever! Zoom…

Closet Hydroponics

With the goal of learning how to code some basic Arduino, I fell down the deep rabbit hole of automated gardening. After setting up a simple strawberry watering apparatus in my closet, I began upscaling, up until some mold related challenges prompted a shift to basil hydroponics. Weekly pesto became the norm, and it was smooth sailing until the perennial crop passed its prime. And after such great…

CWRU Linux Scripting Class Portfolio

This is my portfolio for Professor Ronald Loui's CSDS285 @ CWRU, a class that teaches various Linux tools and concepts, like bash, awk, regex, and bottom-up design. It's an eclectic mix of scripts and Linux-y things I've done with the stuff I've learned throughout the semester in the course. There are a few projects towards the beginning, and then I have a bunch of random bash scripts and more…

Literally Everything (in Python)

Using OpenAI's's API I've made it possible to literally import anything "from everything"! Any function you can imagine, dynamically generated at runtime, accessible with a simple import. When you import from everything, my project uses Python's AST to scan your source, and find all usages of . It then will merge a few lines of context on both sides of every function call, along with the call…

MSN Emails

A few years ago I discovered a Microsoft account creation captcha bypass exploit that allowed you to create @msn.com email accounts through an old piece of microsoft software called MSN explorer. I submitted a vulnerability report and got it approved, and a captcha added to the endpoint. I talk about how the process works, how I was able to figure it out, and, at the end, I provide an explanation…

Everyone's Tables Suck

Why is it so hard to add a cell? A tour of terrible tables in Notion, Google Docs, Linear, Obsidian, and Slack -- and how at Macro we're bringing tables back.

Markdown Image Blocks

I talk about how I got my markdown to include image groups with many images side-by-side, automatically. I’ve scoured my way through eclectic convoluted docs, pained past unsensical bugs, and have finally begun to wrap my head around the world of JS markdown parsing. With a general overview and some useful snippets, you’ll too learn how to customize markdown rendering for your own purposes.

mdvalidate

Mdvalidate is a new way to validate the shape of markdown documents. With Mdvalidate's schema definition language, mdschema, you can ensure that an arbitrary Markdown file conforms to some general shape, like starting with a heading with some specific content, followed by a paragraph, and extract data from regions of the file.

Ember Sniper

For many, it's a sandbox for creativity, and a haven for ingenuity. And yeah, it is that. But for me a few years back, it was much much more: it was a lucrative business opportunity. At the time, I had first entered the realm of Minecraft-username-trading. A corner of the internet dedicated to buying/selling accounts with cool names for exorbitant prices. But what caught my eye was a niche of the…

Obsidian Contact Importer

A project to bring phone contacts into Obsidian as markdown files, converting vCard (.vcf) files exported from phones or Google Contacts into nicely formatted notes. By storing contacts as markdown, users can take better notes about people they meet and maintain richer context around relationships, while keeping everything in their Obsidian vault. The tool uses customizable templates and handles…

Predetermined Text Widths

A neat hack that I figured out to get the titles on my website to render in a very specific way. Many titles on my homepage fill in automatically with a typewriter animation. Instead of the titles rendering where their darker background grows wider as the typewriter types, which was the default since I was using fitting width, I found a hack to get the widths to be correct to the size that the…

Project Banana

Turning Val Town's single-threaded Node.js servers into a proper cluster. Project Banana experiments with Node's cluster module, Redis, and a bit of filesystem trickery to let each process manage its own Deno workers -- no database bottlenecks, no central funnel, just turning our nodejs fastify server into a big banana of many processes working in parallel.

Recurse Checkins

My occasional/semi-regular checkins that I wrote to account my time at Recurse Center. The point of checkins are to keep track of what I work on, who I work with, and the social events I go to. These are short but down to the point summaries of what I've done.

Remarkable Backup Utility

A remarkable tablet is a digital paper replacement: an e-ink screen tablet with a stylus. To prevent dependency on the proprietary tools of Remarkable, I decided to develop a simple script to automatically recreate the directory structure of the tablet, including both the original .rm proprietary binary file format files, and rendered PDF files.

SVG Shenanigans

In my quest to automate SVG file generation, I discovered Chrome's ability to convert complex SVGs with imports into self-contained PDFs through its printing protocol. My aim was to write a script to easily convert Chrome-preview-able files into PDFs. With Selenium and Chrome's Devtools Protocol, I was able to figure out how to perform the conversion, but wasn't satisfied. In this post, I discuss…

Today I Learned

A collection of random disconnected things that I learn on given days.

Val Town CLI

A technical dive into the development of VT, Val Town's new command-line tool that enables local development for Val Town projects. Engineering considerations behind building VT, like its evolution from a FUSE-based approach to a more compatible Git-inspired CLI design. How VT handles synchronization between local and remote environments, file watching for live development, and the challenges of…

Fullstack Language Servers

Running the Deno LSP to make our TypeScript language tools dramatically better

Veale Snyder Fellowship Reflection

As part of CWRU's Veale Snyder entrepreneurial fellowship, I had the incredible opportunity to travel to San Francisco and meet with executives and engineers from various companies, including Fountain, NVIDIA, Rivian, Google, Y Combinator, and Giant. Throughout the trip, I gained valuable insights into entrepreneurship, company culture, and personal growth, which I will carry with me on my…

Tour of Nix

An introduction to Nix and its ecosystem. The basics of Nix as a language, its use as a package manager, build tool, and much more. Some brief discussion of core concepts like derivations and flakes, and a walkthrough of simple examples packaging programs. Learn how Nix can help create reproducible builds and consistent development environments, and do fun things like allow bash scripting with any…

Agents Attacking Documents with CRDTs

A new approach to live collaborative AI editing. A team of small agents writes code against a thin library to surgically edit the document tree, streaming their changes in as human-looking CRDT peers with no Markdown or patches.