SQLite — A Single-File DB for Local Apps
SQLite is an embedded database that holds a SQL database in a single file. It is one of the most frequently chosen options for local storage in desktop and mobile apps.
18 views
Things I studied and noted down. For courses, see EDU.
AI/LLM topics — agents, prompts
HTML, CSS, JS, HTTP, URL basics
TypeScript, Java, Python, Rust
Data structures, Big-O, patterns
React, Next.js, Tauri, Tailwind
Spring, FastAPI, SQL
Claude Code · MCP · Context7 · Figma — overview of AI coding tools
Deployment options and decision criteria
PostgreSQL · Kafka · data strategy notes
Docker, Compose, Caddy, SSH
Windows vs Mac and other dev-environment notes
Cross-platform options compared (Tauri · Flutter · RN)
pnpm, uv, Gradle, Git, regex
KISS · DRY · YAGNI · naming — development philosophy
OAuth · JWT · security fundamentals
Testcontainers, Vitest, pytest
Searching, reading docs, debugging
SQLite is an embedded database that holds a SQL database in a single file. It is one of the most frequently chosen options for local storage in desktop and mobile apps.
18 views
cmd.exe is the command processor on Windows NT-family systems. It debuted in 1993 with Windows NT 3.1 and ships with every Windows release. Since PowerShell arrived, cmd's role as an entry point for new code has shrunk,…
15 views
Developing on Windows often runs into "Linux-only tools" — Docker, certain CLIs, shell scripts, compilation environments. WSL2 raises a real Linux environment inside the same machine without dual-booting or a heavyweigh…
13 views
These three acronyms are often cited together as software design principles. Their origins and meanings differ slightly, and some interpretations even conflict. This article covers the origin, intent, and frequently con…
12 views
An embedding is the result of mapping text (or images · code) to fixed-dimensional real-valued vectors. On top of the assumption that semantically close items sit close in the vector space, search · clustering · classif…
12 views
Content initialization is one ordered pipeline: create tables, correct the schema, seed static data, and upsert notes and courses. Even idempotent steps can observe an intermediate state when an operator double-clicks o…
Building an image does not prove that users can use a healthy path. Bind the tested commit to the running image and run a real DB-reading smoke after readiness.
An HTTP request ends when it returns a response, while a Kafka job may finish later. Pass a separate correlation header instead of changing the business JSON, so the flow remains traceable without breaking the payload c…
A Tauri build with output: export does not contain Next.js server routes or redirects. Sharing the same application code does not mean that web and desktop have the same runtime capabilities.
The Java API and Python voice engine are separate processes, so a protobuf contract makes change and failure more explicit than an untyped internal call. voice/v1/voice.proto defines synthesis, the voice catalog, and ca…
The absence of an exception does not mean that a scheduled job succeeded. When jobs catch errors and return None, error, counts, or partial states, monitoring cannot distinguish normal empty work from a failure.
A live process, a service ready for its critical path, and a service with every optional feature working are different facts. Putting them into one ready value can turn an optional model outage into a full restart, whil…
A batch result is the full expected member set under one batch key, not one existing row. This note defines read and write rules that never mistake a partial set for completion.
Observability answers incident questions; it is not a contest to store the most data. Collect Rate, Errors, and Duration by route template, then connect logs and asynchronous work with request context.
An example content service serves the same screens through two deliberate data boundaries. Docker SSR reads PostgreSQL, while a static host builds pages from the /api/export snapshot captured at delivery time. Forcing b…
WebRTC avoids carrying media through the Java API, but browsers still need connectivity, NAT traversal, and sometimes relay infrastructure. An example service therefore keeps the text room as the source of truth and tre…
Browser MIME and extensions are claims, not proof. A CMS image written to a public bind mount needs byte-signature checks and atomic publication before it becomes visible.
File upload and search availability are different states. Only a search copy that finished parsing, embedding, and storage—and has processed = TRUE—may become evidence for a user answer.
Content search commonly uses ILIKE '%term%' over post titles, descriptions, slugs, and lesson bodies. Escaping the query and limiting its length are safety contracts; because of the leading and trailing wildcards, a nor…
If an integration test cannot create its schema but continues into entity tests, the delayed failures lose the original cause. A missing migration directory, zero SQL files, a read error, or one failed statement is a bo…
A running container may still lack a database connection, required tables, or an internal dependency. Liveness says the process is alive; readiness says it can receive user traffic.
An operational database cannot be changed in one shot like a fresh database. Preserve existing rows, converge to the same state on repeated runs, and expose enough failure context for a safe retry.
Implementation and completion are different decisions. Connect questions from product, design, engineering, users, and operations to a test or a record so another person can reproduce the conclusion.
As a library grows, finding the same article again becomes harder. Search and categories help people discover something new. Recent history helps them return to something known. Neither replaces the other.
A dashboard is a mirror of the domains your product owns. With 5 domains and only 3 widgets, users instinctively suspect "the other 2 must be unfinished." Uniformity is less an aesthetic concern than a feature-recogniti…