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

洪 民憙 (Hong Minhee) :nonbinary:

@hongminhee@hollo.social

1,082 following1,893 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

@hongminhee@hollo.social · Reply to Somē

@some Ha, that's a great extension of the metaphor. Emotional experiences as driver updates; it makes sense that curse words install so fast, they basically come bundled with the driver package. 😂

@hongminhee@hollo.social · Reply to Somē

@some Thank you! It's actually a metaphor that came to me when I first learned about System 1 vs. System 2 thinking. A foreign language seems to throttle the GPU, which forces more work onto the CPU, and it turns out a lot of that “GPU work” is the emotional system quietly pre-computing your judgments for you.

fs.blog

Daniel Kahneman Explains The Machinery of Thought

Daniel Kahneman dissects the machinery of thought into two agents, system 1 and system two, which respectively produce fast and slow thinking.

@hongminhee@hollo.social · Reply to Julian Fietkau

@julian Yes, that's actually cited in the paper as supporting evidence: swearwords in a foreign language produce weaker physiological responses than in a native one, so it very likely is the same mechanism running in reverse. I personally avoid swearing in foreign languages because I can never be fully sure of the nuance, but I do notice people around me swear more freely in their second languages, which fits the pattern exactly.

@aesthr@wandering.shop

Linux users:

How often do you run your system's update procedure (like an `apt upgrade`, etc)?

(boosts welcome)

  • daily242 (23%)
  • every few days247 (24%)
  • about weekly291 (28%)
  • Less often252 (24%)
@hongminhee@hollo.social

Fascinating paper: Your Morals Depend on Language (Costa et al., 2014). People make significantly more utilitarian choices in moral dilemmas when the dilemma is presented in a foreign language, apparently because a foreign language dulls emotional responses and shifts the balance toward deliberative thinking.

It matches my own experience. Thinking in a foreign language feels like rendering graphics without GPU acceleration: everything runs on raw CPU, slower and more laborious. After a full day of conversations in English or Japanese, I'm physically exhausted in a way that Korean never does to me. What I didn't quite register until reading this paper is that the “GPU” doing all that fast, effortless processing is largely the emotional system. When it steps back, you end up doing more of the reasoning yourself. Whether that's a feature or a bug probably depends on what you're deciding.

journals.plos.org

Your Morals Depend on Language

Should you sacrifice one man to save five? Whatever your answer, it should not depend on whether you were asked the question in your native language or a foreign tongue so long as you understood the problem. And yet here we report evidence that people using a foreign language make substantially more utilitarian decisions when faced with such moral dilemmas. We argue that this stems from the reduced emotional response elicited by the foreign language, consequently reducing the impact of intuitive emotional concerns. In general, we suggest that the increased psychological distance of using a foreign language induces utilitarianism. This shows that moral judgments can be heavily affected by an orthogonal property to moral principles, and importantly, one that is relevant to hundreds of millions of individuals on a daily basis.

@hongminhee@hollo.social

A daily minor annoyance: (GitHub Flavored Markdown) breaking standard behavior by rendering single newlines as <br>.

If you're used to formatting plain text with hard wraps for mailing lists, you know the pain. You type up a perfectly readable 80-column text block, hit submit, and realize has turned it into a jagged mess of arbitrary line breaks. I really miss standard Markdown paragraph collapsing in issue trackers.

@hongminhee@hollo.social

Just had to add a workaround to for http://joinmastodon.org/ns, a JSON-LD context URL that has never actually served a JSON-LD document. Mastodon has always inlined the term definitions, but some implementations put it as a bare URL in their @context, so Fedify's JSON-LD processor tries to fetch it and gets a 404 Not Found. Now Fedify ships a bundled copy of a context that never existed in the first place.

https://github.com/fedify-dev/fedify/pull/631

github.com

Add `http://joinmastodon.org/ns` to preloaded JSON-LD contexts by dahlia · Pull Request #631 · fedify-dev/fedify

Closes #630. http://joinmastodon.org/ns is used as the base URI for Mastodon’s custom JSON-LD terms like Emoji, discoverable, featured, blurhash, etc. However, this URL has never actually hosted a ...

@kodingwarrior@hackers.pub

moim.live just crossed 30 members. Shipped calendar subscription today — you can now subscribe to your personal schedule directly in Google Calendar and other apps.

Traffic is still an unknown. But I'm not ready to go door-to-door yet anyway. There's one payment feature missing, and that's what I'm building toward next.

ActivityPub is supported and always will be — but it's not the whole point. The journey to making something genuinely useful is just getting started. Until payments feature shipping, I will not do additional work except for bug fix, changing UI.

For events with external registration, It's not possible for RSVP. but I let users to bookmark. and then they can see in Calendar view
ALT text

For events with external registration, It's not possible for RSVP. but I let users to bookmark. and then they can see in Calendar view

For calendar view, We can see integrated view for RSVP events / Hosted Events / Bookmarked Events. Also it's possible for Google Calendar Subscription
ALT text

For calendar view, We can see integrated view for RSVP events / Hosted Events / Bookmarked Events. Also it's possible for Google Calendar Subscription

@mariusor@metalhead.club · Reply to 洪 民憙 (Hong Minhee) :nonbinary:
@hongminhee@hollo.social

Just had a small, probably-never-going-to-happen thought: what if Lobsters implemented ActivityPub? My account there is hongminhee, so I'd get a @hongminhee@lobste.rs actor, and tags like #rust or #programming could be Group actors you could follow from Mastodon or anywhere else. Comments would federate as Notes, so you could boost a thread you found interesting without ever leaving your home instance.

The tricky part is that Lobsters is invite-only by design, and that culture would be hard to reconcile with an open fediverse. You'd probably want to keep writes gated behind a Lobsters account while making reads public. Lemmy did something similar, though it still struggled with spam after federation. Anyway, it's open source, so maybe someone with more time than me will take a crack at it someday.

lobste.rs

hongminhee

I'm Hong Minhee, and a software engineer in Seoul. I write some free/open source software, which are mostly written in Haskell, Python, and TypeScript. I'm an advocate of free/open source software and fediverse. openpgp4fpr:374B15AF323796A62AB1BCE3C429ECD57EED6CCA

@hongminhee@hollo.social · Reply to gemelen

@gemelen I actually looked into Scala a while back, but it never quite clicked for me. It feels a bit unnecessarily complex, likely due to all that Java interop baggage. As someone who breathes Haskell, I prefer the purity and elegance of a language designed from the ground up for functional programming. Scala feels like it's trying to do too many things at once, whereas I'm looking for that sleek, polished feel I loved in PureScript—which is why I'm leaning more towards Lean or MoonBit lately!

@hongminhee@hollo.social

I have a confession to make: while Haskell will always be my first love, PureScript was the one that truly stole my heart. It felt like a “polished” version of Haskell, smoothing out the rough edges and adding gems like row polymorphism that I still miss dearly. It's heartbreaking to see it labeled a “dead” language now, especially with its primary focus being stuck in the JavaScript ecosystem while other backends remain second-class citizens.

I've tried moving on with ReScript, Elm, or Gleam, but they never quite scratched that itch. They are great for what they are, but for someone used to the sheer expressive power of Haskell-like type systems, they feel a bit too “simple.” I find myself missing the depth and the “if it compiles, it works” confidence that only a truly robust type system provides.

Lately, my eyes have been wandering toward Lean and MoonBit. Lean is fascinatingly powerful, though I'm still searching for a more seamless JavaScript/WebAssembly story there. MoonBit also looks incredibly promising—a WebAssembly-first language that seems to aim for a higher level of sophistication than the usual ML-likes. The quest for the perfect, type-safe web language continues.

@hongminhee@hollo.social · Reply to Ayo

@ayo Thank you! COSCUP is an in-person event, so there isn't much to do remotely—but spreading the word when we announce the CFP and the schedule would be a huge help. I'll make sure to post updates here!

@hongminhee@hollo.social

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

  • Yes, I'd like to speak2 (5%)
  • Maybe, tell me more5 (11%)
  • I can't make it, but I support this36 (82%)
  • Not interested1 (2%)

hollo.social

I've been saying for a while t…

I've been saying for a while that we need something like FediCon in East Asia. A dedicated conference is still a stretch, but I've been thinking about a smaller step: @COSCUP@floss.social 2026 (Taipei, Aug 8–9) is accepting proposals for community tracks. It might be worth trying to open a *Social Web track* there—something in the spirit of the Social Web devroom at FOSDEM. Nothing is decided yet, but if you're working on #ActivityPub, the #fediverse, or anything in the social web space and might be interested in speaking (or co-organizing), I'd love to hear from you. https://floss.social/@COSCUP/116152356550445285 #SocialWeb #COSCUP #fedidev

@hongminhee@hollo.social

I've been saying for a while that we need something like FediCon in East Asia. A dedicated conference is still a stretch, but I've been thinking about a smaller step:

@COSCUP 2026 (Taipei, Aug 8–9) is accepting proposals for community tracks. It might be worth trying to open a Social Web track there—something in the spirit of the Social Web devroom at FOSDEM.

Nothing is decided yet, but if you're working on , the , or anything in the social web space and might be interested in speaking (or co-organizing), I'd love to hear from you.

https://floss.social/@COSCUP/116152356550445285

floss.social

COSCUP (@COSCUP@floss.social)

🚀 COSCUP 2026 Call for Participation is now open! 🎤 Community Tracks – Run a open-source agenda with talks, panels, or workshops. Apply by Mar 23. Spots are limited. 🛠 Community Booths – Showcase your project, recruit members, and connect. Apply by Jun 9. First come, first served. 👉 Apply here: https://s.coscup.org/26communityen #COSCUP2026 #OpenSource #Community

@hongminhee@hollo.social

Optique just crossed 600 GitHub stars!

For those unfamiliar: is a parsing library for that takes a parser combinator approach, inspired by Haskell's optparse-applicative. The core idea is “parse, don't validate”—you express constraints like mutually exclusive options or dependent flags through types, and TypeScript infers the rest automatically. No runtime validation boilerplate needed.

It started as something I built out of frustration while working on Fedify, an ActivityPub framework, when no existing CLI library could express the constraints I needed in a type-safe way. Apparently I wasn't the only one who felt that way.

Thank you all for the support.

https://github.com/dahlia/optique

Screenshot of the GitHub repository page for dahlia/optique. The repository header shows a fork count of 7 and a star count of 601. The navigation tabs show Code, Issues (312), Pull requests, Discussions, Actions, and Security. The current branch is main, with the latest commit hash 9b28b85 made 18 minutes ago. The About section on the right reads “type-safe combinatorial CLI parser for TypeScript” with a link to optique.dev.
ALT text

Screenshot of the GitHub repository page for dahlia/optique. The repository header shows a fork count of 7 and a star count of 601. The navigation tabs show Code, Issues (312), Pull requests, Discussions, Actions, and Security. The current branch is main, with the latest commit hash 9b28b85 made 18 minutes ago. The About section on the right reads “type-safe combinatorial CLI parser for TypeScript” with a link to optique.dev.

@kodingwarrior@hackers.pub

Thanks to @nyanrus https://moim.live now supports Mastodon OAuth, Misskey MiAuth

Ordinary signin page, and bottom of fediverse OTP login section, we can see mastodon/misskey signin button
ALT text

Ordinary signin page, and bottom of fediverse OTP login section, we can see mastodon/misskey signin button

After input mastodon instance URL
ALT text

After input mastodon instance URL

We can see authorization page for moim.live login, and then succeed to signin
ALT text

We can see authorization page for moim.live login, and then succeed to signin

@notolyte@misskey.io

現行の韓国語正書法って基本的に同じ漢字は発音によらず同じハングルで書くので母語で漢字を使い続けている人間から見るとハングル専用文であっても依然として少し読みにくい漢字で書いてあるように見える 国立のことを궁닙って書くようになったら漢字が廃止されたなあって思うと思う

@sh@tsuzuri.gamelinks007.net

Tsuzuri(綴り)が実運用(外部からのフォローや外部への記事の配信など)ができるようになったので、これをベースに拡張すればお一人様向けのActivityPub実装を作れそうだなと考えている

Tsuzuriにタイムラインや通知、フォロー、公開範囲の対応などをすれば一通り使えるものにはなるのではないかと

通知やフォローなどはTsuzuriの既存機能を拡張すれば良いからそこまで実装コストはかからなさそう

ただタイムラインや公開範囲などは考えることも多いと思うので、そこの見通しが立たない限りは実装しないかもしれない

Mastodonの引用機能やMisskeyなどの絵文字リアクションまで考慮するとなるとより難しくなる

ただ、お一人様向けのActivityPub実装が増えること自体は良いことだと思うので、うまくやる方法を考えたい

@gnome@floss.social

🚨 50 will be released on March 18!

😍 Star or/and boost this post if you're excited! With 5 more days to go we just asked our developers to drop their final GNOME 50 release of their projects.

Blue themed background based off GNOME 50 default background and the next "GNOME 50"
ALT text

Blue themed background based off GNOME 50 default background and the next "GNOME 50"