Profile img

Hi, I'm who's behind Fedify, Hollo, BotKit, and this website, Hackers' Pub! My main account is at @hongminhee洪 民憙 (Hong Minhee) :nonbinary:.

Fedify, Hollo, BotKit, 그리고 보고 계신 이 사이트 Hackers' Pub을 만들고 있습니다. 제 메인 계정은: @hongminhee洪 民憙 (Hong Minhee) :nonbinary:.

FedifyHolloBotKit、そしてこのサイト、Hackers' Pubを作っています。私のメインアカウントは「@hongminhee洪 民憙 (Hong Minhee) :nonbinary:」に。

Website
hongminhee.org
GitHub
@dahlia
Hollo
@hongminhee@hollo.social
DEV
@hongminhee
velog
@hongminhee
Qiita
@hongminhee
Zenn
@hongminhee
Matrix
@hongminhee:matrix.org
X
@hongminhee

This brings back memories. Before Python had async/await, before asyncio became standard, I was happily writing concurrent code with gevent. I actually preferred it.

The reason was simple: no function color problem. With async/await, you split the world into two kinds of functions—ones that block by default and ones that don't. You have to mark the latter with async and remember to await them. With gevent, everything just blocks by default, and you spawn when you need concurrency. It's the same mental model as multithreading, just lighter. Project Loom in Java does something similar, though the technical details differ.

I sometimes wonder what Python would look like if it had embraced gevent-style coroutines in CPython instead of adding async/await. Or if Stackless Python had been accepted upstream. Maybe async programming would be more approachable today.

The explicit await keyword gives you visibility into where context switches can happen, sure. But in practice, I/O points are obvious even without the keyword—you're reading from a socket, querying a database, making an HTTP request. The explicitness doesn't really prevent race conditions or timing bugs. Meanwhile, function colors infect everything. One async library forces your entire call stack to be async. You end up maintaining both sync and async versions of the same code, or the ecosystem just splits in two.

With gevent, there's no such problem. You just call functions. Spawn them if you want concurrency, call them normally if you don't. Go's goroutines and Project Loom are popular for good reasons—they make concurrency accessible without the cognitive overhead.

Python's choice is history now, and there's no going back. But looking at how things turned out, I can't help but think the more practical path was right there, and we walked past it.

1
1
1

Idea: "The unbillionaires list", to promote contributors to the common.

A collaborative website that lists people who created something useful to millions but purposedly choose to put in in the common and didn’t earn money directly from it (or not as much as expected)

Besides those listed in ploum.net/2026-01-22-why-no-eu

I would add Henri Dunant (Red Cross, he died in great poverty), Didier Pittet (who invented the hydroalcoolic gel we now use everyday).

1
0
0

On February 3rd (very soon!) I am hosting another [BERLIN FEDERATED NETWORK EXPLORATION CIRCLE] at @offline. It's a chance to meet and talk with people who are interested in the & networking & exploration & circ---you get the idea.

We have the pleasure of having @hongminhee洪 民憙 (Hong Minhee) :nonbinary: who will give a presentation about @fedifyFedify: ActivityPub server framework "an opinionated framework for TypeScript that handles the protocol plumbing"

It is an open free event and everyone is welcome!

BERLIN FEDERATED NETWORK EXPLORATION CIRCLE
BEFENEC? BEFENEEXCI?
we have 洪 民憙 (Hong Minhee) all the way here from 
Korea with a presentation about Fedify, a fediverse
library they have been building that is now powering
the federation of things like Ghost and Hackers' Pub

come join us offline
at offline
Lichtenrader Str. 49
Berlin
1
0
2
1

종료 시그널이 들어왔을 때 잘 처리되는지, 상위 context가 계속 잘 전파되는지를 확인하는게 관건이긴 하군

1

컨텍스트 창 크기가 20만 토큰이라는 건 (1대 1로 비교할 수 있는 건 아니고 경우와 사람마다 다르겠지만) 인간 기준으로 어느 정도 느낌을 가지는 크기인지 궁금하다. 한 사람이 가지는 컨텍스트 창은 당연히 무한할 수는 없고 생각보다 그렇게 크지 않을 수도 있다는 얘기도 있다. 예를 들면 개발자도 일할 때 이런 저런 문의와 과제가 쌓이면 “컨텍스트 스위칭” 비용에 대한 불만을 토하기도 하니까.

3
2
3
1

洪 民憙 (Hong Minhee) shared the below article:

upcoming fediverse events

Liaizon Wakest @wakest@hackers.pub

Jan 26th, online

  • Fediverse-Sprechstunde (in German)

Jan 31st, Brussels

  • FOSDEM: Fediverse Integration into (EU) Public Administration

  • FOSDEM: Social Web Devroom (25 presentations)

February 1st, Berlin

  • Digital Independence Day: Punk Tour of the Fediverse (in German/English)

February 1st, Brussels

  • FOSDEM: Shaping the Future of Events and Calendars in the Fediverse
  • FOSDEM: The Fediverse and the EU's DSA: solving the challenges of modern social media?

February 3rd, Berlin

  • BERLIN FEDERATED NETWORK EXPLORATION CIRCLE: Fedify

February 4th + 5th, London

  • Protocols for Publishers

March 2nd, online

  • Growing the Open Social Web: An Online FediForum Un-Workshop

February 24th, Montreal

  • FediMTL: digital sovereignty and the social web

March 19th + 20th, Amsterdam

  • Nodes on a Web: The Fediverse in/for Public Institutions

July 8th to the 12th, Germany

  • DWeb Camp 2026
Read more →
5

집에서 홈서버로 몇가지 서비스를 굴리면서 cloudflare tunnel을 사용하지 않던 이유가 몇가지 있는데...

  1. 캡슐화를 위해 추가 데이터가 덕지덕지 붙어 스루풋에 손해가 있다. 특히 패킷의 크기가 작으면 배보다 배꼽이 더 커진다.
  2. 목표 서버는 내 방안에 있는데 정작 송신을 하면 패킷이 먼 곳, 심하면 바다를 건너 갔다 올 수 있다. 이걸 막으려면 자체적으로 DNS 서버를 굴려야하는데, 심심하면 서버를 재시작하는데다가 매 장치마다 DNS 설정을 해주는 건 너무 귀찮은 일이다.
  3. http(s)가 아닌 서비스의 경우(메일서버라던가) 매우 처리가 귀찮아진다. 해결하는 방법이 아예 없는 건 아니지만 그럴 바에야 그냥 포트를 열어주는 게 훨씬 편하다.

사실 위 문제는 cloud native라면 별 문제가 없는 것들이긴 하다만... 아직까지 내 작은 SBC 서버에는 아직 시기상조인 것 같다.

2
1

Ghostty has a really well-balanced AI usage policy. It doesn't ban AI tools outright, but it sets clear boundaries to prevent the common problems we're seeing in open source contributions these days.

What stands out is that it's not about being anti-AI. The policy explicitly says the maintainers use AI themselves. The rules are there because too many people treat AI as a magic button that lets them contribute without actually understanding or testing what they're submitting. The requirement that AI-generated PRs must be for accepted issues only, fully tested by humans, and properly disclosed feels like basic respect for maintainers' time.

I'm thinking of adopting something similar for my projects, even though they're not at Ghostty's scale yet. Better to set expectations early.

0

Another thought just struck me today, though, and comes from the perspective of my current role as a maintainer of heavily-used open source software projects: while an agents file may be a hint that makes us curmudgeons roll our eyes and step away in disgust, the dark forest of vibe coders exists, and they're probably opening PRs on your projects. Some people are probably vibe coding without even knowing it, because LLM-powered autocomplete is enabled in their IDE by default or something. In that reality, an AGENTS.md might also be the best protection you have against agents and IDEs making dumb mistakes that are, often, very hard to notice during a code review. If you maintain projects that welcome third-party contributions, you deserve to at least know that you've given the agents some railings to lean on.

You might not trust vibe coders, but if you can gently guide the vibes, maybe it's worth the cringe or two you'll get from seasoned engineers.

AGENTS.md as a dark signal, Josh Mock

1
6

この問題について、以前は「優れたソフトウェアエンジニアになるには、英語が一定のレベル以上できなければならない」と考えていましたが、今は考えが変わりました。自国語でも十分にコーディングができるよう、技術的・文化的な土壌が整えられるべきです。

0

(自称)英語話せない人が付けた変数名、その人の技術力関係なく結構モヤモヤする率高い.......。まぁ別に変数名が合致してたらプログラムは動くから、まぁ、良いかとは思うし、わざわざ指摘するのもなぁ....という気持ちがあるので、表には出さないが、それはそれとしてどうしてもモヤモヤはする.....。

0

While working on , I noticed something about how handles object access. When a remote server requests a followers-only post or DM with a valid HTTP Signatures (draft-cavage) from an authorized actor, Misskey still returns 404 instead of the content. It seems Misskey only checks the visibility field (public/home) without verifying the signature at all.

takes a different approach—when is enabled, it validates the HTTP Signatures and returns the content if the requesting actor has permission. I think it would be beneficial if Misskey could adopt a similar mechanism, since it would better respect the access control semantics that ActivityPub intends. Has anyone else run into this, or are there specific reasons Misskey handles it this way?

While working on , I noticed something about how handles object access. When a remote server requests a followers-only post or DM with a valid HTTP Signatures (draft-cavage) from an authorized actor, Misskey still returns 404 instead of the content. It seems Misskey only checks the visibility field (public/home) without verifying the signature at all.

takes a different approach—when is enabled, it validates the HTTP Signatures and returns the content if the requesting actor has permission. I think it would be beneficial if Misskey could adopt a similar mechanism, since it would better respect the access control semantics that ActivityPub intends. Has anyone else run into this, or are there specific reasons Misskey handles it this way?

0
2
3
4

예전에는 CPU 버그가 드물었지만, 최근에는 복잡성의 증가로 많이 흔해졌다는 이야기로 시작하는 CPU 버그에 대한 좋은 마스토돈 포스팅. 버그가 어떤 식으로 발생하고 여기에 어떤 식으로 준비/대처하는지에 대해 자세히 이야기를 해준다. 습관적으로 마스토돈에 들어갔다가 상당히 흥미롭고 깊이있는 이야기를 발견해서 기뻤다. 주소는 여기

예전에 lwn.net 에서 본 What every programmer should know about memory가 생각났다. Static RAM 과 Dynamic RAM 의 속도차이는 왜 어떻게 발생하는 것일까에 대해 아주 오랫동안 궁금해하던 것을, 회로도를 통해서 직관적으로 이해할 수 있게 해줘서 굉장히 (...인생에서 가장 기뻤던 순간 중 손에 꼽을 정도였다.) 기뻤던 기억이 아직도 난다.

로우레벨 컴퓨팅에 대한 이야기는 내 정신 저 밑바닥에 있는 "아니 그러니까 왜냐고?!" 의 욕망을 크게 해결해주는 경향이 있어서 좋아한다.

그리고 마스토돈의 기본 웹 클라이언트는 브라우저들이 번역을 정말 잘 못한다-_-; 웹페이지의 기본 언어가 브라우저 언어로 맞추어져 보여지고, 그래서 번역할 필요가 없다고 브라우저가 판단해서 그런 것 같다고 이해하고 있는데 이 문제 어떻게 해결할 방법이 없을까 흠 ' -' ...

3
1

오늘 흥미로운 걸 발견하는 운이 좋은 모양이네요. HN에서 보았는데, 결과물보다는 코멘트 첫머리에 링크된 블로그포스팅이 더 재미있었습니다.

글 초반의 어떤 문구에서 저는 부정적인 인상을 받았는데, HN에서 본 다음 코멘트를 읽고 조금 완화되었습니다.

I mean this pretty literally though - I'm not particularly interested in these questions. They've been discussed a ton by people way more qualified to discuss them, but I personally I feel like it's been pretty much the same conversation on loop for the last 5 years...

That's not to say they're not very important issues! They are, and I think it's reasonable to have strong opinions here because they cut to the core of how people exist in the world. I was a musician for my entire 20s - trust me that I deeply understand the precarity of art in the age of the internet, and I can deeply sympathize with people dealing with precarity in the age of AI.

But I also think it's worth being excited about the birth of a fundamentally new way of interacting with computers, and for me, at this phase in my life, that's what I want to write and think about.

1

とある分野のオープンデータを探していたらJSON-LD形式のものが多いけど、JSONしか扱ったことがないのと、JSON-LDってActivityPubの実装やってる人たちが皆さん「😖」となっているのを見かけるので、けっこうややこしいフォーマットなのかな??
それとも「ActivityPubの実装においては」という文脈があるのか?👀

@shiromadaraしろまだら JSON-LDはLinked DataをJSONで表現した形式ですが、Linked Dataを理解していればJSON-LD自体はそれほど難しくありません。Linked Dataはセマンティック・ウェブ(オントロジー)を表現するための手段であり、オープンデータの分野で広く使われているのはそのためでしょう。ただ、ActivityPubがJSON-LDを採用したことが果たして技術的に適切な選択だったかについては、意見が大きく分かれているようです。

1
6

HN에서 Claude's new constitution 이야기를 봤고, 몇 차례 타이틀만 보고 눌러보지 않고 지나가다가- 결국 눌러서 나온 댓글들에서 끔찍한 감정을 느끼다가 - 블로그 글을 읽기 시작하다가 - '읽어보세요' 버튼을 눌러서 본문을 보게 되었습니다. 본문 보기 버튼을 눌러보길 잘 했다는 생각이 들었습니다. 학술적/윤리적/철학적 호기심을 많이 자극하는 글이었고, 꽤 공을 들였다는 느낌을 받았습니다.

다 읽고 나니까, 아주 오래전, 구글이 'Don't be evil'을 말했던 때가 생각나기도 했습니다.

세계가 전면 핵전쟁 주위를 어슬렁거리고 있어서 요 며칠 우울했는데, 이걸 보니 좀 기분전환이 되더군요.

1

@hongminhee洪 民憙 (Hong Minhee) Gemini CLIを使っているので、Gemini 2.5-ProだったりFlashを使ってます!でも3.0が使えることに気づいてからは3.0を使うようにしてみてます

あとはGemini以外だとQwen Code (Qwen3-Coder?)も簡単なタスクだったりには使ったりしていますね (ちなみにCopilot CLIも少し気になってます)

1
5
7
2

Secretive(혹은 1Password)로 SSH 키를 관리하는데 Touch ID로 인증을 해야하다 보니 노트북 저 멀리에 두고 모니터와 별도 키보드를 쓰는 상황에서 팔을 쭉 뻗어 Touch ID에 손가락을 올리는 것이 여간 불편한 것이 아니었다. 예전에 Apple Watch로 인증이 되고 그랬다고 했던 기억이 나서 오늘에서야 써보는 데 팔을 뻗지 않아도 되서 매우 편하다 :D

1
4
0
3
1

작년 말부터 내가 코딩을 좋아하나? 잘 하나? 계속 할 수 있나? 의심이 들어서 괜히 다른 일을 열심히 해봤는데... 돌고 돌아 코딩을 너무 좋아한다는 걸 뒤늦게 깨달았다.

나도 몰랐는데 스스로 맘 속으로 시름시름 앓았었나보다. 왜 그런지 고민해보았는데, 퇴사하면서 했던 마지막 업무가 내가 해왔던 일 중 하나를 자동화 하는 것이었다. AI의 발전과 더불어 직업적 회의감을 느꼈던 것 같다. 스스로를 대체하는 직업이 지속 가능성이 있는가? 같은 고민을 했던 것 같다.

근데 농사도 지어보고 커피도 낋여보고 다른 일도 열심히 해봤는데, 퇴근하면 어느샌가 이맥스 켜고 Nix 짜넣어서 빌드 돌리더라. 생각해보면 코딩을 잘해서 시작한 것도 아니었고, 유망해서 시작한 것도 아니었다. 그냥 재밌으니까, "3D 업종"이라는 말을 들을 때부터 해왔다. 근데 이제와서 잘 못하나, 덜 좋아하나 같은 고민으로 그만두기에는 너무 코딩에 깊이 빠져버렸다는 걸, 작년이 끝나며 깨달은 것 같다.

4

작년 말부터 내가 코딩을 좋아하나? 잘 하나? 계속 할 수 있나? 의심이 들어서 괜히 다른 일을 열심히 해봤는데... 돌고 돌아 코딩을 너무 좋아한다는 걸 뒤늦게 깨달았다.

나도 몰랐는데 스스로 맘 속으로 시름시름 앓았었나보다. 왜 그런지 고민해보았는데, 퇴사하면서 했던 마지막 업무가 내가 해왔던 일 중 하나를 자동화 하는 것이었다. AI의 발전과 더불어 직업적 회의감을 느꼈던 것 같다. 스스로를 대체하는 직업이 지속 가능성이 있는가? 같은 고민을 했던 것 같다.

근데 농사도 지어보고 커피도 낋여보고 다른 일도 열심히 해봤는데, 퇴근하면 어느샌가 이맥스 켜고 Nix 짜넣어서 빌드 돌리더라. 생각해보면 코딩을 잘해서 시작한 것도 아니었고, 유망해서 시작한 것도 아니었다. 그냥 재밌으니까, "3D 업종"이라는 말을 들을 때부터 해왔다. 근데 이제와서 잘 못하나, 덜 좋아하나 같은 고민으로 그만두기에는 너무 코딩에 깊이 빠져버렸다는 걸, 작년이 끝나며 깨달은 것 같다.

8
3