I think the @fedifyFedify: an ActivityPub server framework project has now reached full maturity. What this means is that all the low-hanging fruit has been addressed, and only the difficult problems remain. 😂

洪 民憙 (Hong Minhee)
@hongminhee@hackers.pub · 566 following · 372 followers
Hi, I'm who's behind Fedify, Hollo, BotKit, and this website, Hackers' Pub!
Fedify, Hollo, BotKit, 그리고 보고 계신 이 사이트 Hackers' Pub을 만들고 있습니다.
Website
- hongminhee.org
GitHub
- @dahlia
Hollo
- @hongminhee@hollo.social
DEV
- @hongminhee
velog
- @hongminhee
Qiita
- @hongminhee
Zenn
- @hongminhee
Matrix
- @hongminhee:matrix.org
X
- @hongminhee
https://github.com/mastodon/mastodon/pull/34964/files
마스토돈에 알고리즘 기반의 계정 팔로 추천 기능이 4.4에 들어갈 예정이라고 한다........
레일즈 기반의 Fasp(Fediverse Auxiliary Service Provider) 프로바이더 구현체를 어디선가에서는 공유했던 것 같은데, 기억이 가물가물하다.
팔자에 없던 C++ 시즌 2. 심지어 이번에는 녹도 슬지 않은 순수한 모오던 C++.
사실 C++보다는 CMake를 써야 한다는 점이 좀 더 고통스럽다.
팔자에 없던 C++ 시즌 2. 심지어 이번에는 녹도 슬지 않은 순수한 모오던 C++.
@hongminhee洪 民憙 (Hong Minhee)
@bglbgl gwyng Haskell에도
fromJust
같은 함수가 있는 것과 비슷한 이유가 아닐까 싶습니다. segfault를 내거나 다른 해로운 일이 일어나지 않는 대신 즉시 종료되어 주기는 한다는 점에서 적어도 null 포인터보다는 낫기도 하고요.
@kroisse크로이세
@bglbgl gwyng 네, 그런데
fromJust
보다 Option::unwrap()
이 훨씬 많이 쓰인다는 느낌이 있습니다. 🤔
시간과 열정만 있었다면 이걸 아이템으로 디자인 도구 만드는 스타트업을 하는 건데…
컴파일 한 번 할 때마다 푸시업을 10번씩 해야겠다...
Hackers' Pub을 사용하면서 연합우주(fediverse) 뿐만 아니라 Bluesky 사람들과도 교류하고 싶으신 분들은 Bridgy Fed라는 서비스를 사용해 보시면 좋을 것 같습니다. Hackers' Pub 계정 생성 후 2주가 지난 분들만 사용 가능하긴 한데요.[1]
@bsky.brid.gyBridgy Fed for Bluesky 계정을 팔로하시면 Bluesky 쪽에 일종의 미러링 계정이 생성되게 됩니다. 성공적으로 Bluesky 미러가 생기면
@bsky.brid.gyBridgy Fed for Bluesky 계정이 맞팔을 해 올 겁니다.
예를 들어 제 @hongminhee洪 民憙 (Hong Minhee) 계정으로
@bsky.brid.gyBridgy Fed for Bluesky 계정을 팔로하면, Bluesky 쪽에 @hongminhee.hackers.pub.ap.brid.gy라는 계정이 생기는 식입니다. 그러면 Bluesky 쪽 사람들이 해당 계정을 멘션하거나, 댓글을 달거나, 인용을 하면 Hackers' Pub에서 그게 보이게 됩니다. 서로 팔로도 할 수 있고요.
타임라인쪽은 대충 반쯤?하다가 메인 기능 먼저 넣어야 할 것 같아서 (글 쓰기 기능) 쓰레드 페이지 만드는 중이에요
지금 문제: 멘션이 여러 개일 경우엔 무슨 기준으로 child 멘션을 선택하는가
- parent 있으면 위에 그려줘야함
@hongminhee洪 民憙 (Hong Minhee) transifex를 통해서 할 방법은 없나보네요,,, django 자체에 저 기능을 추가해야할지,,,
@theeluwin제이미 Django 자체에 국제화 기능이 있는 거죠? 어떻게 잘 하면 통합이 가능할 것 같긴 한데요… 🤔
transifex로 django 번역을 좀 더 하고 있는데요, 을를이가를 어떻게 처리하는게 좋을까요? 조사를 전부 빼는것도 능사는 아닌것 같은데...
transifex로 django 번역을 좀 더 하고 있는데요, 을를이가를 어떻게 처리하는게 좋을까요? 조사를 전부 빼는것도 능사는 아닌것 같은데...
@theeluwin제이미
korean
같은 패키지를 활용하셔야 하지 않을까요?
洪 民憙 (Hong Minhee) shared the below article:
Vibe Writing

Minyoung Jeong @kkung@hackers.pub
Hammerspoon과 OpenAI API를 활용하여 맥에서 선택한 텍스트를 즉시 번역하는 스크립트를 소개합니다. 이 스크립트는 Cmd+Shift+K 단축키를 통해 선택된 텍스트를 OpenAI의 GPT-4o 모델을 사용하여 한-영 또는 영-한 번역을 수행하고, 번역된 텍스트로 선택 영역을 자동으로 대체합니다. Accessibility API를 활용하여 텍스트 선택 및 대체 과정을 자동화했으며, OpenAI API를 호출하여 고품질 번역을 제공합니다. Vibe coding을 통해 개발하려 했으나, API 문제로 직접 구현했으며, 이 스크립트를 통해 영문 작성 시 번거로움을 줄이고 생산성을 향상시킬 수 있습니다.
Read more →Bun이 자꾸 웹 표준 API 사이에 슬쩍 비표준 API 추가하는 게 마음에 안 든다.
If you're building a JavaScript library and need logging, you would love LogTape https://hackers.pub/@hongminhee/2025/logtape-for-libraries
If you're building a JavaScript library and need logging, you'll probably love LogTape
LogTape offers a novel approach to logging in JavaScript libraries, designed to provide diagnostic capabilities without imposing choices on users. Unlike traditional methods such as using debug packages or custom logging systems, LogTape operates on a "library-first design" where logging is transparent and only activated when configured. This eliminates the fragmentation problem of managing multiple logging systems across different libraries. With zero dependencies and support for both ESM and CommonJS, LogTape ensures minimal impact on users' projects, avoiding dependency conflicts and enabling tree shaking. Its universal runtime support and efficient performance make it suitable for various environments. By using a hierarchical category system, LogTape prevents namespace collisions, offering a seamless developer experience with TypeScript support and structured logging patterns. LogTape provides adapters for popular logging libraries like Winston and Pino, bridging the transition for users invested in other systems. Ultimately, LogTape offers a way to enhance library capabilities while respecting users' preferences and existing choices, making it a valuable consideration for library authors.
hackers.pub · Hackers' Pub
Link author: 洪 民憙 (Hong Minhee)@hongminhee@hackers.pub
In just a few days, the LogTape repository's star count has skyrocketed past Fedify's repository stars…
Tailscale에 Airdrop 비슷한 기능인 Taildrop이라는 게 생겼는데, 유용해 보인다!
갤럭시 S22 중고 공기계를 구해서 F-droid 부터 termux 까지 뚝딱뚝딱 설치중입니다. 목표는 현 재직중인 회사의 매우 기묘한 개발 환경을 이식하는 건데, 솔직히 잘 될 지는 모르겠습니다.
예전(6년 전)엔 Raspberry Pi 2 위로 올리려고 첫 시도했던 시절엔 MongoDB 설치 문제 등을 쉽게 풀지 못해서 금방 포기했던 기억이 나네요.
일단 넘어야 할 산으로는 아래와 같은 것들이 있습니다.
- crosstool-ng 잘 써서 Arm에서 x64 컨테이너 이미지 빌드 가능한 상황 만들기
... 첫 번째 산부터 뭔가 넘기 힘들어 보이는데, 그냥 스트레스 푸는 방식을 바꿀까...
요즘 함수 적용Apply에 꽂혀서, 처음 보는 프레임워크 코드들을 Apply 위주로 읽으니 그럴싸합니다. 그래서, Apply 생각 일부를 정리했습니다. 함수형 프로그래밍 언어도 익숙하지 않은 외국어와 비슷한 느낌이라, 코드들을 정확히는 몰라도 일단 통밥으로 읽는 방법을 계속 훈련 중입니다.
Apply - 이펙트가 있는 함수들을 연이어 적용하고 싶어
Apply - Price와 (exRate -> Price)를 다루는 프로그램의 골격을 똑같이 하고 싶어
해커스펍에 바로 올릴까 했는데, 읽어보니 조금 더 정돈하고 올리고 싶다는 생각이 들어, 개인 블로그에 먼저 올립니다.
잘 못만든 선언형 인터페이스보다는 잘 못만든 명령형 인터페이스가 낫다. 후자는 피똥싸면서 뭔가를 어찌저찌 해낼순 있는데, 전자는 아예 뭔가를 하는게 불가능한 경우가 많다.
내일 모각코가 매우 기대되는구만요
토스페이먼츠 결제 시스템 연동을 돕는 MCP 서버 구현기
토스페이먼츠 문서를 로컬 MCP로 제공하고자 거친 모든 의사 결정 과정이 공유되어 있습니다.
문서 내 키워드 관련성 분석을 미리 거친 Machine-Readable 한 청크 저장소를 구축하는 노력이 가장 흥미로웠네요.
방금 또 빌드 캐시 삭제를 일찌감치 시도해보지 않는 오만함 때문에 1시간을 허비했다ㅠㅠ
https://open.longportapp.com/docs/llm 최근 https://github.com/laukikk/alpaca-mcp 도 그렇고 아에 broker API 단에서 MCP 지원하니까 개인이 트레이딩 봇 만드는 것도 조만간 더 일상화되지 않을까 싶다. 국내 증권사 API 보면 언제쯤 움직일까 싶지만, 그래도 예전에 비해선 REST API 를 여는 방향으로 가고 있으니, 개발팀이건 유저건 누군가는 비슷한 작업을 할듯.
(트위터에 버릇처럼 글을 썼다가 여기 계정이 있다는 것을 생각하고.. 다음부턴 개발 관련 끄적임은 좀 의식적으로 여기에 써보기로..)
https://gpui.rs 는 zed 의 UI framework 인데, 이거 기반으로 desktop ui 프로젝트 시도도 있는듯. https://github.com/longbridge/gpui-component https://longbridge.com/desktop/ zed 가 지금은 한글 입출력이 좋은 것 처럼, iced, egui 에 비해 한글 입출력도 좋을거라 생각. 그나저나 longbridge 는 홍콩 회사인 것 같은데 gpui 를 굳이 저정도로(?) 썼다. 물론 이런 작업 굳이 한 쪽으로는 iced 개발자가 있는 cryptowatch 도 있긴 하다 (kraken 에 인수인데 desktop app 이 rust + iced)
egui 의 경우 사실 https://github.com/topki0325/egui-chinese-font/blob/ce80cb38b4d12e2542a6be2ddbaf5ca213e88a31/src/lib.rs#L126 폰트 문제에 가까운 것 같긴 함 (저 경로에 대해 걍 산돌고딕 폰트 경로 잡아주면 한글 출력도 되고 입력도 됨)
보통 이거 조사할 때 즈음이 '웹보다 반응 빠르고 실시간 데이터 분석하기 좋은 네이티브 기반의 트레이딩 시스템 클라이언트' 이런 느낌으로 조사하다가, 결국 시스템을 잘 디자인 하면 '결국 트레이딩 봇들이 늘어나면 자연스럽게 안쓰는' 무엇이 되버리는. 차트, 호가창은 심연과 같아서 사람이 들여다보고 있으면 안되기 때문에..
(트위터에 버릇처럼 글을 썼다가 여기 계정이 있다는 것을 생각하고.. 다음부턴 개발 관련 끄적임은 좀 의식적으로 여기에 써보기로..)
https://gpui.rs 는 zed 의 UI framework 인데, 이거 기반으로 desktop ui 프로젝트 시도도 있는듯. https://github.com/longbridge/gpui-component https://longbridge.com/desktop/ zed 가 지금은 한글 입출력이 좋은 것 처럼, iced, egui 에 비해 한글 입출력도 좋을거라 생각. 그나저나 longbridge 는 홍콩 회사인 것 같은데 gpui 를 굳이 저정도로(?) 썼다. 물론 이런 작업 굳이 한 쪽으로는 iced 개발자가 있는 cryptowatch 도 있긴 하다 (kraken 에 인수인데 desktop app 이 rust + iced)
egui 의 경우 사실 https://github.com/topki0325/egui-chinese-font/blob/ce80cb38b4d12e2542a6be2ddbaf5ca213e88a31/src/lib.rs#L126 폰트 문제에 가까운 것 같긴 함 (저 경로에 대해 걍 산돌고딕 폰트 경로 잡아주면 한글 출력도 되고 입력도 됨)
@hongminhee@hackers.pub洪 民憙 (Hong Minhee)
@bgl@hackers.pubbgl gwyng 만약 None이라면 명시적으로 패닉을 내게끔 하는 것도 의도에 있다고 봐요. 패닉이 안 나야한다면 말씀하신대로 unwrap_or 등을 활용하는 편이 낫지만, 패닉을 내고 싶을 수 있죠. 그리고 미약하지만 최적화에도 도움이 된다고 들었어요.
저는 의외로 'unwrap'이라는 키워드가 명시적으로 있는게 코드를 검색할때나 읽을때나 매우 도움되더라구요
@pbzweihander쯔방
@bglbgl gwyng 음… 하지만 이 대화의 맥락을 봤을 때는 Prisma는 패닉이 나서는 안 되는 상황에 패닉이 난 것 아닌가요? (사실 패닉이 나야 하는 상황이라는 게 저수준 시스템 프로그래밍 제외하면 언제 있을지 잘 모르겠습니다.)
@bgl@hackers.pubbgl gwyng
@hongminhee@hackers.pub洪 民憙 (Hong Minhee) unwrap을 '죄책감'으로 취급하기에는 저는 unwrap을 명시적으로 부를 수 있다는게 오히려 큰 장점이라고 생각해요. panic이 나면 버그인거고, 그 버그를 트래킹할 때 unwrap을 부른 부분만 조사하면 되니까 인지하기 쉬우면서, 버그가 일어나지 않는 상황에서는 분기를 줄여서 가독성이 향상되니까요.
@pbzweihander쯔방
@bglbgl gwyng 저는 그냥 null coalescing을 잘 하면 되는데 왜 unwrap을 할까 하는 생각에 가까운 것 같아요.
@bglbgl gwyng Haskell 쓰던 사람으로서
Option::unwrap()
같은 걸 쓸 거면 어째서 Option
타입을 만들어서 쓰는 걸까 싶은 생각이 들 때가 있습니다…
@hongminhee洪 民憙 (Hong Minhee) 최선을 다하고나서 결국 임시 땜빵으로
Option::unwarp
쓰고 FIXME 달아 놓으면 이해는 갑니다만... 예전에본 러스트 튜토리얼에선 unwrap을 막 쓰더라고요? 단지 null 포인터의 다른 이름이고 Option::unwarp
은 if ptr == null then panic
느낌으로요.
하다하다 Prisma의 Rust PANIC도 다 보는구나
PANIC: called `Option::unwrap()` on a `None` value
억까 그만해!!!
하다하다 Prisma의 Rust PANIC도 다 보는구나
PANIC: called `Option::unwrap()` on a `None` value
억까 그만해!!!
@bglbgl gwyng Haskell 쓰던 사람으로서
Option::unwrap()
같은 걸 쓸 거면 어째서 Option
타입을 만들어서 쓰는 걸까 싶은 생각이 들 때가 있습니다…
〈OSSCA: Fedify 프로젝트 기여자들을 위한 안내〉(가제)라는 글을 쓰고 있는데 점점 길어지고 있다…
Gemini CLIを使ってみた
@cocoa甘瀬ここあ 個人的にはClaude Codeほど賢くないようで、がっかりしました。😅
카네기멜런 조교수가 권장하는 "모든 개발자들이 해보면 좋은 프로젝트"
텍스트 에디터
- 구현에 사용되는 자료구조 (gap buffer, piece table 등)
- undo, redo 를 사용하는 메멘토 패턴
2d game
- 상태머신 관리
- 컴퓨터 주변기기를 제어하는 방법
컴파일러
- lexical parsing
- syntatic parsing
- code generation
작은 운영체제
- 스케쥴링
- 부트로딩
- 메모리관리 및 페이징
- 파일시스템
스프레드시트
- directed graph (주로 topological sort)
- reactive programming paradigm
비디오게임 콘솔 에뮬레이터
- 컴파일러, 운영체제, 게임엔진 등등의 챌린지를 한번에 짬뽕
그 외에도 데이터베이스 직접 만들기, 그림판 직접 만들기, 터미널 유틸리티 직접 만들기
마틴파울러 블로그에서도 Agentic Coding에 대한 글이 꾸준히 연재되고 있는듯. 정제도 되어있고 한번에 모여있어서 좋다. https://martinfowler.com/articles/exploring-gen-ai.html
Javascript Weekly 뉴스레터에 @hongminhee洪 民憙 (Hong Minhee) 님의 Logtape가 소개되었습니다
Gemini CLIを使ってみた
@bglbgl gwyng 근데 암묵지는 암묵지라서 스스로 인식하기 어렵다고 하더라고요. 암묵지를 이끌어내는 전문가들이 따로 있다고 들었어요.
@hongminhee洪 民憙 (Hong Minhee)
@bglbgl gwyng 지나가다 관심 있는 주제가 보여 의견을 드려보아요. 사실 전문가가 전문성을 발휘하는 데에는 암묵지가 많아도 문제가 없는데, 전문성을 남에게 설명하거나 교육해야 할 때에는 어려움을 크게 높이는 요소가 됩니다. 그래서 홍님이 말씀하신 암묵지를 이끌어내는 전문가들은 인지 작업 분석(CTA) 같은 기법을 사용하기도 하는데요. bgl 님이 멘토링을 하고 계신다는 걸 보면 이미 어떤 식으로든 교육을 위해 암묵지를 많은 부분 명시지화 하셨을 것 같기도 해요. 물론 홍님 말대로 암묵지는 암묵지인 것일 수도 있겠지만요. 😅
CPython 저장소에는 라벨을 달아놓으면 백포팅 PR을 알아서 만들어주는 봇이 있다 😲
https://github.com/python/cpython/pull/136027#issuecomment-3013426273
관련 이슈에도 알아서 PR 링크 걸어준다 😮
CPython 저장소에는 라벨을 달아놓으면 백포팅 PR을 알아서 만들어주는 봇이 있다 😲
https://github.com/python/cpython/pull/136027#issuecomment-3013426273
나만의 연합우주 마이크로블로그 만들기

洪 民憙 (Hong Minhee) @hongminhee@hackers.pub
이 튜토리얼은 Fedify를 사용하여 ActivityPub 프로토콜을 구현하는 마이크로블로그를 만드는 과정을 안내합니다. Fedify는 연합 서버 앱 개발의 복잡성을 줄이고, 개발자가 비즈니스 로직에 집중할 수 있도록 돕는 TypeScript 라이브러리입니다. 튜토리얼에서는 Node.js, npm, Hono 등의 개발 환경을 설정하고, SQLite 데이터베이스를 구축하여 계정 생성, 프로필 페이지, 액터 구현, 암호 키 관리, 팔로우 기능, 게시물 작성 및 타임라인 구현 등 마이크로블로그의 핵심 기능을 단계별로 구현합니다. 특히 ActivityPub.Academy 서버를 활용하여 실제 연합우주 환경에서의 연동을 테스트하고, Mastodon과의 호환성을 확인합니다. 마지막으로, 보안 및 기능 개선을 위한 추가 과제를 제시하며, 독자가 프로젝트를 확장할 수 있도록 안내합니다. 이 튜토리얼을 통해 독자는 Fedify를 활용하여 ActivityPub 기반의 분산 소셜 네트워크 서비스를 구축하는 기본적인 이해를 얻을 수 있습니다.
Read more →그동안 멘토링하면서 느낀게, 나한테 암묵지가 별로 없다는 것이다. 전문가는 암묵지가 많다는데, 나는 내 스스로가 매우 간단한 휴리스틱으로 동작한다고 느낀다. 난 전문가가 아닌건가? 내가 그동안 쌓아온 것은 암묵지라기보단 어떤 특정한 사안에 대한 강한 믿음들인거 같다.
그동안 멘토링하면서 느낀게, 나한테 암묵지가 별로 없다는 것이다. 전문가는 암묵지가 많다는데, 나는 내 스스로가 매우 간단한 휴리스틱으로 동작한다고 느낀다. 난 전문가가 아닌건가? 내가 그동안 쌓아온 것은 암묵지라기보단 어떤 특정한 사안에 대한 강한 믿음들인거 같다.
@bglbgl gwyng 근데 암묵지는 암묵지라서 스스로 인식하기 어렵다고 하더라고요. 암묵지를 이끌어내는 전문가들이 따로 있다고 들었어요.
이번 jpeg 회의는 대전에서 한다는군...
洪 民憙 (Hong Minhee) shared the below article:
OX 테스트 당신은 책중독자인가?

박준규 @curry@hackers.pub
이 글은 톰 라비의 《어느 책중독자의 고백》을 인용하여 독자가 스스로를 "책중독자"로 진단해볼 수 있는 간단한 OX 테스트를 제공합니다. 모르고 같은 책을 두 번 산 적이 있는지, 표지 디자인만 보고 책을 구매한 적이 있는지 등 10가지 질문을 통해 독자 스스로가 책에 대한 애정을 어느 정도 가지고 있는지 되돌아보게 합니다. 이 테스트는 가벼운 마음으로 자신의 독서 습관을 재미있게 평가해보고, 책에 대한 애정을 다시 한번 확인하는 계기를 마련해줍니다.
Read more →gemini-cli 이것저것 만져보는 중인데, gemini-2.5-pro
의 코드 수정능력이 생각보다 괜찮아서 좀 더 써볼 것 같다. VSCode 의 Gemini Code Assist 보다는 만족감이 더 높다. 다만 이미지 분석 용도는 아닌 것 같고. 코딩 용도로 쓰면 괜찮을 것 같다.
사용자의 실수였다고 한다. (미안해요. 구글.)