チューリング不完全

What are you afraid of? All you have to do is try.

ハム・ソーセージ専門店「シュマンケル・ステューベ」入門

2, 3年ぐらい前から「シュマンケル・ステューベ」という店でよくハム類を買っている。

特にここ最近は数人単位での集まりが多いので、よくそこに酒のつまみとしてこれらを買っていく機会が多いのだが、すこぶる評判がよい。 店名とおすすめ商品をよく聞かれるので、そういうときにすぐ紹介できるように、記事を書くことにした。

(実は「書きます」と言ってからもう2ヶ月以上経過している。すみません)

場所

自分は勤めている会社が渋谷にあるので、毎回ここで買っている。渋谷駅の地下、東急フードショーの一角にある。 あとは二子玉川とかにもあるみたいだが、行ったことはない。

www.tokyu-dept.co.jp

f:id:aomori-ringo2:20190111193122j:plain
渋谷・東急フードショー店

おすすめ商品

ピッツァケーゼ

f:id:aomori-ringo2:20190111190318j:plain
ピッツァケーゼ

基本的にソーセージなのだけれど、そこにチーズ・マッシュルーム・パプリカなどが練りこまれた一品。 驚異的な中毒性を持つ。しかも600円程度と大変コスパが良い。 上の写真のものはパックされているが、その場で巨大な塊からグラム指定でカットしてもらうこともできる。 f:id:aomori-ringo2:20190111190432j:plain

このようにサイコロ状に切って食べている。 ビールやワインによく合っておいしい。

コッパ (生ハム)

f:id:aomori-ringo2:20190111191713j:plain
コッパ300g

白カビハム。 白カビチーズを食べたときのような風味を感じることができる。 シュマンケル・ステューベのハムの中ではこれが一押しで、舌の上できちんと蕩ける美味しい脂を感じることができる。

Engineering Manager Meetup #2 という勉強会に持っていったら、大変好評でよかった。

シンケンスペック (生ハム)

f:id:aomori-ringo2:20190111192212j:plain
上のがシンケンスペック

スモーキーな生ハム。 コッパは美味しいが、1種類だと飽きるので、なるべく複数種類買うようにしている。 この間りんごに巻いて食べるというやり方に挑戦したらおいしかった。

グローベレバーブルスト

f:id:aomori-ringo2:20190111191908j:plain
バーブルスト3個セット

いわゆるレバーペーストである。 僕は基本的にレバーが苦手なのだけれど、この品はレバーに感じるエグみが少なく、お気に入り。 シュマンケル・ステューベでは数種類のレバーペーストが売られているが、その中でもこの品は肉の塊が少し残っていて、肉を食べている感も楽しめる。 パンやクラッカーなどに載せて食べるのがおすすめ。そのままスプーンで食べてもOKですね。 上記写真のもの1かけらで450円程度という驚異的なコスパの良さを誇る。

その他

シュマンケル・ステューベの店頭ではこの他にもたくさんの商品が置かれている。 他に出ていないジャンルのものとしてはサラミとソーセージがある。酒のつまみとしては上記に挙げたものに比べるといくらかパンチが弱いので、今回はとりあげなかった。

ハムの買い方

自分は3年以上シュマンケル・ステューベに通った結果、上に挙げた4商品がだいたい自分としては鉄板、というところに落ち着いた。 だいたいピッツァケーゼとコッパは毎回買い、あとは予算と店員のおすすめによってさらにいくつか、といったような買い方をする。 1種類を大量に買うとどうしても飽きが来るので、数種類買うのがおすすめ。ハムは種類にもよるが、コッパのような1枚の面積が小さいものだと100gもあればかなりな量になる。3人ぐらいならこれで充分。

初めてでよくわからない、という人はまずピッツァケーゼ1パックとコッパ100gぐらいから買ってみてはいかがだろうか。この2つでだいたい1500円ぐらい。

その他の写真

他のハム写真もにぎやかしに載せておきます。

f:id:aomori-ringo2:20190111194156j:plain f:id:aomori-ringo2:20190111194201j:plain f:id:aomori-ringo2:20190111193854j:plain f:id:aomori-ringo2:20140722214025j:plain

ぼくたちとVimConfの180日戦争

f:id:aomori-ringo2:20181201020823j:plain
VimConf 2018 パンフレット

イベントのレポートというのは生ものであり、鮮度がある。

イベントの当日は、疲れ切ってしまっていて、とても帰宅してから文章を書こうという気持ちにはならずすぐに寝てしまう。次の日は仕事がある。そんな風にレポートを書くことをしぶっているうちに、Twitterではいろんな参加レポートが出回る。これ以上俺が書く必要もないんじゃないか・・・という気持ちが大きくなり、「書かない」という決断をするわけでもなく、レポートは永久に書かれない。

イベントの報告をする上で、では自分が書くもの、自分にしか書けないものは何だろうか。それはパーソナルな体験であり、今回のVimConfであれば、やはりスタッフ業に関することを書くべきだろう。

スタッフは何をするのか

f:id:aomori-ringo2:20181201021107j:plain
ノベルティを詰める作業の様子

残っている記録を見ると、VimConfスタッフが最初に打ち合わせを行ったのは2018年5月16日である。去年は一般参加者だった僕は、ujihisaさんに誘われて参加することになったのだった。
ここから約半年に渡るスタッフの戦いが始まった。カンファレンスのスタッフとは一体どんなことをしているのだろうか?この時はまだ自分自身わかっていなかった。具体的に書き出してみよう。


Bramを招聘するべきか。VimConf 2018のポリシーは何か。Bramへの招待メールは誰がいつ送るか。VimConfスタッフのやりとりには何を使うか。タスク管理をどのようにするか。会場はどこにするか。会場への連絡担当は誰がするか。スポンサーを公募するべきか。スポンサープランの内容をどのようにするか。スポンサープランの金額をどのようにするか。スポンサー候補になってくれそうな企業にどのようにアプローチするべきか。スポンサー公募はいつ締め切らなければいけないか。VimConf 2018の新しいロゴを作成するかどうか。パンフレットの作成を誰が担当するか。パンフレットにどのようなコンテンツを掲載するべきか。Webサイトは誰が作成するか。名札にどのような情報を載せたいか。名札の大きさはどのようにするか。CFPを出さなければいけない。CFPに応募してもらうためにどのような宣伝を行えばよいか。当日の時間割をどのようにするか。スピーカーをどのように選ぶのか。誰をスピーカーとして採用するのか。休憩時間は多めにとったほうがよいのではないか。なんとか時間割を変えてもっと多くのスピーカーに話してもらえるようにできないか。誰をスピーカーとして採用するのか。会場にコーヒーを用意できるか。会場に紅茶も用意できるか。スポンサーになっていただいた企業に、ノベルティをいつまでに送ってもらえばよいのか。それを連絡しなければいけない。ノベルティをまとめる作業をいつ行うか。当日スタッフは何人いてもらう必要があるか。当日スタッフを誰にやってもらうか。当日スタッフに伝えておかなければいけないことは何か。Webサイトに載せてよいスポンサーのロゴはどこにあるか。参加者のチケットの価格をどのようにするか。Early Birdプランのチケットを用意するか。個人スポンサー枠を用意するか。チケットの割当てを何枚ずつにするべきか。チケット申し込み時に各参加者にどのような情報を入力してもらう必要があるか。チケットの販売にどのサービスを使用するか。昼の弁当として何を選ぶか。ベジタリアンヴィーガン用の弁当を用意するべきか。懇親会での料理をどのようにするか。通訳を専門家に依頼するべきか。同時通訳担当に渡しておくべき資料は何か。当日の写真撮影をどのようにするか。写真撮影を専門のプロに依頼する場合、お願いしておくべき事柄は何か。LTはいつ募集するか。LTでドラをレンタルする場合どのぐらいの金額がかかるか。Webに時間割をいつ掲載するか。Webにスピーカーをいつ掲載するか。司会進行役を誰がやるか。発表を動画公開してよいかをスピーカーに確認しなければいけないが、誰が行うか。会場でのLTの他に懇親会でもLTを行えるようにするべきか。懇親会でのLT公募はどうするか。同時通訳担当に発表者のスライドを渡すのはいつまでであればよいか。発表者のスライドがCoC的に問題ないか。遠方から参加するスピーカーへ交通費をサポートすべきか。海外からの参加者のビザサポートをどのようにするか。当日に持っていかなければいけないものは何か。司会の原稿は誰が作成するか。当日会場でアンケートを行いたいと思うが、どのような質問を行うか。アンケートに使用する模造紙やシールは誰が買うか。当日会場内でスタッフ間の連絡をどのようにするか。



すべてを書き出すことなどできないが、このようなことを半年の間に我々スタッフの間で意見として交わし、タスクとしてこなしていった。 それぞれのタスクをこなすのはもちろんであるが、それぞれ締切と優先度というものがある。また、目の前のタスクだけにこだわっていると、いつの間にか別のものの締切が目前に迫っている、といったこともざらであった。

VimConfまであと1~2ヶ月あたりの時期、自分は全体のタスクを俯瞰し、それぞれのスタッフに直近何をやってもらわなければいけないのかを整理する役割などをしていた。

なぜやるのか

上に書いたようなことを、どのようなモチベーションでやっているのか。
やっている最中は自分でもよくわかっていなかったが、今思えばそれは羨望、焦り、怒りなどが入り混じった面倒なものだったのかもしれない。

VimConfには2014からずっと参加をしている。僕がVimConfに参加することで得たものはとてつもなく大きい。Vim自体は、実は別にヘビーに使っているわけでは全然ない。Vimのhelpはろくに読んでいないし、自分でビルドしたことはほとんどない。そのようにVim初心者を何年も続けている自分は、Vim本体よりも、Vimコミュニティからたくさんのものをもらってきた。
VimConfに何度も出ているうちに、顔と名前が一致する人が増え、いつしかプライベートで遊ぶようにまでなった友人が何人もできた。Vimmerは実に多様なバックグラウンドを持っている。Vimはエディタであり、Vimを使ってやりたいことはみんなそれぞれ異なっている。Vimmerから出てくる様々な技術的議論・課題は実に楽しく、そのディスカッションは僕の技術者としてのリテラシーを支える一助になってくれたと思う。

そのような中でしかし、自分はどうにもプログラマとしては不適格であるのではないか、という負い目がずっとある。OSSに積極的にコミットしているかというととても怪しい。ていうかはっきり言えばしてない。OSSにコミットしたり、カンファレンスで発表をする人たちは僕にとっては憧れの対象だ。

5月にスタッフへの誘いを受け、ujihisaさんが「去年はスタッフ業にかかりきりで発表ができなかった、今年は発表もしたい」と言ったとき、僕はできるだけスタッフ業としてのタスクを引き取って、ujihisaさんが良い発表をする準備ができるようにしたい、と思った。それは、VimConfからもらいっぱなしであるということに対する負い目と、自分にはできない素晴らしい発表ができる人の手助けがしたい、という気持ちから出た思いであった。大規模なカンファレンスになるほど、運営の仕事というのは重要になるのだが、やはり技術カンファレンスの主役はスピーカーである。(結果的に、英語のスキルが必要となるタスクの多くはujihisaさんに依存する形になってしまい、それがどのぐらい実現できたかは甚だ疑問な結果とはなってしまったが・・・)

VimConf 当日

2018年11月24日、いよいよその時がきた。

去年は一般参加者として参加したVimConfだが、今年はスタッフジャケットを自分が着ている、なんとも不思議な気持ちだ。VimConf 2017は、自分が過去参加した中でも最高に楽しく、快適だと感じたカンファレンスであった。今日、自分がスタッフとして準備してきたVimConfは、去年に負けないぐらい良い体験を参加者の皆さんに提供できるだろうか?一抹の不安は心から消え去ることはなく、当日はさながら審判の日であった。

開場前準備と、参加者の皆さんの入場処理が一番忙しい時間帯だ。この時間帯のことは全然覚えていない。オープニングトークはいつの間にか終わっており、僕がメインホールの脇から発表を覗けるようになったときには、既にmattnさんの発表が始まっていた。 ここでやっと気持ちに落ち着きができ、Twitterで「#vimconf」タグを見た。 参加者の皆さんの反応はすこぶるよろしいようで、安心する。


そうこうしているうちに、Bramの発表がついに始まった。思えば、今年のVimConfスタッフが5月に集合したとき、「Bramを呼ぶかどうか」という議題からすべては始まったのだ。半年間準備を進めてきた結果、Bramが目の前にいて、タイトルスライドがディスプレイに映し出されている。

moppがBramを紹介し、拍手が起きる。僕も全力で拍手をした。

f:id:aomori-ringo2:20181201010644j:plain:w710



この瞬間、全ての苦労が報われた思いで私たちは満たされた。


カンファレンスの準備というのは地味な仕事である。スタッフはみなVimに長く貢献してきたVimmerばかりであるのに、実際にやることといえば山と積まれた事務仕事である。チケットの販売に使用したPeatixの仕様には何度も苦しめられた。世の中の多くのプログラマの例に漏れず、我々スタッフもみんなメールが得意な方ではなかったが、VimConfの準備のために慣れないメールでたくさんのやりとりをした。

それら全ての結果が意義のある仕事として認められたようであった。
今年からスタッフを始めた僕ですらそのような感じ入り方であったのだから、長年VimConfに関わっているkoronさんやujihisaさんの心に去来する感情はいかばかりだったろうか。
これまでVimという世界では馴染み深い存在でありながら、遠い海の向こうにいるはずのBram Moolenaar氏という人間は、どこか同じ世界に暮らしているという現実感が薄い気がしていた。そんなBramが目の前にいて、話をしている。我々は地続きの世界に生きている。 彼の存在を、我々はGitHubのissueやメーリングリストを見ることでほぼ毎日のように知ることができる。これこそがインターネットの力だが、この日、圧倒的なリアルが目の前にあった。世界がぎゅっと縮まったようであった。

その後も、スピーカーの皆さんによる発表、Twitterに次々投稿される弁当の写真、アンケートボードに貼られる大量のシール、Bramとたくさんの人たちが握手をし、ノートPCを見ながら話し、一緒に写真を撮る姿・・・様々な光景が眼前で繰り広げられた。参加者の皆さんが楽しんでくれている様子を見ることができて、我々は『感極まった』のだった。



VimConf 2018の仕事はまだ少し残っている。スタッフみんなで、発表動画をなるべく早く公開できるように、あと少しがんばります。

洗い物をしない生活ガイド

自炊はたびたびするのだけど、食べ終わった後の洗い物や、水回りの掃除がとても苦手だ。 やり始めればちゃんとやるのだけど、やり始めることができない。結果、食器だけを流しに積み上げてどんどんと溜めていくことになる。

そんな体たらくであるから、最近は使い捨てアイテムを揃えてほとんど洗い物が必要のない生活にシフトしている。 私ぐらい自堕落で洗い物をしたくない人がどのぐらいいるのかはわからないが、せっかくある程度様式が確立したので、ご紹介したいと思う。

割り箸

まずは一番入手しやすい割り箸。

これは50膳、100膳、500膳など様々な数のセットでいろんなところで販売されているので、特に紹介は必要ないと思う。 強いて言えば、割り箸の割り方に失敗するのが気になる人は竹製の割り箸を購入するのがよい。

どんぶり容器

電子レンジにも対応しているプラスチック製がおすすめ。紙製や発泡スチロール製も試したが、ものによって液体がダメだったり、かさばり過ぎたりといろいろと問題があった。 自分はシーピー化成製の BF-362BF-360-B を使用している。

BF-362は600ccと容量がかなり大きく、だいたいの食事はこのサイズで事足りる。 最初はすべてこれで済ませていたのだが、チャーハンなど汁物でないものや、お茶漬け程度の少ない量を食べるときはここまで大きなサイズでなくてもよいことに気がついた。

今では310ccのBF-360-Bがメインで、必要なときだけBF-362を使うという形に落ち着いている。

ペーパーウェアの18cmが安価で良い。 ただし、上記のプラスチック製どんぶりを使いだすと、だいたいどんぶり容器で代用できてしまうので紙皿は使用頻度が少ない。

コップ

家で飲料を飲むときはタンブラーを使用していて、タンブラーを洗う程度であればそこまで苦ではないのだけど、困ったのはプロテインを飲むときだ。

水か牛乳に粉状のプロテイン(自分の場合はザバスのソイプロテイン ココア味)をスプーン2杯程度溶かして飲む。このときよくシェーカーの使用がおすすめされるが、シェーカーを洗いたくない。特にシェーカーのふたの部分の形状が洗いにくくて嫌になる。 そこで、プラスチック製のコップとプラスチック製のスプーンでプロテインを溶かして飲み、そのままゴミ箱にぶちこむという運用にした。

【業務用】 中村 PET樹脂 クリアーカップ (容量425ml) (50個入り)

だいたい400mlぐらいの容量があれば十分。 また、どんぶりに比べて商品の違いによる製品差も少ないので、値段と容量だけで選んでよいと思う。

スプーン

中村 スプーン 業務用 プラスチック 100本入り 16cm

スプーンもコップと同様、商品の違いによる製品差が比較的少ない。自分は16cmを使っていて、だいたいはこれでよいと思う。あとは値段で好きに選ぼう。

入手方法

使い捨て容器生活で一番困難なのが、「各容器をどのように購入するか」である。 上でいちいち(Amazonアフィリエイト収入が欲しいという卑しい理由により)Amazonのリンクを貼って紹介してきたが、Amazonで使い捨て容器を購入しようとすると以下のような問題がある。

  • 価格が高い (こんなに高いの? というのが結構ある)
  • 送料が高い
  • Amazonプライムの対象外のものがある
  • 販売元がそれぞれ異なっているのでそれぞれ配送料がかかる

特にどんぶりは、Amazon上だと満足のいく商品を自分は見つけることができなかった。

そこでおすすめなのが、問屋からのまとめ買いである。 自分は東京合羽橋にある本間商店という店に直接行って定期的にまとめ買いをしている。 ここはネット通販も行っており、上記で紹介したもの(もしくは同様のスペックのもの)は全て入手可能である。ものによってはAmazonで表示される価格の半分程度で購入できるものもある。 また、自分はあくまで自分の生活様式にあったサイズのものを購入しているが、様々なサイズ違いもまとめて確認することができる。

通販の場合はこちらも当然送料がかかってしまうが、まとめ買いするのであればこちらの方が安価で入手できると思う。

まとめ

上記のアイテムを揃えることにより、洗い物の回数を格段に減らすことができ、格段に楽になった。

このような生活にシフトする前は毎回使い捨てる容器の金額を気にしていたが、それよりも洗わないことで手間、時間、精神的負担が減らせるというメリットの方がはるかに大きいということで今は最高だと思っている。

みなさんもぜひお試しください。

builderscon tokyo 2018 参加録

builderscon tokyo 2018に行ってきました。 大規模な技術カンファレンスへの参加って実は初めてだったのですが、とても楽しめました。

今回は、

  • 自分も発表することができそうか、やるならどんな内容がいいか
  • 数か月後に自分がスタッフをするカンファレンス(VimConf 2018)があるので、その参考にできるものがあるか

の2点を心に留めつつ各発表を聞きました。

Steamゲーマーにとって衝撃的なオープニング

www.youtube.com

まずはオープニングセッション。 主催の人が会場の諸注意とか話すのかなと思ったら、ムービーが流れだしました。

動画作るのめっちゃ大変でしょ・・・ これだけでも半端な気合ではないなと圧倒されたのですが、これがなんとThe Stanley Parableっていうゲームネタなんです。

いち早くツイートしたら声優もThe Stanley Parableで演じてる人本人だって言うし、もう頭のネジいきなりぶっ飛んでない?何このカンファレンス?って感じでした。

特に楽しめた発表

1日目/2日目はなるべく休憩なしでセッションを聞きました。 その中でも、特に心に残ったものをいくつか紹介します。

証券トレーディング業務におけるExcel依存を脱却するプロジェクトで直面した技術的選択とプロジェクト運営の失敗

今回の全セッション中でも、とびぬけて「闇度」が高かった発表ではないでしょうか。 写真撮影は禁止、動画公開もなしのセッションでした。

タイトルに「Excel」とありますが、Excelのつらみというより完全なる上意下達組織に振り回される開発現場の苦悩、という趣の発表でした。

  • たくさんのExcelを手動で1つのExcelにマージしてある顧客に送る業務、これが毎日ある
    • 世界各国のトレーダーがExcelでデータを入力して送ってくる
    • 日本のトレーダーが1つのExcelにまとめて顧客に送付
  • 送付先は超重要顧客であり、少しのミスも許されない
  • 突如IT部門上層部から飛び込んでくる横槍
    • Excelを全廃して社内フレームワークにせよ(Excelライクなグリッドフォーム)
    • 4ヶ月以内に本番環境へ投入せよ、投入後は以前のワークフローを使ってはならない
  • 結果大失敗
    • Excel社内フレームワークには数式がなかったり、キーボードショートカットが違ったりした
    • 世界各国のトレーダーが新しい機能を使ってくれず、新旧のデータフローが混在
    • ミスが多発、結果ビジネス担当3人クビ

こうやって書いてるだけでも数え役満という感じで、涙なしには聞けない発表です・・・

私自身、受託でExcelを扱う運用の自動化プロジェクトをいくつか担当したことがあるのですが、Excelはプログラムを知らない一般の人にとっても浸透しているので、入力インターフェースとして超優秀なんですよね。「ちょっと凝ったことをやりたい」と思ったらだいたいなんとかなってしまうし、「Excelライク」なものに置き換える、というのは大抵破たんするというのは肌感覚としてあります。 また、受託でなく社内内製であったという点もよりつらみを増進させたのではないかと思います。社内の方がより無理があることを言えてしまいますからね・・・

このようなつらいプロジェクトの話を、勇気を持って発表してくれたことに感謝です。

質問タイムでは、敬意の念を込めて「地獄オブザイヤーですね」とコメントさせていただきました。

本発表について、上記のツイートがとてもよくまとまっていてよかったです。

つらくないマルチテナンシーを求めて: 全て見せます! SmartHR データベース移行プロジェクトの裏側

speakerdeck.com

発表者のぷりんたいさんとは、ISUCONにも一緒に出たりしている友人なのですが、知り合いであるということを完全に差し引いてとても良い発表であったと感じました。

発表の本筋はデプロイ時間の増加問題を解決するためのデータベース移行、という極めて技術的な内容でありながら、その合間合間に適切に自社サービスの事情や文脈が差し込まれて、体験共有型の発表としては理想的な形だったのではないかと思います。

自分は今はプログラマではなくマネージャとして働いているので、技術的な部分よりも、その周りのサポート、組織的な判断の部分がすごいと思いました。

データベースの移行のために数ヶ月の時間を1人に割り当てたり、1ヶ月間システム全体のコードフリーズをする、という決断はわかっていてもなかなかできるものではありません。

もし「直接的にはユーザの価値につながるものではない!そのリソースを機能開発に充てるべき!」という主張を声高にする人がいて、その人を説得できなければ終わりです。この判断ができず緩やかに死んでいくサービスは多そう。このあたりにSmartHRという組織の強さを垣間見ました。

Webサービスにて200週連続で新機能をリリースする舞台裏

speakerdeck.com

実はこの発表では生では聞くことができなかったんですが、一緒に行った同僚がslackで実況していて、あとから聴けなかったことを心底後悔しました。 私が所属している会社では今クラウドサービスを開発していて、昨年10月ぐらいから僕がプロジェクトマネージャをやっています。マネージャになるにあたってまずはスクラムの体制を作ったのですが、その時ひとつの完成形として脳内にあったのがMackerelというサービスでした。

毎週とまではいかなくても、早いペースで機能追加・改善を行い、それをブログなどわかりやすい形でアピールする。サービスそのものだけでなく、改善に対する姿勢を顧客に対してアピールできる状況を作りあげる。今はある程度形になってきて、かなりの部分をパクらせて頂きました・・・はてなさんには頭があがりません。

スクラムを作るにあたって、弊社の場合は既存のインフラ的な足回りとか監視の仕組み、運用ポリシーとかがとにかく何もなかったので、自分が今後カンファレンス等で発表できるとしたらそのあたりについて、かなあ・・・とか思ったり。

カンファレンス全体について

どうしてもワクワクしてしまう電子名札

もうこれについては何も言うまい。ガジェット、楽しいね・・・

会社ロゴを表示してみる。エモい。 f:id:aomori-ringo2:20180909154819j:plain

Twitterアイコンに使っているlainを表示してみる。激エモ。 f:id:aomori-ringo2:20180909155012j:plain

マルチセッションのキャパシティ問題

buildersconは、5つのセッションが並行して開催される形でした。

人気のセッションがどうしても偏ってしまい、ある部屋が早々に満員になってしまって入場できなくなる、という状況が何度かあり、この点は残念でしたね。 特にランチセッションは1箇所のみの開催なので、セッション前に部屋の前に長蛇の列ができてしまっていたり。

今回のbuildersconは、全部で約1000人ほどの参加者があったと聞きました。各セッション部屋のキャパシティを合計したものを全体キャパシティとすると当然満員になるセッションはでてきてしまうけど、かと言って全体キャパシティをあまりに少なくすると閑散としたセッションがでてきてしまうのも寂しいし・・・難しいですねえ。

参加を終えて

2日間ぶっ続けで様々な発表を聞くのはとにかく疲れた!ただ発表を聞いているだけのはずなのに筋肉痛はすごいし眠いしでくったくたです。運営スタッフ、発表者の方々お疲れ様でした。個人として楽しかったし、会社の人間としても得るところが多かったと思います。 (今回の参加費は会社が出してくれました)

さて、最初に挙げた、参加するにあたって心に留めた2点に思いを馳せてみます。

自分も発表することができそうか、やるならどんな内容がいいか

上でも書きましたが、今はプログラマではなくてマネージャとして働いているので、発表するならやはりそのあたりのことを話したいなあ。今はメンバーに助けられている部分も多いのだけど、うまくできているところもそれなりにあると思っているので、その辺アピールしたいです。

で、そもそも「発表することができそうか」という点なんですが、気合でCFPを出したら、あとは野となれ山となれって風に身をゆだねちゃえばいいんじゃないかなって思いました。 自分も今VimConfスタッフでCFP審査などに関わったのでよくわかるのですが、CFPに通ったんならそのCFPの内容を全力で発表すれば良いんですよ・・・だからCFPを出すまで頑張ろうと思います。みんなもCFP出そう。俺をひとりぼっちにしないでくれ。

VimConfに向けて参考にできるものがあるか

カンファレンスとしての全体の基礎的な構成の他に、buildersconには参加者を楽しませたいというホスピタリティが溢れていたのが印象的でした。 オープニングムービーにはじまり、電子名札、フォトブース、休憩中に流れるスポンサームービーなど、愉しめる仕掛けがたくさんありました。

VimConfは正直buildersconほどはスタッフがいないので、単純に比べることはできませんが、なんか面白いことをねじ込めたらいいなと思いますね。




そんなVimConfの一般チケット販売は9月17日です。今年はBram来日ということもあり、エポックメイキングな会になることが予想されます。前売りチケットは30分で売り切れてしまいました。みなさんぜひお越しを。 それから、VimConfには弊社(fixpoint)もスポンサードしてます。重ね重ねよろしく。





buildersconのレポート記事のはずが、VimConfと会社を気にするあまり、その話ばっかりになってしまった。

中年週末旅行

11/23~11/26に4日間、有志7人で開発合宿に行ってきた。

場所は開発合宿プランがある宿としては有名所である、千葉県東庄町土善旅館である。
今年の5月にも1度訪れたのだが、そのときは1泊2日だった。今回は3泊の大ボリュームだ。
メンバーは皆Yakを抱えすぎて精神が終わってしまった毛刈りのプロたちである。この合宿で慰労および腰が重くて手がつけられないYakの毛刈りを存分にやろうという趣旨だ。


東京から土善旅館に行くには、主に電車で行くかバスで行くかの2つのルートがある。
乗り換えが億劫なので我々はバスで行くことにしている。
f:id:aomori-ringo2:20171123084147j:plain

土善旅館に泊まる場合、午前中に東庄町に到着するように移動し、「いなよし」で昼飯を食うという決まりがある。
f:id:aomori-ringo2:20171123130657j:plain

かなりの分厚さのとんかつを塩で頂く。うまい。
f:id:aomori-ringo2:20171123120025j:plain

かつ煮もうまそうだった。次はかつ煮にしようかなどと思うが、たぶん次に行ったときは忘れている。
f:id:aomori-ringo2:20171123120054j:plain

バス停や昼食の店、旅館間の移動はなんと電話するとすべて車で送ってくれる。
土善旅館に来るときは恐るべきホスピタリティの高さにやられないように気を強く持つ必要がある。
到着すると、我々の団体名が掲示されている。
Vim様。
f:id:aomori-ringo2:20171123131801j:plain

「どちらがよいかわからなかったので」と言いつつ、「Vim様」と「VIM様」両方の表記を用意している。恐ろしい。
f:id:aomori-ringo2:20171123132152j:plain

開発合宿プランでは、開発部屋と宿泊部屋の両方が提供される。(開発と宿泊が同室というパターンもあるらしいのだが、そちらは未体験である。)
今回は開発部屋としておそらく土善旅館で一番巨大な部屋が割り当てられた。200インチの大型スクリーンと7人という人数にはあまりある60畳の広さを持つ贅沢空間だ。
f:id:aomori-ringo2:20171126215552j:plain

机と椅子はあるのだが、各位思い思いの体勢でもくもくと開発をする。
f:id:aomori-ringo2:20171123171133j:plain

開発合宿プランを予約するときは、いろんなアメニティを選ぶことができる。
中でもおすすめは「人をダメにするクッション」の異名を持つYogibo Max
全身を填めるとあっという間に身体が弛緩していき、進捗が吸われていく。
f:id:aomori-ringo2:20171126215836j:plain

次々と終わっていくVimmer達。
f:id:aomori-ringo2:20171123203347j:plain

Yogibo Maxと持ち込んだアーム、そしてセパレート式キーボードという悪魔のような組み合わせにより最強の環境ができてしまった。
f:id:aomori-ringo2:20171123140928j:plain

しかしそんな状況であっても、Yogibo Maxよりも強いアメニティが存在する。
アメニティの選択肢にはないのだが、任意のタイミングで猫が部屋に登場する。
f:id:aomori-ringo2:20171123143721j:plain

猫と一緒に開発する図。
f:id:aomori-ringo2:20171123153355j:plain

猫と一緒に開発する図。
f:id:aomori-ringo2:20171125231410j:plain

猫と一緒に開発する図。
f:id:aomori-ringo2:20171126221543j:plain

乗る猫。
f:id:aomori-ringo2:20171125091315j:plain

猫と一緒にYogibo Maxと毛布で寝る図。これ以上完璧な休日というものが存在するのだろうか。
f:id:aomori-ringo2:20171126221706j:plain

もはや何も言うまい。
f:id:aomori-ringo2:20171126221613j:plain


開発部屋に劣らないほど潤沢な広さを持つ食事部屋。
f:id:aomori-ringo2:20171123190114j:plain

3泊分の朝食・夕食は全て異なる献立で、どれもおいしかった。
f:id:aomori-ringo2:20171124191104j:plain

刺身。
f:id:aomori-ringo2:20171125202507j:plain

夕食後も各自進捗を出すためにノートPCに向かっていたのだが、200インチスクリーンの誘惑はやはり強烈である。
Nintendo Switchを持ち込んだ人間がいたため、スプラトゥーン2をプレイする様子が見られた。
f:id:aomori-ringo2:20171125155222j:plain


ChromeCastやFire TV Stickがあると、アニメなどを大画面で見ることができる。
f:id:aomori-ringo2:20171123203812j:plain

なぜかカードキャプターさくらの最終話を見る。
f:id:aomori-ringo2:20171125152129j:plain

放送から10年も経ってしまっていることに絶望しながららきすたも見た。
f:id:aomori-ringo2:20171124221334j:plain

風呂の写真を撮ることはかなわなかったが、基本的に24時間入浴することができる。
各部屋では充分な暖房設備が設けられているのだが、部屋間は少し距離があって深夜・朝などは特に肌寒い。来訪の季節によって、あたたかめのスウェットなどを持っていくのがおすすめである。
f:id:aomori-ringo2:20171125095917j:plain

宿泊部屋。
毎日2時ぐらいまで全力で進捗を出したのち、倒れ込むように寝ていた。
朝は死屍累々である。
f:id:aomori-ringo2:20171123202810j:plain

旅館への到着日、出発日だけでなく、近くの食事処に行くのにも車で送ってくれるのが土善旅館の恐ろしいところである。
2日目の昼食をとった「福寿し」では、海鮮丼とそばのセットを食べることができる。
f:id:aomori-ringo2:20171124131158j:plain

日中になんとデザートも提供してくれる。これがまたうまい。
f:id:aomori-ringo2:20171125153232j:plain

これもデザート。
f:id:aomori-ringo2:20171126130432j:plain


館内には温泉の遊具として鉄板の卓球も置いてある。しかしVimmer達は身体を動かすことに長けていないのでこのようなものには見向きもしない。
f:id:aomori-ringo2:20171125095817j:plain

卓球はわかるが、ファミリートレーナーが置いてある旅館というのは全国的にも珍しいだろう。
f:id:aomori-ringo2:20171125095810j:plain

明細。
f:id:aomori-ringo2:20171126104300j:plain

7人でこの金額だから、1人あたりは約25000円である。移動費や昼食代などを入れると、3万円強というところだろうか。
f:id:aomori-ringo2:20171126103729j:plain

このような3泊4日を経て、自分は半年前より作りかけになっていたWebサービスのアイディアを形にして、リリースすることができた。まだいろいろな機能ができていないので公開まではできないが、口頭で説明すれば一応使える、最低限のレベルまではたどり着けた。
合宿メンバーに共有したところ、どういう機能があるともっと面白い、とかこれはどういう使い方がされるべき、とかいろんなフィードバックをもらえて、さらにモチベーションが得られた。
これが自分の進捗であった。


帰り道のバスからの風景。明確な進捗も出せたことだし、実に清々しい帰宅であった。
f:id:aomori-ringo2:20171126151625j:plain

おまけ

スプラトゥーン2が面白そうすぎたので、帰路にNintendo Swtichを購入してしまった・・・
さようなら、私の進捗。
f:id:aomori-ringo2:20171126174634j:plain

ISUCON6予選 TOPで敗退するまでの道のり


supermomonga(@supermomonga), aomoriringo(@aomoriringo), purintai(@specepro_be)の3人でISUCON6に出場しました。
チーム名はSMAP(SuperMomongaAomoriringoPurntai)です。

ISUCON4には出場したことがあり、2年ぶりの出場となりました。

チーム構成

aomoriringoは3人の中では一番SQLを書いたことがあるっぽかったので、MySQLまわりを主に担当することにしました。
Rubyはほとんど書いたことがないのですが、コードを読んでここはN+1問題が発生してる、というのは普通にわかります。appコードを読みつつのSQL改善や、MySQLの解析ツール、パラメータチューニングなどをもろもろやりました。あとは強いて言えばRubyに閉じた中でのアルゴリズムの改善とか。

purintai は主にRuby app部分を担当。参照頻度の高いデータのRedisへの載せ替えや、Sikekiqによる非同期処理などをサクサクやってくれた。

supermomonga もメインはRuby app部分の担当ですが、3人の中で一番幅広い分野を触ってくれました。Redisの構築と設定、Ruby周りの解析ツール設定、書き捨ての便利スクリプトの作成、unicornの設定・・・などほんとにいろいろ。

チーム登録から本番まで

8/31 (3週間前)

supermomonga, purintai 両氏に「isuconどうですか」と誘ってもらい参加することに。
その日のうちに以下のことをやりました。

slackには本番までに必要そうなことや、参考になりそうな記事を各位投稿してやりとりをしていました。
前日から、とかではなく、3週間というある程度の時間の中で「ここはこういう風がいいのではないか」「環境はこうしたい」など各位の意見が見えることによって、ゆっくりと全員の意識共有が醸成できたのは大きかったなと思います。

9/1~9/8

  • 各自の得意分野について共有
  • 使用する言語の決定
    • supermomonga, purintai のメイン言語がRubyだったのでRubyにした
  • ISUCONの参加記事をslackに投稿し、とるべき方針や参考になりそうな部分についてやりとり
  • crowiの作成
    • 以降、調べたことをmarkdown形式でwikiとして保存できるようになった

9/8

  • aomoriringo がISUCONもくもく会@Wantedlyに参加
    • appの編集環境やデプロイツール周りなどの環境について考慮しておいた方がよい、ということを聞く
    • 使用されるIaaSについて
      • 今回はISUCONとしては初のAzure。インスタンスの作成や再起動試験などの概要について共有
    • 「最初の1時間で何をするか決めておく」という概念を学ぶ

9/9~9/10

  • supermomonga 邸に aomoriringo が訪問して練習会
    • matsuu氏によるISUCON5予選問題Azure版を構築
    • slackに#benchmark部屋を作成し、ベンチマーカーの実行結果を slackcat を使って実行完了時に結果が投稿されるようにした
    • 速くするためのappの変更よりも、実際の環境を触りながら使えそうな構築ツールのインストールや使用方法、便利そうなshellコマンドなどをwikiにまとめることを重点的に行う
    • redisの試用、各種解析ツールの試用

この時点ではMySQLのキャッシュについて深く把握しておらず、「再起動するとスコアが半分ぐらいになる・・・実行するごとにスコア上がる・・・なんで・・・?」とか言ってました。(クエリキャッシュの影響)

9/11~9/15

  • gitのrepository構成の決定
    • app repositoryとconf repositoryの2つを作成することにする
      • app repository (対象となるwebappディレクトリ以下を管理)
      • conf repository (/etc以下のmysql, nginx, redis等設定ファイルを管理)
  • 練習会の経験を得て、当日の進め方について話し合い
    • いきなりMySQLに初期状態のappで呼んでいるSQLを最適化するようなindexを貼ってしまうと、N+1解消するような変更をしたときにスコアとして改善が見えにくい。まずはappで見て明らかに無駄なところを直す

slackで書いてたことの例
f:id:aomori-ringo2:20160919003816p:plain

  • mysqlについて調べる
    • パラメータチューニング
    • B-Treeアルゴリズムについて
    • EXPLAINの読み方
    • 既存テーブルへのカラム追加手順

9/16-9/17

金曜日に有給を取得して supermomonga 邸に3人集合。(結果的に金曜日から月曜日にかけて3泊しました)

金曜日は既にたててあるISUCON5予選問題, 土曜日はpixiv社内ISUCON問題に取り組みました。

9/9,10に練習会をしたときと同じく、ツールの使用方法やテンプレになる処理をwikiにまとめながらの作業となるので、あまり厳密に時間の測定は行いませんでした。

過去問に取り組むときの方針

ISUCON4に出場したときは予選本番の前の週にチーム3人で集まり、本番と同じように時間を測ってISUCON3の問題に取り組んだのですが、これは失敗だったなあという思いがずっとありました。この時はメンバー全員がISUCON初参加だったし、事前に十分な予習やツール検討をできていたわけではありません。
本番と同様に10時~18時で行うとそのあとに何が良くなかったかを検討することもあまりできず、結局惨敗してしまいました。

その経験を踏まえて、今回は過去のISUCON予選通過組のブログを読み、有効な手段を試し、それぞれについて都度メンバーと共有をする、ということをたくさんやることにしました。
幸い今回は練習時間を多く確保することができたので、後半はwikiに書き留める作業が収束し、より対象のアプリや環境に集中して、高速化を検討することができるようになりました。

最終的にはISUCON5予選問題は5万点, pixiv社内isucon問題は19万点ぐらいになりました。

「最初の1時間にやることリスト」の作成

crowiはknowledge baseとしてはとてもよかったのですが、チーム全員が同時に編集するには使いづらい。
そこで、複数人で同時に1テキストを編集することができるhackmdを使ってやることリストを用意しました。

f:id:aomori-ringo2:20160919212426p:plain

やることリストテンプレ
現時点で何が完了しているのか、何がまだできていないのかをすぐに確認することができ、各自がここを見ながら「じゃあ次はこれやります」「よろしく」みたいなやりとりをしてました。

9/18

予選当日です。
8時ごろに起床し、食べ物・飲み物を買い揃え、机の配置などの準備をしました。


メモ用紙と筆記具もあると良いです。

本番の取り組み

やったことを全部記録しているわけではないので、効果があった取り組みをいくつか書いてみます。

Isutar部分の消去

今回はIsuda, Isutar, Isupamという3つのサービスが連携している、いわゆるMicroservice的な作りでした。
Isupam部分はバイナリであり、かつボトルネックとしては最後まで問題にならなかったので正直忘れ去ってました。
IsudaとIsutarはMySQL側にそれぞれデータベースを持っていたのですが、Isudaは2テーブル, Isutarは1テーブルしかない小さなデータベースです。また、レコード件数もそんなに多くない。
そこで、Isutar部分の処理はIsuda側に移し、データはRedisに全部載せるようにしました。
この辺はMySQLの状態を確認できるように準備していたmyphpadminが地味に貢献していて、各テーブルの構成やデータ量把握を各自がすぐ行えるのがよかったかなと思います。

Etagの活用

今回の問題は「はてなキーワード」的なサービス内容でした。
キーワードとその説明を1記事(entry)として投稿することができ、閲覧すると説明文の中に、サービスに保存されているキーワードと同じ文字列があれば自動でリンクタグを挟むというものでした。
参考実装では、記事の閲覧(GET)が呼ばれるたびに説明文の文字列に対してリンクタグを入れていくという処理があります。お約束の対策としては事前にリンクタグが挿入済みのHTMLをあらかじめ生成しておき、キャッシュしてGETが呼ばれたときに即座に返すというものですが、問題はキーワードのPOSTが全記事に影響を及ぼす可能性があるということです。
あるキーワードがPOSTされると、そのキーワードを説明文に含む全ての記事は影響を受けます。キーワードの中でも特に短いもの、例えば「9年」などはテストデータ中の4割近くに含まれており、POST時に全てのHTMLを再生成するというのは現実的ではありません。
そこで、記事(entry)テーブルに「modified_at」カラムを追加し、キーワードの追加/削除時に以下のようなSQLを発行するようにしました。

UPDATE entry
SET modified_at = '#{now}'
WHERE description LIKE '%#{keyword}%';

HTTPにはEtagというレスポンスヘッダがあります。サーバがレスポンスを送信する時にEtagフィールドをセットすると、クライアントは次回同じURLにリクエストする際に先ほど送信されたEtagをIf-None-Matchヘッダに入れてHTTPリクエストを送信します。
このEtagに先ほどの「modified_at」の結果を入れ、GET時にもしDBに保存されている「modified_at」と同じであれば内容が変わっていないとし、「304 Not Modified」レスポンスを返すようにしました。

非同期処理(Sidekiq)による直近投稿部分のキャッシュ生成

トップページ`/`が表示されると、最新の投稿20件が表示され、画面最下部の「もっと見る」をクリックするとさらに次の20件が表示されるという仕様がありました。
解析ツールを見るとこのトップページに対するアクセスがとても多いため、直近数十件のエントリに対して非同期でエントリの生成を回し続けるという処理をSidekiqを使って実装しました。

その他

説明文文字列のHTML化(htmlify)部分には結局、大きく手をいれることができませんでした。
今思えばキーワードすべてを「|」で並べた正規表現が遅いことや、差し替えをするときの方針などもっといろいろ考えられたはずなので、大変悔やまれる部分です・・・

結果

今回の最終結果を見ると、予選通過のボーダーラインは90214点です。
我々のチームは一時的に11万点を超えるスコアを出すことができたのですが、ベンチマーカーやキャッシュの問題か計測によってかなり揺れがあり、最後のスコアが89923点となってしまいました。
予選落ち組の中ではほぼトップのスコアかと思います。とても悔しい・・・

反省

Rubyは読めるけど書けない」、個人的な一番の課題はここです。
特にアルゴリズム部分を考える際、「Pythonなら書けるけどRubyだと・・・?」みたいなことをいちいちググったり人に聞いたりしていては話になりません。来年までにProject Eulerなどで訓練したいと思いました。
それから今回の問題ではデータベースのテーブル構成がとてもシンプルで、事前に調べていたSQLの知識がほとんど使えませんでした。JOINが1つもなかった気がします。
理解が完全であったかどうかはかなり怪しいところがありますし、次回の設問では揺り返しとしてテーブル構成が複雑な問題となるのではないかという感じがするので、SQL部分の知識も蓄えたいところです。

逆にチームとしては3週間前からのslackのやりとりと数日の泊まり込み合宿の成果がいかんなく発揮され、かなりスムーズに動けていたと思います。ここはぜひ次回にも活かしたいです。




おわりに

かなり真面目に取り組んだので、1000点差で本選に出られないのは忸怩たる思いがあります。
楽しかったけど、悔しかった。
悔しかったけど、楽しかった。
ISUCON7で会いましょう。

作業用BGM(現代音楽編)

この記事は作業用BGM Advent Calendar 2015 15日目の記事です。

普段は現代音楽とテクノミュージックを中心に聞いています。
現代音楽が好きなのでたびたび人に薦めるのですが、その度にドン引きされてしまいます。
「作業用BGM Advent Calendar」というのを見つけたので、これを機に私の知っている現代音楽の紹介を記事として昇華させ、人にこのような市民権の得られない音楽を直接押し付ける衝動を抑えたいと思います。
hoge

うるさいやつ

G.リゲティ「100台のメトロノームのためのポエム・サンフォニック」(1962)


György Ligeti - Poema sinfónico para 100 Metrónomos ...

メトロノーム100台「のみ」が使用された音楽です。YouTubeのものは8分程度の動画ですが、フルだと20数分あります。
前半はとにかくガチャガチャといっているのですが、だんだんとテンポの速いメトロノームが止まっていくと、個々のメトロノームの音がはっきりと聞こえてくるようになります。
ライヒのドラミングなどで使われているリズムを少しずつずらしていく手法、「漸次的位相変異プロセス」のよりプリミティブな形ですね。

K.シュトックハウゼン「ヘリコプター弦楽四重奏曲」(1993)


Helikopter-Streichquartett (Helicopter Quartet ...

正式タイトルは弦楽四重奏、4ヘリコプターとパイロットと4技師/4テレビジョン・トランスミッタ、4×3サウンド・トランスミッタ/段積みテレビ4組と段積みスピーカー4組を備えたオーディトリウム/サウンド・プロジェクショニストとミキシング・コンソール/司会者(任意)のための『ヘリコプター弦楽四重奏曲』」です。
カルテットの4人がそれぞれ4台のヘリコプターに乗り込み演奏します。ヘリコプターはコンサートホールの周りを旋回していて、観客は4人それぞれの演奏した音と映像の中継をホール内で聴きます。
映像では奏者がヘッドホンしていますが、これはお互いの音を聴いているのではなく「それぞれの小節の拍子をインパルス音で示してドイツ語で数える『クリック・トラック』」というものを聴いています。

個人的には人が叫びだすところらへんで「オッやばいな」という感じがします。

http://3.bp.blogspot.com/-yn2-xv3KMXw/U6OwHm96lxI/AAAAAAAAFag/lHc8B6kQPR0/s1600/DSCN2673.jpg
楽譜は4色に塗り分けられていて、これにも意味があります。
この曲は単独の作品ではなく、「光」という全部で7日間、28時間のオペラの一部です。スーパーフォルメルという1分程度の主題がオペラの様々な部分に展開されていて、ヘリコプター弦楽四重奏曲もそうらしいのですが、「光」の他の曲を聞いたことがないのでわからないです。
シュトックハウゼンの曲はとにかく金がかかるものが多くて、たしかCDも1枚20000円みたいな意味不明な値段がついていたと思うので買えませんでした。

K.シュトックハウゼン「天国への扉」(2005)


Heaven's Door Lugo - YouTube

「ヘリコプター弦楽四重奏曲」のところに補足的に付け加えるぐらいの気持ちでいたのですが、YouTubeで動画を見つけてしまったので貼っておきます。

打楽器奏者と一人の少女のために書かれており、「クラング」の中では例外的に演劇的な要素が加えられた作品である。演奏時間は約28分。
打楽器奏者が6つの板からなる扉を叩きまくる。床にも板が敷いてあり、奏者の足音によるリズムも加わって、リズムが次第に複雑になっていく。やがて扉が開かれると、演奏者がその中へと消えてゆき、今度はタムタムやシンバルなどの金属打楽器を演奏する。そこにサイレンの音も加わり、轟音が響くなか、客席に座っていた少女がステージに上がり、扉の中へ入ってゆく。打楽器とサイレンの音がフェード・アウトし、曲が閉じられる。

https://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%A9%E3%83%B3%E3%82%B0_(%E3%82%B7%E3%83%A5%E3%83%88%E3%83%83%E3%82%AF%E3%83%8F%E3%82%A6%E3%82%BC%E3%83%B3)#4.E6.99.82.E9.96.93.E7.9B.AE.E3.80.8C.E5.A4.A9.E5.9B.BD.E3.81.B8.E3.81.AE.E6.89.89_HIMMELS-T.C3.9CR.E3.80.8D.282005.29

この曲は音自体よりも、『サイレンの音も加わり、轟音が響くなか、客席に座っていた少女がステージに上がり、扉の中へ入ってゆく。打楽器とサイレンの音がフェード・アウトし、曲が閉じられる。』という曲解説の文章から想像される脳内イメージの方が面白いです。動画を見てみても特にここ面白くないんですが、字面で見た時の神秘性とか超然とした雰囲気がやばい。

「作業用BGM」の紹介のはずなのに曲よりも文章が面白いとかいって紹介するのどうなのというのがありますが、せっかく書いたので許して。

西村朗「2台のピアノと管弦楽のためのヘテロフォニー」(1987)

www.youtube.com

西村朗はとにかくこの曲ばかり聴いていますね。初聴だとおそらくピッコロあたりのとても高い音がぶつかりまくりながら上昇していく部分で厳しい気持ちになる方が多いと思いますが、慣れてくるとこの緊張感がたまらないんです。なんか麻薬やってる人みたいなこと書いてるな俺。
ちなみに西村朗は2015年、吹奏楽コンクールの課題曲のために「秘儀Ⅲ -旋回舞踊のためのヘテロフォニー」という作品を書いています。
「響け!ユーフォニウム」に曲名が出て勝手に盛り上がっていました。
http://livedoor.4.blogimg.jp/anico_bin/imgs/c/f/cf8fb607.jpg

矢代秋雄交響曲」(1958)

youtu.be
4楽章(23:20~)をよく聴いてます。私を現代音楽沼に引きずり込んだ元凶。
いまだに拍子がわからないです。5/8と7/8と11/8がまざっている。

三善晃「祝典序曲」(1970)

www.nicovideo.jp
22:40~27:15。タイトルはクラシック音楽にはありふれたものですが、はじめから異様なテンションで突っ走っています。
重要なのは、この曲は大阪万博の開会式のために書かれた曲なんですよね。これから夢のような万博が始まるぞ!って勢いの聴衆につきつけられるのがこれ。テンションが高いということだけは共通しているが、異常に禍々しい。
1970年の高度経済成長という時代背景などが関係しているのかどうかわからないですが、考えちゃいますね。これは誰にとっての「祝典」なんでしょうね。
三善晃は好きすぎて何挙げるか悩みました。他には「交響三章」「響紋」「魁響の譜」なども大好きです。


うるさい曲の紹介欲がだいぶ満たされたので、もっと作業用BGMとして受け入れられそうな曲についても書きます。

おだやかめなやつ

Steve Reich「Drumming」(1971)

www.youtube.com
おそらく今回のAdvent Calendar中で他の誰かが挙げることになると思いますが、私自身も大好きなのであまり気にせずに書きます。
Steve Reichという人は(本人は一度も言ったことがないはずですが)「ミニマル・ミュージック」というジャンルの大家です。同じリズムやフレーズを執拗に繰り返すというスタイルですね。(オスティナートと言ったりもする)
このドラミングはPart1~4が続けて演奏される曲で、それぞれPart1では膜鳴楽器(いわゆる太鼓)、Part2ではマリンバ+声、Part3ではグロッケンシュピール(鉄琴)+ピッコロというように、Partが進むにつれて使われる楽器の音が高くなっていきます。最後のPart4では全ての楽器が使われます。
「ドラミング」というタイトルの通り、曲中ではとにかく複数人が複雑に絡みあったリズムを鳴らし続けます。はまるとだんだんトランス状態になってきて作業が捗って仕方ない。
ライヒはこの他にも、ごく初期の「It's gonna rain」「Come out」「振り子の音楽」を除けばだいたい同じ作風で、不協和音が曲中に出てくることはほぼありません。安心して聞けると思います。

John Adams「Chairman Dances」(1985)

www.youtube.com

Steve Reichと似たものをもう1つ。動画のサムネイルで分かる人にはわかると思いますが、この曲は現代音楽家が発表した楽曲でありながら、「Civilization 4」というゲームのBGMとして採用されました。
John AdamsSteve Reichに比べれば作風が広いです。この曲が気に入った場合は、他に「China Gates」「Grand Pianola Music」などもおすすめです。

Morton Feldman「Palais de mari」(1986)

www.youtube.com
直訳だと「マリの宮殿」なのですが、日本での出版時に「廃墟の静寂」といういかす邦題が付けられました。
もうとにかく廃墟感がすごいです。日本の軍艦島や病院の廃墟というよりは海外のイメージがしますね。

三輪眞弘「愛の讃歌」(2007)

www.youtube.com

日本人が作ったガムラン音楽。ガムランで適当に探すと結構リズムが激しい物が多いんですが、この曲は終始瞑想的な雰囲気が漂います。
こういうの聴くとなぜか脳裏に小学生のときの記憶が。聖剣伝説2かな。
同じ作曲者の「鈴掛マタリ」も好き。

まとめ

こういうの聴きながらコード書いてます。
テクノ編は他の人がやると思いますが、もし僕がやるとしたらdub techno(not dubstep), tech dance, death technoあたりの紹介になると思います。