**Deutsche Bahn に誘拐されて**

2025/12/29 21:24

**Deutsche Bahn に誘拐されて**

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

A Cologne‑to‑Meckenheim RE5 train (ID 28521) departed Cologne Main Station at 15:30 on 24 December 2025 and was already 20 minutes late when it left.
ドイツ・ケルン本駅(ID 28521)から出発したRE5列車は、2025年12月24日15時30分に出発し、すでに20分遅れていた。

The driver announced that “issues around Bonn” would require a detour via Cologne South → Troisdorf → Neuwied, abandoning the usual left‑bank Rhine route.
運転手は「ボン周辺の問題」により、ケルン南駅→トロイスドルフ→ニューヴァイト経由で迂回し、通常の左岸ライン(ライン川沿い)を外れると発表した。

Passengers were not scheduled to stop at Troisdorf; the train instead continued to Neuwied (63 km from the passenger’s grandmother’s house), passing all fifteen stations between Troisdorf and Neuwied.
乗客はトロイスドルフで停車する予定ではなく、列車は代わりにニューヴァイト(乗客の祖母のお宅から63 km)へ進み、トロイスドルフとニューヴァイト間の15駅すべてを通過した。

The journey was far longer than the planned ~35 km route, leaving the narrator feeling “kidnapped.”
この旅程は計画されていた約35 kmルートよりも大幅に長く、語り手は「誘拐された」ような感覚を抱いた。

The scheduled arrival at Bonn was 15:54; DB normally considers trains on time if they are less than six minutes late, so this incident fell outside normal tolerance.
ボンへの予定到着時刻は15:54で、DBは通常6分以内の遅延なら時間通りとみなすため、この件は許容範囲を超えていた。

The passenger plans to seek compensation under DB’s policy (1.50 EUR per kilometre with a minimum payout of 4.00 EUR), which will depend on whether the detour meets coverage criteria.
乗客はDBのポリシー(距離あたり1.50ユーロ、最低支払額4.00ユーロ)に基づいて補償を求める予定であり、迂回がカバレッジ基準を満たすかどうかによって決定される。

本文

もしドイツに住んでいるなら、Deutsche Bahn(DB)によって畜産物のように扱われてきたはずです。ほとんどの友人が語る話があります:彼らはDBで旅をし、夜中に何か牛村で投げ出され、次の列車を待つため数時間も費やしたというもの。私にはもっと良い物語があります ― つまり誘拐されたのです。

2025年12月24日15:30。ケルン中央駅9番プラットフォームD‑G。私はRE5(ID 28521)でメッケンハイムにある祖母の家へ向かいます。予定出発時刻は15:32、ボン到着予定は15:54です。その後S23でメッケンハイムへ――35キロメートル、DBの単位では45分から宇宙の熱的死までの間くらい。

私は早く着いてもっと時間を過ごしたかった。父はトライゾルトに住んでおり、後ほど合流する予定だった。列車に乗ると、遅れは20分。私はこれを「早め」と考えました――少なくとも列車は到着したのです。DBの公式統計では、遅延が6分以内なら「定刻」、キャンセルされた列車はカウントされず、存在しない列車は遅れたとは言えません。

列車が動き出すと運転手が「ボン周辺に問題があります」と発表します。具体的な内容は述べません。誰も質問しません――それを学んだからです。彼はケルン南で下車して地下鉄へ、あるいはトライゾルトまで進み、そこからバスに乗るよう提案しました。私は父がそこで迎えに来て一緒に運転できるようにトライゾルトへ続くことにしました。

運転手が完全迂回経路を告げます――ケルン南→トライゾルト→ノイウィート→コブレンツ。ライン川左岸全域が利用不可です。そのとき、運転手がドイツ語だけで話していることに気付きました。もしあなたがブリュール(13分)を訪れるためケルンに乗った観光客だったら、トライゾルトで非常に混乱したクリスマスを過ごすところでした。

私の隣の女性はチョコレートと花束を持ち、電話で母親に「ママ、ごめんね。遅れちゃう」―一息。「Deutsche Bahn」と言いながら、彼女の母は理解しました。

20分後、私たちはトライゾルトに近づきます。私は立ち上がり荷物をまとめます。父から「駅で待っている」とテキストされます。運転手が再び登場し、「こんにちは皆さん。どうやらトライゾルト駅には登録されていなかったので、間違った線路に乗っています。止めることはできません」―まるで「コーヒーマシンが壊れた」と言うように語ります。沈黙。笑い。さらに沈黙。

私はトライゾルトを窓の外で滑り去るのを見ます。駅の外、駐車場で父は車に座っている――息子を畜産物として通過させているのを眺めています。父から電話が入ります。「列車は止まれなかった」「何?」「次の停車はノイウィートだ」と彼は言います。「ノイウィート?」「それはラインラント=ピラツ州だ」「別の連邦州だね」――そう、分かっているようです。

私は35キロメートルを移動しようとしたのに、祖母の家から63キロメートル離れています。トライゾルトとノイウィートの間には15駅があり、すべて通過します。

ある時点で乗客ではなく貨物――牛運搬車へ変わります。「ムーホッホ」と鳴きます。牛村(ドイツ語でKuhdorf)へ向かう牛輸送車です。牛は比喩的に使われることが多いです。

私はオーバーカセル付近でこの点に到達しました。DBは以前、17人のマヨルカ島村・ルカルカリへのバスを運行していた――私もそれを家に持ち帰りたかったものです。

ドア付近の英語話者が不安げに叫びます。「何が起こっているんだ?止まらなかった?」「この線路には登録されていない」―「でも、どこで止まるんだ?」「ノイウィート。55分」――繰り返しますが、声は小さく。「私は誘拐されている」

隣の座席にいた乗客は40分間本を読んでいて、ページをめくります:「Deutsche Bahn」。私は補償金1.50ユーロを見ました。最低支払額4.00ユーロです。損失として誘拐されたのです。

ノイウィート駅――最終目的地。写真:Frila、CC BY‑SA 3.0)

同じ日のほかのニュース

一覧に戻る →

2025/12/30 6:46

USPS(米国郵便公社)が切手印日付システムの変更を発表しました。

## Japanese Translation: > **概要:** > USPSは最終規則(FR Doc. 2025‑20740)を発行し、国内郵便マニュアルに「セクション 608.11 —『切手印と郵便保有』」を追加しました。この規則では、切手印の定義が正式に示され、該当する印記がリストアップされています。切手印は印付け日でUSPSがその物件を保有していることを確認しますが、必ずしもアイテムの最初の受理日と同一ではありません。USPSは通常業務で全ての郵便に切手印を貼らないため、切手印が欠落していても、その物件が未処理だったとは限りません。機械による自動切手印は、施設内で最初に行われた自動処理操作の日付(「date of the first automated processing operation」)を表示し、投函日ではなく、地域輸送最適化(RTO)や路線ベースのサービス基準により受理日より遅くなることがあります。切手印は小売ユニットからの輸送後やカレンダー日がまたがる場合に付けられることが多いため、郵送日を示す信頼できる指標ではありません。同一日の切手印を確保するには、小売窓口で手動(ローカル)切手印を依頼できます。小売窓口で料金を支払うと「Postage Validation Imprint(PVI)」が付与され、受理日が記録されます。また、郵便証明書、登録メール、または認定メールは提示日を裏付ける領収書として機能します。この規則の影響は税務申告において重要です。IRC §7502 は、文書が期限までに物理的に届けられなかった場合に、提出の適時性を判断する際に切手印の日付を使用しています。

2025/12/30 1:07

**Zig における静的割り当て** Zig のコンパイル時メモリ管理を使えば、実行時ではなくコンパイル時にストレージを確保できます。データ構造のサイズが事前に分かっている場合やヒープ割り当てを避けたいときに便利です。 ### 重要概念 - **コンパイル時定数** `const` や `comptime` の値を使い、コンパイラがコンパイル中に評価できるサイズを記述します。 - **固定長配列** リテラルサイズで配列を宣言します。 ```zig const buf = [_]u8{0} ** 128; // 128 バイト、すべてゼロ初期化 ``` - **静的フィールドを持つ構造体** 固定長配列やその他コンパイル時に決まる型を含む構造体を定義します。 ### 例 ```zig const std = @import("std"); // 静的サイズのバッファを持つ構造体 pub const Message = struct { id: u32, payload: [256]u8, // 256 バイト、コンパイル時に確保 }; // 静的割り当てを使う関数 fn process(msg: *Message) void { // ヒープ割り当ては不要;msg はスタック上またはグローバルに存在 std.debug.print("ID: {d}\n", .{msg.id}); } pub fn main() !void { var msg = Message{ .id = 42, .payload = [_]u8{0} ** 256, // すべてのバイトをゼロで初期化 }; process(&msg); } ``` ### 利点 - **決定的なメモリ使用量** – サイズはコンパイル時に分かる - **実行時割り当てオーバーヘッドがゼロ** – ヒープアロケータ呼び出しなし - **安全性** – コンパイラが境界と寿命を検証できる ### 使うべき場面 - 固定長バッファ(例:ネットワークパケット、ファイルヘッダー) - 短時間しか存続しない小規模補助データ構造 - 性能や決定的な動作が重要な状況 --- コンパイル時定数・固定配列・構造体定義を活用することで、Zig は最小限のボイラープレートで最大の安全性を保ちつつメモリを静的に割り当てることができます。

## Japanese Translation: > **概要:** > このプロジェクトは、Zigで書かれた軽量Redis互換のキー/バリューサーバー「kv」を構築し、最小限のコマンドセットで本番環境に適した設計を目指しています。コアデザインでは起動時にすべてのメモリを確保することで、実行中にダイナミックヒープを使用せず、レイテンシスパイクやユース・アフター・フリー(use‑after‑free)バグを回避します。接続は`io_uring`で非同期に処理され、システムは3つのプール(Connection、受信バッファプール、送信バッファプール)を事前確保し、デフォルトでは約1000件までの同時接続数をサポートします。各接続は設定パラメータから派生した固定サイズの受信/送信バッファを使用します。 > コマンド解析はRedisのRESPプロトコルのサブセットに従い、Zigの`std.heap.FixedBufferAllocator`を用いてゼロコピーで解析し、各リクエスト後にアロケータをリセットします。バッファサイズは`list_length_max`と`val_size_max`に依存します。 > ストレージは未管理型の`StringHashMapUnmanaged(Value)`を使用し、初期化時に`ensureTotalCapacity`で容量を確保します。キーと値は共有`ByteArrayPool`に格納され、マップはポインタのみを保持します。削除操作では墓石(tombstone)が残り、墓石数が増えると再ハッシュが必要になる場合があります。 > 設定構造体(`Config`)は `connections_max`、`key_count`、`key_size_max`、`val_size_max`、`list_length_max` などのフィールドを公開し、派生アロケーションで接続ごとのバッファサイズを決定します。デフォルト設定(総計約748 MB、2048エントリ)では `val_size_max` または `list_length_max` を倍増すると、割り当て量が約2.8 GBに上昇する可能性があります。 > 今後の作業としては、カスタム静的コンテキストマップ実装の改善、より良いメモリ利用を実現する代替アロケータの探索、境界検査(fuzz)テストの追加による限界確認、および墓石再ハッシュ処理への対応が挙げられます。

2025/12/27 20:30

**フレームグラフ 対 ツリーマップ 対 サンバースト(2017)**

## Japanese Translation: **概要:** Flame グラフ(SVG)はディスク使用量を高レベルで明確に示します。たとえば、Linux 4.9‑rc5 では `drivers` ディレクトリが全容量の50%以上を占め、`drivers/net` サブディレクトリは約15%です。Tree マップ(macOS の GrandPerspective、Linux の Baobab)は非常に大きなファイルを素早く検出できますが、高レベルのラベルが欠けています;Baobab のツリー表示では各ディレクトリの横にミニバーグラフが表示されます。Sunburst(Baobab の極座標図)は視覚的に印象的ですが、角度で大きさを判断するため長さや面積よりも誤解しやすいです。他のツール―`ncdu` の ASCII バーと `du -hs * | sort -hr` ―はテキストベースで迅速なサマリーを提供しますが、同時に一階層のみ表示されます。 提案されたユーティリティは、これら三つの可視化(Flame グラフ(デフォルト)、Tree マップ、Sunburst)すべてを組み合わせるものです。Flame グラフは読みやすさ・印刷性・最小スペース使用量が優れているため、多数のサンプルファイルシステムでテストした後にデフォルトとして採用されます。このアプローチは、ディスク使用量を簡潔かつ印刷可能なスナップショットとして提供し、ユーザーや開発者がスペースを占有する項目をより効率的に検出できるよう支援します。アイデアは ACMQ の「The Flame Graph」記事と「A Tour through the Visualization Zoo」に引用された既存の研究に基づいています。 **反映された主なポイント:** flame グラフの高レベルビュー、Tree マップの大きなファイルを素早く検出できるがラベルが欠けている点、Sunburst の視覚的魅力とサイズ認識の問題、他ツールの制限、および提案ツールの三つのビュー(デフォルトは flame グラフ)と引用元への参照。

**Deutsche Bahn に誘拐されて** | そっか~ニュース