Akamai x UNIQLOコラボTシャツに書かれたプログラムを解読してみる

Akamai x UNIQLOコラボのTシャツのデザインが、エンジニアからすると目を引くようなものだった。

Akamaiのリリース記事を読むと、

Akamai、ユニクロのチャリティTシャツプロジェクト「PEACE FOR ALL」に参画|アカマイ・テクノロジーズ合同会社のプレスリリース

このデザインに使われている「texture」というコードは、さまざまデジタル体験の裏側にある共通言語を表現しています。

と書かれており、どんなコードなのかさらに気になったので、解読してみることに。

写経

写真をみた感じGoっぽい感じがする。とりあえず写経してみる。

gist.github.com

ぱっと見でわかったことは

  • HTTPサーバっぽい
  • channelが多用されていそう
  • コードの右端が途切れてそう
  • Goっぽいけどセミコロンがたくさんある(1行に書くため?)

くらいだった。右端が切れていることからコピペしただけでは動かないことがわかる。 整合性が取れていなさそうに見受けられる部分もありそうなので、補うだけではダメで、若干の修正も必要そう。

解読

ということで、前後の文脈を頼りに整合性をとりながら、コンパイルが通るようにしたコードがこちら。1時間くらい掛かってしまった。

gist.github.com

何をするコードなのか

コンパイルは通るようにしたが、実行すると全てのgoroutineが停止してしまうため、panicする。 httpサーバっぽいコードだが、listenする処理などがないため、それはそうだろうという感じがする。

雰囲気から察するに /admin/status 2つのエンドポイントを持っていて、/admin

type controlMessage struct {
    Target string
    Count  int
}

このようなメッセージを受け取ったら何かの処理をするサーバのようだ。 /status は処理中かどうかがわかるようだ。

それ以上の隠された何かは特に見つけられなかったので、知っていたら誰か教えてください。

このコードからの学び

statusPollChannel := make(chan chan bool)

チャネルのチャネル(chan chan)という使い方は見たことがなかった(意識してないだけかもしれない)ので、確かにそういう使い方もあるかという学びになった。

何か特定の自分がリクエストしたものに対しての応答を待ち受けるような実装があれば使えそう。

ここまでやってから気づいたこと

Tシャツのハイライトされた文字だけ読むと、、ということなのか😇

感想

ここまでTシャツのデザインを凝視したことはなかったので、ユニクロに立ち寄った際にこのTシャツが売っていたら買おうと思う。