I've always liked Rust's syntax but struggled with ownership, and I even tried writing a language of my own. Lisette takes a route I hadn't considered, using Rust-style syntax to compile to Go.
NLP study notes from the University of Melbourne's COMP90042: GPT, BERT, T5 and RLHF, plus prompting, instruction tuning, PEFT and LoRA.
My NLP study notes from COMP90042 at the University of Melbourne: feedforward networks, RNNs, LSTMs and Transformers, along with TF-IDF, PMI, Word2Vec and word-vector evaluation.
NLP study notes from the University of Melbourne's COMP90042: from text preprocessing, BPE and N-gram language models to text classification, POS tagging, HMMs and Viterbi.
After adding a Mac mini, a giant nix config and manually copied dotfiles became too much hassle. So I split the system config into composable modules and wrote envctl, a small Go tool that backs up and restores files from a manifest.
After a year and a half, false-positive matches in my Geosite converter were still unresolved. I rewrote the service and added a rule-preview panel.
My second COMP90025 assignment: partitioning a dictionary across MPI processes and using Bloom filters to cut communication. From a 32-minute BK-tree baseline to under two seconds.
After a Raycast update, the existing relay projects stopped working. I reverse-engineered the new request signature and built raycast2api, which runs on Cloudflare Workers, in Docker, or as a standalone binary.
After managing all my software with Homebrew for several years, problems with versions and dependencies kept increasing, so I introduced nix-darwin: command-line tools go to Nix, GUI applications remain with Homebrew, and language environments are still managed by mise.
I used oh-my-zsh for years, but opening the terminal kept getting slower, so I switched to zinit. I now lazy-load plugins with Turbo mode, split the config into several modules, and carried over the oh-my-zsh bits I used regularly.