洪 民憙 (Hong Minhee)'s avatar

洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · 882 following · 1090 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

Hackers' PubにLLMを活用した記事の自動翻訳機能が追加されました。これにより、Hackers' Pubに投稿された英語や韓国語の記事を日本語で閲覧できるだけでなく、日本語で書いた記事を海外の読者に紹介する事も可能に成りました。

なお、Hackers' Pubは招待制で運営されています。ご興味のある方は、DMでメールアドレスを教えていただければ、招待いたします。

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

@hongminhee@hackers.pub


LLM 기반의 게시글 번역 기능이 추가되었습니다. 우선, 자신이 쓴 게시글이 LLM을 이용해 번역되는 것을 허용하려면, 게시글 공개 설정에서 “LLM 기반 자동 번역 허용” 옵션을 켜 주셔야 합니다. 기존 게시글은 모두 이 옵션이 꺼져 있습니다만, 새로 쓰는 게시글의 경우 기본적으로 켜져 있습니다.

한국어판 게시글 공개 설정 페이지에 추가된 “LLM 기반 자동 번역 허용” 옵션
한국어판 게시글 공개 설정 페이지에 추가된 “LLM 기반 자동 번역 허용” 옵션
영어판 게시물 공개 설정 페이지에 추가된 “Allow LLM-powered automatic translation” 옵션
영어판 게시물 공개 설정 페이지에 추가된 “Allow LLM-powered automatic translation” 옵션

위와 같이 옵션을 켜 준 게시글은 위쪽에 다음과 같이 “다른 언어로 읽기” 메뉴가 표시되게 됩니다. 이 메뉴에 나오는 언어 목록은 언어 설정에서 정할 수 있습니다.

게시글 첫 부분에 표시되는 “다른 언어로 읽기” 메뉴 (한국어판)
게시글 첫 부분에 표시되는 “다른 언어로 읽기” 메뉴 (한국어판)
게시글 첫 부분에 표시되는 “Read in other languages” 메뉴 (영어판)
게시글 첫 부분에 표시되는 “Read in other languages” 메뉴 (영어판)

이 중에서 이미 번역이 완료된 언어는 바로 표시되지만, 아직 번역이 완료되지 않은 언어의 경우, 아래와 같이 기다리라는 메시지가 뜨게 됩니다. 게시글의 분량에 따라 번역 시간은 차이가 나지만, 짧으면 30초에서 길면 5분 정도 걸립니다.

게시글이 번역중이라는 메시지 (한국어판): “이 게시글은 영어에서 한국어로 번역중입니다. 번역이 완료될 때까지 기다려 주세요.”
게시글이 번역중이라는 메시지 (한국어판): “이 게시글은 영어에서 한국어로 번역중입니다. 번역이 완료될 때까지 기다려 주세요.”
게시글이 번역중이라는 메시지 (영어판): “This article is being translated from Korean to English. Please wait until the translation is complete.”
게시글이 번역중이라는 메시지 (영어판): “This article is being translated from Korean to English. Please wait until the translation is complete.”

번역이 완료되면, 아래와 같이 메시지가 바뀝니다.

게시글의 번역본 상단에 뜨는 메시지 (한국어판): “이 게시글은 영어에서 한국어로 번역되었습니다.”
게시글의 번역본 상단에 뜨는 메시지 (한국어판): “이 게시글은 영어에서 한국어로 번역되었습니다.”
게시글의 번역본 상단에 뜨는 메시지 (영어판): “This article has been translated from Korean to English.”
게시글의 번역본 상단에 뜨는 메시지 (영어판): “This article has been translated from Korean to English.”

번역 기능은 제가 Hackers' Pub을 맨 처음 구상할 때부터 핵심 기능으로 고려하고 있던 것이었습니다. 소프트웨어 프로그래머로서 일정 수준 이상 성장하기 위해서는 반드시 영어를 배워야만 하는 불합리함이나 그리고 일본어나 중국어 등 영어가 아닌 언어로 쓰인 다양한 자료에 대부분의 외국인은 접근하지 못한다는 아쉬움을 오래 전부터 느꼈기 때문입니다. 다행히 얼마 전부터 LLM의 번역 품질이 아주 좋아졌고, 이를 활용하여 꽤 괜찮은 품질의 번역 기능을 Hackers' Pub 같은 작은 웹사이트에서도 구현할 수 있게 되었네요.

참고로 현재 번역에 쓰이는 모델은 Claude Sonnet 3.7입니다. 저렴하다고는 할 수 없는 모델인데요. 시범적으로 운영해 보고, 비용이 너무 부담된다고 여겨지면 Gemini 2.5 Flash 같은 다른 모델로 전환하는 것도 고려하고 있습니다.

아무튼, 모처럼 추가한 번역 기능이니 많은 분들이 유용함을 누리셨으면 좋겠습니다.

아래는 제가 샘플로 미리 만들어 둔 번역본들입니다:

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

@hongminhee@hollo.social

카카오톡은 Linux 버전을 내놓든가 아니면 웹 버전을 내놓아라! (아니, 그냥 사람들이 카카오톡을 이제 그만 썼으면 좋겠다…)

Daniel Supernault's avatar
Daniel Supernault

@dansup@mastodon.social

This new FediDB v2 webapp can be self-hosted btw!

Working on adding a few new pages/features to FediDB, including:

- translation support (i18n)
- a federated wiki (👀)
- apps + clients
- popular accounts
- viral topics
- trends
- quarterly reports
- stats overview w/ geomaps + advanced filtering

And much more ✨

> git clone github.com/fedidb/fedidb-nuxt

🔗 : new.fedidb.org/

David Bushell 🏖️'s avatar
David Bushell 🏖️

@db@social.lol

🦕 blogged: Deno’s Decline (6 Regions and Falling)
dbushell.com/2025/04/28/denos-

I think @deno_land were hoping no one would notice, no wonder they've been quiet...

Deno's avatar
Deno

@deno_land@fosstodon.org

Deno 2.3 is here:
🌱 deno compile with FFI & Node native add-ons
📦 Local npm packages
⭐ deno fmt CSS/HTML/SQL in tagged templates
🔭 OTel event recording & tracing in distributed services
and more —

deno.com/blog/v2.3

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

@hongminhee@hackers.pub

.github/copilot-instructions.md, .cursorrules, .windsurfrules, CLAUDE.md… 이것 말고도 많이 있을텐데, 어차피 들어가야 하는 내용은 다 거기서 거기. 지금은 한 파일에 적고 심볼릭 링크로 같은 곳을 바라보게 하고 있지만, .editorconfig처럼 그냥 어떤 식으로든 표준화가 되었으면 좋겠다.

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

@hongminhee@hollo.social · Reply to Joonkyu Park's post

@hollo 따로 글이 지워지거나 옮겨지지는 않고요, 팔로워가 새 계정으로 옮겨집니다. 그리고 예전 계정은 아마 못 쓰게 될 겁니다. 로그인은 되는데 새 글을 올리거나 하는 게 막힐 거예요.

kiwiyou's avatar
kiwiyou

@kiwiyou@twt.rs

고기 먹으러 와서 이체자 찾기
焼き肉屋で異体字探し
(1) 石雲樓
(2) 睡穩葉舟輕,風徴浪不驚。仼君蘆葦㟁,終夜動秋聲。

robin's avatar
robin

@robin_maki@planet.moe

출시했다
typie.co

정진명의 굳이 써서 남기는 생각's avatar
정진명의 굳이 써서 남기는 생각

@index@guji.jjme.me

『사회적 배제Social Exclusion』란 개인이 삶의 경제적, 사회적, 정치적, 또는 문화적 측면에서 온전히 참여할 수 없는 상태와 그런 상태를 유지하거나 그런 상태로 만드려는 과정을 가리키는 말입니다.(Report on the World Social Situation 2016, p.19)

『사회적 배제주의Social Exclusionism』라는 말은, 더 좋은 표현이 있을지도 모르겠지만, 그런 상태를 추구하는 움직임을 가리키기 위해 붙인 이름입니다. 대충 다음과 같은 사례들, 그런 사례를 옹호하고 주장하는 사례들을 보다가 이 문서를 쓰게 되었습니다.

  • 범죄자에 대한 극형, 제도적 사회 배제 요구
  • 장애인의 이동권 묵살 및 부적절한 시설 수용 행태에 대한 합리화
  • 성노동자 및 탈성노동자의 발언권 압수 시도와 탈성매매에 대한 방해
  • 미등록 상태/등록 상태의 이주노동자에 대한 차별 요구와 처우에 대한 합리화
  • 다양성에 대한 백래시

이런 사례의 대부분은, 사회적으로 배제하려는 대상이 사회에 어떻게 존재하는지에 대해 알려고 시도하지 않는 것과, '어쨌든 나는 보기 싫다'는 심리를 사회가 동의해야 한다고 믿는 자기중심적인 사고에서 온다고 생각합니다.

우리 사회 구조의 많은 장치들은 힘을 가진 권력자―대개는 국가겠지요―가 개인―사람을 포함하겠지만, 국가만큼이나 힘이 있는 자본가나 기업도 여기 포함되겠지요―에게 할 수 있는 폭거를 제지하기 위한 장치라고 생각합니다. 민주주의 사회라면 가져야 할 표현의 자유, 정치 참여의 자유 같은 개념들은, 사실 개인과 개인의 관계를 규정하기 위한 도구가 아니었다는 것이 제 생각입니다. 그만큼 국가가 개인에 대해서 행할 수 있는 폭거에 대해서는 우리가 여러 시행착오를 거쳐 여기까지 왔다고 생각합니다.

그렇다면 민주주의 사회에서, 그러니까 한 사람 한 사람이 주권을 가져야 하는 사회에서, 그 주권자들이 "어떠한 사람들을 사회적으로 배제해야 한다"고 주장한다면, 그것은 무엇으로 다스려야 할까요? 다스릴 수 있는 것일까요? 어떤 근거로? 누가? 저는 이 문제에 답해야 한다고 생각하지만, 어떻게 답을 내릴 수 있을지는 모르겠습니다.

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

@hongminhee@hollo.social · Reply to Joonkyu Park's post

@hollo 감사합니다. Railway 설정 매뉴얼은 업데이트하도록 하겠습니다.

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

@hongminhee@hollo.social · Reply to Joonkyu Park's post

@hollo 프로필 사진을 설정 안 하셔서 그 페이지에서 맨 처음으로 나오는 이미지가 걸린 것 같네요.

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

@hongminhee@hollo.social · Reply to Joonkyu Park's post

@hollo 네, S3에는 이미지나 비디오 같은 미디어만 저장합니다.

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

@hongminhee@hollo.social

ソフトウェア開発に関する韓国語圏および英語圏の記事をLLMを活用して日本語に自動翻訳した記事が投稿されるサービスが有れば、利用する意向は有りますか?

OptionVoters
購読する6 (19%)
時々確認する18 (56%)
利用しない8 (25%)
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

ソフトウェア開発に関する韓国語圏および英語圏の記事をLLMを活用して日本語に自動翻訳した記事が投稿されるサービスが有れば、利用する意向は有りますか?

OptionVoters
購読する6 (19%)
時々確認する18 (56%)
利用しない8 (25%)
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to Woojin Kim's post

@me iOS 내장 한국어 키보드에 “이중 언어”라는 옵션이 생겼더라고요.

https://raycat.net/484123

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

@hongminhee@hollo.social · Reply to Woojin Kim's post

@me iOS에 그런 기능이 최근 들어왔던 것 같던데요!

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

We're pleased to announce that has been included in the Nivenly Fediverse Security Fund program!

The @nivenly Foundation has launched a security bounty fund to support contributors who identify and help fix vulnerabilities in popular software. Both Hollo and @fedify are among the selected projects that meet their responsible security disclosure requirements.

This program will run from April–September 2025, with bounties of $250–$500 USD for high and critical security vulnerabilities.

We're honored to be recognized alongside other established fediverse projects like Mastodon, Misskey, and Lemmy. This further encourages our commitment to maintaining strong security practices.

If you're interested in contributing to Hollo's security, please follow our responsible disclosure process outlined in our SECURITY.md file.

Learn more about the program:

https://nivenly.org/blog/2025/04/01/nivenly-fediverse-security-fund/

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're pleased to announce that has been included in the Nivenly Fediverse Security Fund program!

The @nivenly Foundation has launched a security bounty fund to support contributors who identify and help fix vulnerabilities in popular software. Both Fedify and @hollo are among the selected projects that meet their responsible security disclosure requirements.

This program will run from April–September 2025, with bounties of $250–$500 USD for high and critical security vulnerabilities.

We're honored to be recognized alongside other established fediverse projects like Mastodon, Misskey, and Lemmy. This further encourages our commitment to maintaining strong security practices.

If you're interested in contributing to Fedify's security, please follow our responsible disclosure process outlined in our SECURITY.md file.

Learn more about the program:

https://nivenly.org/blog/2025/04/01/nivenly-fediverse-security-fund/

🕊️ rins 🥤's avatar
🕊️ rins 🥤

@rns_8i8@calc.rettuce.page

おひとり様サーバーで見るHolloとMitra :: rettuce
rettuce.page/posts/fediverse-hollo-and-mitra/
3ヶ月くらいあたためていた日記を書きました

GENKI's avatar
GENKI

@nibushibu@vivaldi.net

素晴らしい :clapping:

新しい分散/連合型SNS「Pulsate」を開発している - /dev/sdR2 laminne.hatenablog.jp/entry/20

Evan Prodromou's avatar
Evan Prodromou

@evanprodromou@socialwebfoundation.org

I'm making an initial version of places.pub available today. places.pub is a collection of Place objects suitable for use in geosocial applications on the ActivityPub network. Part of my work in the Social Web Community Group at the W3C has been participation in the GeoSocial Task Force. This is a sub-group of the SocialCG that focuses on implementing user stories in ActivityPub related to the intersection of geographical systems and social networking, for example, tagging an image with […]

I’m making an initial version of places.pub available today. places.pub is a collection of Place objects suitable for use in geosocial applications on the ActivityPub network.

Part of my work in the Social Web Community Group at the W3C has been participation in the GeoSocial Task Force. This is a sub-group of the SocialCG that focuses on implementing user stories in ActivityPub related to the intersection of geographical systems and social networking, for example, tagging an image with the place it represents, or checking in to a location.

One important need for geosocial software is that all objects in ActivityPub, including Place objects, need to have a permanent URL as their id property, which shares the description of that object in Activity Streams 2.0 format. However, there isn’t a good dataset of geographical objects — countries, states or provinces or regions, cities, buildings, businesses, parks, streets — available in AS2 on the Web right now. That is slowing down experimentation in the Geosocial Task Force.

Using the service

So, I worked on making places.pub for geosocial hackers to experiment with. It’s a service that exposes places from the amazing OpenStreetMap collection of data as AS2 objects on the Web. So, given an OpenStreetMap object like the Rogers Centre Ottawa, it provides an AS2 version suitable for use in geosocial activities in ActivityPub. It also has a rudimentary search mechanism, although I think most users will want to use the Nominatim service for searching the OpenStreetMap database, and then map the IDs onto places.pub.

Once you know the places.pub ID for a place, you can use it for geotagging objects, people, activities, or using special geosocial activity types like check in, check out, and travel. There is a good list of examples on the places.pub home page, but obviously this is not an exhaustive list!

How it is built

This wasn’t my first time trying to build places.pub; I’d done two earlier versions with different architectures and the same interface. The first time out, about 7 years ago, I created a full NodeJS server that used a full mirror of the OpenStreetMap database, so I didn’t need to hit the OSM API to fetch data. It worked pretty well, but it was really expensive — hundreds of dollars per month to keep a database server of that size running and synched.

I tried a second version a few months ago, which did batch generation of AS2 Place objects from the OpenStreetMap exports, and then uploaded them to the S3 service at Amazon Web Services. This was a whole lot cheaper, but it took a long time to download, convert, and re-upload the data.

This third implementation, with source code available on GitHub, is a little bit easier than both. Instead of sloshing the huge OSM dataset back and forth, I used the version of the data stored in the Google Cloud Public Datasets system on BigQuery. This let me ignore the effort of moving data, and just focus on giving it a good ActivityPub-compatible interface using a Google Cloud Run function. It seems to work pretty nicely.

Next steps

I’d love to see some experimentation with using places.pub for geosocial activity in the social web. I’m going to work on some implementations in my own ActivityPub software. If you find problems with the software, please add an issue on GitHub or let me know on the Fediverse at @evanprodromou.

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

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

@liaizon @smallcircles @rysiek @index I guess it's because Mastodon assumes fedi handles are immutable…?

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

@hongminhee@hollo.social

()】의 마지막 ()을 이렇게 쓰기도 하는구나.

Patrick Wu :neocat_flag_bi:'s avatar
Patrick Wu :neocat_flag_bi:

@patrick@o0o.social

今日偶遇舊字形

small circle 🕊 in calmness's avatar
small circle 🕊 in calmness

@smallcircles@social.coop

"The Good, the Bad and the Ugly" is a good article by @dominik

chrastecky.dev/technology/acti

The two mentioned examples in "The Bad" are long-time issues that were also discussed at . I just responded to one of them on the forum..

The Update(Note) quirk. socialhub.activitypub.rocks/t/

The other one is around Direct Messages which are a hack (a Note with special sauce). specifies ChatMessage object type here, which is the intended way to extend the protocol.

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

@hongminhee@hollo.social · Reply to Sebastian Lasse's post

@sl007 Thanks for sharing this interesting approach! I'd be very interested in looking at your code once it's completed. The way you're handling ActivityPub data with Deno KV sounds promising, especially your methods for versioning and avoiding duplicates. Please let me know when it's available to check out!

洪 民憙 (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 병원 가 보셔야 하는 거 아니예요!?

bgl gwyng's avatar
bgl gwyng

@bgl@hackers.pub · Reply to 洪 民憙 (Hong Minhee)'s post

@hongminhee 약간 딴 얘긴데, 저는 들여쓰기가 그냥 안좋은 문법요소 같습니다. 코드의 복붙을 unreliable하게 만들어버려서요. 반대로 space sensitive한 문법은 괜찮다고 생각합니다. 복붙시 문제가 생겨도 스페이스 한번 치면 해결되니까요. 들여쓰기 대신에 {} 쌍을 쓰게 만들되, 에디터에서 보여줄때 어떻게 알아서 예쁘게 보여주는게 낫다고 생각해요.

Older →