洪 民憙 (Hong Minhee)'s avatar

洪 民憙 (Hong Minhee)

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

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.

Kevin Beaumont's avatar
Kevin Beaumont

@GossiTheDog@cyberplace.social

BlueSky isn’t just censoring posts in Turkey to match government demands, already happening in other countries too.

I really wish the media would stop calling it decentralised. It isn’t. It’s like calling Shell oil nature lovers, because they claim they love nature.

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

欲しい

Esurio's avatar
Esurio

@esurio1673@c.koliosky.com

MFMをdeprecateする世界線のMisskey

꧁ wakest ꧂'s avatar
꧁ wakest ꧂

@liaizon@social.wake.st

lemmy-federate.com is an interesting approach

Amita🕯's avatar
Amita🕯

@amita@planet.moe

조선족분들로부터 듣는 북한 이야기...길어질 듯해서 접고 시작해요 (1)

무려 평양 김일성대학의 국어학과(아마도 거긴 조선어학과) 그러니 서울대 국문과처럼 자국어 최강 학력이라 으스댈 만한 곳의 그것도 대학원 박사과정 기숙사 이야기였는데요, 너무...바선생이 득시글득시글하며 잡고 피하고가 불가능한 수준이라고😱 자는 동안 입에 들어오지 않도록 마스크를 구비해 가서 쓰거나 얼굴을 망사 따위로 잘 막아두고 자는 수밖에 없었대요. 그 외엔 공부중에 책상 위를 기어가도 걍 함께 살아야 했다고 합니다으아아아악ㅠㅠㅠㅠㅠㅠ
지리적 환경은 비슷하니 그곳도 물은 좋다는데 그런데도 사람들이 자주 씻지 못해서 모두 불결했대요ㅠ_ㅠ 버스를 타면 좌석 입석이 아니라 천장석(?)이나 매달석(?)이 있어서 버스 위에 앉아서 가거나 바깥에 매달려 가는 사람들 모습이 일상이었다고 하구요. 그러니 중국 사람들도 유학을 갈 수는 있지만 오래 있고 싶은 곳은 아니었다고ㅠ

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

@hongminhee@hollo.social

同じ理由fedify lookup -a https://www.threads.net/@usernameコマンドで正常に照会が出来ない。一方fedify lookup -a @username@threads.netコマンドは正常に動作。

Osumi Akari's avatar
Osumi Akari

@oageo@c.osumiakari.jp

ThreadsのアカウントがMisskey系からの検索がめちゃくちゃ難しいの、もしかしてアカウントのページ(https://www.threads.net/@アカウント)にtype="application/activity+json"なJSONファイルを用意していないから?

例えばこのアカウントだと
https://c.osumiakari.jp/@oageoというページにはが入っており、https://c.osumiakari.jp/@oageoを貼り付けるだけで外からでも簡単にアカウントの参照が出来るようになっている(はず)

Mastodonとかでも同様なんだけどThreadsには無さそう

Pleromaにも無いんだけど、Pleromaの場合は表示されている
インスタンスのアドレス/user/ユーザー名でよしなに解決されるから問題ない。しかしThreadsにおいてはhttps://threads.net/ap/users/数字なので、解決されなさそう

Osumi Akari's avatar
Osumi Akari

@oageo@c.osumiakari.jp

ThreadsのアカウントがMisskey系からの検索がめちゃくちゃ難しいの、もしかしてアカウントのページ(https://www.threads.net/@アカウント)にtype="application/activity+json"なJSONファイルを用意していないから?

例えばこのアカウントだと
https://c.osumiakari.jp/@oageoというページにはが入っており、https://c.osumiakari.jp/@oageoを貼り付けるだけで外からでも簡単にアカウントの参照が出来るようになっている(はず)

Mastodonとかでも同様なんだけどThreadsには無さそう

Pleromaにも無いんだけど、Pleromaの場合は表示されている
インスタンスのアドレス/user/ユーザー名でよしなに解決されるから問題ない。しかしThreadsにおいてはhttps://threads.net/ap/users/数字なので、解決されなさそう

Older →