Top
Best
New

Posted by david927 3/30/2025

Ask HN: What are you working on? (March 2025)

What are you working on? Any new ideas that you're thinking about?
390 points | 997 commentspage 20
RobinL 3/31/2025|
- A FOSS Python package for record linkage and deduplication at scale called Splink: https://moj-analytical-services.github.io/splink/

- A library for fast, accurate matching (geocoding) of UK addresses that uses Splink under the hood: https://github.com/RobinL/uk_address_matcher

- An npm library that generates maths mental arithmetic problems that align to the UK national curriculum, that can be used to power maths games: https://github.com/RobinL/maths-game-problem-generator

- A breakout maths game that uses the above: https://github.com/RobinL/maths-game-problem-generator

ww520 3/31/2025||
This week I got back into Zig. I wanted to build a Zig library from end to end to find out all the wrinkles in publishing it as a package. Ended up building a topological sorting library that does the followings:

- Build dependency graph from dependency pairs.

- Generate the topological sort from the graph.

- Ordered parallel task sets (i.e. subsets of nodes that can run in parallel, within the overall topological order).

- Cycle detection and reporting the cyclical nodes.

https://github.com/williamw520/toposort

It's feature complete, but I still have problem publishing it as a library. Kept getting "unable to find module 'toposort'" error when importing it in a separate project.

Edit: Alright, finally figured out why the module was not published. The default project creation template in Zig 15 uses createModule() in the generated build.zig, which creates a private module. Switched to use addModule() to create a public module and my library can be imported and used by other projects.

noosphr 3/31/2025||
The AI company I've been working at ran out of money last week so I'm taking a month long break.

I've been playing around with defining a standard that is easy to implement for serializing tabular data using the ASCII delimiters.

So far I've got:

    <group> ::= GS | <record>
    <record> ::= RS <group> | <unit>
    <unit> ::=  <high-ascii> | US <record>
    <high-ascii> ::= 0x20 <unit> | ... | 0x7E <unit>
    
Which seems like a good way to avoid all the trouble of escaping separators in CSV files, if a bit clunky since you need to end each record with US RS and each file with US RS GS.

I also accidentally found another test that _all_ LLMs fail at (including all the reasoning models): the ability to decide if a given string is derivable from a grammar. I was asking for tests before I started coding and _every_ frontier model gave me obvious garbage. I've not seen such bad performance on such low hanging fruit for automated training in over a year.

mac3n 3/31/2025|
Hey, good to see someone using ASCII

Don't forget File Separator 0x1c

smnm 3/31/2025||
I built an app to help in improving English vocabulary:

https://www.woor.app/

https://apps.apple.com/us/app/woor-vocabulary/id6740453162

Initially started as small webapp to help me learn Dutch words. Made it out of the frustration that in Duolingo I cannot specify the words I want to learn and Quizlet exercising and progression felt limited. I also wanted to target the specific meanings of the words.

Then I decided to try out CapacitorJS and wrapped it into the mobile app. For now only English is available as the target language as it was easier to validate the content, but more languages are coming.

Along with it also started the podcast with language tutors about the teaching & tech. Please find the links here: https://www.woor.app/tutorandtech

dskhatri 3/31/2025||
I'm working on an interactive book that introduces young readers to the world of entrepreneurship. Readers get to join the protagonist, Daphne, on a fun, week-long adventure launching her own mini-businesses. Readers help her make smart decisions, solve fun challenges, and learn about money and problem-solving in the process. Featuring several storylines in a single book, readers learn about the fundamentals of business, smart saving, and the rewards of creative effort.

https://tendollaradventure.com

The book has been a fun endeavor in both writing the manuscript and code! On the latter, I wrote an exporter for Twinery to Org Mode and an Emacs Org export backend to do the reverse.

The book is currently open to beta readers - Happy to let a few more in through the sign up page here: https://tendollaradventure.com/#get-notified

tonyedgecombe 3/31/2025||
I'm working on a PostScript interpreter. This is a retirement project. I wanted something substantial to sink my teeth into without any commercial pressure. I wanted to see if I could get back that intrinsic motivation that I for had for programming before I started my career. Back in the eighties I worked for the QMS distributor in the UK, QMS were Adobe's second OEM after Apple and made a range of PostScript printers. I was working in support at the time and would never have thought of taking on a project like this.

I have an original Apple LaserWriter which I can use through the serial port (but it won't print). I've pulled the ROM's in it and got them working through the MAME game emulator. This is great as I can debug the 68000 code, for instance I was able to reverse engineer the random number generator and the password for internaldict. Ghostscript is handy as well although I try not to rely on it too much as there are some differences between the two implementations.

The plan is to keep it as close as possible to the LaserWriter so that means level 1. PostScript is quite interesting in that it starts executing PostScript code as soon as you power on the printer. That code is responsible for initialising the printer, handling errors, managing the serial ports then receiving and executing the incoming PostScript job. You can load and dump this internal code with a simple script.

The interpreter is complete along with the 125 programming operators, core types and error handlers. The next stage is the graphics operators. I'm going to target PDF for output as the drawing model is the same as PostScript. I'm assuming that handling the fonts is going to be the bulk of the work.

It's written in Rust, so far about 14,000 lines and 650 unit tests. In some ways it would have been easier in C as I could have followed the exact memory layout in the original interpreter however I really dislike C.

keepamovin 3/31/2025||
Working on a text client for the web: https://youtu.be/Q_w6_zDwNWM

JavaScript works, scrolling - but layout is still being figured out! Also missing are form controls, etc etc.

It's meant to just be text (no images, etc) and to work in your terminal. It's NOT meant to alter/condense the layout to something like "reader mode" - just to be a faithful "GUI -> TUI" rendering in the terminal.

Like Lynx, but upgraded for the modern web. So maybe I'll call it Jaguar, but probably not! The idea is that other options like Brow.sh may be overcomplicated, hard to maintain, focused on a kind of graphical fidelity. Whereas this is more BBS style text only, but still usable. Minimum viable text, so to speak.

Leave your email if you want to know when it's ready to try out: https://tally.so/r/wbzYzo

notreallymy 3/31/2025||
I built https://emojithis.com, which automatically adds emojis to text. Although it’s essentially an AI wrapper, with meaningful UX and some useful touches, there’s something surprisingly useful in there. My friends and I use it a lot, and the people who try it tend to come back!
jonplackett 3/30/2025||
I just launched ‘The Phonics App’ to teach kids phonics.

I made a v1 about 5 years ago just for my daughter because I didn’t like any of the apps available. They were just games with a sprinkling of learning on top. She’d spend hours on there and learn F all except how to be addicted to dopamine.

So I made something very clean and very simple that we’d do together for 3 minutes a day. She learned to read really fast!

But… then I forgot all about it for 4 years, only remembering it when my second daughter needed to learn to read. She’s 3 and I taught her the first 26 sounds already.

At this point I wondered if it’d be good for other people so I contacted a phonics expert and they liked it too, so we spent the last 6 months making it into a proper app.

https://apps.apple.com/app/the-phonics-app/id6742649576

It’s going well so far. Lots of lovely messages from parents! If you have a 3-6 y old please let me know what you think of it!

godshatter 3/31/2025|
I've been thinking about hobby projects I can work on in retirement (in a few years) that have a large scope that I would find fun. So, I've started work on a game development library in C that combines a few projects I've started over the years but never finished. It's not very far yet.

I'm building the 2d parts of it in the GLFW library and modern OpenGL (this will eventually also be used as an overlay system when I get to the 3d portions of the project). I'm also adding in simple text menuing so I can quickly build text prototypes of the games so I can also be working on game data structures and basic mechanics while the graphical engine comes together.

So far I've started two basic games, an old school rogue-like on a large scale using tiles and a similar game that combines factory building with the rogue-like parts. I have plans to bring in some other games that will stretch different parts of the engine.

More comments...