보고서 쓰는데 자꾸 투머치토커 본능이
洪 民憙 (Hong Minhee)
@hongminhee@hackers.pub · 959 following · 674 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
https://fonts.google.com/specimen/Google+Sans+Code
구글에서 프로그래머를 위해 공개한 폰트.
RedBase라고 혹시 아시나요. Stanford에서 교육용으로 학생들이 직접 만들게끔 하는 DBMS인데요, 이걸 Python 버전으로 만들어보고 있습니다. 이름하야 BlueBase. 완성되면 과제용 구현부만 비워둔채로 공유할게요. 많은 기대 바람(?)
1.8 마일스톤 까지 얼마 안남아서 푸쉬 겸 이슈 남은거 있으면 좀 가져갈까 했는데, 다 할당되어 있어서 신경은 안써도 되겠군. 대시보드나 마저 만들어야지
Fedify를 활용하여 제가 만드는 텍스트 전용 블로깅 플랫폼인 타이포 블루에 연합우주 기능을 구현했습니다. 많은 관심 부탁드립니다!
연합우주 연동 기능이 추가되었습니다.
오늘부터 타이포 블루에서 연합우주 기능을 활성화하면 블로그가 연합우주에서 발견 가능해집니다.
마스토돈, 미스키 등 ActivityPub 플랫폼 사용자들이 블로그의 업데이트를 팔로우할 수 있습니다.
연합우주에서의 반응(댓글, 리액션 등)을 타이포 블루에서 받아볼 수 있습니다.
수정 테스트!
RxJS의 pipe를 흉내내서 뭔가 만들고 있는데, pipe안에 들어가는 함수가 operation oriented가 되도록 유도한다. 즉, x.pipe(f(y))가 f(y,x)로 해석되어야하니, f는 data oriented가 아닌 operation oriented가 되어야하는 것이다. 근데, 나도 일반적으로 operation oriented를 선호하긴하지만 JS의 관례는 그게 아니다. 그래서 f를 pipe를 통해서 쓰지 않을 경우에 어떤 사람들은 생소하게 느낄거 같다. 나는 x가 this 처럼 사용되고(data oriented), pipe는 메소드 확장의 역할을 맡게 하고 싶다.
어떻게 하는게 맞을까?
와! 런타임을 세 개나 지원하니까 테스트 통과하는 쾌감도 세 배!
8月3日(日)にOSC 2025 京都で開催される「Fediverseのつくりかた 〜開発者・管理者たちの現場から〜」セミナーで、「BotKit by Fedify:誰でも簡単に作れるActivityPubボット」というテーマでオンラインにて約10分間発表します。普段からフェディバースボットの制作に興味がある方には、きっと興味深く聞いていただけるのではないかと思います。参加費も無料ですので、ぜひ多くの方のご参加をお待ちしております。
in을 종종 int로 오타내는데 뭔가... 뭔가 좀 그렇다...
요즘 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']가 아니라!!!! 그럼 왜 처음에 그렇게 짜 줬는데???)
What is the biggest reason that makes you hesitate to adopt #Fedify?
시간이 지날 수록 Cursor랑 대화할 때 사용하는 주어가 바뀌는게 재밌네.
- 초반에는 "나 지금 XX를 만들고 싶어" 와 같은 식으로, 내가 작업의 메인이니까 넌 검색해와 같은 느낌에 가까웠다.
- 조금 익숙해지니까 점점 "너가 XX를 만들어 와" 라고 일을 위임하는 어조로 바꼈다.
- 그러다가 오늘 코드를 지칭할 때 무의식적으로 "우리가 만든 코드"라는 표현을 사용했다. 개발 사이클을 여러 번 돌리다보니 공동 저작물이라는 인식이 나도 모르게 생겼나보다.
질 수 없다 책 쓰러 감요
OSSCA 중간레포트 쓰는데 대략잡아서 5페이지 정도 되는 분량이 뽑히는데 이게 맞나.... 내 성향이 들어가니까 예시보다 너무 투머치해짐...
감동적인 아침이다
슬랙에 프로세싱 처리 완료 알림만 있음
에러 없고 😗
공부할건 많은데 일하느라 시간이 없다. 이러다 은퇴하고 몰아서 할듯
애플 실리콘 맥에서 Windows VM을 돌리고 계시거나, 퀄컴 프로세서를 쓰는 윈도우 PC를 사용하시는 분들 중에서 Discord ARM64 네이티브 버전을 찾고 계시다면 아래 레딧 스레드에 올라온 링크에서 ARM64 개발용 빌드를 일단 설치해보세요. 일렉트론 앱들은 ARM64 빌드가 필수입니다.
https://www.reddit.com/r/Surface/comments/1l0z1qh/discord_arm64_native_canary_build_now_available
tsconfig에 stripInternal란게 있군요?
JS에선 Java처럼 package-level visible property를 못만들다보니, 상호 참조가 많은 클래스를 정의할때 죄다 public으로 해야하는게 별로네. 내부 클래스와 그걸 래핑한 유저한테 노출하는 클래스(또는 인터페이스)를 따로 만들어야 하나.
모던 C++도 C++이다.
마크다운 기반의 콘텐츠만 가지고 웹 사이트를 만들면서도, Hugo, mkdocs, Jekyll 등등 온갖 도구 쓸 필요 없이 브라우저에 얹히는 스크립트만 갖고 비슷한 걸 만들어볼 순 없을까 심술이 나서 ChatGPT와 Claude로 만들어본 물건인데 꽤나 쓸만한게 나왔네요.
덕분에 식탁보 홈페이지를 Bootstrap 기반으로 빠르게 리뉴얼할 수 있었습니다. :-D
https://github.com/yourtablecloth/yourtablecloth.github.io/blob/main/docs/index.html
ソフトウェアのバージョン番号「0.3.0」は日本語でどう読みますか?「零点三点零」?それとも、「ゼロ点三点ゼロ」?
OSSCA 다른 팀들은 무슨 작업하는지를 염탐하는 시간을 가지기로 함
A database for Crush-compatible models. 🐈️ https://github.com/charmbracelet/catwalk
바뀐 로고 귀여워요
CLI 도구 만드는거에 진심이어서 CLI 도구 만드는게 비즈니스 모델인 회사가, 이걸로만 누적 600만 달러 이상을 투자 받았는데, CLI 코딩 에이전트 시장에 뛰어들었다??? 이건 생태계 교란종임...
https://nodejs.org/api/packages.html#community-conditions-definitions subpath export에서 'production', 'development' 분기는 커뮤니티 스펙이군
ロゴが変わっただけで、とても可愛らしい雰囲気の場所になった。気に入った。だって、可愛さが世界を救うから。
코드 최작화 할 때 쓰려고 프로파일링 기능 만들었는데 얼추 돌아간다
평소에 OOP 별로다, 상속은 거품이다 비난만 하다가, 막상 클래스 만들어야할 상황이 오니까 기어코 아름다운 상속 구조를 만들어보려 애쓰는 나, 정상인가요?
논문요약기 리팩토링을 좀 했습니다 https://github.com/theeluwin/summarxiv 오픈소스지만 세팅하기 귀찮으신 분들을 위해서 제가 연1만원에 매일 아침 메일로 보내드립니다 https://forms.gle/xiLPNyEqsLEH5BLH9 많관부
지금 일하는 곳은 14시-19시까지만 일하는 걸로 합의를 봤다.... 취업준비와 Fedify 기여에 올인을.......
ロゴかわいい!!🐾
PWAのアイコンも変わってた!かわいい!!🪐
연합우주 관련 서비스를 만들게 되어 해커스팝에도 공유해 봅니다~ 내 글을 부스트하고 나서 다른 사람이 작성한 반응글을 모아서 볼 수 있는 서비스를 만들고 있어요!
아직까지는 마스토돈 계정 로그인만 지원합니다. https://boost.chalk.moe 에 테스트 서버가 배포되어 있어요.
React Router 7 (Framework Mode) 기반의 웹사이트와 Temporal.io 기반의 백엔드로 구성되어 있습니다. 기여는 언제든지 환영합니다 🤗
방금 입수한 어떤 정보에 따르면 해커스펍 올해안에 1200명 넘길 수도 있을 것 같다는 소식입니다...
타입스크립트의 타입으로 흑마법 쓰는거 배울만한 리소스 없나? 찾아봐야겠다
Hackers' Pubのロゴが可愛すぎたので可愛い!と言うためにすっ飛んできた🐈⬛💨💨❣️
"모든 사람을 위한 웹 접근성 지원과 설계, 제대로 알아봅시다."
아래 명제에 대한 제 생각이 궁금하시면 꼭 이번 FEConf 2025에서 보러 와주세요!
- 웹 접근성은 장애 사용자만을 위한 특수한 사용자 경험을 지칭하는 기술 분야이다.
- 따라서 접근성은 보조 기술 지원을 위한 추가 사용자 인터페이스로, 웹 서비스의 구현 양이 그만큼 더 늘어날 것이다.
日本で一部の地域に津波警報が出ていてなぜか軽量なクライアントを書きたくなったから書いた
https://simple-client-for-mastodon.pages.dev/ (Mastodon) https://misskey-simple-client.pages.dev/ (Misskey)
https://github.com/AmaseCocoa/simple-client-for-mastodon https://github.com/AmaseCocoa/misskey-simple-client
해커스펍 영업짤 생성 >_<
오는 8월 2일 토요일 저녁에 닷넷데브 포럼에 Fediverse 지원을 추가하기 위하여 ActivityPub 플러그인을 설치한 후 구성할 예정입니다. forum.dotnetdev.kr/t/2025-8-2-8/13468/1
https://github.com/riemannulus/suho.io
미루고 미루던 suho.io 되살리기 했다.
애플리케이션 만들고 moon generate github-actions, moon generate docker-compose-service 이용해서 손쉽게 GitOps 서비스 등록도 되게 만듦...
페디버스는 약간 굳이 팔로 안해도 로컬이나 연합 탐라로 볼수있는게 많아서 팔로 잘 안하게 되는거같음
누가 토큰 덜 쓰고 기능을 만드는지 겨루는 프롬프트 골프 같은거 없나?
세상에 rust-analyzer가 코드베이스 분석을 포기하고 뻗음
https://vt.social/@lina/114934794939255861 아사히 리나 스트리밍 복귀 선언....
🎉 Huge shoutout to @2chanhaeng초무 for implementing custom collection dispatchers in #Fedify through the Korean #OSSCA program!
This incredible contribution adds support for creating arbitrary collections beyond the built-in ones (e.g., outbox, inbox, following, followers). Now developers can expose custom collections like user bookmarks, post categories, or any grouped content through the #ActivityPub protocol:
federation
.setCollectionDispatcher(
"bookmarks",
Article,
"/users/{identifier}/bookmarks",
async (ctx, values, cursor) => {
const { posts, nextCursor } = await getBookmarkedPosts(values.identifier, cursor);
return { items: posts, nextCursor };
}
)
.setCounter(async (ctx, values) =>
getBookmarkCount(values.identifier)
);The implementation is technically excellent with full #TypeScript support, both Collection and OrderedCollection types, cursor-based pagination, authorization predicates, and zero breaking changes. @2chanhaeng초무 delivered not just code but a complete feature with 313 lines of comprehensive documentation, practical examples, and thorough test coverage.
This opens up countless possibilities for ActivityPub applications built with Fedify. From user-specific collections to complex categorization systems, developers now have the flexibility to create any type of custom collection while maintaining full ActivityPub compliance.
Thank you @2chanhaeng초무 for this outstanding contribution and to the OSSCA program for fostering such excellent open source collaboration! 🚀
지난 한달간 열심히 개발한 실시간 퀴즈 사이트입니다. django, django drf, jwt 기반 인증, websocket, ticket으로 받아오는 jwt websocket 인증, celery, 등을 모두 사용한 예시이기도 합니다. 구경와주세요~



![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:](https://media.hackers.pub/note-media/8fb85054-b96c-4846-883b-70dc14421ce5.webp)







