Kenji Tanaka is a RECATOOLS editorial persona focused on developer tools, cloud platforms, DevOps, CI/CD, software supply chains, and infrastructure trends. Articles under this byline help technical readers understand how tooling changes affect software delivery, security, cost, and reliability.

About this byline

Kenji Tanaka is a RECATOOLS editorial persona for developer tools, cloud, DevOps, and software supply-chain coverage. Articles are produced and reviewed under RECATOOLS editorial supervision.

Editorial responsibility for this byline rests with Jeffrey Tan (Tan Seng Fei), RECASYS, Singapore. Our Editorial Policy sets out how sources are reviewed, how AI-assisted workflows are used, and how editorial desks and personas are defined.

210
Articles
Developer Tools
Primary beat
Apr 2026
Writing since
~1676 min
Total reading

Articles Showing 161–170 of 210

The 128-bit layouts of UUID v4 and v7 side by side, differing only in the leading 48 bits: random in a v4, a Unix millisecond timestamp in a v7.
Developer Tools

UUID v4 vs v7 in 2026: v1 Was Never the Sortable One

RFC 9562 replaced RFC 4122 in May 2024, and the advice most codebases still follow did not update with it. UUID v1 is time-based but not time-sortable: its leading field is time_low, which wraps every 429.4967 seconds — sixty v1s generated a minute apart came out 59 of 60 out of sorted order in our own run, against 0 for the same instants as v7. Plus the v4 collision arithmetic done properly (a billion a second for 100 years is 60.80%, not "less than 50%"), and the index-locality mechanism in the database vendors' own words.

25 Jul 2026 · 19 min read
A JWT split into three panels: header and payload shown decoded and readable, the signature panel hatched and padlocked as checkable only with the key.
Developer Tools

Decoding a JWT Is Not Verifying It

A decoder shows you the claims; it does not tell you whether to believe them. RFC 7519 §7.2 lists ten validation steps and a browser page can perform six — step 7, the signature, needs a key it does not have. It closes with captured container runs showing a tampered payload decoding perfectly while verification fails, an alg:none forgery and an RS256-to-HS256 key confusion sailing past a decoder, and the morning we found our own tool stamping an unsigned admin token "Valid".

25 Jul 2026 · 17 min read
A sentence encoded to base64 and decoded straight back, with a struck-through key between the two arrows marking that no key is involved.
Developer Tools

Encoding Is Not Encryption: Base64, Percent-Encoding and the Confusion That Leaks Data

The RFC that defines Base64 says in its own Security Considerations that base encoding "visually hides" a password but "does not provide any computational confidentiality" — and names the exact leak scenario. We reverse the IETF's own worked Basic-auth credential with one command and no key, measure the size tax at +33.3351% on a real 76,766-byte PNG, and then settle the quieter confusion: why + means a space in form data but a literal plus sign in a URL.

25 Jul 2026 · 16 min read
A wall of stacked shipping containers seen flat-on, forming a grid of doors in pale green and grey
AI & ML

Serve an LLM with vLLM on CPU in Docker: Learn the Production Engine Without a GPU (2026)

We ran vLLM v0.25.1's official CPU image in Docker on Apple Silicon, dodged a 10 GB CUDA decoy, survived three traps, and served Qwen3-0.6B over a real OpenAI-compatible API — at a derived 12.5 tok/s.

22 Jul 2026 · 23 min read
Watercolour paints and brushes arranged on a surface.
AI & ML

Run ComfyUI on CPU in Docker: Node-Graph Image Generation Without a GPU (2026)

We pinned ComfyUI v0.28.0 in a python:3.13-slim container, hit a torchaudio ABI trap and an 8 GB OOM kill, and still rendered a real image in 51 s on CPU.

22 Jul 2026 · 16 min read
Multiple railway tracks with signals and buildings in an urban setting during the day.
AI & ML

Self-Host LiteLLM with Docker: One OpenAI-Compatible Endpoint for Every Model (2026)

We ran LiteLLM v1.93.0 against a local Ollama model in Docker: pinned tags, a 4-line config, token metering, and the wrong answer that proves a point.

22 Jul 2026 · 14 min read
A black and white close-up of a studio microphone.
AI & ML

How to Transcribe Speech Offline with whisper.cpp in Docker (2026)

We ran whisper.cpp v1.9.1 in Docker: an amd64-only tag trap, a SIGILL crash, a gcc fp16 build fix — then 7.3 s of speech transcribed in 1.25 s on CPU.

22 Jul 2026 · 15 min read
A software developer working at a computer.
AI & ML

How to Run Aider With a Local Ollama Model in Docker (2026)

We ran aider v0.86.2 in Docker against a 986 MB local Qwen model. Same prompt twice: one hallucinated diff, one clean auto-commit. Context decided it.

21 Jul 2026 · 17 min read
A computer with a black screen on a stand beside a row of steel server racks in a data centre.
AI & ML

Qdrant vs Weaviate vs Milvus vs Pinecone: Vector Databases for RAG (2026)

Four vector databases compared for RAG in 2026: licenses, Docker self-host commands, embedded modes, managed pricing from $20/mo, and Singapore regions.

21 Jul 2026 · 13 min read
A close-up of a white llama with fluffy fur under a bright blue sky.
AI & ML

How to Self-Host AnythingLLM with Docker and Ollama (2026)

We self-hosted AnythingLLM 1.15.0 with Docker and Ollama, embedded a document over the API, and got cited RAG answers from a 0.6B model — fully offline.

21 Jul 2026 · 17 min read
Editorial Policy →