RubyKaigi 2018 に参加してきた

なんだ

RubyKaigi 2018 に参加してきた。

毎日飲み歩いたり牛タンを食べたりするためだけに行ったわけではないので、聞いた講演についてのメモを書いておく

1日目

Matz

keynote

ことわざをテーマにして話が進んでいった

「名は体を表す」からの `Object#then` の流れが鉄板すぎて笑ったw

アーロン

Analyzing and Reducing Ruby Memory Usage

アーロンの発表は、いつも自分の仕事の中で見つけた問題点について真面目に計測、調査を行って、根本的な原因までたどり着いてパッチを書くという事をしていて、本当にすごい。尊敬している

自分で書いたパッチと同じ内容が5年前にポストされていたのを見つけて、そちらをマージしたという落ちには笑ったけど、冷静に考えてみると、それはすごい事だぞという感じだった

joker & moris

Hijacking Ruby Syntax in Ruby

息がぴったりの Asakusa.rb の二人の発表を見た

この二人は他の言語にも詳しくて、すぐに「あの言語にあるあれ、Ruby にあれば便利なのにな」とか言って作り始めるし、Ruby の隅から隅まで使って動くところまで実現してしまうのがすごい

この内容でも、まだ中級編らしいので、2019 にどうなってしまうのか、いまから楽しみという感じだ

Piotr さん

TTY – Ruby alchemist’s secret potion

これ、結構すごくて、コマンドラインツールを WEB アプリケーションとかデスクトップアプリケーションみたいなものに見立てて、MVC みたいな考え方をコマンドラインツールに適用したフレームワークを作った、みたいな話だったと記憶してる

バルク転送のプログレスバーを同時に複数本 AA でシェルに表示するデモとか、見応えがあった

そのっつさん

Fast Numerical Computing and Deep Learning in Ruby with Cumo

CUDA を Ruby から使うための Cumo というライブラリを作っている話を聞いた

Numo の 75 倍、速くしましたって言ってて、すごく便利そうだなと思いましたまる

GPU のメモリーを欲しいだけ適宜切り出すための BFC という仕組みを再実装しているとか、そういう話だった気がする。こういう作れば出来そうだったから作ったら出来ましたみたいなやつ、すごい

iwao さん

Exploring Internal Ruby Through C Extensions

Ruby の C Extension を書くためのチュートリアルみたいな内容から、Ruby の内部についての話を聞いた

Ruby の組み込みライブラリとかは良く出来ているので、速度を求めて C 拡張を書いても、大抵太刀打ちできないという話をしていた。振り返ってみると、これが最終日のこくぶんさんの話の落ちの伏線になっていて面白い

LT

だいたい面白かったんだけど、最後に usa さんが赤いツノをつけて出てきて Ruby が毎年死ぬという話をした印象が強烈で、ほぼそれしか覚えてない

2日目

すとうさん

My way with Ruby

すとうさんプロダクトの博覧会という感じの話を聞いていた

必要なものを作り続けていたら、めっちゃたくさんできてた、みたいなの、本当にすごい

すとうさんから生まれる自由ソフトウェアが、確実に社会を豊かにしていて、尊敬する

Kirk さん

It’s Rubies All The Way Down

これ、なんか、ほとんど分からなかった……

ささださん

Guild Prototype

Ruby 3 に提案されている並列処理をサポートする仕組みの話を聞いていた

guild 間のメッセージング、現状の感じだと治安を維持したまま書く自信がない気がする…… 受け取るべきでないものを受け取ったり、してしまいそう……

これで書いたコードをどうやってテストしていけばいいのか、いまいちイメージが湧かなくて困る……

せきさん

extend your own programming language

Ruby で作る Ruby、についての話

この本、一通り写経しただけで、改造とかはしなかったので、わしもなんか変な機能を入れたりして楽しんでみたいなと思った

soutaro さん

Ruby Programming with Type Checking

Steep という型管理のシステムについて

型の scaffold みたいなので型定義をゴソっと作ってくれるんだけど、だいたい any 型な中、`hoge?: boolean` みたいに ? がついてたら boolean をとりあえず候補にしてくれるのがちょっと賢いと思った

udzura さん

コンテナ技術、プロセス制御技術を駆使して、1つのサーバーに何万ものサービスを収容して運用していくための研究についての話を聞いていた

未来のコンピューティング環境について、かなり先を見据えて取り組んでるんだなという感じだった

まめさん

Type Profiler: An analysis to guess type signatures

`1..` みたいな終端を指定しない range を作った話を聞いていた

なるほど、えんどうれすレンジ……

コミッターたち

Ruby Committers vs the World

わいわいしていた。`Object#then` どうなってしまうの……

3日目

Benoit さん

Parallel and Thread-Safe Ruby at High-Speed with TruffleRuby

めっちゃ NES(OptCarrot) を動かしてた

NES が起動してから、数秒間は 10fps くらいしか出てないのに、JIT が効いてくると 200fps くらいまでブーストされて笑った

定数からなる処理をするようなコードがどんどんシンプルになって、最終的に定数になるのがすごかった

ITOYANAGI さん

IRB Reboot: Modernize Implementation and Features

IRB を良くする話を聞いていた

英語の発表だったけど、わしにとっては大変聞き取りやすい英語でよかった(RubyKaigi 2018 で聞いた中で一番聞き取りやすかった)し、導入から本題へのつなぎも最高に面白くて、話すのが異常にうまいなと思った

REPL の中で、文や式が続いてるのか、終わってるのかを判定したり、今、何レベルのネストなのか、というのを知るのは地味に大変というような話だった

ITOYANAGI さんのすごいところは、みんなが「ここのダメな部分は、もう、こういうもんだから仕方ないね」みたいな感じになってるところについて「いやいや、やればいいだけだから」みたいな感じでゴンゴン修正して改良を実現してしまうところで、めっちゃすごいなと思っていつも見てる

こくぶんさん

The Method JIT Compiler for Ruby 2.6

こくぶんさんの JIT への取り組み方、すでに Ruby の中にあるものはあるだけ有効活用しながら、本当にやらないといけないことにだけ注力して結果を出していてすごいなと思う

GC を気にしながら C 実装を追加するより、JIT が効いた Ruby クラスを使う方が速かった、つまり C langage is dead. って落ちは本当に最高だった

Shugo さん

Build your own tools

shugo さんプロダクトの博覧会というような話だった

そして自由ソフトウェア

ようちゃん

How to get the dark power from ISeq

ようちゃんはいつも新しいことにチャレンジしていてすごい

オブジェクトとして組み上げた ISeq を実行するデモ、良く考えるとすごいなと思った

デモが成功した時に最初に拍手したの、わしわし

TRICK

人外魔境という感じの発表会だった

優勝の「予約語だけで書いてエラーにならず、かつなにもしない」みたいな虚無のプログラム、発想がすごすぎて笑った

FINAL とは言ってたけど、もしまたやるなら、エントリーだけでもしたいなという気持ちになった

やんちゃハウス

2017 の広島に引き続き、Airbnb で家を借りて、9 人でシェアして4泊していた。みなさんの予想に反して、毎日 03:00 には就寝していたし、だいたい、全員毎日朝一の講演には間に合っていたようだ

会場からも仙台駅からも遠かったので、居住者以外のお客さんは1名しか来られなかったけど、それはそれでよかったんじゃないかなという気がする

様々な条件が整えば、来年も実施しようかなとは思っているので、気になる人は情報をチェックしてほしい

まとめ

最近 TypeScript を使っていて、型+エディタの機能の良さというのは分かっているつもりだったんだけど、本質的な型の議論について、実のところ全然意味がわかってないんじゃないかと言う気がしているので、ちょっと近いうちに型について語れるくらいになろうという気持ちになった。型について語らないと

カテゴリー: 未分類 | コメントする

ISUCON7 に参加してきた

結論

  • tagomoris さん、joker1007 さんと共に、意気揚々と参加したものの、敗退した
  • モリスさんのレポート -> ISUCON7予選で敗退した – たごもりすメモ
  • joker さんのレポート -> 如何にしてAsakusaから来た面々はISUCON7の予選に敗北したのか – joker1007’s diary
  • yancya がやっていたこと

  • DB のインデックスのチェック
  • 各 SQL の EXPLAIN をチェック
  • MySQL の設定見直し
  • アプリケーション内の N+1 クエリの解消
  • 結局、あんまりコミットできていなくて、N+1 も解消漏れがあったのを最後の方で気づいて着手したものの、書き終わったのは Time up 後だった

    競技中の様子

  • 配られたサーバーへ ssh で接続しに行くときに、全員で一気に繋ぎに行って、何回か認証ミスったら ban されてしまって、めっちゃワタワタしてた。予め GitHub のチーム用リポジトリの Wiki に公開鍵を集めて「最初の接続はシュッとノータイムでやっちゃおうね」って言ってただけに、ここで出鼻をくじかれて手に汗をかき始めた
  • ほぼ初手で「画像を DB に BLOB で入れてんのは無理でしょ」となって、モリスさんが「画像は Nginx でいいかんじに配信するようにするので任せて」といってサッと実現していた(が、この時の作業方法が敗因になるとは、このとき誰も思わなかったのであった)
  • joker さんは「未読管理は RDB じゃなくて Redis でしょうね。任せろ」という感じで未読管理部分の引きはがしをバリバリやっていた
  • わしは一通りインデックスのチェックをしていたけど、結局インデックスが足りなかったのは基本的には2箇所くらいだったので、ぺぺっとインデックスを足したりしていた。そのあと、N+1 クエリを解消する為に「なんでも1SQLでやろうとするマン」をやっていた
  • 敗因

    モリスさんとジョーカーさんの blog の方に詳細に書いてあるけど、アイコンへのリクエストに対して適切に(適切に、とは) 304 を返せなくて回線が詰まってしまったため、ベンチマーカーの負荷レベルが上がりきらなくて、スコアも上がらなかったという事。最終的にスコアは 90,000 〜 110,000 くらいにとどまった

    反省

    手が遅かった

    振り返ってみると、わしがやってたことって遅くとも最初の3〜4時間で終えてないといけないくらいの量だったので、単純に手が遅いなと思った。他のメンバーのコミットで手元の環境が動かなくなってしまったりしてハマったりしてたけど、なんか場がピリピリしてたので気軽に「助けて」と言いづらかったのが結構辛かった

    WEB の事に疎かった

    競技が終わって、他のチームから画像の件について「こういうことだったんだよ」って言われれば「あー」とはなるんだけど、普段、そんなにタイトな WEB サービスを運営していないので、そういうことに自ら気づくという力が本当に無いなと実感した

    やんちゃが足りなかった

    なんかベンチマークを実行するときに「負荷をかけるサーバーを3つの中からいくつでも選択して下さい」って書いてあるのを見て「ということはロードバランサーとかでアクセスするのかな」と思ったんだけど、特に他のメンバーにその話題を振ったりしなかった。なんか忙しそうだったし。結果論でしか無いけど、もしこんな感じの雑談をしていたら「ロードバランサーね、うーん、あー、CDN!?」みたいになったかもしれない

    画像を各サーバーに配るときの話をしていたとき「rsync とかでやるのかな」と思ったんだけど言ってなくて、もし言ってたら「あー、timestamp あー」ってなったかもしれない

    ベンチマークの実行が結構サクサクできて快適だったし、何の用も無いのに適当にバンバン実行して、たまにふざけてサーバーを1つだけ選択してベンチを流してみたりしてみれば良かった。これも結果論だけど、もしも1サーバーだけを対象に実行していたら、画像ファイルが1種類につき1ファイルしかないので、304 をモリモリ返す事が出来て、3台の時よりもスコアが上がったかもしれない。そこで「あー?あー!」って気づけたかもしれなかった

    チームに誘われたとき「普段 Asakusa.rb で一緒だし、慣れたメンバーで作業するのが良いんだよ。だから来て」と言われて参加したのに、実際競技が始まったら、借りてきた猫のようになってしまって「少しでも、わしができる SQL について貢献しよう」みたいな感じで小さくまとまってしまった。6時間経過時点くらいで「ここらで30分くらいビール休憩しようぜー」とか言えれば、何かが変わったかもしれないとか、色々考えてしまう

    思ったことをバンバン口に出していくことが必要だったと、悔やんでも悔やみきれない。これは開発現場に限らず、今までの人生、いろんな局面を振り返ってきて、散々身に染みてきたことのはずだったのに生かせていなくて辛い。「思ったことをバンバン口に出していく」これをさらに心に刻む yancya であった

    しめくくり

    ISUCON 運営の皆様、大変勉強になりました。良い機会をつくって頂き、ありがとうございました

    tagomoris さん、joker1007 さん、大変楽しい会に誘って頂き、ありがとうございました。楽しかったし、勉強になりました

    カテゴリー: 未分類 | コメントする

    大江戸Ruby会議06の早押しクイズのツールを作った

    概要

    大江戸Ruby会議06の「フルタイムコミッター大戦」という企画のために、早押しクイズアプリを作ったという話です。淡々と小学生の日記みたいな感じで綴っていきます

    コードはここにありますので、興味があれば読んでみてください。結構小さく作れました

    経緯

    3/14 の Asakusa.rb のミートアップで、なんかガチャガチャやってる人がいたので、のぞいて見たら、早押しクイズのギミックを作ろうとして苦労してるようでした(コメント欄で Amazon Dash と Action Cable を使って作ろうとしている様子がうかがえる)

    ただ、なんか Dash ボタンは遅延がひどくて(1〜10秒)「こりゃダメだね〜」って感じでした

    スイッチ

    そこで「Dash ボタンもナウいですが、多分、これもまだナウいですね」って感じで、Nintendo Switch を取り出して、まず一時間くらい動作確認をしました

    Nintendo Switch の両側についている着脱可能なコントローラー「Joy-Con」は、それぞれを Bluetooth 接続で PC に Gamepad として接続できるという話を聞いたことがあったので、試してみることにしました

    横にあるペアリングボタンを長押しすると、Mac の bluetooth 管理ウィンドウに Joy-con(R) みたいな名前で出てきたので、あとは「ペアリング」ボタンを押すだけでペアリングできました

    Gamepad API

    Joy-Con を Gamepad として接続できたまでは良いけど、こっから、例えば各ボタンをキーボードのキーに割り当てるアプリとかを使って割り当てた上で、その状態を前提に早押しアプリを作るのは面倒くさそうです

    そこで色々悪あがき的にググって見つけたのが Gamepad APIでした。

    これこそ、まさに「顧客の求めていたもの」という感じの API だと思ったので、早速 Chrome を開いて、コンソールで`navigator.getGamepads()` を叩いてみました。すると、ちゃんと [Gamepad, null, null, null] みたいな Array が返ってきましたので「うおー、すごい。これはいける感」という感じでテンションが上がりました

    requestAnimationFrame で Gamepad API を呼びまくれば、Gamepad として認識してるデバイスのボタンやスティックの状態を取得できるというものなので、Joy-Con に限らず、Gamepad ならなんでも使えます

    誰が作るの

    気がつくと 22:00 を回っていたので「そろそろ帰ります〜」と言って帰ろうとしたんですが、ふと気になって「あの〜、この Joy-Con 使った早押しアプリ、実現できそうなのは分かったけど、誰が作るんですかね」って言ったら「さぁ〜、誰ですかねぇ(チラッチラッ」って感じだったので「あ、はい」という感じでした

    「リポジトリがあるならプッシュしていくんで」って言ったら、秒で「(ガチャガチャガチャ!)作りました!owner にしておきましたよ!」って言われて、すごく早いなと思いました(小並感

    最初の進捗

    帰宅して、早速作り始めましたが、それっぽいものは本当にすぐにできました

    翌日には、ほぼ早押しの形になっているようです

    GitHub ID を入力したらシュッと GitHub アイコンが出てくるようにしたら面白いかなと思って、そういう風にしました

    新たな要件

    他のメンバーと相談していると、ソラシティ(大江戸Ruby会議06の会場)のネットワークの状況があてにならないとのことで、アイコンの取得についてはインターネットを使わなくてもできるようにした方が良さそうということになり、これが最初の issueとなりました

    ローカルの index.html を開いて起動するというコンセプトだったので、色々制約があり、結果的にすごい力技で解決しました

    issue/2

    「ジャストアイディアです」って普通に使ってる人を初めて見て笑いました

    得点の管理は簡単だったのでシュッと出来ました

    音のある世界

    会場のスピーカーにつなぐ事ができそうとのことだったので、SE も追加することにしました

    早速、Garageband を使って適当な SE を作って PR にしてみました

    すると「クイズといえばウルトラクイズですよね〜、ウルトラクイズっぽい音が出たらな〜」みたいなコメントが来て「で〜す〜よ〜ね〜」という感じになりました

    その後の様子です

    結果的には結構近い仕上がりになったと自負しています

    とりあえず、誰かに見せたい

    本番は2日後ですが、当日参加しない人に見せて自慢したくなったので、姫乃たまさんのイベントに行って、そこで飲んでいた人たちに見せびらかそうとしました

    するとどうでしょう。なんと Joy-Con がペアリングできない

    Mac の Bluetooth 管理画面を見ると、大量の Bluetooth デバイスの名前がズラっと並んでいて「あっ、これは多分混線的なやつだ」と思って、ちょっとよけたところでペアリングして、こと無きを得ました

    その場にいた人たちには結構ウケたので、これはいけるぞという気持ちになれました

    そして本番へ

    フルタイムコミッター大戦の直前、嫌な予感がしていた

    しかし尿意が訪れていたので、ピューっとトイレに行ってサッと帰ってきた

    すると、案の定、演台の前でわちゃわちゃしているメンバーたち曰く「ペアリングができない」

    二日前に通った道だわー、かーっ、通ったわー

    慌てず、サッと Mac と Joy-Con を外に持っていって、みんなで一つ一つペアリングして戻ってきました

    そして始まるフルタイムコミッター大戦

    フルタイムコミッター大戦、早押しクイズをやるとしか聞いてなかったけど、どう見ても超次元な早押しクイズになってて死ぬほど楽しかった

    Asakusa.rb

    なんか楽しいイベントがちょくちょく発生して楽しいので、東京の東側の人はもちろん、そうでない人にも、いろんな人に訪れてほしいコミュニティです。Asakusa.rb いいよ Asakusa.rb

    カテゴリー: イベント | コメントする

    Wake on LAN の思い出

    これは、自宅サーバの思い出 Advent Calendar 2016 19 日目の記事

    例によって、使い古した自作デスクトップパソコンに Linux をインストールして、自宅サーバーとして運用していた時期がある

    当時、パソコンは自宅では自作 PC、外では ThinkPad という感じで生活していた

    ThinkPad には PHS を付けて出先でもインターネットに繋がるようにしていたが、出先でも自宅の ADSL 回線と PC を使った作業をしたくなることがあった

    そんな時、役に立ったのは、Wake on LAN という仕組みだった。Wake on LAN は自宅サーバーに SSH で接続して、Wake on LAN スクリプトを実行すると、自宅の LAN 中にマジックパケットがブロードキャストされ、あらかじめ設定を仕込んでおいたデスクトップ PC が起動するというような仕組みだ

    Wake on LAN を知った時はとても感動して、意味もなく出先から何度も起動と終了を繰り返したりしていたものだ

    そして、今思い返すと、出先からデスクトップ PC にリモートデスクトップで接続して、一体どんな作業をしていたのか、全く思い出せない。実は必要なかったのではないか

    という思い出を自宅サーバの思い出 Advent Calendar 2016という企画を見て思い出したが、今の自宅で試してみようとしたところ、「所有パソコンが全て WiFi 接続なので誰も Wake できない」という現実と向き合い、思い出は思い出なんだなという感傷に浸った昨日の誕生日であった

    カテゴリー: パソコン | コメントする

    JAM Akihabara

    この記事はメイド Advent Calendar 2016 の 18 日目の記事です

    実は、わしはメイド喫茶にそんなに詳しくなくて、唯一 JAM Akihabara という店にだけ通っています

    初めて JAM に行ったのはいつだったか、過去の日記を漁っていたら記録が出てきました。ちょうど 12 年前、2004 年 12 月 19 日の 02:30(深夜営業)でした。当時、ThinkPad X31 PHJ を買ったばかりで、意味もなく、外出先でパソコンをいじりたい盛りだったので、ちょうどいいスペースを探していたのでした。そして 12 年経った今も大して変わっておらず、JAM で MacBook Pro をいじっているのでした

    (当時の写真)ThinkPad とリラックマ

    ここから、なぜ 12 年間も JAM に通い続けたのかという理由を延々と書く予定だったんですが、WiFi が使えてパソコンしやすいから、以外の理由があんまり出てこなくて困ってます

    まぁ、メイドが「ニャンコロピー♫(もっと追加注文しろコラ)」みたいな感じで絡んできて作業の邪魔になる、という事が全く無いのがありがたいです。※他のメイド喫茶の悪いイメージを元に書いています

    あ、すごい偶然なんですけど、今日、わしの誕生日です。毎年、みなさまのおかげで生かされております。毎度どうもありがとうございます

    カテゴリー: 未分類 | コメントする

    RubyKaigi 2016 に行ってきたの

    ガーっと RubyKaigi 2016 を振り返っていく

    セッション

    Ruby3 Typing

    「絶対に型を書きたくないでござる」について

    流行に流されず、Ruby らしい型のありかたを模索して、後悔の無いようにしたいという気概を感じた

    dRuby in the last century.

    なんか途中からハンズオンっぽい感じになって、久しぶりに dRuby 触った

    やっぱり dRuby って神がかったソフトウェアだなって再確認した

    Welcome to haconiwa – the (m)Ruby on Container

    英語での発表だったの、凄かった。

    matsumotory さんの事好き過ぎでは

    A proposal of new concurrency model for Ruby 3

    Thread より間違えにくい Guild についての説明

    オブジェクトへのアクセス権をやり取りしながら処理を進めていくみたいなやつ

    Isomorphic web programming in Ruby

    Ruby でサーバーもフロントエンドも書いちゃうぞというやつのライブコーディング

    Vim によるライブコーディング、本当に凄かったので後で聞いてみたら、かなりの練習を要していて、直前まで時間内に収まるように内容を削ったりしていたらしい。

    「電気グルーヴみたいに、ピエール瀧みたいな奴に喋らせれば、ライブコーディング側はコーディングに集中出来るかもね?」って言ったら「じゃあお前がピエール瀧やれ」って言われた

    Unifying Fixnum and Bignum into Integer

    2.4.0-preview1 で試したら、本当に

    1.class #=> Integer

    1.is_a?(Bignum) #=> true

    になってた

    Fearlessly Refactoring Legacy Ruby

    旧実装と新実装の振る舞いを比較しながら、キチンと差異が無いようにリファクタリングしていく術を紹介していて「あっ、あっ」って感じで身が引き締まります感が出た

    How to create bindings 2016

    こちらもライブコーディングという感じに bindings を実際に作ってみて説明するスタイルの講演だった

    「えっ?えっ?」という感じで2行くらいしか書いてない Ruby プログラムが C ライブラリの bindings として動いていて、会場中がザワザワしてた

    Exploring Big Data with rubygems.org Download Data

    BigQuery と聞いて、どんなもんじゃろと思って聴講した

    BigQuery の GitHub open data、そういやそんなのもあったなと思って、打ち上げの LT(後述)のネタに使わせてもらった

    Modern Black Mages Fighting in the Real World

    とにかく、強敵が現れる度に、さらに凶悪な黒魔術を編んでいく活動についての紹介

    「何よりも強い何かが必要」のところでテンションがマックスになったw

    最後には黒魔術を正当化する良い話で締まった

    Optimizing Ruby

    「部分的に 400 倍速くなりました」で、つかみはバッチリ

    ひとまず最適化を施して実行して、最適化が意味なくなるような再定義があったら実行し直せばいいという感じ

    話を聞いていると、まだまだ伸びしろがありそうな気がしてきて、本当に Ruby3×3 に向かっているんだなという感じだった

    Dive into CRuby

    「VC++ 2015 で隠されてしまった構造体、でも必要だから仕方なく機械語を頑張って読んで特定した」的な、昔の鬼女スレの人達みたいな事を言ってて怖かった

    pid2line.rb っていうツールが、なんか凄そうだから凄そうって感じだったけど、後から解説してくれているブログを読んで、多少分かった。

    すでに実行してしまっているプログラムの状態を調べられるとか、夢みたいに便利で凄い

    できごと

    アフターパーティーで LT やった

    応募者多数、会場の撤収時刻厳守、日本語分からない人多数、という状況につき「日本語での LT は後回し&3分間でよろw」という条件になってしまった

    超早回しで発表したものの、何人かは楽しんでくれたみたいなので良かった

    発表資料はこちら

    川の治安問題

    アフターパーティーの後「いつものメンバーで2次会行っても、せっかく京都まで来た甲斐が無いよな」と思って、1度離脱して面白そうな集まりが発生するのを待ってた

    祇園の辺りをパトロールしながら Twitter を見ていたら、面白そうなオーラを放つツイートを発見したのでいt(日記はここで途切れている)

    とにかく酷かった

    ふりかえり

    色んな人と話をしたり、LT 準備を通じてコードやテキストをゴリゴリ書いたり、まぁ充実した5日間だった。

    細かい事だけど、毎晩色んな人と飲み歩くのは良いとして、翌朝以降に誰かと会ったときに「昨晩誰と飲んで何時に帰った」みたいな話ばかりするのは時間がもったいないのでやめたい。だって、カンファレンスのときに毎晩飲み歩くのは当たり前なので「実は風呂入って歯みがきして寝たんですよw」って言ってるようなもんでしょ

    カテゴリー: 未分類 | コメントする

    yancya の糖質制限日記

    この日記は糖質制限 Advent Calendar 2015の18日目の記事です

    最初にしくじった話

    夏頃、思い立って炭水化物を全く取らないってのをやってみた

    どんどん体調が悪くなって、ふらふらして倒れそうになって、命の危険を感じた

    結局このあと、滅茶苦茶暴飲暴食した

    というわけでいきなり無計画に無理な感じではじめると危なそうという事がわかった

    あとから成功した話

    とりあえず、無理なくやるにはどうしたら良いか、かみさんが考えて下記のような運用をしてくれた

    (1)朝食は普通に食べる

    (2)昼食(お弁当)はご飯を半分にする

    (3)夕飯は白米抜き

    これは結構功を奏して、腹回りの脂肪がモリモリ減っていって、11 月の健康診断では腹囲はメタボ域を外れ、BMI も 22 になった

    ただ、これには毎日退勤の後に虎ノ門から秋葉原まで5kmのウォーキングをしていた効果も大きいと思われる

    油断してリバウンドした話

    健康診断が終わった後、調子に乗ってラーメンとかスイーツとか食べまくってしまって今にいたる(3kg 増)

    「食欲の秋」とか言って自制心が無くなると、ろくなことにならない

    まとめ

    警察の指導に従って、極力糖質を抜きつつ、チートデイで対応するというのを一度やってみないと「糖質制限やったことある」とは言えない気がしてきた

    わしのやってたのは糖質制限ではなかったのではないだろうか

    以上

    12 月 18 日

    今日はわしの誕生日なんですが、毎年「ウィッシュリストに入れてるからには読めよ」などと言いながら難しい本を送りつけて下さる方が続出しております。ほんと勘弁して欲しいですね

    カテゴリー: 未分類 | コメントする

    絵本の作者買い

    この記事は、お子さん、どんな本読んでる? Advent Calendar 2015 の 18 日目の記事です

    今年のヒット絵本

    とりあえず、今年のヒット絵本について、紹介しておこうと思います

    『うどんのうーやん』やはりこれですね。chezou さんのどんな子供も好きになる、「うーやん」を広めるたった1つの方法でも紹介されていましたが、本当に頭おかしくて最高の絵本です。

    他にも、おなじ岡田よしたか先生の『ちくわのわーさん』と『こんぶのぶーさん』というシリーズ作品も大変頭がおかしくて最高です

    結局、『うどんのうーやん』が家で大ヒットしてから、本屋に行く度に「あっ、この絵は!」とか「うーやんっぽい!」という事で『わーさん』『ぶーさん』も購入することになったわけです

    さらに、別の出版社の岡田よしたか先生作品『はずかしがりやの バナナくん』という本も、購入しました

    読書家のみなさんなら「作者買い」というのは日常茶飯事かと思いますが、絵本の世界にもそれがあって、それどころか子供は作者名がわからなくても表紙の絵柄で「あれっぽい!」「それっぽい!」という感じで指摘しますので、特に顕著なのではないでしょうか。現に、我が家には現在岡田よしたか先生作品と、せなけいこ先生(『ねないこだれだ』の)作品で溢れています

    そんなこんなで、絵本の頃から「作者買い」をする癖を付けて、この先の豊かな読書ライフに繋げて欲しいなと願うばかりです。以上!

    12 月 18 日

    今日はわしの誕生日なんですが、毎年「ウィッシュリストに入れてるからには読めよ」などと言いながら難しい本を送りつけて下さる方が続出しております。ほんと勘弁して欲しいですね

    カテゴリー: 未分類 | コメントする

    大江戸 Ruby 会議 05 に行ってきた

    疲れが抜けてきたので、大江戸 Ruby 会議 05 に行ってきた記録を blog に書いておく

    基調講演

    Windows 環境の Ruby のガーディアン、usa さん

    あいおーのはなし」グレートトークだった。

    「WIndows NT 以降は POSIX」って言葉だけ頭にあったので、つぶやいてみたら、拾って言及してくださった。

    「闘うプログラマー」読みかけのまま積んでるので、この機会に読み切りたいと思った。

    LT

    Ruby コミッターが5分ずつ原液みたいな濃さのトークを連ねていくというアタマノオカシイ企画

    大江戸 Ruby 会議(Asakusa.rb)でしかできない、特殊な企画だと思う…

    なかださん

    (My) Best Commits of the year 2015 がすごくて、こういうのが聞きたかった。

    mame さん

    超絶技巧プログラミングと Ruby 3.0 (大江戸 Ruby 会議 05 コミッタ LT)も、期待してた以上の内容で、とても良かった。予め持ち込んでおいた超絶技巧本にサインもしていただいた。

    nagachika さん

    Functional Music Compositionは意表を突かれた。『アンダスタンディングコンピュテーション』を読むと、この境地に至れるらしい。今、会社で読書会をしているので、わしもSKIコンビネータ計算厨の極みへ到達したい。

    Ninja Talks

    かねこさん

    励まし合いながら当日に臨んだ発表者仲間のかねこさん。Rails on Two DBs という発表だった。

    いろんな RDBMS における database, schema の扱いの違いを Rails で吸収するのが厳しいみたいな話で、みんなで辛さを共有して心を楽にしようという感じだった。

    という感じだったが「複数 DB やめればいいじゃん」という鋭い質問が出て緊張した。

    発表やった

    SQL 脳から見た Ruby というタイトルで20分しゃべることができた。

    発表時のタイムラインの様子を見るに、一部の人には好評だったようでよかった。

    発表が終わった後は、しばらく気絶してた。

    発表の準備をするのに力を貸してくれた家族や周りのみなさんに、圧倒的感謝

    地獄シリーズ

    意識が戻った頃から、地獄っぽい Ninja talks が連続して行われていた。スライドの公開も無い、つまり本当の地獄の話達だ。

    Special Talk

    江渡さん「共創コミュニティのデザイン」

    Ruby コミュニティについて、にわかなわしにとって、昔からの流れをキャッチアップする、大変ためになる話だった。この場に居合わせて、本当に良かった。

    懇親会

    Shapeshifter について質問してくれる人が多くて、ものを食べる暇も無く(ビールは飲んでた)しゃべりまくってたら3時間近く経ってて、すぐ終わってしまった。

    発表者になると懇親会が充実するという話は本当だった。

    帰り

    懇親会二次会に行きたかったけど、一次会で全く食事をしていなかったため、空腹に耐えられずに東京ラーメンストリートへ。

    食べたらお腹いっぱいになって眠くなったので帰宅しました

    カテゴリー: 未分類 | コメントする

    YAPC::Asia Tokyo 2015 へ参加

    我々にできるOSSとそのコミュニティの育てかた

    tagomoris さん

    間口が最大になる英語以外、選択肢はないという話はもっともだと思った

    version 1.0 の意味についての話について「あー」と思ったので、Rebuildfm #68 のtagomorisさん回を再度聴いた

    質疑応答、異常に良い質問が出てきて「うおっ」と思ってたらt_wada さんだったらしくて納得。講演後に演壇の前で、この世の終わりみたいな顔をした t_wada さんが tagomoris さんと話をしていたのが印象的でした。

    OSS 開発、あれやこれやしているうちに身動きがとれなくなって別の OSS が席巻し始めるような流れについて「新しい OSS が席巻し始めるタイミングは新規のコントリビューターが参入する絶好のチャンスだし、それはそれで OSS エコシステム全体から見れば好ましい事であるという視点で OSS の盛衰を見ているので」という返答は流石だと思いました。

    「成功例が1つだけあって厄介」と言っていたのは woothee の事らしいです。なるほど感

    前夜祭の懇親会

    MyNA の方々の飲み会に潜り込ませて頂いて、PostgreSQL ユーザーとして情報交換してました

    とみたさん「Sequel って Gem が最高なんですよ」

    メリークリスマス!

    Larry Wall

    Kindle で指輪物語を全巻買って読みたくなった人が多そう

    TBD

    Matz

    Streem、本当に動く言語になってきててヤバい

    日経LinuxバックナンバーDVDに Matz の Streem 記事が連載開始から12回分くらい収録されているのでオススメです

    Perlの上にも三年 〜 ずっとイケてるサービスを作り続ける技術

    大事なことは最高な本から学んだ

    PietでLISP処理系を書くのは難しい

    GitHub でも画像の diff 見られるようになってるし、実用的な言語だなと思いました。

    esa.io – 趣味から育てたWebサービスで生きていく

    「かわいいは正義」と高らかに宣言した時のふかやつ氏のかわいさたるや

    1日目の懇親会

    Ruby の人達で固まってたので、ご挨拶をしつつ、他の島もグルグル回って聞き耳を立てたり、様子を見てました

    何人かの方と「あー、インターネットで見たことある、あの」という挨拶をさせて頂き、有意義でした

    1日目の懇親会の2次会

    調子に乗って飲み過ぎて、03:40 くらいの帰宅となってしまい、本当に申し訳ありませんでした

    ここで話した内容も一切公開できない内容でしたので、一体なんだったんだという感じです

    Google Cloud Platformの謎テクノロジーを掘り下げる

    朝から頑張って出席しました

    謎テクノロジーが掘り下げられることはなく、いつもの「BigQuery はフルスキャンでこの速度!」って話から GCP 全体像への話へ

    総合すると、データセンターのハードから自前で作っていく事により、現代、考え得る最高のインフラを構築、その上で最高のアプリケーションが絶えず走ってますという話であって「先駆者」というにふさわしいなという印象です

    このあと「我々はどのように冗長化を失敗したのか」「3分でサービスのOSを入れ替える技術」という発表もありましたが、Google の背中を見て走っているのだよなぁと思いました。実際どうかは知りませんけども

    質問したら、大変嬉しい回答が貰えたのはよかった。半分くらい期待して待ってます

    我々はどのように冗長化を失敗したのか

    式年遷宮インフラストラクチャ3部作の第2部

    MySQLで2億件のシリアルデータと格闘したチューニングの話

    質疑応答で「ハードウェア増強の提案などはされないのですか」という質問に対して「お金がかかるので…」と回答されていたのが涙なしでは見られない感じでした。これだけの苦労をされたエンジニアの時間に対して「お金がかからない」と思われているんだなと感じたので…

    3分でサービスのOSを入れ替える技術

    あんちぽさんから信頼された高度な技術者達による英雄憚。

    透過的な構築処理を1まとまりとして層を成し、よけいな構築時間がかからないようにまとめ上げるというのは DRY の原則っぽくてクールでした。

    質疑応答にもありましたが、DB 等の永続化層で同じ事をやるのは厳しそうだなと思いました

    Profiling & Optimizing in Go

    この辺で体力が尽きかけてました

    「Go に daemon の仕組みが無いのはどうすんの」という質問に「daemon はオワコンというか、daemon の仕組みを言語環境側が持つべきではないと考えている。init とか supervisord とか systemd とか色々あるんだし、今ならアプリケーションをコンテナ化するのがいいのでは」って言ってたのが印象に残りました

    [LT] MySQL 5.7の罠があなたを狙っている

    MySQL ユーザーのたくましさ、ここに見たり

    [LT] 本物の “ロック” ってやつを魅せてあげますよ – 分散排他ロック篇

    本物のロック、ここに見たり

    [LT] コミュ力あげてこ

    素晴らしすぎた

    [LT] CONBUの道具箱

    stage_jpg_384×288_ピクセル

    こういうのが脳内に浮かんでましたね

    本当にありがとうございました。会期中、とても快適でした

    2日目の懇親会

    ないです。ラーメン食べて、帰宅して即就寝でした

    まとめ

    新橋に宿を取ればよかった…

    カテゴリー: 未分類 | コメントする