洪 民憙 (Hong Minhee)'s avatar

洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · 966 following · 1307 followers

An intersectionalist, feminist, and socialist guy 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 메인테이너. , , , 等으로 自由 소프트웨어 만듦.

()

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

@hongminhee@hollo.social

Hello, I'm an open source software engineer in my late 30s living in , , and an avid advocate of and the .

I'm the creator of @fedify, an server framework in , @hollo, an ActivityPub-enabled microblogging software for single users, and @botkit, a simple ActivityPub bot framework.

I'm also very interested in East Asian languages (so-called ) and . Feel free to talk to me in , (), or (), or even in Literary Chinese (, )!

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

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

安寧(안녕)하세요, 저는 서울에 살고 있는 30() 後半(후반) 오픈 소스 소프트웨어 엔지니어이며, 自由(자유)·오픈 소스 소프트웨어와 聯合宇宙(연합우주)(fediverse)의 熱烈(열렬)支持者(지지자)입니다.

저는 TypeScript() ActivityPub 서버 프레임워크인 @fedify 프로젝트와 싱글 유저() ActivityPub 마이크로블로그인 @hollo 프로젝트와 ActivityPub 봇 프레임워크인 @botkit 프로젝트의 製作者(제작자)이기도 합니다.

저는 ()아시아 言語(언어)(이른바 )와 유니코드에도 關心(관심)이 많습니다. 聯合宇宙(연합우주)에서는 國漢文混用體(국한문 혼용체)를 쓰고 있어요! 제게 韓國語(한국어)英語(영어), 日本語(일본어)로 말을 걸어주세요. (아니면, 漢文(한문)으로도!)

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

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

こんにちは、私はソウルに住んでいる30代後半のオープンソースソフトウェアエンジニアで、自由・オープンソースソフトウェアとフェディバースの熱烈な支持者です。名前は洪 民憙ホン・ミンヒです。

私はTypeScript用のActivityPubサーバーフレームワークである「@fedify」と、ActivityPubをサポートする1人用マイクロブログである 「@hollo」と、ActivityPubのボットを作成する為のシンプルなフレームワークである「@botkit」の作者でもあります。

私は東アジア言語(いわゆるCJK)とUnicodeにも興味が多いです。日本語、英語、韓国語で話しかけてください。(または、漢文でも!)

FOSS for All's avatar
FOSS for All

@fossforall@mastodon.social

🪒 야크 셰이빙: 새로운 오픈소스의 원동력
작은 불편함에서 시작된 수많은 프로젝트, 그 연결의 힘은?

야크 셰이빙: 새로운 오픈소스의 원동력
홍민희 (자유·오픈소스 소프트웨어 개발자)

연사 2025.fossforall.org/speakers/
티켓 event-us.kr/fossforall/event/1

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

@hongminhee@hollo.social

오는 11() 8() 光云大學校(광운대학교)에서 開催(개최)되는 FOSS for All 컨퍼런스 2025에서 제가 〈야크 셰이빙: 새로운 오픈 소스의 原動力(원동력)〉이라는 主題(주제)基調演說(기조연설)을 하게 되었습니다!

올해 처음 열리는 FOSS for All 컨퍼런스는 “Free and Open Source Software for All”이라는 슬로건 아래, 모두를 ()한 오픈 소스 컨퍼런스를 目標(목표)로 하는 非營利(비영리) 오픈 소스 커뮤니티 컨퍼런스입니다.

파란色 背景의 FOSS for All 컨퍼런스 2025 發表者 카드. 右側 아래에는 發表者 洪民憙의 寫眞이 있고, 中央의 흰色 말風船 안에는 「Keynote」라는 文句와 함께 發表 題目 〈야크 셰이빙: 새로운 오픈 소스의 原動力〉이 쓰여 있다.
ALT text details파란色 背景의 FOSS for All 컨퍼런스 2025 發表者 카드. 右側 아래에는 發表者 洪民憙의 寫眞이 있고, 中央의 흰色 말風船 안에는 「Keynote」라는 文句와 함께 發表 題目 〈야크 셰이빙: 새로운 오픈 소스의 原動力〉이 쓰여 있다.
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

오늘 안 것: 【배울 ()】의 異體字(이체자)𭓘(𭓘)이 Unicode에 들어있다 (U+2D4D8).

【배울 學】의 異體字인 𭓘
ALT text details【배울 學】의 異體字인 𭓘
Helge's avatar
Helge

@helge@mymath.rocks

Good morning Fediverse.

If you are wondering, how a FEP overview should look like, click here.

What I mean here: Use a sequence diagram. The underlying network of the Fediverse is about complicated exchanges of activities. It's about what goes over the wire.

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

@hongminhee@hollo.social

私見(사견)으로는 漢字(한자) 敎育(교육)基本的(기본적)語彙力(어휘력)을 갖추는 데에는 必要(필요) 없고, 高級(고급) 語彙(어휘)를 갖추는 데에나 效果(효과)가 있다고 생각. 그런데 語彙力(어휘력) 이슈가 나올 때는 普通(보통) 前者(전자)問題(문제)이기 때문에, 漢字(한자) 敎育(교육)은 엉뚱한 方案(방안)이 되는 거고.

그리고 點心(점심)이든 中華料理(중화요리)漢字(한자)로도 【중식】은 【中食(중식)】이라, 이런 케이스에는 漢字(한자) 敎育(교육)을 해도 解決(해결)이 안 됨.

https://bsky.brid.gy/r/https://bsky.app/profile/did:plc:sbhczrmqu43gq2hyns36lmzw/post/3m2skod7pas2y

dec_alpha's avatar
dec_alpha

@decalpha.bsky.social@bsky.brid.gy

계속 한자 교육을 해야한다는 분들이 나오는데 중요한건 한자 교육이 아님. 극단적으로 금일 중식..이란 말이 나올 때 저 중식이 점심을 말하는지 중국 음식을 말하는지는 문맥을 읽어야 하는 거고 그런 교육이 필요한거지 .. 한자 교육을 하면 어휘향상에 도움이 되는건 맞지만 반드시는 아님. 차라리 시험에서 많은 예문을 제시하고 읽게 하는게 필요한거지 ... 그리고 문제는 9%의 하위를 끌어올릴걸 고민하는거라..

Fedify: ActivityPub server framework's avatar
Fedify: ActivityPub server framework

@fedify@hollo.social

Exciting news for developers! We've just landed a major milestone for Fedify 2.0—the now runs natively on .js and , not just (#456). If you install @fedify/cli@2.0.0-dev.1761 from npm, you'll get actual JavaScript that executes directly in your runtime, no more pre-compiled binaries from deno compile. This is part of our broader transition to Optique, a new cross-runtime CLI framework we've developed specifically for Fedify's needs (#374).

This change means a more natural development experience regardless of your runtime preference. Node.js developers can now run the CLI tools directly through their familiar ecosystem, and the same goes for Bun users. While Fedify 2.0 isn't released yet, we're excited to share this progress with the community—feel free to try out the dev version and let us know how it works for you!

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

@hongminhee@hollo.social · Reply to yamanoku's post

@yamanoku こちらこそですね!多分いまから一年間、日本に行く機会が多くと思うので、いつかお話す機会が有ると思います!

Jeremy Mallin's avatar
Jeremy Mallin

@JeremyMallin@autistics.life

I saw a post complaining that the term "gaslighting" is being overused. It is not. The practice is being over used, not the term.

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

@hongminhee@hollo.social · Reply to Emelia 👸🏻's post

@thisismissem Congratulations!

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

@hongminhee@hollo.social · Reply to yamanoku's post

@yamanoku 教えてくれてありがとうございます!お酒は苦手なんですけど、一度行ってみます!

yamanoku's avatar
yamanoku

@yamanoku@hollo.yamanoku.net · Reply to 洪 民憙 (Hong Minhee)'s post

@hongminhee カフェではなくバーですが東京の東中野に「ハッカーズバー」、兵庫の神戸に「ハックバー」というのがあります。プログラミングに関する相談などがメインな感じですが、ご参考までに。

https://hackers.bar/

https://hackbar.jp/

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

@hongminhee@hollo.social

以前、福岡へ旅行した際にEngineer Cafeに立ち寄ったのが印象に残っているのですが、日本の他の地域にもEngineer Cafeのような場所は有りますか?オフラインで日本のソフトウェア開発者の方々と交流したいです。

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

@hongminhee@hackers.pub

このように複雑で厄介なJSON-LDの仕様を一つ一つ考慮しながらActivityPubソフトウェアを開発することに疲れたなら、Fedifyを使ってみてください。Fedifyは内部的に(JSON-LDを単なるJSONとして扱う実装ではなく)本格的なJSON-LDプロセッサを使用すると同時に、ハイレベルAPIではそれらをすべて抽象化し、JSON-LDを理解していなくてもActivityPubの開発を可能にします。



RE: https://misskey.okayurisotto.net/notes/adldvkxhjv

🥞 おかゆりぞっと :blobcatdroolreach:'s avatar
🥞 おかゆりぞっと :blobcatdroolreach:

@okayurisotto@misskey.okayurisotto.net

JSON-LDへの愚痴

次のような未知のJSONがソフトウェアに与えられたとき、

{
  "name": "Alice"
}

ソフトウェアは
"Alice"という値がなんであるかを識別することはできません。よって、nameという文字列キーの代わりに事前に定義された識別子を用いることにしましょう。例えば:
{
  "http://xmlns.com/foaf/0.1/name": "Alice"
}

(URLとして解釈可能な文字列ではありますが、これはたまたまです。URLとして機能するわけではありません。便宜上このような文字列を使っているというだけ。
ですのでそのURLのドメインが悪意ある第三者によって詐欺サイトにリダイレクトするようになっていても、JSON-LD的には問題ありません!

ここで、互換性のため
@contextというものを考えたいと思います。これを使って次のように書くと、
{
  "@context": {
    "name": "http://xmlns.com/foaf/0.1/name"
  },
  "name": "Alice"
}

@contextを無視するだけで、従来のソフトウェアは今まで通りにJSONを扱うことができます。これがJSON-LDの基本的なコンセプトです。

ちなみに
@contextではあらゆる識別子をあらゆる文字列へマッピングできます。よって、ソフトウェアは次の2種類のJSON-LDを同じように解釈する必要がありますね!
{
  "@context": {
    "name": "http://xmlns.com/foaf/0.1/name"
  },
  "name": "Alice"
}
{
  "@context": {
    "名前": "http://xmlns.com/foaf/0.1/name"
  },
  "名前": "Alice"
}

ではここでさらなる抽象化を考えてみましょう。次のようにすると、与えられたJSON-LDが人物の情報であることを表すことができます。
{
  "@context": "https://json-ld.org/contexts/person.jsonld",
  "name": "Alice"
}

コンテキストは複数指定することもできますし、従来の辞書型と混ぜることもできます。さらに、あるコンテキストで定義されたキーに別名を付けて使うこともできます。
{
  "@context": [
    "https://example.com/foo",
    "https://example.com/bar",
    {
      "buz": "https://example.com/buz",
      "qux": "buz:qux"
    }
  ]
}

そうそう、クラス定義というものもあります。次の例における
"Object"という文字列値は、Activity Vocabulary(ActiviyPubを構成する仕様の一つ)におけるObjectというクラスであることを示すものです。
{
  "@context": "https://www.w3.org/ns/activitystreams",
  "type": "Object",
  "id": "http://www.test.example/object/1",
  "name": "A Simple, non-specific object"
}

Objectという文字列がキーとして使われることがないことはJSON-LDからは読み取れませんが、まあなんとかしてください!

ちなみにMisskeyが送信するJSONに付与する
@contextは次の通り。つまり、このコンテキストを理解できるソフトウェアを作れば、Misskeyと連携することができるということです。
{
	"@context": [
		"https://www.w3.org/ns/activitystreams",
		"https://w3id.org/security/v1",
		{
			"Key": "sec:Key",
			"manuallyApprovesFollowers": "as:manuallyApprovesFollowers",
			"sensitive": "as:sensitive",
			"Hashtag": "as:Hashtag",
			"quoteUrl": "as:quoteUrl",
			"toot": "http://joinmastodon.org/ns#",
			"Emoji": "toot:Emoji",
			"featured": "toot:featured",
			"discoverable": "toot:discoverable",
			"schema": "http://schema.org#",
			"PropertyValue": "schema:PropertyValue",
			"value": "schema:value",
			"misskey": "https://misskey-hub.net/ns#",
			"_misskey_content": "misskey:_misskey_content",
			"_misskey_quote": "misskey:_misskey_quote",
			"_misskey_reaction": "misskey:_misskey_reaction",
			"_misskey_votes": "misskey:_misskey_votes",
			"_misskey_summary": "misskey:_misskey_summary",
			"isCat": "misskey:isCat",
			"vcard": "http://www.w3.org/2006/vcard/ns#"
		}
	]
}

(ですがMisskeyは受信したJSON-LDをただのJSONとして解釈し、
@contextの内容は関知しません。)

そもそも情報交換用のサーバ間APIでJSON-LDのような柔軟で既存のJSON構造を壊さずに導入できる仕様を使う必要はないかもしれませんが……まあ細かいことは気にしない!

それでは、楽しいActivityPubサーバ開発を!!!

Riley Testut :fatpikachu:'s avatar
Riley Testut :fatpikachu:

@rileytestut@mastodon.social · Reply to Riley Testut :fatpikachu:'s post

While this solves our problems, we are far from the only Fediverse project that could use some funding and we want to support the growth of the entire ecosystem.

So to give back to the open social web, we’re also donating $500,000 total to these incredible Fediverse-related projects 🎉

@Mastodon
@ivory
Tapestry by @Iconfactory
@mstdn
@bsky.brid.gy
@peertube
@bookwyrm
@akkoma
@fedify

The Fediverse as we know it would not exist without them, so please check them out!

Fedify: ActivityPub server framework's avatar
Fedify: ActivityPub server framework

@fedify@hollo.social

Announcement: AltStore becomes a financial contributor to Fedify

We're thrilled to announce that AltStore has become a financial contributor to Fedify! This generous support comes as part of AltStore's broader commitment to strengthening the open social web ecosystem, as they prepare to become the world's first federated app store. Their investment in Fedify and other fediverse projects demonstrates a shared vision for building a more open, interoperable digital future.

AltStore's journey into the fediverse represents a groundbreaking approach to app distribution—connecting their alternative app marketplace with the open social web through ActivityPub. As pioneers who have already pushed Apple to change App Store policies twice in their first year, AltStore understands the transformative power of open protocols and decentralized systems. Their support will help Fedify continue developing robust tools and libraries that make it easier for developers to build federated applications. We're deeply grateful for AltStore's trust in our project and look forward to seeing how their innovative federated app store will reshape mobile app distribution while strengthening the entire fediverse ecosystem.

https://rileytestut.com/blog/2025/10/07/evolving-altstore-pal/

Email notification from Open Collective showing AltStore has become a new financial contributor to Fedify as a corporate sponsor with a $500.00 monthly contribution. The email includes the Open Collective logo, information about AltStore with a link to their Open Collective page, and details about the sponsorship tier and amount.
ALT text detailsEmail notification from Open Collective showing AltStore has become a new financial contributor to Fedify as a corporate sponsor with a $500.00 monthly contribution. The email includes the Open Collective logo, information about AltStore with a link to their Open Collective page, and details about the sponsorship tier and amount.
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to Jim DeLaHunt's post

@jdlh I can't recall any cases of usernames using non-ASCII characters, but I do know of a domain name that does. The instance 國漢象會 is one such example.

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

@hongminhee@hollo.social

機会が有ればHolloを一度大規模にリファクタリングしたいんだけど、時間が無い。リファクタリングするならやりたいことリスト:

  • Drizzle ORMをベータ版にアップグレードし、RQBv2を適用
  • ユニットテストを作成
  • 独自のフロントエンドを搭載
  • HonoをElysiaに置き換え、エンドツーエンドの型安全性を実現
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

事情(사정)이 생겨서 靑島(청도)에는 못 가게 되었다… 아마 다른 때에 다른 곳으로 갈 듯?

https://hollo.social/@hongminhee/0199b351-8a40-7bcc-b18f-8e17cd9b76fb

dansup's avatar
dansup

@dansup@mastodon.social

I'm finally finished writing the ActivityPub code for Loops at 6am this morning, I'm exhausted.

Will relax tonight and release tomorrow, along with a beautiful new blog ✨

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

@hongminhee@hollo.social

韓国のソフトウェア開発者の方々(@kodingwarrior@nebuleto)にFediLUG@fedilug )のことを教えたら、興味を持ってくれた。機会があれば、次の会に一緒に参加してみることに。

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

@hongminhee@hollo.social · Reply to Jaeyeol Lee (a.k.a. kodingwarrior) :vim:'s post

@kodingwarrior 저도 會話(회화)問題(문제)… 😭

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

@hongminhee@hollo.social

韓国のソフトウェア開発者の方々(@kodingwarrior@nebuleto)にFediLUG@fedilug )のことを教えたら、興味を持ってくれた。機会があれば、次の会に一緒に参加してみることに。

짬뽕을 드세요's avatar
짬뽕을 드세요

@champont.bsky.social@bsky.brid.gy

이스라엘이 "이번에" 그레타 툰베리에게 저지른 만행 - 빈대가 들끓는 방에 가두고 물과 음식을 제대로 주지 않음 - 강제로 어떤 깃발을 들게 하고 사진을 찍음 (무슨 깃발인지는 모름) - 공개적으로 머리채를 잡아서 끌고, 구타하고, 이스라엘기를 뽀뽀하게 함 - 이스라엘기에 돌돌 말아서 "전리품처럼" 데리고 다님 - 다짜고짜 무슨 문서에 서명해라고 함. 툰베리는 자신이 이해할 수 없는 것에 서명하는 데 두려움을 느꼈다 함. (스웨덴 정부에 따르면 법적 자문을 받음)

RE: https://bsky.app/profile/did:plc:nzcjpprq6fwcdnwpc45e3gsd/post/3m2ffk4ojjs2t

Lobsters

@lobsters@mastodon.social

Optique 0.6.0: Shell completion support for type-safe CLI parsers lobste.rs/s/rnekre
hackers.pub/@hongminhee/2025/o

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

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

By the way, Fedify 1.9.0 will introduce @fedify/koa, a Fedify–Koa integration package.

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

@hongminhee@hollo.social

Fedify's documentation is so comprehensive, and almost all its code examples are type-checked using Twoslash, to the point that it takes over five minutes to build the docs in CI. 😂

염산하

@ysh@social.long-echo.net

hollo 0.6.12 로 업그레이드 성공! phanpy.social 은 수작업으로 로컬에 생긴 모든 데이터를 일일이 지워줘야 잘 되는 듯.

https://hollo.social/@hongminhee/0199aab3-d7c3-7e81-8ecb-e374ec6738a7

Fedify: ActivityPub server framework's avatar
Fedify: ActivityPub server framework

@fedify@hollo.social

Transparency update: Web framework integration progress

We're sharing a public project board to track our progress on web framework integrations for , work commissioned by the Sovereign Tech Fund (@sovtechfund). You can follow along at:

https://github.com/orgs/fedify-dev/projects/1

About this work

The Sovereign Tech Fund invested in Fedify to expand its ecosystem through official integrations with popular web frameworks. This investment enables developers to add federation capabilities to their existing applications without changing their technology stack.

Notably, some of these integrations were completed between our initial application submission and the official kickoff of the investment. This demonstrates both our commitment to the project and the community's active development momentum.

Current status

Already completed:

  • Next.js integration supporting both App Router and Pages Router (completed before STF kickoff)
  • Elysia integration optimized for the Bun ecosystem (completed before STF kickoff)

In progress:

  • Fastify integration (PR currently under review)

Upcoming:

  • Koa integration
  • Comprehensive documentation for all integrations

Why this matters

These integrations make Fedify accessible to developers across different JavaScript ecosystems and runtime environments. Each integration follows established patterns from our Express and h3 integrations, ensuring consistency and ease of adoption.

Investment details

Fedify has been awarded a service agreement by the Sovereign Tech Fund for this work, with a budget of €‎32,000 and completion target of November 30, 2025. The Sovereign Tech Agency supports the development, improvement, and maintenance of open digital infrastructure through investments like this.

We believe in transparent development and welcome community input and contributions.

Jaeyeol Lee (a.k.a. kodingwarrior) :vim:'s avatar
Jaeyeol Lee (a.k.a. kodingwarrior) :vim:

@kodingwarrior@silicon.moe

히로시마가 생각나는 맛

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

@hongminhee@hollo.social · Reply to dansup's post

@dansup Awesome! I'm really looking forward to it!

← Newer
Older →