**Show HN:** *ANSI‑Saver – macOS 用スクリーンセーバー*

2026/03/07 23:34

**Show HN:** *ANSI‑Saver – macOS 用スクリーンセーバー*

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

要約

Japanese Translation:

AnsiSaver は、オープンソースの

libansilove
ライブラリを使用して60 fpsでアニメーションパックを再生し、クラシックな ANSI/ASCII アートを現代の Mac にもたらす macOS スクリーンセーバーです。
.ANS
,
.ICE
,
.ASC
,
.BIN
,
.XB
,
.PCB
,
.ADF
など、多種多様なレガシーファイル形式に対応し、Core Animation を用いて各ファイルをオンデマンドで描画するため、数千件のファイルでもメモリ使用量を低く保ちます。
ユーザーは連続スクロール、クロスフェードトランジション、オプションのファイル名区切り文字、スクロール速度(10–200 px/s)、レンダースケール(Retina ディスプレイ用 1×–4×)を設定できます。アートは
~/Library/Caches/AnsiSaver/
にキャッシュされ、「Refetch Packs」ボタンでクリア可能です。
このスクリーンセーバーは macOS Sequoia(15.0+) を実行する Apple Silicon および Intel Mac で動作し、未署名バイナリとして配布されます。インストール後は System Settings → Privacy & Security で許可が必要です。また Homebrew または Xcode からソースコードをビルドしても構いません。
AnsiSaver は 16colo.rs がホストするアーカイブからコンテンツを取得し、ACiD、iCE、Fire、Mistigris、Blocktronics などのクラシック BBS アートシーングループをフィーチャーしています。スタッターパックには ACiD 100、Mist 0222、Blocktronics: Space、iCE 9601、Fire 01 が含まれます。
MIT ライセンスの下で提供され、開発者は
libansilove
を他プロジェクトに再利用できるよう奨励しており、コミュニティによる ANSI アートコレクションの保存と拡張を歓迎しています。

変更点の説明

  • 明示的なファイル形式リスト(Key Point 2)を追加。
  • macOS Sequoia 要件と未署名バイナリに関する注意(Key Points 4–5)を含めた。
  • キャッシュ場所と「Refetch Packs」ボタンについて言及(Key Point 7)。
  • パック URL とスタッターパックの推奨例(Key Points 8–9)を提供。
  • Core Animation の使用とメモリ効率的なレンダリング(Key Point 10)を述べた。
  • 余計な推測を避け、情報はそのまま簡潔に保った。

本文

AnsiSaver

BBS時代のアートを取り戻すmacOSスクリーンセーバー

14.4 kでBBSに電話接続し、ANSIアートが端末上で行ごとに描かれていく様子を覚えていますか? カラフルなCP437文字、ネオン色のパレット、シーンアーティストが作り上げたピクセル単位のロゴ――それらの時代は 16colo.rs(インターネット最大規模のANSI/ASCIIアートアーカイブ)で今も生き続けています。

AnsiSaver は 16colo.rs のパックから直接アートを取得し、画面上にスクロールさせます。 アーカイブで使われている同じ

libansilove
ライブラリを用いて描画されるため、まるでログオフしていないBBSに端末が接続されたかのような感覚です。


▶ デモ動画を見る


主な機能

  • 16colo.rs から ANSI アートパックをダウンロードし、ローカルにキャッシュ
  • .ANS
    .ICE
    .ASC
    .BIN
    .XB
    .PCB
    .ADF
    ファイルを CP437 フォントで正確に描画
  • スムーズな 60 fps でスクリーン上にアートをスクロール
  • 連続スクロールモード:アートファイルが縦方向に積み重ねられ、終わりのない BBS ファイルリストのように表示
  • クロスフェード遷移:標準モードで作品間を滑らかにフェード
  • オプションでファイル名を示す区切り線(ACiDView でパックを閲覧したときと同様)
  • スクロール速度と描画倍率(Retina ディスプレイ用のシャープな出力なら 2×–4×)を設定可能
  • ローカルフォルダもサポート – 個人コレクションやダウンロードしたアートパックにポイントすれば OK

インストール

必要条件

  • macOS Sequoia 15.0 以降
  • Apple Silicon と Intel Mac の両方をサポート

ダウンロード

リリースページから最新バージョンを取得してください。

アーキテクチャファイル
Apple Silicon
AnsiSaver-arm64.saver.zip
Intel
AnsiSaver-x86_64.saver.zip
  1. ZIP を解凍
  2. AnsiSaver.saver
    をダブルクリック
  3. macOS がインストール確認を表示したら Install をクリック

macOS のセキュリティ通知:
スクリーンセーバーは Apple Developer 証明書で署名されていないため、初回起動時にブロックされます。 System Settings > Privacy & Security へ行き、下部をスクロールして AnsiSaver のメッセージ横の Open Anyway をクリックしてください。この操作は一度だけ必要です。

ソースからビルド

自分でビルドしたい場合は以下の手順に従ってください。

brew install libgd
git clone --recursive https://github.com/lardissone/ansi-saver.git
cd ansi-saver
xcodebuild -project AnsiSaver.xcodeproj \
           -target AnsiSaver \
           -configuration Release build
cp -R build/Release/AnsiSaver.saver ~/Library/Screen\ Savers/

ビルドは Homebrew の

libgd
を静的リンクします。macOS Sequoia 15.0 以降が必要です。


設定

System Settings > Screen Saver を開き AnsiSaver を選択後、Options… をクリックして設定してください。

アートソース

  • 16colo.rs パック URL – アーカイブからアートを取得するパックの URL を追加。
    16colo.rs のパック一覧で URL をコピーして貼り付けます:

    https://16colo.rs/pack/acid-100/
    https://16colo.rs/pack/mist0222/
    https://16colo.rs/pack/blocktronics-space/
    
  • ローカルフォルダ

    .ANS
    ファイルが入っているディレクトリを指定。個人コレクションやダウンロードしたパックに便利です。

表示オプション

オプション説明
TransitionScroll Up, Scroll Down, または Crossfade(作品間の遷移)
Scroll Speed10–200 px/s – スクロール速度
Render Scale1×–4× – Retina ディスプレイでシャープに表示したい場合に有効
Continuous Scrollすべてのアートを一つの終わりのない縦ストリームに積み重ねる
Show Separator継続スクロールモードで作品間にファイル名付き装飾線を表示

キャッシュ

アートファイルは

~/Library/Caches/AnsiSaver
にキャッシュされます。
設定パネルの Refetch Packs を押すとキャッシュがクリアされ、再度全てダウンロードされます。


動作概要

16colo.rs パック ──→ ダウンロード&キャッシュ ──→ libansilove ──→ Core Animation ──→ 画面
ローカル .ANS ファイル ─────────────────────↗   (CP437 レンダリング)   (60fps スクロール)
  • アートソース はネットワークまたはディスクからファイルパスを取得します。
  • libansilove
    が各ファイルを CP437 ビットマップフォントで PNG にレンダリングします(16colo.rs と同じ描画方式)。
  • Core Animation が 60fps で画像を表示・スクロールします。
  • ファイルは必要に応じて一つずつレンダリングされるため、数千件のパックでもメモリ使用量は最小限です。

おすすめパック

パックエラスタイル
ACiD 1001995有名な ACiD Productions の centennial パック
Mist 02222022Mistigris — 28 年続く現代シーンの代表作
Blocktronics: Space2014現代シーンの宇宙テーマ ANSI アート
iCE 96011996iCE 広告パック – 90 年代末期のピーク
Fire 011996黄金時代のファイアアートパック

16colo.rs のアーカイブ全体は 1990 年から今日まで 千数万に及ぶパックを収録しています。


クレジット

  • libansilove
    (Ansilove チーム) – ANSI アート描画の決定版ライブラリ
  • 16colo.rs – 初期の日々からアーツシーンを保存し続ける
  • BBS アーツシーン(ACiD、iCE、Fire、Mistigris、Blocktronics など)と、その芸術を守り続けたすべてのグループ・アーティスト

ライセンス

MIT © 2024 AnsiSaver コントリビュータ全員。

同じ日のほかのニュース

一覧に戻る →

2026/03/08 5:43

CAS番号(化学物質登録番号)

## Japanese Translation: CasNumは、コンパスと定規を用いた幾何学的構成により任意精度算術を実装するPythonライブラリです。数値は平面上の点としてエンコードされ、加算・乗算・除算・論理ゲートなどの演算は、線/点、円、直線と円の交点などの5つの基本的な幾何学プリミティブから構築されます。最適化には、2倍による特殊ケース乗算や剰余計算で最高位ビット(2のべき乗)を除去する手法が含まれています。 このライブラリはGame BoyエミュレータのALUに組み込むことを想定しています。CasNumを統合するには、PyBoy の `opcodes_gen.py` を編集するだけで、他のエミュレータコードは変更されません。使用例としては、単純なRSA実装(`python3 -m examples.rsa`)や、幾何学ベースの算術のみで動作させるポケットモンスター 赤版(`python3 -m examples.basic`)があります。初回起動に約15分かかりますが、その後はPython の `lru_cache` によりほぼ 0.5–1 FPS で再起動できます。 ビュアースクリプト (`casnum/cas/viewer.py`) は幾何学的構成を可視化し自動ズームします。RSA例では手動ズームが必要になる場合があります。依存関係は、sympy(コア)、可視化用のオプション pyglet、テスト用 pytest‑lazy‑fixtures、RSA 用 pycryptodome、および任意で Euclid Postulate V です。インストールは `git clone --recursive` の後に `pip install -r requirements.txt` を実行します。使用している ROM(`2048.gb`)は zlib ライセンス、CasNum コアコードは MIT ライセンス、PyBoy は LGPL v3.0 でライセンスされており、このプロジェクトはオープンソースや教育プロジェクトに適しています。

2026/03/08 6:56

3T ブラインドスポット:米国の非営利団体

## Japanese Translation: **概要** 米国の非営利セクターは年間 **3兆ドル** を管理しており、これはイギリスのGDPを上回る金額ですが、そのうち実際にプログラム費用に充てられるのは **約36%(1,800億ドル)** に過ぎません。残りはオーバーヘッド、スタッフ給与、資金調達に使われています。登録済み非営利団体は **180万人以上** であり、その多くは収益が5万ドル未満の場合 IRS Form 990 の提出義務から免除されているため、セクター全体の大部分が公衆の監視から隠れています。 寄付者の信頼感は低下しています。**米国の寄付者の32%が5年以上前よりも慈善団体に不信感を抱いています**(BBB Wise Giving Alliance)、世界的にも三分の一が非営利団体への信頼を失っています(Gallup)。財務的負担は顕著で、**調査対象の非営利団体の36%が2024年末に営業赤字を報告し、10年間で最高水準となりました**。また **41%しか全職員に生活賃金を支払えません**。資金提供者は通常オーバーヘッドを約15 % に抑えるよう指示しますが、多くの非営利団体は管理費に **31 % 近くを使っており、過小報告やコーナーカットが頻発する** ― これは「非営利組織の飢餓サイクル」と呼ばれる現象です。 企業会計との大きな違いは顕著です。IRS Form 990 は年間一度提出され、公開までに **12–18か月** を要し、監査済み財務諸表や詳細なプログラム内訳が欠如しています。一方で公的企業は **10-K(年次)、10-Q(四半期)、8-K(重要事象)** を提出し、60日以内に監査済みの声明を求められます。このコンプライアンス中心の枠組みが可視性の問題を生み出し、寄付者の信頼を侵食しています。 国際的には、英国で実施された研究で **ウガンダの井戸の45%が非営利団体によって資金提供されましたが、機能していませんでした**。これにより 2億1,500万〜3億6,000万ドル相当のリソースが無駄になっています—非効率性の重大さを示しています。既存技術(カメラ・センサー・衛星画像)はリアルタイムで成果を追跡できる可能性がありますが、現在の報告規則ではそのような機能は義務付けられていません。 非営利セクターの将来は、コンプライアンス重視から真の透明性と説明責任への転換にかかっています。この変革なしには、非営利団体は営業赤字と寄付者の懐疑心を続けるでしょう。変革が実現すれば、信頼を回復し持続可能な資金調達を確保できる可能性があります。

2026/03/06 16:17

既存のブリックからLEGO NXTファームウェアをダンプする(2025)

## Japanese Translation: > 著者はPybricksプロジェクトで作業している際、オリジナルのファームウェアバージョン 1.01を動作させていた中古Lego NXTを入手し、このファームウェアの保存コピーが存在しないこと(利用可能なのは新しい 1.03のみ)に気づきました。 > > NXTのAT91SAM7S256 MCU上では、SAM‑BA PEEK/POKE を呼び出すことはできますが、それを行うとファームウェアを書き換えてしまい、古いMCUにはモダンなデバッグインターフェースが欠けているためJTAGも実用的ではありません。ロボットのプログラムは制限付きメモリ内で動作するバイトコードVMで走るので、著者は低レベル機能に焦点を当てました。 > > PyUSB を介して USB 「Read IO Map」コマンドを送信し、`0x100d3d`(フラッシュの約 3 KiB)に位置するVMの書き込み可能な関数ポインタ `pRCHandler` を読み取りました。32 KiB の書き込み可能 MemoryPool は NOP とカスタム ARM コードで埋めることができ、`pRCHandler` をこのプール内のアドレスにリダイレクトすることで任意の直接コマンドをそのコードとして実行させることができます。 > > 著者は、受信パケットから4バイトのアドレスを読み取り、そのアドレス上のワードを返す組み込みアセンブリを挿入し、元のハンドラを置き換えました。この乗っ取られたハンドラを利用して、USB経由で「direct」コマンドをバイト単位で送信し、フラッシュ領域全体(`0x00100000–0x00200000`)を読み取り、完全なファームウェアとユーザーデータを `nxtpwn-dump.bin` にダンプしました。 > > この脆弱性は、ストックファームウェアを実行している任意のNXTで機能し、未改変デバイス上でもベアメタルコードが動作できることを示しています。これにより、保存ツールや自己複製型マルウェアなどの可能性が開かれ、NXTファームウェアの整合性チェックにおける脆弱性も浮き彫りになっています。