洪 民憙 (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.