@bglbgl gwyng
@kodingwarriorJaeyeol Lee
@lionhairdino
제 심상이랑은 좀 다르네요. 저는 H의 중간 막대가 좀 아래로, H가 좌우로 살짝 벌어져있고 P가 좀 더 바짝 붙은 형태를 상상했습니다. Inkscape 켜서 직접 그리기에는 졸리네요 😅

洪 民憙 (Hong Minhee)
@hongminhee@hackers.pub · 660 following · 428 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
@ailrunAilrun (UTC-5/-4)
@lionhairdino
@kodingwarriorJaeyeol Lee
@bglbgl gwyng 지나가다 보고 아이디어가 넘 좋아서 살포시...
@ailrunAilrun (UTC-5/-4)
@kodingwarriorJaeyeol Lee
@lionhairdino 아아 어떤 느낌인지 상상이 갑니다. 저는@parksb
님이 하신것처럼 맥주가 차있으면 좋겠다싶어 H 중간 막대를 위로 올렸습니다.
H가 컵이고, P가 손잡이어야 하는데, H가 컵 모양이 잘 안나와서, 포기하고 그냥 맥주에 담가 버렸습니다. (근데 호스트분 아주 근거리에 디자이너분 계신 거 아닌가 모르겠습니다.) @ailrunAilrun (UTC-5/-4)
맥에서 VS Code의 현재 창(탭 아님)만 닫고싶을때 ⌘+⇧+W 이거 누르면 되는걸 이제 알았다;; 몰라서 맨날 마우스썼는데
아주 오래 전, 스콧마이어스 책을 곽용재님 번역으로 봤었는데, (아는 분은 아니고, 이 분 C++ 번역 책을, 번역책으론 드물게 좋아합니다.) 오, 스콧의 정리가 여러 사람의 시간을 살리겠구나.. 했었습니다. 근데, 지금 보면, Effective C ++ 책에 있는 내용들은, 왜 프로그래머가 조심하고, 조심하게 만들었을까 싶은 것들이 수두룩 합니다. 이런 것들은 기계가(혹은 언어 스펙이) 알아서 해야 할 일들 아닌가 싶습니다.
예전엔 스콧의 테크닉쯤은 미리 알고 있는 게 숙련자였는데, 모던? 언어들을 만지는 지금은 그 테크닉들이 다 원시적으로 보입니다. 한 때는 밥벌이에 필수 지식이었을텐데요.
最近はHackers' Pubのコーディングばかりで、Holloのアップデートが出来なかった。マルチタスクは大変!
해커뉴스에서 Fabrice Bellard의 QuickJS가 한 파일에 5만줄 집어 넣고 한 함수가 몇백 몇천줄 되는 걸 보고서 파일 및 함수 길이를 강력하게 제한하는 도그마가 항상 옳은 것은 아니다, 라는 코멘트를 보았는데 이는 반만 맞는 말이다. 나도 대부분의 개발자보다 파일이나 함수 길이에 훨씬 관대한 (그리고 이 사실을 한참 뒤에야 깨달은) 사람이라 아는 건데, 그냥 Bellard가 5만줄 전체의 맥락을 전부 기억하고 있고 해당 코드를 거의 Bellard만 건들고 있기 때문에 추가적으로 모듈화할 필요가 없는 거고, 대부분은 그 정도의 기억이 불가능하기 때문에 여럿이 같이 짜는 코드라면 최저치에 맞춰서 파일이나 함수 길이를 줄일 필요가 있다고 하는 것이다. 지나친 도그마를 부정하는 것도 중요하지만 도그마가 생긴 진짜 이유를 파악해서 취사 선택하는 것이 더 중요한 이유.
https://lists.w3.org/Archives/Public/public-swicg/2025Apr/0015.html
> […] having spoken with folks who provide services to extremely marginalized trans sex workers who do street work, it was not uncommon for them to either be robbed and have their only phone taken or to need to sell the device to make ends meet. (And no, they didn't have other devices)
> If our social networking apps suddenly require users to securely store private key material and ensure that is not lost, then we're going to be excluding not insignificant portions of society from social networking apps.
これは目から鱗だった
헐...... Gemini한테 해커스펍 로고 뽑아달라고 했는데, 요렇게 나옴.,.....
난 JS에서 comma operator를 *>
느낌으로 자주 쓴다. 가령 (x, y) => (assert(x), assert(y), x + y)
요런 식으로 말이다.
근데 확실히 마이너인게, 저렇게 하면 모든 종류의 linter들한테 탄압받는다.
お気に入りのQrunchがサービス終了してからは、はてなブログPro使ってます(というほど書いてませんが)。
まぁ、有料ブログ使っていくべきじゃないかなーと思うわけです。
それはそれとして、最近Hacker's Pubを試させて貰う機会を得ました。少しだけ招待できるので、ほしい人は言ってください。
Ditch the DIY Drama: Why Use Fedify Instead of Building ActivityPub from Scratch? https://lobste.rs/s/ebab2d #distributed #web
https://hackers.pub/@hongminhee/2025/why-use-fedify
e2e 암호화된 SQLite 호스팅/백업 서비스가 있으면 좋겠다. 동형암호를 활용하면 증분 싱크를 할수있지 않을까?
어떻게 하면 React 기반 앱을 좀 더 안전하고 탄탄하게 만들 수 있을까? 우리는 그 답을 ‘리액트를 리액트답게’ 작성하는 것이라고 정의했고, react-simplikit으로 그 답을 구체화했어요. https://github.com/toss/react-simplikit
Haskell용 tree-sitter 파서가 있는데, 이때 infix 등 연산자 우선순위를 동적으로 주는 기능들은 어떻게 처리하는거지? tree-sitter의 인터페이스가 context sensitive parsing이 될거같지가 않은데?
In case you missed it, there are Mastodon apps for retro computers from the 1980s & 90s
Apple II
https://www.colino.net/wordpress/en/mastodon-for-apple-ii
Apple Macintosh (pre-OS X)
https://github.com/smallsco/macstodon
Commodore 64
https://github.com/Havoc6502/MOStodon
Commodore Amiga
https://github.com/BlitterStudio/amidon
MS-DOS
https://github.com/SuperIlu/DOStodon
MVS
https://github.com/mainframed/BREXXTODON
Palm OS
https://github.com/knickish/heffalump
Windows 95
https://github.com/meyskens/mastodon-for-workgroups
Milestone: vitest crossed 10M weekly npm downloads! ⚡
전에 rpi에서 돌릴 컨테이너 이미지를 x86_64에서 빌드하는데 musl사용한 단일 실행 바이너리라고 크로스컴파일하고는 scratch에 넣었더니만 aarch64 바이너리를 포함한 x86_64 이미지가 나왔던 기억이 있다. 그때 당시에 고칠 방법이 이미지를 파일로 export하고는 메타데이터를 고치는 방법 뿐이었던 것 같은데, 지금은 어떤지 모르겠다.
TIL: Text fragments로 특정 텍스트에 대한 링크를 만들수 있다.
접근성 문서를 번역하고 모아두는 페이지에서, 블로그를 섹션을 추가하고 문서는 gitbook과 비슷한 형태로 볼 수 있는 사이트로 변경하는 작업 중입니다. 블로그 섹션 추가한 김에 글도 간만에 썼네요. 너무 당연한 이야기만 쓴 것도 같지만요. 앞으로 했으면 하는 것도, 변경한 사이트에 정비할 것도 많네요. 속도가 필요한 일은 아니지만, 여러 사람이 같이하면 더 의미가 있는 일이 될 것 같아, 함께하실 분들을 계속 찾고 있습니다.
By the way, #BotKit also needs to be updated… I have so much work left to do.
Fetching remote #ActivityPub objects or actors often involves handling #WebFinger lookups, content negotiation, and then parsing potentially untyped JSON.
With #Fedify, it's much simpler: use Context.lookupObject()
. Pass it a URI (e.g., https://instance.tld/users/alice
) or a handle (e.g., @alice@instance.tld
), and Fedify handles the lookup and content negotiation automatically.
The real power comes from the return value: a type-safe Activity Vocabulary object, not just raw JSON. This allows you to confidently access properties and methods directly. For example, you can safely traverse account moves using .getSuccessor()
like this:
let actor = await ctx.lookupObject("@alice@instance.tld");
while (isActor(actor)) {
const successor = await actor.getSuccessor();
if (successor == null) break;
actor = successor;
}
// actor now holds the latest account after moves
This is readily available in handlers where the Context
object is provided (like actor dispatchers or inbox listeners).
Focus on your app's logic, not protocol boilerplate!
Learn more: https://fedify.dev/manual/context#looking-up-remote-objects
패디버스 앱으로서 해커스펍이 누릴 수 있는 기능 중 하나가 Remote Follow인데, 이건 다른 페디버스 앱에서도 마찬가지로 이런 기능이라는게 있다는걸 알지 못하는 경우가 많다. 새로 진입하는 분들 타겟으로 카드뉴스 같은거라도 만들어야 하나...... 라는 생각이 문득 들었다.
좋은 기능이 있어도 설명이 필요하다는 것 자체가 성공한 UX는 아닌 것 같은데, 이게 구조 상 어쩔 수 없이 생기는 문제인건가 싶기도 하고
Hacker's Pubとの互換性どうにかしたいんだよなぁ
개인적으로는 k8s쓰는 가장 큰 이유는 개발자 복지라고 생각한다. 적정기술만 쓰면 대부분의 사람들은 뭔가를 실 서비스에서 경험할 기회를 잃어버린다. 아니 이건 됐고…
온프레미스 클러스터 오퍼레이션 부담이나 EKS같은 서비스의 사용료 걱정만 없다면 쓰는게 무조건 낫다고 생각한다.
일단 k8s뿐만 아니라 컨테이너/머신 오케스트레이션의 세계에서 앱과 머신은 좀 더 잘 죽어도되는 존재가 된다. (물론 stateful한 호스트와 앱을 최대한 stateless하게 하거나, 상태를 분리하여 격리시켜야 하긴 한다)
그러면 docker-compose로 충분하지 않느냐 말할 사람도 있겠지만 처음에야 docker-compose 쓰는거나 k8s 쓰는거나 그게 그거지만(오히려 k8s가 성가실것이다) 마이그레이션의 때가 오면 난 그걸 감당할 자신이 없다.
물론 자신만의 가볍고 쏙 맘에드는 솔루션을 고집할 사람도 있을텐데… 난 남들이 다 쓰는거 쓰는게 편하다.
v1의 구현방식이 매력적이었는데 한계로 인해 결국 v2의 방식을 택하게된게 참 아쉬웠다…
RE: https://hl.pkgu.net/@pkgupdt/019627a1-2be1-763a-90e2-1e10ce1df445
WSL2는 가벼운 VM인데, V1처럼 컨테이너용 리눅스 시스템 콜만 구현하는 레이어가 있어도 좋을 듯. V2가 충분히 가벼워서 그럴 필요는 적으려나...
HTTPS로 전송된 내용은 서버가 내용에 서명을 한 셈 아닌가?
란 질문을 Gemini 2.5한테 했는데 내가 어느 부분을 놓쳤는지를 정확하게 집어내서 설명해주었다. 나의 오개념에 일부분 '공감'을 먼저하고 설명한 부분이 좋았다. 비교를 위해 Gemin 2.0한테도 같은 질문을 해봤는데 그냥 아는 내용을 줄줄이 읊기만 한다.
🚀 Deno v2.2.9 is released!
🦕 Improves Node compat: fs.FileHandle.createReadStream, Buffer.copyBytesFrom, spawnSync.input
🦕 fixes windows icons for deno compile
🦕supports backticks in deno task
🦕 Faster npm installs
release notes here:
https://github.com/denoland/deno/releases/tag/v2.2.9
好きな惣菜発表したりしたので満足
회사의 Private Network 환경에서만 발생하는 간헐적 alpine docker build hang 문제가 있었다. 이 문제의 원인은 MSS(Maximum Segment Size) 경계에 걸친 패킷이 alpine apk 의 DF(Don't Fragment) flag 때문에 적절히 분할되지 못해 생기는데에 있었다. (방화벽 문제도 있지만 이건 원인을 정확히 모르겠다.)
기록해 둘만한 재미있는 현상이어서 글로 정리를 하고 싶었는데 안타깝게도 회사 밖에선 재현이 어렵네.
암튼, Private Network 환경에서 간헐적으로 docker 의 동작이 달라진다면 bridge interface 의 MTU 를 조정해 볼 것을 추천한다.(특히 alpine)
Fedify 통으로 프롬프트 넣을때 Repomix 설정값은 이렇게 가야겠다.
https://platform.openai.com/docs/models/o3-mini 기준으로 봤을때 Context Window Length는 200K 토큰 정도 되는데, 여기에 어떻게든 쥐어짜내려면 ignore pattern을 요렇게 가는게 좋을 듯
```
docs/**/*.*, src/codegen/__snapshots__/class.test.ts.snap, src/vocab/__snapshots__/vocab.test.ts.snap, CHANGES.md
```
🗨️Discuss: How should MoonBit handle effect polymorphism (allow one single higher order function to work over callback with/without error or async)?
1. Error + Async
2. Error only
3. No polymorphism, dup code
4. Hybrid/Other solution
⬇️Download: https://aka.moonbitlang.com/vsm
👥Community: https://discord.gg/5d46MfXkfZ
h1 태그의 기본 스타일이 변경됩니다
------------------------------
- 주요 브라우저들이 <h1>
태그의 기본 스타일(UA 스타일)을 변경하는 업데이트를 진행 중임
- 특히 중첩된 section
, article
, nav
, aside
등의 내부에서 사용된 <h1>
에 영향을 줌
- 개발자들은 이 변경으로 인해 사이트에 예기치 않은 스타일 변화나 Lighthouse 경고가 발생할 수 있으므로 주의가 필요…
------------------------------
https://news.hada.io/topic?id=20275&utm_source=googlechat&utm_medium=bot&utm_campaign=1834
2025年 오픈소스 컨트리뷰션 아카데미 參與型 멘토團 募集 公告가 떴다. Fedify 프로젝트의 메인테이너로서 멘토團에 志願하고자 한다. 志願書가 .hwp 파일이기에 큰 맘 먹고 한컴오피스 한글 for Mac도 購入했다. (아무래도 앞으로 .hwp 파일 다룰 일이 많을 것 같다는 豫感이 들어서…)
본문에 “< center > 태그 안 된다는 얘길 듣고” 라고 썼는데 … 글에 적용되어버림…
RE: https://hackers.pub/@diarapin/019622df-6d0d-7651-a0a6-3fd0ad97fe25
@jihyeokJihyeok Seo 의 https://naru.pub/ 에 띄울 홈페이지 나두 만들어서 띄워보고 싶어서 후다닥 스케치해봄… 그러나… 지식이 관련 지식이 전무한 상황… 하지만 해보겠습니다……. (이미지, 텍스트 정렬 할 때
최근에 추천사를 썼던 책이 있는데요. 이 교재를 활용해서 LLM AI 에이전트를 개발해볼까합니다. 제가 자원봉사(?)를 하고 있는 곳에서 컨텐츠 팀을 담당하고 있는데, 거기서 하는 일 중 하나가 뉴스레터 발행입니다.
TLDR 뉴스레터처럼 링크들을 오마카세처럼 모아서 양질의 콘텐츠를 제공하는게 목표인데, 그런 데이터를 모으기 위해서 최대한 아티클들을 모아서 요약해주는 봇을 만들어야겠다는 판단이 들었습니다. 언어 LLM 관련된 리소스도 많은 파이썬을 쓰게 될 것 같고, 서버 프레임워크는 컨텐츠 관리(어드민페이지)의 수월함을 위해서 Django를 쓰게 될 것 같습니다.
https://product.kyobobook.co.kr/detail/S000216210672
RE: https://hackerspub-ask-bot.deno.dev/message/01962280-fc29-748e-9ba8-fad032795e0d
이 글을 작성한 이후로 바로 Ask 봇을 만들었는데, 생각보다 오래 걸리지 않았다.
- @fedify/botkit 리포지토리를 RepoMix에다가 넘겨서 프롬프트로 변환한다.
- 1에서 넘겨받은 프롬프트를 ChatGPT(o3-mini-high)한테 입력 넣어서 주기적으로 글 작성하는 봇 만들어달라고 한다.
- Cron 돌리는 스크립트 넣어달라고 하는등 티키타카를 한다.
- 부족한 부분은 BotKit 문서 보면서 채운다.
이렇게 하니까 1시간 컷 찍음
RE: https://hackers.pub/@kodingwarrior/0196222c-4b5a-783e-9dd8-8dc5f3e90202
# Ask Hackers Pub : 이번 주말에 뭐 하시나요?
이번 주말에 뭘 하려고 계획 중인지 편하게 얘기해 보아요.
읽을 책, 가볼 곳, 해볼 것.. 어떤 것이든 좋습니다.
도움 요청이나 피드백 요청도 좋습니다.
물론! 아무것도 하지 않고 쉬는 것도 훌륭합니다.
* 지난 주말에 계획하셨던 일의 회고도 한 번 남겨보면 좋을 것 같아요.
Hello, World!
Want to create a #bot for the #fediverse? #BotKit by @fedifyFedify: an ActivityPub server framework lets you build standalone #ActivityPub bots with just a few lines of code! Unlike traditional Mastodon bots, BotKit helps you create complete ActivityPub servers without platform constraints.
With BotKit, you can:
- Build bots that respond to mentions, follows, and messages
- Create rich content with formatted text, mentions, and media
- Publish scheduled posts and automatically manage conversations
- Deploy easily on Deno Deploy, Docker, or self-hosted servers
Check out our documentation at https://botkit.fedify.dev/ and start building your fediverse bot today!
#연합우주(#fediverse)를 위한 봇을 만들고 싶으신가요? #BotKit by Fedify를 사용하면 몇 줄의 코드만으로 독립형 #ActivityPub 봇을 구축할 수 있습니다! 일반적인 Mastodon 또는 Misskey 봇과 달리, BotKit은 플랫폼 제약 없이 완전한 ActivityPub 서버를 만들 수 있게 도와줍니다.
BotKit으로 할 수 있는 것:
- 멘션, 팔로우 및 메시지에 응답하는 봇 만들기
- 형식화된 텍스트, 멘션 및 미디어가 포함된 풍부한 콘텐츠 생성
- 예약된 게시물 발행 및 대화 자동 관리
- Deno Deploy, Docker 또는 자체 호스팅 서버에 쉽게 배포
문서는 https://botkit.fedify.dev/에서 확인하시고 지금 바로 연합우주 봇을 만들어 보세요!
PL을 체계적으로 공부하는걸 회피하고 그때그때 좋아보이는 개념을 찍먹만하며 살아왔더니, 그냥 현존하는 프로그래밍 언어에 불평불만만 많은 사람이 되고말았다;;
해커즈 퍼브에서 "사용자"에 해당하는 부분에 스타일시트 적용 전후 비교
생각해 보니 에모지 반응 찍을 때 게시물이 Mastodon에서 작성된 경우에는 선택지를 없애는 게 나으려나…? Like
액티비티로 표현되는 ❤️ 이외에는 모두 Mastodon이 받아들이지 않는 EmojiReact
액티비티로 표현되기 때문에, 게시물 작성자가 어차피 에모지 반응을 볼 수 없으므로…
@hongminhee@hackers.pub洪 民憙 (Hong Minhee) 우리.인생 같은 포크에선 읽기 전용으로 리액션을 볼 수 있는 경우가 있어요
'악플'이라는 말이 그 자체로 암시하는 바가 있다. 악글, 악메시지 같은 황당한 조어는 없다. 그러나 '악플'은 아주 당당하게 한국어 언중의 삶에서 확고한 위상을 점유하고 있다. 이 근본 없는 신조어가 뉴스 헤드라인에 박혀 있어도 아무도 토를 달지 않을 정도다.
오직 댓글만이 이럴 수 있다. 오직 댓글만이 사람을 자살로 몰고 가는 죄악의 주범으로 번번이 지목될 수 있고, 오직 댓글만이 정치 여론 조작의 혐의로 관계자들을 징역에 처할 수 있다. 자기 블로그에 글 썼다고 이렇게까지 지탄을 받거나 처벌을 받는 일은 없다. 이것은 의미심장하다. 이것은 개개인의 품성 문제가 아니다. 댓글이라는 시스템이 갖는 구조적 원인이 분명히 있는 것이다.
그런 의미에서 트위터 역사상 가장 훌륭한 기능 추가도 "댓글 안 받기" 기능이라고 생각한다. 그러므로 해커즈 퍼브에 댓글 안 받기 기능이 생기기만 기다리는 중...
협업을 할 때 미묘하게 거슬리는 것들
- 텍스트 파일의 마지막 줄 완성 안 하기 Posix 표준 기준으로 각 줄은 새줄 문자(line feed, '\n')로 끝나야 하며, 마지막 줄도 예외는 아님
- 그리고 위의 일이 주기적으로 재발할 때
쿠버네티스는 컴포즈만으로는 할 수 없는 HA (네트워킹 포함) 까지 책임져주는 솔루션 중 de-facto 라서 쓴다고 생각해요
앵간한 상황 다 대응되고
복잡하고 어려운 이유는 "앵간한 상황 다 대응"되기 때문이 아닐까 싶음... 컨테이너만 띄울거면 이렇게 복잡해질 이유가 없었음 - 사실 그 부분만 보면 컴포즈랑 비슷하기도 하고