Show HN: Ember – Redshift 安全なカラーパレット

2026/08/10 1:26

Show HN: Ember – Redshift 安全なカラーパレット

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

要約

Japanese Translation:

まとめ:

Ember は、極限の暖色系スクリーンフィルタリング下(例:Redshift プロファイル 1200K または 2000K)でも明確で識別可能な色を維持することを目的とした専用ツールキットです。Macbook Nightshift などの一般的なフィルタが広範な日中の読みやすさを最優先するのに対し、Ember は ΔEOK の最小カラー距離(1200K で変換後の最小値≥10.25)、ANSI スロットに対するコントラスト比≥4.5:1、シーケンシャルマップのための正確な float サンプル数といったリリースゲートにより品質を強制します。本プロジェクトは 3 つのパレットを提供しており、一般用途および Macbook Nightshift の互換性のために 3400K Dark/Light が用意され、また天文学者や深赤色シフト環境(1200K で青のゲインがゼロに低下する環境)向けに専門的な 2000K Dark および 1200K Dark パレットが用意されています。重要な点は、Ember がフィルタ自体を適用しないことです。ユーザーは既存の暖色系フィルタ設定を保持したまま、Ember のアートをインポートする必要があります。インストールは

git clone https://github.com/carpdiem/ember.git
または
pip
に対応しており、Alacritty(
~/.config/alacritty/themes
にコピー)、iTerm2(カラープレセットからのインポート)、Windows Terminal(スキームの追加)それぞれのプラットフォーム固有のセットアップが可能です。Ember は JSON、CSS(
data-ember-palette
アトリビュート)、および Python API(bg_0–bg_5 の 6 つの背景レベルと fg_0–fg_2 の 3 つのフォアグラウンドテキストロール、チャート色、シーケンシャルマップ、Matplotlib テーマを含む)を介して UI サーフェスの役割を公開します。これらは
commanded RGB × [red gain, green gain, blue gain]
モデルに基づいて構築されており、激しいカラーシフトにもかかわらず、技術的なディスプレイ上での科学データ可視化における正確な色彩知覚を確保します。

本文

Ember: Nightshift / Redshift 対応カラーパレット

Redshift の積極的な暖色フィルタリングを適用した前後でも安定して使用できる、ターミナル、チャート、ヒートマップおよび UI パレットです。Ember は、従来のカラーパレットが Redshift をオンにした際に色が見分けにくくなる問題に特化して設計されています。

概要と目的

  • 主な目標: 様々な色温度のフィルタ下でも区別できる独自のカラーを確保することです。
  • アプローチ: まず、Redshift の影響を受ける劣化した色情報チャンネルを調整し、昼間(Redshift オフ)における視覚的な区別性を向上させています。

利用可能なパレット

Ember は以下の 4 つのカラーパレットを標準搭載しています。

  • 3400K Dark: 汎用的な暖色系テーマ向け(MacBook 最大限の Nightshift 効果に対応)。
  • 3400K Light: 明瞭な表面向けの適度な暖色シフト。
  • 2000K Dark: 究極的な「深い Redshift」ファンおよび天文学者向け。
  • 1200K Dark: 極限の 1200 K ストレスプロファイル向け。

⚠️ 使用上の留意点

  • 3400K パレット: 汎用性が高く、Nightshift に対して最適化されています。
  • 2000K および 1200K パレット: 「深い Redshift」専用です。
    • 区別できる色の数が大幅に減少します(知覚的なカラースペースのサイズが縮小するため)。
    • 推奨:あえて極端なフィルタを適用しない限り、
      3400k-dark
      から始めるのが無難です。

📜 技術的メモ

  • フォーマット: sRGB で作成され、モデル化されたチャンネルごとの RGB ゲインで検証済み。
  • 対応形式: ターミナルテーマ(Alacritty, iTerm2, Windows Terminal)、UI サーフェスロール、カテゴリカルチャートカラー、256 段階連続マップ、Matplotlib/CSS/JSON/Python アーティファクト。
  • 注意点: Ember はフィルタ自体を適用しません。既存の Redshift/Nightshift をそのまま使用してください。

パレット選択ガイド

プロファイル推奨される環境区別可能なカテゴリ数
3400k-dark
汎用暖色系テーマ(暗め)6
3400k-light
明瞭な表面に適度なシフトを適用する場合6
2000k-dark
Redshift を約 2000 K に設定している場合4
1200k-dark
極限の 1200 K を使用している場合3

💡 推奨事項:

3400k-dark
から始めましょう。2000 K および 1200 K は暗色系専用であり、フィルタリングされた明るいキャンバスが巨大なオレンジ〜赤色のフィールドに変化してしまうためです。


使用方法

1. ファイルの取得

Git クローン:

git clone https://github.com/carpdiem/ember.git
cd ember

Python ユーザー向け(直接インストール):

python -m pip install "ember-palettes @ git+https://github.com/carpdiem/ember.git"

2. ターミナルテーマのインポート

Alacritty

設定ディレクトリにファイルをコピーし、

alacritty.toml
からインポートします。

mkdir -p ~/.config/alacritty/themes
cp themes/terminal/alacritty/2000k-dark.toml ~/.config/alacritty/themes/
# alacritty.toml での設定例
# [general]
# import = ["~/.config/alacritty/themes/2000k-dark.toml"]

iTerm2

設定 → プロファイル → カラー → カラープリセット… → インポート… から

themes/terminal/iterm2/
のファイルを選択します。

Windows Terminal

設定 JSON で、

themes/terminal/windows-terminal/
のオブジェクトをルート
schemes
にコピーし、プロファイルの
colorScheme
に名称を設定します。

3. UI サーフェスロール(背景・テキスト)の使用

各ファミリーは、JSON、CSS、および Python API (

surfaces()
) で同じ順序のロールを提供します。

ロール意図された用途
bg_0
ベースアプリケーションキャンバス
bg_1
低強調の隣接領域またはサイドバー
bg_2
通常のパネルまたはカード
bg_3
ネストされたパネル、アクティブなコントロール、ホバー
bg_4
フローティングパネル、メニュー、ポップオーバー
bg_5
選択状態(行、範囲、フォーカス領域)
fg_0
一次テキストおよび主要なラベル
fg_1
より大きな補足テキストまたはグラフィック
fg_2
弱められた非必須メタデータまたは装飾要素
  • 背景の仕組み:
    bg_0
    は常にベースです。暗色系ファミリーでは
    bg_0
    bg_5
    が明るく、明色系では逆に暗くなります。

4. コードでの利用例

Python (Matplotlib)

import matplotlib.pyplot as plt
from ember import categorical, categorical_norm, encode_categories, sequential, surfaces

# パレット定義と UI の取得
palette = "2000k-dark"
ui = surfaces(palette)

# データ準備
labels = ["control", "alpha", "beta", "gamma"]
order = ["control", "alpha", "beta", "gamma"]
category_ids = encode_categories(labels, order, slug=palette)

fig, (points, image) = plt.subplots(1, 2)
# UI ロールの適用
fig.patch.set_facecolor(ui["bg_0"])
points.set_facecolor(ui["bg_2"])
image.set_facecolor(ui["bg_3"])

points.scatter(
    [1, 2, 3, 4],
    [1.2, 2.4, 1.8, 3.1],
    c=category_ids,
    cmap=categorical(palette),
    norm=categorical_norm(palette),
)

image.imshow([[0.0, 0.4], [0.7, 1.0]], cmap=sequential(palette))
plt.show()

CSS の利用

ember.css
を読み込み、データ属性でパレットを指定します。

<link rel="stylesheet" href="/path/to/ember.css">
<section data-ember-palette="3400k-dark">
  <div class="panel">...</div>
</section>

CSS 変数の例:

[data-ember-palette] {
  color: var(--ember-fg-0);
  background: var(--ember-bg-0);
}
.panel:hover {
  background: var(--ember-bg-3); /* ホバー状態 */
}
.selected {
  background: var(--ember-bg-5); /* 選択状態 */
}

5. Matplotlib 利用時の重要事項

  • categorical_norm()
    および
    encode_categories()
    パレットスラグ(例:
    "2000k-dark"
    )を渡す必要があります。これにより、選択されたファミリーの容量チェックが一致します。
  • 連続マップは常にカテゴリカルカラーの数とは無関係に、256 個の正規化された浮動小数点サンプルを提供します。

技術的背景:その科学とは?

1. ディスプレイ信号のモデル化

Ember は、暖色系ディスプレイ変換を各 sRGB チャンネルにおける独立したゲインとして近似します。

display RGB ≈ commanded RGB × [red gain, green gain, blue gain]

プロファイルRGB ゲイン基準
3400k
[1.00, 0.74, 0.53]
暖白工学置換モデル
2000k
[1.0000, 0.5436, 0.0868]
Redshift 2000 K LUT 固定
1200k
[1.0000, 0.3094, 0.0000]
Redshift 1200 K LUT 固定
  • 1200 K ではブルーは出力に寄与しません。
  • 通常の sRGB 距離は、フィルタリング後に色収束するため、夜間の区別指標としては不適切です。

2. 解決優先:昼間と夜の両立

Ember は昼・夜を別々のビューとして扱い、単一のスコアで平均化しません。優れた昼間の間隔が夜間の衝突を補償できないためです。

  1. ターゲット設定: コントラスト、明度/彩度ジオメトリ、Oklab での最小知覚分離を設定。
  2. 色選択: コマンド色がターゲットを再現し、強力な昼間セットを選択。

3. ピクセルと色彩戦略

  • 輝度優先: 人間の視覚は輝度チャンネルを通じて空間詳細を保持するため、高密度な飽和グリフや対立する色相は避けます。
  • ニュートラル化: 純粋な白はクリーム色、昼間のダークグレーは錆色に近づけることで、暖色系ニュートラルサーフェスを実現。
  • アクセントの確保: テーキストではなく意味論的なアクセントのために高彩度を予約します。

4. アイデンティティの維持

  • 深いテーマでは ANSI スロット全体でカテゴリ容量を確保。
  • アクセントは状態間で色相を変えても、両方で区別可能である必要があります。
  • 色だけでは不十分: チャートでは直接ラベル、位置、パターンなどを組み合わせるべきです。

5. 連続マップの設計

  • 人間が選んだ土の色(earth-tone)パスから開始し、Oklab で滑らかに処理。
  • 変換後の累積距離を測定し、等しい間隔で再サンプリング。
  • 単調な明度と等しいモデル化されたステップ数を維持します。

測定プロパティと正確さ

Ember は以下の基準(ΔE_OK)を満たすことを保証しています(ユークリッド Oklab 距離 × 100)。

主要な性能指標

ファミリーカテゴリ数昼間最小 ΔE_OK変換後最小 ΔE_OK最小 ANSI コントラスト
3400K Dark615.0011.455.29:1
3400K Light616.7312.414.65:1
2000K Dark417.0012.914.52:1
1200K Dark320.7210.254.55:1
  • 昼間色相ギャップ: 3400K Dark では 20.23°、変換後でも 20°以上を確保。
  • 前景コントラスト: テーマベース背景(
    bg_0
    )に対して
    fg_0
    は少なくとも 4.5:1 のコントラストをクリア。

リリースゲートチェック項目

ビルド時に以下の条件がすべて満たされないとリリースできません。

  • パレット容量の厳守: 3400K(6)、2000K(4)、1200K(3)。
  • ΔE_OK の保証: 生成された変換後のアクセントとターゲットとの差が 0.15 を超えないこと。
  • ANSI コントラスト: 前景機能を持つスロットで、変換後背景(
    bg_0
    )に対して少なくとも 4.5:1
  • サーフェス梯子:
    bg_0
    bg_5
    までのステップ間で十分な明度変化(ΔE_OK ≥ 6.0)。
  • 連続マップ品質: 256 サンプル、単調明度維持、等距離性確保。

🛠 ビルドと検証:

uv sync --extra dev
uv run python tools/build_all.py --check
uv run pytest -q
uv build

参考文献

  • Gruvbox: 暖色系ニュートラルおよび持続使用のための設計思想。
  • MIT 6.813, Color: クロマアバレーションおよび疎色(スパースカラー)理論。
  • Fan et al. (2024): 暗極性下での視覚疲労への影響に関する研究。
  • EU データ可視化ガイド: カテゴリカラーの制限および過度な飽和の回避。
  • Datawrapper: 冗長なキュー(手がかり)の追加によるコントラスト保護。
  • Redshift: カラーランプ実装と温度テーブル。
  • Björn Ottosson: 画像処理のための知覚カラースペース。
  • W3C WAI: コントラスト最小限に関する理解。

ライセンス

MIT © 2026 Michael Woods

同じ日のほかのニュース

一覧に戻る →

2026/08/15 0:00

Qwen 3.8 27B

## Japanese Translation: Qwen3.8 は、コーディング、プロフェッショナルなワークフロー、研究、長期的なエージェントタスクにおいて大幅な性能向上をもたらす、Qwen3.5 の機能に継承する最新オープンモデルです。コンパクトな Qwen3.8-27B バリエーションは、複雑な多段階実行のためのネイティブのビジョン・ランゲージ理解を備えています:STEM 図や数時間の動画を処理し、環境からのフィードバックを取り扱い、`preserve_thinking` を介して履歴メッセージにわたる思考を保持します。性能は、SWE-bench Pro で 61.7、Terminal Bench 2.1 (Terminus) で 73.0、LiveCodeBench v6 で 90.3、OSWorld-Verified で 84.3、MathVision および OmnilDocBench で 90% 超のスコアを含む強力なベンチマーク結果によって検証されています。 アーキテクチャにおいて、モデルは YaRoPE スケーリングによる拡張性を通じてネイティブに 262k トークンのコンテキストウィンドウをサポートし、最大 100 万トークンまで拡張可能です。`enable_thinking`(デフォルトでオン)と `reasoning_effort`(xhigh/medium/low)によって制御される柔軟な推論モードを提供します。推奨サンプリングパラメータはモードごとに異なります:思考モードでは temperature=1.0、top_p=0.95、top_k=20、min_p=0.0 を使用し、指示モードでは temperature=0.7、top_p=0.80、presence_penalty=1.5 を使用し、思考を無効にするためのオプションの追加ボディ調整が可能です。 本番デプロイメントは、SGLang、vLLM、TokenSpeed、Qwen Cloud API との互換性を通じて簡素化されており、高スループットシナリオには専用サービングエンジンが推奨されます。数時間のビデオ処理については、`video_preprocessor_config.json` の `longest_edge` を 469,762,048(224k ビデオトークン)に設定します。全体として、Qwen3.8 は深い歴史的文脈と長期間にわたる自律的な意思決定を可能にし、既存の画像/ビデオ分析パイプラインとシームレスに統合されます。

2026/08/15 5:46

研究がコーヒー摂取量と代謝健康および性ホルモンの関連性を示唆

## Japanese Translation: 大学のウェブサイトは、主要な学術および行政リソースにユーザーを接続する包括的なポータルとして機能します。構造的には、生化学・分子医学学部、教育学・心理学学部、人文科学部、医学部、情報技術電気工学部、理学部、技術学部、オウルビジネススクールなどの特定ファカルティへの直接ナビゲーションを提供するとともに、「Oula-Finna」図書館システムをはじめとする重要なサポーツサービスにアクセスすることを可能にします。この図書館システムでは、サービス、コレクション、施設、ガイド、連絡先時間などへのアクセスが提供されています。さらに、ニュース、出願、研究、協力、寄付、キャンパス、キャリア、連絡先情報、登記所、中央アーカイブなどのセクションも利用可能です。ウェブサイトはまた、大学ランキングを際立たせて表示しています。これらの多様な要素を統合することによって、ウェブサイトはステークホルダーが特定の機関データおよびサービスを見つけるために効率よく動作し、内部ナビゲーションおよび外部エンゲージメントのための重要なハブとなっています。

2026/08/15 0:03

私が大切にしている本7冊:なぜか大好きだからです。

## Japanese Translation: **改善された要約:** 本文の主な焦点は、作家の机周および棚に配置され、インスピレーションと参照のための詳細な物品リストにある。このキュレートのコレクションは古典文学や神学から数学論理、児童書、デジタルツールまで多様な分野を繋ぎ合わせている。著者は実用性やテーマ的な深さに基づいて特定の版を残しており、例えばロジェの類語辞典第 4 版は時間概念(例:優先度、同時性)の簡潔な分類のために保持されているが、サイズのため第 8 版は遠い棚に移されており使用されていない。他の注目すべき作品には、サウス・トマス・ブラウンの『Pseudodoxia Epidemica』があり、これはロジェのスペースに置かれ、蝗虫やピタゴラスのタブーなどに関する話題が論じられている;ボッカッチョの『デカメロン』(1348 年の黒死病を背景とし、ダンテと比較される);そして『フレゲからゲーデルへ』という数学論理論文集が含まれている。リストにはさらに、ヨハネス・コメニウスの挿絵入り児童書『Orbis Sensualium Pictis』(1658 年)、特定の記事に関する注釈を付した大型文字の NIV 聖書、ベリー公の中世『Belles Heures』、そして 8mm バックアップテープや韓国式麻雀カードのような個人的な文脈を持つ物品も含まれている。最後に、GNU Emacs や Blosxom ソフトウェアなどの実用的なデジタルツールに加え、ドラフト作成およびテキスト修正のために GNU grep およびその他のユーティリティのコレクションも含まれている。

Show HN: Ember – Redshift 安全なカラーパレット | そっか~ニュース