洪 民憙 (Hong Minhee) :nonbinary:

@hongminhee@hollo.social · Joined ⁨Dec⁩ ⁨2024⁩

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.

서울에 사는 交叉女性主義者이자 社會主義者. 金剛兔(@tokolovesme)의 配偶者. @fedify, @hollo, @botkit 메인테이너. #TypeScript, #Haskell, #Rust, #Python 等으로 自由 소프트웨어 만듦.

#國漢文混用體 #한국어 (#朝鮮語) #English #日本語

Thanks to everyone who caught my talk, I just wanted ruby annotations: writing in dead scripts on the living fediverse, at @COSCUP 2026 today! It was great seeing you in the Fediverse & Social Web track. Here are the slides.

https://fediverse-ruby-coscup-2026.hongminhee.codefloe.page/

fediverse-ruby-coscup-2026.hongminhee.codefloe.pageI just wanted ruby annotations: writing in dead scripts on the living fediverse - Slidev"Koreans used to mix [hanja] (漢字; Chinese characters) into Korean prose, much as Japanese still mixes kanji and kana. The style is called [Korean mixed script] (國漢文混用體). Almost nobody writes this way anymore. I do.\n\nWhen I wanted to post this way on the fediverse, I ran into a small but stubborn problem: [`<ruby>` annotations][ruby], the HTML feature that puts pronunciation guides above or beside characters, were stripped by the major servers I tried. I filed an issue against [Mastodon]. It sat there for a long time. At some point, “maybe I should run my own server” somehow became “maybe I should implement [ActivityPub] myself.”\n\nActivityPub is not simple. [JSON-LD] alone has several ways to say the same thing. Then come HTTP Signatures, WebFinger, NodeInfo, inbox forwarding, and the small incompatibilities that only become obvious when Mastodon and Misskey disagree. Before building the server I wanted, I built [Fedify]: a TypeScript framework that keeps most of that protocol plumb

It is an honour to have been interviewed on behalf of the @drfed team for @APC's Building a Free Internet of the Future series.

https://www.apc.org/en/news/drfed-reducing-complexity-and-enabling-more-people-shape-fediverse

Association for Progressive CommunicationsDrFed on reducing complexity and enabling more people to shape the FediverseDrFed is a web-based platform for developing and debugging implementations of ActivityPub – an open standard and protocol for decentralised networking. A team of four people from East Asia is developing DrFed. We interviewed one of them, Hong Minhee, regarding openness, tech, technical specs, the Fediverse’s strengths and limits, language barriers to decentralisation, and far more.

ActivityPub assumes content is text/html by default when mediaType isn't specified, whether the object is a Note or an Article. Misskey does something different, for reasons I still don't fully understand. It stores its internal representation as MFM, its own markup language. Between Misskey instances, it sends that through a separate _misskey_content property rather than content itself. When talking to non-Misskey software, it converts HTML into MFM.

The trouble is that MFM can represent much less than HTML. If another implementation sends HTML that has no clean MFM equivalent, the formatting comes out mangled in Misskey.

I keep wondering why Misskey didn't just store HTML, like Mastodon and most other implementations do, or at least kept both the source markup and the rendered HTML side by side. I know storing only HTML can lose some MFM features too. I still don't understand why Misskey chose the format that can represent less.

MisskeyMFM | MisskeyMFM is a proprietary markup language that can be used in various locations in Misskey.

Replying to @⁨silverpill@mitra.social⁩

@silverpill @phnt That's a fair clarification, and worth being precise about on my end too.

I'm not arguing for historical inevitability—I don't think that's a useful frame for anyone here. What I was saying is closer to a personal read of the current situation: a lot of developers already depend on LLMs in their day-to-day work, and that number seems to be growing quickly. That's an observation, not a law of history, and I could be wrong about where it leads.

The NFT comparison is interesting and I won't dismiss it. My intuition is that LLMs are a different kind of thing—they've become embedded in actual workflows in ways NFTs never were—but I hold that loosely. Technologies do fail in unexpected ways.

What I'm more confident about is the narrower point: maintainers have real authority over their own projects, and I think there's more room in that space than “accept everything” or “reject all AI-assisted contributions.” My own approach with Fedify has been to set conditions rather than draw a line: disclose what you used, show you've actually tested it. Whether that's the right call, others can judge: https://github.com/fedify-dev/fedify/blob/main/AI_POLICY.md.

ActivityPub server framework in TypeScript. Contribute to fedify-dev/fedify development by creating an account on GitHub.GitHubfedify/AI_POLICY.md at main · fedify-dev/fedifyActivityPub server framework in TypeScript. Contribute to fedify-dev/fedify development by creating an account on GitHub.

Replying to @⁨silverpill@mitra.social⁩

@silverpill @phnt

@silverpill is right that maintainers hold real authority here, and I want to build on that rather than argue against either of you.

The frustration with LLMs is largely legitimate. But “how does this look to outsiders” is a poor criterion for evaluating ethical concerns; by that standard, feminism looks like lunacy to 4chan. The question is whether the concerns are correct, not whether they're legible to the unconvinced.

That said, I don't think making LLMs socially unacceptable is a viable path, and not just because the adoption curve has run too far. The maintainer's authority is real precisely because it's specific: you decide what enters your project. Refusing AI-assisted contributions is a legitimate choice. But declaring LLM use itself impermissible starts to look like “I only accept patches written in Vim, not IDE-generated code”—a demand that grows harder to justify as the tools become ordinary. As maintainer of Fedify, I've taken a middle path: disclose what you used, show you've tested it yourself, and we're fine. See also https://github.com/fedify-dev/fedify/blob/main/AI_POLICY.md.

What worries me more is that the “total rejection vs. total acceptance” framing leaves the actual problem untouched. If we stay inside that binary, OpenAI and the others keep the models, keep the surplus, keep the compute bills externalized onto the climate—with no pressure to change any of it. The ethical problems with LLMs aren't properties of the technology; they're properties of who owns it and under what terms. I've written about this in more depth if it's of interest: Histomat of F/OSS: We should reclaim LLMs, not reject them and a follow-up Acting materialistically in an imperfect world: LLMs as means of production and social relations.

ActivityPub server framework in TypeScript. Contribute to fedify-dev/fedify development by creating an account on GitHub.GitHubfedify/AI_POLICY.md at main · fedify-dev/fedifyActivityPub server framework in TypeScript. Contribute to fedify-dev/fedify development by creating an account on GitHub.