https://www.gravatar.com/avatar/485df9434f4908b5f6fab0750c113972?s=240&d=mp

Han

Gorae: Your AI-Powered TUI Librarian

Gorae: A terminal-first librarian built for speed, minimalism, and flow—now with a conversational AI assistant baked right in.

📣 What’s New: Gorae’s AI co-reader has grown up — persistent chat sessions, a model that can write notes into your library (tool calling), your own slash-command skills, and optional web search. Plus Markdown notes with [[wikilinks]], navigable search that opens a PDF at the exact page, and built-in themes (:theme). Bring your own model with OpenAI or run local via Ollama. Existing users: pull the latest release.

App Demo GIFs on Linux

Creating High-Quality App Demo GIFs on Linux: The Professional Workflow

Motivation

I recently built a TUI-based librarian app, namely Gorae, for managing research papers, designed specifically for Vim and terminal lovers. I needed a polished demo for the README, but simple tools like Peek fell short—they lack the editing capabilities and text overlays needed for a professional presentation.

To do the project justice, I established a robust workflow on Arch Linux using OBS Studio for capture, Kdenlive for editing, and Gifski for high-fidelity compression.

uv workspace: effective management of Python apps

Understanding uv Workspaces

The official uv website explains workspaces very clearly:

Inspired by Cargo, a uv workspace is a collection of one or more Python packages (workspace members) managed together in a single repo. Each package has its own pyproject.toml, but the workspace shares one lockfile, keeping dependencies consistent across apps and libraries. Commands like uv lock operate on the whole workspace, while uv run and uv sync default to the workspace root but can target a specific member via --package 1.

Causal Inference Part 1: Causation and Correlation

Most of the time when we say “my model learned something,” what it actually learned is a bunch of very smart correlations. If users who click A also tend to click B, or if certain pixels tend to appear together in cat photos, our models will happily latch onto those patterns and exploit them. That’s powerful—and often enough for prediction—but it’s not the same as understanding what would happen if we actually changed something in the world: raised a price, changed a policy, or shipped a new feature.

Docker Tutorial Part 1: Basics

This is part of my Docker Basics series — introductory guides to help you get started with Docker, learn key concepts, and build your skills step by step.

Docker Fundamentals (Part 1)

Software systems frequently exhibit environment-dependent behavior: dependency versions drift, filesystem paths diverge, and minor operating-system differences produce major failures. Containerization addresses this by packaging an application together with its runtime dependencies so that a single artifact executes consistently across development laptops, continuous-integration pipelines, and production clusters. Formally: same package $\rightarrow$ same behavior across environments.

Docker Tutorial Part 2: Basic Commands

This is part of my Docker Basics series — introductory guides to help you get started with Docker, learn key concepts, and build your skills step by step.

Common Commands

This is a no-frills cheat sheet for the Docker commands you’ll reach for most of the time, with tiny runnable examples you can copy/paste.