洪 民憙 (Hong Minhee)'s avatar

洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · 956 following · 1270 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にも興味が多いです。日本語、英語、韓国語で話しかけてください。(または、漢文でも!)

羊飼いノキ's avatar
羊飼いノキ

@solonoki@nokinoki.net

これはぼくの先生が良く言ってたんだけど、日本人(主語デカ)は字体の区別にやたら敏感だということ。
本来字体の違いは意味の違いに結びつかないはずなのに、特に旧字体にやたらと意味を見出したりってことがあるよね。
モンハンで竜と龍が明確に区別されていたりね。

るまたん's avatar
るまたん

@lematin@mastodon-japan.net

旧字体で一番迫力があるのは「継」だと思う。

「繼」の書き方 - 漢字の正しい書き順(筆順) kakijun.jp/page-ms/E38B200.htm

羊飼いノキ's avatar
羊飼いノキ

@solonoki@nokinoki.net

日本文学専攻に分かれてから最初に叩き込まれたのが旧字体…というか正字を読めるようになることだったわねー。

電羊齋 Talkiyan Honin Jai's avatar
電羊齋 Talkiyan Honin Jai

@talkiyanhoninjai@bookwor.ms

私も東洋史を専攻していて漢文の正字体(旧字体)を読んだり、台湾の論文を読んだり、後には翻訳の仕事で台湾の文章を訳したりしているので全部読めます。
私は特殊なのでサンプルにはならないですかね。

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

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

@robin_maki 혹… 역시 그렇군요.

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

@hongminhee@hollo.social

Nintendo Switch 2、欲しい。

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

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

@robin_maki 혹시 Open Graph 이미지(og:image)는 쓸만한 게 있나요?

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

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

次の中で読める旧字体は?(日本語のネイティブスピーカーのみご参加ください)

OptionVoters
548 (16%)
539 (16%)
494 (15%)
239 (7%)
380 (11%)
226 (7%)
358 (11%)
417 (12%)
114 (3%)
49 (1%)
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

突然、日本語のネイティブスピーカーは旧字体を自然に読めるのだろうかと気になった。韓国で漢字教育を受けた私としては、中国語や日本語を別途学ぶまでは「國=国」くらいは知っていたが、「礙=碍」などは全く知らなかったから。(韓国の漢字は基本的に旧字体または繁体字に近い康熙字典体が標準)

Deno's avatar
Deno

@deno_land@fosstodon.org

How to automatically associate console logs by request with @opentelemetry and Hyperdx

docs.deno.com/examples/hyperdx

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

@hongminhee@hollo.social

갑자기 새 키보드가 사고 싶어졌다. 來日(내일) 튜링의 沙果(사과)(@TuringAppleDev)나 가서 키보드 打鍵(타건) 좀 해볼까?

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

@hongminhee@hollo.social

Apple이 다음 iPhone부터는 그냥 다 eSIM 專用(전용)으로 내버려서 國內(국내) 移通社(이통사)들의 異常(이상)한 eSIM 政策(정책)들 다 엎어졌으면 좋겠다. (三星(삼성)이 다음 Galaxy에서 그러면 더욱 效果(효과)가 좋겠지만 ()期待(기대)가 안 되므로 Apple에 期待(기대)하는 수밖에…)

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

@hongminhee@hollo.social

My stance on 's adoption of JSON-LD: Since we've already decided to use JSON-LD, I hope we do it properly. However, if we hadn't used JSON-LD from the beginning, things would have been much less complicated.

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

@hongminhee@hollo.social · Reply to 티르's post

@tirr 맞습니다… 😂

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

@hongminhee@hollo.social

@ianthetechie Yeah, it's JavaScriptCore-based one, which is faster than V8 in general.

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

@hongminhee@hollo.social · Reply to 티르's post

@tirr 사람들이 그걸 등드름이라고 부르더군요… 😂

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

@hongminhee@hollo.social

What's your favorite JavaScript runtime?

OptionVoters
Bun0 (0%)
Deno11 (52%)
Node.js10 (48%)
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

🤔

Protocols such as ActivityPub are widely used and useful, but unfortunately are not the best option when efficiency is important. Messages are in plain JSON format, which is wasteful, and extensions by various implementations complicate the implementation.

XQ's focus on replacing JSON with Protocol Buffers seems misguided. While serialization efficiency matters, ActivityPub's fundamental bottlenecks are in its multi-hop network architecture and request patterns. Optimizing message format without addressing these core architectural inefficiencies is like polishing doorknobs on a house with structural issues. True performance gains would require rethinking the communication model itself.

https://github.com/misskey-dev/xq

pkg update's avatar
pkg update

@pkgupdt@hl.pkgu.net

차별금지법은, 이제 반대 주체가 기독교회 정도만 남은 상황이라 설득이 아닌 결단이 필요한 단계라고 본다. 호주제, 동성동본 금혼이 결사 반대하던 유림을 설득한 후 폐지되었나? 아니다. 이제 새로운 세대가 저 둘을 봉건시대에나 통할 저 옛날 이야기라고 보듯이, 차별금지법도 없는 날들이 야만적이었다고 당연히 생각하는 시대가 올 것이다.

필요한 건 용기와 결단 뿐이다. 국회의 결단을 촉구한다.

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

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

@scammo Thank you for understanding and for the kind words! It's so encouraging to hear that my projects have sparked ideas for you. That's exactly what I hoped these frameworks would do—lower barriers and inspire people to build on the fediverse layer.

I'm really glad you appreciate the documentation too. I've always believed good docs are just as important as good code.

I'd love to see what you create when you have more time! Projects like these feel most worthwhile when they enable others to build their own visions.

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

@fedify@hollo.social

Hey folks! We're excited to share a preview of a new API coming in 1.6 that should make structuring larger federated apps much cleaner: FederationBuilder.

As your Fedify applications grow, you might encounter circular dependency issues when registering dispatchers and listeners across multiple files. The new FederationBuilder pattern helps solve this by separating the configuration phase from instantiation.

Instead of this:

// federation.ts
import { createFederation } from "@fedify/fedify";

export const federation = createFederation<AppContext>({
  kv: new DbKvStore(), 
  queue: new RedisMessageQueue(),
  // Other options...
});

// Now we need to import this federation instance in other files
// to register dispatchers and listeners...

You can now do this:

// builder.ts
import { createFederationBuilder } from "@fedify/fedify";

export const builder = createFederationBuilder<AppContext>();

// other files can import and configure this builder...
// actors.ts
import { builder } from "./builder.ts";
import { Person } from "@fedify/fedify";

builder.setActorDispatcher("/users/{handle}", async (ctx, handle) => {
  // Actor implementation
});
// inbox.ts
import { builder } from "./builder.ts";
import { Follow } from "@fedify/fedify";

builder.setInboxListeners("/users/{handle}/inbox", "/inbox")
  .on(Follow, async (ctx, follow) => {
    // Follow handling
  });
// main.ts — Only create the Federation instance at startup
import { builder } from "./builder.ts";

// Build the Federation object with actual dependencies
export const federation = await builder.build({
  kv: new DbKvStore(),
  queue: new RedisMessageQueue(),
  // Other options...
});

This pattern helps avoid circular dependencies and makes your code more modular. Each part of your app can configure the builder without needing the actual Federation instance.

The full documentation will be available when 1.6 is released, but we wanted to share this early with our community. Looking forward to your feedback when it lands!

Want to try it right now? You can install the development version from JSR or npm:

# Deno
deno add jsr:@fedify/fedify@1.6.0-dev.777+1206cb01

# Node.js
npm add @fedify/fedify@1.6.0-dev.777

# Bun
bun add @fedify/fedify@1.6.0-dev.777

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

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

@antolius Thank you so much for these incredibly kind words—they mean more than you know, especially today!

You perfectly captured what makes ActivityPub so challenging—that “thick layer of service specific quirks” on top of an already complex spec is exactly the problem I've been trying to help solve.

I'm genuinely touched that you find the documentation and teaching aspects valuable. That's always been just as important to me as the code itself—making the social web more accessible to developers like yourself.

It's deeply encouraging to hear that my work is making a difference in your development journey. Comments like yours are what make all the effort worthwhile. Thank you!

@NIGHTEN

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

@hongminhee@hollo.social · Reply to 잇창명 EatChangmyeong💕's post

@eatch.dev 사라사 고딕은 어떠세요?

のえる's avatar
のえる

@noellabo@fedibird.com · Reply to モリーオ's post

(This is in Japanese. Please use machine translation.)

カスタム絵文字については以前から問題意識があって、Fedibirdの実装を通じて解決策を模索してきました。

FEPを検討しているなら、ぜひ拾い上げてください。ひとまず概要を。

・スクエアではない絵文字の取り扱い

・アクセシビリティと多言語対応

・コピー許可と権利情報

・センシティブの扱い

・画像形式やサイズ、アニメーションの互換性やガイドライン

以下は、カスタム絵文字に付与可能な属性をできるだけ記載したサンプルです。

添付画像は、画像化されたテキストを中心とする絵文字に対し、代替テキストが設定され、ツールチップ表示されているサンプルです。

この絵文字のObject表現(JSON)はこちら。
fedibird.com/emojis/prohibits_

人間向けの公開ページはこちら。
fedibird.com/emojis/prohibits_

Fedibirdのcustom_emojis APIのエンティティ
fedibird.com/api/v1/custom_emo

『他サーバーへのインポートを禁止します』という内容のカスタム絵文字に、ツールチップが表示されている例
ALT text details『他サーバーへのインポートを禁止します』という内容のカスタム絵文字に、ツールチップが表示されている例
daisuke's avatar
daisuke

@dai@hackers.pub

Misskey & Webテクノロジー最前線「CSS Variablesはここまで進化した」公開 https://gihyo.jp/article/2025/04/misskey-19

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

@hongminhee@hollo.social · Reply to NIGHTEͶ's post

@NIGHTEN Thank you for this perspective—it's really encouraging! You make an excellent point about the indirect impact. I hadn't fully considered how these tools might reach far more people through the applications developers build with them.

The Ghost example is perfect—it's exciting to hear you're implementing it for your partner's site because of the fediverse integration possibilities.

This reminds me why I started these projects in the first place: to enable others to build connections in the fediverse without reinventing everything from scratch. Thanks for helping me see the bigger picture!

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

@hongminhee@hollo.social

I've been reflecting lately on projects like @fedify, @hollo, and @botkit. Sometimes I wonder if I'm solving problems that very few people actually need solved. How many developers truly want to build their own server from scratch?

It feels a bit like inventing shoes that let people walk on their hands all day. Would there be a viable market? How many would actually buy them?

That's the sense I get with these projects. They do have users who find them tremendously valuable, but the total user base is inherently limited. The tools serve an important function for a small audience of specialized developers.

There are moments when my motivation wavers. When the user community consists of just a handful of enthusiastic supporters, it's sometimes difficult to maintain momentum and justify the ongoing investment of time and energy.

And yet, there's something meaningful about creating specialized tools that solve complex problems well, even if they're only used by a few. Perhaps that's enough.

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

@hongminhee@hollo.social · Reply to 우주스타 아이도루 랭호 🌠's post

@rangho_220 보고 감사합니다…!

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

@hongminhee@hollo.social · Reply to 우주스타 아이도루 랭호 🌠's post

@rangho_220 그런데 좀 이상하긴 하네요… 제가 800명 넘게 팔로하고 있는데, 제 인스턴스에서는 홈 타임라인이 그 정도로 느리지는 않거든요. 요청 보내서 응답 받기까지 1.5초 정도? 무슨 차이가 있는 건지 살펴보긴 해야겠네요… 😭

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

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

@kodingwarrior 차라리 Fly.io에 올리는 게 더 나을 수도 있겠네요…

← Newer
Older →