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.

0
0
0
0
1
0

1月・富山県氷見市
鮮烈な色に染まった立山連峰の夜明けと漁船の光
6月・富山県富山市
アユの
遡上(そじょう)
8月・富山県氷見市
能登半島地震からの復興支援ブルーインパルス展示飛行
12月・石川県珠洲市
見附島の星空

今年はとても印象に残る写真が沢山撮れました。

2

この前デスクの配置を変えてモニタを縦長+横長の組み合わせにしたんですが、結果として縦長のほうの画面で縦長写真がメチャクチャ映えることに気づいた

1
0
0
0

트위터 정신나간 그림수정 기능 테스트

제 그림 중 NG표시를 세 개 붙여본 그림에서 표시를 떼어 달라,고 요청해 봤어요. 뭔가의 불쾌한 골짜기 모양새가 되어서 일단 다 가리고 접음; 아직은(?) 이렇게 통째로 가리고 흑백 글씨를 갖다박으면 인식 방해 성공적으로 할 수 있는 것 같지만 덜 가리거나 희미하게 넣으면 그냥 없어진다고 봐야 하지 않을까요ㅠ
저곳에 다시는 뭘 올리지 않는다 정도가 아니라 올렸던 것도 다 삭제해야 할까 좀 심각하게 고민되기 시작했어요;
x.com/amita81_/status/19011239

1
2
0
0
0

"미국 기업 쿠팡 괴롭히지 마" 가짜뉴스 동원 '한국 때리기'…전방위 로비의 결과? n.news.naver.com/mnews/rankin... 정말 용서를 못 하겠어요. 발신 주체는 달랐지만 "한국의 쿠팡 규제가 한미 FTA 위반이며 미국 기업 탄압"이라는 동일한 논리가 반복됐습니다. 심지어 일부 매체에선 이재명 대통령이 쿠팡의 파산을 지시했다는 허위 발언까지 나왔습니다

[단독] "미국 기업 쿠팡 괴롭히지 마" 가짜뉴스 동원...

0
1

Today in it's pandoc(1).

I author most of my prose in raw HTML (something I've done since the 90s, stemming from my appreciation of WordPerfect's "Reveal Codes" functionality), or occasionally I'll use Markdown. It's nice to just hand the file off to pandoc and get some other format (PDF, Word, RTF, plaintext, whatever).

Is the output flashy? Not really. Is it what I would get if I hand-crafted the desired output document? No. But does it let me lazily do conversions with basically zero effort? Yep!

0
0

Checking out (and testing) the new Social Web Reader that’s been wrapped up in the plugin.

Not bad for a first draft - and I look forward to seeing how it handles likes, boosts and quotes. Could never quite gel with the Friends plugin, but this should serve my needs for when I finally move over to running everything from the site.

(Still needs a bit of work for swapping between the Site and User profiles though.)

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
0
0
0
0

1枚目:12月6日/古い機種だがオールド母艦としてα7RIIを買って、NIKKOR-P Auto 105mm F2.5を使った際にあまりの写りに感動した一枚

2枚目:7月20日/山口ツーリング 海と自販機と広い風景が綺麗で旅情のある感じで気に入っている

3枚目:6月22日/京王井の頭公園駅 VRChatをしていなければまず来ることはなかった場所

4枚目;4月7日/津山鶴山公園 桜の海に浮かぶ城 本当にいい風景だ

1
0
0

트위터 정신나간 그림수정 기능 테스트

제 그림 중 NG표시를 세 개 붙여본 그림에서 표시를 떼어 달라,고 요청해 봤어요. 뭔가의 불쾌한 골짜기 모양새가 되어서 일단 다 가리고 접음; 아직은(?) 이렇게 통째로 가리고 흑백 글씨를 갖다박으면 인식 방해 성공적으로 할 수 있는 것 같지만 덜 가리거나 희미하게 넣으면 그냥 없어진다고 봐야 하지 않을까요ㅠ
저곳에 다시는 뭘 올리지 않는다 정도가 아니라 올렸던 것도 다 삭제해야 할까 좀 심각하게 고민되기 시작했어요;
x.com/amita81_/status/19011239

1
1

1枚目:12月6日/古い機種だがオールド母艦としてα7RIIを買って、NIKKOR-P Auto 105mm F2.5を使った際にあまりの写りに感動した一枚

2枚目:7月20日/山口ツーリング 海と自販機と広い風景が綺麗で旅情のある感じで気に入っている

3枚目:6月22日/京王井の頭公園駅 VRChatをしていなければまず来ることはなかった場所

4枚目;4月7日/津山鶴山公園 桜の海に浮かぶ城 本当にいい風景だ

1
0

그러고보니 며칠전 명동성당 앞에서도 종 울리며 모금하고 있더라구요. 무심코 지나쳤지만 생각해보니 상도덕(?)이 없는 일이었네여….

RE: https://bsky.app/profile/did:plc:f4qqajxpmkzzkn6ixty3wige/post/3maq3kgbkbk2v

0
1
1
2
0
1
2

今まで一生懸命がんばってきたし、仲良しさんもいるし、いっぱい思い出もあるし、Xはまだ消したくない……みんなが声を上げたら改善されてくれないかな……甘いのかも知れないけど、無くしたくないよ……

1

Does Michael Larabel have a successor? Phonorix has a bus number of 1, if Larabel is unable to keep working on it for any reason, half of FOSS news and the entirety of Linux hardware benchmarking would go dark. Truly a terrifying thought.

0
0
2

Dream scenario: lottery win → robust Loops infrastructure + $1M creator fund.

Reality: building toward ethical monetization while pursuing grants and donations.

A non-profit or public benefit corp structure could help us manage growth responsibly.

But honestly?

The Loops.video community is already magical. We're building something real ✨

0
3
0
0
2