洪 民憙 (Hong Minhee)'s avatar

洪 民憙 (Hong Minhee)

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

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

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

@silverpill

Do you know implementations that provide alt text for custom emojis?

As far as I know, no implementations provide alt text for custom emojis…

Mira pronouned non-binarily down the stairs's avatar
Mira pronouned non-binarily down the stairs

@mira@outerheaven.club

Accessible custom emoji… now that sounds like something worth working on…

@hongminhee

RE: https://hollo.social/@hongminhee/01964e8e-05e7-7af9-9757-e839d73cbae6

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

@hongminhee@hollo.social

As someone who has developed several software implementations (Fedify, Hollo, BotKit, and Hackers' Pub), I believe one of the most frustrating features to implement in the is .

The challenges are numerous:

First, there's no standardization. ActivityPub specifications don't define how custom emoji should work, leading to inconsistent implementations across different servers like Mastodon and Misskey.

Rendering is particularly problematic. Emojis must display properly across different contexts (in text, as reactions, in emoji pickers) while maintaining quality at various sizes. Animated emojis add another layer of complexity.

Perhaps most concerning is the poor . Most implementations simply use the emoji code (like :party_blob:) as the alt text, which provides no meaningful information to screen reader users (in particular, non-English speakers) about what the emoji actually depicts or means.

What really dampens my motivation to implement this feature is knowing I'm investing significant effort into something that ultimately creates accessibility barriers. It's disheartening to work hard on a feature that excludes part of the community.

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

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

@thisismissem You're right, I don't believe there's a specific FEP for custom emojis yet. If one were to be created, accessibility through proper alt text would definitely need to be a core requirement. The current state where emoji codes like :blob_wave: become the alt text creates significant barriers for screen reader users—especially for non-English speakers, who face an additional language barrier when trying to understand these codes. A proper standard should address how to provide meaningful descriptions that actually convey what the emoji represents in multiple languages.

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

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

@thisismissem Yeah, if it's standardized al text should be considered…

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

@hongminhee@hollo.social · Reply to wakest ⁂'s post

@liaizon I appreciate the enthusiasm, but I personally don't have much motivation to standardize custom emoji. While I understand many people enjoy this feature, I'm not particularly fond of custom emoji functionality in general. My limited interest in the feature itself, combined with the significant accessibility issues it creates, makes it difficult for me to get excited about investing time in standardization efforts. Though I respect that others might feel differently!

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

@hongminhee@hollo.social

As someone who has developed several software implementations (Fedify, Hollo, BotKit, and Hackers' Pub), I believe one of the most frustrating features to implement in the is .

The challenges are numerous:

First, there's no standardization. ActivityPub specifications don't define how custom emoji should work, leading to inconsistent implementations across different servers like Mastodon and Misskey.

Rendering is particularly problematic. Emojis must display properly across different contexts (in text, as reactions, in emoji pickers) while maintaining quality at various sizes. Animated emojis add another layer of complexity.

Perhaps most concerning is the poor . Most implementations simply use the emoji code (like :party_blob:) as the alt text, which provides no meaningful information to screen reader users (in particular, non-English speakers) about what the emoji actually depicts or means.

What really dampens my motivation to implement this feature is knowing I'm investing significant effort into something that ultimately creates accessibility barriers. It's disheartening to work hard on a feature that excludes part of the community.

Sarah Rainsberger's avatar
Sarah Rainsberger

@sarah11918@mastodon.social · Reply to ayo's post

@ayo @hongminhee It can be so helpful during design! Some people do it first-first. At Astro with our RFC process, minimal "docs" are updated as the feature is developed.

For Astro's new experimental Fonts API, we held not only an open API bash, but an API *docs* bash! After 2 hours looking at the draft docs ("Oh, it works like this? Oh, you expect people to do this? Oh, this is what it takes to explain how to use it?")... some design changes were implemented for sure, and everyone wins!

洪 民憙 (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 · Reply to Jaeyeol Lee (a.k.a. kodingwarrior) :vim:'s post

@kodingwarrior 어찌 그런 너저분한 코드를 보셨습니까… 😂

Esna Ligunskaya 👑 りぐんすかやの女王's avatar
Esna Ligunskaya 👑 りぐんすかやの女王

@esna@skaya.ligun.net

韓国人のフレンドが2つのものを混ぜることを「ちゃんぽんする」と言ってて、韓国語でもこの表現通じるんだと思うなど

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

@hongminhee@hackers.pub

For my library and CLI projects, I've been writing documentation before writing any code. It helps me imagine the final interface early on, which usually leads to better design. Sure, sometimes I miss implementation details and have to revise later, but hey—it's just docs. Docs are easy to change.

This tiny habit has surprisingly big payoffs. When I focus on how things will be used rather than how they'll be built, I end up with interfaces that actually make sense.

Anyone else do this? Curious about your experience with documentation-first approaches.



RE: https://hollo.social/@hongminhee/01964c76-ef1e-7994-b3f0-57f967742566

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

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

First, I'm adding custom emoji support to

Custom emojis
-------------

*This API is available since BotKit 0.2.0.*

You can include a custom emoji in the text using the `customEmoji()` function.
It is an inline construct.

In order to use the `customEmoji()` function, you need to define custom emojis first.  You can define custom emojis by using the `Bot.addCustomEmojis()` method after creating the bot:

~~~~ typescript
// Define custom emojis:
const emojis = bot.addCustomEmojis({
  // Use a local image file:
  botkit: { file: "./botkit.png", type: "image/png" },
  // Use a remote image URL:
  fedify: { url: "https://fedify.dev/logo.png", type: "image/png" },
});
~~~~

The `~BotKit.addCustomEmojis()` method returns an object that contains the custom emojis.  You can use the keys of the object to refer to the custom emojis.  For example:

~~~~ typescript
text`Here's a custom emoji:

${customEmoji(emojis.botkit)} by ${customEmoji(emojis.fedify)}.`
~~~~
ALT text detailsCustom emojis ------------- *This API is available since BotKit 0.2.0.* You can include a custom emoji in the text using the `customEmoji()` function. It is an inline construct. In order to use the `customEmoji()` function, you need to define custom emojis first. You can define custom emojis by using the `Bot.addCustomEmojis()` method after creating the bot: ~~~~ typescript // Define custom emojis: const emojis = bot.addCustomEmojis({ // Use a local image file: botkit: { file: "./botkit.png", type: "image/png" }, // Use a remote image URL: fedify: { url: "https://fedify.dev/logo.png", type: "image/png" }, }); ~~~~ The `~BotKit.addCustomEmojis()` method returns an object that contains the custom emojis. You can use the keys of the object to refer to the custom emojis. For example: ~~~~ typescript text`Here's a custom emoji: ${customEmoji(emojis.botkit)} by ${customEmoji(emojis.fedify)}.` ~~~~
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

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

First, I'm adding custom emoji support to

Custom emojis
-------------

*This API is available since BotKit 0.2.0.*

You can include a custom emoji in the text using the `customEmoji()` function.
It is an inline construct.

In order to use the `customEmoji()` function, you need to define custom emojis first.  You can define custom emojis by using the `Bot.addCustomEmojis()` method after creating the bot:

~~~~ typescript
// Define custom emojis:
const emojis = bot.addCustomEmojis({
  // Use a local image file:
  botkit: { file: "./botkit.png", type: "image/png" },
  // Use a remote image URL:
  fedify: { url: "https://fedify.dev/logo.png", type: "image/png" },
});
~~~~

The `~BotKit.addCustomEmojis()` method returns an object that contains the custom emojis.  You can use the keys of the object to refer to the custom emojis.  For example:

~~~~ typescript
text`Here's a custom emoji:

${customEmoji(emojis.botkit)} by ${customEmoji(emojis.fedify)}.`
~~~~
ALT text detailsCustom emojis ------------- *This API is available since BotKit 0.2.0.* You can include a custom emoji in the text using the `customEmoji()` function. It is an inline construct. In order to use the `customEmoji()` function, you need to define custom emojis first. You can define custom emojis by using the `Bot.addCustomEmojis()` method after creating the bot: ~~~~ typescript // Define custom emojis: const emojis = bot.addCustomEmojis({ // Use a local image file: botkit: { file: "./botkit.png", type: "image/png" }, // Use a remote image URL: fedify: { url: "https://fedify.dev/logo.png", type: "image/png" }, }); ~~~~ The `~BotKit.addCustomEmojis()` method returns an object that contains the custom emojis. You can use the keys of the object to refer to the custom emojis. For example: ~~~~ typescript text`Here's a custom emoji: ${customEmoji(emojis.botkit)} by ${customEmoji(emojis.fedify)}.` ~~~~
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to Renaud Chaput's post

@renchap Is it FEP-044f? It's new to me, so I need to check it out!

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

@hongminhee@hollo.social · Reply to KAGAMI🏳️‍🌈🏳️‍⚧️'s post

@saschanaz 루비 글자가 작아서 잘 안 보일 것 같긴 해요

kiwiyou's avatar
kiwiyou

@kiwiyou@twt.rs

以鼠為璞(いそいはく)
鄭の人が「璞」という玉を買おうとしたら、周の人が「璞」というネズミ肉を渡したという故事から。

辞典オンでは周の方を「朴」と記すが、原文は「樸」なんじゃ?
https://ctext.org/zhan-guo-ce/ying-hou-yue-zheng-ren-wei/zh

他の本の同じ話では全て「璞」。
https://ctext.org/text.pl?node=49650&if=gb&show=parallel

이서위박(以鼠爲璞)
정(鄭) 사람이 璞이라는 옥을 사려 했더니 주(周) 사람이 璞이라는 쥐고기를 내줬다는 고사.

https://yoji.jitenon.jp/yojim/6332 에서는 璞이 아닌 朴을 줬다 하며 출전은 《전국책》인데 원문에서는 樸. https://ctext.org/zhan-guo-ce/ying-hou-yue-zheng-ren-wei/zh

다른 책 같은 내용에서는 璞.
https://ctext.org/text.pl?node=49650&if=gb&show=parallel

Chee Aun 🤔's avatar
Chee Aun 🤔

@cheeaun@mastodon.social

Sometimes I'm quite amazed by my own code 😳

The RTL work last year was quite insane mastodon.social/@cheeaun/11293

A screenshot of a code editor displaying JavaScript code related to handling keyboard shortcuts and column navigation.

The keyboard shortcuts '[' and ']' will flip based on RTL setting.
ALT text detailsA screenshot of a code editor displaying JavaScript code related to handling keyboard shortcuts and column navigation. The keyboard shortcuts '[' and ']' will flip based on RTL setting.
Daniel Supernault's avatar
Daniel Supernault

@dansup@mastodon.social

FediDB v3

Available soon 🚀

Brief screencast previewing the new FediDB redesign
ALT text detailsBrief screencast previewing the new FediDB redesign
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been considering what to add in the next version of BotKit (v0.2.0) and wanted to share my current plans. After reviewing feedback and examining the ecosystem, I've identified three key features that would significantly enhance the framework's capabilities:

  1. Custom emoji support. This would allow bots to use server-defined custom emojis in their messages, making communication more expressive and allowing better integration with instance culture.

  2. Emoji reactions. I plan to implement both sending and receiving emoji reactions to messages. This provides a lightweight interaction model that many users prefer for simple acknowledgments or responses. This would manifest as new event handlers (like Bot.onReaction) and methods (like Message.react()).

  3. Quote posts. The ability to reference other posts with commentary is an important discourse feature in the fediverse. Supporting both sending quotes and detecting when bot posts have been quoted would enable more sophisticated conversational patterns.

These additions should make more capable while maintaining its simple, developer-friendly API. I expect implementation to involve extending the Message class and adding new Text processing capabilities, all while keeping backward compatibility with existing bots. Having built both Hollo and Hackers' Pub, I already have deep familiarity with how various ActivityPub implementations handle these features across the fediverse. I welcome any community feedback on priorities or implementation details before I begin coding.

shellsharks's avatar
shellsharks

@shellsharks@malici.ous.computer

Volume twelve of Scrolls is live - it's a magical one! 🧙‍♂️

https://shellsharks.com/scrolls/scroll/2025-04-18

Everyone below contributed in some way either through content they created, or stuff they found and boosted 😃. Thank you thank you! 🙏

@disassociated @shankulkarny @hyde @askDNA @andyandy @e11e @artlung @ruben@social.kedera.nl @KurisuVanEdge @hongminhee @jbaty @hryggrbyr @axxuy @joxean @thejaymo @flan @sylvia @deadsuperhero @QueerMatters @mauricerenck @ImaginaryKarin @digitalsnow @jana @nichteric @justincox @avlcharlie @anubiarts @reiver @bradenslen @hamatti @mike_k @lianna @wafrn @mariobianchi @cwebber @selfcaregentle @jerry @bouletcorp2 @gretared @ApisNecros

#indieweb #fediverse #infosec #cybersecurity

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

@hongminhee@hollo.social

宇多田ヒカルのファーストアルバムである『First Love』は、おそらく私が一番最初に出会ったJ-POPだろう。それでもまだ好きだ。今も「Automatic」を聴きながらコーディング中。

Apple Musicでプレイしてる宇多田ヒカルの「Automatic」
ALT text detailsApple Musicでプレイしてる宇多田ヒカルの「Automatic」
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

와… 臺灣(타이완) 社會民主黨(사회 민주당)은 Mastodon 어카운트(@sdparty_tw)가 있네. 부럽다.

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

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

Apple이 잘 하는 건 뭘 만들어야 하는지 잘 아는 것. 그러니까 問題(문제) 定義(정의)는 잘 하는 것 같고, Apple의 많은 卓越(탁월)함은 여기서 비롯되는 것 같다. 다른 걸 잘 못해도 이걸로 먹고 산다는 느낌.

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

@hongminhee@hollo.social

이런 걸 보면 Apple이 소프트웨어 잘 만드는 企業(기업)은 아니라는 것을 알 수 있음. 스마트폰 市場(시장)에서야 比較(비교) 對象(대상)이 기껏해야 三星(삼성)이기 때문에 가려지는 것 같지만…

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

@hongminhee@hollo.social · Reply to 은열쇠🥨 :ivory_boost:'s post

@Silverkey027 완전 동감이예요! 이거 되게 기본적인 기능의 하자인데 왜 몇 년이 지나도록 안 고쳐지는지 모르겠어요.

은열쇠🥨 :ivory_boost:'s avatar
은열쇠🥨 :ivory_boost:

@Silverkey027@mastodon.social


는 이렇게 앨범이 나뉘는거 정말 짜증난다고 생각해...

daisuke's avatar
daisuke

@dai@hackers.pub

あ、あと。来週頭に公開予定の「しゅいろ」さんのMisskey連載もあるよ。 https://gihyo.jp/list/group/Misskey-Webテクノロジー最前線#rt:/article/2023/02/misskey-01 日本語で申し訳ないけど🙏 @hongminhee

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

@hongminhee@hollo.social

Hollo-flavored Markdown:韓国語の漢語に振りハングルが自動的に付く。

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

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

勿論、内部表現はHTMLにしても、ユーザー入力はMFMやCommonMarkやGFMで大丈夫だと思います。あくまで内部表現をHTMLでやって欲しいという話です。 当然、出力する時はXSSフィルタを通す必要が有ります。

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

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

…と言うか、Misskeyがノートの内容に対する内部表現(intermediate representation)をMFMからHTMLに変えてくれればそれで良いと思います。

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

@hongminhee@hollo.social

欲しい

← Newer
Older →