Profile img

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).

FedifyHolloBotKit、そしてこのサイト、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
2
1
4

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

한국의 eSIM 정책 문제점 분석

푸른곰 @purengom@purengom.com

서론 해외에서는 새 기기를 켜고 액티베이션 마법사만 따라가면 eSIM이 자동으로 이전되는 경험이 보편화되어 있습니다. 반면 한국은 여전히 IMEI/EID 전산 등록과 재다운로드 수수료(2,750원)가 당연한 절차로 남아 있습니다. 저는 이 구조가 보안 명분을 앞세운 과도한 통제이며, 결과적으로 소비자에게 비용과 불편을 전가한다고 판단합니다. 1) 자동 이전이 ‘가능한 […]

Read more →
4

https://keivan.io/the-day-appget-died/

윈도 패키지 매니저 AppGet의 개발자가 WinGet 개발 과정에서 접촉했던 경험을 쓴 글.

MS가 오픈소스 친화적으로 바뀌고 있다고 하지만, 여전히 내부 문화가 매우 관료적이고 사내 정치가 toxic하다고 유명한데, 독립 개발자로서 MS와 컨택하는 일이 어떤 것인지 잘 알려주는 사례라고 봄.

Special thanks 한 줄만 적어줬어도 그가 분노하지는 않았겠지만, 그 한 줄 넣기가 어려운 게 Microsoft겠지.

1

쿼리도 뮤테이션도 프래그먼트도 내부스토어관리도 만들었다... 이제 개인용도 정도로는 사용할만 하지 않을까??? 그치만 relay-compiler 의존성을 버리고 싶다... 얘가 svelte 파일은 무시하고 쿼리도 무슨 리액트에나 맞는 이상한 네이밍 강요하고 수정해보려 해도 RIIR 당해서 플러그인 시스템도 사라지고 참별로다... 역시 페이스북이 만든 모든건 웹 생태계를 자기 중심에 맞추기 위한 음모다... (아무말)

2

일단 첫번째 목표였던 SvelteKit SSR에 맞게 load 함수에서 쿼리하게 만드는덴 성공했다... 이제 캐시 업데이트와 relay-compiler를 때려서 svelte 파일도 컴파일하도록 만들기와 그외등등이 남았다...

쿼리도 뮤테이션도 프래그먼트도 내부스토어관리도 만들었다... 이제 개인용도 정도로는 사용할만 하지 않을까??? 그치만 relay-compiler 의존성을 버리고 싶다... 얘가 svelte 파일은 무시하고 쿼리도 무슨 리액트에나 맞는 이상한 네이밍 강요하고 수정해보려 해도 RIIR 당해서 플러그인 시스템도 사라지고 참별로다... 역시 페이스북이 만든 모든건 웹 생태계를 자기 중심에 맞추기 위한 음모다... (아무말)

2
3
3

우부콘 코리아 2025에서 **"연합우주(Fediverse)란 무엇인가"**를 주제로 소개하는 세션을 가졌었는데, 그 때 쓰던 발표자료 한번 만들어놓으니까 "연합우주는 이런겁니다" 하고 던져주기 좋은 듯.....

발표자료는 여깄다네요... https://slides.kodingwarrior.dev/fediverse-onboarding-ubucon2025.pdf

13
0
1
4
1

I just published a blog post on the use of type-level programming in TypeScript. It was originally a section of the larger post I’ve been alluding to but I broke it out and expanded it. It’s much more of an opinion piece than most things I write but I’d like to think I have a few decent insights in there. Please check it out and let me know what you think.

jnkr.tech/blog/expressive-type

1
4
1
8
4

거의 반은 내가 기여했네 ㅎㅎ

  • @fedify/fedify: Custom Collection 디스패처 setter
  • @fedify/cli: webfinger 커맨드
  • @fedify/next: 패키지 제작 및 예제 생성
  • @fedify/sveltekit: 패키지 분리, 타입 수정 및 예제 생성
  • @fedify/cfworkers, @fedify/denokv, @fedify/hono: 패키지 분리
12

The monorepo has grown to 16 packages!

We've been working hard to make Fedify more modular and easier to integrate with your favorite tools and platforms. From the core framework to database drivers, from CLI tools to web framework integrations—we've got you covered.

Our packages now include:

  • Core framework and CLI tools
  • Web framework integrations: Express, Hono, H3, Elysia, NestJS, Next.js, SvelteKit
  • Database drivers: PostgreSQL, Redis, SQLite, AMQP/RabbitMQ
  • Platform integrations: Cloudflare Workers, Deno KV
  • Testing utilities

Each package is available on JSR and/or npm, making it easy to pick exactly what you need for your ActivityPub implementation.

What integration would you like to see next? Let us know!

A table showing 16 Fedify packages with three columns: Package name, registry availability (JSR and npm links), and Description. The packages include the core @fedify/fedify framework, CLI toolchain, database drivers (PostgreSQL, Redis, SQLite, AMQP/RabbitMQ), web framework integrations (Express, Hono, H3, Elysia, NestJS, Next.js, SvelteKit, Cloudflare Workers), Deno KV integration, and testing utilities. Most packages are available on both JSR and npm registries, with some exceptions like @fedify/denokv (JSR only) and @fedify/elysia, @fedify/nestjs, @fedify/next (npm only).
1
0
1

https://well-typed.com/blog/2025/08/standard-chartered-supports-haskell-ecosystem/
제일은행을 먹은 SC(Standard Chartered)가 하스켈 생태계에 돈을 보태겠다네요. SC가 하스켈을 프로덕트에 조금씩 쓰고 있다는 얘기는 들은 적 있는데... 뭐 얼마나 후원하는지는 자세히는 안나와 있습니다만, 대기업 돈이 들어오면, 긍부정적 변화가 생기긴 하는데.. 툴체인이 정돈된다든지 해서 입문자한테 도움이 되는 변화가 생기면 좋겠습니다. 하스켈을 JS로 트랜스파일링 하는 컴파일러도 있는데, 막상 쓰려고 보면, 난이도가 너무 높아요.

6
2
0

진짜 디자인 하고싶은대로 다 하고 있는데, 누군가가 보다 못해서 "차라리 내가 하고 만다" 하고 자원을 해주지 않을까(?)

8

Zed Industries가 코드 에디터와 코딩 에이전트 사이의 통신을 표준화하기 위해 Agent Client Protocol (ACP)이라는 걸 소개했다. 잘 돼서 Neovim의 AI 통합 생태계가 더욱 풍성해지면 좋겠다. agentclientprotocol.com/overvi

6
5
7
0
4
5

일요일은 오픈업 가서 페디파이 토요일은 정해진 건 없지만... 튜사에 페디파이 팀원들 많이 가면 튜사 가볼까 고민 중

2

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

React - useCallback & useMemo Misuse

Shahar Amir @shaharamir@hackers.pub

The `useCallback` and `useMemo` hooks in React are designed to optimize performance by memoizing functions and values, but using them indiscriminately can lead to unnecessary overhead. These hooks are beneficial when dealing with expensive calculations or when passing stable references to deeply nested child components. However, for simple operations like basic arithmetic or simple function declarations, the memoization provided by these hooks adds complexity without any performance gain. Overusing `useMemo` and `useCallback` introduces extra CPU cycles and can confuse developers, making the code harder to maintain. It's more efficient to apply these hooks selectively, focusing only on the parts of your application where they provide a tangible benefit, ensuring that React remains fast and your code stays clean.

Read more →
5

Hi there 👋

I’m Jaeyeol, a software engineer who loves Neovim and Zed. I see myself as a pragmatic builder — I focus on creating software that I’d genuinely want to use, made for people rather than for technology’s sake. Beyond coding, I also experiment actively within developer communities, often initiating gatherings and exploring new ways for people to connect and share.

One of my current personal projects happens to be in the fediverse space: cosmoslide — a slideshare-like service for sharing presentations across the fediverse. It’s built with NestJS (@fedify/nestjs) for the backend, Next.js for the frontend (most of it is vibe-coded, so I’ll probably rewrite it later 😅)

The project is still in development, with an expected first release between late September and mid October. It started as a personal experiment, but I’m excited to see how it may contribute to the broader fediverse ecosystem.

I enjoy meeting others who are curious about new ideas, whether in technology or in community.

6
1
6
2
2

We're excited to announce the release of BotKit 0.3.0! This release marks a significant milestone as now supports .js alongside , making it accessible to a wider audience. The minimum required Node.js version is 22.0.0. This dual-runtime support means you can now choose your preferred runtime while building with the same powerful BotKit APIs.

One of the most requested features has landed: poll support! You can now create interactive polls in your messages, allowing followers to vote on questions with single or multiple-choice options. Polls are represented as ActivityPub Question objects with proper expiration times, and your bot can react to votes through the new onVote event handler. This feature enhances engagement possibilities and brings BotKit to feature parity with major platforms like Mastodon and Misskey.

// Create a poll with multiple choices
await session.publish(text`What's your favorite programming language?`, {
  class: Question,
  poll: {
    multiple: true,  // Allow multiple selections
    options: ["JavaScript", "TypeScript", "Python", "Rust"],
    endTime: Temporal.Now.instant().add({ hours: 24 }),
  },
});

// Handle votes
bot.onVote = async (session, vote) => {
  console.log(`${vote.actor} voted for "${vote.option}"`);
};

The web frontend has been enhanced with a new followers page, thanks to the contribution from Hyeonseo Kim (@gaebalgom개발곰)! The /followers route now displays a paginated list of your bot's followers, and the follower count on the main profile page is now clickable, providing better visibility into your bot's audience. This improvement makes the web interface more complete and user-friendly.

For developers looking for alternative storage backends, we've introduced the SqliteRepository through the new @fedify/botkit-sqlite package. This provides a production-ready SQLite-based storage solution with ACID compliance, write-ahead logging (WAL) for optimal performance, and proper indexing. Additionally, the new @fedify/botkit/repository module offers MemoryCachedRepository for adding an in-memory cache layer on top of any repository implementation, improving read performance for frequently accessed data.

This release also includes an important security update: we've upgraded to 1.8.8, ensuring your bots stay secure and compatible with the latest ActivityPub standards. The repository pattern has been expanded with new interfaces and types like RepositoryGetMessagesOptions, RepositoryGetFollowersOptions, and proper support for polls storage through the KvStoreRepositoryPrefixes.polls option, providing more flexibility for custom implementations.

2

We're excited to announce the release of BotKit 0.3.0! This release marks a significant milestone as now supports .js alongside , making it accessible to a wider audience. The minimum required Node.js version is 22.0.0. This dual-runtime support means you can now choose your preferred runtime while building with the same powerful BotKit APIs.

One of the most requested features has landed: poll support! You can now create interactive polls in your messages, allowing followers to vote on questions with single or multiple-choice options. Polls are represented as ActivityPub Question objects with proper expiration times, and your bot can react to votes through the new onVote event handler. This feature enhances engagement possibilities and brings BotKit to feature parity with major platforms like Mastodon and Misskey.

// Create a poll with multiple choices
await session.publish(text`What's your favorite programming language?`, {
  class: Question,
  poll: {
    multiple: true,  // Allow multiple selections
    options: ["JavaScript", "TypeScript", "Python", "Rust"],
    endTime: Temporal.Now.instant().add({ hours: 24 }),
  },
});

// Handle votes
bot.onVote = async (session, vote) => {
  console.log(`${vote.actor} voted for "${vote.option}"`);
};

The web frontend has been enhanced with a new followers page, thanks to the contribution from Hyeonseo Kim (@gaebalgom개발곰)! The /followers route now displays a paginated list of your bot's followers, and the follower count on the main profile page is now clickable, providing better visibility into your bot's audience. This improvement makes the web interface more complete and user-friendly.

For developers looking for alternative storage backends, we've introduced the SqliteRepository through the new @fedify/botkit-sqlite package. This provides a production-ready SQLite-based storage solution with ACID compliance, write-ahead logging (WAL) for optimal performance, and proper indexing. Additionally, the new @fedify/botkit/repository module offers MemoryCachedRepository for adding an in-memory cache layer on top of any repository implementation, improving read performance for frequently accessed data.

This release also includes an important security update: we've upgraded to 1.8.8, ensuring your bots stay secure and compatible with the latest ActivityPub standards. The repository pattern has been expanded with new interfaces and types like RepositoryGetMessagesOptions, RepositoryGetFollowersOptions, and proper support for polls storage through the KvStoreRepositoryPrefixes.polls option, providing more flexibility for custom implementations.

2
1
0

[🍏매장 이용안내]
최근 튜사 방문객 급증으로 Wi-fi가 끈기는 현상이 자주발생돼 공유기를 추가하였습니다.
Wi-fi 연결 목록 추가, Wi-fi명, 비밀번호가 변경 되었습니다.
방문하실 때 참고해주세요. 기존Wi-fi는 연결이 안됩니다.
비밀번호는 매장에 업데이트 해놨습니다.

🍏 tusa앨런튜링
→ 컴퓨터과학의 선구자, 암호해독의 전설.
“AI는 사람을 흉내 내는 걸로 시작한다.” — 지능과 논리가 흐르는 곳.

🍏tusa리누스토발즈
→ 리눅스 커널의 창시자, 오픈소스의 상징.
“코드는 공유되기 위해 태어났다.” — 리누스다운 개방형 개발존.

🍏tusa스티브워즈니악
→ 애플 1호기를 손수 만든 하드웨어 천재.
“개발은 Garage에서 시작된다.” — 납땜 냄새가 날 것 같은 공간.

🍏 tusa제임스고슬링
→ 자바(Java)의 창시자, 객체지향의 아버지.
“한 번 작성, 어디서나 실행.” — 안정성과 몰입을 위한 고슬링존.

3

[홍보글]👍
튜사에서 ASUS 제품을 경험해보실 수 있습니다. ASUS ProArt 모니터, AUS ROG 키보드까지 노트북, 마우스만 가지고 오시면 최적의 작업공간이 탄생됩니다! 그외 다양한 키보드와 모니터암까지 셋팅해놨으니 놀러오세요!

ASUS ROG 키보드 공동구매 진행중!
(튜사만 진행하는 최저가!)

공구참여!
discord.gg/KAJYgRY7tr

2
1
4
3
3
6
0
0
2
5