← Blog
Notes
2026-05-01Teaching Myself CS: The PlanA structured self-study plan for computer science fundamentals — algorithms, systems, databases, networks, and mathematics, with resources and a realistic timeline.→2026-04-20Building a Second Brain with Obsidian, Zettelkasten, and an AI AgentBuilding a second brain with Obsidian and Zettelkasten — atomic notes, linking ideas, periodic reviews, and an AI agent that surfaces connections you'd otherwise miss.→2026-04-15Fixing Silent $0 Streaming Costs in AgentBudget: An OSS ContributionAn OSS contribution to AgentBudget: fixing silent $0 costs for streaming responses by hooking into the token usage callbacks that LangChain emits post-stream.→2026-04-14Building a Local AI Stack: Hermes, Bifrost, Telegram, and CamoufoxBuilding a local AI stack: Hermes as the agent framework, Bifrost for LLM routing, a Telegram bot as the interface, and Camoufox for browser automation — all running on local hardware.→2026-03-13Freeseek: Turning DeepSeek's Web Chat into an OpenAI-Compatible APIFreeseek proxies DeepSeek's web chat interface into an OpenAI-compatible API endpoint, enabling local tools and agents to use DeepSeek R1 without an API key.→2026-03-02Fixing Parallel Tool Call Streaming in Bifrost: An OSS Bug HuntDebugging a parallel tool call streaming bug in Bifrost — how delta chunks from different tool calls interleave incorrectly and the fix that restores correct JSON assembly.→2026-02-18Many Small Tasks, One Deadline: Running Parallel AI Agents with Git WorktreesRunning parallel AI coding agents with Git worktrees — isolate each task to its own working tree, fire agents concurrently, and merge results without conflicts.→2025-12-03GitGit internals and practical patterns — objects model, rebase vs merge, worktrees, reflog recovery, and the commands that matter for day-to-day engineering work.→2025-09-19Gray CodeGray code generates binary sequences where consecutive values differ by exactly one bit — the algorithm, its uses in hardware and error correction, and a CSES solution.→2025-09-19Bit StringsCSES bit string enumeration — counting and generating n-character strings over a binary alphabet using recursion and bitmask techniques.→2025-09-19Two SetsCSES two sets — partitioning integers 1..n into two subsets with equal sum, with a proof of when this is possible and an O(n) construction.→2025-09-18PermutationsCSES permutations — constructing a permutation of 1..n with no two adjacent elements differing by 1, using an interleaving strategy.→2025-09-18Increasing ArrayCSES increasing array — the minimum number of operations to make an array non-decreasing when you can only increment elements.→2025-09-18RepeatationsCSES repetitions — finding the longest run of a single character in a string in a single linear pass.→2025-09-18Missing NumberCSES missing number — finding the missing integer in a permutation of 1..n in O(n) time using the arithmetic sum formula.→2025-09-18Weird AlgorithmCSES weird algorithm (Collatz conjecture) — simulating the 3n+1 sequence and the open question of whether it always terminates.→2024-01-14markdown stuffA reference for Hugo-flavoured Markdown — shortcodes, callout blocks, math rendering with KaTeX, and code block options used on this site.→