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

洪 民憙 (Hong Minhee) :nonbinary:

@hongminhee@hollo.social

1,118 following1,670 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

So, an interesting issue came up in the repo that I've been thinking about: #629.

You know how every server uses schema:PropertyValue in actor attachment for profile metadata fields (like “Website”, “GitHub”, etc.)? Turns out, strict validators like browser.pub reject it, because the AS2 spec says attachment should only contain Object or Link—and PropertyValue is a schema.org type, not an Activity Streams 2.0 type.

The thing is, we can't just drop the type like we did with Endpoints (#576), because Mastodon and others rely on seeing "type": "PropertyValue" to render profile fields. But at the same time, it's technically not spec-compliant.

I'm leaning towards writing a to formalize this existing practice rather than trying to invent a new type (like toot:PropertyValue extending Object), which would be a nightmare to migrate across the whole fediverse.

What do you all think? Has anyone else run into this? Would love to hear thoughts from implementers and spec folks.

github.com

Endpoints object serializes with invalid "type": "as:Endpoints" in actor JSON · Issue #576 · fedify-dev/fedify

Description When Fedify serializes an actor's endpoints property to JSON-LD (compacted), it includes "type": "as:Endpoints" in the output: "endpoints": { "type": "as:Endpoints", "sharedInbox": "htt...

@hongminhee@hollo.social

OpenAI to acquire Astral

What strikes me most about this acquisition isn't the AI angle. It's the question of why so many open source tools get built by startup teams in the first place.

I maintain an open source project funded by the Sovereign Tech Fund. Getting there wasn't easy: the application process is long, the amounts are modest compared to a VC round, and you have to build community trust before any of that becomes possible. But the result is a project that isn't on anyone's exit timeline.

I'm not saying the startup path is without its own difficulties. But structurally, it offloads the costs onto the community that eventually comes to depend on you. By the time those costs come due, the founders have either cashed out or the company is circling the drain, and the users are left holding the bag. What's happening to Astral fits that pattern almost too neatly.

The healthier model, I think, is to build community first and then seek public or nonprofit funding: NLnet, STF, or similar. It's slower and harder, but it doesn't have a built-in betrayal baked into the structure.

Part of what makes this difficult is that public funding for open source infrastructure is still very uneven geographically. I'm based in Korea, and there's essentially nothing here comparable to what European developers can access. I had no choice but to turn to European funds, because there was simply no domestic equivalent. That's a structural problem worth taking seriously. The more countries that leave this entirely to the private sector, the more we end up watching exactly this kind of thing play out.

openai.com

OpenAI to acquire Astral

Accelerates Codex growth to power the next generation of Python developer tools

@sabrinkmann@hachyderm.io · Reply to Samuel Brinkmann

Wir sollten „Public Money = Public Social Media” also mehr pushen.
Habt Spaß und wenn ihr könnt, baut doch etwas mit z. B. @fedify oder @botkit.
Damit das Ganze hier aber wirklich skaliert, braucht es schlichtweg mehr Geld. Natürlich auch mehr Strukturen und Spezifikationen. Dass hier überhaupt etwas gebaut wird, ist schon großartig. Im Ehrenamt lässt sich nur schwer eine Alternative zu Big Tech aufbauen, wenn man möchte, dass ein Großteil der Bevölkerung Lust hat, diese Anwendungen zu benutzen. Geschweige vom Onboarding, auch auf dem Platten land.
Wer von Open Source spricht, sollte beim Fediverse Funding nicht schweigen.

Hier noch einmal eine Linkliste von Tools:
- Ihr habt Bock auf hübsche Wraps-Grafiken für euren Account: mastodon-wrapped.playground.54
- Ihr wollt eure Account-Einstellungen checken: mastodon-account-checker.playg
- Ihr wollt wissen, welche Organisationen schon auf Mastodon sind (täglich frisch aktualisiert): mastodon-account-checker.playg
- Jede Konferenz/Treffen braucht ein Hashtag und eine fediwall.de/
- Tägliche coole Geschichtlichen Wikipedia Links gibt es hier: @heute_vor

CTA
Seid erfolgreich im Fedvierse
+1: Public Money = Public Social Media
Baut Bots und föderierte Dienste mit Fedify und Botkit
Für die Adoption der “Massen” braucht es mehr Geld in Software und Community
Looking @ you Land SH / Bund / EU
Links Tools: @sabrinkmann@hachyderm.io
ALT text

CTA Seid erfolgreich im Fedvierse +1: Public Money = Public Social Media Baut Bots und föderierte Dienste mit Fedify und Botkit Für die Adoption der “Massen” braucht es mehr Geld in Software und Community Looking @ you Land SH / Bund / EU Links Tools: @sabrinkmann@hachyderm.io

@liaizon@wake.st

had to install `noto-fonts-core` to see @north's ဪ.com Burmese test domain on mnt flavored debian and already installed `fonts-noto-cjk` the other day to see @hongminhee's korean posts. I think we should probably move to shipping all the noto base fonts tbh

@firesidefedi@btfree.social

Good day all! Upcoming episode of Fireside Fedi!

The #livestream will be on: stream.firesidefedi.live

Special Guest: @hongminhee@hollo.social

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 #TypeScript, #Haskell, #Rust, & #Python. They/them.

Follow @ozoned@stream.firesidefedi.live to be alerted when we go live! So don't miss it!

It will happen on 06 April 2026 at 08:30 US Eastern Time ( UTC-4 )

If by any ungodly chance you miss the show:

#PeerTube ( #VOD ): tubefree.org/@firesidefedi

A dark image. The background is unclear and blurry. On the foreground on the left there is a huge circle, inside of which a profile picture belonging to @hongminhee@hollo.social. On the other side, a bit lower in the frame we see a fediverse logo, but on fire. This is the logo of the Fireside Fedi show. In between those two elements a text is written. This text says:

AN INTERVIEW WITH
@hongminhee@hollo.social

Hong Minhee :nonbinary: - 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 #TypeScript, #Haskell, #Rust, & #Python. They/them.

06 April 2026
AT 08:30 US EASTERN TIME
ON
FIRESIDEFEDI.LIVE
ALT text

A dark image. The background is unclear and blurry. On the foreground on the left there is a huge circle, inside of which a profile picture belonging to @hongminhee@hollo.social. On the other side, a bit lower in the frame we see a fediverse logo, but on fire. This is the logo of the Fireside Fedi show. In between those two elements a text is written. This text says: AN INTERVIEW WITH @hongminhee@hollo.social Hong Minhee :nonbinary: - 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 #TypeScript, #Haskell, #Rust, & #Python. They/them. 06 April 2026 AT 08:30 US EASTERN TIME ON FIRESIDEFEDI.LIVE

@hongminhee@hollo.social · Reply to MonkeyPanic! :startrek:

@MonkeyPanic That makes sense, and I think it points to a real limitation of the study. The participants were all late learners, people who didn't grow up with the foreign language at home. If you acquired both languages early and tied them to lived experience and emotion, the “foreign language effect” probably looks very different. Your Korean triggering emotions despite the vocabulary gap seems like evidence of exactly that.

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

@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