Search
343 results for “hongminhee”
-
@hongminhee would be really nice if crates.io used more than just GitHub for auth and account generation 🫡
-
@hongminhee would be really nice if crates.io used more than just GitHub for auth and account generation 🫡
-
@hongminhee would be really nice if crates.io used more than just GitHub for auth and account generation 🫡
-
@hongminhee would be really nice if crates.io used more than just GitHub for auth and account generation 🫡
-
@hongminhee would be really nice if crates.io used more than just GitHub for auth and account generation 🫡
-
Commander.jsの
.conflicts()や.implies()は、排他的な組み合わせをランタイムではちゃんと検出してくれます。でも
.opts()の型は賢くならず、戻り値は結局string | undefinedのままです。どのオプションが同時に使えないのかを、TypeScriptは知りません。このズレをパーサーコンビネータでどう型に落とし込めるか、Yargsとの比較も含めて書きました。後半では、環境変数・設定ファイル・対話プロンプトまで同じ型保証を広げる話もしています。
-
Commander.jsの
.conflicts()や.implies()は、排他的な組み合わせをランタイムではちゃんと検出してくれます。でも
.opts()の型は賢くならず、戻り値は結局string | undefinedのままです。どのオプションが同時に使えないのかを、TypeScriptは知りません。このズレをパーサーコンビネータでどう型に落とし込めるか、Yargsとの比較も含めて書きました。後半では、環境変数・設定ファイル・対話プロンプトまで同じ型保証を広げる話もしています。
-
Commander.jsの
.conflicts()や.implies()は、排他的な組み合わせをランタイムではちゃんと検出してくれます。でも
.opts()の型は賢くならず、戻り値は結局string | undefinedのままです。どのオプションが同時に使えないのかを、TypeScriptは知りません。このズレをパーサーコンビネータでどう型に落とし込めるか、Yargsとの比較も含めて書きました。後半では、環境変数・設定ファイル・対話プロンプトまで同じ型保証を広げる話もしています。
-
Commander.jsの
.conflicts()や.implies()は、排他的な組み合わせをランタイムではちゃんと検出してくれます。でも
.opts()の型は賢くならず、戻り値は結局string | undefinedのままです。どのオプションが同時に使えないのかを、TypeScriptは知りません。このズレをパーサーコンビネータでどう型に落とし込めるか、Yargsとの比較も含めて書きました。後半では、環境変数・設定ファイル・対話プロンプトまで同じ型保証を広げる話もしています。
-
Commander.jsの
.conflicts()や.implies()は、排他的な組み合わせをランタイムではちゃんと検出してくれます。でも
.opts()の型は賢くならず、戻り値は結局string | undefinedのままです。どのオプションが同時に使えないのかを、TypeScriptは知りません。このズレをパーサーコンビネータでどう型に落とし込めるか、Yargsとの比較も含めて書きました。後半では、環境変数・設定ファイル・対話プロンプトまで同じ型保証を広げる話もしています。
-
I wrote about a problem that's been bugging me with #Commander.js and #Yargs:
.conflicts()and.implies()enforce constraints at runtime, but the type you get back is still a flat object with every field optional. The compiler has no idea which options belong together.The post walks through what happens when you express the same constraints in the parser structure instead, and how #TypeScript turns that into a discriminated union where each branch carries only its own fields.
Second half covers a less obvious question: what happens when values come from env vars, config files, or prompts instead of argv, and whether the constraints should still hold across all of them.
https://hackers.pub/@hongminhee/2026/optique-10-discriminated-unions-for-cli
-
I wrote about a problem that's been bugging me with #Commander.js and #Yargs:
.conflicts()and.implies()enforce constraints at runtime, but the type you get back is still a flat object with every field optional. The compiler has no idea which options belong together.The post walks through what happens when you express the same constraints in the parser structure instead, and how #TypeScript turns that into a discriminated union where each branch carries only its own fields.
Second half covers a less obvious question: what happens when values come from env vars, config files, or prompts instead of argv, and whether the constraints should still hold across all of them.
https://hackers.pub/@hongminhee/2026/optique-10-discriminated-unions-for-cli
-
I wrote about a problem that's been bugging me with #Commander.js and #Yargs:
.conflicts()and.implies()enforce constraints at runtime, but the type you get back is still a flat object with every field optional. The compiler has no idea which options belong together.The post walks through what happens when you express the same constraints in the parser structure instead, and how #TypeScript turns that into a discriminated union where each branch carries only its own fields.
Second half covers a less obvious question: what happens when values come from env vars, config files, or prompts instead of argv, and whether the constraints should still hold across all of them.
https://hackers.pub/@hongminhee/2026/optique-10-discriminated-unions-for-cli
-
I wrote about a problem that's been bugging me with #Commander.js and #Yargs:
.conflicts()and.implies()enforce constraints at runtime, but the type you get back is still a flat object with every field optional. The compiler has no idea which options belong together.The post walks through what happens when you express the same constraints in the parser structure instead, and how #TypeScript turns that into a discriminated union where each branch carries only its own fields.
Second half covers a less obvious question: what happens when values come from env vars, config files, or prompts instead of argv, and whether the constraints should still hold across all of them.
https://hackers.pub/@hongminhee/2026/optique-10-discriminated-unions-for-cli
-
I wrote about a problem that's been bugging me with #Commander.js and #Yargs:
.conflicts()and.implies()enforce constraints at runtime, but the type you get back is still a flat object with every field optional. The compiler has no idea which options belong together.The post walks through what happens when you express the same constraints in the parser structure instead, and how #TypeScript turns that into a discriminated union where each branch carries only its own fields.
Second half covers a less obvious question: what happens when values come from env vars, config files, or prompts instead of argv, and whether the constraints should still hold across all of them.
https://hackers.pub/@hongminhee/2026/optique-10-discriminated-unions-for-cli
-
@hongminhee I sometimes add a zero width space (I think). Like "#jernbanedirektoratets #fjerntogstrategi" (genetiv s). Could also be used like #is#pinne?
Putting hashtags at the end creates a #hashtagbar in Mastodon, and I seems to recall that non-space hashtags works for non-latin languages? On the other hand Mastodon doesn't consider line break to be space in the hashtagbar which breaks some asian posts
-
@hongminhee The first ten words just made me hear Sham 69.
«I don't need a flash car to take me around
I can get the bus to the other side of town» -
@hongminhee The first ten words just made me hear Sham 69.
«I don't need a flash car to take me around
I can get the bus to the other side of town» -
@hongminhee The first ten words just made me hear Sham 69.
«I don't need a flash car to take me around
I can get the bus to the other side of town» -
@hongminhee The first ten words just made me hear Sham 69.
«I don't need a flash car to take me around
I can get the bus to the other side of town» -
@hongminhee The first ten words just made me hear Sham 69.
«I don't need a flash car to take me around
I can get the bus to the other side of town» -
@hongminhee I still write JS because it has a specification. When I adventure into implementation-defined languages for the browser, I use #PureScript
I had great hopes for TypeScript when they were still maintaining the specification, but I dropped it once their solution to implementation drifting from specification was to retire the specification.
---
Also, I come from the camp that the only real type system is a static type system, like Pierce in "Types and Programming Languages".
-
@hongminhee I still write JS because it has a specification. When I adventure into implementation-defined languages for the browser, I use #PureScript
I had great hopes for TypeScript when they were still maintaining the specification, but I dropped it once their solution to implementation drifting from specification was to retire the specification.
---
Also, I come from the camp that the only real type system is a static type system, like Pierce in "Types and Programming Languages".
-
@hongminhee I still write JS because it has a specification. When I adventure into implementation-defined languages for the browser, I use #PureScript
I had great hopes for TypeScript when they were still maintaining the specification, but I dropped it once their solution to implementation drifting from specification was to retire the specification.
---
Also, I come from the camp that the only real type system is a static type system, like Pierce in "Types and Programming Languages".
-
@hongminhee I still write JS because it has a specification. When I adventure into implementation-defined languages for the browser, I use #PureScript
I had great hopes for TypeScript when they were still maintaining the specification, but I dropped it once their solution to implementation drifting from specification was to retire the specification.
---
Also, I come from the camp that the only real type system is a static type system, like Pierce in "Types and Programming Languages".
-
@hongminhee I still write JS because it has a specification. When I adventure into implementation-defined languages for the browser, I use #PureScript
I had great hopes for TypeScript when they were still maintaining the specification, but I dropped it once their solution to implementation drifting from specification was to retire the specification.
---
Also, I come from the camp that the only real type system is a static type system, like Pierce in "Types and Programming Languages".
-
Update: we've decided to go ahead and submit the CFP to @COSCUP 2026. The track will be called Fediverse & Social Web—think FOSDEM's Social Web devroom, but in Taipei. #COSCUP is free to attend, like FOSDEM.
If the track is accepted, would you be interested in coming to Taipei (Aug 8–9) to give a talk?
(Boosts appreciated!)
https://hollo.social/@hongminhee/019ca8b2-ecca-7150-a237-37f35de45401
-
Update: we've decided to go ahead and submit the CFP to @COSCUP 2026. The track will be called Fediverse & Social Web—think FOSDEM's Social Web devroom, but in Taipei. #COSCUP is free to attend, like FOSDEM.
If the track is accepted, would you be interested in coming to Taipei (Aug 8–9) to give a talk?
(Boosts appreciated!)
https://hollo.social/@hongminhee/019ca8b2-ecca-7150-a237-37f35de45401
-
Salvatore Sanfilippo (@antirez) and Armin Ronacher (@mitsuhiko) both argue that #AI reimplementation of #copyleft libraries is fine. Their legal reasoning might be correct. That's not the point.
Legal and legitimate are different things—and both pieces quietly assume otherwise.
https://writings.hongminhee.org/2026/03/legal-vs-legitimate/
-
Salvatore Sanfilippo (@antirez) and Armin Ronacher (@mitsuhiko) both argue that #AI reimplementation of #copyleft libraries is fine. Their legal reasoning might be correct. That's not the point.
Legal and legitimate are different things—and both pieces quietly assume otherwise.
https://writings.hongminhee.org/2026/03/legal-vs-legitimate/