Show HN: Defeating AI by making knowledge accessible to Humans (github.com)
I started writing this because I live in Cambodia and all the dictionary apps meet at least two of the following criteria: Slow, Online-only, Incomplete. So I started making .slob files for aard dictionary to help with learning the Khmer language. But aard only searches inside the headwords and there was no iOS port for my coworkers. I looked at other programs (like stardict), but they didn't seem to have any releases in ages and were super buggy. So a couple years ago I made a SQLite3 based web app so that it'd be easy to share with other people. But I couldn't help feeling like maybe SQLite wasn't the right solution. (SQLite databases aren't compressed, and the runtime for SQLite is 1.3mb and I still had to hack it to get it to work for my dictionary, kinda slow and if I was to make more indexes the file size would balloon drastically. Also I hate editing database files)
So a few months ago I wrote my own binary dictionary format and it's fast and tiny and has some really nice features. For the dictionaries I just write a tsv file and use my generator program to turn it into a .peak.zst file.
I put together examples for a bunch of different languages, but Khmer is the most complete one. See the list at https://peakslab.org
1 comment
[ 5.1 ms ] story [ 25.4 ms ] threadI have a sheet music app built with this at https://peakslab.org/khmermusic/
It's stupid simple to setup, just put media files (webp, webm opus, jbig2) in a folder and run ./peakgen mediafolder/ outfile.slab Then just edit the config.js to include that outfile.slab and you've got a pwa.