週刊気になったITニュース(2020/12/19・2020/12/26合併号)

年の瀬ですが、今年はコロナの影響で帰省も旅行もせずと普段と異なる状況の方が多いのでは無いでしょうか。

私も例年と異なり、花粉症の症状が前倒しに出てきました。謎理論でコロナウィルスがスギ花粉を倒してくれないかと祈っています。

MSよ、お前もか

news.yahoo.co.jp

Wintel体制で長らくやってきたMSがARMでCPU自社開発となると業界に対するその影響たるや、AppleAmazonとは桁違いでしょうね。PCメーカーとかどうなるんでしょう。

土壇場の救世主

japan.zdnet.com

2016年にリリースされた「Android 7.1 Nougat」以前の「Android」を搭載しているデバイスは2021年9月1日以降、Let's Encryptが発行したSSL/TLS証明書を使用しているウェブサイトにアクセスできなくなるという問題が報じられていた。同証明書の有効期限が到来するためだ。しかし同社は米国時間12月21日、この事態を回避するための対策を見出したと発表した。

おー、すごい。実はこの問題を懸念して本来なら Vercel / Netlifyで動かす、もしくはすでに稼働中のものを一部Amplify Console使うようにしていたりしたんですが、これで遠慮無くSSL証明書でLEだけをサポートしているプラットフォームも使えますね。

リアル(元)GAFAエンジニア

type.jp

謎のGAFAエンジニアとかフォローしようと思った人はその前にちゃんとしたキャリアの人の話を読みましょうね。

クォータって久々に聞いた

www.itmedia.co.jp

Google止まると仕事ができない! YouTubeも見られない!」と大変でしたね。YouTubeはログインしなければ見れたようですけど。Gmailで届いているのに宛先不明で戻ってきたメールがあったりもしたようで。

ARMベースAuroraインスタンス

dev.classmethod.jp

いよいよ出てきましたね。単純にCPUがARMになったというだけでなく、常時ローカルメモリ&STM無しといういかにも自社開発ならではな特徴もあるようです。プレビュー版ということなので、今後利用者から出てくるであろうパフォーマンスレビューが気になりますね。

AWS CloudShell

aws.amazon.com

AWSのマネジメントコンソール経由でアクセスできるシェルです。普通にbashが動いてますね。これで今後はEC2にsshするというような初心者向けの講習でもこれを使う前提になってくるんじゃないでしょうか。

Amazon Location

aws.amazon.com

Google Maps有償プランの競合ということですね。

東京リージョンに来た Auth0

prtimes.jp

そんなにリージョンの場所が選定ポイントにならないことが多いと思いますが、日本国内にデータを置いておく必要がある方なんかには良さそうですね。

React Server Component

reactjs.org

リリース当日、フロントエンド関連はこれで持ちきりでしたね。このYouTube見てもらうのが一番わかりやすいとは思うんですが、英語が苦手だときついかもしれません。

Vercel使ったフルスタックアプリケーションの例

yuyao.me

Next.js + Vercelで何が出来るかがさくっと分かる良い記事だと思います。

フルスタックという表現がどうなのかという感じもしますが、フロントエンド領域とバックエンド領域の双方を単一のコード(フレームワーク)でカバーするとなると、今のところフルスタックという表現より適した言葉はまだ無いというところでしょうか。

ISR活用事例

panda-program.com

これはいかにも「ISR便利!」という感じの事例ですね。

成功しているネットの一人ビジネス

news.ycombinator.com

「一人でやってて上手くいっているビジネスってある?」という質問に実際に運営している人がコメントしているスレッド。LaTeXのテンプレートを集めているというなかなか渋いものから「あ、これ見たことあるけど一人でやってたの??」というものもあったり。そのビジネスだけで暮らしているという人もいますが、家賃分とか年収の半分を賄ってるという意見のほうが多い印象です。

SIerというリスクテイカ

note.com

日本人はゼロリスク信仰が強いので意識してるかどうかにかかわらず、暗黙的にこういうリスクテイカーが生まれる構造になりがちというのはあるんでしょうね。

TIOBE インデックスの定義

www.tiobe.com

よく出てくるランキングですが、定義知らなかったんですよね。

Since there are many questions about the way the TIOBE index is assembled, a special page is devoted to its definition. Basically the calculation comes down to counting hits for the search query

検索に引っかかるウェブページの数が多いほど、ということですね。歴史が長くて一定期間人気がある言語が上位に来やすいということになるので、積み上げ式でランキングが決まると覚えておくと良さそうです。最近の人気を計るのであれば順位変動のほうが重要ということですね。

ウェブサイト運営で使う機械学習

tjo.hatenablog.com

先述したように各々で一冊潰せるほどゴツいテーマの数々を「ウェブ最適化」という単一のキーワードのもと、理論・アルゴリズムの解説を写経しやすい実践的なPythonコードと共にコンパクトにまとめた本書はどのテーマにとっても良い入門書です。

ウェブ開発者的には身近なトピックがあるととっつきやすいですよね。

農水省人材募集

xtech.nikkei.com

公募するデジタル政策プロデューサーはDX関連プロジェクトの企画立案と実行を率いる人材だ。1~2人の採用を予定する。

1,2名で何が出来るかというと難しそうですが、とりあえず年収面では一応検討に値する数字にはなっているところは良いんじゃないかと思います。

IT業界でも採用減

xtech.nikkei.com

業界別ではITサービス企業などに相当する「情報通信業」での採用減の傾向が目立った。2021年の新卒採用では「減る」とした回答は5.2%だったが、今回は13.4%と8.2ポイント増えた。

コロナ禍でも未だに求人倍率は高いIT業界ですが、新卒採用はやはり影響が出てしまうようですね。

バックアップがあって良かった!...んだろうけど...

xtech.nikkei.com

11月10日、センター内でひっそりと稼働していた旧サーバーを調査すると、果たして週1回の頻度でデータをバックアップしていたことが分かった。旧サーバーには2015年以前に使用していたふくいナビの旧プログラムも残っていた。ただしデータの最終更新は2020年10月5日だった。それ以降はふくい産業支援センターの建物の全館停電の影響でバックアップしていなかったためだ。

なんかいろいろモヤモヤしますね。

広がる半導体禁輸措置

www.nikkei.com

HuaweiのCPU調達先はTSMCが止められてSMICに一部流れて、今後SMICがより微細なプロセス加工が出来るように数年かけて進んでいくのではないか、みたいな話もありましたけどそこで手を緩める米国ではなかったということですね。

日本の電力

car.watch.impress.co.jp

ITとは直接関係ない話なんですが、日本全体での発電力等の数字が具体的に出されています。クラウドの分野でもグリーネネルギー比率を高めたり、液冷を初めとした冷却効率向上の話もよく出ています。プログラミングについてもより消費電力を考慮した無駄の無いコードに関する研究も昔からありますし、近い未来にこういった動きがウェブサービスの開発に影響が出てくることがあっても不思議ではないですね。

人名ルール

www.asahi-net.or.jp

かなり以前からあるサイトのようです。これを見るとFirst name, Last nameというのは苦肉の策であり、最低限の落とし所なんだなという気がしてきますね。。

怒らせる技術

techblog.kayac.com

一瞬で沸点に到達できる名作揃い

週刊気になったITニュース(2020/12/12号)

CentOSの行く末

blog.centos.org

いろいろ今後の話が出てますが、今CentOS 8使ってる人はメンテナンス期間が2021年末で終わるということで来年のスケジュールが偉いことになってるんじゃないでしょうか。

数時間で750万円を溶かすプログラム

gigazine.net

内容的にはあるあるなんですが、課金された理由を解き明かしている元記事のPart 2を読むとGCPの凄さにびびりますね。

blog.tomilkieway.com

この方は Announcement というサービスを作っているそうです。FAQ によるとサービスの内容は以下の通り。

Announce is a platform that allows you to make public, or private announcements in a user specified geographic area. Anyone in the specified area would be able to view the announcements, or be notified of the announcement if they follow that area.

やろうとしていたことは以下の図のようにウェブサイトのスクレイピングというシンプルなことだったわけですが、

https://blog.tomilkieway.com/assets/images/72K/flowchart.jpg

以下の点で実装を間違ったと。

Exponential Recursion without Break: The instances wouldn’t know when to break, as there was no break statement. The POST requests could be of the same URLs. If there’s a back link to the previous page, the Cloud Run service will be stuck in infinite recursion, but what’s worst is, that this recursion is multiplying exponentially (our max instances were set to 1000!)

見に行ったページにリンクがあればひたすら辿り、しかもそのページに対するリンクも再度辿りに行くので1つのページで無限ループが発生しうる状態だったということですね。

すごいのはこんなプログラムが走っても止まらないというか、止めさせることのないGCPですね。

Looking at the data post incident, we saw that the Firebase Reads were at one point about 1 Billion Requests per minute! (中略) Running our this version of Hello World deployment on Cloud Run, made 116 Billion reads and 33 Million Writes to Firestore.

すさまじい read / write 回数ですが、これが普通に動いちゃうんですね。。ということで、請求額 $71,393 のうち、 $69,600 が Firebaseのコストだったそうです。

なお、この問題への対策方法はPart 2の後半に、なぜ気づかなかったのかはPart 1に書いてありますので興味のある方はどうぞ。

技術投資

note.com

技術的負債の返済や技術力を経営的視点から定義していて、エンジニア目線でも納得ですし経営者目線で見ても各種ファクターが合理的に説明されていてとても良いのではないでしょうか。

Prettier for Ruby v1.0

prettier.io

PrettierってHTML / CSS / JS等のフロントエンド向けだけかと思っていたんですが、そうではなかったんですね。

実装されている内容のボリュームからすると rubocop > rufo > prettier という順ですかね。

Rome募金キャンペーン

Babelをはじめとして彼の作ったソフトウェアにお世話になったことがある方は寄付を検討してみてはいかがでしょうか。

Ubuntu on Windows Community Preview

discourse.ubuntu.com

WSL向けの新機能を試す目的で非LTSリリースをベースにしたUbuntu for WSLが提供されているようです。ベースとなるバージョンはその時々で変わるということなので、ほんとにearly adapter向けの評価用バージョンですね。

IE -> Edge リダイレクト設定方法

www.mitsue.co.jp

必要な手続きの詳細はMoving users to Microsoft Edge from Internet Explorer - Microsoft Edge Development | Microsoft Docsにある通りです。

こちらですね。

docs.microsoft.com

IE compatibility list という名前がついてますが、「IE互換のサイトのリスト」ではなく「IEからEdgeにリダイレクトするサイトのリスト」のようです。

本稿執筆時点では、当サイトのほかにco.jpドメインのものはIE非互換サイトのリストに掲載されていないようです。

非互換リスト本体は以下。

https://edge.microsoft.com/neededge/v1

スマホ免許証化計画

www3.nhk.or.jp

また、運転免許証の情報をスマートフォンに表示できる「モバイル運転免許証」について、国際規格などを踏まえて在り方を検討するとしています。

「へぇ、そんなものが」と思ったら今年の6月に日本から規格の提案してたんですね。

response.jp

これで国際免許証もI18n/L10n化されたりするととても便利な気がしますが、そうなる頃には先進国で自動運転レベル5が来ていた、みたいな可能性もあったりして。。

捨てられたドメインの使われ方

xtech.nikkei.com

地方自治体が過去に管理していたドメインが不適切なサイトで利用される事案が相次いでいる。多くは自治体が期間限定の事業やイベントで使った後に手放し、第三者がこれを再取得して行政とは無関係のサイトに転用しているケースだ。

冒頭のこの一文でお察しですね。

航空事業以外で収益を探るANA

www.nikkei.com

普段ANAを使っているのでフライト以外の要素で上級会員になれるというのは気になるところなんですが、本記事的には以下がポイントですね。

ANAHDは航空以外の事業を育成することで航空に偏った収益構造の見直しを進めていく考えで、今回のプログラムの改修などを通じ、自社の会員にグループが提供する航空以外の様々なサービスを利用してもらい事業構造の改革につなげていく狙いがある。

こういった動きは他業種でも出てきそうですが、IT業界の人材不足は加速しそうですね。

USBメモリサイズのSSD

pc.watch.impress.co.jp

意味も無く買いたくなります。

深夜のペンギンホラー

k-tai.watch.impress.co.jp

モバイルSuicaサービスが可能が時間は4:00~翌日2:00です。時間をお確かめのうえ、再度実行してください」

怖いですねぇ。。

週刊気になったITニュース(2020/12/05号)

re:invent 2020 関連で気になるもの多数なのですが、全部取り上げてると気にならないのでそれらの中でも印象が強かったものだけピックアップしてます。それでも多いんですが。。

AWS SaaS Boost

aws.amazon.com

"Transforming Your Monolith to SaaS with AWS SaaS Boost" というなかなかチャンレンジングな内容ですね。SaaS Boostについてまとめると以下のような感じでしょうか。

  • モノリシックなアプリケーションをテナント毎に独立したVPC(Multi-AZ)を配置してテナントに提供できる
  • オンボーディング用ツールや課金、各種解析をテナント全体に対して適用でき、SaaS提供者向けに管理画面も用意される

従ってタイトルにある「モノリシックなサービスをSaaSに変換」は「テナント毎のVPCにモノリシックなサービスを展開できる」ということのようです。当たり前ですが、モノリシックなアプリケーションをマルチテナント対応に変更させるというマジカルなツールではないということですね。

テナンシーモデルについてはいくつかパターンがあり、MSが提供している以下のドキュメントがわかりやすいです。

docs.microsoft.com

SaaS Boostで提供されるのはここでいうSingle tenantモデルですね。SaaSの場合は効率的なリソース運用を考慮してMixed tenantかMulti-tenantを採用する事例の方が多いと思われることを考えると、Single tenantモデルでSaaS運営はコスト面が気になるSaaS事業者が多いのではないでしょうか。

しかしながら、Single tenantモデルであっても課金含めて複数テナント向けのサービス設計を行うのは結構大変であるため、そのあたりのノウハウを持った人材を採用せずともSaaS提供が出来るという点でコスト削減は出来るかもしれません。運用コストが高まる頃にはビジネスが上手くいっているでしょうから、その後の移行は採用力がついてから、という考え方もひとつですね。

AWS Amplify - Admin UI

dev.to

Aurora serverless v2

docs.aws.amazon.com

「V2ってなんなのさ?」というのが気になりますが、v1を置き換えるものではなく別のラインナップのようですね。

早速使ってみたという人の記事が。

www.jeremydaly.com

serverless v2 以外のAuroraアップデート

どちらかというとセッション中で発表されたという以下の機能のほうが気になります。

Graviton2対応インスタンスは誰もが登場を想定していたと思いますが、果たして価格はどうなるか。ミドルレンジからハイエンドでの価格帯性能比が向上するのはおそらく当然として、かなり安価なインスタンスも出てくると SaaS Boostとか他のサービスでの利用開始時閾値がぐんと下がるのではないかと期待してます。Managed Failoverは2021年に予定されている大阪ローカルリージョンの通常リージョン昇格を見据えると国内リージョンでのfailoverできるという点で利用したい企業は多いんじゃないでしょうか。

AWS Lambdaのコンテナサポート

aws.amazon.com

10GBまでのコンテナイメージをサポートしてお値段そのまま、というアップデートです。

すでに使ってみた方の記事がいくつか。

blog.serverworks.co.jp

イメージサイズによってスピンアップ速度に有意な差が確認できました。

とのことですが、それでも問題にならないケース等もあるので気になる方は少なくとも最後の「まとめ」には目を通しましょう。

dev.classmethod.jp

Lambda向けのコンテナイメージは Lambda Runtime Interface に対応してね、と説明されていますがこれもカスタムランタイムでよく見かけるものです。Rustの場合は awslabs/aws-lambda-rust-runtime を利用すると裏側でLambda Runtime Interface経由でやり取りしてくれます。 これカスタムランタイムと同じやり方で動くんじゃない?と思い試してみたところばっちり動いてくれました。

他の言語についてもカスタムランタイム利用する場合、参考になりそうです。

QuickSigtht Q

aws.amazon.com

QuickSightに自然言語(今は英語だけ?)で質問を投げると欲しいデータが適切にビジュアライズされて出てくるというなかなかにやばい奴です。これをSaaS事業者が3rd-party向けに提供できるようになるとデータ解析機能とかはもうQuickSightにデータ突っ込めばいいやってことになりそうですね。おそらく多言語対応されるのだとは思うのですが、日本語対応はいつになるでしょうかね。

AWS SSO での WebAuthn対応

aws.amazon.com

これにより、MFAにMacbook TouchIDが利用できるようになったそうです。

dev.classmethod.jp

設定も簡単なようなのでこれを機にAWS SSOを導入しようかという気分になる組織もあるかもしれません。

JS25周年

js25.org

The JavaScript language was created in 1995, initially developed in May and released to the public in December of that same year. Thus, 2020 marks its 25th Anniversary--certainly a huge milestone for this language that has become one of the most popular.

当時を知る人は「まさか25年経ってもJavaScriptがブラウザ上で動く言語として生き残っていなんて」という感想がほとんどでしょうね。

Stimulus.js 2.0

discourse.stimulusjs.org

This version introduces two new APIs, values and CSS classes, which replace the data map API from Stimulus 1.0.

新規追加APIとしてvaluesCSS Classes が入ってますが、1.0との互換性が壊れる部分は少ないのでアップグレードは手間無く済むのではないでしょうか。

Basecampではガンガン使われていてDHHイチ押しですが、昨今のフロントエンドトレンドとは真逆、それどころか見方によっては後退してるとも言えるライブラリであるだけに話題性(可燃性?)は抜群。Hacker Newsで取り上げられていたので、さてどのくらい荒れているものかと見に行ってみました。

news.ycombinator.com

大半は「自分は○○.js推し」みたいなレスですが、実際に使った見た上での意見もいくつかありますね。Stimulus使っているRailsプロジェクトに関わっている身からすると、自分の意見はこの「StimulusでスタートしたけどReactに移行してるわ。でも別にStimulusを悪く言うつもりはないよ。」という方の書き込みに同意です。

We adopted stimulusjs a couple of years ago for adding some basic interactivity ... | Hacker News

Not knocking on stimulusjs, but just be wary that it does not grow well with increasing client side complexity. You'll end up writing a lot of javascript boilerplate / DOM manipulation code / custom state management components.

この方、Stimulusでまかない切れなかった部分について詳細な回答をしてくれているのが素晴らしいですね。

せめてもの救いはやれることが少ない軽量なライブラリでTypeScriptを採用しているので、React や Vue への移行がつらくなるということはない、というところですかね。

実践 Sorbet @ Shopify

11/22号 で取り上げたShopifyでのSorbet利用事例ですが、同日に「どうやってSorbetをプロダクトに取り込んでいったか」に関するもう1つの記事が上がっていたようです。

shopify.engineering

注目すべきは Tapioca という自社開発のツールを使って Rails含むgemからRBIを生成しているというところでしょうか。Active Record associations とか結構なものがサポートされていて「え、もうそこまで出来てるの?」という驚きがありますね。

最終的にShopifyのコードベースで typed: true 100%を目指しているそうなので、引き続き注目です。

あと、最後のほうにある以下の一文が気になりますね。

As our long term goal, we hope to bring Ruby on par with compiled and statically typed languages regarding safety, speed and tooling.

safetyとtoolingは別としてspeedの話が出ているということは、Sorbetとは別に何かShopifyとして取り組んでいるものがあるということでしょうか。

CTO Advent Calendar

adventar.org

まずDay 1 から初日に相応しい内容ですね。

note.com

CTOに求められる役割の変化について、自分のこれまでの振り返りを兼ねて記事を書いてみようと思います。

自分は100名未満の組織でしか働いた経験なく、逆に 0 or 1 -> 10 over はいろいろな立場で何社か経験していて、ここに書かれていることについては同意です。

Day 5の内容も頷けるものが多かったです。

note.com

GOV.UK によるフロントエンドエンジニアの職務・スキル定義

www.gov.uk

必要とされるスキルのカテゴリーとタイトルの2軸で、タイトル毎にそれぞれのカテゴリーでどういった役割が期待されるのかがまとめられています。

タイトルは6段階設定されています。Apprentice(見習い), Junior, タイトル無し, Senior, Lead, Headで、後ろに行けば行くほど上位タイトルになっています。スキルのカテゴリーは以下の通り。

  • Programming and build
  • User Focus
  • Systems design
  • Systems integration
  • Modern standards approach
  • Prototyping
  • Accessibility
  • Communicating information
  • Leadership and guidance
  • Web Performance Optimisation
  • Community collaboration
  • Strategic thinking

本文書では各タイトル毎に必要とされるスキルについて概要が示されています。UIデザインは入っていないものの、Prototypingが含まれているところは面白いですね。

ウィズコロナ時代のITエンジニア需給情報

まずはdoda求人倍率から。

doda.jp

業種別で「IT・通信」は4.89倍、職種別で「技術系(IT・通信)」は6.64倍。業種別、職種別どちらもトップ倍率ですね。

dot.asahi.com

小売りや旅行業界などダメージが大きい業界などからの転職希望者が増加。「エンジニアなど在宅でも働ける、手に職をつけたい人が明らかに増えています」(藤村さん)

人材流動が起こることは良いことですけど、コロナの影響で職を失った人がすぐ職を得られるかというとなかなか難しい業界ですね。

一方、IT関連の人材不足は深刻化している。経済産業省の調査によると、IT関連人材は30年には45万人不足するとの試算もある。藤村さんは、今後もこうした傾向は加速するとみている。

ここまで不足するともうどうしようもないので、不足した状態でどうするかという話をするしかないですよね。

www3.nhk.or.jp

具体的には、大企業や中堅企業が新卒や中途で採用した従業員への給与の総額を前の年度より2%以上増やした場合、その支給額の15%分を法人税から差し引くことを検討しています。

仕組み的に需要が多くて、かつ人材流動性が職種の給与額が上がってしまい、コロナで職を失ったり失いそうな人たち向けの支援にはならないんじゃないかという気がしますが、どうなんでしょう。いずれにしてもITエンジニアが求職する場合、より有利な給与条件の求人が増えるかもしれません。

このほか、政府・与党は、企業の規模にかかわらず、デジタル関連などの研修や教育を受けることなどを条件に、さらに税負担を軽減することも検討していて、来週まとめる与党の税制改正大綱に盛り込むことにしています。

これは教育系サービスを提供するSaaS事業者には追い風かもしれませんね。

CSSの学び方

www.smashingmagazine.com

CSS Working Groupのメンバーでもある Rachel Andrew 氏によるCSSの学び方に関する記事。2019/01/02の記事ですが、今でも十分役立つような気がします。ただ、当然すべてのトピックがカバーされているわけではないです。

ahamo

www.ahamobile.jp

他2大キャリアや楽天だけでなく、MVNOまで吹っ飛ばすすさまじいプランが出てきましたね。

MVNOで8GB以上のデータ通信容量を持つプランの一覧をまとめている方がいました。

週刊気になったITニュース(2020/11/29号)

DynamoDBのPartiQL対応

DynamoDBがPartiQL対応したそうです。東京リージョンも対象です。

aws.amazon.com

しかも従来のAPI同等のSLA適用ということで置き換えのデメリットはないと言うことですね。

The DynamoDB Service Level Agreement continues to apply while you use PartiQL to perform operations on DynamoDB table data.

「PartiQLって何?」という方にざっくり説明すると「ストレージエンジンを気にせず使えるSQLのサブセット」となるでしょうか。

partiql.org

これの何が嬉しいかというと、これまでDynamoDBを使うには専用のAPI使ってCRUD操作をしなければならなかったのがSQL-likeに書けるようになったのでより扱いやすくなったということですね。具体的な例はいつもの通りクラスメソッドのテックブログに記事が上がってます。

dev.classmethod.jp

記事中にもあるとおり、PartiQLが使えるからといってDynamoDB由来の制限は当然残り、利用できる演算子等にも制限がありますので先にマニュアルを参照しておく必要はあります。

docs.aws.amazon.com

PartiQL対応により、DynamoDBがさらにウェブサービス開発のでバックエンドとして使いやすくなったという印象です。特に開発初期やモックアップRDBMSへの移行を見据えつつDynamoDBを使うというときにPartiQLでCRUD操作を書いておけると移行は随分と楽になるんじゃないでしょうか。

BBC Onlineのクラウド

medium.com

BBCって何?」という方は公式日本語サイトの解説 を見ていただくのもいいかもしれませんが、どういったウェブサービスなのかという点に限れば以下の一文で十分かもしれません。

The BBC website is huge. Over half the UK population use it every week. Tens of millions more use it around the world. It has content in 44 different languages. And it offers over 200 different types of page — from programmes and articles, to games and food recipes.

BBCは以前からウェブでのコンテンツ配信に力を入れており、ライブ放送と同等の情報がウェブサイトやアプリからも手に入るというくらいの位置づけになっています。そのウェブサイトが今回クラウド化したということで、クラウド化に当たっての方針と実現方法等についてまとまっています。それなりのボリュームはあるものの、かなりシンプルにまとめられています。

ウェブサービスとして見ればニュースメディアというのは複雑で巨大なCMSと見ることも出来て、実際記事を読むとウェブサイトの半分はAWS Lambdaでレンダリングされていて、フロントエンドではReact が使われているそうです。大規模CMSの移行事例という視点で記事を眺めると意外と身近に感じられるのではないでしょうか。特に Principles に上げられている点は定石ですが重要なトピックばかりですね。タイトルだけ引用してみましょう。

  • 1) Don’t solve what’s been solved elsewhere
  • 2) Remove duplication (but don’t over-simplify)
  • 3) Break the tech silos through culture & communication
  • 4) Organise around the problems
  • 5) Plan for the future, but build for today
  • 6) Build first, optimise later
  • 7) If the problem is complexity, start over
  • 8) Move fast, release early and often, stay reliable

当たり前のことばかりですが、BBCのような巨大なメディア企業でこれらが当たり前に出来るというのは流石ですね。

さらに、8) のところで Part of the the monthly status report we make for the WebCore project. として以下のスライド画像が共有されてます。これもなかなかすごい数字ですね。

https://miro.medium.com/max/750/1*c0ftCSuXQzYblSvedBCCnw.png

  • 1ヶ月で110回のリリース
    • 20日で割ると平均1日5.5回のリリース(=おそらくデプロイ回数)
  • ビルドは平均して3.5分で完了
  • 平均して1PRが24時間23分でプロダクションに反映

開発チームの規模や構成は本記事に書かれていないので比較しようがないというのはあると思うのですが、これを上回ることが出来てる組織ってあんまりないんじゃないでしょうか。もっとも、先ほども書いたとおり基本的にはCMSであることとAWS Lambdaが活用されていることを考えるとビルド時間やリリース回数についてはB2Bや利用者からのデータ入力が多いB2Cサービス比較するなら多少割り引いて捉えるべき数字ではありますね。

なお、本記事の最後にあるように本件に関連する記事がmedium上で公開されてます。どちらも興味深いトピックです。今後もまた面白い記事が出てくるかもしれないので、フォローしておきたいですね。

medium.com

medium.com

RustベースのJS/TSコンパイラ

www.infoq.com

Deno 1.0リリースのときから「tscはjsなので遅すぎる。rustの実装に置き換えるべき。」という話が出ていましたが、Deno 1.5でswcを採用してそれが実現した形ですね。

serverless疲れ

frantic.im

Hacaker Gifts というブログ著者の個人プロジェクトでAWS Lambdaをバックエンドに採用したけどRailsに切り替えた、という話です。

正直Railsの部分はどうでも良くて(ひどい)、注目すべきは記事中でも文字が大きくなっている以下の部分ですね。

When the building blocks are too simple, the complexity moves into the interaction between the blocks.

With serverless, I was no longer dealing with my project's domain, I was dealing with the distributed system's domain.

AWSでサーバーレスやっていると確かに個別のサービスをどう組み合わせるかという話の比率がどうしても増えてしまう、というのはあると思います。一方でサーバーレスのほうがスケールしやすかったりデータ量やトラフィックが少ないうちはランニングコストがかなり安価だったりもするので、どの要素を優先するかの判断が必要になってきますね。

教育現場におけるChromebookのシェア急上昇

news.mynavi.jp

GIGAスクール構想で採用される端末でChromebookがシェア急上昇中とのこと。以前から米国等で教育機関でのシェアが高いというニュースは聞いていたので特段驚くことではないですが、記事中にあるWindows / iPad と比べた場合の評価項目を見ると、やはり運用管理の容易さが強く支持されているようですね。

DELLが先行してシェアを伸ばしているという記載があってせいか、記事の最後は以下の一文で締められてます。

今後、これがどんな勢いで拡大していくのか。それが、日本におけるPCメーカーの勢力図にどんな影響を及ぼすのかが注目されている。

が、現在PC作ってる日本国内メーカーで資本的に外資と一切関わりないところはないと思うので、ノートPCトップ3のうちデル以外のHPとLenovo / NEC / 富士通連合がどう出てくるかしか影響ないんじゃないように見えるんですけど、どうなんでしょ。

IBMEUで1万人レイオフ

jp.techcrunch.com

新会社スピンオフの話もあったのでどこかで来るんだろうなとは思ってましたが、この状況で1万人はなかなかですね。。

PS5における最高難易度の操作

www.theverge.com

「なんでPS5って電源オフにするのがこんなに大変なの?」というタイトルズバリの記事ですが、運良く抽選で当たって購入できた自分も同様の感想です。PS5ってPS4のときみたいにコントローラのPSボタン長押しですぐ電源オフにいけなくて、画面右上の歯車アイコンから移動しないといけないんですよね。「それだったら本体の電源ボタン押すほうが速いだろ!」ということで自分は電源ボタン押してますが、リビングの大画面TVで本体から離れたところでプレイしてたりするとストレスでしょうね。改善されると良いのですが。

週刊気になったITニュース(2020/11/22号)

ShopifyでのSorbet利用状況

shopify.engineering

ShopifyがSorbet使っているという情報はRubyKaigiでのSorbetに関する最初の発表でもスライド中で言及されていましたが、今回その詳細が公開されています。

As of today, 80% of our files (including tests) are typed: true or higher. Almost half of our calls are typed and half of our methods have signatures. All of this can be type checked under 15 seconds on our developers machines.

  • Sigils 77%
    • how many files are typed ignore, false, true, strict or strong
  • Calls 63%
    • how many calls are sent to a method with a signature
  • Sigs 55%
    • how many methods have a signature

という状況で15秒かからず型チェック出来ているというのは驚きですね( developers machines で何を使っているのかというところは未知数として残りますが)

The Monolith is also big: 37,000 Ruby files, 622,000 methods, more than 2,000,000 calls. At this scale with a dynamic language, even with the most rigorous review process and over 150,000 automated tests, it’s a challenge to ensure everything runs smoothly.

という巨大なモノリシックプロジェクトでこの数字というのはかなり期待が持てるのではないでしょうか。もっとも、Sigsが増えれば増えるほど検査に時間がかかると思われるので、これが55%から100%になったときに単純に約2倍の実行時間で済むことはないでしょう。

他にも開発者に対するSorbet導入のサポートをどう行ったかに関する解説と、開発者にSorbetに関する評価を定期的(年二回)訪ねたアンケート結果も掲載されています。Shopifyの開発記事は必ずこの開発者に理解を得るための話やサポートの話が掲載されていますね。Sorbetの導入が出来て、回を追う毎に前向きな評価が増えているというのも開発者に対する新しい技術や方針に対して手間をかけているからこそなのかもしれません。

なお、記事の最後にもありますが来週Shopifyのイベントで本件関する発表があるようですね。日本時間だと午前3時開始らしいということでかなりの夜型でないと結構厳しい時間ですね。

O'reilly Safari に日本語書籍

オライリージャパンが出版した本、しかも翻訳版がサブスクリプションサービスであるO'reilly Safariに入るんですね。今後ラインナップが充実してくると、日本国内のソフトウェアエンジニアにも鉄板サービスになってきますが、やはり気になるのは日本国内でのDRMフリー電子書籍が今後どうなっていくのか、でしょう。

オライリー本家は2017年にDRMフリー電子書籍の販売を止めてO'reilly Safariサブスクリプションをメインに持ってきています。

internet.watch.impress.co.jp

今回の動きは既定路線上にあったのか、コロナの影響で書籍販売に変動があって動きが変わったのか、など気になる点はいろいろありますが今後も注目なのは間違いないですね。

新しくなるGoogle Pay

blog.google

単純に支払用のカードをするだけのアプリではなく、友人との貸し借りや経費精算、クーポン対応や家計簿的なものまで入っているように見えます。これ結構影響受けるFintech企業あるんじゃないですかね。日本国内でも同様のサービスが展開されるかどうかはわかりませんけれど。

XMLHttpRequestの綴り

XMLは省略形で大文字なのに何故Httpはキャメルケースなのか」という話なのですが、ちょっと前に見かけたツイートでその謎解きがされてました。

The coding standards we used at Microsoft at the time said to capitalize 2- or 3-letter acronyms, but 4-letter and larger acronyms should be camel-cased

だそうです。

MS社内のコードにはJPGとJpegみたいな揺らぎがあるんじゃないかと思うとわくわくしますね。

AWS SDK For Ruby V2 Maintenance Mode Reminder

aws.amazon.com

This is a reminder that AWS SDK For Ruby Version 2 will enter planned Maintenance Mode starting November 20, 2020.

V2使ってる人はV3へ移行しましょう。

ピボットで崩れるもの

coralcap.co

比較的歴史の浅いウェブ業界でも負債化してしまったシステムをどう扱うかという話が出てきますが「最初からうまく作ることは偶発的要因にも左右されるのでとても難しい」ということはほんとに初期から関わっていないとわからなかったりするので、どうしても後付けで「○○○を(最初から)使えばうまくいく」という論法が目立ちがちです。このストーリーを見ると安定的な収益を得られるサービスができあがるまでに発生するシステムへの変更という点と難しさについて多少の理解が得られるかもしれません。

Perl -> Nuxt.js + Django

codezine.jp

FindJobまだあったんですね(失礼)。リニューアルサイトはこちらなんでしょうか。Nuxt採用ということで爆速なのかと思ったらそうでもないようですが、求人サイトのスタックとしては妥当という印象。

Fastifyが速い理由

var.blog.jp

FastifyとExpressのコードを比較してどこが遅くなるかを見ていく、というシンプルで読みやすい記事ですが、明らかになったポイントは興味深いですね。

リフレッシュレートでハンデ

news.mynavi.jp

また今回の結果は、eスポーツの常識とされる「性能の高いコンピューターシステムがeスポーツの勝負に有効である」が、科学的に実証されたことにもなったという。このeスポーツの常識は、経験則からいわれていることだが、実は科学的に示された例は少ない。

そうだったんですね。

またこの結果から、年齢差のある競技者間では、若者用のモニターの周波数設定を下げるなどして、容易にハンデを設定できる可能性も示されたとした。

なるほど。

SSD出荷台数がHDD越え

pc.watch.impress.co.jp

2020年のストレージ出荷台数(世界市場)は、HDDが2億5,501万台、SSDが3億1,255万台になると予測する。HDDは前年比19.7%減と約2割の減少、SSDは前年比32.4%増と3割強の大幅増である。

ということで台数ベースではSSDがHDDを越えたそうです。ただ容量ベースとなると、

ただし出荷ベースの記憶容量の合計値(総出荷記憶容量)で見ると、HDDはSSDに対してまだまだ圧倒的な優位に立つ。総出荷記憶容量(世界市場)はHDDが1,020.99EB(エクサバイト)であるのに対し、SSDは190.68EBとHDDの5分の1弱に過ぎない。

ということのようです。HDDのほうがGB当たりの単価が安いですからね。その当たりについても詳細な数字が記事に出ています。

「非接触」というマジックキーワード

www.ssnp.co.jp

くら寿司は兼ねてから寿司カバーを採用するなど衛生面でかなり気を遣っている印象のあるチェーン店ですが、店舗内での完全非接触を目指しているそうです。今回その第一弾となる店舗がオープンということで、現時点ではタッチパネルに最低二回タッチする必要があり、来年春には完全非接触も可能な状況になるとのこと。

くら寿司であれば従来路線の延長という感じですが、一般的にこれまでは店舗等でのIT化というとどうしても労働力削減をどうカモフラージュした導入目的にするかという気配が漂うプレスリリースなどが多かったですが、今回コロナで出てきた「非接触」というキーワードはいろいろ便利そうですね。

マイナンバー一本化まっしぐら

www.nikkei.com

自民党は保険証の発行義務の緩和と、将来的な発行停止を求めて早期の移行をめざす。 発行をやめることで健保組合の負担軽減にもつなげる。

結構攻めてますね。でも確かに健保組合の負担軽減や病院・診療所窓口でのソフトウェア対応コストなどマイナンバー一本化で削減出来る作業は結構大きいっちゃ大きいのでIT化という面では前進でしょうか。副次的に色々問題でるでしょうが。

建築物の著作権

www.nikkei.com

現実の建物をARやVRで表示し、その上に広告を無断で設置した場合はどうか。知的財産に詳しい出井甫弁護士は著作権法に抵触しうるという。東京タワーや太陽の塔など形状に美術性のある場合は「著作物」に該当するためだ。広告を一体的に表示させたり、形状を変化させたりした場合は著作権侵害にあたる。

メガテニストとしてはどうしても気になってしまいますね。...ちょっと壊せば大丈夫ですよね?(そんなわけない)

週刊気になったITニュース(2020/11/15号)

Lightsailでもコンテナ対応

dev.classmethod.jp

ついにLightsailでもコンテナ対応。LightsailはEC2に限らずAWS本体のサービスを前段階として気軽に使えるようにするという立ち位置になってますね。

AWS Gateway Load Balancer

dev.classmethod.jp

なんかサービス名からイメージしていたものと全然違いました。これまで頑張って同じことをしていた人には朗報でしょう。

AWS Amplify Console + CDK な開発

dev.classmethod.jp

Amplify Consoleは静的ホスティングのみで、機能のほとんどはAppSyncをエンドポイントとしたバックエンドをCDKで構成、という感じですね。

「フロントエンド領域」再定義

speakerdeck.com

個人的に今年はフロントエンド領域のアンラーニングとTypeScriptで手を動かす年だったのですが、従来フロントエンド領域と呼ばれていたものがバックエンドにも発展していって従来的なSSR(サーバーサイドでのリクエストに対応したHTMLレンダリング)とは違った方向性が見えてきているなと感じていたので、資料の方向性には納得です。ORM周りは開発での生産性や性能面などまだまだ課題は多そうですが、これさえ落ち着いてしまえばかなり問題が解決されることになるので楽しみですね。

BloombergでのTypeScript採用における10の考察

www.techatbloomberg.com

Bloombergのテックブログなんてあったんですね。それにしても、

Bloomberg already had a colossal investment in JavaScript before TypeScript even existed – more than 50 million lines of JS code. Our main product is the Bloomberg Terminal, which contains more than 10,000 apps.

という序文でもう目眩してきますね。。本記事の内容も大規模なプロジェクトにおけるTS採用ということで複数gitリポジトリに分かれたプロダクト群でのTSツール統一から始まり、モジュール参照でのハマりどころや肥大化した型定義の削除など、なかなか濃い内容になっています。なにより長いです。

Elixir + Rust

blog.discord.com

Discordのメンバーリスト更新を高速に行うにはどうすれば良いか、というシンプルな問題からスタートしていますが、マイクロ秒単位でいくつかのデータ形式のパフォーマンスを評価し、最終的にElixirからRustで実装したデータ形式を利用することで高速化することができた、という話です。

OSSなNotion clone

github.com

Notionのページについて実装しています。テンプレート等の機能はなさそうですが、Next.js + Expressの実装でソースコードの量もそれほど多くなく、参考になります。

週刊気になったITニュース(2020/11/08号)

先週はメガテン3HDリマスターにどっぷりハマってました。17年振りのリメイクありがたいですね。

AWSでの踏み台サーバーSSHログ保存

dev.classmethod.jp

AWSでやりたい場合の定番構成ですが、定期的に現状のAWSでどうやるかをまとめてもらえるとありがたいですね。

SIEM on Amazon ES

dev.classmethod.jp

まだまだシンプルな機能のように見えますけどAWS本体がSIEMを出してきたということで、SumoLogicとか3rd partyのツールはAWS本体よりもそれ以外の部分でを強化するとかになるんでしょうかね。

Compliance As Code

www.atmarkit.co.jp

Compliance As Code というのが固有名詞になっちゃってるっていうのはどうかと思いますけど、Infrastructure As Code での最終ゴールのうち1つは確かにこれですよね。

ESLintのYAGNI

zenn.dev

各プロジェクトで設定がバラついちゃうのが気になっていたんですけど、自分でパッケージ作ってそれを使うようにすれば良いんですね。今度試してみようと思います。

MSのIE離れ

forest.watch.impress.co.jp

Edgeへのリダイレクトはなかなか力業dですね。

Windows on Chromebook

jp.techcrunch.com

普通にChromebookの上でParallelsが動いているという感じですね。日本国内でもついに教育機関Chromebookの普及が進んでいるようですが、Parallelsが動くとなるとこれが企業向けにも波及するかどうか、ですね。

VS Code on Chromebook

forest.watch.impress.co.jp

最近、Linux ARMv7/ARM64ビルドがプレビュー版になったため、Intel CPUではなくARM CPUを搭載する“Lenovo Ideapad Duet”(MediaTek Helio P60T プロセッサー、2.0GHz)でも手軽にセットアップできるようになっています。

Chromebook上で立ち上げたLinuxの上で動かしてます。日本語周りの設定をDebian上で行うことになるので、Linuxに慣れたユーザーじゃないとまだセットアップは難しそうですね。

May 2020 Update から継続中

pc.watch.impress.co.jp

Thunderbolt接続のNVMe SSDを利用したさいに、ブルースクリーンが発生する不具合が起きていることを報告している。

May 2020 Updateから継続って結構長いですね。よくありそうな構成だとは思うんですが。

Intel 2020 Q3 決算

eetimes.jp

DCG内の分野別でみると、在宅勤務や家庭学習の需要が継続したことから、クラウド向けの売り上げが前年同期比15%増となった一方で、COVID-19感染拡大による景気の悪化から企業および政府向けが同47%減と大幅に落ち込んだ。

ほほー。

 一方で、CCGではノートPC向けの在宅需要が継続したことで売上高は前年同期比1%増の98億米ドルとなった。

1%増だけなんだ。。

CMSのシェア

news.mynavi.jp

毎月公開されているデータなんですね。

CMSを使ってないサイトのシェアと、WordPressのシェアが肉薄してきた。この傾向が続いた場合、2020年12月にはWordPressのシェアがCMSを使っていないサイトのシェアを上回ることが予想される。

ということはNoneは手書きHTMLということなんでしょうか。にわかには信じがたいですけども。

AI解雇

forbesjapan.com

ADCUはウーバーのアルゴリズムを用いた解雇が、GDPREU一般データ保護規則)が定める「自動化された意思決定から人々を保護する規則」に違反していると訴えた。彼らはクラウドファンディングで支援を呼びかけ、世界的なギグ労働者団体のIAATW(International Alliance of App-based Transport and the Worker Info Exchange)と共に法的手段に訴えた。

GDPR違反になっているというところと、世界的なギグ労働者団体があるという2点が興味深いですね。特に後者については世界各国で労働法制が違いつつも相対する相手は同じ、という点で今後どうなるか気になります。

配膳ロボットの実例

www.sbbit.jp

そして『焼肉きんぐ』板橋前野町店を先行導入店舗とすることも、そのリリースに記されていた。ロボットの実力を見るには現場が一番である。さっそく知人たちと一緒にまずは普通の客として店舗を訪問した。結論から先に言うと、ロボットはごく普通にオペレーションに溶け込み、大いに使われていた。「ガンガン使い倒されていた」と言ったほうが伝わるかもしれない。本当にサービスロボットが活用されている現場を、筆者は初めて見た。大いに感銘を受けた。

実際に店舗を訪問して細かく取材されたレポート。