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
1
1
7

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

OSTEP 독학 일지 - H.0.

Jaeyeol Lee @kodingwarrior@hackers.pub

6년 차 개발자가 기본기를 다지기 위해 OS 기초를 다시 공부하는 여정을 담은 글입니다. 저자는 신입 개발자 수준의 기본기를 갖추기 위해 OSTEP 교재를 선택하고, xv6 프로젝트를 통해 운영체제 동작 원리를 체화하고자 합니다. 이 글에서는 xv6 과제들을 단계별로 공략하며 겪는 우여곡절과 발견, 그리고 이를 통해 얻는 인사이트를 서사적으로 풀어낼 계획을 밝힙니다. 단순히 지식을 정리하는 것을 넘어, 독자에게 재미있는 스토리를 전달하고 기술 면접에도 도움이 될 만한 생생한 경험을 공유하고자 하는 저자의 의지가 돋보입니다. OSSCA 2025 멘토링 경험에서 영감을 받아 시작된 이 여정은, 개발자로서의 성장과 더불어 해커스펍 커뮤니티에도 기여하고자 하는 저자의 열정을 보여줍니다.

Read more →
11

3년 전에 @disjukr 님에게 받아 묵혀두었던 misaka.moe 도메인 어디 쓸만한데 없을까 계속 미루만 있다가 임시로 제 레포지토리에 리다이렉션 걸었습니다. 예) https://misaka.moe/.dotfiles

1
3

를 더 명확하게 관리하기 위해서라도 Relay같은 물건이 필수적으로 보이는데, React 바깥에서 제대로 사용하기 좀 어려워서 고민임

5
5
1

2004年8月5日から始まったエンジニア人生、気づけばもう21年。本当にお疲れ様、21年間の自分。

  • すべてが素晴らしかった会社もあった。
  • 恨みや憎しみでいっぱいだった職場もあった。
  • 良いところも悪いところもあった会社。
  • 給料も退職金も払わなかったひどい会社。
  • ちょっと変わった会社もあったな…。
  • 本当に色々あった、波乱万丈の21年だった。

これからの10年も、自分自身にエールを送りながら――
すべてが思い通りにいくわけじゃないけれど、そんな時こそ、逃げずに、正面からぶつかって、前に進む覚悟で。

2
1
1
1

8月3日(日)にOSC 2025 京都で開催される「Fediverseのつくりかた 〜開発者・管理者たちの現場から〜」セミナーで、「BotKit by Fedify:誰でも簡単に作れるActivityPubボット」というテーマでオンラインにて約10分間発表します。普段からフェディバースボットの制作に興味がある方には、きっと興味深く聞いていただけるのではないかと思います。参加費も無料ですので、ぜひ多くの方のご参加をお待ちしております。

4
3
1
2
2
1
1
1
5
3

We're thrilled to highlight five outstanding contributions from the Korean Open Source Contribution Academy () program participants who have been working on ! Their dedication and effort have significantly enhanced our server framework.

First up is @nyeongAn Nyeong (安寧) with his monumental #318 PR, implementing a SQLite-based key–value store to address #274. This contribution adds the SqliteKvStore class with full cross-runtime support for Node.js, Deno, and Bun through the new @fedify/sqlite package. His implementation includes atomic operations, TTL support, comprehensive test coverage, and careful attention to SQL injection prevention. This enables developers to use SQLite as a persistent storage backend while maintaining compatibility with Fedify's existing KvStore API—a crucial feature for production deployments!

Next, @crohasang크롸상 delivered an excellent quality-of-life improvement with #341 PR, fixing #257. He enhanced the CLI to properly respect TTY status and the NO_COLOR environment variable, implementing intelligent color control across all CLI commands. The solution involved switching from @cliffy/ansi/colors to @std/fmt/colors, creating a helper function using Deno.inspect() to handle object formatting, and ensuring colors are correctly disabled when output is redirected to files. This makes the CLI much more pipe-friendly and suitable for automated workflows!

@meneleHanal Ae contributed a thoughtful enhancement with #342 PR, addressing #191. She updated the fedify inbox command to display not just the activity type, but also the type of object contained within each activity—transforming output like "Create" into the more informative "Create(Note)" or "Undo" into "Undo(Follow)". This seemingly simple change required making the display function asynchronous to fetch the enclosed objects, significantly improving the debugging experience for developers!

@woaol tackled an important developer experience issue with #329 PR, solving #306. Previously, the fedify init command would often install outdated versions of Fedify packages like @fedify/redis because version numbers were hardcoded in the CLI. They created a getLatestVersion() function that dynamically retrieves package versions from local metadata files, ensuring that developers always get the latest versions of all Fedify packages when initializing a new project. This improvement includes comprehensive test coverage and eliminates the frustration of starting a project with outdated dependencies!

Finally, @kodingwarriorJaeyeol Lee made a significant contribution with #309 PR, implementing #269—NestJS integration! They created the @fedify/nestjs package with a FedifyModule that seamlessly integrates Fedify into NestJS applications. This includes proper middleware implementation, dependency injection support through NestJS's module system, and compatibility with both CommonJS and ESM environments. This opens up Fedify to the large NestJS developer community, making it easier than ever to build ActivityPub-enabled applications with this popular enterprise framework!

These contributions showcase the incredible talent and dedication of the OSSCA participants. From core infrastructure improvements to developer experience enhancements, each contribution makes Fedify better for the entire community. Thank you all for your hard work and welcome to the Fedify contributor family! 🚀

We're looking forward to seeing more amazing contributions from the OSSCA program and the broader community. If you're interested in contributing to Fedify, check out our GitHub repository and join us in building the future of federated social web! 🌟

5
0
1
4
6
3

DBMS 같은 데에서 파일을 관리 할 때엔 항상 4096 바이트 단위의 페이지 형태로 관리합니다. 왜그럴까요? 여러가지 이유가 있는데, 보통은 OS도 4096 바이트 단위로 파일 시스템을 관리하기 때문입니다. 그래서 캐시 같은 OS의 여러 가속 장치들의 도움을 받을 수 있죠.

근데 정말로 그럴까요?

그게 궁금해서 직접 한번 페이지 파일 매니저를 구현해서 실험해봤습니다. 통계적으로 유의하게 빠르네요.

페이지 파일 시스템을 사용 할 때, 페이지 크기가 4096인게 가장 빠르다는 실험 결과에 대한 스크린샷.
9
2
1

일하기 좋은 카페/코워킹/워케이션 지도를 개편하게 되서 소식을 공유합니다. 네이버 지도 리스트에 1000개를 넘게 등록할 수 없어서, 지도를 카테고리별로 다시 분리하면서 여러 지도를 편하게 찾아보실 수 있도록 링크트리로 통합 페이지를 만들었습니다. :-D

https://linktr.ee/mogaco

7
3
2
7
3
2

RedBase라고 혹시 아시나요. Stanford에서 교육용으로 학생들이 직접 만들게끔 하는 DBMS인데요, 이걸 Python 버전으로 만들어보고 있습니다. 이름하야 BlueBase. 완성되면 과제용 구현부만 비워둔채로 공유할게요. 많은 기대 바람(?)

5
1
14
0
0

연합우주 연동 기능이 추가되었습니다.

오늘부터 타이포 블루에서 연합우주 기능을 활성화하면 블로그가 연합우주에서 발견 가능해집니다.

마스토돈, 미스키 등 ActivityPub 플랫폼 사용자들이 블로그의 업데이트를 팔로우할 수 있습니다.

연합우주에서의 반응(댓글, 리액션 등)을 타이포 블루에서 받아볼 수 있습니다.

수정 테스트!

5

RxJS의 pipe를 흉내내서 뭔가 만들고 있는데, pipe안에 들어가는 함수가 operation oriented가 되도록 유도한다. 즉, x.pipe(f(y))f(y,x)로 해석되어야하니, f는 data oriented가 아닌 operation oriented가 되어야하는 것이다. 근데, 나도 일반적으로 operation oriented를 선호하긴하지만 JS의 관례는 그게 아니다. 그래서 fpipe를 통해서 쓰지 않을 경우에 어떤 사람들은 생소하게 느낄거 같다. 나는 xthis 처럼 사용되고(data oriented), pipe는 메소드 확장의 역할을 맡게 하고 싶다.

어떻게 하는게 맞을까?

1
7

8月3日(日)にOSC 2025 京都で開催される「Fediverseのつくりかた 〜開発者・管理者たちの現場から〜」セミナーで、「BotKit by Fedify:誰でも簡単に作れるActivityPubボット」というテーマでオンラインにて約10分間発表します。普段からフェディバースボットの制作に興味がある方には、きっと興味深く聞いていただけるのではないかと思います。参加費も無料ですので、ぜひ多くの方のご参加をお待ちしております。

3
0
0
3

요즘 gemini-cli를 많이 쓰고 있는데 이게 TUI라서 복붙 같은 것도 미묘하게 잘 안 되고 텍스트도 깨지고 하는 게 짜증난 나머지 내 코딩 에이전트를 만들겠답시고 Angel이라는 걸 만들기 시작했다. https://github.com/lifthrasiir/angel

소프트웨어 스택은 Go + TypeScript + React. 프론트엔드를 내가 만들어도 되지만 사실 React에 그렇게 자신이 있는 건 아니라서 100% 바이브 코딩을 해 보겠다는 목표로 하고는 있는데 결국 디버깅은 내가 다 하고 있다는 함정이 있다. 이를테면 사진에 나와 있는 코드는 JS에서 String.prototype.split이 받는 limit 인자의 해석 관련된 질문인데 이거랑 관련된 버그로 2시간 정도를 날렸다. (JS는 놀랍게도 'a,b,c'.split(',', 2) 하면 ['a','b']가 나온다. ['a','b,c']가 아니라!!!! 그럼 왜 처음에 그렇게 짜 줬는데???)

Angel의 2025-08-01 현재 스크린샷. 좌측에 New Session, Settings 버튼 및 세션 목록이 있다. 오른쪽에는 주황색 시스템 프롬프트, 초기 사용자 입력, 생각 거품(12개 중 7번째가 선택되어 보여지고 있음), 에이전트 출력, 그리고 후속 사용자 입력까지가 보이며, 그 하단에는 파일 첨부 버튼, 사용자 입력 칸(여러 줄 지원), 그리고 Send 버튼이 표시된다.

사용자 입력:
다음 코드가 [...] const [type, data] = eventString.slice(6).replace(/\ndata: /g, '\n').split('\n', 2); [...] 다음과 같은 로그를 출력하는 문제를 고쳐 줘. [...]

에이전트 출력:
The problem stems from the `split('\n', 2)` part of your code. This function limits the split to a maximum of two parts. When `eventString` is processed, `type` correctly captures the first part (`M`), but `data` only captures the content until the *next* newline, effectively truncating the rest of your message.

To fix this, we need to first remove all the `data: ` prefixes from the `eventString` and then split the resulting string into `type` (the first line) and `data` (all subsequent lines).

Here's the corrected code:
5
0
5
0

시간이 지날 수록 Cursor랑 대화할 때 사용하는 주어가 바뀌는게 재밌네.

  • 초반에는 "나 지금 XX를 만들고 싶어" 와 같은 식으로, 내가 작업의 메인이니까 넌 검색해와 같은 느낌에 가까웠다.
  • 조금 익숙해지니까 점점 "너가 XX를 만들어 와" 라고 일을 위임하는 어조로 바꼈다.
  • 그러다가 오늘 코드를 지칭할 때 무의식적으로 "우리가 만든 코드"라는 표현을 사용했다. 개발 사이클을 여러 번 돌리다보니 공동 저작물이라는 인식이 나도 모르게 생겼나보다.
4
4