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.
7 views
Things I studied and noted down. For courses, see EDU.
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.
7 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…
5 views
A monorepo keeps the source for many projects in a single version-controlled repository. This article covers what a monorepo is, its history, how far a lightweight setup like pnpm workspaces can take us, and what full-s…
5 views
The LLM market shifts fast. Closed-API and open-weight, English-centric and multilingual, cloud and self-hosted, models specialized for Korean — all sit alongside each other.
4 views
The word "agent" is used in several senses, which is a confusing situation. Script automation is called an agent, and so is the shape of an LLM calling tools.
4 views
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…
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.
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…
For horoscopes, the product result is the expected sign set for one date and type, not one existing row. A single sign does not mean that the batch is ready.
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…
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.
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.
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…
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.
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.
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…
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…
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.
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.
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.
Calling a public-sector or third-party OpenAPI directly from the client gets the first screen up quickly. Run it for a few days, though, and the same kinds of incidents repeat — leaked keys, surprising result codes, pro…