NeoVim Keybinding 사용 통계 보여주는 쓸만한 플러그인을 찾고 있다. 스스로 돌아보는 데에도 좋을 것 같고 다른 사람과 비교해보면서 유용한 패턴도 배워볼 수 있지 않을까
洪 民憙 (Hong Minhee)
@hongminhee@hackers.pub · 935 following · 651 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
apmodel 0.4.0
書き直したばかりでまだドキュメント整備してないからもしも使いたいならソースコード見ながら使ってください
https://pypi.org/project/apmodel/0.4.0/
오랜만에 Termfedi 업데이트 Renote/React를 할 수 있게 Action 모드를 추가했다.
洪 民憙 (Hong Minhee) shared the below article:
한국의 eSIM 정책 문제점 분석
푸른곰 @purengom@purengom.com
서론 해외에서는 새 기기를 켜고 액티베이션 마법사만 따라가면 eSIM이 자동으로 이전되는 경험이 보편화되어 있습니다. 반면 한국은 여전히 IMEI/EID 전산 등록과 재다운로드 수수료(2,750원)가 당연한 절차로 남아 있습니다. 저는 이 구조가 보안 명분을 앞세운 과도한 통제이며, 결과적으로 소비자에게 비용과 불편을 전가한다고 판단합니다. 1) 자동 이전이 ‘가능한 […]
Read more →https://keivan.io/the-day-appget-died/
윈도 패키지 매니저 AppGet의 개발자가 WinGet 개발 과정에서 접촉했던 경험을 쓴 글.
MS가 오픈소스 친화적으로 바뀌고 있다고 하지만, 여전히 내부 문화가 매우 관료적이고 사내 정치가 toxic하다고 유명한데, 독립 개발자로서 MS와 컨택하는 일이 어떤 것인지 잘 알려주는 사례라고 봄.
Special thanks 한 줄만 적어줬어도 그가 분노하지는 않았겠지만, 그 한 줄 넣기가 어려운 게 Microsoft겠지.
쿼리도 뮤테이션도 프래그먼트도 내부스토어관리도 만들었다... 이제 개인용도 정도로는 사용할만 하지 않을까??? 그치만 relay-compiler 의존성을 버리고 싶다... 얘가 svelte 파일은 무시하고 쿼리도 무슨 리액트에나 맞는 이상한 네이밍 강요하고 수정해보려 해도 RIIR 당해서 플러그인 시스템도 사라지고 참별로다... 역시 페이스북이 만든 모든건 웹 생태계를 자기 중심에 맞추기 위한 음모다... (아무말)
컴파일러를 버리려면?? 역시 타입세이프 쿼리를 만들고 싶어...
일단 첫번째 목표였던 SvelteKit SSR에 맞게 load 함수에서 쿼리하게 만드는덴 성공했다... 이제 캐시 업데이트와 relay-compiler를 때려서 svelte 파일도 컴파일하도록 만들기와 그외등등이 남았다...
쿼리도 뮤테이션도 프래그먼트도 내부스토어관리도 만들었다... 이제 개인용도 정도로는 사용할만 하지 않을까??? 그치만 relay-compiler 의존성을 버리고 싶다... 얘가 svelte 파일은 무시하고 쿼리도 무슨 리액트에나 맞는 이상한 네이밍 강요하고 수정해보려 해도 RIIR 당해서 플러그인 시스템도 사라지고 참별로다... 역시 페이스북이 만든 모든건 웹 생태계를 자기 중심에 맞추기 위한 음모다... (아무말)
결국 SvelteKit용 자체 GraphQL 클라이언트를 만드는 중... (relay-runtime 기반이지만)
일단 첫번째 목표였던 SvelteKit SSR에 맞게 load 함수에서 쿼리하게 만드는덴 성공했다... 이제 캐시 업데이트와 relay-compiler를 때려서 svelte 파일도 컴파일하도록 만들기와 그외등등이 남았다...
Mastodonの引用ってどういう仕様だっけ
우부콘 코리아 2025에서 **"연합우주(Fediverse)란 무엇인가"**를 주제로 소개하는 세션을 가졌었는데, 그 때 쓰던 발표자료 한번 만들어놓으니까 "연합우주는 이런겁니다" 하고 던져주기 좋은 듯.....
발표자료는 여깄다네요... https://slides.kodingwarrior.dev/fediverse-onboarding-ubucon2025.pdf
포스터 본 사람들이 행사 참여 링크로 들어올 수 있게 QR코드를 넣었는데 너무 꽉찬 느낌이 들더라구요
시간이랑 정보는 어차피 행사 링크 들어가면 볼 수 있으니 빼는게 나을까요?
Parse, don’t validate는 언제 읽어도 좋은 글이다 https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/
혹시 번역본이 편한 분은 여기에 번역본이 있습니다.(notJoon님 말고 다른 분들 보시라고 링크 달아 둡니다.)
https://eatchangmyeong.github.io/2022/12/04/parse-don-t-validate.html
@joonnotnotJoon
思い出すとここへ来る。
Parse, don’t validate는 언제 읽어도 좋은 글이다 https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/
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.
재밋는 빵셔널 하실 분
fp-ts 라는 함수형 라이브러리와 함께 화살표로 맛깔나는 설명을 해주십니다
https://dev.to/gcanti/getting-started-with-fp-ts-setoid-39f3
귀여운 마스코트는 21세기 현대 프로그래밍 언어 및 개발툴의 필수사항이며 그렇지 않은 툴은 귀여운 마스코트를 가진 툴 미만잡이다 반박시 코볼 쓰는 회사 취직함
vtsls 시도해봤다가 yarn pnp에서 go to definition이 망가졌고... 전혀 상관없을 것 같지만 왠지 denols의 go to definition도 망가졌다. 힘든 일요일이다.
Hackers' Public 포스터 완성~ https://public.hackers.pub/
Hackers' Pub web-next 작업하다가 https://hackers.pub/@moreal/2025/debugging-deno-vite-plugin-part-1/ 이슈를 만나서 PR을 올렸다.
deno-vite-plugin 디버깅 1편
이 글은 Deno 런타임 환경에서 SolidStart와 `deno-vite-plugin`을 사용할 때 발생하는 라이브러리 임포트 문제를 해결하는 과정을 담고 있습니다. 특히, `jsr:@fedify/fedify` 라이브러리를 임포트할 때 `deno task build`가 실패하는 상황을 재현하고, 원인을 분석하여 임시 해결책을 제시합니다. 문제의 원인은 `deno info` 명령어가 `kind: asserted`인 모듈을 제대로 처리하지 못하는 데 있었으며, 이를 `esm`으로 취급하도록 수정하여 해결했습니다. 다만, 근본적인 해결책은 아니며, 추가적인 `npm` 관련 에러가 남아있음을 언급합니다. 이 포스팅은 Deno 생태계에서 Vite 플러그인을 사용할 때 발생할 수 있는 문제와 그 해결 과정을 보여주며, 유사한 문제를 겪는 개발자들에게 실질적인 도움을 줄 수 있습니다.
hackers.pub · Hackers' Pub
Link author: Lee Dogeon@moreal@hackers.pub
ㅋ딩워리어 님이 알려준 링크 백업...
- 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
거의 반은 내가 기여했네 ㅎㅎ
@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!
https://well-typed.com/blog/2025/08/standard-chartered-supports-haskell-ecosystem/
제일은행을 먹은 SC(Standard Chartered)가 하스켈 생태계에 돈을 보태겠다네요. SC가 하스켈을 프로덕트에 조금씩 쓰고 있다는 얘기는 들은 적 있는데... 뭐 얼마나 후원하는지는 자세히는 안나와 있습니다만, 대기업 돈이 들어오면, 긍부정적 변화가 생기긴 하는데.. 툴체인이 정돈된다든지 해서 입문자한테 도움이 되는 변화가 생기면 좋겠습니다. 하스켈을 JS로 트랜스파일링 하는 컴파일러도 있는데, 막상 쓰려고 보면, 난이도가 너무 높아요.
진짜 디자인 하고싶은대로 다 하고 있는데, 누군가가 보다 못해서 "차라리 내가 하고 만다" 하고 자원을 해주지 않을까(?)
@kodingwarriorJaeyeol Lee 요런 디자인은 어떠세용
Zed Industries가 코드 에디터와 코딩 에이전트 사이의 통신을 표준화하기 위해 Agent Client Protocol (ACP)이라는 걸 소개했다. 잘 돼서 Neovim의 AI 통합 생태계가 더욱 풍성해지면 좋겠다. https://agentclientprotocol.com/overview/introduction
튜링의 사과 의자가 너무 좋다. 내 키에 맞게 목받침 높이 조절할 수 있는 의자 난생 처음 본다. 목받침이 뒤통수를 누르는 게 아니라 목을 받쳐주다니(...)
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.
Are there any active chat rooms on #Discord or #Matrix where #TypeScript developers gather?
Nix는 시스템에 git이 있을 때와 없을 때의 동작이 다르다. 왜지... nix 내부에서 쓰는 git 라이브러리랑 git 패키지랑 뭔가 차이가 있나.
결국 SvelteKit용 자체 GraphQL 클라이언트를 만드는 중... (relay-runtime 기반이지만)
일요일은 오픈업 가서 페디파이 토요일은 정해진 건 없지만... 튜사에 페디파이 팀원들 많이 가면 튜사 가볼까 고민 중
洪 民憙 (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 →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.
[🍏매장 이용안내]
최근 튜사 방문객 급증으로 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와 직접적으로 상호작용할수 있는 시스템 함수를 몇가지 추가했다.
오픈소스 기여하고 싶은데 개발은 잘 모르겠고 문서만 호시탐탐 노림
직원용 ETL CLI 인터페이스를 대충 해뒀는데 조만간 optique로 정리해야겠다
폼 컨트롤 스타일링 발표 녹화 영상의 맨 하단 댓글의 닉네임이 @danil-old-web 인데, 컨셉이 제대로다...
드림위버 MX/8 진짜 오랜만에 듣는다.
https://youtu.be/WgSiqSqxTxw?t=1437 오 writing-mode: vertical-lr (왼쪽에서-오른쪽 세로쓰기) 레이아웃에서 텍스트 입력, 선택 입력 등 Form Control Element 도 세로로 배치되어 보여주네
cc
@hongminhee洪 民憙 (Hong Minhee) 마음에 들어하실 기능일 것 같아 참조 겁니다!
안녕하세요. 성수동에 위치한 개발자 아지트 공간 튜링의사과입니다.
Mastodon 이전에 가입 후 관리를 못했지만 앞으로는 꾸준한 활동으로 인사 드리겠습니다. 잘 부탁드립니다. 😀
간만에 둘러보는 해커스펍
2주간 나를 살펴 볼 여유가 없었어
Hackers' Public 1차 모집 완판!!!!!!!!!

















