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

洪 民憙 (Hong Minhee) :nonbinary:

@hongminhee@hollo.social

1,114 following1,902 followers

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 , , , & . They/them.

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

()

Pinned

@hongminhee@hollo.social

Hello! I'm Hong Minhee (洪 民憙), an open source software engineer in my late 30s, living in Seoul, Korea. I'm bisexual and non-binary (they/them), and an enthusiastic advocate of free/open source software and the fediverse.

I work full-time on @fedify, an ActivityPub server framework in TypeScript, funded by @sovtechfund. I'm also the creator of @hollo, a single-user ActivityPub microblog; @botkit, an ActivityPub bot framework; Hackers' Pub, a fediverse platform for software developers; and LogTape, a logging library for JavaScript and TypeScript.

I have a long interest in East Asian languages (CJK) and Unicode. I post mostly in English here, though occasionally in Japanese or in mixed-script Korean (國漢文混用體), a traditional writing style that interleaves Chinese characters with the native Korean alphabet. Wanting to write in that style was actually one of the reasons I joined the fediverse. Feel free to talk to me in English, Korean, Japanese, or even Literary Chinese!

en.wikipedia.org

Korean mixed script - Wikipedia

Pinned

はじめまして!ソウル在住の30代後半のオープンソースソフトウェアエンジニア、洪 民憙ホン・ミンヒと申します。バイセクシュアル(bisexual)・ノンバイナリー(non-binary)で、自由・オープンソースソフトウェア(F/OSS)とフェディバース(fediverse)の熱烈な支持者です。

STF(@sovtechfund)の支援を受け、TypeScript用ActivityPubサーバーフレームワーク「@fedify」の開発に専念しています。他にも、おひとり様向けのActivityPubマイクロブログ「@hollo」、ActivityPubボットフレームワーク「@botkit」、ソフトウェア開発者向けフェディバースプラットフォームHackers' Pub、JavaScript・TypeScript用ロギングライブラリLogTapeなどの制作者でもあります。

東アジア言語(いわゆるCJK)とUnicodeにも興味があります。このアカウントでは主に英語で投稿していますが、時々日本語や国漢文混用体(漢字ハングル混じり文)の韓国語でも書いています。実はこの文体で書きたくてフェディバースを始めた、という経緯もあります。日本語、英語、韓国語、漢文でも気軽に話しかけてください!

speakerdeck.com

国漢文混用体からHolloまで

本発表では、韓国語の「国漢文混用体」(漢字ハングル混じり文)を自分のフェディバース投稿に実装したいという小さな目標から始まった旅路を共有します。 この目標を達成するために、ActivityPubのJSON-LDの複雑さやHTTP Signatures、WebFingerなどの仕様を理解する必要性に…

Pinned

安寧(안녕)하세요! 저는 서울에 살고 있는 30() 後半(후반)의 오픈 소스 소프트웨어 엔지니어 洪民憙(홍민희)입니다. 兩性愛者(양성애자)(bisexual)이자 논바이너리(non-binary)이며, 自由(자유)·오픈 소스 소프트웨어(F/OSS)와 聯合宇宙(연합우주)(fediverse)의 熱烈(열렬)支持者(지지자)이기도 합니다.

STF(@sovtechfund)의 支援(지원)을 받아 TypeScript() ActivityPub 서버 프레임워크 @fedify 開發(개발)專業(전업)으로 ()하고 있습니다. 그 ()에도 싱글 유저() ActivityPub 마이크로블로그 @hollo, ActivityPub 봇 프레임워크 @botkit, 소프트웨어 開發者(개발자)를 위한 聯合宇宙(연합우주) 플랫폼 Hackers' Pub, JavaScript·TypeScript() 로깅 라이브러리 LogTape ()製作者(제작자)이기도 합니다.

()아시아 言語(언어)(이른바 CJK)와 Unicode에도 關心(관심)이 많습니다. 이 計定(계정)에서는 ()英語(영어)로 포스팅하지만, 때때로 日本語(일본어)國漢文混用體(국한문 혼용체) 韓國語(한국어)로도 씁니다. 聯合宇宙(연합우주)에 오게 된 動機(동기) () 하나가 바로 國漢文混用體(국한문 혼용체)로 글을 쓰고 싶었기 때문이기도 하고요. 韓國語(한국어), 英語(영어), 日本語(일본어), 아니면 漢文(한문)으로도 말을 걸어주세요!

logtape.org

LogTape

Unobtrusive logging library with zero dependencies—library-first design for Deno, Node.js, Bun, browsers, and edge functions

@moreal@silicon.moe
개인적인 생각, Deno

Deno의 강점은 아무래도 "보안" 이라고 느낍니다. 다른 툴킷도 있지만 오늘 스크립트를 짜면서 새삼 보안 기능의 이로움을 다시 느낍니다.

원래 인기가 적은 라이브러리를 쓰려고 하면 걱정부터 앞서지만 Deno에서는 권한을 부여해야하기 때문에 Deno의 보안 기능이 문제 없을거라는 가정하에, 마음 편히 사용할 수 있습니다. 잘 모르는, 안 유명한 라이브러리라도요.

node_modules를 지원하면서 모든 파일 권한을 요구하게 되고 이런것이 마음에 들지 않아 장기적으로 모두 Deno로 넘어가면 좋겠다 라는 개인적인 생각을 합니다.

예전에 쓴 관련 글: velog.io/@moreal/%EC%95%88%EC%

velog.io

안전하게 니모닉 코드 생성하기

Deno로 NPM 패키지에 있을지도 모를 악성코드의 불안 없이 안전하게 니모닉 코드를 생성해봅니다

@monaco_koukoku@fedibird.com

何がどうなって現象が起きているかまで分かっているのに、修正をお願いするに足る説得力のある説明が書けない。(仕様に反してると言い切れれば一発なのだが)

@tesaguri@fedibird.com · Reply to tesaguri 🦀🦝

あー、transientなアクティビティの場合は識別子を省略して良いだけでなく、一意でない識別子を割り当てても良いとも読めるか……? わざわざ一意でない識別子を認める合理的な理由もあまり思い浮かばないけど……(識別子というのは識別のためのものであるわけで)

@tesaguri@fedibird.com
@osapon@mstdn.nere9.help

akkomaにフォロー掛けてフォロー解除するとき、同じIDでundo followしないといけなかったので、(本当の意味での)一時的なidだと動かないパターンあった。

@hongminhee@hollo.social · Reply to marius

@mariusor Oh, I see what you mean.

I thought that forwarding activities on behalf of the recipient would give the end recipient of the forwarded activity a hint as to why the activity was forwarded. However, I have no idea how helpful that hint actually is.

@monaco_koukoku@fedibird.com
@hongminhee@hollo.social · Reply to marius

@mariusor In the case of Fedify and Hollo, the original author signs with Object Integrity Proofs and the forwarder signs with HTTP Signatures. This way, the recipient can identify both the original author and the forwarder. (Isn't that what you want?)

@mariusor@metalhead.club

@silverpill any idea if there's a FEP regarding how to sign an activity that gets propagated through the Forwarding from Inbox mechanism? w3.org/TR/activitypub/#inbox-f

My first instinct is to use the instance actor for the server that received it, but I'm not sure.

Maybe the actor that received it in their inbox would be better, but that feels slightly unsanitary.

w3.org

ActivityPub

The ActivityPub protocol is a decentralized social networking protocol based upon the [ActivityStreams] 2.0 data format. It provides a client to server API for creating, updating and deleting content, as well as a federated server to server API for delivering notifications and content.

@hongminhee@hollo.social

Actually, I use Claude to draft the release notes for the projects I work on. After creating a project in Claude, I add relevant documents and a changelog, and then I write a prompt like “Hollo 0.5.0 has been released. Please write the corresponding release note”, and I get a pretty good draft release note.

The biggest benefit of this method is that it lets me quickly and easily write release notes in three languages (English, Korean, and Japanese).

@hollo@hollo.social · Reply to Hollo :hollo:

0.5.0をリリースしました!今回のアップデートでは、皆様のHollo体験をより良くする様々な改善が含まれています。

投稿のシェア数といいね数の集計がより正確になりました。各投稿のシェア数といいね数が正確に維持され、他のサーバーでシェアされた場合でもこれらの数値が適切に保持されるようになりました。

@yamanoku さんの貢献により、プロフィールページが大幅に改善されました:

  • 新しい投稿へ移動できる逆方向のページネーション機能を追加
  • alt属性を活用した画像のアクセシビリティ向上
  • 画面サイズが小さくなってもカスタムフィールドが正しく表示されるように修正

その他、システムのライト/ダークモードに応じてファビコンが自動的に切り替わるようになり、新しいALLOW_HTML環境変数でMarkdown内でのHTML使用が可能になりました。(セキュリティのため、使用可能なHTML要素は制限されています)

また、ミュートとブロックリストのためのAPIエンドポイントを追加し、Mastodon APIとの互換性を強化しました。

S3をご利用の方は、S3_REGION環境変数の設定が必須となりましたのでご注意ください。

0.5.0へのアップデート方法:

  • Dockerをご利用の場合:docker pull ghcr.io/fedify-dev/hollo:0.5.0
  • 手動インストールの場合:git pull origin stableの後pnpm installを実行
  • Railwayをご利用の場合:Railwayダッシュボードからサービスを再デプロイ

変更の詳細:https://github.com/fedify-dev/hollo/releases/tag/0.5.0.

Release Hollo 0.5.0 · fedify-dev/hollo

Released on February 12, 2025. The number of shares and likes became more accurate. The Note objects now have shares and likes collections with their totalItems numbers. When a remote Note is pe...

@hollo@hollo.social · Reply to Hollo :hollo:

0.5.0이 릴리스되었습니다! 이번 업데이트는 여러분의 Hollo 사용 경험을 더욱 개선하는 다양한 변화를 담고 있습니다.

게시물의 공유 수와 좋아요 수를 더 정확하게 집계하도록 개선했습니다. 이제 각 게시물의 공유 수와 좋아요 수가 정확하게 유지되며, 다른 서버로 공유되었을 때도 이 수치가 올바르게 보존됩니다.

@yamanoku 님의 기여로 프로필 페이지가 크게 개선되었습니다:

  • 이전 게시물뿐 아니라 최신 게시물로도 이동할 수 있는 페이지네이션
  • 대체 텍스트를 활용한 이미지 접근성 개선
  • 화면 크기가 작아져도 커스텀 필드가 잘 표시되도록 수정

이 밖에도 시스템의 라이트·다크 모드에 따라 파비콘이 자동으로 전환되며, 새로운 ALLOW_HTML 환경 변수로 Markdown 안에 HTML 사용이 가능해졌습니다(보안을 위해 허용되는 HTML 요소는 제한됩니다).

또한 뮤트와 차단 목록을 위한 API 엔드포인트를 추가하여 Mastodon API 호환성을 강화했습니다.

S3를 사용하시는 분들은 이제 S3_REGION 환경 변수 설정이 필수가 되었으니 참고해 주시기 바랍니다.

0.5.0으로 업데이트하는 방법:

  • Docker 사용자: docker pull ghcr.io/fedify-dev/hollo:0.5.0
  • 수동 설치 사용자: git pull origin stablepnpm install
  • Railway 사용자: Railway 대시보드에서 서비스 재배포

전체 변경 사항: https://github.com/fedify-dev/hollo/releases/tag/0.5.0.

Release Hollo 0.5.0 · fedify-dev/hollo

Released on February 12, 2025. The number of shares and likes became more accurate. The Note objects now have shares and likes collections with their totalItems numbers. When a remote Note is pe...

@hollo@hollo.social

0.5.0 has been released! This update brings several improvements to make your Hollo experience even better.

We've enhanced the accuracy of sharing and liking counts, giving you a clearer picture of post engagement. Posts now maintain precise counts of shares and likes, which persist even when shared across different servers.

Thanks to contributions from @yamanoku, the profile page has received several enhancements:

  • You can now navigate to newer posts with backward pagination
  • Images are more accessible with improved alt text handling
  • Custom fields display better on smaller screens

The favicon now automatically adapts to your light/dark mode preference, and you can enable raw HTML in Markdown using the new ALLOW_HTML environment variable (with secure limitations on allowed HTML elements).

We've also expanded our Mastodon API compatibility by adding endpoints for muted and blocked accounts, making it easier to manage your social boundaries.

Important note for S3 users: The S3_REGION environment variable is now required when using S3 storage.

To update to 0.5.0:

  • Docker users: docker pull ghcr.io/fedify-dev/hollo:0.5.0
  • Manual installation: git pull origin stable and pnpm install
  • Railway users: Redeploy your service from the Railway dashboard

Full changelog: https://github.com/fedify-dev/hollo/releases/tag/0.5.0.

Release Hollo 0.5.0 · fedify-dev/hollo

Released on February 12, 2025. The number of shares and likes became more accurate. The Note objects now have shares and likes collections with their totalItems numbers. When a remote Note is pe...

@kodingwarrior@silicon.moe

[hackerspub](hackers.pub)은 개인적으로는 좀 여러가지 가능성에서 기대를 많이 하고 있는데,
(사실 내가 자발적으로 불 지피고 있음)

* [velog](velog.io) 클론코딩하는 느낌으로 UI 짜놓고 HackersPub의 프론트엔드로 갖다 붙인다던가 (이미 마스토돈 서버에다가 [Phanpy](phanpy.social) 프론트 붙여서 호스팅하는 사례를 몇몇 차례 봐왔음)
* 위와 비슷한 사유로 Hashnode 블로그 템플릿이 말고도 HackersPub 블로그 템플릿 같은 생태계가 만들어질 수도 있음
* ActivityPub 지원되는 다른 블로깅 플랫폼과의 연결성

그 외에도 가능성이 있겠지만, 계속 탐색하다보면 뭐가 더 나오겠지...!!

phanpy.social

Phanpy

Minimalistic opinionated Mastodon web client

@kodingwarrior@hackers.pub

HackersPub에서 굴리는 블로그 포스트를 어떻게 운영할지는 확실하게 정책을 정하지는 않았다. 당장은 어떤 환경에서든 편집할 수 있는 블로그라는 점에 초점을 맞추고, Simon Wilison 처럼 Link Blog 느낌으로 운영하는게 무난할 것 같다.


Web

LLM


흠... 쓰다보니 Draft 기능도 필요한 것 같다...

aider.chat

Home

aider is AI pair programming in your terminal

The projects I am currently working on:

  • Fedify: an ActivityPub server framework for TypeScript
  • Hollo: an ActivityPub-powered single-user microblog
  • BotKit: an ActivityPub bot framework for TypeScript
  • LogTape: a simple logging library for TypeScript (used by the above projects)
  • Yoyak: an LLM-powered CLI program for summarizing web pages
  • Hackers' Pub: an ActivityPub-powered blog for software engineers (i.e., a DEV.to for fediverse)

Maybe I'm juggling too many projects at the same time. 😂

hackers.pub

Hackers' Pub

@kodingwarrior@silicon.moe

@monaco_koukoku 今の所は簡単に回避出来る方法は無いですね。😅

敢えて回避しようとしたら、kv["_fedify", "activityIdempotence", "https://.../undo"]に該当するキー(kvPrefixesの設定に依って変わる場合が有ります)を削除する方法くらいが思い浮かびますね。🤔

fedify.dev

Federation | Fedify

The Federation object is the main entry point of the Fedify library. This section explains the key features of the Federation object.

@silverpill@mitra.social

There are two different types of context collections:

- Collection of posts (implemented in NodeBB and Iceshrimp.NET)
- Collection of activities (implemented in Streams and Hubzilla)

Both can be used to load missing parts of conversation. This situation might be confusing, so I quickly wrote a FEP that describes each collection and how they can be used together: https://codeberg.org/silverpill/feps/src/branch/main/f228/fep-f228.md

codeberg.org

feps/f228/fep-f228.md at main

feps - My FEPs

:_ko::_ko::_a::_ni::_lya::_n:
@cocoa_vrc@misskey.io
Fedifyのカスタムバックグラウンドタスクの件、そもそもTSとかJSは素人だしGitHubで言うレベルの文は書けないのでここで言うけど

Fediverse/ActivityPubの範囲から外れる可能性はあると思う。ただ、ActivityPubサーバーを実装する場合はカスタムタスクが必要になる (Holloのフォローインポートとか)場合があると思われるので、そう考えるとあったほうが良いとも思う (Bullみたいなの使えばこれはどうにでもなるもけどね…)

Fedify 1.5.0でカスタムバックグラウンドタスクのサポートを検討しています。ActivityPubの処理と並行してユーザー定義のバックグラウンドタスクをサポートすべきかどうか、皆様のご意見をお聞かせください。提案の詳細はこちら:https://github.com/fedify-dev/fedify/issues/206

https://hollo.social/@fedify/0194ea5a-9856-703f-b098-d4f52936b500

hollo.social

We're considering adding custo…

We're considering adding custom background task support to #Fedify 1.5.0. Want to use Fedify's worker system for your own background tasks? We're exploring ways to let you register and process custom tasks alongside #ActivityPub jobs. Check out the proposal: <https://github.com/fedify-dev/fedify/issues/206>. Key considerations: - Should this be part of Fedify's scope? - Quick API extension vs complete worker architecture redesign - Integration with existing task queue systems We'd love to hear your thoughts! Do you need this feature? How would you use it? Share your feedback in the issue thread. #fedidev

We're considering adding custom background task support to 1.5.0.

Want to use Fedify's worker system for your own background tasks? We're exploring ways to let you register and process custom tasks alongside jobs.

Check out the proposal: https://github.com/fedify-dev/fedify/issues/206.

Key considerations:

  • Should this be part of Fedify's scope?
  • Quick API extension vs complete worker architecture redesign
  • Integration with existing task queue systems

We'd love to hear your thoughts! Do you need this feature? How would you use it? Share your feedback in the issue thread.

github.com

Support custom background tasks in worker · Issue #206 · fedify-dev/fedify

Currently, Fedify has a built-in background worker that processes incoming and outgoing activities through a message queue. However, applications using Fedify might need their own background tasks ...

Fedify 1.5.0에서 커스텀 백그라운드 태스크 지원을 검토하고 있습니다. ActivityPub 관련 태스크와 함께 사용자 정의 백그라운드 태스크를 지원하는 것에 대한 여러분의 의견을 들려주세요: https://github.com/fedify-dev/fedify/issues/206.

https://hollo.social/@fedify/0194ea5a-9856-703f-b098-d4f52936b500

hollo.social

We're considering adding custo…

We're considering adding custom background task support to #Fedify 1.5.0. Want to use Fedify's worker system for your own background tasks? We're exploring ways to let you register and process custom tasks alongside #ActivityPub jobs. Check out the proposal: <https://github.com/fedify-dev/fedify/issues/206>. Key considerations: - Should this be part of Fedify's scope? - Quick API extension vs complete worker architecture redesign - Integration with existing task queue systems We'd love to hear your thoughts! Do you need this feature? How would you use it? Share your feedback in the issue thread. #fedidev

We're considering adding custom background task support to 1.5.0.

Want to use Fedify's worker system for your own background tasks? We're exploring ways to let you register and process custom tasks alongside jobs.

Check out the proposal: https://github.com/fedify-dev/fedify/issues/206.

Key considerations:

  • Should this be part of Fedify's scope?
  • Quick API extension vs complete worker architecture redesign
  • Integration with existing task queue systems

We'd love to hear your thoughts! Do you need this feature? How would you use it? Share your feedback in the issue thread.

github.com

Support custom background tasks in worker · Issue #206 · fedify-dev/fedify

Currently, Fedify has a built-in background worker that processes incoming and outgoing activities through a message queue. However, applications using Fedify might need their own background tasks ...