24 Commits
Author SHA1 Message Date
hoelee a1488da2d8 Add post: When Your Database Client Lies to You (Workbench 26 / MariaDB)
Deploy / build (push) Successful in 22s
EN + ZH devops gotcha post on debugging MySQL Workbench 26.7.0's failure
to connect to MariaDB. Three patches to Oracle's bundled code, all the
same root cause: `major >= 8` is not a valid MySQL-vs-MariaDB test.

Also adds per-post OG + banner (TERMINALS/BANNERS entries).
2026-09-20 04:18:11 +08:00
hoelee daca86dc43 Add post: Replacing RDPGuard With IPBan (EN + ZH, og+banner)
Deploy / build (push) Successful in 22s
Case study of migrating from paid RDPGuard 7.8.7 to open-source IPBan
4.1.0, covering the three undocumented traps: the uninstaller that would
have silently unbanned 12 active attackers, the non-existent
--install-service flag in v4.1.0, and ExpireTime vs BanTime.

Also fixes an og-gen defect: the tag chip hardcoded KIND='DevOps', so
every non-devops post carried a wrong label (e.g. "case-studies · DevOps"
on the STT card). KIND now derives from the post category, and all 29
existing OG images are regenerated with correct badges.
2026-09-19 19:50:27 +08:00
hoelee 9fa366a0ac Add case study: self-hosted speech-to-text API (EN + ZH)
Deploy / build (push) Successful in 25s
New flagship case study covering a GPU-backed whisper.cpp transcription API
reachable from Windows, iPhone, iPad and Android behind an authenticated
gateway — framed as a service offering with the office-productivity case
(roughly 5x typing throughput, unlimited, audio never leaves the premises).

Content:
- EN + ZH posts (same slug -> auto language switch)
- "Why it matters" opener, hire CTA with clickable WhatsApp + mailto
- Four documented traps: incomplete CUDA component selection, loopback bind
  mistaken for a firewall problem, n8n Code nodes discarding binary + the
  data0 key name, and nginx default.conf hijacking port 80
- Honest scoping of the auth model (access control, not hardened public API)

Assets:
- Custom OG image + 16:9 banner (generator entries appended, not patched
  inside the template-literal maps)

Also marks Mem0 (B1) done and adds B1b to project-state.md.
2026-09-19 07:55:29 +08:00
hoelee 044ded45b3 Add TRIM corruption sequel post + publish SATA cable post (en/zh, og+banner)
Deploy / build (push) Successful in 19s
- New post: 'The Corruption Came Back on Different Drives — the Cause Was
  TRIM, Not the SSDs' — same 0x8941f998 zeros fingerprint on a second drive
  stack (IronWolf 110 SATA pair), root cause queued TRIM (FreeBSD gag 264139),
  fix diskAutotrim=off + nodiscard, scrub evidence, enterprise SATA buying
  guidance. en + zh, custom OG + banner.
- Publish formerly-draft SATA cable post (draft:false) with OG + banner.
- Correct drive identity in both: ZA960NM10001 is Seagate IronWolf 110, not
  'Samsung PM9A3' (PM9A3 is NVMe; FPDMA errors are SATA-only).
- Old RAID post (en+zh): cross-link to sequel, fix 'a Samsung' -> IronWolf 110.
2026-09-18 05:38:13 +08:00
hoelee fb66e17b50 posts: n8n v1→v2 migration, self-healing entitlements, TTS sidecars
Deploy / build (push) Successful in 19s
Three new posts (EN + ZH twins, og + banner each):

- n8n-v1-to-v2-upgrade-gotchas (devops): the seven deprecations that
  surfaced upgrading 1.123.x → 2.40.1, decoded from the boot log —
  telemetry schema rejection, N8N_WEBHOOK_URL rename, internal runner
  deprecation, task timeout 300s→60s, two compression limits, v3
  storage rename, plus the DB override that silently disabled the
  AI sandbox.
- self-healing-digital-goods-entitlements (case-studies): the W1–W5
  NocoDB → n8n → AList entitlement lifecycle. Build-time code sharing
  for n8n Code nodes, MAX-expiry semantics, dry-run safety, daily
  drift repair, CORS-not-HMAC reasoning, and the public→internal
  NocoDB cascading-failure fix (504 → retry storm → 503).
- running-tts-as-a-service-with-token-sidecars (ai): a year-long TTS
  service built on two cron containers that refresh Azure/Google
  tokens into a shared file, with the speed/voice mapping layer.

banner-gen: center terminal body vertically so line counts shorter
than the fixed 690px panel don't leave a dead void at the bottom.
Verified via DOM measurement (gapAbove 104 / gapBelow 106).
2026-09-18 01:51:46 +08:00
hoelee 937a114e30 post: shipping an AI photo editor as a WordPress plugin (case study, EN+ZH, og+banner)
Deploy / build (push) Successful in 20s
2026-09-18 01:31:46 +08:00
hoelee cdc3475f61 Fix og-gen: Chrome headless truncates 630px card footer; capture at 900 and crop with sharp, pin footer via absolute pos
Deploy / build (push) Successful in 15s
2026-09-16 01:21:25 +08:00
hoelee 55619aa04e Add posts: RAID silent corruption + self-hosted mem0 (en/zh, og+banner)
Deploy / build (push) Successful in 20s
2026-09-16 01:04:41 +08:00
hoelee 0dee1ea173 post: unraid array-stop swapfile hang root cause + User Scripts fix (en+zh, OG+banner)
Deploy / build (push) Successful in 1m1s
2026-09-15 18:44:09 +08:00
hoelee 12529e0cd0 posts: reframe marketplace scraper as client work (used-electronics reseller), en+zh + OG image
Deploy / build (push) Successful in 18s
2026-09-14 00:09:45 +08:00
hoelee 730a936137 Add scraping bot-walled marketplace warm-browser-session deep-dive (en + zh + OG)
Deploy / build (push) Successful in 17s
2026-09-13 23:33:26 +08:00
hoelee f0819eb3a3 post: passbolt hang three failure modes (devops gotcha, EN+ZH, og+banner)
Deploy / build (push) Successful in 16s
2026-09-13 17:20:42 +08:00
hoelee 249b32b5d9 Add OG image + banner for Chinese LLM APIs post (EN + ZH)
Deploy / build (push) Successful in 16s
2026-09-11 19:57:33 +08:00
hoelee 63029ddefd Add guide: Best AI video generators 2026 free vs paid + LTX-2.3 test (en + zh)
Deploy / build (push) Successful in 14s
2026-09-11 18:27:38 +08:00
hoelee 8e595d0f93 post: how I made my own songs with Suno AI (case study with embedded players + LRC sync, EN+ZH)
Deploy / build (push) Successful in 15s
2026-09-11 16:36:01 +08:00
hoelee 30a1963bea Add case study: AI furniture compositing with FLUX.1 Kontext (en + zh)
Deploy / build (push) Successful in 15s
2026-09-11 12:19:16 +08:00
hoelee 2645f778b2 Add case study: syncing a self-improving AI agent across machines (en + zh)
Deploy / build (push) Successful in 19s
2026-09-11 12:12:55 +08:00
hoelee 010306f01f assets: regenerate og+banner via official og-gen/banner-gen with per-post terminal entries
Deploy / build (push) Successful in 58s
2026-09-09 09:47:41 +08:00
hoelee 6aa9105460 Add CyberPanel v2 API reverse-engineering post (EN + ZH)
Deploy / build (push) Successful in 44s
2026-09-09 07:53:07 +08:00
hoelee 3d5e75aa70 Add case study: vetted 20 VPS providers with parallel subagents (EN + ZH + OG + banner)
Deploy / build (push) Successful in 1m5s
2026-09-09 07:28:03 +08:00
hoelee f378b4f58d Add OG image + banner for hosting-provider verification post
Deploy / build (push) Successful in 33s
2026-09-09 07:23:32 +08:00
hoelee 62b681bad1 Add two posts: headless-browser scraping limits + NocoDB backfill gotchas
Deploy / build (push) Successful in 1m12s
- why-your-headless-browser-cant-scrape-everything (case study, en+zh)
- the-nocodb-attachment-that-wouldnt-update (note, en+zh)
- og + banner images for both, generator entries added
- gitignore .og/ scratch dir (also removes previously-committed scratch files)
2026-09-09 06:56:20 +08:00
hoelee 1a61c30674 Generate OG images for all remaining posts
Deploy / build (push) Successful in 37s
2026-09-09 06:17:30 +08:00
hoelee 7f25f9ae4d Add og-gen script: reusable per-post OG image generator
Deploy / build (push) Successful in 41s
2026-09-09 06:11:13 +08:00