한 때 만들고 싶었던 스타일의 책입니다. 내용 말고 스타일. https://cartesian.app/
洪 民憙 (Hong Minhee)
@hongminhee@hackers.pub · 1018 following · 726 followers
Hi, I'm who's behind Fedify, Hollo, BotKit, and this website, Hackers' Pub! My main account is at
@hongminhee洪 民憙 (Hong Minhee)
.
Fedify, Hollo, BotKit, 그리고 보고 계신 이 사이트 Hackers' Pub을 만들고 있습니다. 제 메인 계정은:
@hongminhee洪 民憙 (Hong Minhee)
.
Fedify、Hollo、BotKit、そしてこのサイト、Hackers' Pubを作っています。私のメインアカウントは「
@hongminhee洪 民憙 (Hong Minhee)
」に。
Website
- hongminhee.org
GitHub
- @dahlia
Hollo
- @hongminhee@hollo.social
DEV
- @hongminhee
velog
- @hongminhee
Qiita
- @hongminhee
Zenn
- @hongminhee
Matrix
- @hongminhee:matrix.org
X
- @hongminhee
의견을 구합니다.
코드 서명 문제를 두고 생각해보다가 떠올린 아이디어가 있습니다.
Java 애플리케이션들을 보면, 매우 투박하고 우악스럽지만 java.exe 째로 배포하면서 이걸 jar나 war와 함께 배포하면서 간단한 배치 파일 하나만 두는 경우를 많이 봅니다.
닷넷도 사실 그렇게 할 수 있습니다. 심지어 Microsoft가 zip 타입의 무설치 패키지도 제공하니까요!
다만 상술했듯 투박합니다. 하지만 배포에 관한 어려움을 푸는데 이 만한 넛지도 없을것 같습니다.
그래서 닷넷 프로젝트를 이렇게 런타임이나 SDK 째 배포할 수 있게 돕는 패키지 제작 도구가 있다면 쓰임새가 많지 않겠는가 하는 생각을 해봤습니다.
이런 도구가 있다면 한 번 써보게 되실까요? 🧐
개밥먹기하면서 해커스펍 안드로이드 클라이언트 바이브코딩
"아무도 안 만드는 것 같아서 내가 해야지"하고 해커스펍 안드로이드 클라이언트를 Jetpack Compose로 바이브코딩했는데 내가 코어 메인테이너가 되어버린 건에 대하여
바이브코딩으로 완전 별개의 분야 코딩을 하니까 이건 확실히 취미코딩의 영역이 맞구나 싶음... 이 기세로 macOS, iOS 이렇게 막 확장해갈 것 같기도 하고
https://x.com/math_rachel/status/2016232354608800254?s=46&t=I3_HxFRtjlCXCspThn61wA
바이브 코딩하면 긍정적인 몰입이 아니라 어두운 몰입(dark flow)에 빠진다는 이야기. 얼마전에 아르민 로나커도 비슷한 얘길했지. 결과물과는 별개로 바이브 코딩하고나면 머리가 바싹 마르는거 같아서 요즘 힘들다.
아니 난 가볍게 hledger 쓰려고 했는데 하루 죙-일 swift 빌드하고 있네 😡😡😡
폐쇄환경과 낡은 환경에서 최-신 소프트웨어 돌리기 전문가가 되어가는 것 같은데...
그래도 해커스펍에 글을 올리는 빈도가 더 늘었어
https://youtu.be/LvW1HTSLPEk?si=n1DXpApVO6YE80tC Claude Code TUI가 React로 터미널 화면을 reactive하게 60 fps로 렌더링하고 일종의 게임 엔진처럼 화면을 그린다는... 얘기를 하고 있는데... 아니 대체 왜죠...
TIL: Biome은 자체적으로 만든 AST 쿼리 언어인 GritQL을 통해 Plugin 시스템을 제공한다. [문서]
language js
// 4개 이상의 서로 다른 useState를 사용하는 경우
or {
`function $name($args) { $body }`,
`$name = ($args) => { $body }`,
`$name = forwardRef(($args) => { $body })`,
`$name = React.forwardRef(($args) => { $body })`,
`$name = forwardRef(function($args) { $body })`,
`$name = React.forwardRef(function($args) { $body })`,
`$name = memo(($args) => { $body })`,
`$name = React.memo(($args) => { $body })`,
`$name = memo(function $name($args) { $body })`,
`$name = React.memo(function $name($args) { $body })`
} where {
$body <: contains `$t1 = useState($a1)` as $b1 where {
$body <: contains `$t2 = useState($a2)` as $b2 where {
or { not $a2 <: $a1, not $t2 <: $t1 },
$body <: contains `$t3 = useState($a3)` as $b3 where {
or { not $a3 <: $a1, not $t3 <: $t1 },
or { not $a3 <: $a2, not $t3 <: $t2 },
$body <: contains `$t4 = useState($a4)` as $b4 where {
or { not $a4 <: $a1, not $t4 <: $t1 },
or { not $a4 <: $a2, not $t4 <: $t2 },
or { not $a4 <: $a3, not $t4 <: $t3 },
register_diagnostic(
span = $name,
message = "컴포넌트 안에서 너무 많은 useState를 쓰고 있습니다."
)
}
}
}
}
}
A relatively big issue with apkit that I'd been unable to resolve for ages was solved surprisingly easily, and once I thoroughly checked the cause, it turned out to be something obvious...😅
채용 지원한 오픈소스 해외 기업에서 여태까지 한 오픈 프로젝트 내역을 내 개인 오너쉽에 맞춰 공유해달라는 요청을 받아서 정리했습니다. https://gist.github.com/mu-hun/1d9a9ac8b72485d77ff90cabed595a49
인덱스 시그니처도 "남용"되고 타입 안정성을 깨뜨릴 수 있구나..
타입스크립트의 길은 멀고도 험하다
사내 문서를 노션으로 정리하고 있는데 문서간 연결이 미묘하게 불편한 것 같다
Cloudflare just published a vibe coded blog post claiming they implemented Matrix on cloudflare workers. They didn't, their post and README is AI generated and the code doesn't do any of the core parts of matrix that make it secure and interoperable. Instead it's littered with 'TODO: Check authorisation' and similar
https://blog.cloudflare.com/serverless-matrix-homeserver-workers/
https://webaudio.github.io/Audio-EQ-Cookbook/audio-eq-cookbook.html 합주실 믹서의 EQ 설정 UI를 만들면서 gain curve를 그리는 기능을 구현하기 위해서 기초적인 bilinear transform과 biquad filter의 개념에 대해 배웠다. 아직까지는 다행히 새로운 것들을 배워나가는 과정이 즐겁다.
When you necessarily need variable names for a single item of “data” vs. its collection, which naming convention do you prefer?
@hongminhee洪 民憙 (Hong Minhee) 아쉽게도 저 내용을 API로 긁을 방법은 없는거 같네요ㅠ
@bglbgl gwyng 저 스레드를 로컬에서 Amp Code로 가져와서 이어서 진행할 수가 있는데, 그럼 비공식 API라도 있지 않을까요?
@hongminhee洪 民憙 (Hong Minhee) 근데 학습데이터로 쓰려면 세션데이터를 가지고 시스템 프롬프트부터 해서 재현을 할수있어야하는데, 거기까지 될지 모르겠네요. 혹시 ampcode 퍼머링크 남아있는 커밋 예제 있으신가요?
@bglbgl gwyng 이렇게 해 본 적 있습니다!
귀찮은 작업을 처리하기 위한 자동화 툴을 자동화 할 수 있는 방법이 있을까
@hongminhee洪 民憙 (Hong Minhee) 앗 요러면, 모델들이 퍼블릭 레포에서 해당 퍼머링크를 감지해서 학습 데이터로 쓸수 있겠네요?
@bglbgl gwyng 네, 이론적으로는 그게 가능할 것 같습니다!
요즘 LLM 어시스턴트로 코딩을 하게 되면서, 작업 과정의 투명성 차원에서 세션 스레드를 공유한 뒤 퍼머링크를 커밋 메시지에 첨부하는 Amp Code의 방식을 OpenCode에서도 써볼까 고민중인데… 문제는 내가 프롬프트를 주로 한국어로 쓴다는 것. 프롬프트를 영어로 써야 할까…? 🤔
클로드 코드나 코덱스 등을 쓰면 작업한 데이터가 다시 각 모델의 학습에 쓰일거고 이러면 성능이 떨어지는 오픈웨이트 모델들이 격차를 따라잡는게 더 힘들어진다. 작업 내용을 export해서 오픈데이터셋 등에 쉽게 기여할 방법이 없을까?
opencode의 플러그인을 만들면 어떨까 생각이 들었다. 그리고 .sessions 같은 디렉토리에 넣어서 git history의 일부로 하고.
에이전트를 백그라운드로 돌리는건 확실히 위험해 보이기 때문에 아직도 메뉴얼 하게 단계별로 확인하고 커밋하는걸 고수 중
AI 코딩 도구 업계에서 매주 새로운 "필수 도구"가 등장합니다. 안 쓰면 뒤처진다는 메시지가 넘쳐나죠.
그런데 모든 AI 서비스 업체가 "AI는 실수할 수 있으니 꼭 확인하라"고 말하면서, 동시에 "에이전트 다섯 개를 병렬로 돌려야 진짜 생산성"이라고 합니다. 이 두 메시지, 동시에 성립할 수 있을까요?
이번 아티클에서 hype의 구조, 백그라운드 에이전트의 HITL 제거 위험, 그리고 Visual Studio 2026 디버거 에이전트가 보여주는 전통적 IDE의 가치를 다뤘습니다.
https://devwrite.ai/ko/posts/ai-coding-tools-fomo/
#AI #AICoding #SoftwareEngineering #DevTools #CodingAgent #VisualStudio #DeveloperProductivity
클로드 코드나 코덱스 등을 쓰면 작업한 데이터가 다시 각 모델의 학습에 쓰일거고 이러면 성능이 떨어지는 오픈웨이트 모델들이 격차를 따라잡는게 더 힘들어진다. 작업 내용을 export해서 오픈데이터셋 등에 쉽게 기여할 방법이 없을까?
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.
Did you know you can get similar concurrency as asyncio/ASGI in Flask, by using gevent? It's been possible as long as Flask has existed! Turns out we never documented it, so how would anyone have known? Fixed that https://flask.palletsprojects.com/en/stable/gevent/ #Python #Flask #gevent
으아 이슈에 답변해야하는데 너무 하기 싫다... 작업이 아닌 정책적인 것이라 하기 싫다...
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 https://ploum.net/2026-01-22-why-no-european-google.html
I would add Henri Dunant (Red Cross, he died in great poverty), Didier Pittet (who invented the hydroalcoolic gel we now use everyday).
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 #fediverse & networking & exploration & circ---you get the idea.
We have the pleasure of having
@hongminhee洪 民憙 (Hong Minhee)
who will give a presentation about @fedifyFedify: ActivityPub server framework "an opinionated #ActivityPub framework for TypeScript that handles the protocol plumbing"
It is an open free event and everyone is welcome!
Here ya go, a full account. https://notes.nora.codes/atproto-again/
언제나 구조를 잡는 것에 어려움을 느꼈는데 무엇을 하면 안되는지를 우선 생각하게 되니까 뭔가 감이 잡히는 것 같기도
종료 시그널이 들어왔을 때 잘 처리되는지, 상위 context가 계속 잘 전파되는지를 확인하는게 관건이긴 하군
컨텍스트 창 크기가 20만 토큰이라는 건 (1대 1로 비교할 수 있는 건 아니고 경우와 사람마다 다르겠지만) 인간 기준으로 어느 정도 느낌을 가지는 크기인지 궁금하다. 한 사람이 가지는 컨텍스트 창은 당연히 무한할 수는 없고 생각보다 그렇게 크지 않을 수도 있다는 얘기도 있다. 예를 들면 개발자도 일할 때 이런 저런 문의와 과제가 쌓이면 “컨텍스트 스위칭” 비용에 대한 불만을 토하기도 하니까.
미국에서 돌아올때쯤에는 해커스펍 리뉴얼 배포되어 있겠지,,,?
내가 누구??? 안드로이드로 해커스펍 클라이언트 뚝딱 만들어서 개밥먹기하는 사람
context 하고 고루틴의 사용이 적절한지 분석하는 방법을 찾아봐야겠다
洪 民憙 (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
February 22nd, Vancouver
- FediCollective: Co-Creating the Web
February 24th, Montreal
- FediMTL: digital sovereignty and the social web
March 2nd, online
- Growing the Open Social Web: An Online FediForum Un-Workshop
March 19th + 20th, Amsterdam
- Nodes on a Web: The Fediverse in/for Public Institutions
July 8th to the 12th, Germany
- DWeb Camp 2026
집에서 홈서버로 몇가지 서비스를 굴리면서 cloudflare tunnel을 사용하지 않던 이유가 몇가지 있는데...
- 캡슐화를 위해 추가 데이터가 덕지덕지 붙어 스루풋에 손해가 있다. 특히 패킷의 크기가 작으면 배보다 배꼽이 더 커진다.
- 목표 서버는 내 방안에 있는데 정작 송신을 하면 패킷이 먼 곳, 심하면 바다를 건너 갔다 올 수 있다. 이걸 막으려면 자체적으로 DNS 서버를 굴려야하는데, 심심하면 서버를 재시작하는데다가 매 장치마다 DNS 설정을 해주는 건 너무 귀찮은 일이다.
- http(s)가 아닌 서비스의 경우(메일서버라던가) 매우 처리가 귀찮아진다. 해결하는 방법이 아예 없는 건 아니지만 그럴 바에야 그냥 포트를 열어주는 게 훨씬 편하다.
사실 위 문제는 cloud native라면 별 문제가 없는 것들이긴 하다만... 아직까지 내 작은 SBC 서버에는 아직 시기상조인 것 같다.
어 뭐야 KMP의 P랑 Pratt parser의 Pratt이 동일인물이라고???
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.
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
어째서 다들 노동자가 아니라 사용자에게 이입하는 걸까…?
Microsoft is handing over Bitlocker keys to law enforcement. https://www.forbes.com/sites/thomasbrewster/2026/01/22/microsoft-gave-fbi-keys-to-unlock-bitlocker-encrypted-data/
この問題について、以前は「優れたソフトウェアエンジニアになるには、英語が一定のレベル以上できなければならない」と考えていましたが、今は考えが変わりました。自国語でも十分にコーディングができるよう、技術的・文化的な土壌が整えられるべきです。














