**JSON Canvas仕様(2024)**

- **1. 目的**  
  - インタラクティブキャンバスを表現するためのJSONベースのフォーマットを定義します。  
  - エディタと実行エンジン間でデータ交換できるようにします。

- **2. コア概念**  
  - *Canvas* – 描画要素をすべて含むトップレベルオブジェクト。  
  - *Layer* – 要素の順序付きグループ。透過度やブレンディングモードをサポートします。  
  - *Element* – 描画可能なアイテム(図形、画像、文字列、パス)。

- **3. JSON構造**  
  ```json
  {
    "canvas": {
      "width": 800,
      "height": 600,
      "layers": [
        { /* Layerオブジェクト */ },
        …
      ]
    }
  }
  ```
  - **Layerオブジェクト**  
    - `id`: string(ユニーク)  
    - `name`: string  
    - `visible`: boolean  
    - `opacity`: number (0–1)  
    - `elements`: Elementオブジェクトの配列  

- **4. 要素タイプ**  
  | タイプ   | 必須プロパティ                     | 任意プロパティ                 |
  |--------|------------------------------------|------------------------------|
  | `rect` | `x`, `y`, `width`, `height`, `fill` | `stroke`, `strokeWidth`      |
  | `circle` | `cx`, `cy`, `r`, `fill`            | `stroke`, `strokeWidth`      |
  | `image` | `src`, `x`, `y`, `width`, `height` | `opacity`                    |
  | `text` | `x`, `y`, `content`, `fontSize`, `color` | `fontFamily`, `align`   |
  | `path` | `d`(SVGパス), `fill`            | `stroke`, `strokeWidth`      |

- **5. スタイリング**  
  - 色は16進数 (`#RRGGBB`) または CSS 名付き色で指定します。  
  - 透過度は要素単位で設定でき、レイヤーの透過度で上書き可能です。

- **6. インタラクション(任意)**  
  - 要素に `"onClick"` フィールドを追加し、関数名を参照できます。  
  - 実際のイベントハンドラはアプリケーション内で別途定義します。

- **7. 検証**  
  - スキーマ参照:`canvas_spec_2024.json`(JSON‑Schema)  
  - 数値はすべて有限であること、文字列は空でないことが必須です。

- **8. バージョニング**  
  - すべてのドキュメントのルートに `"specVersion": "2024"` を記載します。  

---  

*仕様概要終了.*

2026/03/30 18:38

**JSON Canvas仕様(2024)** - **1. 目的** - インタラクティブキャンバスを表現するためのJSONベースのフォーマットを定義します。 - エディタと実行エンジン間でデータ交換できるようにします。 - **2. コア概念** - *Canvas* – 描画要素をすべて含むトップレベルオブジェクト。 - *Layer* – 要素の順序付きグループ。透過度やブレンディングモードをサポートします。 - *Element* – 描画可能なアイテム(図形、画像、文字列、パス)。 - **3. JSON構造** ```json { "canvas": { "width": 800, "height": 600, "layers": [ { /* Layerオブジェクト */ }, … ] } } ``` - **Layerオブジェクト** - `id`: string(ユニーク) - `name`: string - `visible`: boolean - `opacity`: number (0–1) - `elements`: Elementオブジェクトの配列 - **4. 要素タイプ** | タイプ | 必須プロパティ | 任意プロパティ | |--------|------------------------------------|------------------------------| | `rect` | `x`, `y`, `width`, `height`, `fill` | `stroke`, `strokeWidth` | | `circle` | `cx`, `cy`, `r`, `fill` | `stroke`, `strokeWidth` | | `image` | `src`, `x`, `y`, `width`, `height` | `opacity` | | `text` | `x`, `y`, `content`, `fontSize`, `color` | `fontFamily`, `align` | | `path` | `d`(SVGパス), `fill` | `stroke`, `strokeWidth` | - **5. スタイリング** - 色は16進数 (`#RRGGBB`) または CSS 名付き色で指定します。 - 透過度は要素単位で設定でき、レイヤーの透過度で上書き可能です。 - **6. インタラクション(任意)** - 要素に `"onClick"` フィールドを追加し、関数名を参照できます。 - 実際のイベントハンドラはアプリケーション内で別途定義します。 - **7. 検証** - スキーマ参照:`canvas_spec_2024.json`(JSON‑Schema) - 数値はすべて有限であること、文字列は空でないことが必須です。 - **8. バージョニング** - すべてのドキュメントのルートに `"specVersion": "2024"` を記載します。 --- *仕様概要終了.*

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

要約

Japanese Translation:

JSON Canvas Spec バージョン 1.0 は、図面キャンバス用の軽量で相互運用可能なフォーマットとして 2024‑03‑11 にリリースされました。
この仕様では、

nodes
edges
の 2 つのトップレベル配列が必要です。
ノードは z‑インデックスの昇順で並べられます(最初の要素が下層になります)。各ノードには必須フィールドとして
id
type
text
file
link
、または
group
)、
x
y
width
height
があり、オプションで
color
を指定できます。特定のノードタイプには以下を追加します:
Text – 必須
text
(プレーンMarkdown)。
File – 必須
file
パス、任意
subpath
(先頭が
#
で始まる)。
Link – 必須
url

Group – 任意
label
、任意
background
イメージパス、および任意の
backgroundStyle
cover
ratio
、または
repeat
)。
エッジには必須フィールドとして
id
fromNode
toNode
があり、オプションで
fromSide
/
toSide
(top/right/bottom/left)、
fromEnd
/
toEnd
(デフォルトは:
none
/
arrow
)およびオプションの
color
label
を指定できます。
色値は hex 文字列または 1‑6 のプリセット番号で、赤、オレンジ、黄、緑、水色、紫にそれぞれマッピングされます。

このバージョンではすべての重要ポイントを保持し、不当な推測を避けつつ主旨を明確に提示しています。

本文

JSON Canvas仕様書

バージョン 1.0 — 2024‑03‑11


トップレベル

JSON Canvas のトップレベルには、以下の2つのオプション配列が存在します。

  • nodes
    – ノードの配列
  • edges
    – エッジ(線)の配列

両方とも 任意 です。省略した場合はキャンバスは空になります。


ノード

ノードは、キャンバス上に配置されたアイテムを表すオブジェクトです。
タイプは textfilelink、または group のいずれかです。

配列順序

nodes
配列は z‑index が昇順になるようにソートしてください。

  • 最初のノードが最背面に配置されます。
  • 最後のノードが最前面に配置されます。

共通ノード属性

属性必須説明
id
stringノード固有の識別子。
type
string
text
,
file
,
link
,
group
のいずれか。
x
integerX 座標(ピクセル)。
y
integerY 座標(ピクセル)。
width
integer幅(ピクセル)。
height
integer高さ(ピクセル)。
color
string*ノードの色 (
canvasColor
)。

* Color セクションで許容される値を参照してください。


Text タイプノード

共通属性に加えて、テキストノードは以下が必須です。

  • text
    – 必須。マークダウン構文を含むプレーンテキスト。

例:

{
  "id": "node1",
  "type": "text",
  "x": 100,
  "y": 150,
  "width": 200,
  "height": 50,
  "text": "# タイトル\nSome **bold** text."
}

File タイプノード

ファイルノードは外部リソースを参照します。必須属性:

  • file
    – 必須。システム内のファイルパス。
  • subpath
    – 任意。サブパス(例: 見出しやブロック)。必ず
    #
    で始まる。

例:

{
  "id": "node2",
  "type": "file",
  "x": 300,
  "y": 200,
  "width": 400,
  "height": 300,
  "file": "/images/photo.jpg",
  "subpath": "#section1"
}

Link タイプノード

リンクノードは URL を参照します。必須属性:

  • url
    – 必須。文字列。

例:

{
  "id": "node3",
  "type": "link",
  "x": 500,
  "y": 100,
  "width": 150,
  "height": 50,
  "url": "https://example.com"
}

Group タイプノード

グループノードはビジュアルコンテナとして機能します。任意属性:

  • label
    – 任意。グループのラベル文字列。
  • background
    – 任意。背景画像へのパス。
  • backgroundStyle
    – 任意。背景画像の描画スタイル。
    有効値:
    cover
    ,
    ratio
    ,
    repeat
    .

例:

{
  "id": "group1",
  "type": "group",
  "x": 50,
  "y": 50,
  "width": 600,
  "height": 400,
  "label": "My Group",
  "background": "/images/bg.png",
  "backgroundStyle": "cover"
}

エッジ

エッジは2つのノードを結ぶ線です。

属性必須説明
id
stringエッジ固有の識別子。
fromNode
string接続開始ノードの ID。
fromSide
string*開始ノード側(
top
,
right
,
bottom
,
left
)。
fromEnd
string*開始端の形状。デフォルトは
none
。有効値:
none
,
arrow
.
toNode
string接続終了ノードの ID。
toSide
string*終了ノード側(
top
,
right
,
bottom
,
left
)。
toEnd
string*終了端の形状。デフォルトは
arrow
. 有効値:
none
,
arrow
.
color
stringエッジ色 (
canvasColor
)。
label
stringエッジ用テキストラベル。

* Side と endpoint の値は上記の制限に従ってください。

例:

{
  "id": "edge1",
  "fromNode": "node1",
  "toNode": "node3",
  "color": "#00FF00",
  "label": "Connection"
}

カラー

canvasColor
タイプはノードとエッジの色情報を表します。
許容形式:

  • ヘックス文字列(例:
    "#FF0000"
    )。
  • 6 つのプリセット数値文字列 (
    "1"
    "6"
    )。これらはブランド固有の色にマップされます。

プリセットマッピング:

デフォルト名
"1"
red
"2"
orange
"3"
yellow
"4"
green
"5"
cyan
"6"
purple

アプリケーションはブランドに合わせてこれらのプリセット値を上書きできます。

同じ日のほかのニュース

一覧に戻る →

2026/04/03 1:10

Google が Gemma 4 のオープンモデルをリリースしました。

## Japanese Translation: > **概要:** Gemma 4は、Google の Gemini 3 研究に基づく軽量かつオープンソースの AI モデルであり、モバイル電話、IoT デバイス、およびパーソナルコンピュータ向けにパラメータあたり高い知能を提供するよう設計されています。テキスト・画像・音声といった多モーダルな推論をサポートし、140 言語で動作します。アーキテクチャはエージェント型ワークフローを取り入れており、モデルがタスクの計画、アプリの操作、関数呼び出し、およびユーザー好みのフレームワークによる振る舞いの微調整を行えるようにしています。Gemma 4 はユーザー自身のハードウェア上で実行できるため、効率的な開発と展開が可能です。ベンチマーク結果は優れた性能を示しており、IT Thinking(31B)、MMMLU(1365 タスク中約 85%)、MMMU Pro(76.9–44.2%)、AIME 2026 数学ノーツール(89.2–20.8%)、LiveCodeBench v6 コーディング(80.0–29.1%)、GPQA Diamond 科学知識(84.3–42.4%)および τ2‑bench エージェント型ツール使用小売(86.4–6.6%)において高いスコアを記録しています。これらのスコアは、Gemma 3 など以前のモデルを上回りつつ、デバイス内での展開に十分な効率性を保っていることを示し、消費者向けデバイスおよび企業用途に対して競争力があり低リソースで利用できる AI プラットフォームとして位置づけられます。

2026/04/03 3:22

**テイルスケールの新しい macOS ホーム**

## Japanese Translation: > **概要:** > Tailscale のメニューバーアイコンは、2021 年以降の MacBook Pro でノッチに隠れてしまい、ユーザーがアプリにアクセスできなくなることがあります。Apple はノッチ内のアイコンを移動または回避するネイティブな方法を提供しておらず、そのため ICE や Bartender といったサードパーティ製ツールがよく利用されます。Tailscale は `occlusionState` を使用してアイコンが隠れたときに検知し、ポップアップで警告を表示します。ただし、この警告は蓋の開閉時やモニター変更時、その他ディスプレイの不具合時に誤って発火することがあります。 > 同社は新しいウィンドウ型 macOS インターフェイス(バージョン 1.96.2 でデフォルト有効)をリリースしました。このインターフェイスはメニューバーアプリと並行して動作し、ノッチの問題に影響されません。UI には Tailnet デバイスの検索可能な一覧、Ping/IP コピー、Taildrop ファイル転送、Exit‑Node 選択、エラー時に赤く表示される Dock アイコン、ミニプレイヤー、およびオンボーディングツアーが含まれており、Dock か Spotlight から起動できてメニューバーアプリを補完する形になります。ウィンドウ型クライアントで「Hide Dock icon」を有効にしたユーザーでも、隠れたアイコンの警告が発生する可能性があります。 > Tailscale は Windows 向けにも同様の UI を計画しており、macOS 体験を向上させるためにユーザーフィードバックを収集しています。Apple の将来的な解決策は、ノッチ内でアイコン描画を防止するか、メニューバー項目用のオーバーフロー機構を提供することになる可能性があり、ウィンドウ型アプリの普及に伴いポップアップ修正が不要になる可能性があります。

2026/04/03 1:00

**Azureの信頼を蝕んだ決定 – 元Azureコアエンジニアによる考察** - **機能過剰な約束** *約束された機能が遅れて提供されるか、まったく実装されないことで、ユーザーは誤解を受けたと感じました。* - **APIの安定性が一貫していない** *頻繁に破壊的変更が行われ、十分な非推奨期間が設けられないため、開発者の信頼感が揺らぎました。* - **価格設定の不透明さ** *事前告知のない調整や混乱を招く請求モデルにより、顧客は財務予測性を失いました。* - **セキュリティパッチの遅延** *重大な脆弱性が修正されるまで時間がかかり、クライアントは不必要なリスクにさらされました。* - **ドキュメント更新の遅れ** *プラットフォームのリリースに追いつかない文書は、ユーザーを信頼性の低いコミュニティ資料へと強制しました。* これら一連の決定が、Azureがかつて利用者から享受していた信頼を徐々に蝕んでしまいました。

## Japanese Translation: --- ### Summary 著者は、Microsoft が Overlake で使用されている小型 ARM SoC に **173 の Azure ノードエージェント** を移植する計画が非現実的であり、リスクが高く、Azure Core の評判や主要顧客・政府パートナーとの信頼を損なう可能性があると主張しています。核心となる問題は、ARM SoC の厳しいハードウェア制限―2 本ポートの FPGA メモリが 4 KB に限定されていること―にあり、このため多くのエージェントをサポートすることが不可能です。現在の Xeon ノードはすでに VM 密度(ノードあたり数十台の VM とハイパーバイザー容量約 1,024 台)で苦戦しており、ワークロードに対して性能ジッターを引き起こしています。 著者はまた、OpenAI、Anthropic Claude、SharePoint Online などの高プロファイルクライアントに影響を与える可能性のあるセキュリティリスクを指摘し、国家安全保障上の懸念を提起しています。これらの懸念を Microsoft の経営層(CEO、取締役会、Cloud + AI EVP)に伝えたにもかかわらず、著者は回答や是正措置を受けていません。 2023 年以降 Azure Core に関わり、Overlake カード設計の経験もある著者は、この欠陥のある計画を進めることが Azure Core の「デス・マーチ」になり得ると警告し、顧客信頼を侵食し米国政府関係者との関係に緊張を生む可能性があると述べています。この記事は、さらに詳細を知るために Part 2 への継続読了を促しています。

**JSON Canvas仕様(2024)** - **1. 目的** - インタラクティブキャンバスを表現するためのJSONベースのフォーマットを定義します。 - エディタと実行エンジン間でデータ交換できるようにします。 - **2. コア概念** - *Canvas* – 描画要素をすべて含むトップレベルオブジェクト。 - *Layer* – 要素の順序付きグループ。透過度やブレンディングモードをサポートします。 - *Element* – 描画可能なアイテム(図形、画像、文字列、パス)。 - **3. JSON構造** ```json { "canvas": { "width": 800, "height": 600, "layers": [ { /* Layerオブジェクト */ }, … ] } } ``` - **Layerオブジェクト** - `id`: string(ユニーク) - `name`: string - `visible`: boolean - `opacity`: number (0–1) - `elements`: Elementオブジェクトの配列 - **4. 要素タイプ** | タイプ | 必須プロパティ | 任意プロパティ | |--------|------------------------------------|------------------------------| | `rect` | `x`, `y`, `width`, `height`, `fill` | `stroke`, `strokeWidth` | | `circle` | `cx`, `cy`, `r`, `fill` | `stroke`, `strokeWidth` | | `image` | `src`, `x`, `y`, `width`, `height` | `opacity` | | `text` | `x`, `y`, `content`, `fontSize`, `color` | `fontFamily`, `align` | | `path` | `d`(SVGパス), `fill` | `stroke`, `strokeWidth` | - **5. スタイリング** - 色は16進数 (`#RRGGBB`) または CSS 名付き色で指定します。 - 透過度は要素単位で設定でき、レイヤーの透過度で上書き可能です。 - **6. インタラクション(任意)** - 要素に `"onClick"` フィールドを追加し、関数名を参照できます。 - 実際のイベントハンドラはアプリケーション内で別途定義します。 - **7. 検証** - スキーマ参照:`canvas_spec_2024.json`(JSON‑Schema) - 数値はすべて有限であること、文字列は空でないことが必須です。 - **8. バージョニング** - すべてのドキュメントのルートに `"specVersion": "2024"` を記載します。 --- *仕様概要終了.* | そっか~ニュース