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

洪 民憙 (Hong Minhee) :nonbinary:

@hongminhee@hollo.social

1,107 following1,898 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

@cocoa@hackers.pub

わざわざこんなことするのには理由があって、結局フレームワークと統合するにも今のアプローチだと限界があるっていうのが1つの理由 (今の方法だとその新しいフレームワークの方法 (FastAPIみたいにStarletteベースにする)よりも統合が弱くなる)。もう一つはapkitだから別のプロトコルに対応させるのは明らかに変だっていうこと。まぁ後者はATとかサポートするか怪しいから適当

@cocoa@hackers.pub · Reply to AmaseCocoa

まぁ正しく言うならFediverseフレームワークみたいなものになるけど

名称自体もap系ではないし落ち着いてきたら複数のプロトコルをサポートするようにしたい

@cocoa@hackers.pub

apmodelとapsigの上に構築されたapkitの上に構築されたStarletteをベースとしたActivityPubフレームワークっていうとんでもなくわかりにくい書き方のものが生まれそう

@kodingwarrior@hackers.pub

해커스펍 오프라인 밋업... 일정은 확정되었고, 연사자분들도 좋은 분들로 모셨는데 때가 되면 공개하겠습니다...... 다음달 중순이긴 함...

@jiyu@hackers.pub · Reply to robin :reni_verified:

@robin_maki 결과: 마스토돈에서 새로운 conversation을 만들어서 AP로 노출한다!! 그럼 이 위 글에 또 다른 서버에서 답글을 남기면 conversation이 분리되겠지??

@robin_maki@planet.moe · Reply to Jiyu

@robin 그럼 여기에 마스토돈에서 답글을 달면 이 Note에서는 conversation을 뭐라고 할까??

@jiyu@hackers.pub

(연합 테스트용) 해커스펍은 ActivityPub Note에 별도의 ostatus conversation도 context도 없다 이걸 마스토돈에서 보면 임의의 conversation id를 만들어준다

@andypiper@macaw.social

Shout-out for @fedify as a great tool for developers in the 🫶🏻 from @dave

David Roetzel, a white man wearing a black t-shirt in front of a slide describing Fedify (a TypeScript ActivityPub server framework and CLI tool). A Mastodon plushie sits on the table in front.
ALT text

David Roetzel, a white man wearing a black t-shirt in front of a slide describing Fedify (a TypeScript ActivityPub server framework and CLI tool). A Mastodon plushie sits on the table in front.

@nebuleto@hackers.pub

오늘과 내일 PyCon KR 2025에서 해커스펍 부스 도우미로 나와있습니다! 파이콘 오신 분들 많이 들러주세요 :)

@2chanhaeng@hackers.pub

파이콘 와서 더위에 시달리다 정신차려보니 왠지 부스에 앉아있었다

파이콘 2025 FediDev KR 부스 테이블 사진
ALT text

파이콘 2025 FediDev KR 부스 테이블 사진

@z9mb1@hackers.pub

점심시간 한정!!!! 부스 지킴이 용병하고 있습니다

hackers.pub

파이콘 와서 더위에 시달리다 정신차려보니 왠지 부스에 앉아있었다

파이콘 와서 더위에 시달리다 정신차려보니 왠지 부스에 앉아있었다

@2chanhaeng@hackers.pub

파이콘 와서 더위에 시달리다 정신차려보니 왠지 부스에 앉아있었다

파이콘 2025 FediDev KR 부스 테이블 사진
ALT text

파이콘 2025 FediDev KR 부스 테이블 사진

@kodingwarrior@hackers.pub

@crohasang 님이 작명해주신 덕분에, 찝찝한 기분도 덜어내고 진행하고 있는 프로젝트에 좀 더 속도를 낼 수 있을 것 같다..... 압도적 감사.... 기념으로 도메인도 샀다. https://cosmosli.de 뽕을 뽑자 이젠.....

fedify-showcase 라는 이름으로만 남겨놔서 굉장히 찝찝했는데, crohasang님이 이름을 지어주신 덕분에 리포지토리 이름도, organization이름도 훨씬 더 간결해졌다.
ALT text

fedify-showcase 라는 이름으로만 남겨놔서 굉장히 찝찝했는데, crohasang님이 이름을 지어주신 덕분에 리포지토리 이름도, organization이름도 훨씬 더 간결해졌다.

name.com에서 cosmosli.de 도메인을 샀다
ALT text

name.com에서 cosmosli.de 도메인을 샀다

@hongminhee@hackers.pub

이번 주말에는 양일 모두 파이콘 한국 2025에 가서 Hackers' Pub 부스를 지킵니다!

hackerspub-ask-bot.deno.dev

# Ask Hackers Pub : 이번 주말에 뭐 하시나요?이번 주말에 뭘 하려고 계획 중인지 편하게 얘기해 보아요.읽을 책, 가볼 곳, 해볼 것.. 어떤 것이든 좋습니다.도움 요청이나 피드백 요청도 좋습니다.물론! 아무것도 하지 않고 쉬는 것도 훌륭합니다.* 지난 주말에 계획하셨던 일의 회고도 한 번 남겨보면 좋을 것 같아요. — HackersPub Ask Bot (@bot@hackerspub-ask-bot.deno.dev)

@bot@hackerspub-ask-bot.deno.dev

# Ask Hackers Pub : 이번 주말에 뭐 하시나요?

이번 주말에 뭘 하려고 계획 중인지 편하게 얘기해 보아요.
읽을 책, 가볼 곳, 해볼 것.. 어떤 것이든 좋습니다.
도움 요청이나 피드백 요청도 좋습니다.
물론! 아무것도 하지 않고 쉬는 것도 훌륭합니다.

* 지난 주말에 계획하셨던 일의 회고도 한 번 남겨보면 좋을 것 같아요.

@tokolovesme@seoul.earth

단발로 잘랐다가 오늘 숏컷 함 ㅋㅋㅋ 민희 좋다 말음… 내가 봐도 숏컷보단 단발이 낫다

@julian@fietkau.social · Reply to Emelia 👸🏻
@hongminhee@hollo.social

이 글 德分(덕분)未來(미래)에서 온 揭示物(게시물)이 Hollo 타임라인 最上端(최상단)佔有(점유)하는 버그를 發見(발견)하여, Hollo 이슈트래커에 이슈를 만들어 두었다.

github.com

Filter future-dated posts from appearing in timelines · Issue #199 · fedify-dev/hollo

Problem Currently, Hollo accepts and displays all remote posts regardless of their timestamp, including posts with dates set far in the future. This can cause timeline pollution where malicious or ...

@hongminhee@hollo.social · Reply to Emelia 👸🏻

@thisismissem @cocoa Oh, are there already similar proposals in FEP? Could you possibly link them?

As you mentioned, there are limitations to feature detection based on NodeInfo, but I still think it can be useful in some situations. For example, it's currently difficult to tell whether a remote node can see emoji reactions just from the JSON-LD information.

@thisismissem@hachyderm.io · Reply to AmaseCocoa

@cocoa @hongminhee sorry to reply in English, but yes, there's a few FEPs along these lines, but technically you don't need nodeinfo for AP, so you wouldn't passively discover this information, unlike detecting certain properties in json-ld objects over activitypub. Feature discovery can be hard too because what features you think they have (cached) might not be the features they actually have at present, or if you're upgrading from version 1 to version 2, and you have multiple backend servers with a load balancer, you might get unpredictable results from nodeinfo as the update rolls out (e.g., node 1 gives new feature, node 2 & 3 gives old feature, you'll only get new feature 1/3 of the time and your old nodes won't be able to immediately handle new feature until you roll out the update to all nodes, which would cause unpredictable behaviour)

@cocoa@hackers.pub · Reply to AmaseCocoa

feature-info?

まぁこれはnodeinfoのmeta使ってある程度決まったjsonを埋め込むようにすれば良さそうだけども。

こんな感じにするとか?

[
 "fep:8b32",
 "rfc:9421",
 "protocol:activitypub"
]
@cocoa@hackers.pub

実装間でのFEDERATION.mdみたいなのがほしいかもしれない🤔

We'd like to recognize the valuable contributions from two developers who participated in Korea's (Open Source Contribution Academy) program. Both contributors identified important gaps in 's functionality and documentation, providing thoughtful solutions that benefit the broader ecosystem.

@gaebalgom contributed PR #365, addressing issue #353 regarding NodeInfo parser compatibility, originally reported by @andypiper. The issue arose when Fedify incorrectly rejected documents from snac instances due to overly strict version string parsing that required semantic versioning compliance. Their solution improves the fallback behavior in the parseSoftware() function to handle non-SemVer version strings by parsing dot-separated numbers and defaulting to zero for missing components. The implementation includes thorough test coverage for various edge cases, including single numbers (3), two-part versions (2.81), and malformed version strings. This fix provides immediate compatibility improvements across the fediverse while maintaining backward compatibility, and will be included in Fedify 1.9. The contribution serves as an interim solution, with a more comprehensive fix planned for Fedify 2.0 (issue #366), where the NodeInfo software.version field will be changed from the SemVer type to a plain string to fully comply with the NodeInfo specification.

@z9mb1 contributed PR #364, resolving issue #337 by adding practical examples for Fedify's custom collection dispatchers feature. Custom collections were introduced in Fedify 1.8 but lacked clear documentation for developers seeking to implement them. Their contribution provides a comprehensive example demonstrating how to set up custom collections for tagged posts, including proper routing patterns, pagination handling, and counter functionality. The example includes mock data structures, shows how to configure collection dispatchers with URL patterns like /users/{userId}/tags/{tag}, and demonstrates the complete request/response cycle using federation.fetch(). This work provides developers with a clear, runnable reference that reduces the complexity of implementing custom collections in ActivityPub applications.

We appreciate these meaningful contributions that help make Fedify more accessible and robust for the entire ActivityPub community.

github.com

Examples for custom collection dispatchers · Issue #337 · fedify-dev/fedify

Summary Recently, Custom Collection Dispatcher was added #310 . This allows users to easily dispatch various Collections of Objects. However, since it was added not long ago, it may still be unfami...

@quillmatiq@mastodon.social · Reply to Anuj Ahooja

Every time this company has been in the news over the last two years, it's always something bad and/or internet-breaking. They don't deserve their users.