What are you working on? Any new ideas that you're thinking about?
I am building a voice interview/survey webapp that helps product teams conduct product research faster. You can try it at https://intervio.app
Any feedback is welcome :)
I changed gears and moved into the video games industry at the end of 2021.
I started developing a city builder called Metropolis 1998 [1], but wanted to take the genre in new directions, building on top of what modern games have to offer:
- Watch what's happening inside buildings and design your own (optional)
- Change demand to a per-business level
- Bring the pixel art 3D render aesthetic back from the dead (e.g RollerCoaster Tycoon) [2]
I just updated my Steam page with some recent snapshots from my game. Im really happy with how the game is turning out!
[1] https://store.steampowered.com/app/2287430/Metropolis_1998/
[2] The art in my game is hand drawn though
Cooking up a NSFW filter for marginalia search.
Pipeline so far has gone like this:
* Use the search engine's API to query a bunch of depravity
* Use qwen3.5 to label the search results and generate training data
* Try to use fasttext to create a fast model
* Get good results in theory but awful results in practice because it picks up weird features
* Yolo implement a small neural net using hand selected input features instead
* Train using fasttext training data
* Do a pretty good job
* for (;;) Apply the model to real a world link database and relabel positive findings with qwen to provide more training data
Currently this is where I'm at
Accuracy: 90.90%
True Positive: 1021
False Positive: 154
True Negative: 2816
False Negative: 230
Precision: 0.8689
Recall: 0.8161
F1: 0.8417
There's a lot of vague middle ground and many of the false positives are arguably just mislabeled.We're building Aucly: https://aucly.co.uk/
It's an auction website for schools, charities etc without the exploitative transaction fees.
My wife and I are pretty heavily involved in our son's school PTA (parent teacher association) and have helped run school fundraising events for a few years, so we feel sort of like domain experts in this area :)
This week I'm on project #20 of my 25 projects in 25 weeks challenge! One was on the front page of Hacker News this weekend. It was humbling.
I’m working on a small deployment tool called push2start[1]. The goal is to make Docker Compose apps easier to deploy from a laptop to a remote server without a lot of custom scripts. Right now, I’m trying to keep Compose as the source of truth and avoid creating another mini orchestrator. You point it at a compose file, it transfers only the images that need to come from local, then deploys and gives status, logs, and restart controls from one CLI.
My wife and I continue to work on Uruky, a EU-based Kagi alternative [1]. Since last month we got deals with a couple more search providers but we’re still waiting for EUSP/STAAN to provide us with an API key (we have progressed through a few more forms and signatures and legal stuff, though).
We’ve continued to get some paid customers and have exited beta last week, given everyone seemed to be quite satisfied and there hadn't been requests for changes, only some specific search providers.
Because of bots there isn’t a free trial easily available, but if you’re a human and you’d like to try it for a couple of days for free, reach out with your account number and we’ll set that up!
Thanks.
P.S.: Because people have asked before, our tech stack is intentionally very "boring" (as in, it generates and serves the HTML + bits of JS to enhance settings and such — search can be done without JS), using Deno in the backend (for easier TypeScript), PostgreSQL for the DB, and Docker for easier deploying.
I just became a father and feel like it could be helpful if I have an app tracking my son's status. He has premature birth and we're all very worried about him.
So I vibe coded: https://apps.apple.com/us/app/bebilog/id6759827652
Working on an all in one "platform" that runs multiple different checks on a website/domain. Got sick of having to run different checks in different places to ensure everything is at it should be - SSL, HTML, SEO, redirects etc.
Extended the checking to monitoring and change detection/alerting. You can try for free at https://www.augsentric.com - built for my own needs, but made it for others if there's interest... feedback welcome
Vibe-coded a YouTrack CLI tool in < 1 hour:
Also working on a language for embedded bare-metal devices with built-in cooperative multitasking.
A lot of embedded projects introduce an RTOS and then end up inheriting the complexity that comes with it. The idea here is to keep the mental model simple: every `[]` block runs independently and automatically yields after each logical line of code.
There is also an event/messaging system:
- Blocks can be triggered by events: `[>event params ...]`
- Blocks can wait for events internally
- Events can also be injected from interrupts
This makes it easy to model embedded systems as independent state machines while still monitoring device state.
Right now it’s mostly an interpreter written in Rust, but it can also emit C code. I’m still experimenting with syntax.
Example:
module WaterTank {
type Direction = UP|DOWN
let direction = UP
let current = 0
[>open_valve direction |> direction]
[>update level |> current]
[
for 0..30 |> iteration {
when direction {
UP -> !update level=current + 1 |> min(100)
DOWN -> !update level=current - 1 |> max(0)
} ~
%'{iteration} {current}'
}
]
[>update level |> when {
0..10 -> %'shallow'
11..15 -> %'good'
16.. -> %'too much!' then !open_valve direction=DOWN
}
]
}Since subreddits related to identifying AI images/videos got very popular, my wife started to send me cute AI generated videos, older family members can't distinguish AI videos at all, I've decided to code a weekend side project to train their Spidey sense for AI content.
The content is hand picked from tiktok, Instagram, Facebook, Reddit and other AI generating platforms.
Honestly I don't know where I'm going with this, but I felt the urge to create it, so here it is.
I learned how to optimize serving assets on CloudFlare.
Feedback welcome.
jsonmaps.dev its a way to create maps and create storytelling maps that you can embed in your react application, I was quite tired of how AI wasn't able to generate reliable maps in my applications.Every map library has its own imperative API and the AI output was always broken, hallucinated, or unmaintainable with so many different formats that you can put on the map.
The story map part came out of wanting to build Mapbox-style scrollytelling easily. You define chapters with a camera view and content, and it handles the scroll-driven camera interpolation.
Stack: MapLibre under the hood, React, published as an npm package.
I've finally finished the long-abandoned project that I've been meaning to build for a while.
If you use Stripe Billing for subscriptions, your customers can specify reasons why they cancelled (e.g. too expensive, not using it, switched to competitor, etc.). However, to access those, you either have to use Stripe Sigma or pull them from the API. I wanted to build a more convenient way to access those (and also act upon them).
I've submitted the app to Stripe's App Marketplace, but I have a limited number of test invites to send out if you're interested (I will happily waive your subscription for 3 months).
As a personal learning project on how to write efficient GPU code I'm trying to implement different shortest-path algorithms on the GPU. This is notoriously one of the cases where a simple algorithm like Dijkstra on the CPU will beat many implementations on the GPU.
It has been a lot of fun to learn about Vulkan / GLSL and the GPU execution model to figure out why the CPU is so much faster than the GPU. I'll be open sourcing the code soon but so far I'm documenting my journey in a series of blog posts. First one of the series is https://www.execfoo.de/blog/deltastep.html
Well, I just jumped full time on IronCalc[1] a fully open source, light and fast spreadsheet engine designed and build from the ground up.
I have been working on it as side project for over two years and now, with funding from the EU for the next 2.5 years, I hope I can make of it a real product for everyone to use that can compete with the likes of Excel and Googl;e Sheets.
I can oly say, I am overly, off the Moon excited
Im building https://trypixie.com to legally employ my 7 year old child, save on taxes and contribute to her Roth IRA.
Im also building https://www.keepfiled.com, a microsaas to save emails (or email attachments) to google drive
I almost forgot, I also built https://statphone.com - One emergency number that rings your whole family and breaks through DND.
I love building. I built all these for myself. unfortunately I suck at marketing so I barely have customers.
Eazip (https://eazip.io) — ZIP remote files in one API call.
I built a service that lets developers bundle remote files into a ZIP with a single POST request. You send a list of URLs, we fetch, package, and return a signed download link.
The problem: creating ZIPs from remote files (S3, R2, CDN) usually means downloading to a server, zipping locally, managing temp storage, and cleaning up. It's surprisingly painful at scale — especially with large files or thousands of items.
Eazip handles all of that. ZIP64 support for files over 4GB, up to 5,000 files per job, zero egress fees on downloads, and no infrastructure to manage.
Use cases so far: e-commerce photo bundles, document delivery (invoices/contracts), creative asset distribution, and backup/export tooling.
Free tier available, no credit card required. Would love feedback from the HN community.
I started working on Rio[0], a modern TypeScript HTTP client for Node.js 24+, Deno and Bun. It's built on the native `fetch` API and fully type-safe from request to response. It's still very much a work in progress but I'm working towards an alternative to fetch/Axios/ky I wish I had.
I'm working on an alternative solution to Ansible and Puppet, trying to mix the best of both world: The pull-based aspect of Puppet, by having an agent running on nodes, and the simplicity of Ansible, by writing playbooks and roles.
It's called Peekl, and is available on Github. Tho it's still in what I'd called "alpha". Lot of new features to come!
I'm using TimescaleDB to manage 450GB of stocks and options data from Massive (what used to be polygon.io), and I've been getting LLM agents to iterate over academic research to see if anything works to improve trading with backtesting.
It's an addictive slot machine where I pull the lever and the dials spin as I hope for the sound of a jackpot. 999 out of 1000 winning models do so because of look-ahead bias, which makes them look great but are actually bad models. For example, one didn't convert the time zone from UTC to EST, so five hours of future knowledge got baked into the model. Another used `SELECT DISTINCT`, which chose a value at random during a 0–5 hour window — meaning 0–5 hours of future knowledge got baked in. That one was somehow related to Timescale hypertables.
Now I'm applying the VIX formula to TSLA options trades to see if I can take research papers about trading with VIX and apply them to TSLA.
Whatever the case, I've learned a lot about working with LLM agents and time-series data, and very little about actually trading equities and derivatives.
(I did 100% beat SPY with a train/out-of-sample test, though not by much. I'll likely share it here in a couple weeks. It automates trading on Robinhood, which is pretty cool.)
Value-study-practice-o-matic is the best name I've come up so far. It's just an automated way of practicing rendering when painting.
I've had a flurry of activity working with emacs, breaking out some things that were previously "Steve stuff" inside my local configuration into real packages.
One thing that I've been very happy with has been "org-people", now on MELPA, which allows contact-management within Emacs via org-mode blocks and properties. It works so well with the native facilities that it's a joy to work on.
I've been learning a lot of new things while I've been expanding it now it has a bigger audience (e.g. "cl-defstruct" was a pleasant surprise).
rainy-city.com! rainy-city.com is an ambient rain sound generator that is also a kind of city simulation. it is my recurse center project. it's suppose to be more of an ambient experience than a city simulator. it's a total work in progress, I've implemented buildings but haven't made a PR yet because they don't really work the way I want them to, and so I had to rebuild the tiling for them. So right now, there is no city. lol. just rain. but eventually it will have all this stuff you would expect. there are whales.
Tool that lets you build shortcuts and custom functionality for most macOS apps. You write JS snippets like this:
const app = new App("com.apple.finder")
and then query for elements: const window = app.$({role: "window"})
const someButton = window.$(/* another query */)
and then do stuff with it: someButton.press()
and you can bind everything to very specific shortcuts like "press and hold cmd, then scroll mouse wheel up"Targeted towards music producers and AI (there's one collection of snippets that starts an MCP server and exposes some basic functionality) in the beginning.
I'm writing a book, which covers the mental models for writing code in a functional style. The examples are in Scala, but it will be useful if you use other modern languages like Rust, Kotlin, Swift, OCaml, or Typescript.
When GPT-4.5 came out, I used it to write a couple of novels for my son. I had some free API credits, and used a naive workflow:
while word_count < x: write_next_chapter(outline, summary_so_far, previous_chapter_text)
It worked well enough that the novels were better than the median novel aimed at my son's age group, but I'm pretty sure we can do better.
There are web-based tools to help fiction authors to keep their stories straight: they use some data structures to store details about the world, the characters, the plot, the subplots etc., and how they change during each chapter.
I am trying to make an agent skill that has two parts:
- the SKILL.md that defines the goal (what criteria the novel must satisfy to be complete and good) and the general method
- some other md files that describe different roles (planner, author, editor, lore keeper, plot consistency checker etc.)
- a python file which the agent uses as the interface into the data structure (I want it to have a strong structure, and I don't like the idea of the agent just editing a bunch of json files directly)
For the first few iterations, I'm using cheap models (Gemini Flash ones) to generate the stories, and Opus 4.6 to provide feedback. Once I think the skill is described sufficiently well, I'll use a more powerful model for generation and read the resulting novel myself.
Rewriting the backend Bitwise Cloud, my semantic search for embedded systems docs Claude Code plugin from Python to Go.
The problem was the ML dependencies. The backend uses BGE-small-en-v1.5 for embeddings and FAISS for vector search. Both are C++/Python. Using them from Go means CGO, which means a C toolchain in your build, platform-specific binaries, and the end of go get && go build.
So I wrote both from scratch in pure Go.
goformer (https://www.mikeayles.com/blog/goformer/) loads HuggingFace safetensors directly and runs BERT inference. No ONNX export step, no Python in the build pipeline. It produces embeddings that match the Python reference to cosine similarity > 0.9999. It's 10-50x slower than ONNX Runtime, but for my workload (embed one short query at search time, batch ingest at deploy time) 154ms per embedding is noise.
goformersearch (https://www.mikeayles.com/blog/goformersearch/) is the vector index. Brute-force and HNSW, same interface, swap with one line. I couldn't justify pulling in FAISS for the index sizes I'm dealing with (10k-50k vectors), and the pure Go HNSW searches in under 0.5ms at 50k vectors. Had to settle for HNSW over FAISS's IVF-PQ, but at this scale the recall tradeoff is fine.
The interesting bit was finding the crossover point where HNSW beats brute-force. At 384 dimensions it's around 2,400 vectors. Below that, just scan everything, the graph overhead isn't worth it. I wrote it up with benchmarks against FAISS for reference.
Together they're a zero-dependency semantic search stack. go get both libraries, download a model from HuggingFace, and you have embedding generation + vector search in a single static binary. No Python, no Docker, no CGO.
Is it better than ONNX/FAISS? Heck no. I just did it because I wanted to try out Go.
goformer: https://github.com/MichaelAyles/goformer
goformersearch: https://github.com/MichaelAyles/goformersearch
I live in an old house.
The front bump out leaks when we get driving rain. I installed some flashing but that wasn't enough, it's still leaking. So I'm working on that so I can close up the big hole in the ceiling some day.
The prior owners filled in the old coal chute with literal bags of cement sort of artistically placed in the hole in the brick foundation. So I'm trying to figure out what masonry tools and skills I'll need to close it up proper.
I'd like to build my kids a playhouse of some sort, sketching out some designs for that.
I was interested in the idea of generating vector graphics with simple scripting language. The "simple" did not happen, but... I launched https://scriptdraw.com and I have lots of fun with it. My goal is to make the language much simpler than it actually is and then create a lot of generators (for example, gears!).
https://finbodhi.com — It's an app for your financial journey. It helps you track, understand, benchmark and plan your finances - with double-entry accounting. You own your financial data. It’s local-first, syncs across devices, and everything’s encrypted in transit (we do have your email for subscription tracking and analytics).
Supports multiple-accounts (track as a family or even as an advisor), multi-currency, a custom sheet/calculator to operate on your accounts (calculate taxes etc) and much more. Most recently, we added support for benchmarking (create custom dashboards tracking nav and value chart of subsets of your portfolio) and US stocks, etfs etc.
We also write about like:
How fund performance explain part of returns, rest is explained by timing. And ways to tease those out: https://finbodhi.com/docs/blog/benchmark-scenarios
Or, understanding double entry account: https://finbodhi.com/docs/understanding-double-entry
I'm still having a lot of fun releasing daily puzzles for my game Tiled Words: https://tiledwords.com
It just won an award! It was awarded Players' Choice out of 700 daily web games at the Playlin awards: https://playlin.io/news/announcing-the-2025-playlin-awards-w...
Right now around 3,500 people play every day which kind of blows my mind!
It's free, web-based, and responsive. It was inspired by board games and crosswords.
I've been troubleshooting some iOS performance issues, working on user accounts, and getting ready to launch player-submitted puzzles. It's slow going though because I have limited free time and making the puzzles is time consuming!
Here's an article with more info about the award: https://cogconnected.com/2026/03/tiled-words-crowned-the-pla...
I realized that there is no journaling program I like, so I wrote my own. Authoring is done purely by iOS shortcuts and is writer (the only thing I want is to create a new entry, or create a new entry with a photo and metadata from said photo)
Rendering is done by a go server. I wanted to learn go for quite a while and this is the perfect excuse.
Using a Muse EEG headset to read brain activity and use that to drive the output of a GAN. Similar to other projects that try to visualise or decode thoughts, but at the moment it's an art project. Obviosuly quite limited by compute and hardware. I'm sort of looking for collaborators / co-founders / opportunities in the AI + neuroscience + creativity space.
I am working on some math education tools. One is free and open-source, the other is paid.
Free Math Sheets is a tool to generate math worksheet PDFs (and the answer keys if required). Currently it supports K-5 but I want to expand it to higher levels of math (Calculus, Physics, you name it!). You select a bunch of different options and then generate it. All in the front-end. No back-end or login in required. https://www.freemathsheets.com
If you are interested in helping out or forking it, here is the github repo github.com/sophikos/free-math-sheets
The paid project is Numerikos. I am going for something in between Khan Academy and Math Academy. I like the playfulness and answer input methods from Khan Academy (but it is linear, doesn't have a good way to go back and practice, etc.). I like Math Academy's algorithm (but it has multiple choice answers, yuck! and is easy to get stuck and doesn't have a good way to explore on your own). Currently Numerikos supports 4th and 5th grade math lessons and practice. The algorithm is based on mastery learning like Numerikos, but you can also see a list of all the skills and practice whatever you want. I am also working on a dashboard system where you can build your own daily/weekly practices for the skills you care about. Next up is 6th grade math and placement tests.
I'm building a microreading service that let's me get long books read with small chunks of time that I have - https://lauselt.ee Currently I've added some public domain Estonian books in there and tbh I do get a lot more reading done during the day. Basically you can use your 1-5 min breaks (waiting for a bus, during the commercials, waiting for food etc) to open the book quickly where you left off and read by scrolling small chunks of texts at a time. Duolingo style streak to create the habit of reading every day. Also the ability to upload your own book and it will automatically be split into these small chunks.
I vibe coded a tiny MUD-style world sim where LLMs control each character. It's basically a little toy sandbox where LLMs can play around. There's no real goal to this, I just thought that it would be fun, like a more advanced tamagochi.
One of the issues I encountered initially was that the LLMs were repeating a small set of actions and never trying some of the more experimental actions. With a bit of prompt tweaking I was able to get them to branch out a bit, but it still feels like there's a lot of room for improvement on that front. I still haven't figured out how to instill a creative spark for exploration through my prompting skills.
It has been quite exciting to see how quickly a few simple rules can lead to emergent storytelling. One of the actions I added was the ability for the agents to pray to the creator of their world (i.e. me) along with the ability for me to respond in a separate cycle. The first prayer I received was from an agent that decided to wade into a river and kneel, just to offer a moment in stillness. Imagining it is still making me smile.
Unfortunately, I don't have access to enough compute to run a bigger experiment, but I think it would be really interesting to create lots of seed worlds / codebases which exist in a loop. With the twist being that after each cycle the agents can all suggest changes to their world. This would've previously been quite difficult, but I think it could be viable with current agentic programming capabilities. I wonder what a world with different LLM distributions would look like after a few iterations. What kind of worlds would Gemini, Claude, Grok, or ChatGPT create? And what if they're all put in the same world, which ones become the dominant force?
Managed BYOK stateless agent orchestrator called BeeZee: https://beezyai.net/. Basically Claude Cowork / a coding agent on the web but provider agnostic, you own the data and you can connect several nodes to it. Instead of installing an agent for all your machines you have one master agentic server and executor nodes. The server is stateless the data lives on the nodes and in a managed database. I use Supabase and Google KMS so my auth keys are encrypted. Uses Pi agent under the hood. This enables me to code from my phone without a dedicated SSH terminal and without the need to babysit the agent. I describe the feature, off it goes, I close my phone and in 10 mins the results are there. Also using it to support my wife with white collar stuff like Excel analysis, translation, etc. It's a bit buggy but getting better.
An opensource AI analytics tool with option for teams to track everything on a dashboard. Happy to get feedback or contributions: https://getpromptly.xyz
Building Universal mobile devtool — control iOS Simulators, Android Emulators, and real devices from a single dashboard and CLI
GitHub: https://github.com/pranshuchittora/simvyn
Do give it a try, Thanks!
I made an idle version of the 1999 MMORPG "EverQuest". There's maybe around 50 people playing at any given time and has a enthusiastic discord group for it. It's relatively fully-featured to the original game, and has a lot of new mechanics to make the idle format work well. The 3D graphics aspect of it is really more of a screensaver, though, and all game interactions are done through menus.
I recently converted a bunch of stuff to be client side instead of server side (turns out running a real-time MMORPG server is expensive) so there's a new round of bugs I'm still resolving, but it's still fun to play:
Been working on https://localhero.ai, its my service to automate on-brand translations for product teams. I've been doing outreach to Swedish companies/people, getting some good interest from a few that want to automate their localization workflow but don't want the work of maintaining own solutions. Even though you can build a version working with coding agents these days, there is a lot of stuff around it to make it work well over time in a product org. On the tech side for Localhero, one thing I've been working on how it learns from manual edits. Like when a PM or designer tweaks copy in the Localhero UI, those things now better feed back into a translation memory and influence future translations. It's like a self-learning loop, turns out a pretty nice combo of using old-school techniques and offloading some work to LLMs.
Also been spending some time on my old side project https://infrabase.ai, an directory of AI infra related tools. Redesigned the landscape page (https://infrabase.ai/landscape), going through product submissions and content, optimizing a bit for seo/geo.
I'm building a small tool called FormBeep[1] that sends a notification to your phone when someone submits a form on your website.
It started as a client problem, then something which I also experienced so decided to built it. It's just one small script and work seamlessly across platforms.
I have been working on quite a bit of things… but lately I went back to my hobby project of the last year:
It’s like netflix for language, where users can select/create their personal bilangual stories.
I had quite a lot of feedback from HN, friends, random people on the internet and trying to solve the common pain points and find my way around to make it geniunely useful.
- Most people said it’s hard to come up with a story, so I added url grounding. Also added buttons (including HN :)) so people can just click click and get their stories at their level with their interests.
- Made sure people can generate stories without ever signing up
- Each word is highlighted while being read, and the meanings can be checked with a tap. I also added an option for users to read the sentence for being checked how good their pronounciation is.
- Benchmarked 7 different models to get the fastest & highest quality story generation (it’s gemini now) and it’s insanely fast. I might share more about it on the webpage because I am an engineer and I enjoy this stuff lol.
- Added CSV import in Use my words so Anki users can just import their words to study.
- Also people can download their stories as pdf so they can send it to their kindles.
- I am working on a ChatGPT app, so people can just say “@DuoBook give me a Dutch/English story on latest Iranian events” within ChatGPT, but I am a bit afraid that it might be costly lol.
I've built a generic PKCS#11 interface to the Apple's Secure Enclave[1]
Primarily to use in conjunction with OpenVPN. Like secretive or /usr/lib/ssh-keychain.dylib[2], but not just for SSH.
An immobiliser for my car. Had trouble finding devices that would cover the specific attack vectors my car would be susceptible to. Checked my insurance, no specific clauses around immobilisers, check relevant road laws, no issues there.
I have a fairly novel approach to operating it, and in the case of one time theft prevention security through obscurity is actually a great approach. The assailant only has a short time to pull the car apart and solve the puzzle, couple that with genuine security techniques, a physical aspect, and it should be pretty foolproof.
It can still be towed away, etc, not much to be done there except brute force physical blocks. Most cars get stolen here to do crime in that night so it's not as common.
I am working on a HTML-to-PDF converter written from scratch in pure Go. I got tired of using headless browsers for various reasons and decided to give it a try and implement something that I can use internally. However the results have far exceed my expectations and I've decided to open source everything. It's around 10x to 15x faster than wkhtmltopdf, which is by far the fastest headless browser converter. It's 80x-100x faster than a pagedjs. It's even 2x faster than PrinceXML, which is pretty much the most mature and reliable HTML-to-PDF converter on the market. It also produces the smallest PDF size.
I started small as a toy project, but gradually implemented full support for proper block context, flexbox layout, CSS variables, tables, etc. to the point where I have almost full support of all major CSS features (even math functions like calc(), min(), max()).
I'm cleaning up the code right now and will upload it later today or maybe tomorrow here: https://github.com/PureGoPDF
Been working on a solution to my meeting fatigue. I sit in way too many of them where I'm only there "just in case someone has a question" and realized I needed a way to safely not care about my meetings.
The idea is: you join a meeting, hit start on the app, minimize, and go do actual work (or go make a coffee). When someone says your name or any keyword(s) you set, you get a native macOS notification with enough context to jump back in without looking lost. It uses whisper and is 100% local and doesnt leave traces, also very OE friendly.
Would love to hear what you think, especially if you're drowning in meetings too.
I'm writing an essay where I get into how I use GNU Emacs along with gptel (a simple LLM client for Emacs) and Google's Gemini-3 family of models to turn a 1970s-vintage text editor into a futuristic language-learning platform to help me study Latin. I want to show how I liberate poorly aligned, pixelated PDF image scans of century-old Latin textbooks from the Internet Archive and transform them into glorious Org mode documents while preserving important typographic details, nicely formatted tables, and some semantic document metadata. I also want to outline how to integrate a local lemmatizer and dictionary to quickly perform Latin-to-English lookups, and how to send whole sentences to Gemini for a detailed morphological and grammatical breakdown.
I also intend to dig into how to integrate Emacs with tools such as yt-dlp and patreon-dl to grab Latin-language audio content from the Internet, transcode the audio with ffmpeg, load it into the LLM's context window, and send it off for transcription. If the essay isn't already too long, I'll demonstrate how to gather forced-alignment data using local models such as wav2vec2-latin so I can play audio snippets of Latin texts directly from a transcription buffer in Emacs. Lastly, I want show how to leverage Gemini to automatically create multimedia flash cards in Org mode using the anki-editor Emacs minor mode for sentence mining.
I've been plugging away on MadHatter (https://madhatter.app), a web tool for knitting/crochet projects. It works best on desktop!
Why? Many yarncrafters painstakingly build spreadsheets, or try to bend existing general purpose pixel editors to their will. It's time consuming & frustrating.
Along the way, I've solved a bunch of problems:
- Automatic decreases (shapes the hat) / overstitching markers (shows when multiple colors are used in the same row)
- Parameterized designs, like waves, trees, geometric shapes. No more manually moving an object by a couple of pixels, it's a simple click & drag.
- Color palette merging (can't delete a color if you already use it in a pattern!)
- Export to PDF (so you can print it or stick it on a tablet)
- Repeat previews (visualize the pattern as it repeats horizontally)
The core feature that makes this more useful than most general purpose editors is that the canvas is continuous.If you drag a shape near the right edge of the canvas, you'll see it "wrapping around" onto the right edge.
This reflects the 3D reality of a hat!
Working on Fairvisor — a tool for API governance and usage control.
The problem: one buggy integration, scraper, or infinite retry loop can suddenly explode your API costs or overload infrastructure before anyone notices.
Fairvisor acts as a guardrail in front of your API:
per-tenant and per-route rate limits
request budgets and soft/hard caps
anomaly alerts for sudden spikes
The edge component is open source (OpenResty / Nginx + Lua) and the SaaS part provides policy management and audit.
Still early, validating whether teams would use something like this instead of building internal scripts.
https://github.com/fairvisor/edge