Posted by david927 3/30/2025
Ask HN: What are you working on? (March 2025)
Monokai Pro has been running for more than 5 years now for VSCode and Sublime Text, and the original Monokai almost 20 years.
e.g. you init a project (`obelisq init`) and use `obelisq set -k <key> -v <value>` (e.g. `obelisq set -k SERVICE_KEY -v ABCDEF`) to set your environment variables:
OBELISQ_PUBLIC_KEY=0344ecbf96c3e01262402247b97231a22c0197d17121dd9c7d1b999faed1d54ac4
SERVICE_KEY=047ca044c1a59114246d5c5122ad1bdecfafa3c999fae5629181df54[...]
MY_SECRET=049072d4ffc233ed77f8d682d9fe3a75114987d496b06d44269600e8be[...]
When you run `obelisq generate`, code will be generated that allows you to do this: // `get` is type-safe, `mySecret` is number
// decryption of the value occurs when `get` is called
const mySecret= obelisq.get('MY_SECRET')
Partially inspired by my own article: https://www.carlos-menezes.com/post/type-first-config- 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
1. https://www.oreilly.com/library/view/ai-engineering/97810981...
2. https://gist.github.com/blakesanie/dde3a2b7e698f52f389532b4b...
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
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.
- 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.
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.
Don't forget File Separator 0x1c
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.
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