I've been programming in some capacity since I was about 9 years old, but only recently have I begun attempting serious projects. Here are some of my projects:
Zebu is "a system for smoothly and ergonomically creating, managing, and interacting with digital Zettelkästen." I was inspired by other Zettelkästen software like Zettlr, Obsidian, and especially TiddlyWiki but wanted a solution that allowed me to use whatever file format I wanted (Typst is especially important for my mathematical ideas) and my native editor (Neovim in my case). After discussing my hope for such a program with my friend Josh, he suggested a system that relies on filesystem extended attributes to manage IDs. This allows the storage and management of Zettel to integrate fairly smoothly into the filesystem and avoids the need for a centralized database that must constantly be updated.
Xedittr is a very new
project to create "a command-line utility to quickly and easily edit file
xattrs with your native editor and favorite serialization format." The main
ideas are a) manipulation of xattrs can be made more ergonomic by converting
them into common plain-text data serialization formats, and b) opening a
temporary buffer git commit
-style makes editing these converted
representations quick and easy. The easy part is converting the edited buffer
back into xattrs; most simple datatypes have fairly strightforward encodings
into raw bytes (although there is some room for user discretion, so I intend to
make this configurable). The hard part is taking raw bytes and trying to figure
out what typed data they represent. For this, I plan to implement a handful of
heuristic measures of whether or not a certain byte string is likely to be most
usefully read as a given type, and fallback to user-specified behavior in cases
where these fallible heuristics are unacceptable.