What is Hackers' Pub?

Hackers' Pub is a place for software engineers to share their knowledge and experience with each other. It's also an ActivityPub-enabled social network, so you can follow your favorite hackers in the fediverse and get their latest posts in your feed.

한겨레 미디어아카데미에서 진행하는 <스토리 구성이 익숙해지는 1페이지 기승전결 훈련> 마침내 4기 수강생 모집이 시작되었습니다! 📆 2026년 새해를 맞아 이번에는 정말로 시작해보자! 나만의 스토리 창작! 사실 이 강의가 4기까지 올 줄은 상상도 못했는데, 여러분들의 성원 덕분에 여기까지 올 수 있었습니다. 스토리텔링의 밑바닥부터 튼튼하게 기초 공사를 하고 싶다면 지금 바로 수강 신청해 주세요! m.hanter21.co.kr/jsp/mobile/e...

한겨레교육

0
0
0
0
0
0

9 days after Inauguration Day, 404 Media wrote about how this declassified World War II-era government guide to sabotaging fascism became one of the most popular open source books on the internet.

One of our top stories this year: 404media.co/declassified-cia-g

0
0
0
0
0
0
0
1
0
0
0

트위터에서 맞팔이지만 블루스카이에서는 맞팔 아니신 분 있다면 언제든 여기에 멘션 달아주세요. 타임라인이 복작복작한 걸 견디지 못하기 때문에 모든 분을 팔로해드리긴 어렵고 (그렇다고 팔로하고 뮤트해두는 것도 예의가 아니고) 우선 트위터에서 맞팔 관계신 분들부터 우선적으로 팔로해 드리겠습니다.

0
0
0
0
0
0
1
0

サンタなトリスでメリクリです!​:rv_blobcat_xmas:​​:merry_christmas__i:​​:rosa_cheer:​​:agooglehearts:
いつも仲良くしてくれるお友達もいっしょです♪
:af_mofumofucat_kotatsu:​🎁
今夜はみんなでなかよしパーティーです!
:minnadaisuki:​​:af_rosacat_omedetou:​​:itumo_arigatou:

1
0
0
1

It’s Christmas Eve, and time to post my favourite photo., one that still fills me with awe whenever I see it.
It was taken by William Anders on Dec. 24, 1968, on the Apollo 8 mission and is the first photo ever taken of the earth with the moon in the foreground. It’s a reminder that we only have one world and its people are all we have. Take care of both.
Regardless of your beliefs, may the holiday season bring you peace.

Photo of the earth rising above the moon.
0
0
0
0
0
0
0
0
0
0

早上一直在等我的弟弟辦好醫院的各種手續、回家來取餐,結果這一辦就到十點多,我把廚房清理完正下樓倒廚餘時,看見我弟剛停好車要來拿餐。

出於好奇,我又跟著來到醫院。他們幸運地等到一間家庭房,費用是每天100歐,有兩張床和獨立衛浴,比起一般的病房是兩位媽媽和各自的寶寶同憩一室,這樣自在多了。

雖然幫弟媳煮好月子餐,但我自己卻不知道要吃什麼,來到病房就乾脆和我弟一起分食醫院的餐點。午餐比較豐盛,就像照片這樣。早餐、晚餐則都是硬麵包冷食,想到Gemini殷殷叮囑做給產婦媽媽的粥要打得多細,結果醫院直接提供硬麵包,不免感到有點好笑。

和弟弟前往醫院的路上,談起昨晚的分娩多麼神奇,到了醫院又看弟弟笨拙但耐心地安撫嬰兒,心裡一直蕩漾著感動。我的弟弟,他也曾經是襁褓中那個腳掌好小好小的嬰兒啊,現在他是準備好照顧嬰兒長大的爸爸了。我充滿好奇地和弟妹聊著昨晚的生產經驗,心中充滿了敬佩;看似纖弱的身體竟然能孕育並娩出這樣活生生的生命來,只能說女人真的太強大太神奇了。

0
0
1
0
0
1
1

No matter if you have friends or family, if you are alone or in a group: I sincerely hope everyone reading this has a few quiet and relaxing days.

Life's crazy enough, and it's not looking as if it would slow down any time soon...

So take a deep breath, grab a nice beverage, and relax for a moment or two.

You more than earned it.

0
0
0
1
1
0


일상 90% 티알피지 및 더블크로스 4% 명일방주 4% 기타 오타쿠말 2%로 굴러가는 오타쿠 일상계입니다
괜찮으신 분만 반응 남겨주시면 찾아뵙겠습니다
헤더 보고 걔 드림인가? 라고 생각하시면 걔가 맞습니다
하지만 프사의 여자아이와 관계있는 남자를 생각하셨다면 그 남자는 아닙니다...

0

Fedify 1.10.0: Observability foundations for the future debug dashboard

Fedify is a framework for building servers that participate in the . It reduces the complexity and boilerplate typically required for ActivityPub implementation while providing comprehensive federation capabilities.

We're excited to announce 1.10.0, a focused release that lays critical groundwork for future debugging and observability features. Released on December 24, 2025, this version introduces infrastructure improvements that will enable the upcoming debug dashboard while maintaining full backward compatibility with existing Fedify applications.

This release represents a transitional step toward Fedify 2.0.0, introducing optional capabilities that will become standard in the next major version. The changes focus on enabling richer observability through OpenTelemetry enhancements and adding prefix scanning capabilities to the key–value store interface.

Enhanced OpenTelemetry instrumentation

Fedify 1.10.0 significantly expands OpenTelemetry instrumentation with span events that capture detailed ActivityPub data. These enhancements enable richer observability and debugging capabilities without relying solely on span attributes, which are limited to primitive values.

The new span events provide complete activity payloads and verification status, making it possible to build comprehensive debugging tools that show the full context of federation operations:

  • activitypub.activity.received event on activitypub.inbox span — records the full activity JSON, verification status (activity verified, HTTP signatures verified, Linked Data signatures verified), and actor information
  • activitypub.activity.sent event on activitypub.send_activity span — records the full activity JSON and target inbox URL
  • activitypub.object.fetched event on activitypub.lookup_object span — records the fetched object's type and complete JSON-LD representation

Additionally, Fedify now instruments previously uncovered operations:

  • activitypub.fetch_document span for document loader operations, tracking URL fetching, HTTP redirects, and final document URLs
  • activitypub.verify_key_ownership span for cryptographic key ownership verification, recording actor ID, key ID, verification result, and the verification method used

These instrumentation improvements emerged from work on issue #234 (Real-time ActivityPub debug dashboard). Rather than introducing a custom observer interface as originally proposed in #323, we leveraged Fedify's existing OpenTelemetry infrastructure to capture rich federation data through span events. This approach provides a standards-based foundation that's composable with existing observability tools like Jaeger, Zipkin, and Grafana Tempo.

Distributed trace storage with FedifySpanExporter

Building on the enhanced instrumentation, Fedify 1.10.0 introduces FedifySpanExporter, a new OpenTelemetry SpanExporter that persists ActivityPub activity traces to a KvStore. This enables distributed tracing support across multiple nodes in a Fedify deployment, which is essential for building debug dashboards that can show complete request flows across web servers and background workers.

The new @fedify/fedify/otel module provides the following types and interfaces:

import { MemoryKvStore } from "@fedify/fedify";
import { FedifySpanExporter } from "@fedify/fedify/otel";
import {
  BasicTracerProvider,
  SimpleSpanProcessor,
} from "@opentelemetry/sdk-trace-base";

const kv = new MemoryKvStore();
const exporter = new FedifySpanExporter(kv, {
  ttl: Temporal.Duration.from({ hours: 1 }),
});

const provider = new BasicTracerProvider();
provider.addSpanProcessor(new SimpleSpanProcessor(exporter));

The stored traces can be queried for display in debugging interfaces:

// Get all activities for a specific trace
const activities = await exporter.getActivitiesByTraceId(traceId);

// Get recent traces with summary information
const recentTraces = await exporter.getRecentTraces({ limit: 100 });

The exporter supports two storage strategies depending on the KvStore capabilities. When the list() method is available (preferred), it stores individual records with keys like [prefix, traceId, spanId]. When only cas() is available, it uses compare-and-swap operations to append records to arrays stored per trace.

This infrastructure provides the foundation for implementing a comprehensive debug dashboard as a custom SpanExporter, as outlined in the updated implementation plan for issue #234.

Optional list() method for KvStore interface

Fedify 1.10.0 adds an optional list() method to the KvStore interface for enumerating entries by key prefix. This method enables efficient prefix scanning, which is useful for implementing features like distributed trace storage, cache invalidation by prefix, and listing related entries.

interface KvStore {
  // ... existing methods
  list?(prefix?: KvKey): AsyncIterable<KvStoreListEntry>;
}

When the prefix parameter is omitted or empty, list() returns all entries in the store. This is useful for debugging and administrative purposes. All official KvStore implementations have been updated to support this method:

  • MemoryKvStore — filters in-memory keys by prefix
  • SqliteKvStore — uses LIKE query with JSON key pattern
  • PostgresKvStore — uses array slice comparison
  • RedisKvStore — uses SCAN with pattern matching and key deserialization
  • DenoKvStore — delegates to Deno KV's built-in list() API
  • WorkersKvStore — uses Cloudflare Workers KV list() with JSON key prefix pattern

While list() is currently optional to give existing custom KvStore implementations time to add support, it will become a required method in Fedify 2.0.0 (tracked in issue #499). This migration path allows implementers to gradually adopt the new capability throughout the 1.x release cycle.

The addition of list() support was implemented in pull request #500, which also included the setup of proper testing infrastructure for WorkersKvStore using Vitest with @cloudflare/vitest-pool-workers.

NestJS 11 and Express 5 support

Thanks to a contribution from Cho Hasang (@crohasang크롸상), the @fedify/nestjs package now supports NestJS 11 environments that use Express 5. The peer dependency range for Express has been widened to ^4.0.0 || ^5.0.0, eliminating peer dependency conflicts in modern NestJS projects while maintaining backward compatibility with Express 4.

This change, implemented in pull request #493, keeps the workspace catalog pinned to Express 4 for internal development and test stability while allowing Express 5 in consuming applications.

What's next

Fedify 1.10.0 serves as a stepping stone toward the upcoming 2.0.0 release. The optional list() method introduced in this version will become required in 2.0.0, simplifying the interface contract and allowing Fedify internals to rely on prefix scanning being universally available.

The enhanced instrumentation and FedifySpanExporter provide the foundation for implementing the debug dashboard proposed in issue #234. The next steps include building the web dashboard UI with real-time activity lists, filtering, and JSON inspection capabilities—all as a separate package that leverages the standards-based observability infrastructure introduced in this release.

Depending on the development timeline and feature priorities, there may be additional 1.x releases before the 2.0.0 migration. For developers building custom KvStore implementations, now is the time to add list() support to prepare for the eventual 2.0.0 upgrade. The implementation patterns used in the official backends provide clear guidance for various storage strategies.

Acknowledgments

Special thanks to Cho Hasang (@crohasang크롸상) for the NestJS 11 compatibility improvements, and to all community members who provided feedback and testing for the new observability features.

For the complete list of changes, bug fixes, and improvements, please refer to the CHANGES.md file in the repository.

0
0
0
0

연합우주가 적적해서 무얼 해야할지 모르겠어요. 친구해주세요.

자캐 커뮤를 뛰어요.
TRPG를 해요. COC를 주력으로 하지만 늘 도토리로 넣어두는 건 둘수사와 덥크예요. (입문 X)

전대 위주로 특촬을 좋아하고 연뮤를 좋아하지만 최근에는 보는 게 뜸해요. 휴식 중이에요.

0