Wi-Fi スマート電球に内蔵された禁書図書館

2026/06/16 7:37

Wi-Fi スマート電球に内蔵された禁書図書館

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

要約

日本語翻訳:

「Banned Book Library」プロジェクトは、安価な WiFi スマートボールを分散型で検閲耐性のある禁書アーカイブに変換し、不安定なクラウドサービスよりもローカルコントロールを重視し、Cory Doctorow の情報レジリエンス哲学と整合性を保ちます。ESP32C3 チップの限られた 4MB フラッシュストレージに対処し、外部メモリカード用の困難なハンダ付けを避けるために、開発者は Arduino IDE と ESP-IDF を用いてファームウェアをカスタマイズしました。具体的にはパーティションテーブルを変更して電子書籍用にスペースを割り当てるよう修正するとともに、Tasmota(ソースコードの複雑さから放棄された)に見られる平文で認証情報を格納するというセキュリティリスクを回避しています。本デバイスは、カスタム「safeboot」復旧メカニズムを備え、禁書理由とともに書籍リストを表示する Web インターフェースを内蔵しており、GPIO ピンを通じて LED の色温度を制御できる管理パネルも含まれています。DNS 劫奪を用いたキャプティブポータルを実装し、あらゆるデバイスからユーザーをローカルアーカイブへ誘導することで、物理的に分散されたネットワークによる情報レジリエンスを実現しています。今後のアップデートでは、AnalogWrite を用いた精密な RGB/ホワイト色制御や、ファイル共有のためのメッシュネットワーキングへの実験が含まれます。結局のところ、このプロジェクトは一般的なスマートホーム技術を堅牢なインフラストラクチャに転換し、日常のデバイスが重大なアーカイブ機能を受け持ち得ることを示すとともに、小容量というハードウェアの制約を特徴へと高め、保管者に最も重要な作品のみを選定するよう促しています。

本文

バンデッド・ブックライブラリー:禁止された書籍のためのサイバーパンク・デジタル・デッドドロップ

かつての WiFi 搭載スマートライトボールをハッキングし、「バンデッド・ブックライブラリー」というプロジェクトを開始しました。これは、禁止されている書籍や資料を隠れ家のように公開する、「サイバーパンクなデジタル・デッドドロップ」を目指すものです。

概要と着想

プロジェクトの背景

  • アイデアの起源: ベン・ブラウンの小説『Library(図書館)』に触発されました。物語中では、有益なデータをデジタルアーカイブとして維持する「図書館」という設定があり、これに共感しました。
  • コンセプト: 重要だが禁止されている書籍を WiFi ライトボール内に収め、コミュニティの場所に設置します。
    • **「サイバーパンクなデジタル・デッドドロップ」*: 発見されにくく、放置されるのが理想です。
    • コストパフォーマンス: デバイスは安価であり、街中に配置しても維持コストは低いと期待されます。

ハードウェアの選定:Tasmota

  • オープンソースファームウェア: Tasmota を採用しました。
    • クラウド非依存: クラウドサービスに依存せず、ローカル制御が可能です(ベン・ブラウンの小説や『Unauthorized Bread』と共鳴)。
    • OTA 対応: 分解せずにファームウェア更新が可能(他のデバイスとは異なる利点)。
  • 基板情報:
    • チップ:ESP32C3(4MB)
    • LED 制御用 GPIO ピン:
      • 🔴 R (赤): GPIO6
      • 🟢 G (緑): GPIO7
      • 🔵 B (青): GPIO5
      • 💡 CW (ウォームホワイト): GPIO3
      • ❄️ WW (コールドホワイト): GPIO4

初期の課題

  • メモリ不足: ESP32C3 のフラッシュメモリは4MBのみ。ファームウェア、Web サイト、書籍をすべて収めるのは困難でした。
  • MicroSD の難しさ:
    • デバイスの分解時に母基板から取り外すのが極めて困難(ゴム状のポッティングコンパウンドが硬く固着)。
    • LED 制御回路の設計により、GPIO ピンの入出力を自由に使い回すことができません。
  • ハンダ付けの壁: デバイスのケース内にはハンダごてが入らず、外部からアクセスする必要があります。

ハッキングとカスタマイズのプロセス

1. 分解と基板の確認

  • ラジコンブレードを使い、白いプラスチックカップを剥がしdaughterボード(子基板)を外しました。
  • 発見: motherboard(母基板)と daughterboard の間にあるアルミ製のアンテナは WiFi 信号の安定化のためのものであることがわかりました。

2. シリアル接続とプログラミング開始

  • ハンダ付けでストレージを拡張するのは不可能なため、シリアル経由でのプログラム刷新を行いました。
  • 準備作業:
    • ESP32C3 のアンテナ部分を露出させる必要があります。
    • 母基板からグランドライン(GND)を引き出し、IO9 をショートさせてダウンロードモードに設定します。
  • 初期テスト:
    esptool
    を使用し、元のファームウェアをダンプして状態を確認しました。

3. ストレージ容量の拡張(パーティションテーブル編集)

元々の構成では SPIFFS パーティションが 320KB しか確保されていませんでした。これを解決するために、パーティションテーブルを直接書き換えるリスクの高い操作を行いました。

  • 既存の構成:

    • app0
      : 2880K (メインファームウェア)
    • spiffs
      : 320K (ファイルシステム ← 不足)
  • 編集方針:

    • メインファームウェアを縮小し、
      spiffs
      パーティションを2MBに拡大しました。
    • これにより Web サーバー用ファイルや書籍データを格納可能となりました。
  • 技術的な壁と解決策:

    • Arduino IDE の標準フレームワークでは、セキュリティ理由からパーティションテーブルへの書き込みが制限されていました。
    • ESP-IDF の導入: 公式の ESP32 フレームワークに切り替え、
      idf.py menuconfig
      SPI_FLASH_DANGEROUS_WRITE_ALLOWED
      を有効化しました。
    • Arduino as a Component: IDF の制御性を取りながら Arduino の利便性を併用する構成を採用し、カスタムライブラリの管理を自動化(
      build.sh
      )しました。

4. セットアップとファームウェアの刷新

  • Safeboot の重要性: メインファームウェアを OTA 更新するためには、WiFi 設定を含んだ最小限の Safeboot ファイルが必要です。
    • Tasmota の標準 safeboot を使用すると WiFi クレデンシャルが暗号化せず保存されるためセキュリティリスク(OPSEC)があります。
    • そのため、認証が必要な最小限のカスタムファームウェアを作成し、WiFi 接続なしでも OTA 更新が可能にしました。
  • セットアップページ: デバイスを初めてブートすると、ファイルシステムを Flash するよう案内する Web ページが表示されます。

運用機能とユーザー体験

Web サーバーとインデックス

  • デザイン: ベン・ブラウンの『Library』にオマージュし、黄色いコンテナとドアの画像を表示しています(「glitch」エフェクトを追加してハッキング感を出しました)。
  • コンテンツ構成:
    • 書籍情報(タイトル、著者、禁止理由)
    • 外部リンクの参照(※アクセスポイント内 donc インターネット接続は不可)

管理機能 (
/admin
)

  • パスワード保護: 管理者のみがアクセス可能です。
  • LED 制御:
    • AnalogWrite()
      で各色の明るさを調整できます。
    • パブリック設置時に、周囲の照明や以前の設置と異なる色温度にならないよう、設定を NVS に保存しています。

キャプティブポータルの実装

  • 自動アクセス: ユーザーがオープンアクセスポイントに接続した際、ブラウザを自動的に図書館の Web サーバーへ誘導します。
  • 手法:
    • 従来の HTTP リダイレクトではなく、HTTPS に対応するため多様なクライアント(Windows, Android, iOS, Firefox 等)向けのカスタムリクエスト(
      /generate_204
      ,
      /connecttest.txt
      など)を検知して誘導します。

まとめと展望

サイズ制限の美学

  • 限られた容量: 4MB のメモリにより、EPUB ファイルは各約 350KB と小型のものに限られます。
    • この制約こそが、どの書籍を「重要視して」デッドドロップに設置するかを考えるきっかけになります。
    • 「全てを揃える」のではなく、「選ぶ」という行為自体に意義があると考えます。

今後のアイデア

  • コントロールカラー: スライダーを追加し、RGB およびホワイトの色温度を微調整できるようします(既存照明との調和)。
  • メッシュネットワーキング: デバイス同士をリンクさせ、接続可能な範囲内ですべての書籍にアクセスできるようにする仕組みを検討中です。

ESP32 の可能性

  • 非常に安価でありながら高性能な ESP32 チップは、スマートデバイスのリユースプロジェクトにおいて極めて魅力的です。今回の経験で学んだことを活かし、更多なるハッキングプロジェクトを計画しています。

同じ日のほかのニュース

一覧に戻る →

2026/06/16 5:00

LinkedIn の雇用オファーに含まれた裏口

## 日本語訳: 提供されたテキストは、読めるコンテンツではなく完全に破損したバイナリデータからなるものであり、ニュース、事実、エンティティ(製品名、日付、組織など)、または論理的構造は一切含んでいません。入力内に理解可能な単語や文が存在しないため、背景コンテキスト、将来の予測、または潜在的な影響を特定することはできません。その結果、特定の数字を抽出したり、IT 記事のための妥当な箇条書きを生成したり、意味のある要約を導き出すことは不可能であり、このデータは修復されるまで、あるいは正当なテキストで置換されるまでは静的ノイズとして機能し、分析に価値を持ちません。

2026/06/16 0:13

イロフ 1.0

## Japanese Translation: iroh ネットワークは、それ以前の 65 バージョンに続く初となる安定リリースとしてのバージョン 1.0 を正式にローンチし、インターネット全体で安全な localhost のように動作する革命的な「key でダイヤル」システムを導入します。このマイルストーンでは、不安定な IP アドレスをユーザーが制御するキーに置き換え、複雑なルーティングに依存せずにデバイス間での直接かつ暗号化された接続を可能にします。ネットワークは巨大なスケーラビリティを実証しており、たった 30 日で 2 億以上のエンドポイントを作成し、安全な動画ストリーミングやエージェント間の通信、大規模言語モデルのトレーニングなど、多様な用途に数百万のデバイスを支えています。IETF のドラフトや QUIC マルチパスといったオープン標準を基盤とし、ローカルフースト設計によりインターネット接続がなくても堅牢なコネクティビティを提供します。開発者にとっての大きな影響として、Python、Node.js、Swift、Kotlin への公式 FFI サポートが追加され、安定した異言語間通信が保証されています。特に、1.0 API はエンドポイント間の通信がマイナーバージョンの変更や使用されるプログラミング言語に関係なく確保されることを保証します。さらに、デバイス同士の直接転送によりクラウドホップが 95% 削減され、データエグレスコストの大幅な低下が可能となるだけでなく、Bluetooth Low-Energy など新たなトランSPORT を実装できます。前マイナーバージョンを使用しているユーザーは、2026 年 12 月 31 日(パブリックリレーサポート終了日)までにアップグレードすることを推奨され、安定性を維持するためです。問題が発生している場合は、バグレポートの前に更新して問題が持続するかを確認してください。

2026/06/16 5:14

コンピュータ大好きです

## Japanese Translation: 2026 年 6 月 6 日に掲載された Chris Person が Aftermath Podcast で話した記事は、ノルウェーの家庭用パソコンに幼少期から魅了されていたコンピュータ科学者が、業界で尊敬を集める専門家へと進化した一方で、その高知名度なキャリアを持続可能だと疑うようになったという物語を綴っている。著者は Jessheim 近郊の Dølihagen で六歳または七歳の頃に育ち、最初に手に入れたマシンは Windows 3.0/Workgroups 3.11 がプリインストールされた IBM 486 DX6 で、灰色のタワーケースに緑色の LED とチューロボタンが特徴だった。そのマシンには最初から Paint、SkiFree、Solitaire が搭載されており、後々サウンドカードと CD-ROM を追加したが、「Plug & Play」というラベルには不満を抱いていた。インターネット時代以前、著者は TEKNO、Geek、Incite PC Gaming、PC Gamer という雑誌を読み、その後でマレーシアでの学校通学中に初の恒久的なインターネット接続を得た。オンラインでは GeoCities の映画レビューを読み、ISP がホストする Java 製ゲームをプレイし、SNES の手順ガイドを印刷したり、フロッピーディスクにピクセル化された画像を保存したりしていた。彼はコンポーネントの交換から始まり、次第に母親の技術力を超え、その後プログラミングに取り組み Java を習得したが、有名なエピソードとして雑誌掲載のコードをコンパイルせず .exe ファイルとして保存してしまった結果、数年間のブレイクを経験した。その後は学校での授業や友人を通じて Java、C++、PHP をマスターし、IB プログラムでコンピュータ科学において優等生としての成績を収め、オスロ大学で学士号を取得した。早期のキャリアではアセンブリライン方式のウェブサイト開発や音声再生エンジンの開発に携わった。熱心な外局者から「ロックスター」へと立場を変えた彼だが、今は再び「Strange Guy」としてニッチな興味を持つ存在へ戻りたいと考えている。この物語は、真の専門性は主流による需要や称賛を必要とせず、外部からの承認よりも本物の知的探求を重視する姿勢を擁護しており、熟練した専門家が常に変化する技術的風景の中で高圧的な期待から離れ、より本質的で個人的な追求へと道筋を見直すことを示唆している。