Posted by david927 20 hours ago
Ask HN: What Are You Working On? (March 2026)
The first thing I cleaned up was TCL-Edit <https://gitlab.com/siddfinch/tcl-editor>, a small Tcl/Tk text editor I wrote a long time ago. After seeing the Rust clone of Microsoft EDIT, I realized the obvious next step was to build a Tcl/Tk clone of the Rust clone of Microsoft Edit. Recursion shouldn't be limited to code.
I also built a tiny URL system in Perl <https://gitlab.com/siddfinch/perl-tiny-url>, meant to run locally. The idea is simple: short URLs for internal/VPN resources per client. I usually spin up a small daemon (or container) per client and get a dashboard of links I use frequently or recently.
Security is intentionally minimal since it's local, which conveniently lets me ignore authentication and other responsible behavior.
Goal for the year: Continue to open stuff42.tar.gz, pick something, clean it up just enough, and release it, and not have it by the end of the year.
Might even choose a language that might even be described as "modern."
It's like a carfax but for your home, although the intention is more to create an interesting historical narrative that inspires people to care about the history of their home rather than as a tool for inspecting home issues before buying.
My target customer is realtors who want to inspire buyers to take on historic homes that may need a lot of work. Also home owners themselves of course.
If this became the norm, somehow, it would be a really helpful tool for both buyers and sellers.
1 - actual css static analysis -- consume html + css, and provide tooling to preview what properties are inherited given the context you're in -- what you're overwriting, what display mode you're in. If there's inconsistent display modes depending on where in the html you are.
2 - a reactive html scripting language which using html as the source of truth, and synchronizes html elements through their relationships to each other
i only have prototypes, and unfortunately given the climate i feel i am the only person who wants these tools.. but every few weeks i get to sit down and get some progress and that's nice
The other project I am continuing to work on is Rad [1], a programming language tailor made for writing CLI scripts. It's not for enterprise software, it specializes specifically in CLI, offering all the essentials built-in, such as a declarative approach to arguments and generated help (as opposed to Bash where you have to roll your own arg parsing and help strings each time).
I've given myself 6 months
It's a bit scary basically 180ing like this but I figure if I don't try it now I never will
I've already started prototyping various ideas, and to be honest just sitting down and spending time doing this has been really quite lovely
One thing I'm finding fun is slowly unearthing what I actually find interesting
I started with messing around in minecraft and tinkering with rimworld-like game ideas, but I'm slowly moving away from them as I've been tinkering more and more
Don't get me wrong, I do want to revisit them at some point in the future, but I do find myself circling more around narrative, simulations and zachlikes
It's a bit of an odd mix and in some ways they look like paradox style games, but I'm well aware that taking one of those behemoths on is going to be a bit silly, so I'm trying to slim down until I get to a kernel that I actually find enjoyable tinkering with
A toy if you will
Currently I'm trying to work out if there's anything interesting in custom unit design, basically unpicking how games like rollercoaster tycoon's coaster design maps to stats like excitement ratings and seeing how that might mix with old school point buy systems
It feels like it might be small enough to be a good toy and I'm having fun tinkering with it, but I have no idea whether other people will xD
It might honestly be too niche for anyone and I've successfully optimised for an audience of one :shrug:
I have no illusions that this is actually something in capable of building to an actual release-able state but it’s fun to tinker with.
Most of the work as of today is in a branch, can see the language spec at https://github.com/cretz/duralade/blob/initial-runtime/docs/..., and some samples at https://github.com/cretz/duralade/tree/initial-runtime/sampl....
May not amount to anything, but the ideas/concepts of this durable language are quite nice.
https://github.com/dbos-inc/dbos-demo-apps/blob/main/python/...
Admittedly the lang spec doesn't do a great job at the justification side, but the engine spec adjacent to it at https://github.com/cretz/duralade/blob/initial-runtime/docs/... that has sections showing CLI/API commands can help make it clearer where this runtime is unique.
PS - The results are entirely obvious.
No unity, no engines. Only a custom homemade engine https://github.com/willtobyte/carimbo
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