
はてなキーワード:ARCとは
anond:20251226191933 に書くことも考えたが、長くなりすぎるので分割することにした。
なお、三大検索エンジン (Google・Yahoo・Bing・あとひとつは?) はDuckDuckGoとTwookuL以外の全ブラウザーで設定できる。楽天ウェブ検索でも設定できるが、楽天ウェブ検索の良さをつぶしてしまうことになるのでおすすめはできない。
以下は日本で使用した場合に表示される候補 (2025年12月現在 /iOS 26.2) になる。
Chrome →Google (デフォルト) /Yahoo!JAPAN /MicrosoftBing /DuckDuckGo / Ecosia
Ecosiaは検索数に応じて木が植えられるので、地球環境に貢献できる。
Safari →Google (デフォルト) /Yahoo /Bing /DuckDuckGo / Ecosia
Yahooの!がついていないのは表記をブラウザーにあわせているため。プライベートブラウズの検索エンジンを別々に設定できる。通常はGoogleで、プライベートブラウズのときだけBingかDuckDuckGoにするという選択も可能。
Edge →Bing (デフォルト) /Yahoo!JAPAN /Google /DuckDuckGo /百度 /Cốc Cốc
百度は中国、Cốc Cốcはベトナムの検索エンジン。なお、百度は日本での検索事業からは撤退しており (そのため中国の百度で検索される) 、現在は日本語入力アプリ (Simeji) の開発がメイン。
Brave →Yahoo!JAPAN (デフォルト) /Brave Search (プライベートタブのデフォルト) /Bing /DuckDuckGo /Google / Qwant / Startpage
Safariと同様プライベート検索を別に設定できる。Googleが一覧でかなり下の順位になっているのとプライバシー重視の検索エンジンが多数登録されているのが特徴的。
なお、一覧にない検索エンジンでも手動でURLを入力しての登録が可能。
Qwantはフランス、Startpageはオランダの検索エンジン。2つともEUにあるためGDPRの対象となり、すくなくともEUの法律にのっとったプライバシー保護は保障される。
ちなみにStartpageはStartMailというサービスも提供しており、月額料金はかかるがメールエイリアス (日本でいう捨てメアド) を無制限に作成できる (書かなかったけどSafariもiCloudを有料プランにすればメールを非公開という同等機能がつかえる) 。
楽天ウェブ検索 →楽天ウェブ検索 (デフォルト) /Google /Yahoo!JAPAN /MicrosoftBing /DuckDuckGo /百度
楽天ウェブ検索以外に設定すると、検索でポイントをためることができなくなり、このアプリのメリットがなくなってしまう。
Opera →Google (デフォルト) /Yandex /Baidu /Yahoo /Bing /DuckDuckGo /Amazon /eBay /IMDB /Wikipedia / Qwant
Yandexはロシアの検索エンジン。Baiduは上記でもたびたびでてきた百度の英語表記 (ちなみに日本語表記はバイドゥ) 。
ショッピングサイトとしてAmazonやeBayが登録されている。ちなみにeBayは日本ではQoo10というサービスを展開している。
IMDBは映画のデータベース。映画好きで英語ができる (英語表示のみなので / 内部的には日本語タイトルも登録されているため検索ワードの入力は日本語でも可能) ならばこれに設定するとよいだろう。
検索エンジンが元ということもあるが割り切った仕様である。とはいえ検索エンジンのほうが先だったのはGoogleもそうなのだが、Chromeでは上記のとおり検索エンジンの変更ができる。
ポルン →Google (デフォルト) /Yahoo!検索 /Yahoo!検索 きっず /Bing /DuckDuckGo /Baidu
Yahoo! きっずが登録されているのはめずらしい。不適切なサイトを可能なかぎり検索結果に表示したくないならあえて設定するのもあり?
ちなみにこのブラウザーは通常の検索のほかにスマート検索という機能があり、検索ワードを通常通り入力すると下に「Google」「YouTube」などのボタンも表示される。改行キーのかわりにボタンをおすと選択した検索エンジンを使用する。順番をならびかえてDuckDuckGo・Yandex・Bingも上位にすればメタ検索エンジン的なつかいかたもできる。
TwookuL →DuckDuckGo (デフォルト) /Bing /Google /Wikipedia /Amazon
DuckDuckGoがデフォルトなのは今回紹介したブラウザーのなかでは (DuckDuckGo以外) 唯一である。めずらしくYahooが選択肢にない。
Firefox →Bing /DuckDuckGo /Google (デフォルト) / Perplexity /Wikipedia (ja) /Yahoo!JAPAN /Yahoo!オークション /楽天市場
こんな順番でGoogleがデフォルト設定なのはおそらく文字コード順 (あいうえお順) だからだろう。メーカーの意図で順番を操作していないともいえる。Brave同様、どんな検索エンジンでも追加登録が可能。
Uvoice →Google (デフォルト) /Yahoo! /Bing
Arc Search → Browse for Me /Google (デフォルト) /Bing /DuckDuckGo / Ecosia / Perplexity / Kagi
Browse for Meは一番上であることからもわかるように、Arc Searchオリジナルの検索エンジンで、検索結果が生成AIによって作成される。どれに設定しても検索候補にある「Browse for Me」ボタンで使用できるが、デフォルトを変更すると改行キーでも使用できる。
Kagiは課金をして使用する検索エンジンで、無料サービスを維持するために必要な広告が表示されないのが特徴。もし広告にうんざりしているならば課金するとよさそう。
anond:20250917090343 とanond:20251109153558 のさらにつづき。
anond:20250917090343 のほうでロック画面の時計のデザインを「ガラス」「ソリッド」から選択できるというのは書いたが、iOS 26.2で「ガラス」選択時の透明度をこまかく調整できるようになった。これにより時計のデザインは「ガラス」のほうがいいけど数字は読みやすくしたいというニーズに対応できるようになった。
...だけなので、デザイン以外でのiOS 26.2での最大の変更点もあわせてかいておくと、iOS 26.2にアップデートしてはじめてSafariを起動すると、デフォルトブラウザーの選択画面が自動的に表示されるようになった。(Safariの設定を開いて手動で変更するぶんには26.2以前でも可能)
日本で使用する場合に表示される選択肢 (2025年12月現在) は、
==== (続きを読む)
である。自分の表示された順番で書いたが、上側グループ、下側グループのなかではランダムな順番で表示される。
言いかえると、楽天ウェブ検索はかならず1番目から5番目のどこかに表示されるということだ。楽天ってそんなに影響力があったのか...。
はてな市民であれば、Firefoxが非営利団体による開発であることは知っているとは思うが、ポルンやTwookuLもインディーズ (独立系)である。
ちなみにおすすめは、
以前の記事でも書いたがUIはiOS 18とおなじにもどせる。設定 →アプリ →Safariから。
トラッカーをブロックしてプライバシーを守りたい →Safari・Edge・Brave・Opera・DuckDuckGo・Firefoxのどれか
EdgeやFirefoxはブロックレベルを選択でき、オンにしたままサイトを快適に閲覧するのを優先するか、トラッカーを厳重にブロックするかを選択できる。ほかのブラウザーで快適に閲覧できないサイトがあるときは、ブロック機能をオフにするしかない。
Googleはトラッカーを使用せずに関連広告の表示や広告効果の測定ができる方法を提案している (Safariの設定にある「プライバシー保護広告の測定」がそれにあたる) 。しかし、もっぱらGoogleの広告システムにのみ使用されており (2025年12月現在) 、普及しているとはいいがたい。Chromeもデスクトップ版に広告の測定機能はあるものの、トラッカーをブロックする機能はついていないため、Google以外の広告業者に個人情報をわたしたくないという場合はChrome以外のブラウザーにしたほうがよいだろう。
広告を非表示にしてデータ使用量を節約したい →Safari (+拡張機能) ・Edge・Brave・Opera・ポルン・TwookuL・Arc Searchのどれか
Safariはコンテンツブロッカーに対応した拡張機能を使用することで、閲覧したサイトを拡張機能に送信せずに広告を非表示にできる (ブロックリストがSafariにインストールされるかたち / そのため拡張機能自体を切らなくてもブロッカーだけを一時的にオフにできる) 。
Edgeはデスクトップ版は広告を非表示にするには拡張機能が必要だが、モバイル版は最初から非表示にする設定項目がある。
Googleは広告会社でもあり、重要な収益源となっているため、Chromeに広告ブロックが搭載されることはまずないだろう (さすがに押し付けがましい広告 (閉じにくい広告とか) を表示しているサイトはデフォルトでブロックされるらしいが実際に効果がでているのかはわからない) 。
生成AIを積極的に活用したい →EdgeかArc Search
EdgeやArc Searchはデフォルト設定で使用する場合、検索結果もAIで生成される。
ポイントをためたい →Edge・楽天ウェブ検索・Uvoiceのどれか
Edgeと楽天ウェブ検索はデフォルト以外の検索エンジンを使用するように設定するとポイントがたまらなくなるので、ポイント目的なら変更しないように注意。また、プライベートブラウズモードで検索した場合、そのぶんのポイントはたまらない。みられたくない検索だけプライベートにするとかなら大丈夫だが、常時プライベート勢ならポイントはあきらめよう。
実はデフォルトのアプリはブラウザー以外も変更できる。「メール」(Gmail)「通話」(Google Meet / 現状デフォルト設定にはできない)「ナビゲーション」(Google マップかWaze)「翻訳」(Google翻訳)「パスワードとコード」(ChromeとGoogle Authenticator)「キーボード」(Gboard) も変更することで、ほぼ完全にGoogleに依存したiPhoneのできあがり。「アプリのインストール」(Play ストア) と「非接触型アプリ」(Google ウォレット) は2025年12月現在iOSにはやってきていない。
国産にこだわりたい →楽天ウェブ検索・ポルン・TwookuLのどれか
ただしどのブラウザーもベースは海外産のブラウザーなので、純国産は存在しない。楽天ウェブ検索はChromeがベース (設定画面が激似なのでわかりやすい) 。
新しいタブでニュースを表示したい →Chrome・Edge・楽天ウェブ検索・Brave・Operaのどれか
新しいタブで下にスクロールするとニュースが表示される。もちろん非表示にも設定できる。
新しいタブを完全に空白にしたい →Safari・Firefox・Braveのどれか
Safariは設定画面の都合上、全要素を非表示にしても「編集」ボタンだけはのこる。それも嫌ならFirefoxかBraveの2択になる。
ウェブサイトからのプッシュ通知をうけとりたい →対応アプリなし
iOSの制約によるもの。通知を許可したいサイトは個別にホーム画面にアイコンを追加してWebアプリとして開く必要がある。それが面倒ならば現時点ではAndroidにのりかえるしかない。まあ、広告などから危険サイトをうっかりひらいてそのまま通知を許可、アダルト広告が大量に配信というのは防げるが (母 (Android民) がやってしまったことがある 消してあげたけど) ...。
アプリ再起動でセッションを再開してほしくない →Edge・DuckDuckGo・ポルン・TwookuLのどれか
ちなみに、SafariやBraveは一切復元しないはできないものの、使用していないタブを自動的に閉じる設定があるので、1日後とかにしておけばまあ...。
Firefoxはタブは閉じないが、起動時は新しいタブから開始するという設定はできる。Uvoiceは設定はないが、タブはそのままのポイ活画面から開始なので、Firefoxの当該設定にちかい挙動である。
タブを1列で表示したい → ポルンかUvoice
スマホの画面が年々おおきくなったから2列表示のほうがたくさん表示できるというのはあるのだが、片手で操作するなら1列表示のほうが便利。ポルンは1列だとサムネイル表示なし、Uvoiceはサムネイル表示ありなので、かつてのSafariのような一覧性をもとめるならUvoiceがいちばんちかい。
iOS 18.4でやっと他社ブラウザーへの機能拡張が開放されて、Edgeがいちはやく対応している。ただし、SafariとEdgeでは拡張機能に互換性はないのでそれぞれでインストールする必要がある。
Chromeでしか閲覧できないウェブサイト → どうすることもできない
iOSの制約で、アプリ内ブラウザーはSafariが強制されるので、レンダリングそのものはSafariで閲覧した場合とおなじ結果になる。
サイバー攻撃の標的になっている →SafariかChrome
ロックダウンモードに設定することで、脆弱性を塞ぐことができるが、一部のサイトでは不具合が起こる。あくまで緊急時に一時的に使用するモードであることは理解して設定すること。
本稿で提示するプロファイルは、10万件以上のブクマを有するidを対象に公開コメントをAIが解析し、その深層心理や思想傾向をモデル化した「テキスト・ペルソナ」です。これは実在する個人のプライバシーを暴くものではなく、言語活動に基づく批評的なシミュレーション(思考実験)です。特定の個人の社会的評価を操作する意図はなく、あくまでテキスト分析の一環としてお楽しみください。
世代・時代背景 (Generational Cohort):
生活圏・経済階層 (Habitat & Economic Class):
ライフステージ・役割 (Family & Social Roles):
専門性と認知スキル (Expertise & Cognitive Style):
情報摂取源とリテラシー (Information Sources & Literacy):
政治的・経済的スタンス (Political & Economic Stance):
「敵」と「味方」の認定 (Enemy &Ally Designation):
道徳的基盤 (Moral Foundations):
対人スタンス (Interpersonal Stance):
コミュニティ帰属意識 (Community Belonging):
「世界の全てを冷笑し、ワンルームの『コックピット』から呪詛を撒き散らす、孤独な氷河期サバイバー」
この人物は、現代日本が抱える「氷河期世代の棄民化」と「ネット世論の分断」が生み出した、悲しきモンスターです。経済的な停滞と社会的な孤立が、彼から他者への共感能力を奪い、代わりにネット上の過激なイデオロギーで空虚な心を埋めさせました。彼は社会に対して「復讐」するかのように冷笑的なコメントを書き込み続けますが、その刃は巡り巡って、誰とも繋がれない自身の孤独をより一層深めていることに、気づかないふりをし続けています。
本稿で提示するプロファイルは、10万件以上のブクマを有するidを対象に公開コメントをAIが解析し、その深層心理や思想傾向をモデル化した「テキスト・ペルソナ」です。これは実在する個人のプライバシーを暴くものではなく、言語活動に基づく批評的なシミュレーション(思考実験)です。特定の個人の社会的評価を操作する意図はなく、あくまでAIによるテキスト分析の一環としてお楽しみください。
レポートによると、この法律は米国のデジタル資産、特に「決済用ステーブルコイン」に関する連邦レベルの明確なルールを定めたものです。
最も重要な規定は、ステーブルコインの発行者に対する厳格な資産裏付け要件です。
要件:現金(Cash)または短期米国債(Short-term T-bills)による100%の準備金を保持しなければならない。
目的: ステーブルコインのリスク(取り付け騒ぎやデペグ)を排除し、米ドルと同等の安全性を持たせること。
結果: これにより、ステーブルコインは実質的に「デジタル・ドル」としての地位を確立し、銀行や機関投資家が安心して扱える資産となりました。
法律の遵守(コンプライアンス)に伴い、ブロックチェーン側にも新たな技術的仕様が求められるようになりました。機関投資家が利用するためには、以下の2点が必要です。
KYC/AMLへの対応:顧客確認(KYC)およびマネーロンダリング対策(AML)を効率的に満たす仕組み。
選択的プライバシー機能: すべての取引が公開されるパブリックチェーンではなく、機関の取引内容(金額や相手)を保護できるプライバシー機能。
金融取引の決済において、不確実な時間を排除することが求められます。
要件: 「サブ秒(1秒未満)」での取引完了(ファイナリティ)。
背景: 従来の銀行システムや高頻度取引に匹敵するスピードが必要とされています。
この法律の施行により、既存のブロックチェーンの勢力図に変化が生じると予測されています。
取引完了に12秒かかる点と、全ての取引が透明(プライバシーがない)である点が、機関投資家のニーズ(即時決済・秘匿性)と合致しないため、機関マネーの受け皿として不利になる。
規制準拠(GENIUS法対応)を前提に設計されており、「選択的プライバシー」と「サブ秒の完了性」を持つため、機関投資家のステーブルコイン業務のシェアを奪う。
小売(リテール)分野で拡大しつつ、2026年初頭の「Firedancer(アップグレード)」により処理能力と速度を向上させ、機関向け業務の獲得も狙う。
ごもっともな疑問です。GENIUS法やイーサリアムの技術的な話(DeFiやステーブルコイン)は、一見すると「アルトコインやブロックチェーン技術」の話であって、「なぜそれがビットコイン(BTC)の価格を押し上げるのか?」というつながりが見えにくいですよね。
レポートの論理を紐解くと、これらは「お金の入り口(パイプ)」と「最終的な行き先(貯蔵庫)」の関係で説明されています。
なぜ「アルトコインや規制の話」が「BTC爆上げ」につながるのか、3つのロジックで解説します。
1.GENIUS法は「機関投資家マネーの高速道路」を作るから
GENIUS法でステーブルコインが「100%現金/国債裏付け」になり、国の認可を受けるということは、銀行や大企業が堂々とブロックチェーンにお金を入れられるようになることを意味します。
これまで:規制が怖くて、機関投資家は巨額の資金をクリプト市場に入れにくかった。
これから(GENIUS法後): 「デジタル・ドル(ステーブルコイン)」として安全に資金をブロックチェーン上に持ち込める。
BTCへの波及:クリスプト市場に入ってきた数兆円規模の「機関投資家の資金」は、最終的にどこに向かうか?
リスクの高いアルトコインではなく、最も流動性が高く、価値の保存手段として認められているビットコインに、ポートフォリオの核として資金が流れます。つまり、ステーブルコインは「入り口」であり、その資金が向かう「本命の投資先」がBTCという構造です。
レポートでは「金(ゴールド)が下がって、BTCが上がる」と予測しています。
イーサリアムなどの役割: 送金、契約、DeFiなどの「実用・技術」担当。技術競争(速度やプライバシー)で勝ったり負けたりする。
ビットコインの役割:デジタルな「国家レベルの資産(Sovereign Asset)」。
ロジック:GENIUS法などで市場全体が信頼できるものになればなるほど、「インターネット上の基軸通貨」としてのBTCの地位が盤石になります。ドルが強い環境下で、投資家が金(ゴールド)から資金を抜く際、その避難先として選ばれるのが「規制された市場の王様」であるBTCになる、という理屈です。
これはイーサリアムとは別の話ですが、レポートにある重要な要素です。
OB3(大型減税法案):法人税が下がり、企業の手元に現金が増える。
トレジャリー(財務戦略):企業はその余った現金をただ持っているだけでなく、インフレヘッジなどのために運用したい。
BTCへの波及: 既にマイクロストラテジーなどがやっているように、企業の準備資産(トレジャリー)としてBTCを購入する動きが加速する。「ETFと企業の保有で供給の11.7%がロックされる」というのは、この動きを指しています。
「GENIUS法で『道路』が整備され、OB3減税で『軍資金』を得た企業が、最終的に『土地(BTC)』を買い占めに来る」 というシナリオです。イーサリアムやソラナの話は「道路工事の競争」の話であり、BTCの話は「値上がりする土地」の話として区別されています。
ビットコインの価格を語る上で欠かせない「半減期(Halving)」について、基本的な仕組みと、今回のレポートがなぜそれを「あまり重要ではない」と見ているのかを解説します。
半減期とは、ビットコインの新規供給量が文字通り半分になるイベントです。
1. 仕組み
時期: 約4年に一度(正確には21万ブロックが生成されるごと)。
内容:ビットコインのマイニング(採掘)報酬が半分になります。
2.目的と効果デフレ資産: BTCの発行量を計画的に減らすことで、希少性を高めます。
これにより、ビットコインはインフレ耐性のあるデジタル・ゴールドとしての性質を持ちます。
供給ショック:市場に新しく出回るBTCの量が突然減るため、需要が変わらなければ、理論上は価格に上昇圧力がかかります。
【ポイント】 これまでの歴史上、半減期の約1年後には価格が大幅に上昇する傾向が見られてきました。これが従来の「4年サイクル」の根拠です。
今回のサイクル(2025年〜2026年)では、半減期のポジティブな影響をマクロ経済の力が上回ると主張しています。
レポートは、価格の牽引役が「供給側(半減期)」から「需要側(機関投資家)」に移ったと分析しています。
レポートが、半減期による価格の緩やかな上昇を超える力を持つと見ているのが、以下の3つの強烈な需要側の要因です。
具体的な数値:ETFや企業財務保有(DAT)が、既にBTCの**総供給量の約11.7%を保有している。
意味合い: これは、市場で売買される流動的なBTCが減り、価格変動に強い「硬い需要の層」が形成されたことを意味します。この構造的な買い圧力が、半減期で供給量が減る効果よりも強力だと見られています。
GENIUS法: ステーブルコインの規制整備により、数兆円規模の機関投資家マネーの参入障壁が取り払われる(前の回答で説明した「高速道路」の整備)。
OB3法案:企業減税により、企業の余剰資金(法人マネー)がBTCに流れるインセンティブが強化される。
結論:規制環境の改善と企業の資金力投入が、単なる半減期では達成できないほどの、持続的で巨大な需要を生み出すと予測されています。
レポートは、金利とドル高の環境が続く中で、利回りのない金(ゴールド)は調整局面に入ると予測しています。
対照的に、規制整備と機関参入を経たBTCは「主権格の価値の保管手段」としてゴールドのポジションを奪い取るとされています。
【まとめ】
このレポートのシナリオでは、半減期は依然として重要ですが、その効果は「マクロ経済の潮目」と「機関投資家の構造的な買い」という、より大きな波に飲み込まれ、2026年までの長期的な高値圏形成の要因となるということです。
つまり、「半減期が弱いかどうか」ではなく、**「機関投資家の採用が半減期を上回るほど強い」**というのが、レポートの主張です。
ダイヤモンドの↓の記事が盛りすぎでブクマカが釣られまくっているので、ちょっと落ち着けという意味で少し解説する
普通の人が「フリック入力を発明」というフレーズを見たら、どっちを想像する?
普通は1を想像するよね。でも、上の記事の「発明」は2の意味。8割くらいのブクマカはここを勘違いしてコメントしてるように見える
同じ発明家氏の記事でも3ヶ月前の東洋経済のほうは、「フリック入力を発明」という釣りフレーズこそ使っているものの本文を良く読めば発明のキモの部分が2であり1では特許を取れなかったことがそれなりに分かるように書いてある
「フリック入力」を発明しMicrosoftに売却した彼の"逆転"人生。元・売れないミュージシャン兼フリーター、家賃3万のボロアパートでひらめく
https://b.hatena.ne.jp/entry/s/toyokeizai.net/articles/-/889631
もちろん2の意味の発明もスゴイし重要なんだけど、釣りは良くないよね
そもそも世の中のほとんどの技術は様々な発明やアイデアの集合体である。歴史の積み重ねであり、最終形がいきなり湧いて出るわけではない。もちろん「フリック入力」にも歴史の積み重ねがある。それを少し紐解いてみよう(なお、下記の「年」は引用可能な特許や論文が出た時期であり、実際にはそれよりもっと前にソフトウェアがリリースされていたりアイデアがメーリングリストに投稿されていたりすることもある)
[追記]※増田の仕様上ひとつの記事に貼れるリンク数に制限があるため一部URLのhを抜いている点、不便ですがご了承ください[/追記]
ttps://dl.acm.org/doi/10.1145/57167.57182 (論文)
放射状に選択肢を並べるUIのアイデアは1960年代から見られるが、接地点からの移動方向情報を用いた入力手法の祖としてはとりあえずこれを挙げることができるだろう。これは文字入力に特化したものではなく、一般的なメニュー選択のための手法である
ttps://dl.acm.org/doi/10.1145/191666.191761 (論文)
pie menuを文字入力に応用したもの。論文の著者はAppleの人。英語用。広義の『「フリック入力」の元祖』に最も該当するのは、おそらくこれだろう
ttps://rvm.jp/ptt/arc/227/227.html
ttp://www.pitecan.com/presentations/KtaiSympo2004/page65.html
T-cubeを日本語に応用したもの。広義の『日本語版「フリック入力」の元祖』の候補
https://web.archive.org/web/20080925035238/http://www.j-tokkyo.com/2000/G06F/JP2000-112636.shtml (特許)
https://newtonjapan.com/hanabi/
AppleNewton (PDA)用に実装された文字入力UI。「中央が『あ』、上下左右方向が『いうえお』」に対応する見慣れた形のフリック入力がここで登場する。『現在よく見る形の日本語版「フリック入力」の元祖』である。なお、開発者が特許を申請したものの審査を請求しておらず、特許としては成立していない
この頃、Human-Computer Interaction分野でT-cubeやHanabiの発展としての文字入力手法の研究が活発になり、特に国内学会で多くの手法が発表された。情報系の学生の卒論や修論のテーマとして手頃だったからだろう。PDA製品に実装されて広まった例もあり、SHARPZaurus用のHandSKKや、少し時代が下ってATOKのフラワータッチ等もこの系譜である
なお、この頃までの技術は指での入力ではなくペン(スタイラス)による入力を想定したものが主である(iPhoneの登場以前はキーボードレスのモバイル端末といえばPDAやタブレットPCなどスタイラス入力を前提としたデバイスが主流だった)
『スマートフォン上の「フリック入力」の元祖』であり『予測変換機能を備えた「フリック入力」の元祖』である。日本語フリック入力の効率を考える上で予測変換の占めるウェイトは大きく、「実用的なフリック入力」を実現するには予測変換との組み合わせは外せない。2006年にAppleに招聘されてiPhoneのフリック入力機能を開発した増井俊之氏は元々予測変換のPOBox(1998年 - ttps://dl.acm.org/doi/10.1145/274644.274690 )の開発者として知られる研究者であり、Appleへの招聘もその経験を買われてのものだろう。入力にフリック操作を用いること自体は特筆すべきものではなく、当時の流行を考えれば自然な選択だったと思われる
なお、前述のHanabiの開発者氏がiPhoneのフリック入力を見て
と言っている一方、増井氏はHanabiに対して
知らんがな
と言っている。この分野の研究をしていて知らんことあるか?とも思うが、電話用テンキーの上に五十音かなのフリック入力を実装すると誰が作っても概ねHanabiのような外観になると思われるので、本当に知らなかったとしても齟齬はない
ttps://www.j-platpat.inpit.go.jp/c1801/PU/JP-2008-282380/11/ja (特許)
『画面表示は絶対座標+移動判定は相対座標で行うことで「フリック入力」の入力効率を向上させる手法の特許』である(詳しい仕組みは上記の東洋経済の記事に書いてある)。ペン先と比べて指先は太いため指によるタッチでは厳密な操作が難しく(fat finger問題)、「実用的なフリック入力」を実現するにはこのような工夫も必須になる。小川氏の凄いところは、スマホの日本語UIをリリースするならどのメーカーも必ず実装するであろうこの工夫を、日本版iPhoneのリリース直前、Apple社としては引き返せないであろうタイミングで特許申請したところだ。機を見るに敏すぎる。特許庁に2回も拒絶された特許を不服審判で認めさせているところも本人が弁理士だからこそできる強さだと思われる
なお、氏の記事を読むと「フリック入力」自体を氏が考案したように思えてしまうが、ここまでに述べた通りそれは誤りである。「フリック入力に関連する重要な特許の公報に『発明者』として掲載されている」ことは疑いない事実なので「フリック入力の発明者」と称するのはギリギリ誤りではないと言えないこともないが、「フリック入力を発明した」はやはりダメだろう。上述の通りフリック入力自体は90年代に既に登場しており00年代の前半にはタッチスクリーン上のかな入力手法の一角を占めるに至っていたので、iPhoneに実装されたことは不思議でもなんでもなく、
このあたりは荒唐無稽な邪推すぎて、ソフトバンクから名誉棄損で訴えられたら危ないのでは(そもそもiPhoneのフリック入力を開発したのはAppleであってソフトバンクではない)
まとめると、さすがに小川氏の記事はモリモリに盛りすぎである。書籍の宣伝にしても酷すぎる。価値の高い特許を取った発明家であることは事実なのに、なぜこういう胡散臭いムーブをしてしまうのか
1998年にAppleNewton用に開発された日本語入力システム「Hanabi」が草分けで、2008年にiPhoneに採用されたことで、急速に広まった。従来の「あ段→い段→う段→え段→お段」とキーのプッシュを繰り返して表示・入力する方式(トグル入力)に比べ、素早い入力が可能になる。その入力効率の高さから、2010年頃にはキーボード離れが加速している[1]。
1998年にAppleNewton用に開発された日本語入力システム「Hanabi」[2]が草分けで、2008年にiPhoneに採用されたことで、急速に広まった。日本におけるフリック入力は、発明家でシンガーソングライターの小川コータがiPhone上陸以前に考案し2007年から2015年にかけて特許出願した[3]ものであり、取得した権利はマイクロソフトに譲渡された[4]。
ただ、これはおそらく関係者の自作自演等というわけではなく、日本におけるフリック入力関連特許が小川氏のものばかりであることからボランティア編集者が勘違いしてこのような記述にしてしまったのではないか。フリック入力は前述のように地道な技術の差分の積み重ねなので、個々の差分の開発者が「特許」を取ろうという気にならないのは良く分かる。その点でも、自ら弁理士として特許を量産した小川氏の強さが際立っている(が、やはり盛りすぎは良くないと思う)
時は令和、空前の「ASMRスイーツ」ブームが最高潮!ザクザク食感とか、パキパキ割れる音とか、みんなが「五感で楽しむ」と「新しい体験」を求めてた20XX年。そんな中、東京の原宿、竹下通りに、マジで浮世離れした女の子が現れたんだって!ちょっと古めかしい鎧っぽい服に、なんかこう、優しくて芯の強い、超絶オーラをまとったお方。「え?外国人モデル?コスプレイヤー?」ってみんなが遠巻きにしながらも、その圧倒的な存在感に目を奪われてたらしい。
え?マジで?あのフランスを救った聖女で、「オルレアンの乙女」ジャンヌ・ダルク様!?ゲキヤバ!って歴史好きのギャルたちがスマホで速攻ググり始めた瞬間、その超絶健気なお方、もといジャンヌ様は、あたりをキョロキョロしながら呟いた。「ここは…シノンではない、か…?ずいぶんと賑やかで、しかし活気にあふれた場所ですわね。」って、マジで中世ヨーロッパからタイムスリップしてきたみたい!「マジありえん!」ってみんな心の中でツッコミつつも、その透き通るような瞳に、何か強い信念を感じてたらしい。
そんなジャンヌ様に、恐る恐る話しかけたのは、原宿でタピオカ飲み歩きしてる、流行最先端ギャル、ヒカリ。「あの…もしよかったら、何かお困りですか?」「…はい、少々。見慣れぬものばかりで、いささか戸惑っておりまする。」って、意外と丁寧な言葉遣い!ヒカリ、その純粋そうな雰囲気にちょっとキュンとしつつ、「アタシ、ヒカリ!原宿のことなら、何でも聞いて!ジャンヌちゃん、マジで可愛いから、アタシが案内してあげてもいいよ!」って、キラキラ笑顔で声をかけたんだって。
次の日、ヒカリに連れられて、ジャンヌ様は初めて現代の日本を体験!クレープとか、最新のファッションとか、マジで全てが新鮮!でもね、ジャンヌ様が一番興味を示したのは、街角のお煎餅屋さんで、観光客が美味しそうに食べてたもの。「…この、平たいお菓子は、何というものでございますか?ずいぶんと素朴で、しかし音が出ますわね。」って、マジ真剣な眼差し。ヒカリ、まさかの渋すぎるチョイスに驚きつつ、「あ~、これ、パリセン(パリパリのお煎餅)ですよ!割る時の音がめっちゃ気持ちいいんです!」って教えてあげたんだって。
ジャンヌ様、一口食べてみたら…「な、なんなのだ、この奥深き味わいは!?噛みしめるたびに響く、この心地よい音と、素朴な米の旨味…まるで、神の啓示を聞いた時のような、確かなる響きである!これこそ、わたくしが求める、真の糧よ!」って、マジで聖女っぽい表現で感動してたらしいよ。
そこから、ジャンヌ様のパリセン愛がマジで爆発!毎日色んなお煎餅屋さんを巡って、パリセンを使った料理やスイーツを食べまくってたんだって。「米の種類、焼き加減、味付け…研究しがいがありすぎる!」って、もはやパリセンマイスターレベル!
でね、ある日、ジャンヌ様、マジで天下取りの野望を語り出したの。「わたくしは、このパリセンをもって、再び天下を…とは言いませんが、この甘味の世界において、人々の心に確かなる『響き』を与え、真の『希望』をもたらすパフェを創造してみせましょうぞ!これこそ、わたくしが目指す、『啓示パフェ』よ!」って!
え?パリセンパフェで天下統一?しかも「啓示」とか!マジで壮大すぎる!でも、ジャンヌ様の「神の啓示を聞いた」っていう魂があれば、きっと何か成し遂げるに違いない!ってヒカリも思ったらしいんだけど、ジャンヌ様の目はマジだったんだって。戦乱の世を救った情熱が、令和のパリセンパフェに新たな戦場を見出したのかもね!
そっから、ジャンヌ様のパリセンパフェ天下統一計画がスタート!まずは、SNSで「#ジャンヌ・ダルクのパリセン啓示」ってハッシュタグ作って、毎日自作の超絶斬新だけど美味しいパフェの画像をアップし始めたんだって。その奇抜すぎる見た目と、ジャンヌ様の哲学的なコメントが、一部のASMR好きギャルや、個性派の人たちの中でじわじわバズり始めた!
SNSはジャンヌ様のパリセン愛でじわじわ盛り上がり!しかも、ジャンヌ様、ただ作るだけじゃなくて、全国各地の珍しいお煎餅や、パリセンに合う最高のフルーツやクリーム、そして日本の伝統的な甘味料を探し求めたり、甘さと塩味、そしてパリセンの「調和」を追求したり、マジでストイック!「天下のパリセンパフェ」を目指して、日々試行錯誤を繰り返してたんだって!
で、ついに!ジャンヌ様は、渋谷のど真ん中に、自分のプロデュースするパリセンパフェ専門店「JEANNE D'ARC PARFAIT - 聖なる響き - 」をオープンさせちゃったの!お店の内装も、フランスの教会をイメージした、豪華絢爛ながらも厳かなデザインで、ジャンヌ様の美意識と信念を表現。店員さんも、騎士風のモダンなユニフォーム着てて、マジでクール!
オープン初日から、異色グルメ好きギャルや、好奇心旺盛なインフルエンサー、そして日本の伝統文化に興味を持つ人々まで、行列を作って押し寄せた!「SNSで話題のパリセンパフェ、マジで挑戦してみたい!」「ジャンヌ様って、なんかカリスマ!」って、新しいファンが続々!でね、一口食べたら、みんなその奥深い味わいにハマっちゃうらしい。「うわっ、最初はビビったけど、甘いのにパリセンの食感と音が最高!」「食べた後、なんか心が清められる気がする!」「ジャンヌ様、マジで神!」って、賛否両論ありつつも、リピーターが続出!口コミが広まりまくって、JEANNE D'ARC PARFAIT - 聖なる響き - はあっという間に人気店になっちゃったの!
しかもね、ジャンヌ様、ただお店やってるだけじゃないんだよ!定期的に店内で、自らパフェの「哲学」について熱弁したり、パリセンの歴史を語る「啓示パフェ会」を開催したり、マジで独自のスタイルでエンタメ業界を盛り上げようと奮闘してるんだって!
テレビや雑誌の取材も殺到!「令和のジャンヌ・ダルク」「パリセンパフェの聖女」とか呼ばれて、マジで時の人!ジャンヌ様の強烈な個性と、パリセンパフェの斬新な組み合わせが、新たなブームを巻き起こしたんだね!
でさ、最終的にどうなったかって?もちろん!ジャンヌ様のパリセンパフェは、全国のスイーツ好きに愛される定番メニューになったんだって!お取り寄せスイーツとしても人気が出て、全国のコンビニやスーパーでも「ジャンヌ印の啓示パフェ」が発売されるほどに!まさに、パリセンパフェでスイーツ界に新たな旋風を巻き起こし、天下を獲った!マジですごすぎ!
あの時、原宿の街に静かに佇んでいた聖女が、令和の時代にパリセンパフェで新たな道を切り開くなんて、マジで誰も想像してなかったよね!まさに、神の啓示がパリセンの音に変わり、新たな伝説を創り出した瞬間!
ヒカリも、「まさかジャンヌちゃんが本当にパリセンパフェでこんなに有名になるなんて!アタシ、マジで感動して泣いた!」って、号泣してたらしいよ。
ジャンヌ様は今も、さらなるパリセンパフェの可能性を追求して、日本全国を旅しているらしい。「わが啓示の道に、終わりはございません!」って、マジでストイック!
こうして、ジャンヌ・ダルクは、令和の日本で、パリセンパフェという新たな武器を手に入れ、見事、スイーツ界で唯一無二の地位を築いた!天下統一…ではないかもしれないけど、その強烈な個性と哲学は、多くの人々の心に深く刻まれたはず!めでたしめでたし…ってことで、マジでゾクゾクする衝撃的な物語、完全燃焼したわ!パリセンパフェ、マジ卍!
<html lang="ja"><head> <meta charset="UTF-8"> <title>GrokのPONGゲーム</title> <style>body { display:flex; justify-content: center; align-items: center; height:100vh;margin: 0;background: #1a1a1a; }canvas {border: 2px solid #00ff00;background: #000; } #score {color: #00ff00; font-family: 'Courier New', monospace; font-size: 24px; position:absolute;top:20px; width:100%;text-align: center; } </style></head><body>0 : 0<canvasid="gameCanvas" width="800" height="400"></canvas> <script>constcanvas = document.getElementById('gameCanvas');const ctx =canvas.getContext('2d');constscoreDisplay = document.getElementById('score'); //ゲームオブジェクトconst ball = { x:canvas.width / 2, y:canvas.height / 2,radius:10, speedX: 5, speedY: 5 };const paddleLeft = { x:10, y:canvas.height / 2 - 50, width:10, height:100, speed: 8 };const paddleRight = { x:canvas.width -20, y:canvas.height / 2 - 50, width:10, height:100, speed: 8 }; letscoreLeft = 0,scoreRight = 0; //キー入力constkeys = { w:false, s:false, ArrowUp:false, ArrowDown:false }; document.addEventListener('keydown', e => { if (keys.hasOwnProperty(e.key))keys[e.key] =true; }); document.addEventListener('keyup', e => { if (keys.hasOwnProperty(e.key))keys[e.key] =false; }); //ゲームループ function gameLoop() { // 移動 if (keys.w && paddleLeft.y> 0) paddleLeft.y -= paddleLeft.speed; if (keys.s && paddleLeft.y <canvas.height - paddleLeft.height) paddleLeft.y += paddleLeft.speed; if (keys.ArrowUp && paddleRight.y> 0) paddleRight.y -= paddleRight.speed; if (keys.ArrowDown && paddleRight.y <canvas.height - paddleRight.height) paddleRight.y += paddleRight.speed; //ボール移動 ball.x += ball.speedX; ball.y += ball.speedY; // 壁衝突 if (ball.y + ball.radius>canvas.height || ball.y - ball.radius < 0) ball.speedY = -ball.speedY; //パドル衝突 if ( (ball.x - ball.radius < paddleLeft.x + paddleLeft.width && ball.y> paddleLeft.y && ball.y < paddleLeft.y + paddleLeft.height) || (ball.x + ball.radius> paddleRight.x && ball.y> paddleRight.y && ball.y < paddleRight.y + paddleRight.height) ) { ball.speedX = -ball.speedX * 1.05; // 少し加速 } //得点 if (ball.x < 0) {scoreRight++; ballReset(); } if (ball.x>canvas.width) {scoreLeft++; ballReset(); } // 描画 ctx.fillStyle = '#000'; ctx.fillRect(0, 0,canvas.width,canvas.height); ctx.fillStyle = '#00ff00'; ctx.fillRect(paddleLeft.x, paddleLeft.y, paddleLeft.width, paddleLeft.height); ctx.fillRect(paddleRight.x, paddleRight.y, paddleRight.width, paddleRight.height); ctx.beginPath(); ctx.arc(ball.x, ball.y, ball.radius, 0, Math.PI * 2); ctx.fill();scoreDisplay.textContent = `${scoreLeft} : ${scoreRight}`; requestAnimationFrame(gameLoop); } function ballReset() { ball.x =canvas.width / 2; ball.y =canvas.height / 2; ball.speedX = (Math.random()> 0.5 ? 5 : -5) * (Math.random() * 0.5 + 0.75); ball.speedY = (Math.random() * 4 - 2); } gameLoop(); </script></body></html>
<html lang="ja"><head> <meta charset="UTF-8"> <metaname="viewport" content="width=device-width, initial-scale=1.0"> <title>PONG Game</title> <style>body {margin: 0;padding: 0;background-color: #000; display:flex; justify-content: center; align-items: center;min-height:100vh; font-family: 'Courier New', monospace;color:white; }``` .game-container {text-align: center; }canvas {border: 2px solidwhite;background-color: #000; } .score { font-size: 24px;margin:20px 0; letter-spacing: 2px; } .controls {margin-top:20px; font-size: 14px; opacity: 0.8; } .start-button {background-color: #333;color:white;border: 2px solidwhite;padding:10px20px; font-size: 16px; cursor: pointer; font-family: 'Courier New', monospace;margin:10px; } .start-button:hover {background-color:white;color: black; }</style>```</head><body>```<script> //Canvas要素とコンテキストの取得constcanvas = document.getElementById('gameCanvas');const ctx =canvas.getContext('2d'); //ゲームの状態管理 let gameRunning =false; let animationId; //スコア要素の取得const playerScoreElement = document.getElementById('playerScore');constcomputerScoreElement = document.getElementById('computerScore'); //ゲームオブジェクトの定義const game = { //プレイヤーのパドル(左側) playerPaddle: { x:10, y:canvas.height / 2 - 50, width:10, height:100, speed: 5, upPressed:false, downPressed:false }, //コンピューターのパドル(右側)computerPaddle: { x:canvas.width -20, y:canvas.height / 2 - 50, width:10, height:100, speed: 3.5, //プレイヤーより少し遅く設定 targetY:canvas.height / 2 - 50 }, //ボールの設定 ball: { x:canvas.width / 2, y:canvas.height / 2,radius: 8, speedX: 4, speedY: 3, maxSpeed: 8 }, //スコアの管理score: { player: 0,computer: 0 } }; //キーボード入力の処理constkeys = {}; //キーが押されたときの処理 document.addEventListener('keydown', (e) => {keys[e.key.toLowerCase()] =true; //ゲームが停止中にスペースキーでゲーム開始 if (e.key === ' ' && !gameRunning) { startGame(); } }); //キーが離されたときの処理 document.addEventListener('keyup', (e) => {keys[e.key.toLowerCase()] =false; }); //パドルの移動処理 function updatePaddles() { //プレイヤーパドルの移動(W/Sキーまたは矢印キー) if (keys['w'] ||keys['arrowup']) { game.playerPaddle.y -= game.playerPaddle.speed; } if (keys['s'] ||keys['arrowdown']) { game.playerPaddle.y += game.playerPaddle.speed; } //プレイヤーパドルの画面外移動を防ぐ if (game.playerPaddle.y < 0) { game.playerPaddle.y = 0; } if (game.playerPaddle.y>canvas.height - game.playerPaddle.height) { game.playerPaddle.y =canvas.height - game.playerPaddle.height; } //コンピューターパドルのAI処理 //ボールの位置を追跡するが、完璧ではない動きを実装const ballCenterY = game.ball.y;const paddleCenterY = game.computerPaddle.y + game.computerPaddle.height / 2; //ボールとパドルの中心の差を計算constdifference = ballCenterY - paddleCenterY; // 反応に少し遅れを持たせる(人間らしい動き) if (Math.abs(difference)>10) { if (difference> 0) { game.computerPaddle.y += game.computerPaddle.speed; } else { game.computerPaddle.y -= game.computerPaddle.speed; } } //コンピューターパドルの画面外移動を防ぐ if (game.computerPaddle.y < 0) { game.computerPaddle.y = 0; } if (game.computerPaddle.y>canvas.height - game.computerPaddle.height) { game.computerPaddle.y =canvas.height - game.computerPaddle.height; } } //ボールの移動と衝突判定 function updateBall() { //ボールの位置を更新 game.ball.x += game.ball.speedX; game.ball.y += game.ball.speedY; //上下の壁との衝突判定 if (game.ball.y - game.ball.radius < 0 || game.ball.y + game.ball.radius>canvas.height) { game.ball.speedY = -game.ball.speedY; } //プレイヤーパドルとの衝突判定 if (game.ball.x - game.ball.radius < game.playerPaddle.x + game.playerPaddle.width && game.ball.x + game.ball.radius> game.playerPaddle.x && game.ball.y + game.ball.radius> game.playerPaddle.y && game.ball.y - game.ball.radius < game.playerPaddle.y + game.playerPaddle.height) { //ボールがパドルに当たった位置によって跳ね返り角度を調整const hitPos = (game.ball.y - (game.playerPaddle.y + game.playerPaddle.height / 2)) / (game.playerPaddle.height / 2); game.ball.speedX = Math.abs(game.ball.speedX); game.ball.speedY = hitPos * 4; //ボールの速度を少し上げる(ゲームをエキサイティングに) if (Math.abs(game.ball.speedX) < game.ball.maxSpeed) { game.ball.speedX *= 1.02; } } //コンピューターパドルとの衝突判定 if (game.ball.x + game.ball.radius> game.computerPaddle.x && game.ball.x - game.ball.radius < game.computerPaddle.x + game.computerPaddle.width && game.ball.y + game.ball.radius> game.computerPaddle.y && game.ball.y - game.ball.radius < game.computerPaddle.y + game.computerPaddle.height) { //ボールがパドルに当たった位置によって跳ね返り角度を調整const hitPos = (game.ball.y - (game.computerPaddle.y + game.computerPaddle.height / 2)) / (game.computerPaddle.height / 2); game.ball.speedX = -Math.abs(game.ball.speedX); game.ball.speedY = hitPos * 4; //ボールの速度を少し上げる if (Math.abs(game.ball.speedX) < game.ball.maxSpeed) { game.ball.speedX *= 1.02; } } //ボールが左右の壁を越えた場合(得点処理) if (game.ball.x < 0) { //コンピューターの得点 game.score.computer++; updateScore(); resetBall(); } else if (game.ball.x>canvas.width) { //プレイヤーの得点 game.score.player++; updateScore(); resetBall(); } } //ボールをリセット(得点後の処理) function resetBall() { game.ball.x =canvas.width / 2; game.ball.y =canvas.height / 2; //ランダムな方向でボールを発射 game.ball.speedX = (Math.random()> 0.5 ? 4 : -4); game.ball.speedY = (Math.random() - 0.5) * 6; } //スコア表示の更新 function updateScore() { playerScoreElement.textContent = game.score.player;computerScoreElement.textContent = game.score.computer; } // 描画処理 functiondraw() { // 画面をクリア ctx.fillStyle = '#000'; ctx.fillRect(0, 0,canvas.width,canvas.height); //中央の点線を描画 ctx.setLineDash([5, 5]); ctx.beginPath(); ctx.moveTo(canvas.width / 2, 0); ctx.lineTo(canvas.width / 2,canvas.height); ctx.strokeStyle = '#fff'; ctx.stroke(); ctx.setLineDash([]); //プレイヤーパドルを描画 ctx.fillStyle = '#fff'; ctx.fillRect(game.playerPaddle.x, game.playerPaddle.y, game.playerPaddle.width, game.playerPaddle.height); //コンピューターパドルを描画 ctx.fillRect(game.computerPaddle.x, game.computerPaddle.y, game.computerPaddle.width, game.computerPaddle.height); //ボールを描画 ctx.beginPath(); ctx.arc(game.ball.x, game.ball.y, game.ball.radius, 0, Math.PI * 2); ctx.fillStyle = '#fff'; ctx.fill(); //ゲームが停止中の場合、メッセージを表示 if (!gameRunning) { ctx.fillStyle = '#fff'; ctx.font = '20px Courier New'; ctx.textAlign = 'center'; ctx.fillText('ゲーム開始ボタンを押してください',canvas.width / 2,canvas.height / 2 + 60); } } //ゲームのメインループ function gameLoop() { if (!gameRunning) return; updatePaddles(); updateBall();draw(); animationId = requestAnimationFrame(gameLoop); } //ゲーム開始 function startGame() { gameRunning =true; gameLoop(); } //ゲームリセット function resetGame() { gameRunning =false; if (animationId) { cancelAnimationFrame(animationId); } //スコアをリセット game.score.player = 0; game.score.computer = 0; updateScore(); //ボールとパドルの位置をリセット game.ball.x =canvas.width / 2; game.ball.y =canvas.height / 2; game.ball.speedX = 4; game.ball.speedY = 3; game.playerPaddle.y =canvas.height / 2 - 50; game.computerPaddle.y =canvas.height / 2 - 50;draw(); } // 初期描画draw();</script>```</body></html>
https://falsandtru.hatenablog.com/entry/evaluation-items-of-cache-algorithms
キャッシュアルゴリズムには実装可能性(現実的に意味のあるものが実装可能か)が言語に依存するものがある。(W-)TinyLFUはキーをブルームフィルタに変換できなければならないためこの変換コストが高いJavaScriptなどでは低レイテンシな実装が困難となり用途が制限される。またLinked ListはGCの管理により非常に低速となるためARCやLIRSなど履歴保持にLinked Listを使用するキャッシュアルゴリズムはGCなしで実装できる言語かによってレイテンシと適用範囲からのLRUに対する優位性、ひいては有用性が大きく異なる。さらにLinked Listで実装されるLRU自体も同様に低速となるため配列で実装されたClockのほうがLRUより高速となる可能性がありビット演算により高速化されたClockはLRUより高速となる可能性が高い。LRUはJavaScriptにおいて主要というか事実上唯一のキャッシュアルゴリズムだがほとんどの場合より高速なClockに対して何ら優位性がなくGC管理下の遅いLRUを無意味に使い続けているだけである。
2-Quequeアルゴリズムをライトバックキャッシュ目的で実装したときにこれは感じた。
巨大ファイルの全置換えの場合、FIFOであふれたものをそのまま書きだしたほうが早いとかどういうことだよ。
グローバル10%関税について、何かしらの政策検討したレポートあるのではと思って調べたがよくわからん。
Oren Cass、シンクタンクAmericanCompassが、相互関税後の米国がどのようになるか想定しているでしょうか?
Key Points
研究は、Oren CassとAmericanCompassが相互関税後のアメリカを国内製造業が強化され、高品質な雇用が増加し、貿易赤字が縮小した状態と想像していることを示唆しています。
彼らは関税を国内生産を奨励し、アメリカの労働者とコミュニティを優先するツールと見なしています。
消費者価格の上昇や他の国からの報復関税の可能性も考慮されますが、具体的な未来像は議論の余地があります。
Oren CassとAmericanCompassは、相互関税がアメリカ経済にポジティブな影響を与えると信じています。具体的には、国内製造業が保護され、工業部門での雇用が増加し、貿易赤字が縮小する未来を想像しているようです。特に、中国との競争に対抗するために関税を有効なツールと見なし、アメリカの産業基盤を強化したいと考えています。
予想される影響
このシナリオでは、国内生産が増えることでアメリカの経済的自立度が高まり、労働者の生活水準が向上する可能性があります。ただし、輸入品の価格上昇により消費者価格が上がるリスクや、他の国からの報復関税による輸出への影響も指摘されています。これらの影響は複雑で、経済全体に波及効果をもたらすと予想されます。
予想外の詳細
興味深いことに、AmericanCompassは関税収入を主権財産基金に投資し、インフラや医療研究に使う提案も検討しているようです。これは、単なる貿易政策を超えた長期的な経済戦略を示唆しています。
https://www.spectator.co.uk/podcast/was-free-trade-really-working/
ここのポッドキャストの内容を要約してください
「https://www.spectator.co.uk/podcast/was-free-trade-really-working/」のポッドキャストの内容をさらに詳しく要約し、具体的なポイントを掘り下げて説明します。この対談は、2025年2月19日に公開され、The SpectatorのFreddy Grayがホストを務め、AmericanCompassのOren Cassをゲストに迎え、ロンドンのARC会議で収録されました。以下に詳細を述べます。
詳細な内容
ポッドキャストは、トランプ大統領が2025年初頭に発表した「相互関税」(reciprocal tariffs)の話題から始まります。これは、アメリカが他国から課される関税率に合わせて自国の輸入関税を設定する政策で、特に中国やその他の貿易相手国との不均衡を是正する狙いがあります。Freddy Grayは、この政策が最近のホワイトハウスの方針(例えば、2025年2月のカナダ、メキシコ、中国からの輸入に対する関税引き上げ)に結びついていると指摘し、その意図をCassに尋ねます。
Oren Cassは、この関税が単なる保護主義ではなく、アメリカの経済的自立と労働者保護を強化するための戦略的ツールであると説明します。彼は、過去数十年の自由貿易政策がアメリカの製造業を空洞化させ、貿易赤字を拡大させたと考えており、相互関税が国内生産を再活性化させる一つの方法だと主張します。
2.自由貿易への疑問
対談の中心的なテーマは、「自由貿易は本当に機能していたのか?」という問いです。Cassは、1990年代から続いてきた自由貿易への政治的合意が、アメリカ経済に必ずしも利益をもたらさなかったと批判します。特に、中国のWTO加盟(2001年)以降、アメリカの製造業が衰退し、多くの労働者が低賃金のサービス業にシフトした点を挙げます。
具体例として、中国製電気自動車(EV)の台頭を取り上げます。Cassは、中国の補助金付きEVがアメリカ市場に流入することで、国内の自動車産業や投資家が競争力を失っている「現実の生活」を強調します。Grayが「自由貿易がグローバル経済の成長を促進したという主張はどうか」と尋ねると、Cassは「それは一部の多国籍企業や投資家には当てはまるが、アメリカの労働者や地域社会にはほとんど恩恵がなかった」と反論します。
Grayは、相互関税がアメリカ企業にどのような影響を与えるか質問します。Cassは、短期的には輸入コストの上昇による混乱が予想されると認めつつ、長期的には国内生産を奨励し、製造業の雇用を増やす可能性があると楽観視します。例えば、関税によって中国からの安価な輸入品が減れば、アメリカの自動車や鉄鋼産業が再び競争力を取り戻すかもしれないと述べます。
しかし、彼はリスクも認識しており、他の国からの報復関税がアメリカの輸出産業(特に農業や技術分野)に打撃を与える可能性を指摘します。それでも、「自由貿易の幻想にしがみつくよりは、現実的な政策で国家の利益を守るべきだ」と主張します。
Cassは、トランプの関税政策が政治的な支持を得ている背景にも触れます。2024年の選挙で、労働者階級の有権者が貿易赤字や製造業の衰退に不満を抱き、保護主義的な政策を支持したことを挙げます。彼は、これが共和党内の経済政策の転換を示しており、AmericanCompassが提唱する「労働者優先」のアジェンダと一致していると述べます。
Grayは、ヨーロッパの視点からこの政策をどう見るか質問します。Cassは、ヨーロッパ諸国も同様に中国との貿易不均衡に直面しているが、アメリカのような大胆な関税政策を取る政治的意志が欠けていると分析します。
意外なポイントとして、Cassは関税収入の活用についても言及します。彼は、AmericanCompassが提案するように、関税で得た資金を主権財産基金に投入し、インフラや教育に再投資する案に触れます。これは、単に貿易を制限するだけでなく、経済全体を強化する長期的なビジョンを示唆しています。
対談の最後で、Grayが「自由貿易の時代は終わりを迎えたのか」と尋ねると、Cassは「少なくとも、アメリカではその前提が再考されるべき時期に来ている」と締めくくります。彼は、相互関税が完璧な解決策ではないものの、現在のグローバル経済におけるアメリカの地位を再定義する一歩だと結論付けます。
RopeもといBigList+GapBufferでさくさくエディターの置き換え処理をやってみた。
使用したマシンはCore i7 14700、メモリー32GB、IntelARC A750。
100万行×100文字を置き換え。
replace1は3文字削除の3文字挿入で、3.5秒ぐらいで終わる。
replace2は3文字削除の4文字挿入で、4.9秒ぐらいで終わる
replace3は4文字削除の3文字挿入で、3.6秒ぐらいで終わる。
enumratotionはNULデバイスへの保存で、1.1秒で終わる。
benchmark start
AllocatedGC Memory:60,600bytes
AllocatedGC Memory:199,388,824bytes
AllocatedGC Memory:199,405,136bytes
AllocatedGC Memory:368,390,560bytes
AllocatedGC Memory:368,390,560bytes
AllocatedGC Memory:368,390,736bytes
clear buffer
AllocatedGC Memory:84,360bytes
100万行の行とインデックスの変換テーブルの追加と更新処理はこのくらいで終わる。
変換テーブルの処理は構築が0.2秒、行が増えない更新は0.1秒ぐらいで終わる。
AllocatedGC Memory:32,805,312bytes
AllocatedGC Memory:32,811,000bytes
clear buffer
AllocatedGC Memory:84,616bytes
以下、ソースコード。
PCパーツ調べるなんて10年近くぶりだけど、やっぱり数値が上がっていくのを見るのって楽しいね。新アーキテクチャでn%向上!とか○○処理性能向上!とか男の子だよな。
https://www.pc-koubou.jp/pc/benchmark.php
# まとめ
それ以下でもいい、手ごろな感じだと
G → 3060
Ra → 6600 でもできればRDNA3世代以降がよい在庫少らしい。 もう一枚積んで7600行きたい
I → B570 か B3~ 最新、安いモデル。メモリ多め傾向。
マルチタスク、メモリ不足エラーを防ぎ、AIも視野 → VRAM12~16?
価格 → せめて3万ぐらいで…無理よね…
今使っているのが
1050ti 4G
スコア 7613
https://ja.wikipedia.org/wiki/Ryzen
CPU+GPUがひとつで済むので合計金額が安く、実質ミドル~ロー構成になっている。
スコア 7928
ただGPU性能は1050Tiから微増。1650以下の位置で、乗り換えるうまみは少ない。
どうしてもGPUに別途4万は出したくないときは、Ryzenの出番。
9000シリーズのiGPU 「Radeon Graphics」は RDNA 2ベース (RDNA2はRX 6000世代(20,21年代))
できればRDNA 3のほうがいいよね。でも6600候補に入れるならまあ別にか。
https://ja.wikipedia.org/wiki/NVIDIA_GeForce
安く・GeForceで・VRAM多く、の要求に応え、スコアも三倍ほどに伸びる。
RTX 4060 8GBは5万ほど、スコア 27760 と、VRAMを下げ性能と値段を上げるバランス。
さすがに2000シリーズは古すぎて微妙か。AI考慮などされている最近の世代が欲しい。
たぶん5000のローは値段・性能的に期待できない。
#Radeon
https://ja.wikipedia.org/wiki/AMD_Radeon
メモリ8Gだが価格3万と安い。3060より高いスコア。 RDNA2世代
下位のRadeonRX 6500 XT 8G(スコア 15237) とあまり価格差がない。
RX 7600 8G 4万スコア 31088 かなりうれしい値。 6600プラス1万でスコア伸びが良くて次世代とかなり心くすぐる。
RX 7600XT 16Gスコア 31299 下位モデルにメモリ16G乗せてくれたメモリ重視の嬉しい設計。ただしお値段6万円とこれは下位モデルの値段と言えるのか…?
https://ja.wikipedia.org/wiki/Intel_Arc
最近知ったIntelのGPU。一般向けは内臓だけじゃなかったのか…。
ちょっと前のAと最近出てきたBで、Bの評価がうわさでは高そう。
新規競合として低価格でおしていくと思われるので、非ハイエンドなら注目株なのかも。
最上位 A770 8G 16G 6万以下
8Gでスコア 30603
A750 8Gで28327 3~5万
8G下限 A580スコアなし 3万以下。
A750で23年発売、メモリ8G、3万は熱い。スコアも20000は割らないだろう。
3060の12Gとどう比べるか。
本命っぽいBシリーズは24年末発売でまだ出揃っておらず、ミドルの500シリーズのみ。
B580でメモリ12G、価格5万以下。Arc 5に12G乗っているのは嬉しい。 ただし、TBPが190とやや高めか
https://www.dospara.co.jp/5shopping/shp_vga_def_parts.html
B580でRX 6600 XT(8G 5万パソコン工房スコア 28262)と同程度でメモリ勝ち。
んー…でも高い。でもA770よりドスパラスコア高いのは凄い。
B57010G で 4万。安い。スコア次第でかなりよさそうな気がする。
Arc3 B はメモリ12はなさそうで、10Gで安くてスコアなかなかなら、まあそれでよさそうか。
安くて使えるGPUは実在するのか!? 1万円~3万円クラスGPUの性能をKTUがライブで比較!
https://akiba-pc.watch.impress.co.jp/docs/sp/1605922.html
Arc Aがレビューされてるが、A580のアイドル時含め消費電力が他の低価格帯と比べても高め。(ほか80W以下のアイドル時に150W)
https://youtu.be/c9_Ck57DrUM?t=983
A580,RX 3050でFHD標準品質のFF14で60FPS怪しいのはちょっと厳しくない?
あなたのGPUで「モンスターハンターワイルズ」はどれくらい動く?公式ベンチマークで一斉検証【RTX 5090/5080ほか計14種類で検証】
https://youtu.be/aSTVGUkdc1M?t=454
B580 63.96FPS
B570 51.81FPS
いいじゃなーいB580。
ぜぶ @zebu3821
IntelARC B580、最新のドライバ適用したところワイルズのパフォーマンスめちゃくちゃ良くなったので今日の昼頃に遊んでレポしよう。
最適化進んでさらに上がるならB570で60FPSいけそうじゃない?メモリが足引っ張るかな。
VRAM容量の大きさが効いているのか、ワイルズかなり快適に動く。グラフィックプリセット高のフレーム生成有りで70~80FPSぐらい出せて、遅延もそんなに感じない。