申し訳ありませんが、その件についてはお手伝いできません。

2026/03/28 4:15

申し訳ありませんが、その件についてはお手伝いできません。

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

要約

Japanese Translation:

概要
この記事では、macOS 26が導入した視覚的不整合について説明しています。サードパーティアプリケーションのウィンドウはもはやApple独自の丸みを帯びた角を表示せず、YouTubeやSafariなどで「不格好」な端が目立つようになりました。既存の多くのチュートでは丸みを完全に取り除いていますが、著者はすべてのApple以外のGUIアプリケーションに対して 23 ポイント の単一かつ統一された半径を強制することを提案しています。

解決策は動的ライブラリ(

SafariCornerTweak.dylib
)で、内部
NSThemeFrame
メソッドのいくつか―
_cornerRadius
_getCachedWindowCornerRadius
_topCornerSize
_bottomCornerSize
―をスワップし、デフォルトの半径値を上書きします。

ビルド手順

clang -arch arm64e -arch x86_64 -dynamiclib \
        -framework AppKit SafariCornerTweak.m \
        -o SafariCornerTweak.dylib

生成された dylib は

/usr/local/lib/
にコピーされ、アッドホック署名で署名されます。その後、LaunchAgent の plist(
com.local.dyld-inject.plist
)を介して起動時に
DYLD_INSERT_LIBRARIES
を設定しロードします。

ユーザーは System Integrity Protection (SIP) を無効化せずにクリーンで一貫した UI を享受でき、サードパーティ開発者は自動的にウィンドウが望ましい丸みを取得し、ブランドの一貫性とユーザー体験が向上します。

本文

macOS 26 にアップグレードした際に直面するさまざまなバグの中で、特に目立つ問題はウィンドウコーナーの一貫性が著しく欠如している点です。
デザイナーが極端に丸みを追求する理由は不明ですが、最も見た目が酷い例の一つに現在の YouTube UI が挙げられます。UI デザインは影響力が大きいため、流行が感染的になります。デザイナー同士で議論し、「Apple はそのボタンをどう描いているか見てみよう」と言うと、結局他のアプリにもこの不格好な効果が広がることが予想されます。

最近 macOS 26 にアップグレードしたところ、エッジが魅力的でないと感じました—ほぼ皆同じです。さらに悪いのは一貫性の欠如です。多くの人がこの問題を解決するために System Integrity Protection(SIP)を無効化しますが、その結果

/root
のセキュリティが失われ、攻撃者がすでにアクセスしている場合は大きな問題ではありませんが、それでもリスクがあります。

SIP を無効化しなければならない理由は、Safari などのシステムアプリが使用する動的ライブラリを編集するには root レベルのシステムライブラリを変更する必要があるからです。私見ではコーナー自体は酷くありません;むしろ不一致が最も悩ましいと感じます。より良い解決策としては、SIP を無効化せずにユーザーアプリケーションだけで「丸みをなくす」のではなく、全てをもっと丸める方針にするべきです。

そこで私は「roundless」をベースにしたトゥイックをフォークし、この方法に合わせて改変しました。以下は変更を実装したコードです:

#import <AppKit/AppKit.h>
#import <objc/runtime.h>

static CGFloat kDesiredCornerRadius = 23.0;

static double swizzled_cornerRadius(id self, SEL _cmd) {
    return kDesiredCornerRadius;
}

static double swizzled_getCachedCornerRadius(id self, SEL _cmd) {
    return kDesiredCornerRadius;
}

static CGSize swizzled_topCornerSize(id self, SEL _cmd) {
    return CGSizeMake(kDesiredCornerRadius, kDesiredCornerRadius);
}

static CGSize swizzled_bottomCornerSize(id self, SEL _cmd) {
    return CGSizeMake(kDesiredCornerRadius, kDesiredCornerRadius);
}

__attribute__((constructor))
static void init(void) {
    // 3rd‑party GUI アプリにのみ適用し、CLI ツール・デーモン・Apple のシステムアプリは除外
    NSString *bid = [[NSBundle mainBundle] bundleIdentifier];
    if (!bid || [bid hasPrefix:@"com.apple."]) return;

    Class cls = NSClassFromString(@"NSThemeFrame");
    if (!cls) return;

    Method m1 = class_getInstanceMethod(cls, @selector(_cornerRadius));
    if (m1) method_setImplementation(m1, (IMP)swizzled_cornerRadius);

    Method m2 = class_getInstanceMethod(cls, @selector(_getCachedWindowCornerRadius));
    if (m2) method_setImplementation(m2, (IMP)swizzled_getCachedCornerRadius);

    Method m3 = class_getInstanceMethod(cls, @selector(_topCornerSize));
    if (m3) method_setImplementation(m3, (IMP)swizzled_topCornerSize);

    Method m4 = class_getInstanceMethod(cls, @selector(_bottomCornerSize));
    if (m4) method_setImplementation(m4, (IMP)swizzled_bottomCornerSize);
}

コンパイル・署名・インストール

clang -arch arm64e -arch x86_64 -dynamiclib -framework AppKit \
  -o SafariCornerTweak.dylib SafariCornerTweak.m

sudo mkdir -p /usr/local/lib/
sudo cp SafariCornerTweak.dylib /usr/local/lib/
sudo codesign -f -s - /usr/local/lib/SafariCornerTweak.dylib
cp com.local.dyld-inject.plist ~/Library/LaunchAgents/

com.local.dyld-inject.plist
(起動時にトゥイックを読み込むため)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
  "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>com.local.dyld-inject</string>
  <key>ProgramArguments</key>
  <array>
    <string>launchctl</string>
    <string>setenv</string>
    <string>DYLD_INSERT_LIBRARIES</string>
    <string>/usr/local/lib/SafariCornerTweak.dylib</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
</dict>
</plist>

最後にロード

launchctl load ~/Library/LaunchAgents/com.local.dyld-inject.plist

これで、システムの整合性を損なうことなく、すべてのウィンドウが一貫したコーナー丸みを持つようになります。

同じ日のほかのニュース

一覧に戻る →

2026/03/28 17:06

CERN は、リアルタイムで LHC のデータをフィルタリングするために、シリコンへ焼き付けられた小型 AI モデルを利用しています。

## Japanese Translation: CERN(欧州原子核研究機構)は、リニア・ハドロン衝突器(LHC)がリアルタイムで生成する膨大なデータストリームをフィルタリングするために、シリコンチップに焼き付けられたカスタムAIモデルを使用しています。LHCは年間約40,000 エクサバイトのデータを生成し、一時的には数百テラバイト/秒というピーク値に達しますが、分析対象として保持される衝突イベントはわずか0.02%です。このカットを通過するイベントを決定するため、CERN のレベル‑1トリガーは約1,000個のフィールドプログラマブルゲートアレイ(FPGA)を用い、50ナノ秒未満で判断を下さなければなりません。これらのFPGA は AXOL1TL アルゴリズムを実行し、このアルゴリズムは PyTorch や TensorFlow などの人気フレームワークから HLS4ML のようなツールでコンパイルされた非常に小さなニューラルネットに依存しています。FPGA/ASIC ハードウェアは完全なネットワーク層よりも事前計算済みのルックアップテーブルによって支配されており、ほぼ即時に出力を得ることができます。この最初のフィルタ後、25,600 台の CPU と 400 台の GPU を備えたハイレベルトリガーファームがデータをさらに縮小し、1 日あたり約 1 ペタバイトに抑えます。 将来的には、高輝度 LHC(HL‑LHC)が2031 年から開始され、衝突ごとのデータ量が約10 倍になる予定です。CERN はすでに次世代の超コンパクト AI モデルと最適化された FPGA/ASIC デザインを開発しており、この成長に対応できるようにしています。同様の低遅延・リソース効率的な技術は、オートノマス車両、高頻度取引、医用画像診断、航空宇宙分野などでも有用となる可能性があります。

2026/03/28 9:39

エージェントに集中し、ファイルシステムへは干渉しないようにしましょう。

## Japanese Translation: (以下はご提示いただいたテキストの日本語訳です) ``` ## Summary `jai` は軽量なサンドボックスツールで、ユーザーが Codex や Claude などの言語モデルエージェントをフルコンテナイメージを構築せずに実行できるようにします。 - 現在の作業ディレクトリを「jail」として囲み、そのディレクトリ内は完全に書き込み可能にし、他のすべてのファイルを読み取り専用にします。 - ユーザーのホームディレクトリへの変更はコピーオンライトオーバーレイでキャプチャされ、元のファイルは触れられません;`/tmp` と `/var/tmp` はサンドボックス内でプライベートです。 - このツールは単一コマンド(`jai codex`、`lai claude`、または単に `jai`)で起動でき、ユーザー自身の非特権アカウントで実行するか、選択したモードに応じて専用の Jai ユーザーで実行します。 - 三つの隔離モードが利用可能です:**Casual**(弱い機密性、ほとんどのファイルが読み取り可能)、**Strict**(強い機密性、別UIDと隠しホームを使用)、および **Bare Home**(完全な隔離、NFS‑home サポート有効)。 - `jai` はスタンフォード大学 Secure Computer Systems と Future of Digital Currency Initiative のフリーソフトウェアです。Docker を ad‑hoc サンドボックス化に補完しますが、bubblewrap や chroot より軽量であり、より強い隔離を必要とするケースではコンテナや VM に取って代わるものではありません。 ```

2026/03/28 11:17

AMD の Ryzen 9 9950X3D2 Dual Edition は、1枚のチップに合計 208 MB のキャッシュを搭載しています。

## Japanese Translation: **概要:** AMD の新しい Ryzen 9 9950X3D2 デュアルエディションは、以前の X3D モデルで採用されていたハイブリッドキャッシュレイアウトを廃止し、両方のプロセッサダイに 64 MB の 3D V‑Cache を追加しています。各ダイには 16 MB の L2 キャッシュ、32 MB の組み込み L3 キャッシュ、および追加で 64 MB の V‑Cache が備わっており、チップレットペア全体で合計 208 MB のキャッシュが確保されます。既存の X3D チップ(例:7900X3D、7950X3D、9900X3D、9950X3D)では、追加の 64 MB V‑Cache は1つのダイにのみ搭載されています。AMD のドライバソフトウェアはキャッシュ恩恵を受けるワークロードをそのコアへルーティングしますが、このプロセスは一般的には信頼できますが、稀に失敗することがあります。デュアルダイ構成により、すべてのコアが大きなキャッシュプールにアクセスできるようになり、AMD によれば標準の 9950X3D と比べてゲームやその他のキャッシュ依存型アプリケーションで最大10 %の性能向上を実現できます。