오늘은 정말 유익한 프로그래머 회식을 가졌다
@kodingwarriorJaeyeol Lee 님의 피자 맛집 소개 및 퇴사 기념 무료 핏짜
- 함수형팔이, 언어팔이, IDE팔이들의 무제한영업제공사건
- 소비자는 관측되지 않음
@2chanhaeng@hackers.pub · 30 following · 33 followers
오늘은 정말 유익한 프로그래머 회식을 가졌다
이번에 다익스트라보다 빠른 최단 경로 알고리즘이 나왔다고 해서 논문을 읽어봤는데 역시 어려워서 나가떨어졌다 arxiv.org/abs/2504.17033
Breaking the Sorting Barrier f...
Fedify에 꽤 예전 버전부터 존재했던 보안 취약점(CVE-2025-54888)이 어제 저녁에 발견되어서 (Ghost 팀에서 보고해 줬다), 오늘 아침에는 각종 관련 소프트웨어에 모두 보안 패치를 적용하느라 푸닥거리를 엄청 했다.
다 하고 나니까 오전이 사라져 있었다.
토스 Next 머시기 Node.js 부문 넣어서 6문제 중에 4문제 예제로는 만점인데... 비교 대상이 없네
혹시 이번에 토스 노드로 넣으신 분?
퇴사처리됨. 짱.
@kodingwarriorJaeyeol Lee 이제 풀타임 Fedify 컨트리뷰터로...
Hackers' Pub 스티커 왔다!
We'd like to recognize some excellent contributions from our #OSSCA (Open Source Contribution Academy) participants who have been working on #Fedify.
@gaebalgom개발곰 contributed PR #339, which introduces the
@fedify/elysia
package to provide Elysia integration for Fedify. This work addresses issue #286 by creating a plugin that enables developers using #Bun and #Elysia to integrate Fedify's #ActivityPub capabilities into their applications. The contribution includes the core integration module, documentation, examples, and proper monorepo configuration, making Fedify accessible to the Elysia community.
@r4bb1t submitted PR #315, implementing comprehensive
AbortSignal
support across multiple APIs to resolve issue #51. This contribution adds request cancellation capabilities not only to lookupWebFinger()
but also to lookupObject()
, DocumentLoader
, and the HTTP signature authentication flow (doubleKnock()
), allowing developers to properly handle timeouts and abort ongoing requests throughout the entire request chain. The implementation includes extensive test coverage for cancellation scenarios across all affected components and lays the groundwork for adding --timeout
options to various CLI commands like fedify lookup
, fedify webfinger
, and fedify nodeinfo
, making federated applications more robust and responsive.
@ooheundaoed addressed a testing infrastructure issue with PR #350, fixing a race condition in PostgreSQL message queue tests that was causing intermittent failures (issue #346). By adding explicit initialization before concurrent message queue listeners, this fix prevents table creation conflicts that were affecting test reliability, ensuring more consistent PR testing for all contributors.
@songbirds provided two test stability improvements with PR #344 and PR #347. The first PR adds skip guards to
RedisKvStore
tests as a workaround for a known Bun runtime issue, keeping the test suite functional while awaiting an upstream fix. The second PR resolves a race condition in the code generation process by randomizing output filenames, preventing conflicts during parallel test execution. These contributions help maintain a stable testing environment for the project.
Thank you all for your contributions to Fedify. Your work helps make federated social networking more accessible to developers.
그나저나 Hackers' Pub 마스코트 고양이에 아직 이름이 없는데, 어떤 이름을 지어 주면 좋을까요? 🤔
We're thrilled to announce Fedify 1.8.1, a mega release made possible through the incredible efforts of contributors from South Korea's #OSSCA (Open Source Contribution Academy). This release marks a significant milestone in #Fedify's development, bringing major architectural changes, new packages, and numerous enhancements across the board.
Note: Version 1.8.0 was skipped due to a versioning error.
Fedify has been restructured as a #monorepo, consolidating all packages into a single repository with unified versioning. This change streamlines development and ensures all packages are released together with consistent version numbers.
All existing Fedify packages now live under one roof:
This release introduces four new packages to the Fedify ecosystem:
Federation
and Context
classesA powerful new feature that allows you to create custom collections beyond the standard ActivityPub collections. This enables implementation of domain-specific collections while maintaining federation compatibility.
Contributors: ChanHaeng Lee [#310, #332]
Federatable
interface: setCollectionDispatcher()
and setOrderedCollectionDispatcher()
getCollectionUri()
method to the Context
interfaceKey–value stores now optionally support CAS operations for atomic updates, enabling optimistic locking and preventing lost updates in concurrent environments.
KvStore.cas()
methodMemoryKvStore
and DenoKvStore
New utility functions make working with #fediverse handles more convenient.
Contributors: ChanHaeng Lee [#278]
parseFediverseHandle()
— Parse handles into componentsisFediverseHandle()
— Validate handle formattoAcctUrl()
— Convert handles to URLsFediverseHandle
interface for type safetyContributors: Lee ByeongJun [#248, #281], Hyunchae Kim [#51, #315]
LookupWebFingerOptions.maxRedirection
option for controlling redirect behaviorAbortSignal
for request cancellationDocumentLoaderOptions
interfacesignal
options to LookupObjectOptions
, LookupWebFingerOptions
, and DoubleKnockOptions
The CLI has received significant improvements thanks to our OSSCA contributors:
fedify webfinger
CommandContributors: ChanHaeng Lee [#260, #278], KeunHyeong Park [#311, #328]
Look up WebFinger information for any fediverse resource:
@user@server
) and URLs--user-agent
option for custom User-Agent headers--allow-private-address
for local testing--max-redirection
to control redirect followingfedify nodeinfo
CommandContributors: Hyeonseo Kim [#267, #331, #168, #282, #304]
Replaces the deprecated fedify node
command with improved terminal rendering.
fedify lookup
CommandContributors: Jiwon Kwon [#169, #348, #261, #321]
-o
/--output
option to save results to filesfedify inbox
CommandContributors: Hasang Cho [#262, #285], Jang Hanarae [#191, #342]
--actor-name
and --actor-summary
options for customizing temporary actorsfedify init --dry-run
Contributors: Lee ByeongJun [#263, #298]
Preview project initialization without creating files.
Contributors: Cho Hasang [#257, #341]
Correctly handles color output based on TTY detection and NO_COLOR
environment variable.
Contributors: Hyeonseo Kim [#286, #339]
New Elysia integration brings Fedify to Bun-powered applications with a simple plugin interface:
import { Elysia } from "elysia";
import { fedify } from "@fedify/elysia";
const app = new Elysia()
.use(fedify(federation, { /* options */ }))
.listen(3000);
Contributors: Jaeyeol Lee [#269, #309]
Enterprise-ready NestJS integration with dependency injection support:
import { FedifyModule } from "@fedify/nestjs";
@Module({
imports: [
FedifyModule.forRoot({
kv: new MemoryKvStore(),
queue: new InProcessMessageQueue(),
origin: "https://example.com",
}),
],
})
export class AppModule {}
Contributors: An Subin [#274, #318]
SqliteKvStore
implementation compatible across all major JavaScript runtimes:
import { SqliteKvStore } from "@fedify/sqlite";
const kv = new SqliteKvStore("./fedify.db");
Contributors: Lee ByeongJun [#197, #283]
Comprehensive testing utilities with mocking support for Fedify applications:
import { MockFederation, MockContext } from "@fedify/testing";
const mockFederation = new MockFederation();
const mockContext = new MockContext();
// Track sent activities with full metadata
// Support custom path registration
// Multiple activity type listeners
This release represents an extraordinary community effort, particularly from the participants of South Korea's OSSCA (Open Source Contribution Academy) (Note: page in Korean). We extend our heartfelt thanks to all contributors:
Your contributions have made Fedify stronger and more versatile than ever. The OSSCA program's support has been instrumental in achieving this milestone release.
If you're using separate Fedify packages, update all packages to version 1.8.1:
{
"dependencies": {
"@fedify/fedify": "^1.8.1",
"@fedify/cli": "^1.8.1",
"@fedify/express": "^1.8.1"
}
}
All packages now share the same version number, simplifying dependency management.
There are no breaking changes in this release. All existing code should continue to work without modifications.
With the monorepo structure in place and new integrations available, we're excited to continue improving Fedify's developer experience and expanding its capabilities. Stay tuned for more updates, and thank you for being part of the Fedify community!
For detailed technical information about all changes, please refer to the full changelog.
Fedify is an open-source project that helps developers build federated server applications powered by ActivityPub. Join us on GitHub or Discord to contribute or get help!
질 수 없다 책 쓰러 감요
갖고 싶으신분
노트북에다 붙이면 기분이 조크든요
와! 런타임을 세 개나 지원하니까 테스트 통과하는 쾌감도 세 배!
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
는 메소드 확장의 역할을 맡게 하고 싶다.
어떻게 하는게 맞을까?
동물을 관찰하는 것을 좋아합니다. 그저 멀리서 폰 카메라로 줌인하여 촬영하는 편입니다. #photography
바이브 코딩(5분만에 생성하고 4시간동안 뜯어고치기)
일하기 좋은 카페/코워킹/워케이션 지도를 개편하게 되서 소식을 공유합니다. 네이버 지도 리스트에 1000개를 넘게 등록할 수 없어서, 지도를 카테고리별로 다시 분리하면서 여러 지도를 편하게 찾아보실 수 있도록 링크트리로 통합 페이지를 만들었습니다. :-D
우부콘 후원사 마소... 웃기다
여러분..... 티켓 2장 더 마련되어서... 이 이벤트 8월 5일까지 연장합니다!!!!!!!
https://social.silicon.moe/@kodingwarrior/114872886061514921
해커스펍 영업짤 생성 >_<
두나무에서 프론트엔드 채용을 열었다고 하네요 https://dunamu.com/careers/jobs/1211
🎉 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! 🚀
.NET Universe Unplugged 2025-08 온라인 세미나를 진행하려 합니다. 온라인으로 누구나 .NET에 관련된 주제라면 무엇이든 들고와서 발표할 수 있는 세미나로 만들어보고 싶어 기획했는데, 많이 알려주시고 참여해주시면 좋을 것 같아 소셜 피드에도 공유합니다. :-D
https://forum.dotnetdev.kr/t/net-universe-unplugged-2025-08/13457
면접 말아먹고 개황망한 감정으로 컴터 꼬라보기
저는 ActivityPub 인스턴스 운영을 쉽게 해주는 프레임워크 Fedify 의 CLI 툴에 Webfinger 를 손쉽게 조회할 수 있는 fedify webfinger
커멘드를 구현했어요! https://github.com/fedify-dev/fedify/pull/278
사랑하는 연합우주 가좍 여러분..
전할 말씀이 있습니다...
한국 연합우주 개발자 모임(https://fedidev.kr)이 파이콘 한국 2025에 커뮤니티 후원을 하게 되었는데요. 이를 통해 총 세 분께 이벤트로 파이콘 한국 2025 티켓을 드릴 수 있게 되었습니다..
파이콘 한국 2025에 참가하고 싶은 분들은!!! 이벤트에 응모해주시면 됩니다!!
[응모 자격]
연합우주 누구나
[응모 기한]
7월 27일 (일) 자정까지
[응모 방법]
이 글에 멘션으로 본인이 만든 페디버스 앱 자랑하기
개인이 사이드 프로젝트로 만든 mastodon/misskey/pixelfed 등등등 클라이언트,
액티비티펍 서비스의 API를 활용한 프로젝트(ex. quesdon)
액티비티펍 연동 라이브러리
등등등 어떤 것이든 좋습니다!!
--
응모하신 분 중 세 분을 선정하여 파이콘 한국 2025 티켓을 드리도록 하겠습니다.
많은 관심 부탁드려요~~
그러고 보니 carbon 은 소리소문 없이 사라졌네 이것도 구글당했나
근데 좀 포지션이 애매하긴 했음 이미 구글한텐 go 가 있었던데다 rust 스러운걸 쓰고 싶으면 걍 rust를 쓰면 됐었으니까...
그러고 보니 carbon 은 소리소문 없이 사라졌네 이것도 구글당했나
몬가... 코드를 짜긴 짰는데 이게 남들이 보기에 좋은 코드인질 모르것다...
¤
같은 텍스트가 있는 부분이 ¤로 보이는 게 이상해서 보니 찾아보니 ¤
라는 HTML character reference가 있다. 그래서 오.. 하다가 뒤에 세미콜론이 붙지도 않는데 왜 그러지 의문이 남았는데, HTML 스펙 문서로 가서 보니까 세미콜론이 없는 버전(¤
)도 있다(??). 아마 이 스펙을 충실히 구현해서 그렇게 표시되는 듯 하다. 보여주는 쪽에서 code 태그로 감싸지 않아서 그런 것 아닐까..
별개로 세미콜론 없는 버전은 CommonMark 플레이그라운드에서 해볼때 동작하지 않는데 CommonMark 스펙이거나 버그일 것 같다.
ISFP IS this FP 이거 함수형 쓰셨어요?
INFP Write IN FP 함수형 언어 쓰세요
ESFP Ey Sseoboranikka FP 에이 함수형으로 써보라니까
ENFP ENgganhamyeon FP 엥간하면 함수형 쓰세요
ISFP IS this FP 이거 함수형 쓰셨어요?
INFP Write IN FP 함수형 언어 쓰세요
왜 JS 함수 데코레이터 안 해주냐고~~~ 호이스팅이고 뭐고 걍 내놔
일요일에 잡은 이슈의 구현 사양을 처음부터 잘못 이해해서 이걸 고치느니 아예 브랜치 새로 파서 코드 처음부터 다시 짜는게 낫겠다는 생각을 하게 된 목요일 19시 정각
일단 살릴 수 있는 코드는 최대한 살려보자,,,
일요일에 잡은 이슈의 구현 사양을 처음부터 잘못 이해해서 이걸 고치느니 아예 브랜치 새로 파서 코드 처음부터 다시 짜는게 낫겠다는 생각을 하게 된 목요일 19시 정각
writefreely feels lacking, so i'm trying to make my own activitypub blog
thank God Fedify exists
I solved the daily Clues by Sam (Jul 23rd 2025) in less than 7 minutes 🟩🟩🟩🟩🟩🟩🟩🟩🟨🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩 https://cluesbysam.com
요즘 재밌게 하는 워들류 겜
자꾸 내가 올리지도 않은 푸시의 액션 알람이 왔는데 이미 며칠 전에 해결된 이슈라서 뭔가 했더니 PR 머지 완료하고 안 지우고 냅둔 브랜치 땜시 오는 거엿나봄...ㅋㅎ
오늘의 교훈 다 쓴 브랜치는 바로바로 지우자
자꾸 내가 올리지도 않은 푸시의 액션 알람이 왔는데 이미 며칠 전에 해결된 이슈라서 뭔가 했더니 PR 머지 완료하고 안 지우고 냅둔 브랜치 땜시 오는 거엿나봄...ㅋㅎ
https://github.com/makachanm/termfedi
개인적으로 만들고 있던거에요
구경하고싶으면 구경하셔도 돼요
맹자에 따르면 측은지심은 옥시토신에서 발하고 수오지심은 아드레날린에서 발하고 사양지심은 세로토닌에서 발하고 시비지심은 도파민에서 발하는 것이다.
음기는 염기성이고 양기는 산성인 것과 마찬가지로 자명하다. 아니라고? 태양은 수소이온 덩어리고 달 토양은 아폴로가 가져왔다.
뭐? 태양은 수용액이 아니라고? 그런건 모르겠고 아무튼 그렇다.
오늘의 짤
해커스펍에 신규로 들어오는 분들을 보는데, 대부분의 경우가 1-2팔로잉으로 끝나는 것 같다. 그러면 초대한 사람의 글만 볼 수 있게 되는 것일텐데, 시작할때 3-6명 더 팔로하면서 타임라인이 풍성해지게 해줄 수 있는 그런 UX가 있으려나
🛢️ Databases.
MacBook Pro M1 Max 14인치 32GB RAM 512GB SSD 중고로 사실 분 계신가요? 참고로 홍콩에서 샀고 자판은 영문 자판입니다. 당근 조금 찾아보니 대충 시세가 대충 150만원 전후인 것 같은데, 저는 100만원에 내놓습니다.
아 한줄풀이 했는데 코드 바이트 수는 더 적은데 요즘 백준 파이썬 기본 메모리 용량이 예전 풀이 올렸을 때보다 높아져서 순위는 더 낮음 이거 억까 아니냐??