<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>404wolf.com</title><description>Wolf Mermelstein&apos;s website</description><link>https://404wolf.com/</link><item><title>404Wolf.com</title><link>https://404wolf.com/posts/404Wolf.com/</link><guid isPermaLink="true">https://404wolf.com/posts/404Wolf.com/</guid><description>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 markdown to parse properly and in a very specific way.
</description></item><item><title>Android in the Browser</title><link>https://404wolf.com/posts/AndroidInTheBrowser/</link><guid isPermaLink="true">https://404wolf.com/posts/AndroidInTheBrowser/</guid><description>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!
</description></item><item><title>Bitwarden Backup Utility</title><link>https://404wolf.com/posts/BitwardenBackupTool/</link><guid isPermaLink="true">https://404wolf.com/posts/BitwardenBackupTool/</guid><description>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 readable html file, which one can print onto physical
paper. In addition, I&apos;ve integrated automatic favicon/icon fetching, QR code
generation, databreach checks and more.
</description></item><item><title>Coin Date Sorting Robot</title><link>https://404wolf.com/posts/CoinSortBot/</link><guid isPermaLink="true">https://404wolf.com/posts/CoinSortBot/</guid><description>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 and driver software to control the hardware.
</description></item><item><title>CWRU Free Food Finder</title><link>https://404wolf.com/posts/CWRUFreeFoodFinder/</link><guid isPermaLink="true">https://404wolf.com/posts/CWRUFreeFoodFinder/</guid><description>For Case Western&apos;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&apos;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! We added various additional features like a
calendar integration, and have continued to improve the site.
</description></item><item><title>DNA Nanotube Design Software</title><link>https://404wolf.com/posts/DNANanotubeSoftware/</link><guid isPermaLink="true">https://404wolf.com/posts/DNANanotubeSoftware/</guid><description>NATuG (Nucleic Acid Tube Grapher) was an academic research project I undertook
in my senior year that&apos;s a Python3-based desktop application designed to
streamline the DNA nanotube design process. It&apos;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 sequences, and more. Here I discuss what the program does, a
bit about how it works, and how I got involved.
</description></item><item><title>Eclectic English Vocab</title><link>https://404wolf.com/posts/EclecticEnglishVocabDeck/</link><guid isPermaLink="true">https://404wolf.com/posts/EclecticEnglishVocabDeck/</guid><description>Conglomeration, obstreperous, mercurial, preantepenultimate, rapacious,
verisimilitude. For some, it&apos;s coins—for me, words. Over the past year, I&apos;ve
fastidiously curated those with intriguing meanings, idyllic spellings,
eccentric pronunciations, and compelling origins, bolstering my lexicon and
piquing my logophilia. It&apos;s been an engrossing use of free-time tranches, and
a process as delightful as the product.
</description></item><item><title>Forced Browser-Based Zoom Extension</title><link>https://404wolf.com/posts/ForcedBrowserZoomExtension/</link><guid isPermaLink="true">https://404wolf.com/posts/ForcedBrowserZoomExtension/</guid><description>This idea spawned from my hatred and eternal frustration with Zoom. It&apos;s just
always a pain to deal with; screen share often just doesn&apos;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&apos;s a solution though: use Zoom in your browser, only, always,
ever! Zoom provides an option to join in the browser, given that you reject
their popups to open in desktop, and then click through a chain of links to
open in the browser. My solution: a browser extension to redirect Zoom links
directly to browser Zoom.
</description></item><item><title>Closet Hydroponics</title><link>https://404wolf.com/posts/Hydroponics/</link><guid isPermaLink="true">https://404wolf.com/posts/Hydroponics/</guid><description>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 success with basil, I&apos;ve now stumbled upon the less
successful crop of Shishito Peppers. Here I discuss the research process and
many of the pitfalls of my journey, along with many of the things I learned
along the way and tips for other aspiring closet gardeners.
</description></item><item><title>CWRU Linux Scripting Class Portfolio</title><link>https://404wolf.com/posts/LinuxClassPortfolio/</link><guid isPermaLink="true">https://404wolf.com/posts/LinuxClassPortfolio/</guid><description>This is my portfolio for Professor Ronald Loui&apos;s CSDS285 @ CWRU, a class that
teaches various Linux tools and concepts, like bash, awk, regex, and bottom-up
design. It&apos;s an eclectic mix of scripts and Linux-y things I&apos;ve done with the
stuff I&apos;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 Linux-y things towards the bottom portion.
</description></item><item><title>Literally Everything (in Python)</title><link>https://404wolf.com/posts/LiterallyEverything/</link><guid isPermaLink="true">https://404wolf.com/posts/LiterallyEverything/</guid><description>Using OpenAI&apos;s&apos;s API I&apos;ve made it possible to literally import anything &quot;from
everything&quot;! Any function you can imagine, dynamically generated at runtime,
accessible with a simple import. When you import &lt;anything&gt; from everything,
my project uses Python&apos;s AST to scan your source, and find all usages of
&lt;anything&gt;. It then will merge a few lines of context on both sides of every
function call, along with the call itself. Then, it will use OpenAI&apos;s gpt-4o
model to generate a Python function, which you can then use in your code.
</description></item><item><title>MSN Emails</title><link>https://404wolf.com/posts/MSNEmails/</link><guid isPermaLink="true">https://404wolf.com/posts/MSNEmails/</guid><description>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 of how it&apos;s still possible (in 2023+!) to create a
Microsoft account with the domain via a straightforward step-by-step walk
through.
</description></item><item><title>Everyone&apos;s Tables Suck</title><link>https://404wolf.com/posts/MacroTables/</link><guid isPermaLink="true">https://404wolf.com/posts/MacroTables/</guid><description>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&apos;re bringing tables
back.
</description></item><item><title>Markdown Image Blocks</title><link>https://404wolf.com/posts/MarkdownImageBlocks/</link><guid isPermaLink="true">https://404wolf.com/posts/MarkdownImageBlocks/</guid><description>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.
</description></item><item><title>mdvalidate</title><link>https://404wolf.com/posts/Mdvalidate/</link><guid isPermaLink="true">https://404wolf.com/posts/Mdvalidate/</guid><description>Mdvalidate is a new way to validate the shape of markdown documents. With
Mdvalidate&apos;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.
</description></item><item><title>Ember Sniper</title><link>https://404wolf.com/posts/MinecraftUsernameAutoclaiming/</link><guid isPermaLink="true">https://404wolf.com/posts/MinecraftUsernameAutoclaiming/</guid><description>For many, it&apos;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 niche: username-sniping—using bots to &apos;snipe&apos;
accounts with cool (and valuable) usernames right as they become available.
Though it sounded simple, it turned out to be an intense, competitive game of
tactic.
</description></item><item><title>Obsidian Contact Importer</title><link>https://404wolf.com/posts/ObsidianContactImporter/</link><guid isPermaLink="true">https://404wolf.com/posts/ObsidianContactImporter/</guid><description>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 contact details like names, phones, emails, addresses
and even contact photos, making contact information easily searchable and
editable within Obsidian&apos;s ecosystem.&amp;#x20;
</description></item><item><title>Predetermined Text Widths</title><link>https://404wolf.com/posts/PredeterminedTextWidths/</link><guid isPermaLink="true">https://404wolf.com/posts/PredeterminedTextWidths/</guid><description>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 text would end up being on the initial load.
</description></item><item><title>Project Banana</title><link>https://404wolf.com/posts/ProjectBanana/</link><guid isPermaLink="true">https://404wolf.com/posts/ProjectBanana/</guid><description>Turning Val Town&apos;s single-threaded Node.js servers into a proper cluster.
Project Banana experiments with Node&apos;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.
</description></item><item><title>Recurse Checkins</title><link>https://404wolf.com/posts/RecurseCheckins/</link><guid isPermaLink="true">https://404wolf.com/posts/RecurseCheckins/</guid><description>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&apos;ve done.
</description></item><item><title>Remarkable Backup Utility</title><link>https://404wolf.com/posts/RemarkableBackupUtility/</link><guid isPermaLink="true">https://404wolf.com/posts/RemarkableBackupUtility/</guid><description>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.
</description></item><item><title>SVG Shenanigans</title><link>https://404wolf.com/posts/SVGShenanigans/</link><guid isPermaLink="true">https://404wolf.com/posts/SVGShenanigans/</guid><description>In my quest to automate SVG file generation, I discovered Chrome&apos;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&apos;s Devtools
Protocol, I was able to figure out how to perform the conversion, but wasn&apos;t
satisfied. In this post, I discuss my script to convert complex files like
SVGs to PDFs without any file handling, from memory to memory, headless-ly to
allow for a smooth and efficient conversion process.
</description></item><item><title>Today I Learned</title><link>https://404wolf.com/posts/TodayIlearned/</link><guid isPermaLink="true">https://404wolf.com/posts/TodayIlearned/</guid><description>A collection of random disconnected things that I learn on given days.</description></item><item><title>Val Town CLI</title><link>https://404wolf.com/posts/ValTownCLI/</link><guid isPermaLink="true">https://404wolf.com/posts/ValTownCLI/</guid><description>A technical dive into the development of VT, Val Town&apos;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 implementing features like rename
detection.
</description></item><item><title>Fullstack Language Servers</title><link>https://404wolf.com/posts/ValTownEditor/</link><guid isPermaLink="true">https://404wolf.com/posts/ValTownEditor/</guid><description>Running the Deno LSP to make our TypeScript language tools dramatically better</description></item><item><title>Veale Snyder Fellowship Reflection</title><link>https://404wolf.com/posts/VealeSnyderReflection/</link><guid isPermaLink="true">https://404wolf.com/posts/VealeSnyderReflection/</guid><description>As part of CWRU&apos;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 entrepreneurial journey. This eye-opening experience has not
only expanded my network but also provided me with invaluable lessons that I
look forward to applying to my future endeavors.
</description></item><item><title>Tour of Nix</title><link>https://404wolf.com/posts/WhirlwindTourOfNix/</link><guid isPermaLink="true">https://404wolf.com/posts/WhirlwindTourOfNix/</guid><description>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 binary, or making pure latex documents. Post is still in
progress.
</description></item><item><title>Agents Attacking Documents with CRDTs</title><link>https://404wolf.com/posts/AgentsAttackTheDocument/</link><guid isPermaLink="true">https://404wolf.com/posts/AgentsAttackTheDocument/</guid><description>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.
</description></item></channel></rss>