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

洪 民憙 (Hong Minhee) :nonbinary:

@hongminhee@hollo.social

1,085 following1,891 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

@helge@mymath.rocks
@hongminhee@hollo.social

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

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

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

bsky.app

dec_alpha (@decalpha.bsky.social)

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

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

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

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!

github.com

CLI for Fedify 2.0: Cross-runtime transition and Optique adoption · Issue #374 · fedify-dev/fedify

The current Fedify CLI implementation has been working well for our Deno-focused ecosystem, but as we prepare for Fedify 2.0, we're hitting some architectural limitations that are becoming increasi...

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

@yamanoku@hollo.yamanoku.net · Reply to 洪 民憙 (Hong Minhee) :nonbinary:

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

https://hackers.bar/

https://hackbar.jp/

hackbar.jp

ハックバー HACK.BAR | エンジニアが集まるバー

ハックバー HACK.BAR は世界にもあまり見ないエンジニアが集まるバーです。技術者視点での会話や相談・仕事の話まで。そこに集まるのは様々なエンジニアと呼ばれる偉人達。

@hongminhee@hollo.social

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

engineercafe.jp

Engineer Cafe|福岡天神に誕生、エンジニアのためのハッカースペース

2019年8月オープン!コワーキングスペースとしての利用のほか、各種イベントや勉強会を開催、多くのコミュニティが集います。国内外から様々な業種のエンジニアが集まるエンジニアのための施設です。

@hongminhee@hackers.pub

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

misskey.okayurisotto.net

🍚おかゆりぞっと🥢 (@okayurisotto)

JSON-LDへの愚痴

@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サーバ開発を!!!

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

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!

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

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.

@hongminhee@hollo.social · Reply to Jim DeLaHunt
@hongminhee@hollo.social

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

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

elysiajs.com

End-to-End Type Safety - ElysiaJS

Elysia supports end-to-end type safety with Elysia Eden from the start. End-to-end type-safety refers to a system in which every component of the system is checked for type consistency, meaning that data is passed between components only if the types of the data are compatible.

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

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

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

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

bsky.app

Craig Harrington (@craigipedia.bsky.social)

What the fuck did I just read? https://www.theguardian.com/world/2025/oct/04/greta-thunberg-israel-gaza-sweden

@lobsters@mastodon.social
@ysh@social.long-echo.net

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.

github.com

STF 2025–2026 Milestone 1: Add Web Framework Integrations • fedify-dev

STF 2025–2026 Milestone 1: Add Web Framework Integrations

@dansup@mastodon.social

The fediverse needs better developer resources. The kind ATProto has.

Fixing that gap: rich documentation, interactive examples, instant prototyping.

Built indie-style with FediDB, browser.pub and other community resources to create a better foundation for the next generation of fediverse developers.

Sometimes one spark is all it takes. Share if you care ✨

The new ActivityPub developer landing page, coming soon!
ALT text

The new ActivityPub developer landing page, coming soon!

@nesroch@mastodon.online

한국인의 혐중(嫌中)은 이제 명백히 치료해야 할 사회적 병이 되었다고 생각한다. 몇 년 전까지는 경제발전을 빨리 이룬 국가적 우월감(절대 이런 우월감은 정당화 가능하다는 의미가 아님.)에 따른 차별적 의식 전반이 문제라고 우활(迂闊)하게만 생각했는데, 이제는 명백히 ‘중국과 중국인에 대한 혐오’가 문제임을 부인할 수 없게 되었음. 진짜 큰일났다.