洪 民憙 (Hong Minhee) :nonbinary:'s avatar

洪 民憙 (Hong Minhee) :nonbinary:

@hongminhee@hollo.social

1,109 following1,900 followers

An intersectionalist, feminist, and socialist living in Seoul (UTC+09:00). @tokolovesme's spouse. Who's behind @fedify, @hollo, and @botkit. Write some free software in , , , & . They/them.

서울에 사는 交叉女性主義者이자 社會主義者. 金剛兔(@tokolovesme)의 配偶者. @fedify, @hollo, @botkit 메인테이너. , , , 等으로 自由 소프트웨어 만듦.

()

Pinned

@hongminhee@hollo.social

Hello! I'm Hong Minhee (洪 民憙), an open source software engineer in my late 30s, living in Seoul, Korea. I'm bisexual and non-binary (they/them), and an enthusiastic advocate of free/open source software and the fediverse.

I work full-time on @fedify, an ActivityPub server framework in TypeScript, funded by @sovtechfund. I'm also the creator of @hollo, a single-user ActivityPub microblog; @botkit, an ActivityPub bot framework; Hackers' Pub, a fediverse platform for software developers; and LogTape, a logging library for JavaScript and TypeScript.

I have a long interest in East Asian languages (CJK) and Unicode. I post mostly in English here, though occasionally in Japanese or in mixed-script Korean (國漢文混用體), a traditional writing style that interleaves Chinese characters with the native Korean alphabet. Wanting to write in that style was actually one of the reasons I joined the fediverse. Feel free to talk to me in English, Korean, Japanese, or even Literary Chinese!

en.wikipedia.org

Korean mixed script - Wikipedia

Pinned

はじめまして!ソウル在住の30代後半のオープンソースソフトウェアエンジニア、洪 民憙ホン・ミンヒと申します。バイセクシュアル(bisexual)・ノンバイナリー(non-binary)で、自由・オープンソースソフトウェア(F/OSS)とフェディバース(fediverse)の熱烈な支持者です。

STF(@sovtechfund)の支援を受け、TypeScript用ActivityPubサーバーフレームワーク「@fedify」の開発に専念しています。他にも、おひとり様向けのActivityPubマイクロブログ「@hollo」、ActivityPubボットフレームワーク「@botkit」、ソフトウェア開発者向けフェディバースプラットフォームHackers' Pub、JavaScript・TypeScript用ロギングライブラリLogTapeなどの制作者でもあります。

東アジア言語(いわゆるCJK)とUnicodeにも興味があります。このアカウントでは主に英語で投稿していますが、時々日本語や国漢文混用体(漢字ハングル混じり文)の韓国語でも書いています。実はこの文体で書きたくてフェディバースを始めた、という経緯もあります。日本語、英語、韓国語、漢文でも気軽に話しかけてください!

speakerdeck.com

国漢文混用体からHolloまで

本発表では、韓国語の「国漢文混用体」(漢字ハングル混じり文)を自分のフェディバース投稿に実装したいという小さな目標から始まった旅路を共有します。 この目標を達成するために、ActivityPubのJSON-LDの複雑さやHTTP Signatures、WebFingerなどの仕様を理解する必要性に…

Pinned

安寧(안녕)하세요! 저는 서울에 살고 있는 30() 後半(후반)의 오픈 소스 소프트웨어 엔지니어 洪民憙(홍민희)입니다. 兩性愛者(양성애자)(bisexual)이자 논바이너리(non-binary)이며, 自由(자유)·오픈 소스 소프트웨어(F/OSS)와 聯合宇宙(연합우주)(fediverse)의 熱烈(열렬)支持者(지지자)이기도 합니다.

STF(@sovtechfund)의 支援(지원)을 받아 TypeScript() ActivityPub 서버 프레임워크 @fedify 開發(개발)專業(전업)으로 ()하고 있습니다. 그 ()에도 싱글 유저() ActivityPub 마이크로블로그 @hollo, ActivityPub 봇 프레임워크 @botkit, 소프트웨어 開發者(개발자)를 위한 聯合宇宙(연합우주) 플랫폼 Hackers' Pub, JavaScript·TypeScript() 로깅 라이브러리 LogTape ()製作者(제작자)이기도 합니다.

()아시아 言語(언어)(이른바 CJK)와 Unicode에도 關心(관심)이 많습니다. 이 計定(계정)에서는 ()英語(영어)로 포스팅하지만, 때때로 日本語(일본어)國漢文混用體(국한문 혼용체) 韓國語(한국어)로도 씁니다. 聯合宇宙(연합우주)에 오게 된 動機(동기) () 하나가 바로 國漢文混用體(국한문 혼용체)로 글을 쓰고 싶었기 때문이기도 하고요. 韓國語(한국어), 英語(영어), 日本語(일본어), 아니면 漢文(한문)으로도 말을 걸어주세요!

logtape.org

LogTape

Unobtrusive logging library with zero dependencies—library-first design for Deno, Node.js, Bun, browsers, and edge functions

@cwebber@social.coop

It's no coincidence that alt-right people have taken up AI generated artwork so intensely. It allows bypassing all the ethics and care of typically left-leaning artists. To show the ability to wield aesthetics without the social values tied to those aesthetics is a power move.

This is well covered in "AI: The New Aesthetics of Fascism" newsocialist.org.uk/transmissi

newsocialist.org.uk

AI: The New Aesthetics of Fascism

It's embarrassing, destructive, and looks like shit: AI-generated art is the perfect aesthetic form for the far right.

韓国語原文からの和訳:

トロッコをそのまま進ませれば人が死に、進路を変えれば私の服が高くなる。私たちが日常的に直面している問題はこの様な物であり、スイッチを操作して一人を救うか五人を救うかという問題ではない。

ja.wikipedia.org

トロッコ問題 - Wikipedia

@sung-il-kim.com@bsky.brid.gy

트롤리가 그냥 가게 내버려 두면 사람이 죽고 경로를 바꾸면 내 옷이 비싸진다, 우리가 수시로 당면하는 문제는 이런 것이지, 스위치를 조작하여 한 명을 살릴 것인가 다섯 명을 살릴 것인가가 아니다.

@hongminhee@hollo.social

Translated from a Korean original quote:

If we let the trolley continue on its current path, people die; if we change its course, my clothes become more expensive. This is the kind of problem we regularly face, not whether to flip a switch to save one person or five.

en.wikipedia.org

Trolley problem - Wikipedia

@sung-il-kim.com@bsky.brid.gy

트롤리가 그냥 가게 내버려 두면 사람이 죽고 경로를 바꾸면 내 옷이 비싸진다, 우리가 수시로 당면하는 문제는 이런 것이지, 스위치를 조작하여 한 명을 살릴 것인가 다섯 명을 살릴 것인가가 아니다.

@sung-il-kim.com@bsky.brid.gy

트롤리가 그냥 가게 내버려 두면 사람이 죽고 경로를 바꾸면 내 옷이 비싸진다, 우리가 수시로 당면하는 문제는 이런 것이지, 스위치를 조작하여 한 명을 살릴 것인가 다섯 명을 살릴 것인가가 아니다.

@opentelemetry@fosstodon.org
@hongminhee@hackers.pub

한국 연합우주 개발자 모임(FediDev KR)은 이름 그대로 한국에서 연합우주(fediverse)와 관계된 개발(프로그래밍 뿐만 아니라 문서화, 번역 등을 포함)을 하는 사람들의 모임입니다. 실제로 Hackers' Pub의 개발 논의도 이 모임에서 처음 나왔었고요. Hackers' Pub을 통해서 ActivityPub이나 연합우주에 관심이 생기셨다면 한 번 참여해 보셔도 좋을 것 같습니다.

참고로 올해에는 아직 개최한 적 없지만 비정기적으로 스프린트 모임도 하고 있습니다. @sprints.fedidev.kr 계정을 팔로하시면 스프린트 모임이 열리기 전에 미리 공지를 올릴테니 미리 확인하실 수 있을 거예요.

sprints.fedidev.kr

한국 페디버스 개발자 모임

한국에 거주하거나 한국어를 사용하는 연합우주(fediverse) 개발자들의 모임입니다.

@hongminhee@hackers.pub

Just reviewed the W3C draft for the Translator and Language Detector APIs. This is genuinely exciting development for web developers.

The proposal would add native browser support for:

  • Text translation between languages
  • Language detection of arbitrary text
  • Both with streaming capabilities

No more relying on third-party translation services or embedding external APIs for basic language operations. All processing happens locally in the browser.

The API design is clean and straightforward:

// Translation example
const translator = await Translator.create({
  sourceLanguage: "en",
  targetLanguage: "fr"
});

const translatedText = await translator.translate("Hello world");

// Language detection example
const detector = await LanguageDetector.create();
const results = await detector.detect("Hello world");
// Returns array of detected languages with confidence scores

This will be a game-changer for multilingual sites and applications. The browser handles downloading appropriate language models and manages usage quotas.

The spec is still in draft form but shows promising progress toward standardizing these capabilities across browsers. Looking forward to seeing this implemented.

webmachinelearning.github.io

Translator and Language Detector APIs

@bgl@hackers.pub

옛날에 만들어놓고 저 혼자는 잘쓰고 있는 React 폼 라이브러리 react-form-mozard를 소개합니다.

폼 중에서 Stepper 또는 Wizard라고 하는, 여러 개의 폼을 순차적으로 합친 형태를 다룰때 씁니다. 그래서 하나의 폼에 대해서는 react-hook-form 등 을 쓰고, 그걸 여러개 조합할땐 react-form-mozard를 활용하면 됩니다.

순차적으로 합친 에서 느낌이 오지요? 모나드가... 그대를 부릅니다...

폼 말고 CLI를 만들때를 잠깐 생각해보죠.

const name = prompt("이름이?")
const age = prompt(`{name} 님, 나이가?`)
if (Number(age) < 20) {
  console.info("미성년자는 이용할 수 없습니다")
  return
}
const gender = prompt(`{name} 님, 성별이?`)

뭐 이런 흐름을 생각해볼 수 있는데요. 보시면 먼저 받은 입력값에 따라 이후의 메시지나, 제어 흐름이 달라질 수 있습니다. 즉, 모나딕하죠. 근데 이런 평범한 로직을 Stepper/Wizard 에서 짜게되면 코드게 쉽게 더러워 지는걸 알수 있습니다.

react-form-mozard의 step은 위 예제의 prompt와 같은 역할을 합니다. 그리고 그걸 Generator 위에 얹으면 모나딕한 폼 합성이 가능해집니다.

단점이라면... 지금은 React랑 강결합 되어 있어, XState 등 다른 상태관리 라이브러리를 같이 쓴다면 연동이 깔끔하지 않을수 있습니다. 근데 평소에 쉽게 겪을 문제는 아니라고 보고, 또 추후에 설계를 수정해서 개선이 가능한 부분입니다.

github.com

GitHub - gwyng-dev/react-form-mozard: Compose multiple forms into a single form wizard using a monadic approach.

Compose multiple forms into a single form wizard using a monadic approach. - gwyng-dev/react-form-mozard

@hongminhee@hackers.pub

아마도 2006년이었던 것 같다. 처음 가본 대안언어축제에서 정말 충격적인 체험을 했었다. 당시는 Python이 대안 언어였던 시절… Io도 배우고 J도 배우고 Haskell도 배우고. 고등학생 때였는데, 동아리 사람들을 모두 데려가서 어른들에게 예쁨 받았던 기억도 있다. 행사가 어디서 후원을 받았었는지 기억은 안 나지만, 후원을 아주 크게 받았던 것만 기억이 난다.

hackers.pub

2025년도판 대안언어축제 가보자고

2025년도판 대안언어축제 가보자고

@kodingwarrior@hackers.pub

Hackers Pub PWA 앱 만드는걸로도 한번 기여해보고 싶다

@hongminhee@hackers.pub

WSGIは私の青春を燃やした抽象化層だった。@mitsuhiko さんのWerkzeugのコードを読んでPythonについて多くの事を学んだ。当時のWerkzeugのコードは今でもPythonで最も価値の有るコードの一つだと思う。

misskey.io

甘瀬ここあ ☕ (@cocoa_vrc)

~~WSGIなんて甘えなのでソケットでHTTPから実装しなさい~~ (冗談) https://qiita.com/Leapcell/items/1c6169c78edb8064485f