大江戸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日目の懇親会

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

まとめ

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

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

2年前に転職しました

退職しましたというエントリを書いてから早くも2年、そして、1年前に転職しましたというエントリを書いてから1年が経過しました。せっかくなので、またまた1年を振り返ってみることにします。

いままであらすじ

2年前、ごく小規模の WEB 受託開発会社から、中規模の広告代理店へ転職。

転職先では、エンジニアの社員はわしだけ。

「エンジニアの居ない場所に行ってポストを作れさえすれば、割と無双できます」は、やはり正しかったと自負。

よかったこと

2年目は内製体制への慣れが出てきて、チームの雰囲気が変わってきました。最初の1年では、外注のクセが抜けておらず、何かをやりたいときにチーム内のエンジニア(わし)に「発注」するようなコミュニケーションになっていました。そのため、何をするにも「発注者」が「要件」「仕様」を決めてから「発注」という流れになり「発注」まで長い時間がかかった上に「発注」後に「仕様」が変わっていくというお決まりのパターンに陥る事が多々ありました。また、チーム内でそういった「お客様感覚」の振る舞いをされると、まぁ、気分はよくないですよね(言いませんけど)。その辺りについて、この1年は何かやりたいことがある場合、とにかく、まず issue を立てるようにしてもらい、そこで「要件」がなんなのか、どんな「仕様」がいいかを議論していくスタイルに変わっていき、いまでは定着しているように思います。これにより、やって欲しい方は、やりたいことが整理できますし、作る方はなにがやりたいのか明確になりますので、前よりスッキリと開発ができるようになりました。この体制になるまで(今でも少し)、口頭で聞き慣れない話題について話してるのを聞いたら「タイトルオンリーでもいいので、issue を立ててからやって貰えますかー。あとですぐ閉じることになってもかまわないのでー」と言うのを2年間、延々と繰り返してきました。長い目で見て取り組むのが大事だなって思います。

Java から Ruby に移植した WEB アプリケーション、運用が2年目に入りました。現在 Ruby 2.2.2, Rails 4.2.2 環境で元気に動いてるので、サーバーサイドは比較的健全な状態を保ててると思います。(サーバーサイドは)

BigQuery の導入は大当たりでした。今までは PostgreSQL を使った OLAP をたくさんやっていましたが、処理する DB の件数も増え、各種 BigData 処理環境の発展による相対的な性能劣化も目立っていましたので、安くて美味しそうな BigQuery に手を出してみました。最低限の Window 関数は揃っていましたし、PostgreSQL で培った OLAP ノウハウがだいたい生かせる環境でしたので、ボトルネックになっていた処理から順に移植している状況です。

昨年のエントリで ISMS 事務局の一員となった件についても書きましたが、昨年末にあった大型の審査(社屋移転、3年更新、新規事業追加に伴う適用範囲の拡大、ISO27001:2014 へのアップグレードの4本立て)を乗り切りました。ただ、ISMS 体制の維持については、無駄な労力がかかっている部分が多々あるので、年々効率化を進めて、全体の負担を減らしていきたいところです。

昨年のエントリで「ここらでもう一人くらい増やせるように色々立ち回っていきたいなと思っています」と書きましたが、うまいことやりまして、5月からエンジニアが1人入ってきてくれました。僥倖。

うまくいかなかった事

片手間 Javascript 業が、かなり大変でした。サーバーサイドはイイカンジで動いているんですが、いわゆるフロントエンドは勉強不足が災いして安定するまで結構時間が掛かってしまいました。AngularJS 1.2 を導入して、最初はよかったんですが、途中から IE8 への対応が必要になって 1.3 以降へのアップデートを封じられてしまい、UA 毎にコードを変える決心も付かず、その場しのぎの対応で問題を先送りしていました。そうして先送りしていたところ、IE8 終了のお知らせが舞い込んできて、時間稼ぎさえすれば近いうちに解放されるという状況になってくれて、ホッとしています。

今回は、たまたまなんとかなったからいいものの、この反省が生かせるかというと微妙なところなので、どうしようかなという感じです。「もっともっとちゃんと勉強してから始めればよかった」ってのも、それはそうなんですが、それでは始まらないというのもあり…

「jQuery で頑張って書く」というようなことをしなかっただけ比較的マシなルートを通ったんじゃ無いかとも思うので、非常に難しい感想になります。

今後やりたいこと

現在、データセンターにサーバーを置く、いわゆるオンプレ環境での運用を続けていますが、ハードウェアのリプレース時期が近づいてきているので、クラウド環境での運用に移せればいいなと思って動いてます。インフラは片手間 JS の時みたいなヘマをすると取り返すのが比較的難しい領域ですから、慎重にやっていきたいところです。幸い、新しく入ったエンジニア氏が、わしよりもインフラに明るいので、協力して新環境を樹立したいと思います。

新しく入ったエンジニア氏が元々 Perl 畑の人で、現在 Ruby について熱心に勉強中なので、Rubyist として育成していきたいという感じです。

欲を言えば、さらに1人くらいエンジニアを増やせると言うことがないんですが、売上が劇的に躍進したりしない限り、少し厳しそうです。

言いたいこと

普通の会社には、普通のエンジニアが潜り込んで出来る事がたくさん転がってます。

要するに、繰り返しになりますが「エンジニアの居ない場所に行ってポストを作れさえすれば、割と無双できます」という事につきます。

あえて、エンジニアの薄い環境へエンジニアが転職していくようになれば、ますますエンジニアが不足して価値が高騰するかもしれませんので、みなさまよろしくお願いいたします。

このエントリ中での「エンジニア」という言葉は、SE とかアーキテクトとかプログラマーとかインフラエンジニアとか、そういった感じのものを混ぜた感じの言葉として使っています。「エンジニア」という言葉の定義に敏感な方にはご不快かもしれませんが、何卒ご容赦いただければと思います。

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

誕生日だ

このエントリは、誕生日 Advent Calendar 2014 の 12 月 18 日分です。

誕生日

そういえば、@onk さんと同じ誕生日なんですよね。前々から bio に書いてあるのを見て「あっ同じだー」とは思ってました。

一緒に祝っておきます。はっぴばーすでー!わし&おなかさん!

カーチャン

誕生日について考えるにあたっては、やはりカーチャンへの圧倒的感謝を忘れるわけにはいきません。

わしが産まれる前、わしがこの世に発生したときに「覚悟を決めて産む」「キャンセル」というダイアログが出たと聞きます。結局、カーチャンは1人で産んで、色々あったけど1人で育てました。ロックだ。

今、わしは3人の子供を育成していますが、かみさんと協力してギリギリの状態で、やっと回っています。毎日の大変さが増せば増すほど、あの日「キャンセル」を押さないでくれたカーチャンへの感謝も比例して増していくようです。

33.0 歳ともなれば、仮に 99 歳まで生きるにしたって今まで生きてきた 3 倍の時間でしかないし、誤差っぽいです。それが 0.0 歳だとどうでしょう、何歳まで生きるかに関わらず Infinity 倍ですからね。救急戦隊ゴーゴーファイブの主題歌の中に「ひとつの命を救うのは 無限の未来を救うこと」という歌詞があるんですが、うおー。

この先生きのこることができるか

「生存戦略」みたいなものについて、わしは「この世に産まれてしまいさえすれば、あとはゴールまで生きるだけ」という人生観なので、いまいちピンときません。日本に生まれたのなら、どうあれ生存できちゃうと思います。なお、サバンナでは同じ事は言えません。

「いかに他人を出し抜いて、自分と家族だけは良い思いをするかという戦略」なら、なるほどって思います。ただ、まぁ、あまり他人をシバき過ぎると、殺されるかもしれなくなるので、程々にしないとダメだよなって思ってます。余力はシェアして、治安を高めよう。

「好きなことで生きていく」という事が「生存」であり、「望まぬ事を強いられて生きていく」という事を「死」と同等に捉える前提での「生存戦略」なのであれば、うおー、贅沢な悩みだなと思いますが、豊かであるということは素晴らしいですね。

Advent Calendar

一昨年くらいから Advent Calendar をボチボチ書き始めて、読むのも書くのも楽しいので毎年やることにしました。せっかく 12 月に誕生日があるので、空きがあれば誕生日の枠を確保してます。今年の投稿は下記の通りです。

誕生日ですが「ウィッシュリストに入れてるからには読めよ」などと言いながら難しい本を送りつけるなどの行為は何卒

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