夏頃からIntel の CPU の供給不足が話題に上るようになっていましたが、意外と事態は深刻なことが分かりました。
原因はIntel の 14nm から 10nm へのプロセス移行がうまく進んでおらず、現行の 14nm 工場のキャパシティが逼迫していることあるわけですが、問題はこれが年度内に解決する見込みがないことです。
例年、4月からの新年度に備えて PC を準備する学生さんや、社会人が PC を新調する時期にあたりますが、比較的廉価な CPU を搭載した製品は争奪戦になりそうな感じです。ちょっと出遅れると納期が1ヶ月以上かかるとかざらにありそうな感じなので、どうしても4月に PC が欲しいという理由がある場合には特に早めの準備を心がけたほうが良さそうです。
【大河原克行の「パソコン業界、東奔西走」】インテルは50年先の未来を見据えて「信頼に足るアドバイス」を提供する ~鈴木新社長インタビュー、CPU供給不足は2019年内に確実に解決 - PC Watch
10nmの開発についても、量産に向けた準備が進んでいます。2019年の年末商戦までには確実に供給不足が解消することになります。
パソコン景気、CPUが影 インテルの量産難航 :日本経済新聞
米インテルのCPU(中央演算処理装置)不足がパソコンや半導体の市場を揺らしている。インテルの最先端品の量産が思うように進まず、サーバー向けの供給を優先した結果、対戦競技「eスポーツ」や企業の働き方改革などで盛り上がるパソコンメーカー側の需要を満たせなくなってきた。
MariaDB に UTF-8 の絵文字を格納したい場合には、歴史的経緯から charset を utf8mb4 にしておく必要があります。
このブログも含めて、既存のテーブルが utf8 の場合にに utf8mb4 に切り替えようとするといろいろ面倒なことがあるので、最小限の変更でなんとか誤魔化す方法がないかと思って調べてみると、数値文字参照でエスケープするという方法を見つけたのでメモ。
例えば 🦊 を🦊 にしてしまえば 1 バイト文字だけになるので、テーブル定義を変更しなくても DB に格納できることになります。
ただ、この逃げ方は内容の検索とかを行う場合に問題になりますが、4バイトの文字はほぼ絵文字なので、今回は目を瞑ることにしました。
ちょうど以下のルーチンを使わせていただきました。
EcmaScript 6 の String.prototype.codePointAt および String.fromCodePoint を使えば、次のように書けます。function utf8mb4_encode_numericentity(str) { var re = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; return str.replace(re, function(match) { return '&#x' + match.codePointAt(0).toString(16).toUpperCase() + ';'; });}