오늘 스프린트 모임 즐거웠어요! 다음에 또 만납시다!

洪 民憙 (Hong Minhee)
@hongminhee@hackers.pub · 565 following · 372 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
오늘 박현우 님(@lqezPark Hyunwoo)께서 Fedify 로고로 배지를 만들어 와주셨습니다! FediDev KR 두 번째 스프린트 모임 오신 분들께 나눠드리고 있어요.
튜링의 사과(@TuringAppleDev튜링의 사과) 입구에서부터 이렇게 FediDev KR 스프린트 모임 배너를 띄워주셨네요!
오늘 스프린트 모임에서는 Hackers' Pub 초대장을 막 뿌려야지!
Python도 패키징 생태계 난장판이라는 생각 많이 했었는데, JavaScript/TypeScript도 나름의 난장판인 듯. 뭐, 널리 쓰이는 언어들은 다들 나름의 생태계 문제들을 갖고 있는 거겠지…
JavaScript 툴체인 너무 어렵다. 고인물 아니면 못 쓸 것 같은데…
Deno에서는 deno.json의 tasks
에 들어가는 커맨드가 반드시 deno_task_shell을 통해서 실행되기 때문에 최소한의 이식성이 보장되는데 (예를 들어, Windows에서도 sh
에 가깝게 돌아간다는 게 보장됨), Node.js에서는 package.json의 scripts
에 들어가는 커맨드가 그냥 그 시스템의 기본 셸로 돌아가는 것 같다. Windows 대응을 어떻게 해야 할 지 고민이네…
JavaScript 번들러를 쓰려고 하니까 확실히 모듈 사이의 원형 의존성을 상당히 엄격하게 잡는 것 같다. 그냥 인터프리터로 실행할 때는 Python처럼 모듈 실행하다 도중에 다른 모듈 실행하고 다시 돌아와서 마저 실행하는 식으로 해결되는 면이 있었는데, 아무래도 정적 분석이 들어가다 보니 그렇게 하기는 어려운 듯. 이참에 모듈을 더 잘게 나누기로 했다. 다행히 그걸로 모두 해결되는 케이스라서…
어쩌다 보니 Fedify에서 JSR 의존성을 걷어내게 되었는데, 가장 골치아픈 게 @std/encoding 패키지인 것 같다. 어째서인지 npm 쪽에는 base64, base64url, base58, hex 등의 인코딩 및 디코딩을 모두 제공하는 패키지가 없어 보인다. 게다가 대체로 Uint8Array
가 아니라 Node.js API인 Buffer
에 의존한다.
그냥 @std/encoding을 포크해서 npm에 올려버릴까 싶기도 하고…
Smalltalk의 클래스 레퍼런스 문서는 스스로를 기술할 때 일인칭을 쓴다고 한다. “나는 추상 클래스입니다. 내 인스턴스들은 객체의 컬렉션입니다” 같은 식.
흠, 단문 기능에는 이름에 걸맞게 길이 제한을 두는 게 좋으려나? 대충 500자에서 1,000자 정도로? 🤔
이젠 ReSharper를 Visual Studio가 아니라 VS Code에 붙여주네. 뭐, 이제 .NET 개발 할 일은 없으니 쓸 일은 없겠지만 좋아 보인다.
FediDev KR 스프린트 두 번째 모임이 이번 주 토요일입니다! 아직 참가 신청 안 하신 분들은 늦지 않게 신청하시기 바랍니다.[1]
신청서 양식 마지막에 빈 입력란이 있는데 실수로 추가된 것입니다. 이벤터스에서 한 번 신청 양식을 정하면 수정할 수가 없다고 하네요. 그냥 아무 글자나 넣고 신청하시면 됩니다. ↩︎
음, 뭔가 코딩하기 귀찮다.
LogTape에 민감한 데이터를 편집하는 @logtape/redaction
패키지를 추가하는 작업중… 원래 해야 하는 다른 작업이 하기 싫어서 하는 회피성 작업이긴 하다. 🙄
Mastodon에서 여태까지 Webpack을 쓰고 있었는데 드디어 Vite로 넘어갔다고. 지난 주였나 테스트 때문에 Mastodon 설치할 일이 있었는데 RAM 4 GB짜리 VPS에서 Webpack 돌다가 얼어버렸던 경험이 있다. 그 때는 “이야, 아직 Webpack을 쓰네” 하며 RAM 8 GB로 올려서 어떻게 해결은 했지만, 황당하긴 했다.
If a module defines a custom exception type and throws that exception within the module, it absolutely must export that exception type as well. I'd think this is basic, but it seems a surprising number of packages declare exception types without exporting them.
제가 추천하는 ActivityPub 입문 가이드 목록입니다.
흠, Nushell로 넘어가 볼까…?
나도 Fedify 처음 만들 때는 TypeScript에서 타입 서커스를 어떻게 잘 해서 Activity Vocabulary를 모델링하려고 했다가 때려쳤던 기억이 난다. 그 때는 복잡도 이전에 내가 그걸 만들 TypeScript 실력이 없었기 때문에 때려친 거긴 하지만. 현재의 Fedify는 그냥 코드 생성을 이용한다.
비록 이제는 나도 Git을 메인 형상 관리 시스템으로 사용하지만, Mercurial을 Git보다 먼저 배웠고 오랫동안 좋아했던 사람으로서 큰 Mercurial 저장소들이 하나 둘 Git으로 전환하는 것은 다소 씁쓸한 소식인 것 같다.
요즘 의욕도 없는데 이런 거나 한 번 만들어 볼까…
흠, 나도 Cursor를 다시 써 볼까… 🤔
I wish #Zed had profiles like Visual Studio Code. The interference between extensions is annoying. For example, Biome and Deno both try to do formatting.
요 며칠 동안은 Fedify 작업을 했고, 오늘은 오랜만에 Hollo 작업을 할 예정…이긴 한데, 주로 코딩보다는 PR 리뷰하는 게 주가 될 듯? 잘 하면 오늘 새 릴리스를 할 수도 있다.
5월 24일(土) 한국 연합우주 개발자 모임(FediDev KR)에서 두 번째 스프린트 모임을 개최합니다! 장소는 뚝섬역 5번 출구쪽에 위치한 튜링의 사과(@TuringAppleDev튜링의 사과)입니다.
참고로 스프린트 모임이란 함께 모여서 오픈 소스 코딩을 하는 자리인데, 한국 연합우주 개발자 모임의 스프린트에서는 새로운 연합우주 서비스나 앱을 개발하거나, 번역이나 문서에 기여하는 등 연합우주와 관련된 다양한 오픈 소스 활동을 모여서 함께 합니다. 지난 스프린트 모임의 기록을 스프린트 블로그(@sprints.fedidev.kr한국 페디버스 개발자 모임)에서 살펴보실 수 있습니다.
저는 그날 Fedify, Hollo, Hackers' Pub에 기여하시고자 하는 분들을 옆에서 도와드릴 예정입니다. Fedify, Hollo, Hackers' Pub에 기여해보고 싶었던 분들이 계시다면 모임에 참가하여 저와 함께 스프린트를 해보는 것도 좋을 것 같습니다.
이번 모임에 관심이 있으신 분은 행사 신청 페이지를 참고하시기 바랍니다.
바뀌지도 않은 코드가 잘 되다가 갑자기 안 되니 미치고 팔짝 뛰겠다…
Fedify에 드디어 RFC 9421을 얼추 구현했고, 이제 상호운용성 테스트를 위해 Mastodon의 특정 브랜치를 실제로 인스턴스로 띄워서 액티비티를 송수신해봐야 한다. 그런데 Mastodon 띄우기가 너무나 귀찮다… (Mastodon 띄우기 귀찮아서 ActivityPub 개발 시작한 사람.)
예전부터 생각하던 건데, git reset --hard
를 인자 없이 쓰면 git stash
로 동작하거나, 아니면 적어도 인자 없이 썼을 때 오류가 나게끔 설정할 수 있었으면 좋겠다. 별 생각 없이 날려도 괜찮겠지 싶어서 git reset --hard
쳤다가 몇 분 뒤에 후회하는 경우가 종종 있다.
@leetekwoo 님 어서 오세요!
요 며칠 코딩이 잘 안 되는 느낌… 아닌가, 원래 평소에도 이랬던가? 😑
The abbreviation #a11y itself is not very accessible. #accessibility
국산 코드에서 gubun
같은 식별자를 볼 때, 우리는 그게 왜 type
내지는 discriminator
가 아닌지 물을 것이 아니라, 어째서 구분
이 될 수 없는지를 물어야 한다.
혹시 Rails 프로젝트 좀 경험해보신 분 계신가요? Mastodon 저장소에서 단위 테스트를 돌리고 싶은데 어떻게 돌리는지 잘 모르겠습니다. 일단 bundle install
로 의존성은 다 설치해둔 상태입니다.
@hollo @hong_minhee洪 民憙 (Hong Minhee) 제가
자는 동안 서버가 내려갔었던 것 같습니다… 😅
FedifyにRFC 9421を実装した後、昨晩からhttpsig.orgで生成(署名)したテストベクターとの照合を試みていたが、どう見てもテストに成功せず、一日を無駄にした末に、httpsig.orgで生成したテストベクターがhttpsig.orgでも検証に失敗するという事実を悟ってしまった。
먼 미래에는 어떻게 될 지 잘 모르겠지만, 일단 코딩 에이전트한테 LSP를 툴로 쥐어 줘야 하는 게 아닌가 하는 생각이 요즘 많이 든다.
Claude Code가 다 좋은데, Claude 모델들이 죄다 콘텍스트 윈도가 짧아가지고 금방 오토 컴팩션이 도는 탓에, 그러고 나면 하던 걸 죄다 까먹고 갑자기 바보가 된다…
Hackers' Pub은 기본 Markdown 문법 외에 다양한 확장 문법을 지원합니다. TeX을 통한 수식, 각주, 경고 박스(admonitions), 표, Graphviz를 통한 도표, 코드 블록에서 특정 줄만 강조하기 등…
마땅한 기술 블로깅 플랫폼을 못 찾았다면, Hackers' Pub도 고려해 보세요!
After reviewing FEP-5624: Per-object reply control policies and GoToSocial's interaction policy spec, I find myself leaning toward the latter for long-term considerations, though both have merit.
FEP-5624 is admirably focused and simpler to implement, which I appreciate. However, #GoToSocial's approach seems to offer some architectural advantages:
- The three-tier permission model (allow/require approval/deny) feels more flexible than binary allow/deny
- Separating approval objects from interactions appears more secure against forgery
- The explicit handling of edge cases (mentioned users, post authors) provides clearer semantics
- The extensible framework allows for handling diverse interaction types, not just replies
I wonder if creating an #FEP that extracts GoToSocial's interaction policy design into a standalone standard might be worthwhile. It could potentially serve as a more comprehensive foundation for access control in #ActivityPub.
This is merely my initial impression though. I'd be curious to hear other developers' perspectives on these approaches.
#FEP5624 #fedidev #fediverse #replycontrol #interactionpolicy
댓글 막기 옵션을 구현하려고 했더니, 연합우주에서 댓글을 막았다는 것을 나타내는 합의된 속성 같은 게 없는 것 같다. 내가 멋대로 어휘를 하나 정해서 써도 되겠지만… 음…
요 며칠 리니어 스위치가 달린 기계식 키보드 쓰다가 방금 정전용량 무접점 키보드로 바꿔보았다. 이건 이것대로 타건감이 좋아서 기분 전환이 되는 듯!
Hackers' Pub에 글 올릴 때 도표를 Graphviz로 그리면 좋은 점: 도표 안의 글자도 함께 번역된다!