洪 民憙 (Hong Minhee)
banner
hongminhee.org
洪 民憙 (Hong Minhee)
@hongminhee.org
國漢文混用맨. https://hongminhee.org/
Pinned
I use fediverse more than Bluesky, but my fediverse account can also be followed on Bluesky via Bridgy Fed, so I think you might want to follow it: @hongminhee.hollo.social.ap.brid.gy.
Reposted by 洪 民憙 (Hong Minhee)
fedi.blue 라는 도메인을 샀는데 뭔가 아이디어가 안 떠오르네요... 블스랑 연합우주 모두에서 사용 가능한 앱이었으면 좋겠는데... 혹시 아이디어가 있으신 분은 편하게 말씀해주시면 감사하겠습니당 알티도 감사해요!
February 17, 2026 at 8:35 PM
Reposted by 洪 民憙 (Hong Minhee)
Interesting to see combinator conditions on #typescript for CLI.

This is something that's hard to do in any CLI library. Easier with typed languages, but still can be complex. Very cool to see with #optique and their approach leveraging the type system. 😎
Why Optique? | Optique
Discover how Optique brings functional composition to TypeScript CLI development, enabling truly reusable parser components that other libraries can't match through configuration-based approaches.
optique.dev
February 15, 2026 at 4:50 PM
Optique 0.10.0 is out—the largest release yet for this type-safe TypeScript CLI parser.

Highlights: runtime context system, config file integration, man page generation, inter-option dependencies, 11 network value parsers.

Last pre-release before 1.0.0.
Optique 0.10.0: Runtime context, config files, man pages, and network parsers · dahlia optique · Discussion #108
We're excited to announce Optique 0.10.0, the largest release yet! This release introduces a runtime context system for composing external data sources, a config file integration package, man page ...
github.com
February 15, 2026 at 2:02 PM
Reposted by 洪 民憙 (Hong Minhee)
We have the pleasure of having @hongminhee.org who will give a presentation about @fedify.hollo.social.ap.brid.gy "an opinionated #ActivityPub framework for TypeScript that handles the protocol plumbing"

It is an open free event and everyone is welcome!
On February 3rd (very soon!) I am hosting another BERLIN FEDERATED NETWORK EXPLORATION CIRCLE] at <a href="https://social.wake.st/tags/fediverse" class="hover:underline text-blue-600 dark:text-sky-400 no-card-link" target="_blank" rel="noopener" data-link="bsky">@offline. It's a chance to meet and talk with people who are interested in the [#fediverse & networking & exploration & circ---you get the idea.

We have the […]

[Original post on social.wake.st]
January 24, 2026 at 10:15 PM
Hot take: We shouldn't block AI companies from training on our F/OSS code.

We should require them to free the models they train.

That's not naïve idealism—it's the same strategy that built GNU/Linux. Why training copyleft might be our GPL moment:
Histomat of F/OSS: We should reclaim LLMs, not reject them
writings.hongminhee.org
January 16, 2026 at 6:14 AM
LogTape 2.0.0 released! A zero-dependency logging library for JavaScript/TypeScript.

New in 2.0: lazy() for dynamic context values, config from JSON/YAML files, direct Error logging, async lazy evaluation, time-based log rotation, Elysia integration, and more.
LogTape 2.0.0: Dynamic logging and external configuration · dahlia logtape · Discussion #133
LogTape is a logging library for JavaScript and TypeScript that works across Deno, Node.js, Bun, and browsers. It's designed around structured logging with zero dependencies and flexible configurat...
github.com
January 15, 2026 at 8:27 AM
Hongdown 0.2.0 released! Hongdown is an opinionated Markdown formatter written in Rust, now available as a WebAssembly library for Node.js, Bun, Deno, and browsers.

New: smart sentence case for headings, SmartyPants-style typography, external code formatters, and directory batch formatting.
Hongdown 0.2.0: WebAssembly support and smart typography · dahlia hongdown · Discussion #10
We're excited to announce Hongdown 0.2.0! This release brings major new features including WebAssembly support, smart heading capitalization, typographic punctuation transformation, and external co...
github.com
January 13, 2026 at 10:34 AM
Reposted by 洪 民憙 (Hong Minhee)
if people no longer read the code, API is no longer targeting humans, is there still a need for "good API design"? is it still worth the effort to figure out what would be the best for users, instead of the best of ai to understand/use? I don't know.
January 13, 2026 at 8:12 AM
When building CLI tools, shell completion usually treats each option in isolation. But sometimes valid values for one option depend on another—like branch names depending on which repository you're targeting.

Wrote about how I solved this in Optique, a type-safe CLI parser for TypeScript.
Your CLI's completion should know what options you've already typed
Consider Git's -C option: git -C /path/to/repo checkout <TAB> When you hit Tab, Git completes branch names from /path/to/repo, not yourcurrent directory. The completion is context-aware—it depends o...
hackers.pub
January 13, 2026 at 5:19 AM
Reposted by 洪 民憙 (Hong Minhee)
Une lib de logging pour JavaScript qui ambitionne d'ajouter du logging facilement à vos packages. Ensuite, libre à l'utilisateur de votre package de décider s'il veut activer le logging ou pas.

Ça me fait un peu penser à log4j pour Java 🤔

🔗 https://logtape.org/

#JavaScript #lib #log
LogTape
Simple logging library with zero dependencies for Deno, Node.js, Bun, browsers, and edge functions
logtape.org
August 31, 2025 at 6:34 AM
How do you make one CLI option's value affect another's validation and completion? Like `git -C <path> branch <TAB>` completing branches from that path.

I think I've found a nice solution for Optique: topologically sort dependencies between value parsers.
Support for inter-option dependencies in value parsers · Issue #74 · dahlia/optique
When building CLI tools that mirror Git's interface, it's common to have a global option like -C <path> that changes the working directory for subsequent operations. Ideally, value parsers (like gi...
github.com
January 12, 2026 at 1:09 PM
Reposted by 洪 民憙 (Hong Minhee)
New from me: X is A Power Problem, Not a Platform Problem

https://connectedplaces.online/reports/a-power-problem-not-a-platform-problem/
January 9, 2026 at 3:21 PM
Sentry just dropped a blog post on “Trace-connected structured logging with LogTape.”

It's incredibly rewarding to see the library getting this kind of recognition from the industry leaders in observability. A huge milestone for the project.
LogTape & Sentry - Trace-Connected Structured Logging
Learn to add production-grade logging and error monitoring to your Next.js application with LogTape and Sentry.
blog.sentry.io
January 9, 2026 at 8:45 AM
I finally gave in and wrote my own markdownlint rules to enforce my peculiar and stubborn Markdown style. Probably no one else will ever need these, but I've published them as open source anyway.
GitHub - dahlia/markdownlint-rules: Custom markdownlint rules for Hong Minhee's Markdown style
Custom markdownlint rules for Hong Minhee's Markdown style - dahlia/markdownlint-rules
github.com
January 6, 2026 at 9:29 AM
Wrote a tutorial on building CLI apps with Optique, a TypeScript CLI parser I've been working on. If you've ever wanted discriminated unions from your argument parser, this might interest you.
Building CLI apps with TypeScript in 2026
We've all been there. You start a quick TypeScript CLI with process.argv.slice(2), add a couple of options, and before you know it you're drowning in if/else blocks and parseInt calls. It works, until...
hackers.pub
January 6, 2026 at 4:31 AM
Optique 0.9.0 released! Two big features:

• Async parsers: validate against databases, APIs, or filesystems with full type safety
• New @optique/git package: validate branch names, tags, and commits against real Git repos

All backward compatible. Existing code works unchanged.
Optique 0.9.0: Async parsers and Git reference validation · dahlia optique · Discussion #75
We're excited to announce Optique 0.9.0! This release brings two major features: full async/await support for parsers and a new @optique/git package for validating Git references against actual rep...
github.com
January 5, 2026 at 4:59 PM
Reposted by 洪 民憙 (Hong Minhee)
今日のZennトレンド

2026年版:JavaScript/TypeScriptのロギング入門
この記事は、JavaScript/TypeScriptにおける効果的なロギング方法を解説しています。
console.logの限界を指摘し、軽量で多機能なロギングライブラリLogTapeの導入を提案。
ログレベル、カテゴリ、シンク、構造化ログといったロギングの基本概念を説明し、LogTapeを用いた具体的な設定方法や活用例を紹介しています。
本番環境での障害対応や効率的なデバッグに役立つロギング環境構築のヒントが得られます。
2026年版:JavaScript/TypeScriptのロギング入門
本番環境で障害が発生したとき、手がかりになるのは結局ログだけだった——という経験は、多くのエンジニアが持っているのではないでしょうか。ところが、開発中に書き散らしたconsole.logは肝心なときに役に立たないことが多いものです。「ここ通った」「動いた」といったメッセージや、巨大なオブジェクトがそのまま出力されているだけでは、原因特定は困難です。かといって、本格的なロギングライブラリを導入するの
zenn.dev
January 2, 2026 at 9:20 PM
Reposted by 洪 民憙 (Hong Minhee)
https://zenn.dev/hongminhee/articles/e0d19ae2c4e042
本番環境での障害時に役立つログ構築について解説します。
console.logの限界を整理し、実用的なロギング環境の構築方法を紹介します。
LogTapeという依存ゼロで軽量なロギングライブラリを使用します。
2026年版:JavaScript/TypeScriptのロギング入門
zenn.dev
January 3, 2026 at 12:18 AM
Wrote about designing type-safe sync/async mode support in TypeScript. Making object({ sync: syncParser, async: asyncParser }) automatically infer as async turned out to be trickier than expected.
Designing type-safe sync/async mode support in TypeScript
I recently added sync/async mode support to Optique, a type-safe CLI parserfor TypeScript. It turned out to be one of the trickier features I'veimplemented—the object() combinator alone needed to com...
hackers.pub
January 2, 2026 at 6:02 AM
I wrote about setting up logging that's more useful than console.log() but doesn't require a Ph.D. in configuration. Covers categories, structured logging, request tracing, and production tips.
Logging in Node.js (or Deno or Bun or edge functions) in 2026
It's 2 AM. Something is wrong in production. Users are complaining, but you're not sure what's happening—your only clues are a handful of console.log statements you sprinkled around during development...
hackers.pub
January 1, 2026 at 3:31 PM
Just released Vertana 0.1.0—an LLM-powered translation library for TypeScript/JavaScript that uses agentic workflows to gather context for higher-quality translations.
GitHub - dahlia/vertana: LLM-powered agentic translation library for JavaScript/TypeScript
LLM-powered agentic translation library for JavaScript/TypeScript - dahlia/vertana
github.com
December 30, 2025 at 12:24 PM
I'm proposing a new way to configure LogTape from plain objects (JSON/YAML/TOML), similar to Python's logging.config.dictConfig().

This would make it easier to manage environment-specific configs without code changes.

Thoughts?
Support configuration from plain objects · Issue #117 · dahlia/logtape
Summary Add a new @logtape/config package that provides configureFromObject() function to configure LogTape from plain JavaScript objects loaded from JSON, YAML, TOML, or other configuration format...
github.com
December 26, 2025 at 8:48 AM
Upyo 0.4.0 is out. Upyo is a cross-runtime email library for JavaScript. This release adds JMAP transport, DKIM signing for SMTP, and message-level idempotency keys.
Upyo 0.4.0: Modern protocols and email authentication · dahlia upyo · Discussion #21
Upyo is a cross-runtime email library for JavaScript that provides a unified API for sending emails across Node.js, Deno, Bun, and edge functions. It supports multiple transports including SMTP, Ma...
github.com
December 25, 2025 at 3:44 AM
내 트리를 꾸며줘!
Color My Tree! (Decorate your tree!)
Get christmas messgages and Decorate your tree ✨
colormytree.me
December 24, 2025 at 5:51 AM