글 좀 올려주세요
초무
@2chanhaeng@hackers.pub · 90 following · 80 followers
GitHub
- @2chanhaeng
Gravatar
- gravatar.com/2chanhaeng
오늘 파이콘에서 모니터에서만 보던 네임드 개발자 분들을 많이 발견하였다. 조용히 아 저분이 그분이군 하고 지나갔다.
오늘도 PyCon KR 해커스펍 부스 정상 영업합니다~
개방형 오피스가 코딩의 생산성을 저하시키는 일종의 또 다른 ADHD 상태를 만든다는 글이 올라왔다. 이에 대해 어느 정도는 그럴 수 있지 하고 생각하면서도 많은 부분에 대해 동의하지 않는데... 사무실 내의 소리나 환경적 문제를 제외하면 Slack 등의 업무용 메신저나 메일 등의 알림은 집에서도 사무실에서도 똑같이 발생한다. 내가 업무 시간 중 일정 시간 안에 답하면 되는 것이기 때문에 알림 설정을 미리 해두지 않으면 결국 어디서 일하던간에 알림으로 인한 스트레스나 방해는 똑같이 받게 된다는 점이다. 또한 사무실 내의 다른 소리나 시각적 문제로 집중력을 떨어트릴 수 있다. 근데 이것도 잘 생각해보면 집에서도 가족이나 동거인, 키우는 동물 등이 있다면 똑같이 발생할 수 있는 문제가 아닐까.
결국은 어디에서 일하던간에 본인이 편안한 환경을 만들고 생산성을 유지하기 위한 환경을 조성하고 관리할 필요가 있다. 다만 이 글은 본인의 생산성을 환경에 따라 측정해서 자신만의 데이터를 뽑아낸게 굉장히 의미있다. 아마 제품의 홍보 목적도 겸하는 것이 되겠지만 말이다.
어제 튜링의 사과에서
@hongminhee洪 民憙 (Hong Minhee) 님과 모각코 하며 건진 것:
- Zed 에디터
- Zed + Rust 디버거
- Zed + GitHub Copilot
제드만세
발표자를 위한 교훈 하나: 프리젠테이션에 코드 예제를 보여줄 땐 좀 과하다 싶을 정도로 간단하게 한다. 안 그러면 발표 환경/청중의 위치에 따라 코드가 안보이는 불상사가 생길 수 있다. 😂
내일 오후 1시에서 2시 사이에 제가 아래 링크한 파이콘 코리아 2025 발표를 들으러 간다는 소식입니다. 올해는 체력이 부족하여 딱 1개 발표만 듣고 바로 철수할 예정...
장안의 화제 〈파이썬토룡신점〉, 나도 쳐봤다!
이제 AI가 손금을 보고 점도 봐주는 시대가 왔다!
다들 좋은 파이콘을 보냈나보군요... 그래... 그러면 된 거야...
해커스펍 고양이가 귀여워
<파이썬토룡신점> 아주 용하더군요
오늘과 내일 PyCon KR 2025에서 해커스펍 부스 도우미로 나와있습니다! 파이콘 오신 분들 많이 들러주세요 :)
점심시간 한정!!!! 부스 지킴이 용병하고 있습니다
이 글에서 "switch network 쓰지 말고 hash map 쓰세요 그쪽이 더 빠릅니다" 해서 정말 그런가? 했는데 그런듯 하다.
지금 진행하던 개인 프로젝트의 디버깅을 찍어보는데 특정 토큰/명령어에 대해서 한 조각씩 들어오는 것에 대해 분기 네트워크를 타면 CPU의 분기예측 캐시가 제대로 쌓이질 않아서 case문 내의 모든 case를 중구난방으로 분기하면서 모두 체크하고 있다. (예를 들어 TOKEN_DEFINE을 찾기 위해서 ase TOKEN_BRACKET_OPEN.. case TOKEN_ALLOCATE... case TOKEN_EQUAL.... 같이 전부 중구난방으로 점프해가며 하나씩 체크한다. O(n)과 같은 최악의 케이스는 아니지만 10개의 케이스가 있으면 적어도 5개는 검색해버리는 짓을 벌임)
후반부로 갈수록 캐시가 쌓여서 바로 점프하는 모습은 보이지만 O(1)으로 바로 분기 없이 점프할수 있는 해시맵이 엄청나게 빠른건 사실인듯하다.
재귀하향식 파서로 구현했기 때문에 파서는 어쩔수 없이 switch network를 타버리긴 하지만 case가 극히 적어 분기 점프에 있어 큰 문제는 아니고 최대한 해시 맵 기반으로 짜는 것이 빠르다는 교훈은 얻은듯 하다.
We'd like to recognize the valuable contributions from two developers who participated in Korea's #OSSCA (Open Source Contribution Academy) program. Both contributors identified important gaps in #Fedify's functionality and documentation, providing thoughtful solutions that benefit the broader #ActivityPub ecosystem.
@gaebalgom개발곰 contributed PR #365, addressing issue #353 regarding NodeInfo parser compatibility, originally reported by
@andypiper. The issue arose when Fedify incorrectly rejected #NodeInfo documents from snac instances due to overly strict version string parsing that required semantic versioning compliance. Their solution improves the fallback behavior in the parseSoftware() function to handle non-SemVer version strings by parsing dot-separated numbers and defaulting to zero for missing components. The implementation includes thorough test coverage for various edge cases, including single numbers (3), two-part versions (2.81), and malformed version strings. This fix provides immediate compatibility improvements across the fediverse while maintaining backward compatibility, and will be included in Fedify 1.9. The contribution serves as an interim solution, with a more comprehensive fix planned for Fedify 2.0 (issue #366), where the NodeInfo software.version field will be changed from the SemVer type to a plain string to fully comply with the NodeInfo specification.
@z9mb1Jiwon contributed PR #364, resolving issue #337 by adding practical examples for Fedify's custom collection dispatchers feature. Custom collections were introduced in Fedify 1.8 but lacked clear documentation for developers seeking to implement them. Their contribution provides a comprehensive example demonstrating how to set up custom collections for tagged posts, including proper routing patterns, pagination handling, and counter functionality. The example includes mock data structures, shows how to configure collection dispatchers with URL patterns like /users/{userId}/tags/{tag}, and demonstrates the complete request/response cycle using federation.fetch(). This work provides developers with a clear, runnable reference that reduces the complexity of implementing custom collections in ActivityPub applications.
We appreciate these meaningful contributions that help make Fedify more accessible and robust for the entire ActivityPub community.
Hackers' Pub의 로고 디자인이 완료되었습니다! 디자인은 박은지 님(@murinono무리노노)께서 해주셨습니다.
연합우주라는 콘셉트에 맞게 고양이의 입 주변을 별 모양으로, 목 아래에도 고리(orbital ring) 모양으로 디자인했습니다. 고양이를 고른 이유는 소프트웨어 프로그래머 커뮤니티에서 다른 동물보다 유독 고양이가 사랑 받기 때문이기도 하고, 고양이가 호기심이 강하기 때문이기도 합니다.
로고 디자인은 CC-BY-SA 4.0 라이선스로 배포됩니다.
기승전 해커스펍 홍보 끝~
함수형 부흥회 ㅋㅋ
‘앞/전’과 ‘뒤/후’의 비대칭성은 한국어 학습자들에게 지옥을 선사할 것이다.
참고로 이거 다 국립국어원의 잘못이 아니라 한국어의 잘못임. 이건 표준국어대사전이 그냥 현실을 반영했을 뿐이다. 즉 이 글을 읽고 있는 당신도 0.000001% 정도 잘못이 있다.
- ‘앞일’은 미래인데(예: 앞일을 예측하다), ‘뒷일’도 미래다(예: 뒷일을 부탁하네). 맞죠?
- 마찬가지로, ‘앞길’은 미래다(예: 앞길이 창창한 젊은이). 그런데 ‘뒷길’도 미래다(예: 자식의 뒷길을 생각하면 걱정이 앞선다).
- ‘뒷날’도 미래고(예: 우리는 뒷날 또 만나게 되었다), ‘훗날’도 미래다(예: 훗날을 기약하다). 그런데 ‘앞날’도 미래다(예: 앞날이 창창하다). 희한하게 ‘전날’만 과거이다.
- 그런데 ‘앞날’은 간혹 과거를 가리킬 수도 있다(예: 일찍이 앞날의 폭군은 있었고…).
- 관형사형에 ‘뒤’나 ‘후’를 붙여서 시점을 나타낼 수 있다(예: “고친 뒤의 모습” 또는 “고친 후의 모습”). 그런데 반대로 하려면 관형사형이 아니라 명사형을 써야 한다(예: “고치기 전의 모습”). 그리고, ‘전’만 쓸 수 있다. ‘앞’은 여기서 아예 쓸 수 없다.
- ‘후일’은 미래의 아무 날이나 다 가리키며, 특정한 날을 가리킬 수 없다. 반면 ‘전일’은 직전, 즉 인접한 과거의 1일만 가리킨다.
- 그런데 또 ‘전날’은 인접한 과거의 1일을 가리킬 수도 있고, 과거의 아무 날을 가리킬 수도 있다.
- 그런데 또 ‘훗날’은 미래의 아무 날을 뜻하며, 인접한 미래의 1일을 가리킬 수 없다.
- ‘전년’과 ‘후년’은 각각 과거의 아무 해, 또는 미래의 아무 해를 가리킬 수 있다. 대, 대칭인가?!
- 하지만 특정한 해를 가리키는 경우, ‘전년’은 인접한 과거의 해를 가리킨다. 반면 ‘후년’은 ‘올해의 다음다음 해’이다.
- …뭐라고? 왜냐하면 미래의 해들은 순서대로 ‘내년’-‘후년’-‘내후년’이기 때문이다. 책상 엎어버리고 싶죠?
- 참고로 ‘내후년’은 동음이의어이다. 올해가 2025년이라면 내후년은 2027년을 가리킬 수도 있고 2028년을 가리킬 수도 있다. (이게 언어냐?)
- ‘후년’이 ‘올해의 다음다음 해’가 되는 이 원리는 오직 ‘년’에만 적용된다. 예를 들어 ‘후일’, ‘후주’, ‘후월’ 등에는 그런 의미가 없다.
- ‘후일’은 미래의 아무 날이다. 하지만 ‘후주’와 ‘후월’은 인접한 미래의 것 하나만 가리킨다.
- ‘전년’은 인접한 과거의 해이지만, 과거의 모든 해를 다 가리킬 수도 있다(예: 우리는 전년의 기록들을 검토하여 그 사람의 행적을 조사해 보기로 했다).
- 반면 ‘전일’, ‘전주’, ‘전월’은 오직 인접한 과거의 하나만 가리킬 수 있다.
- ‘전달’과 ‘훗달’도 비대칭이다.
도대체 이걸 어떻게 배워서 쓰라는 것인지. 생각해 보면 나도 실제로 이렇게 쓰고 있다는 것도 기가 찬다.
그밖에:
- ‘지난날’에는 특정한 날을 가리키는 뜻이 전혀 없다. 반면 ‘지난주’, ‘지난달’, ‘지난해’는 모두 과거의 인접한 하나만 가리킨다.
- ‘다음 날’과 ‘다음날’은 의미가 완전히 다르다. ‘다음날’은 ‘정하여지지 아니한 미래의 어떤 날’이다. 따라서 인접한 미래의 1일을 가리킬 때에는 ‘다음 날’만 쓸 수 있다. (도저히 못 외우시겠으면 그냥 ‘이튿날’로 피신하시라…)
이번에 다익스트라보다 빠른 최단 경로 알고리즘이 나왔다고 해서 논문을 읽어봤는데 역시 어려워서 나가떨어졌다 arxiv.org/abs/2504.17033
Breaking the Sorting Barrier f...
Fedify에 꽤 예전 버전부터 존재했던 보안 취약점(CVE-2025-54888)이 어제 저녁에 발견되어서 (Ghost 팀에서 보고해 줬다), 오늘 아침에는 각종 관련 소프트웨어에 모두 보안 패치를 적용하느라 푸닥거리를 엄청 했다.
- 일단 Fedify 1.3 버전 대부터 존재했어서, Fedify 1.3.20, 1.4.13, 1.5.5, 1.6.8, 1.7.9, 1.8.5 버전을 릴리스해야 했고…
- Hollo 0.4 버전 대부터 해당 취약점이 존재하는 Fedify 버전을 사용했어서, Hollo 0.4.12, 0.5.7, 0.6.6 버전을 릴리스해야 했다.
- BotKit도 첫 버전인 0.1 버전 대부터 해당 취약점의 영향을 받아서, BotKit 0.1.2, 0.2.2 버전을 릴리스해야 했다.
- Hackers' Pub의 Fedify 버전도 물론 업데이트해야 했다.
- Ghost를 비롯해 주변에 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.
🎉 Major Milestone: Monorepo Architecture
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.
Consolidated Packages
All existing Fedify packages now live under one roof:
- @fedify/fedify — Main library
- @fedify/cli — CLI toolchain
- @fedify/amqp — AMQP/RabbitMQ driver
- @fedify/express — Express integration
- @fedify/h3 — h3 framework integration
- @fedify/postgres — PostgreSQL drivers
- @fedify/redis — Redis drivers
🆕 New Packages
This release introduces four new packages to the Fedify ecosystem:
- @fedify/elysia — Elysia integration for Bun-powered applications
- @fedify/nestjs — NestJS integration for enterprise Node.js apps
- @fedify/sqlite — SQLite driver compatible with Bun, Deno, and Node.js
- @fedify/testing — Testing utilities with mock
FederationandContextclasses
@fedify/fedify
Custom Collection Dispatchers
A 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]
- Added comprehensive types and interfaces for custom collection handling
- New methods on
Federatableinterface:setCollectionDispatcher()andsetOrderedCollectionDispatcher() - Added
getCollectionUri()method to theContextinterface - Full support for paginated custom collections
Compare-and-Swap (CAS) Support for KV Stores
Key–value stores now optionally support CAS operations for atomic updates, enabling optimistic locking and preventing lost updates in concurrent environments.
- Added optional
KvStore.cas()method - Implemented in
MemoryKvStoreandDenoKvStore - Useful for implementing distributed locks and counters
Fediverse Handle Utilities
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 URLsFediverseHandleinterface for type safety
Enhanced HTTP Request APIs
Contributors: Lee ByeongJun [#248, #281], Hyunchae Kim [#51, #315]
- Added
LookupWebFingerOptions.maxRedirectionoption for controlling redirect behavior - APIs now support
AbortSignalfor request cancellation - New
DocumentLoaderOptionsinterface - Added
signaloptions toLookupObjectOptions,LookupWebFingerOptions, andDoubleKnockOptions
@fedify/cli
New Commands and Enhancements
The CLI has received significant improvements thanks to our OSSCA contributors:
fedify webfinger Command
Contributors: ChanHaeng Lee [#260, #278], KeunHyeong Park [#311, #328]
Look up WebFinger information for any fediverse resource:
- Supports handles (
@user@server) and URLs --user-agentoption for custom User-Agent headers--allow-private-addressfor local testing--max-redirectionto control redirect following
fedify nodeinfo Command
Contributors: Hyeonseo Kim [#267, #331, #168, #282, #304]
Replaces the deprecated fedify node command with improved terminal rendering.
Enhanced fedify lookup Command
Contributors: Jiwon Kwon [#169, #348, #261, #321]
- Terminal-specific image display for Kitty, WezTerm, Konsole, Warp, Wayst, st, and iTerm
-o/--outputoption to save results to files
Improved fedify inbox Command
Contributors: Hasang Cho [#262, #285], Jang Hanarae [#191, #342]
--actor-nameand--actor-summaryoptions for customizing temporary actors- Now displays object types contained in activities
fedify init --dry-run
Contributors: Lee ByeongJun [#263, #298]
Preview project initialization without creating files.
Better Terminal Support
Contributors: Cho Hasang [#257, #341]
Correctly handles color output based on TTY detection and NO_COLOR environment variable.
@fedify/elysia
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);@fedify/nestjs
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 {}@fedify/sqlite
Contributors: An Subin [#274, #318]
SqliteKvStore implementation compatible across all major JavaScript runtimes:
import { SqliteKvStore } from "@fedify/sqlite";
const kv = new SqliteKvStore("./fedify.db");@fedify/testing
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🙏 Acknowledgments
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:
Core Contributors
- ChanHaeng Lee (
@2chanhaeng초무) — Custom collections, fediverse handles, WebFinger command
- Lee ByeongJun (
@joonnotnotJoon) — WebFinger redirections, dry-run, testing utilities
- Hyunchae Kim (
@r4bb1t) — AbortSignal support
- Hyeonseo Kim (
@gaebalgom개발곰) — Elysia integration, nodeinfo command - Jaeyeol Lee (
@kodingwarriorJaeyeol Lee) — NestJS integration - An Subin (
@nyeongAn Nyeong (安寧)) — SQLite driver - Jiwon Kwon (
@z9mb1Jiwon) — Terminal image display, output options - Hasang Cho (
@crohasang크롸상) — Color output handling, actor customization - Jang Hanarae (
@meneleHanal Ae) — Activity object type display - KeunHyeong Park (
@w8385박근형) — WebFinger redirect options
Test Infrastructure Contributors
- Oh Daeun (
@ooheundaoed) — Fixed PostgreSQL test race conditions [#346, #350] - Song Hanseo (
@songbirds) — Test stability improvements for Redis and code generation [#344, #347] - Kim Jonghyeon (
@woaol벨) — CLI version management and documentation fixes [#306, #329, #330, #343]
Your contributions have made Fedify stronger and more versatile than ever. The OSSCA program's support has been instrumental in achieving this milestone release.
Migration Guide
Updating from Previous Versions
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.
Breaking Changes
There are no breaking changes in this release. All existing code should continue to work without modifications.
What's Next
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
사랑하는 연합우주 가좍 여러분..
전할 말씀이 있습니다...
한국 연합우주 개발자 모임(https://fedidev.kr)이 파이콘 한국 2025에 커뮤니티 후원을 하게 되었는데요. 이를 통해 총 세 분께 이벤트로 파이콘 한국 2025 티켓을 드릴 수 있게 되었습니다..
파이콘 한국 2025에 참가하고 싶은 분들은!!! 이벤트에 응모해주시면 됩니다!!
[응모 자격]
연합우주 누구나
[응모 기한]
7월 27일 (일) 자정까지
[응모 방법]
이 글에 멘션으로 본인이 만든 페디버스 앱 자랑하기
개인이 사이드 프로젝트로 만든 mastodon/misskey/pixelfed 등등등 클라이언트,
액티비티펍 서비스의 API를 활용한 프로젝트(ex. quesdon)
액티비티펍 연동 라이브러리
등등등 어떤 것이든 좋습니다!!
--
응모하신 분 중 세 분을 선정하여 파이콘 한국 2025 티켓을 드리도록 하겠습니다.
많은 관심 부탁드려요~~
¤ 같은 텍스트가 있는 부분이 ¤로 보이는 게 이상해서 보니 찾아보니 ¤ 라는 HTML character reference가 있다. 그래서 오.. 하다가 뒤에 세미콜론이 붙지도 않는데 왜 그러지 의문이 남았는데, HTML 스펙 문서로 가서 보니까 세미콜론이 없는 버전(¤)도 있다(??). 아마 이 스펙을 충실히 구현해서 그렇게 표시되는 듯 하다. 보여주는 쪽에서 code 태그로 감싸지 않아서 그런 것 아닐까..
별개로 세미콜론 없는 버전은 CommonMark 플레이그라운드에서 해볼때 동작하지 않는데 CommonMark 스펙이거나 버그일 것 같다.
writefreely feels lacking, so i'm trying to make my own activitypub blog
thank God Fedify exists
맹자에 따르면 측은지심은 옥시토신에서 발하고 수오지심은 아드레날린에서 발하고 사양지심은 세로토닌에서 발하고 시비지심은 도파민에서 발하는 것이다.
음기는 염기성이고 양기는 산성인 것과 마찬가지로 자명하다. 아니라고? 태양은 수소이온 덩어리고 달 토양은 아폴로가 가져왔다.
뭐? 태양은 수용액이 아니라고? 그런건 모르겠고 아무튼 그렇다.
🛢️ Databases.
MacBook Pro M1 Max 14인치 32GB RAM 512GB SSD 중고로 사실 분 계신가요? 참고로 홍콩에서 샀고 자판은 영문 자판입니다. 당근 조금 찾아보니 대충 시세가 대충 150만원 전후인 것 같은데, 저는 100만원에 내놓습니다.
연합우주의 여러분을 파이콘 한국 2025에 초대합니다!
안녕하세요. Hackers' Pub이 이번 파이콘 한국 2025에 커뮤니티 후원을 하게 되었는데요. 이를 통해 총 세 분께 이벤트로 파이콘 한국 2025 티켓을 드릴 수 있게 되었습니다.
파이콘 한국 2025에 참가하고 싶었던 분들은, 이벤트에 응모해 주세요! 이벤트 응모 방법은 다음과 같습니다.
- 응모 자격
-
연합우주의 누구나
- 응모 기한
-
7월 27일(日) 자정까지
- 응모 방법
-
다음 주제어들 중 하나로 N행시를 멋지게 지어서, 인용 또는 답글로 달아주세요! (Mastodon의 경우에는 인용이 안 되므로 답글만 가능합니다.)
- 파이콘/파이컨
- 파이썬/파이선
- 해커스퍼브/해커즈퍼브/해커스펍/해커즈펍
예:
- 파이썬이 좋아서
- 이번에는 꼭 파이
- 콘에 가고 싶습니다!
응모하신 N행시 중 멋진 작품을 제출하신 세 분을 선정하여 파이콘 한국 2025 티켓을 드리도록 하겠습니다!
많은 참여 부탁드립니다!



















