vim か emacs かが問題じゃない。Perl で書くことが重要だ。#yapcasia
シックス・アパートのエンジニアの重田です。
YAPC::Asia Tokyo 2015 にご来場いただきました皆様、2日間(または3日間)お疲れ様でした。
Six Apartは、コーヒースポンサーとして協賛させていただきまして、当社オリジナル紙コップを提供しました。
Twitter では多くの方が紙コップの画像とともにツイートしていただき、本当にありがとうございました。
無限コーヒーと呼ばれるコーヒーブースでは無料でコーヒーが提供されておりましたが、予定されていた数量を飲み切ることができませんでしたね。運営の勝ちでした。
さて今回は紙コップのコードにまつわる話をしたいと思います。
構想
2015年のはじめにコーヒースポンサーになることが決まり、合わせてオリジナル紙コップを提供することも決まりました。
5月頃にいよいよ紙コップのデザインを決める段階になりました。
「コード実行したら URL が出る感じがいいんじゃないですかね?」
わかる。わかります。エンジニアのイベントだからその方がウケそうですよね!
「コップの文字数の目安はだいたい6.5ptで25行です。」
とデザイナーからの制約。おす。『25行で URL が出る面白いプログラムを書け』という方針が決まります。
実装
6月中旬に社内エンジニアから第一弾が出てきました。Just Another Perl Hacker(通称 JAPH)な We Love Blog を作ったものでした。
もうちょっとカスタマイズしたらいけるかな。あとは微調整だな。こういうときは寝かせます。
6月末、そろそろ入稿締切日です。今度は Acme::EyeDrops を使ってアスキーアートでうまく表現できないか考えました。会社の何かの画像をアスキーアートにすればいいんでしょ?簡単じゃん。とか思っていたら甘かった。結構めんどくさい…
というか「JAPH な We Love Blog にせよ、アスキーアートにせよ、紙コップを見て入力できないじゃん!」ということで振り出しに戻ります(苦笑)
そこで最初のコードがこれ。
実行すると『We are hiring!』と出力されます。
ポイントは次の2点です。
$_ = 'Drink coffee! Supported by Six Apart';
どんどんコーヒを飲もう!tr/a-z/Blogging after this event!/;
YAPC::Asia はブログを書くまで終わりません!
「こういうのは rot13 とかちょっとした暗号を混ぜるとより良いんじゃない?」
ほどほどの難読化面白い。じゃこんな感じで。
ポイントは次の2点です。
tr/N-ZA-z/A-za-m/;
でローテートしていることs/<3/i/g;
でハートマーク❤️をi(愛)に変換していること
もうポエムです。最高!
「実行したら専用サイトの URL が出るようにしてもらいたいのですが……。」
・・・あっ。はい。ポエムの出来に本来の目的を忘れてしまいました。
ということで最終版のコードに落ち着きました。
ポイントは次の5点です。
s!Asia/Tokyo!jp!;
で Asia/Tokyo のタイムゾーンは jp(日本)のタイムゾーンのひとつreverse; tr.ap.a xis.;
は「ひっくり返すと six apart」というポエム$anniversary = 10;
は10周年おめでとうございます。y.apc.asia.;
は YAPC::Asia ですね。y. ET ANOTHER .pERL HACKER.;
キミも Perl hacker だよ!
この時点ではエディタは vi のみでした。できるだけ一般的な雰囲気にしたかったので、 Mac 標準の Terminal.app で .vimrc も空っぽな感じで用意しました。
「やっぱり emacs と vim とそれぞれに分けないとダメでしょ。」
ですよねー。でもプレーンな vim で開いても区別できるかしら?
「おれ Powerline 使っているす。」
社内からの声。わかったよ。Powerline 入れてなんとかしますわー。
最後に vim と emacs でスクリーンショットをデザイナーに送り、無事7月上旬に入稿することができました。
デザイナーがちゃちゃっと画像を加工したように見えますが、フォントのハイライトとかかなり苦労されています。
ということでこの紙コップはエンジニアだけでなく、マーケティング、デザイナー、CTO で作りあげました。
完成
本番当日まではこの紙コップの存在は秘密でしたので、こんな注意書きも。
結果
#yapcasia 凄い!こんなところでエディタ戦争が!!気づかなかった! pic.twitter.com/cqABFEJM9J
— 鶉 (@uzulla) August 21, 2015
(この記事の作成時点で 756 リツイートです!)
構想から半年間の仕込みの結果、#yapcasia ではたくさんの紙コップツイートが見受けられて、作った甲斐があったと喜んでおります。
実際に紙コップのコードを実行された方はもちろん、実行されていない方も紙コップのコードの実行結果のページにアクセスしてみてください。
みんな待ってるぜ!
Six Apart をフォローしませんか?