@TuringAppleDev튜링의 사과
튜사의 공동구매 꾀임에 넘어갔다.

洪 民憙 (Hong Minhee)
@hongminhee@hackers.pub · 854 following · 606 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
@woaol벨 꽤 비싼 모델 같던데… ㄷㄷㄷ
딱히 Windows를 좋아하지는 않지만… 그렇다고 내가 만든 소프트웨어가 Windows를 아예 지원 안 하는 건 별개의 이야기. 그래도 가장 많이 쓰이는 운영체제인데, 지원을 아예 안 할 수는 없다고 생각한다.
지금 튜사라 Windows 장비가 없어서 테스트를 못 하고 있다는 뜻.
딱히 Windows를 좋아하지는 않지만… 그렇다고 내가 만든 소프트웨어가 Windows를 아예 지원 안 하는 건 별개의 이야기. 그래도 가장 많이 쓰이는 운영체제인데, 지원을 아예 안 할 수는 없다고 생각한다.
ㅋ딩워리어 님이 알려준 링크 백업...
- https://www.cs.cmu.edu/afs/cs/academic/class/15213-f15/www/schedule.html
- https://pages.cs.wisc.edu/~remzi/OSTEP/
- https://www.youtube.com/watch?v=vdPALZ-GCfI&list=PLSE8ODhjZXjbj8BMuIrRcacnQh20hmY9g
- https://hpbn.co
- https://codingchallenges.fyi/challenges/challenge-forth/
- https://app.codecrafters.io/courses/redis/overview
나는 API가 좀 복잡해도 좋으니까 기능 많은 라이브러리가 좋다. 물론 기능도 많으면서 API까지 단순하면 금상첨화지만.
거의 반은 내가 기여했네 ㅎㅎ
@fedify/fedify
: Custom Collection 디스패처 setter@fedify/cli
:webfinger
커맨드@fedify/next
: 패키지 제작 및 예제 생성@fedify/sveltekit
: 패키지 분리, 타입 수정 및 예제 생성@fedify/cfworkers
,@fedify/denokv
,@fedify/hono
: 패키지 분리
The #Fedify 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!
@hongminhee洪 民憙 (Hong Minhee) union + type 쓰면 비슷하게 되지 않나요?
@bglbgl gwyng GraphQL이 공용체는 객체 타입끼리만 쓸 수 있더라고요. 열거형을 못 씁니다…
https://well-typed.com/blog/2025/08/standard-chartered-supports-haskell-ecosystem/
제일은행을 먹은 SC(Standard Chartered)가 하스켈 생태계에 돈을 보태겠다네요. SC가 하스켈을 프로덕트에 조금씩 쓰고 있다는 얘기는 들은 적 있는데... 뭐 얼마나 후원하는지는 자세히는 안나와 있습니다만, 대기업 돈이 들어오면, 긍부정적 변화가 생기긴 하는데.. 툴체인이 정돈된다든지 해서 입문자한테 도움이 되는 변화가 생기면 좋겠습니다. 하스켈을 JS로 트랜스파일링 하는 컴파일러도 있는데, 막상 쓰려고 보면, 난이도가 너무 높아요.
진짜 디자인 하고싶은대로 다 하고 있는데, 누군가가 보다 못해서 "차라리 내가 하고 만다" 하고 자원을 해주지 않을까(?)
@kodingwarriorJaeyeol Lee 요런 디자인은 어떠세용
@kodingwarriorJaeyeol Lee 요런 디자인은 어떠세용
@2chanhaeng이찬행
@kodingwarriorJaeyeol Lee 헉! 이거 좋은데요!?!
언젠가는 나만의 Markdown 포매터를 만드리… 이름은 MMF 정도로…
해커스펍 접속해서 눈이가는 글들 있으면 주욱 답 달고 싶은데, 그러면 절 팔로우 하는 분들 타임라인이 제 답글들로 도배되는 거 맞지요? 타임라인 동작이 새 글 일부만 가져오는 게 아니라, 새 글은 전부 가져오는 건가요?
@lionhairdino 저도 구현한지 오래되어서 확실치 않은데, 모든 댓글이 다 보이는 건 아니고 내가 팔로하고 있는 사람들끼리 단 댓글들만 보입니다.
Zed Industries가 코드 에디터와 코딩 에이전트 사이의 통신을 표준화하기 위해 Agent Client Protocol (ACP)이라는 걸 소개했다. 잘 돼서 Neovim의 AI 통합 생태계가 더욱 풍성해지면 좋겠다. https://agentclientprotocol.com/overview/introduction
튜링의 사과 의자가 너무 좋다. 내 키에 맞게 목받침 높이 조절할 수 있는 의자 난생 처음 본다. 목받침이 뒤통수를 누르는 게 아니라 목을 받쳐주다니(...)
GraphQL에는 어째서 ADT가 없을까…?
나중에 시간이 허락된다면 reStructuredText의 TypeScript 구현을 하나 만들어 보는 것도… 시간 낭비인가…
@hongminhee洪 民憙 (Hong Minhee) 저 리토 마을을 아직도 못찾았어요 대체 어디있는거지..
@z9mb1wwj 북서쪽에 있긴 한데, 북서쪽으로 무턱대고 가면 못 찾긴 할 것 같네요.
분명 퇴사하고 하고 싶은게 잔뜩 있었는데 어느새 개강이구나...
@z9mb1wwj 하이랄은 이제 언제 지키나…
@hongminhee洪 民憙 (Hong Minhee) 회사의 사용 케이스에 너무 맞춰져 있기도 하고 relay랑은 잘 안 맞는 거 같아서요...
@robin 아하, 그렇군요… 기대하겠습니다…!
Are there any active chat rooms on #Discord or #Matrix where #TypeScript developers gather?
@hongminhee洪 民憙 (Hong Minhee)
Minhee, please come back home. You can't just abandon your child like this. We will forgive everything. The baby needs you. Little Haskell is crying and starving.
의외로 잘 안 알려진 도구인데, mise가 정말 좋습니다. 다들 mise 쓰고 행복한 개발 하세요.
Are there any active chat rooms on #Discord or #Matrix where #TypeScript developers gather?
토요일에는 점심에 커피챗 약속이 있고 그 외에는 언제나처럼 튜사(@TuringAppleDev튜링의 사과)에 가서 작업을…
일요일에는 @fedifyFedify: ActivityPub server framework OSSCA 모각코가 있습니다.
Optique 0.3.0: Dependent options and flexible composition

洪 民憙 (Hong Minhee) @hongminhee@hackers.pub
Optique 0.3.0 introduces several enhancements aimed at simplifying the development of complex CLI applications. This release focuses on expanding parser flexibility and refining the help system, incorporating valuable community feedback. Key updates include the introduction of required Boolean flags using the new `flag()` parser, more flexible type defaults in `withDefault()` to support union types, and an extended `or()` capacity that now supports up to 10 parsers. The `merge()` combinator has also been enhanced to work with any object-producing parser, and context-aware help is now available through the `longestMatch()` combinator. Additionally, version display support has been added to both `@optique/core` and `@optique/run`, along with structured output functions for consistent terminal formatting. These improvements collectively provide developers with more powerful tools for building intuitive and feature-rich command-line interfaces.
Read more →일요일은 오픈업 가서 페디파이 토요일은 정해진 건 없지만... 튜사에 페디파이 팀원들 많이 가면 튜사 가볼까 고민 중
@2chanhaeng이찬행 일단 저는 갑니다!
@kodingwarriorJaeyeol Lee
@z9mb1wwj 오시나요?
결국 SvelteKit용 자체 GraphQL 클라이언트를 만드는 중... (relay-runtime 기반이지만)
@robin 삵은 어떻게 된 거죠!?
Nix는 시스템에 git이 있을 때와 없을 때의 동작이 다르다. 왜지... nix 내부에서 쓰는 git 라이브러리랑 git 패키지랑 뭔가 차이가 있나.
결국 SvelteKit용 자체 GraphQL 클라이언트를 만드는 중... (relay-runtime 기반이지만)
일요일은 오픈업 가서 페디파이 토요일은 정해진 건 없지만... 튜사에 페디파이 팀원들 많이 가면 튜사 가볼까 고민 중
본가에 AULA F87 PRO, 이른바 독거미 키보드를 하나 두었는데, 확실히 이 가격에 이 정도 퀄리티는 말이 안 될 정도로 혁신적이었던 제품 같긴 하다.
洪 民憙 (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 →음… Deno에 deno deploy
라는 Deno DeployEA에 배포하는 커맨드가 생겼다는데, 특정 기업이 운영하는 유료 PaaS를 위한 서브커맨드가 추가되는 게 별로 좋아 보이진 않는다.
사실 Next.js도 비슷한 이유로 별로라고 느껴짐.
음… Deno에 deno deploy
라는 Deno DeployEA에 배포하는 커맨드가 생겼다는데, 특정 기업이 운영하는 유료 PaaS를 위한 서브커맨드가 추가되는 게 별로 좋아 보이진 않는다.
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.
I'm currently improving Optique's façade API, and in the process, I've added a few more parsers. Optique 0.3.0 might have some breaking changes on the API side. Of course, these changes will be thoroughly documented in the changelog.
오늘은 여기까지만 하고 쉬어야지.. 컨디션이 너무 안 좋음
요즘은 iptime 같은 곳의 제품도 Mesh 망 구성이 가능합니당
Friend of mine said why Linux is the thing among programmers I said bcz technically it’s free and we’re broke(?) esp those who are obsessed with Linux
We're excited to announce the release of BotKit 0.3.0! This release marks a significant milestone as #BotKit now supports #Node.js alongside #Deno, 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 #JavaScript runtime while building #ActivityPub #bots with the same powerful BotKit APIs.
One of the most requested features has landed: poll support! You can now create interactive polls in your #bot 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 #fediverse 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 #Fedify 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.
@botkitBotKit by Fedify
@gaebalgom개발곰
The development of fedify and botkit are handled splendidly, and all the progress is delightful to behold. Thanks to everyone involved for all the great work you do!
We're excited to announce the release of BotKit 0.3.0! This release marks a significant milestone as #BotKit now supports #Node.js alongside #Deno, 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 #JavaScript runtime while building #ActivityPub #bots with the same powerful BotKit APIs.
One of the most requested features has landed: poll support! You can now create interactive polls in your #bot 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 #fediverse 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 #Fedify 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.
GPT-5가 어려운 문제에 있어서는 오히려 Claude Opus 4.1보다 낫다기에 한 번 써보고 있는데, Claude Code로는 당연하게도 GPT-5 모델을 못 쓰니 대신 Crush를 써보고 있다. 일단 첫인상으로는 MCP 외에도 LSP를 지원하는 게 마음에 든다. 바로 deno lsp
를 연결해서 써보고 있다.
근데 이상하게 OpenAI API가 자꾸 레이트 리미트에 걸려서 그만 두었다…
GPT-5가 어려운 문제에 있어서는 오히려 Claude Opus 4.1보다 낫다기에 한 번 써보고 있는데, Claude Code로는 당연하게도 GPT-5 모델을 못 쓰니 대신 Crush를 써보고 있다. 일단 첫인상으로는 MCP 외에도 LSP를 지원하는 게 마음에 든다. 바로 deno lsp
를 연결해서 써보고 있다.
[🍏매장 이용안내]
최근 튜사 방문객 급증으로 Wi-fi가 끈기는 현상이 자주발생돼 공유기를 추가하였습니다.
Wi-fi 연결 목록 추가, Wi-fi명, 비밀번호가 변경 되었습니다.
방문하실 때 참고해주세요. 기존Wi-fi는 연결이 안됩니다.
비밀번호는 매장에 업데이트 해놨습니다.
🍏 tusa앨런튜링
→ 컴퓨터과학의 선구자, 암호해독의 전설.
“AI는 사람을 흉내 내는 걸로 시작한다.” — 지능과 논리가 흐르는 곳.
🍏tusa리누스토발즈
→ 리눅스 커널의 창시자, 오픈소스의 상징.
“코드는 공유되기 위해 태어났다.” — 리누스다운 개방형 개발존.
🍏tusa스티브워즈니악
→ 애플 1호기를 손수 만든 하드웨어 천재.
“개발은 Garage에서 시작된다.” — 납땜 냄새가 날 것 같은 공간.
🍏 tusa제임스고슬링
→ 자바(Java)의 창시자, 객체지향의 아버지.
“한 번 작성, 어디서나 실행.” — 안정성과 몰입을 위한 고슬링존.
[홍보글]👍
튜사에서 ASUS 제품을 경험해보실 수 있습니다. ASUS ProArt 모니터, AUS ROG 키보드까지 노트북, 마우스만 가지고 오시면 최적의 작업공간이 탄생됩니다! 그외 다양한 키보드와 모니터암까지 셋팅해놨으니 놀러오세요!
ASUS ROG 키보드 공동구매 진행중!
(튜사만 진행하는 최저가!)
Cutter에 명시적 타입 캐스팅과 OS와 직접적으로 상호작용할수 있는 시스템 함수를 몇가지 추가했다.
오픈소스 기여하고 싶은데 개발은 잘 모르겠고 문서만 호시탐탐 노림
@roo_37루 문서 기여, 중요하죠!
오픈소스 기여하고 싶은데 개발은 잘 모르겠고 문서만 호시탐탐 노림
직원용 ETL CLI 인터페이스를 대충 해뒀는데 조만간 optique로 정리해야겠다