← ホームに戻る28 件のニュース
Show HN: Tiny VM sandbox in C with apps in Rust, C and Zig

Show HN: Tiny VM sandbox in C with apps in Rust, C and Zig

## Japanese Translation: uvm32 は、単一の C ファイルで書かれたミニマリストで依存関係を持たない仮想マシンサンドボックスです。 STM32L0 のような非常に小型のマイクロコントローラ上で動作し、4 KB 未満のフラッシュと 1 KB の RAM を使用します。静的割り当てのみで非同期設計となっています。 この VM は RISC‑V のサブセットを実装しており、軽量な管理インタフェースを公開しています。「if‑this‑then‑that」ロジックのために Lua、Duktape、MicroPython などの軽量スクリプトエンジンを置き換え、信頼できないコンポーネントや不安定な部品をサンドボックス化し、ターゲットコンパイラなしでモダン言語の「一度書けばどこでも実行できる」スクリプトを書けるようにすることが目的です。 主な特徴: - バイトコードアプリは C、Zig、Rust、またはアセンブリで記述可能。 - 非ブロッキングでシンプルな実行モデル。安全かつ最小限の型付けを備えた FFI を使用し、ホスト IO(stdio/ネットワーク)は想定していません。 - デザインは高速よりも安全性を優先しています。 - すべてのソースコードは `uvm32/` ディレクトリにあります。最小限のホスト例は `host‑mini` にあり、より高度なホストは `host/`、`host-parallel`、`host-arduino` にあります。 サンプルアプリケーションは VM の機能を示しています(C: helloworld, heap, conio, lissajous, maze, fib, sketch; Zig: zig‑mandel, zigtris, zigalloc, zigdoom; Rust: rust‑hello; アセンブリ: hello‑asm)。 ビルドとテスト用の Dockerfile が提供されており、`make dockerbuild`、`make dockershell` で構築・起動し、その後 `make` を実行してサンプルをコンパイル・実行します。ドキュメントはヘッダファイル `uvm32/uvm32.h` と `doc/README.md` にあります。本プロジェクトは MIT ライセンスで公開されています。

2025/12/13 7:02
Rats Play DOOM

Rats Play DOOM

## Japanese Translation: > **概要:** > 著者らは、ラットがDOOMをプレイできる完全にオープンソースの仮想現実装置をリリースしました。ゼロから構築されたこのシステムには、ハードウェア設計・ファームウェア・ソフトウェアがGitHubに掲載されており、他研究室でも簡単に再現または改良できます。バージョン 1(v1)はニューヨークのヴィクトール・トー氏によって開発され、ラットにDOOMコリドーを走行させるよう訓練しました。この実装はViceとPC Gamerで紹介されました。 > > 改良版(v2)はよりモジュラー化され、180°×80°の視野を持つ折りたたみ可能なAMOLEDスクリーン、新しいボールドライバー、強化された給餌器、ゲームイベントに同期した正確な10 µLの砂糖水投与が可能な改良リワード回路を備えています。追加センサーとランニングマシンのボール周囲に設置された光学フロー運動捕捉システムでトラッキング精度が向上しています。 > > ソフトウェアはPythonベースのモジュラースタック(arena_scenario.py)で、PC上で実行され、Raspberry PiとTCP経由で通信します。Piはリアルタイムセンサー読み取り・ボール駆動・リワード制御を担当します。すべてのコンポーネントはGitHubに文書化されており、3Dプリント可能なパーツや回路図も公開されています。 > > チーム(ヴィクトール・トー=ゲーマーラットコーチ、サンドル・マクラ=電気技師、アコス・ブラシュェク=ドキュメントリード)は、ラットが約2週間で慣れることを示しましたが、完全な訓練はまだ完了していません。 > > 現在の制限として、自動キャリブレーションスイートが無いため、ユーザーはセンサーの整列とリワードタイミングを手動で検証する必要があります。 > > 今後の課題は完全な訓練プロトコルの完成、キャリブレーションツールの改良、および他の行動タスクや種へ装置を拡張することです。低コストで完全にオープンなプラットフォームを提供することで、このプロジェクトは世界中の神経科学研究室の参入障壁を下げ、動物VR実験に依存する研究のスピードアップに寄与できる可能性があります。

2025/12/13 5:15
Security issues with electronic invoices

Security issues with electronic invoices

## Japanese Translation: --- ## 改訂要約 EUのe‑インボイス指令 (2014/55/EU) は、加盟国に電子請求書用の標準化されたXMLフォーマットを採用することを義務付けています。 この指令は越境取引の請求処理を円滑にするために設計されていますが、原生XMLとXSLT 2.0への依存が実際のセキュリティ問題を招いています:XML には「XML External Entity」(XXE)という欠陥があり、外部エンティティが無効化されていない場合、攻撃者は任意のファイルを読み取ることができます。e‑インボイスで使用されるライブラリ(Java のデフォルトパーサーと EN16931 バリデーションに必要な唯一の無料 XSLT 2.0 エンジンである Saxon)は、これらのデフォルト設定を有効にしたまま配布されており、脆弱性があります。 EU が公開しているセキュリティテストスイートは、**kivitendo**、**peppol‑py**、**ZUV** など実際の製品で XXE バグを検出しました。W3C の議論からは、XSLT 2.0 のサポートは広範な導入を想定していませんでしたが、それでも指令では EN16931 のバリデーションに XSLT 2.0 が必要とされています。 EN16931 のパート 1・2 は無料ですが、以降のパートは有料であり、CEN や国別機関(例:EVS)へのリンクが壊れているためアクセスが困難です。EU のテストスイートは <https://github.com/ebt‑eu/einvoice-security-tests> にホストされています。 既知の XXE 脆弱性は CVE‑2025‑66370(kivitendo)、CVE‑2025‑66371(peppol‑py)および CVE‑2025‑66372(Mustang < 2.16.3)として登録されています。現在、Mustang が推奨されますが、バージョン 2.16.3 以前も XXE 欠陥を抱えていました。 指令の複雑な要件がベンダーをこれらの脆弱なライブラリへと押し込むと、さらなる脆弱性が表面化する可能性があります。これは規制改定を招くか、市場をより安全な代替手段や新しい標準に向ける動きにつながります。結果として、データ漏洩リスクや請求書処理パイプラインのセキュリティ不備による罰金・評判損失といったリスクがユーザーと企業双方に及びます。簡単に言えば、現行の XML ベースのアプローチは EU e‑インボイスにおけるコンプライアンスとセキュリティの両面を脅かしています。

2025/12/13 5:28
Ensuring a National Policy Framework for Artificial Intelligence

Ensuring a National Policy Framework for Artificial Intelligence

## Japanese Translation: ドナルド・J・トランプ大統領が2025年12月11日に署名した新たな行政府命令は、行政命令14179を撤回し、米国のAIリーダーシップへの障壁を取り除くものです。 この命令は、州レベルで矛盾するAI法規制を先行して排除し、子どもを保護し、検閲を防止し、著作権を尊重し、コミュニティの安全を確保するとともに、責任あるAI利用を奨励する連邦枠組みを設置するよう行政に指示します。 30日以内に司法長官はAI訴訟対策タスクフォースを結成し、90日以内に商務省長官は既存の州規制を評価し、BEAD資金提供に関する政策通知を発行し、連邦基準への適合を助成資格の条件とします。 FCC委員長はAIモデルの報告基準採択手続きを開始し、FTC委員長は誤解を招く慣行の執行に関する方針声明を発表します。 子ども安全性、AI計算/データセンターインフラ、州調達、およびその他のテーマを除外した統一的な全国AI枠組みの立法提案が作成されます。この命令は強制力のある権利や利益を創出せず、その費用は商務省に負担させられます。

2025/12/12 8:56
SQLite JSON at full index speed using generated columns

SQLite JSON at full index speed using generated columns

## Japanese Translation: SQLiteは、仮想生成列と組み込みの `json_extract` 関数を用いたインデックス作成により、追加作業なしでJSONデータをリレーショナルテーブルとして扱えるようになりました。DB Pro の Jay は3か月間の実験で、次のように列を定義すると ```sql GENERATED ALWAYS AS (json_extract(...)) VIRTUAL ``` JSONパスにインデックスを作成できることを発見しました。これにより、単一のテキストフィールドにデータを保持しながら即時検索速度が得られます。この手法はスキーマレスなJSONストアを高速クエリエンジンへ変換し、従来一般的だったコストの高いマイグレーションやETLステップを排除します。実際に libSQL や Turso などのライブラリが SQLite を使用しており、DB Pro はローカルでそれを活用しています。Jay はこの試験中に発見した他の SQLite 機能を扱う短いブログシリーズを計画しており、追加インデックステクニックや実際の事例も含む予定です。軽量データベースに依存する開発者・企業にとって、このパターンを採用すれば JSON の柔軟性を保ちつつリレーショナル性能が得られ、スキーマ変更が簡素化されクエリ速度も向上します。

2025/12/12 22:25
Pg_ClickHouse: A Postgres extension for querying ClickHouse

Pg_ClickHouse: A Postgres extension for querying ClickHouse

## Japanese Translation: ## 改訂版サマリー この発表では、**pg_clickhouse v0.1.0** を紹介しています。これは PostgreSQL 拡張機能で、ClickHouse の分析クエリを再作成することなく PostgreSQL から直接実行できるようにします。Apache 2 ライセンスの下で配布され、PGXN と GitHub で入手可能です。Docker を使って起動できます(例:`docker run --name pg_clickhouse -e POSTGRES_PASSWORD=my_pass -d ghcr.io/clickhouse/pg_clickhouse:18`)。 拡張機能はクエリ実行を ClickHouse にプッシュし、準備済み INSERT、TLS(二進数および HTTP)、JSON 処理、およびほぼすべての PostgreSQL 集約関数に対応しています。TPC‑H のベンチマークでは SEMI JOIN サポート追加後に高いプッシュダウン率が確認され、コストベースのチューニングによりプランナーはさらに多くの作業をプッシュダウンするようになります。 この拡張機能は 2019 年に開始された旧 clickhouse_fdw フォークをモダナイズし、現在の FDW API を採用、CI/テストと Linux‑専用互換性を追加、PostgreSQL 13–18 と ClickHouse 22–25 のテストスイートをサポートします。計画中のロードマップ項目には、残りの TPC‑H プッシュダウン完了、完全な集約・データ型サポート、サブクエリプッシュダウン、サーバー/ユーザー設定処理、軽量 DELETE/UPDATE、COPY バッチ挿入、および UNION プッシュダウン(さらなる DML 強化前)があります。 ClickHouse テーブルを単一スキーマ内のネイティブ PostgreSQL オブジェクトとして公開することで、この拡張機能は移行を容易にし、最小限のコード変更で分析性能を向上させます。

2025/12/11 2:14
4 billion if statements (2023)

4 billion if statements (2023)

## Japanese Translation: この記事では、8ビット整数のパリティをチェックするブルートフォースCプログラムが、ソースコードまたはマシンコードで網羅的な`if`比較を自動生成することで、より大きいビット幅へスケールできることを示しています。10ビットまでしか機能しない手書きの`if`文チェーンから始め、著者はPythonを使って8ビット値に対して全256ケースを網羅した約130 k行のCファイルを生成します。16ビットに拡張すると、同じソースサイズから約2 MBの実行可能ファイルが得られます。32ビットにスケールすると、約330 GBのCファイルと約2 MBのバイナリが作成されますが、MSVCは16 777 215というヒープ空間制限で行134,397,076でクラッシュします。Windows PE形式も4 GBまでしかバイナリをロードできないため、330 GBのソースは単一実行ファイルとして読み込めません。これらの制約を回避するために、著者は全4 294 967 296個の32ビット値をループ処理するアセンブリルーチンを書きました。生成されたマシンコードは約40 GBで、`CreateFileMapping`/`MapViewOfFile`でメモリマップできます。`atoi`パースバグ(`strtoul`に置換)を修正した後、プログラムは32ビット数値の偶奇判定をすべて正しく行い、Core i5‑12600K上で約10秒かかります。これらの実験は、Windows上でのコード生成の実用的な限界―コンパイラヒープ制限、OSファイルサイズ制限、および実行形式制限―を明らかにし、網羅的ケース列挙が本番コードでは通常非現実的であることを示し、開発者に大規模決定テーブル用のより効率的なアルゴリズムやツールを探すよう促します。

2025/12/07 0:34
Fast Median Filter over arbitrary datatypes

Fast Median Filter over arbitrary datatypes

## Japanese Translation: 記事は、中央値フィルタのステップバイステップ最適化を追跡し、V1–V4 の各バージョンが大きな画像で実行時間を秒からミリ秒へと削減する方法を示しています。 - **ベースライン(V1)。** ピクセルごとのソートは \(O(r^2+r^2\log r^2)\) です。AMD EPYC 4564P 16コア CPU 上で、1000×1000 の uint8/float/double 画像に対し、5×5 カーネルの実行時間は約 77 ms(uint8)、95 ms(float)、94 ms(double)です。 - **V2。** ソートを quick‑select (`std::nth_element`) に置き換え、約 4.2 倍の高速化を達成します。例として、30×30 カーネルは約 5 s から約 1.5 s(uint8)へと短縮されます。 - **V3。** OpenMP 並列処理を追加し、ブロックが並行に処理されるため、同一ハードウェアで約 16 倍の壁時計時間改善が得られます—30×30 uint8 は ≈13.6 ms です。 - **V4。** 順序変換ビットセットを導入し、ピクセル値のランクを 64‑bit ワードに格納します。中央値はウィンドウシフト後に popcount と _pdep_u64/ctzll イントリニックで求められ、V1 に比べ約 420 倍の高速化(5×5 は ≈6.9 ms uint8、10×30 は ≈15.7 ms float)を実現します。 - アルゴリズムはジグザグトラバーサルを採用し、ステップごとに \(O(h_x+h_y)\) のピクセルのみを更新し、初期ブロックソートを主なデータ型依存コストとして保持します。以降の更新はビットセット操作です。 - データ型汎用性(例:uint8 に限定)を排除すると、Huang の 256‑bit ヒストグラムや Perreault–Hebert 列ヒストグラム、Moruto のウェーブレット中央値などのアルゴリズムでさらに高速化が可能です。 - これらの成果により、中央値フィルタはリアルタイムビデオと組み込みビジョンシステムで実用化され、カメラ・医療画像処理や自律車両感知におけるノイズ除去速度が向上します。

2025/12/07 0:08
String theory inspires a brilliant, baffling new math proof

String theory inspires a brilliant, baffling new math proof

## Japanese Translation: > **概要:** > マクシム・コンツェビッチは、ミラー対称性を用いて「五変数(四次元多様体)のほとんどの3次多項式方程式がパラメータ化できない」ことを発表した。証明は2019年モスクワでの講演に続くもので、ホモロジー・ミラー対称性と2023年イリタニ公式(Hodge「原子」がどのように変換されるか)に依存している。COVID封鎖期間中にトニー・ユエ・ユーがチームに加わった後、二年以上にわたる改良を経て、著者らはすべての該当四次元多様体に「不可縮性原子」が存在し、単純な4次元空間へと崩れないことを示した。これによりパラメータ化不可能性が証明された。この論文は8月に発表され、パリ・北京・韓国でのセミナーで検討中である。コミュニティは興奮しつつも懐疑的であり、独立した検証を待っている。確認できれば、多項式分類が進展し、コンツェビッチのミラー対称性枠組みが強化され、代数幾何学や関連分野の今後の研究に影響を与える可能性がある。

2025/12/13 1:23
Async DNS

Async DNS

## Japanese Translation: この記事では、バックグラウンドスレッドを生成したりシグナルを使用せずにノンブロッキング DNS クエリを実行する方法について説明しています。著者はまず `pthread_cancel` を使って非同期リクエストのタイムアウト処理を試みましたが、失敗しました。他にも検討したオプションとして、別スレッドで `getaddrinfo()` を実行する(古典的な解決策)、glibc の `getaddrinfo_a`(非同期だがポータブルではなくイベントループに組み込むのが難しい)、そして c‑ares(スレッドバックエンドまたはイベント駆動システムを使用できるが、コールバックでチャンネル停止を防ぐために追加の後処理が必要)があります。著者は c‑ares デモを OpenBSD の `asr` ライブラリへ切り替えて書き直しました。`asr` は単一呼び出しの非同期 API を提供し、OpenBSD のイベントループ機構(OpenSMTPD や libc で使用)とシームレスに統合できます。新しいコードは元の c‑ares サンプルよりも短く、明瞭です。この投稿(2025年9月25日、ユーザー *tedu* が執筆)は、将来のネットワークアプリケーションが `asr` を採用することで DNS 処理を簡素化し、バグを減らし、メモリ使用量を削減し、イベント駆動型プログラムのパフォーマンスを向上させることができると示唆しています。

2025/12/13 1:52
CM0 – A new Raspberry Pi you can't buy

CM0 – A new Raspberry Pi you can't buy

## Japanese Translation: Raspberry Pi Compute Module 0(CM0)は、512 MiBのLPDDR2 RAMとWiFiを備えたeMMCストレージ付きでフルLinuxを動作させる、非常に小型かつ低価格なボードです。HDMI・イーサネット・USBなどの一般的なポートが欠けているため、主にコスト重視の組み込みプロジェクト向けであり、ホビーユーザー向けではありません。CM0はCompute Moduleシリーズの中で最小サイズで、切手よりわずかに大きく、PCB統合用にカステリング加工されています。中国国外で単体ユニットが販売されていないため、開発者はEDAtecのCM0NANOブレークアウトボード(ED‑CM0NANO)を使用してイーサネット・USB 2.0・フルサイズHDMI・USB‑C電源/書き込み・ディスプレイ/カメラコネクタ、GPIO、および追加ヘッダーを付加する必要があります。eMMCを書き込むには、RPI_BOOT_SWスイッチをRTCバッテリースロットに設定し、rpibootとRaspberry Pi Imagerを使用します。Pi OS 13をインストールできます。オンボードeMMCの転送速度は約19–20 MB/sで、新しいCM5モジュールと比べて遅く、LPDDR2メモリも生産停止となっているため供給制限が発生しています。Raspberry Pi Globalは現在、CM0を中国国外へ出荷する計画はないことを確認しました。このモジュールはホビイストではなく、低価格の量産製品ライン向けです。ファームウェアはEDAtecのリポジトリからダウンロードでき、追加ベンチマークは著者のsbc‑reviews号で入手可能です

2025/12/13 0:19
Microservices should form a polytree

Microservices should form a polytree

## Japanese Translation: **概要:** 主なポイントは、マイクロサービスアーキテクチャがしばしば絡み合うことですが、それらを **ポリツリー**(方向性のある非循環グラフで、方向を無視すると木構造に見えるもの)として整理することで、システムを整頓済み・予測可能かつ進化しやすく保てるということです。 ポリツリーは各サービスが自分の状態を所有し、失敗を下流ノードへ限定し、プロセスが必ず終了するよう保証します。これにより、データパスとイベントフローが明確で一意になり、デバッグ・監視・フォルトトレランスが格段に容易になります。 サイクル(有向または無向)が入ると、共有状態が生まれ失敗が拡散しリソースの螺旋を引き起こし、トラブルシューティングが難しくなります。一般的な対処法は、サービスを一つに統合するか、グラフを再構築してそのサイクルを断ち切ることです。 チームがポリツリー制約を採用すれば、サービスは独立して変更でき、新人エンジニアのオンボーディングが速くなり、障害パターンも予測可能に保たれます。結果として、アウトレイジの連鎖が減少し、問題解決速度が向上し、スムーズなオンボーディングとより保守性の高いコードベースへとつながり、マイクロサービス展開全体で信頼性を高め技術的負債を削減します。

2025/12/08 16:24
Good conversations have lots of doorknobs (2022)

Good conversations have lots of doorknobs (2022)

## Japanese Translation: **改訂版概要:** この記事は、会話の成功が「アフォーダンス」(相手に応答を促す機会)を作り認識することにかかっていると主張し、単なるターンテイキングや情報提供では不十分だと述べています。即興コメディの「取る‑与える」ルールを引用し、参加を招く側(giver)と発表する側(taker)のミスマッチが対話を停滞させる様子を示しています。一対一のチャットではターンテイキングは明確ですが、大人数の場合は次に誰が話すかという線がぼやけ、遅い「セミナー風」交流や強制的なペース設定につながり、共有機会が限定されます。 記事で引用された研究は、ミリ秒単位の高速返信が多くのアフォーダンスを迅速に生み出すため、より高いエンゲージメントを示すと報告しています。著者はまた、心理的バイアス―特に自我中心性や個人ストーリーへの過度な魅力評価―が有用なプロンプト提供の可能性を低下させることを強調しています。「36 質問で恋に落ちる」実験や脱出ゲーム趣味研究など、熱意が相互作用を妨げる例を挙げています。 主な結論は、与える/取る思考からアフォーダンス重視の姿勢へ移行することで、職場チームワーク、オンライン掲示板、AIチャットシステムなどでより迅速かつ機会豊富なやり取りを促進できる可能性があるという点です。

2025/12/08 20:37
Can I use HTTPS RRs?

Can I use HTTPS RRs?

## Japanese Translation: > **概要:** > RFC 9460(2023年11月公開)は、ホストがDNSで直接安全なサービスを宣伝できるSVCBとHTTPS DNSレコードタイプを導入しました。仕様は既に2年以上前ですが、ブラウザのサポートは未だ不均一です。Safari はすでに apex‑domain エイリアス用に AliasMode を実装していますが、Chrome と Firefox では実装されていません。3 つのブラウザすべてが ALPN を扱いますが、ECH のサポートは Chrome と Firefox に限られます。IP Hint の取り扱いは異なります:Safari は A/AAAA レコードが存在しない場合でもヒントを受け入れますが、Chrome と Firefox ではそれらのレコードが必要です;A/AAAA レコードがあるときは Chrome がヒントを拒否し、Firefox と Safari は受け入れます。ポートパラメータは Chrome で無視されますが、Firefox と Safari では尊重されます。記事では Chromium および Firefox の既知バグを引用してこれらのギャップを説明しています。macOS 15.7.2 環境(Chrome 43.0.7499.41、Firefox 146.0、Safari 26.1)で実行したテストコマンドが挙げられています。RFC 9460 の「Use of HTTPS Resource Records」および「Bootstrapping HTTP/1.1, HTTP/2, and HTTP/3」の文書へのリンクも含まれています。この記事は 2025年12月12日に最後に更新され、将来のブラウザリリースでこれらのギャップが埋められる(Chrome/Firefox に AliasMode を追加し、IP‑Hint の取り扱いを修正し、ポートパラメータを尊重する)と予測しています。それまでに、DNS サービスディスカバリーに依存した HTTPS のみのサービスを展開する開発者は障壁に直面し、ユーザーを混乱させ、サイト運営者がシームレスな安全接続を期待している際に導入を複雑化させる可能性があります。

2025/12/13 7:34
Epic celebrates "the end of the Apple Tax" after court win in iOS payments case

Epic celebrates "the end of the Apple Tax" after court win in iOS payments case

## Japanese Translation: ## 要約 第9巡回上訴裁判所は、三名の陪審員からなるパネル決定で、ヤヴォン・ゴンサレス・ロジャース地区裁判官が下したAppleに対する蔑視判決を大部分で支持しました。Appleは2021年の仮処分違反として、App Store外で行われる支払いに27%の手数料を課し、外部支払リンクに過度に広範なデザイン制限を設けたと判断されました。裁判所はその手数料が抑止力を持つと認定し、Appleのプロセス重視主張(弁護士・依頼人特権の主張を含む)を却下しました。また、内部協議において準拠可能な代替案を検討することを拒否したため、Appleは悪意を持って行動したと判断しました。 地区裁判所は、AppleがApp Store外で行われる支払いに対して料金を課すことを禁じていますが、上訴審は「実際のユーザー保護・プライバシーコスト」に連動する「合理的な手数料」の設定が許容される可能性があると示唆しました。金額の決定は地区裁判所に委ねられます。 Epic Games CEOティム・スウィーニー氏は、結果が世界中の開発者に利益をもたらすと予想し、「合理的な手数料」は「非常に小さく」なるべきであり、外部支払リンクをレビューする際にはiOSアプリの更新ごとに数十ドルから百数十ドル程度になると述べました。低いまたはゼロの料金が課せられれば、開発者はコスト削減や支払いオプション拡充が可能となり、App Storeエコシステム内で競争を高めることが期待されます

2025/12/13 1:04
Google releases its new Google Sans Flex font as open source

Google releases its new Google Sans Flex font as open source

## Japanese Translation: **改訂サマリー:** Google は、SIL Open Font License の下で公開されたオープンソースの可変フォント「Google Sans Flex」をリリースしました。完全に新規構築され、Google Sans を多軸再構築したこのフォントは、タイポグラファー David Berlow(Font Bureau)が設計し、画面や OS インターフェイス向けに最適化されています。ウェイト・幅・オプティカルサイズ・スラント・丸みを帯びた端部の軸を備えており、Android や Web 開発者はこれらを活用して表現力豊かなタイポグラフィを作成できます。Linux 上では、特に HiDPI ディスプレイで分数スケーリングが行われる環境において、システム UI フォントとして非常に機能し、Ubuntu のデフォルトフォント Adwaita Sans よりも明らかに太くなっています。現在のデスクトップ環境は基本的な可変フォント機能のみをサポートしており、たとえば GNOME はフルセットの軸が利用可能であっても、通常ウェイトだけを描画します。インストール方法は、Google Fonts から「Google Sans Flex」をダウンロードし、ZIP を解凍した後、`.ttf` ファイルを `~/.local/share/fonts` に置くか、デスクトップフォントマネージャーを使用します。インストール後は GNOME Tweaks → Appearance で UI フォントを Google Sans Flex に切り替えます。現在は通常ウェイトのみが使用されますが、可変軸は将来のサポートに備えて残っています。このリリースはテーマやアイコンを変更せずに Linux デスクトップを刷新する簡単な手段を提供し、ディストリビューションがデフォルトフォントを更新検討する際に標準選択肢となる可能性があります。

2025/12/13 3:07
Freeing a Xiaomi humidifier from the cloud

Freeing a Xiaomi humidifier from the cloud

## Japanese Translation: この記事では、著者が Xiaomi Mi Smart Antibacterial Humidifier(内部モデル `deerma.humidifier.jsq`、パッケージコード `ZNJSQ01DEM`)の標準ファームウェアをカスタム ESPHome コードに置き換え、Home Assistant を通じてローカルで制御できるようにした手順を説明しています。これにより Xiaomi のクラウドサービスが不要になります。既存のスマート加湿器は通常、専用アプリやクラウド API に依存しますが、著者は外部センサーを追加する代わりにファームウェア置き換えを選択しました。 デバイスには ESP‑WROOM‑02 モジュールが搭載されており、ESPHome でフラッシュ可能です。装置の分解は、ゴム製足リング下の 4 本の Philips 六角ネジを外し、Wi‑Fi モジュールを取り外してピンにワイヤーを接続(オレンジ=GND、グレー=VCC 3.3 V、イエロー=GPIO0、ブラウン=RX、レッド=TX)しただけです。 Sören Beye(Hypfer)が書いた元のファームウェアは Xiaomi がプロトコルを変更した後に動作しなくなりました。著者はそれを ESPHome の「外部コンポーネント」として再実装し、コードを `/stv0g/esphome-config/components/xiaomi_deerma_humidifier` に公開しました。元のイメージをバックアップするには次を実行します ``` esptool.py --chip esp8266 --baud 230400 --port /dev/tty.usbserial-31310 read_flash 0x0 0x200000 xiaomi-deerma-humidfier-original-2mb.bin ``` 新しいファームウェアをフラッシュするには次を実行します ``` esptool.py --chip esp8266 --baud 230400 --port /dev/tty.usbserial-31310 write_flash 0x0 deerma.bin ``` フラッシュ後は、インターネット接続不要で Home Assistant から直接加湿器を制御できるようになり、完全にオープンソースかつクラウドフリーの解決策が提供されます。この手法は、同様の IoT ガジェットに対しても再現可能な方法として示されています。

2025/12/12 15:17
Capsudo: Rethinking Sudo with Object Capabilities

Capsudo: Rethinking Sudo with Object Capabilities

## Japanese Translation: **改訂要約** この記事では、*sudo* の設計(set‑UID、モノリシック、非宣言的で大きな攻撃面を露出している)が本質的に不安全であると主張しています。Alpine Linux がバージョン 3.15 で sudo から doas に切り替えたことが、これらのリスクを示す例です。リスクを軽減するために著者は **capsudo** を紹介します。これはオブジェクト・キャパビリティモデルを採用した新しい権限昇格ツールで、ユーザーにすべての権限を与える代わりに、バックグラウンドデーモン(**capsudod**)を通じて限定的なキャパビリティを発行します。Capsudod は特定のコマンド(例:`/usr/sbin/mount`)に対してキャパビリティをバインドし、必要に応じて argv リストや環境変数で制限できます。専用サービスアカウント(例:*www‑deployment*)で実行される場合もあり、capsudo は常に「下位」スコープを強制します―キャパビリティは元のものより許容範囲を広げることができません。記事では Alpine が doas へ移行した事例を、業界がすでにキャパビリティベースの権限管理を検討している証拠として挙げ、capsudo がこのモデルへの広範な採用への探索的ステップとなり得ると示唆しています。ユーザーにより細かい制御を提供しつつ攻撃面を減らす可能性があります。 **主なポイント** - capsudo はデーモン経由でキャパビリティベースの権限昇格を実装します。 - 特定のコマンド(例:USB のマウントや uWSGI の再読み込み)を *mountd* や *www‑deployment* などのユーザーに委譲できます。 - キャパビリティはコマンドにバインドされ、スコープが限定されるため、さらに昇格させることはできません。 - 記事では capsudo を実験的アプローチとして位置付け、将来の権限管理慣行への影響を示唆しています。

2025/12/13 6:42
I couldn't find a logging library that worked for my library, so I made one

I couldn't find a logging library that worked for my library, so I made one

## Japanese Translation: **(すべての重要ポイントを組み合わせたもの)** --- ## Summary Fedify の新しい **LogTape** は、ライブラリ作者がデフォルト設定やランタイムオーバーヘッドを課さずに構造化ログを提供できるよう設計された、小型でオンデマンドのロギングフレームワークです。人気の JavaScript ロガーが設定を強制したりプレーンテキストを出力するのと対照的に、LogTape は開発者が明示的に有効化しない限り無音であり、**階層構造かつ JSON 形式のメッセージ** を自動的にリクエストコンテキスト(例:ヘッダーから取得した `requestId`)とともに出力します。Node.js、Deno、Bun、およびエッジ環境でネイティブに実行され、未使用時はオーバーヘッドが最小限に抑えられます。 Fedify は LogTape を ActivityPub サーバーフレームワークをデフォルトで静かに保ちつつ、開発者に細粒度の制御を提供するために構築しました。ログカテゴリは階層的に整理され(例:`fedify.federation.inbox`、`fedify.sig.http`)、ユーザーは `fedify.jsonl` のようなファイルへリダイレクトしたり、`jq` などのツールにパイプすることができます。このフレームワークはライブラリ作者向けであり、すでに winston や Pino を使用しているアプリケーションコードには適していません。将来的な作業ではクロスプラットフォームサポートを継続し、より広範な JavaScript コミュニティが構造化されたオプトインログを採用することを促進します。 --- **変更点の説明** - 「小型」と「オンデマンド」の記述を追加。 - ログが JSON 形式であることを明示。 - エッジ環境を含めたことを反映。 - LogTape がライブラリ作者向けであり、アプリ開発者向けではないことを明確化。 - バリュープロポジションの推測表現は削除し、事実に基づく意図のみ保持。

2025/12/13 0:46
Using secondary school maths to demystify AI

Using secondary school maths to demystify AI

## Japanese Translation: カムプ(CAMMP)研究セミナーは7月に開催され、既存の授業にAIコンテキストを組み込み、実践的でカリキュラム連動のワークショップを提供することで、中学校数学が人工知能を解明できることを示しました。 参加者はプライバシー意思決定ツリー(ソーシャルネットワーク上)、Netflixレコメンデーションシステム(k‑近傍法)、N‑gram単語予測、寿命回帰、および17〜18歳の生徒向け交通信号を分類する高校向けサポートベクターマシンレッスンなど、多様なAIトピックを探求しました。すべての活動はプログラミング不要のインタラクティブJupyterノートブックを使用し、学生はコードの空欄を埋めるだけでシミュレーションを実行できます。 研究者ステファン・キンドラーは、入力1、隠れ層3つ、出力1のトイ人工ニューラルネットワークをデモし、ANNが単なる数学関数であり「考える」ものではないことを示しました。ワークショップでは、バイアス、データ多様性、プライバシー、AIエラーの実世界への影響などの社会的・倫理的問題も取り上げました。 JupyterノートブックとトイANNシミュレーションはCAMMPウェブサイトで無料公開(ユーザー名「cammp_YOURPSEUDONYM」)されています。次回セミナーは2026年1月27日17:00–18:30 GMTに予定され、サロメイ・アフゥア・アドーによるオフライン型ニューラルネットワーク指導が行われます。 数学を通じてAIを教えることで、STEMへの関心を喚起し、教師がカリキュラム目標を達成し、社会的・倫理的影響を理解できる数理リテラシーの高い学習者を育成することを目的としています。

2025/12/13 1:32
Show HN: I made a spreadsheet where formulas also update backwards

Show HN: I made a spreadsheet where formulas also update backwards

## Japanese Translation: Bidicalc は、ユーザーが数式または結果のいずれかを編集できる双方向スプレッドシートです。片方が変更されると、ツールは自動的にもう一方を再計算し、関連するすべてのセルを整合性のある状態に保ちます。これを実現するために、カスタムルート探索ソルバーを使用して制約をシート全体に伝播させます。アルゴリズムは、区間算術(可能な値の範囲を追跡)、方向付きニュートン法(効率的に解へ収束)および二分探索(バイナリスプリット)を組み合わせて、数式が複雑であっても不定形でも目的の結果を見つけます。 このスプレッドシートは、変数・定数・テキストセル・数式セルなど標準的なセルタイプをサポートし、一般的な数学関数を含みます。TypeScript で実装され、勾配計算に TensorFlow.js を組み込んでおり、ブラウザのメインスレッド上で直接動作します。AGPL の下でオープンソースとして公開されています。 将来の計画では、変数範囲の制限(ドメイン制約)を追加し、複数解を持つシステムに対する精度を向上させ、64‑ビット浮動小数点勾配への切替え、重い処理を Web ワーカーへ移行してパフォーマンスを改善し、ユーザーインターフェイスを洗練させることが目標です。これらの拡張により、Bidicalc は既知のスプレッドシート形式で方程式を解くための強力なツールとなり、開発者が Web アプリケーションへ組み込むことを促し、オープンソースライセンスを通じてコミュニティからの貢献を歓迎します。

2025/12/12 3:00
Building small Docker images faster

Building small Docker images faster

## Japanese Translation: ## 要約 著者は、Python を中心とした **$DAYJOB** で Go の RCE‑as‑a‑service を構築しました。速度と人気を理由に Rust や Nix よりも Go を選択しました。 最初は Nix を使って OCI イメージを作成し、最小例(`pkgs.dockerTools.streamLayeredImage`)で `/hello` だけが入った 45.8 MB のイメージを生成しました。 既に Docker/Docker Compose が使用されていたため、それへ切り替え、Go バイナリを静的リンク(`CGO_ENABLED=0`)し、マルチステージビルドで `scratch` まで減らすことで Goose マイグレーションツールのイメージを 15.9 MB に削減する方法を示しました。 投稿では実際のビルド時最適化も紹介しています: * ビルドコンテキストを小さく保つ—ディレクトリ内全てが送られますが、`.dockerignore` で除外できます。推奨エントリーは `*`、`Dockerfile*`、`docker-compose.yml`(デフォルトでは `.git` は無視されません)。 * ソースファイルにはバインドマウントを使い、Go のビルドキャッシュはキャッシュマウントで共有し、コピーは最小限に。 * 複数アプリのステージを分けると BuildKit が並列で構築できます。 * 外部ダウンロードや Git リポジトリには `ADD` を使い、ローカルファイルには `COPY` を使用します。 最後に Docker Compose の watch モードはコンテキストを監視し、ファイルが変更されると自動でイメージを再構築して開発中の高速反復を可能にします。 イメージサイズを 45 MB から 16 MB 未満に削減することで、チームはストレージコストを節約し、ネットワーク転送時間と CI パイプラインの実行時間を短縮、クラウドデプロイメントコストも低減でき、開発者・DevOps 及び業界全体にメリットが広がります。

2025/12/12 19:23
Fedora: Open-source repository for long-term digital preservation

Fedora: Open-source repository for long-term digital preservation

## Japanese Translation: ## Summary: Fedora は、世界中の多くの機関で利用されている長期デジタル保存に適した、高い柔軟性と標準化を備えたプラットフォームです。その核となる強みは、時間経過によるデータ整合性を保証する Open Container Format Library(OCFL)と、開発者が格納オブジェクトと簡単に対話できるウェブ規約 API です。Fedora のアーキテクチャはストレージと管理を分離しており、柔軟なスケーリングや他ツールとの統合が可能です。このプロジェクトは、20 年以上にわたり世界中のボランティアと寄付者によって維持されてきたため、その持続性と継続的改善が証明されています。成長するにつれ、会員や寄付から得られる新たな資金が追加開発・研修機会・イベント割引に充実し、図書館・アーカイブ・研究機関などのユーザーは、ワークフローに組み込めるスケーラブルで標準準拠のソリューションを享受でき、より広範なデジタル保存エコシステムは共有ベストプラクティスとオープン協力から恩恵を得ます。 ## Summary Skeleton **本文が主に伝えたいこと(メインメッセージ)** Fedora は長期デジタル保存のために構築された、柔軟で標準化されたオープンソースリポジトリプラットフォームであり、活発なグローバルコミュニティによって広くサポートされています。 **根拠 / 推論(これが言われている理由)** OCFL を利用して永続性を確保し、ウェブ規約 API を提供し、透明性のあるストレージアーキテクチャを実現し、他ツールと統合できます。20 年以上にわたる歴史とコミュニティ重視で持続可能性と成長が示されています。 **関連事例 / 背景(文脈・過去の出来事)** Fedora は 2 代以上にわたり存在し、国際的な協力によって「community‑source」ソフトウェアとして進化してきました。 **今後起こること(本文で述べられた将来展望)** プロジェクトは会員・寄付からの新規資金を継続的に受け取り、イベント・研修の割引制度やガバナンスへの参加機会を提供し続けます。 **ユーザー・企業・産業界への影響(効果)** ユーザーがスケーラブルで標準遵守の保存ツールを取得できるようにし、ドメイン内で協力‐チームやデジタル―保全機能の共有ベスト‑プラクティブ・オープンコラボレーションの拡大が達成されます。

2025/12/12 22:23
Home Depot GitHub token exposed for a year, granted access to internal systems

Home Depot GitHub token exposed for a year, granted access to internal systems

## Japanese Translation: **要約:** 2024年11月初旬、ホームデポ(Home Depot)の従業員が誤ってGitHubにアクセス・トークンを投稿し、約1年間公開状態のままでした。このトークンは数百件のプライベートリポジトリと重要なクラウドインフラ(注文処理、在庫管理、コード開発パイプラインなど)への完全な読み取り/書き込み権限を持ち、攻撃者が会社のコードベースやシステムを閲覧・改ざんできる状態にしました。セキュリティ研究者は何度もこの漏洩をホームデポ(CISOのクリス・ランジロッタ氏へのLinkedIn連絡を含む)に報告したものの、返答はありませんでした。TechCrunchが12月5日に問い合わせた際、発表担当者はメールを受領したと認めましたがコメントはありませんでした。検知後、トークンは削除されアクセス権も取り消されました。この事件はホームデポに正式な脆弱性開示・バグ報奨金プログラムがないことを浮き彫りにし、こうしたインシデントの迅速な対処について懸念を呼び起こし、今後の内部レビューや方針更新による再発防止策の検討を促しています。

2025/12/13 3:23
From text to token: How tokenization pipelines work

From text to token: How tokenization pipelines work

## Japanese Translation: 記事では、現代の検索エンジンが生テキストを検索可能なデータに変換する方法として、まずトークン化し、その後一連のフィルタでクリーンアップするプロセスについて説明しています。最初にテキストは正規化されます:大文字小文字を統一し、アクセント記号を除去して「Café」を「cafe」に変換します。トークナイズでは入力が単語に分割されます;単純な空白/句読点のトークナイザーが一般的ですが、エンジンごとに挙動は異なります。Lucene は「it’s」を `[it's]` に変換しますが、Tantivy は `[it, s]` を生成します。主に3種類のトークナイザがあります:単語指向、部分単語(n‑gram/edge‑ngram)、および URL・メールアドレス・ファイルパス用の構造化テキスト。 トークン化後、「the」「and」「of」などのストップワードが除去され、サンプル文のトークン数は10から8に減少します。次にステミング(Porter/Snowball など)を適用し、語形変化を統一して「jumped」を「jump」に変換します。この結果、「databas」「lazi」「cafe」などの語幹が得られます。また、より正確だが遅いとされる形態素解析(レマタイズ)も紹介されています。 例文に対する最終トークンセットは `fulltextdatabas jumpoverlazicafedog` です。クエリは同じパイプライン(小文字化、ストップワード除去、ステミング)を経て処理されるため、「databases are jumping」と検索すると、トークン `databas` と `jump` が生成され、インデックスされたコンテンツと一致します。 Lucene、Tantivy/ParadeDB、Postgres full‑text などの検索エンジンは、これらのフィルタを組み合わせ可能な構成要素として公開しており、必要に応じて有効化・無効化・順序変更ができます。ストップワードリストは設定可能で、ストップワード除去後も位置情報は保持されるため、高精度の関連性調整と高速なインデックス作成を両立できます。

2025/12/11 23:45
New Kindle feature uses AI to answer questions about books

New Kindle feature uses AI to answer questions about books

## Japanese Translation: Amazonの新しい「Ask this Book」AIアシスタントは、Kindleリーダーが所有する任意の本に関してスパイロールフリーの回答を得られるようにします。この機能は購入済みタイトルすべてで常時有効で、共有やコピーができない短い事実ベースの返信のみを提供し、著者や出版社はタイトルの除外を選択できません。権利保有者はほとんどが展開に気付いておらず、Amazonは依存している権利や幻覚防止策について公開していません。このローンチは、テレビ番組やアニメの不正確なAI要約による反発を受けた後であり、インブックチャットボットが派生作品または侵害とみなされる可能性への懸念が高まっています。Ask this Bookは現在米国のKindle iOSアプリにのみ提供されており、Amazonは来年、KindleデバイスとAndroid OSにも追加する予定です。一方で、著者作品を許可なくスクレイピングしているAI企業への訴訟がすでに提起されています。読者は迅速なプロット支援を楽しめますが、著者は自分の文章が無断で使用されるリスクがあり、法的争議やAIトレーニングデータ所有権に関する広範な議論を引き起こす可能性があります。

2025/12/13 5:24
The true story of the Windows 3.1 'Hot Dog Stand' color scheme

The true story of the Windows 3.1 'Hot Dog Stand' color scheme

## Japanese Translation: (欠落点をすべて統合しつつ明瞭さを保つ)** この記事は、インターフェースデザイナーのビリア・ハウレットと彼女の小規模チームがOS開発サイクル中に作成した、Windows 3.1 のあまり知られたテーマ「Hot Dog Stand」に焦点を当てています。黒白背景に三次元ボタン効果のための二色グレーを使用し、鮮やかな黄色と赤で構成されたこのテーマは、Windows 3.1 で提供されるいくつかの初期カスタマイズオプションの一つでしたが、ジョークや実際のホットドッグ店への言及として意図されたものではありません。1985 年に Microsoft に入社し同社初のインターフェースデザイナーとなったハウレットは、その後 Verdana フォント(彼女の娘アナにちなんで名付けられた)を共同開発し、Windows 95 など主要リリースにも携わりました。記事では「Hot Dog Stand」が初期 PC グラフィックハードウェアの典型的な 16 色パレットを示していると述べ、Bordeaux、Tweed、Arizona、Fluorescent、Plasma Power Saver など他のテーマも紹介しています。レトロコンピューティングに興味がある読者には、PCjs Machines エミュレーターへ案内し、現代ハードウェア上でテーマをインストールして試す方法を示しています。この忘れ去られたデザインを再訪することで、物語はレガシー UI 作業への好奇心を呼び起こし、ハウレットの Microsoft のビジュアル言語に対する永続的な影響を強調するとともに、カジュアルユーザーと歴史家双方に向けて初期オペレーティングシステム美学の懐かしいスナップショットを提供します。

2025/12/13 4:13