Hello there! 馃惂馃惂馃惂

Welcome to Occamist’s blog about software engineering 馃寣

yomitan-okinawa

Laverna x Yomitan

Quick News AUR bot attack poisoned 1% (1500) of entire repositories (150,000) in AUR. I am back to firefox browser instead of brave browser which was installed from AUR. TypeScript 7 breaks the Astro language server. TypeScript 7.0 shipped as a ground-up rewrite in Go (10x faster builds, no argument there), but it dropped the programmatic compiler API that tools rely on to embed. Astro, Vue, and Svelte all lean on that API for their language servers, so right now just lost editor support, not a broken build but a broken LSP. Go Report Card is archived. The repo was archived on July 1st and if you were relying on the hosted badge, it鈥檚 time to self-host or drop it completely. Laverna (my personal project for language learning) gets an audio HTTP server for Yomitan. We鈥檒l drill down into the last one, but first let鈥檚 talk about what Yomitan actually is. ...

July 11, 2026 路 4 min 路 705 words 路 Talha Altinel
william-of-ockham

Wormhole out, Occam in

Spring cleaning season is upon us! I just wanted to announce some new changes and focus on new hobby projects while summarizing what I have been up to in the last 5-6 months. Bo (my tree tree fork) I must say, this went through four distinct phases: easy at first, then hard, then easy again once the C interop settled, then hard again when it became fully Zig with Zig鈥檚 C types. ...

May 20, 2026 路 6 min 路 1156 words 路 Talha Altinel
bodhi-tree

Going Back in Time to Reinvent the Tree with Zig

Over the Christmas holiday, I migrated the classic UNIX tree utility to Zig, creating a modernized fork called bo. The original tree project has been around since the 90s, displaying directory structures in a hierarchical format. While the C codebase is elegant, it carries decades of legacy baggage. Obsolete platform support, ancient Makefile, and preprocessing macros for long-dead operating systems. The migration resulted in a lot of deleting which is a lot of fun and I replaced the Makefile with Zig鈥檚 build system, removed support for OS/2 and proprietary HP systems, deleted the archaic .lsm metadata format, and embedded the man page directly into the binary. This post walks through the technical decisions and trade-offs of modernizing a 30-year-old C project. ...

January 4, 2026 路 6 min 路 1226 words 路 Talha Altinel
temple-image

Making Laverna Anki Addon

Recently, I鈥檝e been working on simplifying the Laverna CLI integration with Anki. What seemed challenging during the planning phase turned out to be elegant in execution. Here鈥檚 a summary of the challenges and takeaways. The Original Workflow Three months ago, I built an integration between Laverna CLI and Anki with this workflow: User downloads a custom Cloze note type (note-type.apkg) from the repository and then imports to Anki (one-time setup) User prepares CSV data in the expected format User runs Laverna CLI, which outputs enriched CSV User manually imports the CSV via Anki鈥檚 deck import tab Everything looked normal on the surface, but steps 1 and 4 were cumbersome and repetitive. Since Anki doesn鈥檛 provide an official SDK or REST API, I needed to find another approach. Step 1 and 4 were also more error prone since it contained my internal app logic. ...

December 27, 2025 路 5 min 路 878 words 路 Talha Altinel
jellyfish-image

Anki Feature For Laverna CLI

In this post, I announce an overhaul for Laverna CLI and new version which supports the new subcommands such as run and anki. The Recap In this blog post I have introduced Laverna CLI which was a language learning tool designed to swallow Google鈥檚 speech API. It was immensely useful but it lacked some features such as Anki integration. The New Anki Integration Starting with v0.1.0, users can use the new anki command to create anki decks with laverna CLI. ...

October 8, 2025 路 4 min 路 653 words 路 Talha Altinel