home.social

Search

343 results for “hongminhee”

  1. @hongminhee would be really nice if crates.io used more than just GitHub for auth and account generation 🫡

    #rustlang

  2. @hongminhee would be really nice if crates.io used more than just GitHub for auth and account generation 🫡

    #rustlang

  3. @hongminhee would be really nice if crates.io used more than just GitHub for auth and account generation 🫡

    #rustlang

  4. @hongminhee would be really nice if crates.io used more than just GitHub for auth and account generation 🫡

    #rustlang

  5. @hongminhee would be really nice if crates.io used more than just GitHub for auth and account generation 🫡

    #rustlang

  6. Commander.jsの.conflicts().implies()は、排他的な組み合わせをランタイムではちゃんと検出してくれます。

    でも.opts()の型は賢くならず、戻り値は結局string | undefinedのままです。どのオプションが同時に使えないのかを、TypeScriptは知りません。

    このズレをパーサーコンビネータでどう型に落とし込めるか、Yargsとの比較も含めて書きました。後半では、環境変数・設定ファイル・対話プロンプトまで同じ型保証を広げる話もしています。

    https://zenn.dev/hongminhee/articles/6ba2a6247ec0c4

    #Optique #Commander #Yargs #TypeScript #JavaScript #CLI

  7. Commander.jsの.conflicts().implies()は、排他的な組み合わせをランタイムではちゃんと検出してくれます。

    でも.opts()の型は賢くならず、戻り値は結局string | undefinedのままです。どのオプションが同時に使えないのかを、TypeScriptは知りません。

    このズレをパーサーコンビネータでどう型に落とし込めるか、Yargsとの比較も含めて書きました。後半では、環境変数・設定ファイル・対話プロンプトまで同じ型保証を広げる話もしています。

    https://zenn.dev/hongminhee/articles/6ba2a6247ec0c4

    #Optique #Commander #Yargs #TypeScript #JavaScript #CLI

  8. Commander.jsの.conflicts().implies()は、排他的な組み合わせをランタイムではちゃんと検出してくれます。

    でも.opts()の型は賢くならず、戻り値は結局string | undefinedのままです。どのオプションが同時に使えないのかを、TypeScriptは知りません。

    このズレをパーサーコンビネータでどう型に落とし込めるか、Yargsとの比較も含めて書きました。後半では、環境変数・設定ファイル・対話プロンプトまで同じ型保証を広げる話もしています。

    https://zenn.dev/hongminhee/articles/6ba2a6247ec0c4

    #Optique #Commander #Yargs #TypeScript #JavaScript #CLI

  9. Commander.jsの.conflicts().implies()は、排他的な組み合わせをランタイムではちゃんと検出してくれます。

    でも.opts()の型は賢くならず、戻り値は結局string | undefinedのままです。どのオプションが同時に使えないのかを、TypeScriptは知りません。

    このズレをパーサーコンビネータでどう型に落とし込めるか、Yargsとの比較も含めて書きました。後半では、環境変数・設定ファイル・対話プロンプトまで同じ型保証を広げる話もしています。

    https://zenn.dev/hongminhee/articles/6ba2a6247ec0c4

    #Optique #Commander #Yargs #TypeScript #JavaScript #CLI

  10. Commander.jsの.conflicts().implies()は、排他的な組み合わせをランタイムではちゃんと検出してくれます。

    でも.opts()の型は賢くならず、戻り値は結局string | undefinedのままです。どのオプションが同時に使えないのかを、TypeScriptは知りません。

    このズレをパーサーコンビネータでどう型に落とし込めるか、Yargsとの比較も含めて書きました。後半では、環境変数・設定ファイル・対話プロンプトまで同じ型保証を広げる話もしています。

    https://zenn.dev/hongminhee/articles/6ba2a6247ec0c4

    #Optique #Commander #Yargs #TypeScript #JavaScript #CLI

  11. 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

    #JavaScript #CLI #Optique

  12. 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

    #JavaScript #CLI #Optique

  13. 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

    #JavaScript #CLI #Optique

  14. 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

    #JavaScript #CLI #Optique

  15. 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

    #JavaScript #CLI #Optique

  16. @hongminhee I sometimes add a zero width space (I think). Like "#jernbanedirektoratet​s #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

    #hashtag

  17. @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»

    m.youtube.com/watch?v=JEsN3YFz

    #Sham69

  18. @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»

    m.youtube.com/watch?v=JEsN3YFz

    #Sham69

  19. @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»

    m.youtube.com/watch?v=JEsN3YFz

    #Sham69

  20. @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»

    m.youtube.com/watch?v=JEsN3YFz

    #Sham69

  21. @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»

    m.youtube.com/watch?v=JEsN3YFz

    #Sham69

  22. @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".

  23. @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".

  24. @hongminhee I still write JS because it has a specification. When I adventure into implementation-defined languages for the browser, I use

    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".

  25. @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".

  26. @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".

  27. 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

    #fedidev #fediverse #SocialWeb #ActivityPub

  28. 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

    #fedidev #fediverse #SocialWeb #ActivityPub

  29. 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/

    #GPL #LGPL #license #opensource #freesoftware

  30. 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/

    #GPL #LGPL #license #opensource #freesoftware