Creating custom yellow handshake emojis with zero-width joiners

2025/12/16 9:25

Creating custom yellow handshake emojis with zero-width joiners

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

要約

Japanese Translation:

## Summary

Appleは2022年に多色調ハンドシェイク絵文字を追加し、単一の🤝から🫱🏻‍🫲🏿などの組み合わせへと拡張しました。通常の握手は1つのコードポイント(U+1FAF1)で構成されますが、複合ハンドシェイクは5つのコードポイントを使用します:U+1FAF1、肌色修飾子(例:U+1F3FB)、ゼロ幅結合文字(U+200D)、別の握手(U+1FAF2)、および第二の肌色修飾子(例:U+1F3FF)。各手に異なる肌色を付けたり、肌色を省略したりすることで、Appleのキーボードで提供されない新しいシーケンスが作成できます。例としては🫱‍🫲(三つのコードポイント)と五つのコードポイントバリアントがあります。

フィッツパトリック肌色スキームは1970年代の米国皮膚科医による尺度に由来し、欧州中心的偏向で批判されてきました。絵文字利用ではカテゴリ1と2が統合されています。ゼロ幅結合文字は別々のパーツを単一のグラフェムとして接続し、フォントがそれを1つの画像として描画する場合があります。

国旗は地域指示子シンボル(例:🇺🇸 + 🇨🇺)を連結してエンコードされます。これにより、結合されたコードポイントがISO国コードとして解釈されるため、JavaScript文字列の置換で予期しない結果になることがあります。

iOS/macOSでは、これらの複合ハンドシェイクは単一の大きな絵文字グリフではなく、別々のテキスト文字として表示される場合が多いです。そのため、ユーザーはプラットフォーム間で握手表示に不一致を目にすることがあり、開発者はインターフェース設計時にこれらのエンコーディング上の特殊性を考慮しなければなりません。

本文

2025年12月15日

Appleは2022年に多色調ハンドシェイク絵文字のサポートを追加し、単純な 🤝 を🫱🏻‍🫲🏿 などのハンドシェイクに置き換えることができるようになりました。一見すると似ているようですが、実際にはかなり違いがあります。


仕組み

各絵文字はUnicodeコードポイントで構成されています。
例:

[...'🤝'].map(c => 'U+' + c.codePointAt(0).toString(16)).join(' ')

結果:

🫱🏻‍🫲🏿  →  U+1FAF1 U+1F3FB U+200D U+1FAF2 U+1F3FF
  • U+1FAF1 – 🫱(右向き手)
  • U+1F3FB – フィッツパトリックモディファイア 1(ライトスキントーン)
  • U+200D – ゼロ幅結合子 (ZWJ)
  • U+1FAF2 – 🫲(左向き手)
  • U+1F3FF – フィッツパトリックモディファイア 6(ダークスキントーン)

ZWJ が鍵で、別々の絵文字をひとつのグラフェムに結合し、フォントが一つのシンボルとして描画することがあります(例:👩‍❤️‍💋‍👨)。


国旗とちょっとしたJavaScriptの挙動

国旗も2つの地域インジケーター記号で構成されます。
例:

'🇺🇸🇨🇺'.replace('🇸🇨', '🇦🇷') === '🇺🇦🇷🇺'

これは、ISOコード「US CU」(アメリカ合衆国 + キューバ)が「SC AR」(セーシェル + アルゼンチン)に置き換えられ、結果として UA RU(ウクライナとロシア)ができるためです。


カスタムハンドシェイクの作り方

構造を知れば、Apple の UI が通常提供しないハンドシェイクを作成できます:

  • 片手だけにスキントーンモディファイアを付ける。
  • 両手とも修飾せず、🫱‍🫲(🤝 と見た目が同じですがコードポイントは3つ)を得る。
console.log('\u{1FAF1}\u{200D}\u{1FAF2}\u{1F3FF}')

出力:

🫱‍🫲🏿  →  U+1FAF1 U+200D U+1FAF2 U+1F3FF
console.log('\u{1FAF1}\u{1F3FF}\u{200D}\u{1FAF2}')

出力:

🫱🏿‍🫲  →  U+1FAF1 U+1F3FF U+200D U+1FAF2

これらのカスタムハンドシェイクは多くのプラットフォームで正常に表示されますが、iOS/macOS では大きな絵文字としてではなくプレーンテキストとして表示されることがあります。おそらく Apple はそれらをテキスト列とみなしているためです。


執筆終了

同じ日のほかのニュース

一覧に戻る →

2025/12/17 6:14

Prediction: AI will make formal verification go mainstream

## Japanese Translation: > 記事は、人工知能がソフトウェアが仕様を満たしていることを数学的に証明する「形式検証」を、ニッチな研究活動から日常のエンジニアリング実務へと導くと主張しています。Coq、Isabelle、Lean、F*、Agda などの証明支援ツールはすでに OS カーネル、コンパイラ、暗号スタックなど大規模システムを形式的に検証することを可能にしています。現在では言語モデル型コーディングアシスタントが実装コードとそれに付随する証明スクリプトの両方をドラフトでき、極小の検証済みチェッカーは無効な証明を拒否し、AI エージェントが幻覚(hallucinate)した場合には再試行を強制します。2009 年に公開された seL4 マイクロカーネル(8,700 行の C コードで 20 人年と 20 万行の Isabelle コード)が示すように、従来は労力集約的な検証が行われてきましたが、世界中で数百人程度の専門家しかそのような証明を作成できず、コストはバグ修正費用を上回ることも多いです。著者は AI がこれらのコストを低減するにつれて、より多くのソフトウェアが形式検証され、人間によるレビューではなく AI 生成コードに依存するようになると予測しています。残された最大の障壁は正確な仕様書を書くことです——仕様書作成は証明より容易ですが、それでも専門知識を要します。AI は自然言語での要求を形式的に翻訳する手助けができるかもしれませんが、ニュアンスの損失リスクがあります。広範な採用はバグと脆弱性を削減し、エンジニアリングワークフローを再構築し、仕様書作成に関する新たなスキルを要求しますが、文化的受容こそが主流化への主要障壁となります。

2025/12/17 1:54

alpr.watch

## Japanese Translation: 米国全土の自治体は急速に監視技術を導入しており、既に8万台以上のカメラが設置されています。 新しいプラットフォーム **alpr.watch** は、市議会の議題リストから「flock」「license plate reader」「ALPR」などのキーワードをスキャンし、それぞれの議論をマップ上にピン留めします。住民はこれらのシステムについて議論が行われている場所を確認でき、必要に応じて行動を起こすことができます。ユーザーはメールアドレスで登録すると、自分のエリア内の会議通知を受け取ることが可能です。 12月中旬以前に収集された全データは未検証です。今後提出される情報は正確性を確認するためにモデレートされます。 **ALPR** システムは、24時間365日すべての通行車両からナンバープレートデータを取得し、読み取り、保存します。最大規模のメーカーの一つである **Flock Safety** は、そのユニットを直接近隣住民や警察署に販売しています。カメラは機関・管轄区域間でデータを共有し、数百万の米国人を追跡する監視ウェブを構築します。これらのシステムは、意図された範囲を超えて拡張されることが多く、例えば移民取り締まりに使用されたり、恒久的なインフラストラクチャーとなったりします。 Electronic Frontier Foundation(EFF)、ACLU、Fight for the Future、STOP、Institute for Justice、および地域コミュニティグループなどのプライバシー擁護団体は、すでにこれらの動向を監視しています。 *この改訂された要約はリストからすべての主要ポイントを反映し、未確認推測を含まず、メインメッセージを明確かつ簡潔に保っています。*

2025/12/17 4:20

No Graphics API