vim か emacs かが問題じゃない。Perl で書くことが重要だ。#yapcasia

シックス・アパートのエンジニアの重田です。

YAPC::Asia Tokyo 2015 にご来場いただきました皆様、2日間(または3日間)お疲れ様でした。

Six Apartは、コーヒースポンサーとして協賛させていただきまして、当社オリジナル紙コップを提供しました。
Twitter では多くの方が紙コップの画像とともにツイートしていただき、本当にありがとうございました。
無限コーヒーと呼ばれるコーヒーブースでは無料でコーヒーが提供されておりましたが、予定されていた数量を飲み切ることができませんでしたね。運営の勝ちでした。

さて今回は紙コップのコードにまつわる話をしたいと思います。

yapc_cup.jpg

構想

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 で作りあげました。

完成

本番当日まではこの紙コップの存在は秘密でしたので、こんな注意書きも。

socialNG.jpg

結果

(この記事の作成時点で 756 リツイートです!)

構想から半年間の仕込みの結果、#yapcasia ではたくさんの紙コップツイートが見受けられて、作った甲斐があったと喜んでおります。

実際に紙コップのコードを実行された方はもちろん、実行されていない方も紙コップのコードの実行結果のページにアクセスしてみてください。

yapc-ogimage.png

http://s.sixapart.jp/yapc2015

みんな待ってるぜ!

Six Apart をフォローしませんか?

次の記事へ

クリエイティブ業界でパートさんを雇うときの課題

前の記事へ

必要なのはセンスではなく、顧客目線! 非デザイナーのための夏の自主学習用スライド5選