読者です 読者をやめる 読者になる 読者になる

Road To Nowhere

主にWebまわりのエンジニア的なお仕事に関するようなことのあれこれ。

【レポート】MySQLデータベースのセキュリティを考える 〜 重要データを守るために必要なこと〜

こちらのイベントに参加してきた。OSSセキュリティナイターというイベントの3回目とのこと。参加者はスーツ系の方が8〜9割。普段エンタープライズな業務の方がOSS、今回ではMySQLのセキュリティどないやねんてことで聞きにきてるんでしょうね。

僕の場合は「MySQL x セキュリティ」という組み合わせが斬新だった(正直あんまり考えたことなかった)のでどんな感じかなと。

発表資料

サーバー/データベースにおけるOSSセキュリティ市場動向について

セキュリティ市場全体の動き、オープンソースにおけるセキュリティに対するLinux Foundationやデータベースのセキュリティ全般について簡単に紹介します。
MKTインターナショナル株式会社 代表取締役社長 赤井 誠

まずはDBとかOSSというよりもざっくりと今年のセキュリティ動向について。ランサムウェアによる被害が今年は大きく増加しているとのこと。たしかによく聞くようになってきた。今年はJTBや米ヤフーとか大規模な情報漏洩もあったなー。件数が増えたというよりもひとつひとつの破壊力が増してきた印象。

OSS周りの動向ではLinux Foundationを中心にCIIという組織が立ち上がり、OSS全般のセキュリティ向上を目指していく動きがあるとのこと。詳しくはこちら。IT関連の大企業が軒並み協賛(?)してる。

Home | Core Infrastructure Initiative

最後にセキュリティは製品でなくプロセスということをおっしゃってたけど、製品とか何かによって簡単に担保できるものじゃないってことだよね。

データベースセキュリティの基礎

データベースを利用するときに、気を付ける必要のあるデータベースに関する セキュリティについて、基礎からご紹介します。
サイオステクノロジー株式会社 面 和毅

発表者の面さんはSELinux出身のエンジニアとのこと。OSレベル、DBレベルそれぞれのセキュリティ対策について詳細な説明があった。

そもそもDBに関する標準的なセキュリティガイドラインはないものの、データベースセキュリティコンソーシアムのガイドラインはよいとのこと。これかな。

データベース・セキュリティ・コンソーシアム(DataBase Security Consortium) 成果物

あと印象的だったのは9月に話題になった脆弱性、CVE-2016-6662に関するお話。
影響を受けるバージョンの記述が1次情報から間違っていて書き直された経緯もあり、今でも間違ったままの情報を記載してる記事が多いとのこと。敬意を表し、面さんの書いた記事をはっておく。

昨今脆弱性が発表されるとSNSなんかで一気に爆発的な広がるので、1次情報をちゃんと見つけて冷静な判断と対応が必要だなとは思う。今回の場合みたいに1次情報からして間違ってるというのは例外としても。

あとは暗号化については透過的データ暗号化(TDE)というのが一つの解になりそう。これはアプリケーションが意識しなくても勝手にMySQLが暗号化して格納してくれるもの。鍵をどうのこうのというところはよく分かってないのであとで調べる。

もひとつメモ。マカフィーが出してるOSSmysql audit pluginがあるとのことなので、監査ログが必要なときはとりあえずこれを試してみよう。

MySQLの最新情報とセキュリティについて

MySQL Firewall, Audit、暗号化等のMySQL Enterprise を中心にしたセキュリティについて説明します。 また、MySQLの最新ロードマップや事例についてもご紹介いたします。
日本オラクル株式会社 MySQL GBU 梶山 隆輔

個人的に本日の目玉。オラクル梶山氏の発表。セキュリティ以外の話も興味深いものがあった。特にマルチマスターで同期されるInnoDB Cluster。安定版がいつごろでるか来年早々に発表がありそうとのこと。

セキュリティについては、MySQL5.7からは初期設定値が5.6までと大きく方針が変わって、Secure by Defaultになっているとのこと。デフォルトでtestデータベースがなかったり。rootユーザーにランダムパスワードが設定されたり。パスワードのポリシーが厳しくなってたり。

とはいえやはりEnterprise(商用版)。MySQLでfirewall(クエリの)、暗号化、auditといったセキュリティ対策をやろうと思ったらそれしか選択肢はないようだ。そういう意味ではっきり答えがでたという意味で来た価値あったかな!早く資料見返して同僚にフィードバックしたいところ。

おわりに

登壇社のみなさま、サイオステクノロジー様、勉強させていただきありがとうございましたm(__)m

DeNA TechCon 2016に行ってきた

遅くなってしまったけどDena TechCon 2016に行ってきたのでざっくりと感想など。

ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先

途中から参加。http2そのものとhttp2対応のサーバ「h2o」のお話がメイン。いかにしてレスポンスとスループットを向上を実現しているかというオープニングに相応しい技術的な内容だった。

こういったすぐにどうこうでなく先進性のある開発を行えることがdenaの強みだな。資料がとてもよくできていたのでじっくり見直す。

www.slideshare.net

DeNAインフラの今とこれから

次に聞いたのはこれ。denaのインフラ興味ありました。

物理サーバ約4000台。AWSも部分的に活用。ネットワーク13Gなど。なるほど。

mbgacloneというサーバコピーのコマンドがすごく便利そうだった。一つ目のスライドの9Pを是非!

そしてperlrubyのdebugをインフラで行っているというのはすごい。

www.slideshare.net

 インフラのこれからの話で印象的だったのは、bigswitchだのcephだのといった具体的なプロダクトの話以上に、今まではdeep、これからはeasy、といった姿勢のところ。インフラ担当もアプリを見るとか、サーバとネットワークで業務を分担しないとか、本当そうだよなぁ。

docs.com

B2B2Cなヘルスケアサービスの作り方

今回聞いたセッションの中で今業務でやっていることに最も近い内容だった。

grape、symmetric-encriptionといったgemをしっかりメモ。

セキュリティ要件の厳しい環境で、個人情報とそうでないデータはdb分割とかmysqlssl接続とか、近い将来自分が携わりそう話聞けてよかった。

www.slideshare.net

チラシルiOSでの広告枠開発

最近アプリ開発してないんだけど、JSON-RPC 2.0でAPIにBatch Requestするところが新鮮だった。以前は画面とAPIが1対1で開発をしてたけど、これを使えばかなり柔軟にAPI設計ができるな。次はそうしよう。

www.slideshare.net

MERYで CM 乗り切った話〜女の子のかわいいを守るために〜

CM対策として負荷対策をあれこれとしたお話。スロークエリ撲滅やキャッシュ見直し、シングルポイントの冗長化など、スタンダードな内容だったけど、まぁ近道はないってことだよね。

実際CMが流れると想定した負荷の1/2程度で楽々だったというオチもよかったw

www.slideshare.net

iOSレガシーコード改善ガイド〜マンガボックス開発における事例〜

最近アプリ開発してないのにまたまたアプリのお話。でもこれは大変役立つセッションだと思う。レガシーコードの改善パターンがひとつひとつとても分かりやすかった。

勢いで一気に変更!というよりもこうやって地道に少しづつ塗り替えていくのは僕の性に合ってるみたい。

例のあのアプリに触る機会があればまずこの資料見直そう。

www.slideshare.net 

AWS Summit(一日目)に行ってきた。

午後イチから行ってきたので、レポート兼ねて感想など。

SmartNewsのデータサイエンティストの高速イテレーションを支える広告システム

http://www.awssummit.tokyo/session.html#TC-02

最初は一番興味のあったSmartNewsのセッション。
ログデータの様々な分析、機械学習、配信ロジックの準備、A/Bテストのレポーティング等でふんだんにAWSの色々なサービスを活用。
名前を聞いたことはあるけど内容はよく知らないサービスについて実際の活用シーンを聞けたのはすごくよかった。
なぜAWSかというところで、本当に大事なところ(サービス開発)に注力するため、というのは大いに共感。

以下、SmartNewsで活用しているサービス(AWS以外も)のメモ。

EMR(Amazon Elastic MapReduce
https://docs.aws.amazon.com/ja_jp/ElasticMapReduce/latest/DeveloperGuide/emr-what-is-emr.html

Presto
http://treasure-data.hateblo.jp/entry/2014/07/10/150250

hivemall
https://github.com/myui/hivemall

chartio
https://chartio.com/

Redshift
http://aws.amazon.com/jp/redshift/

DynamoDB
http://aws.amazon.com/jp/dynamodb/


発表資料


急成長しつづける freee、AWS との付き合い方

http://www.awssummit.tokyo/session.html#TC-03

次はクラウド会計ソフトで知られるfreeeの事例。
専任インフラエンジニアのいなかった創業期から成長期を経て現在に至るまでのインフラの変遷の紹介。
3年くらいしか歴史がないのにかなり改変をしてきていてスピード感すごいなーという印象。こういった変化に強い(変化できる、方向転換しやすい)のもAWSのメリットだなとしみじみ。
そして3年先を予測してもうまくいかない、と言っていたのがとても印象的だった。最近のビジネスだと特にそうだよなぁ。
また誤ってproduction環境でdrop dbを発行してしまい、Restore to Point in Timeで速やかに復旧できたというのを聞いて、僕のなかでRDS株急上昇。
とても実践的で役に立つセッションだった。


発表資料

【パネルディスカッション】デベロッパーが切り拓く、次の時代

http://www.awssummit.tokyo/devcon.html#Dev-02

続いてトップエンジニアの伊藤直也氏とクラウドワークス大場氏、そしてモデレーター松尾氏によるパネルディスカッション。
お題はこれから起こる変化の予測であったり、それに対してエンジニアとしてどういった準備をすべきかといったもの。
意外だったのはお二人ともあまり予測自体には重きを置いていない様子だったこと。
今起こっている変化ですらなかなか気づけるものではないし、技術の選択に関しても誰も正解を知らないよと。ふむふむ。
従ってトレンドに安住しないことが重要。そして技術の取捨選択で迷ったらシンプルなものを選んだ方がいいと。
たしかにその通り。このお二人がいうとやはり説得力ある。
印象的だったのは最後。直也氏がトップ(最先端)と自分とのギャップを意識したほうがいいと言っていたこと。
そうだよね。だから僕は普段AWSをバリバリ使ってるわけじゃないけど、その最先端の技術や事例を知るため、自分(自社)の技術が最先端からどれくらい遅れているかを確認するため、このイベントに足を運んだということだ。
少し意識が高くなる、よいセッションだった。

2035 年、その時デベロッパーはどう生きるか

http://www.awssummit.tokyo/devcon.html#KEY-03

最後は大前研一親子によるトークショー。
恥ずかしながら大前研一氏のことをよく存じていなかったんだけど、とても博学でユニークなおじさん紳士だった。
70歳を超えているのに、クラウドワークスの上場日を記憶していたり、UberやAirbnbのビジネスに精通していたりと最新のトレンドにも造詣が深くてビックリ。
氏が1995年に書いた「インターネット革命」読んでみたくなった。

お話の内容は20年後を予測する展開になって、最後、
熟練工にはなるな。より安価な人材や技術にとってかわられる。
そして、技術がどんなに進歩しても価値を作れるのは人間だけ。
という結論でクロージング。
やはり技術は手段。それ自体を目的としてはダメだね。価値を作るために技術が存在するということだ。
何をいまさらな感じだけど、いいお話聞いてこんなこと言いたくなってしまった。

Developers Night

http://www.awssummit.tokyo/devcon.html#NE-01

レッツパーティ!
そして前職でお世話になったI氏とばったり出会い、さんざん飲んで帰宅。
楽しかったー!

終わり

rubykaigi2014に参加してきた(最終日!)

三日目ともなると都営新宿線の雰囲気にも慣れ、だいぶ船堀に愛着がわいてくるから不思議。次に船堀にくる機会あるかなぁなんて思いながら会場到着。

おはよう Rails

RubyKaigi 2014 | Ohayō Rails
内容はドリコムクラウドワークス、mixi、オーマイグラス、pixiv、食べログ、クックパッドとそうそうたる会社からのエンジニア達によるRails話。
クックパッド高井さんの「どうですか?rails?」みたいな振りからゆるい感じではじまり、終始そんな感じで、ゆるく、にこやかに進んだ。
特にドリコム大仲さんのコンプガチャのgemを作りかけたってのは面白かったなー。
観衆の一人として楽しみながらも、実はけっこう知らない単語が出てきてググりながら聞いていたのは内緒。
話題にもあがっていたけど、会社やサービスが違ってもほとんど構成が似ていたり同じgemを使っていたりして、共通項が多いのがRailsのいいところなんだろうなと思う。
あとエコシステムがしっかりしてると。最後はRailsで決まりだねみたいな感じで締めくくられたけど、今のところそれでいいと思う!
後でよく調べる単語をさらしとく。

  • padrino
  • RedShift
  • ActiveJob
  • turbolinks
  • Engine

Speeding up Rails 4.2

RubyKaigi 2014 | Speeding up Rails 4.2
rubyrailsのコミッターとして著名なアーロンさん(@)のお話。なんと日本語で。
日本語のギャグを織り交ぜながら素晴らしく楽しいセッションだった。
言葉が違っても笑うツボを心得ているって感じで、本当に頭のいい人なんdなろうな。
しかもbenchmark/ipsやgc.stat()を使っての計測方法などたいへん有意義でもあった。

Practical meta-programming in Application

RubyKaigi 2014 | Practical meta-programming in Application
次はこちら。moroさん(@)によるrubyでのメタプログラミング実践方法の紹介。
普段よく使っているattr_accessorも言われてみればメタプログラミングだな。
rubyでは明確にメタプログラミングってこういうもの!という風にが定義されてるわけではなく自由に書けるんだけどリフレクションを使いすぎないようにというのは強く同意。
あとhas_manyは直接データを返すのではなく親子の関連オブジェクトを返す、ってあたりも興味深かった。


発表資料
https://speakerdeck.com/moro/practical-metaprogramming-in-application

ランチ

今年のrubykaigi最後の弁当。

ごちそうさまでした!

Everything is Broken: A Story of Hope

RubyKaigi 2014 | Everything is Broken: A Story of Hope
午後イチはJonanさん(@)の流暢すぎる日本語でのセッション。
内容はPFS(Perfect Forward Secrecy)の解説。ServerやCA、ハッカーなどが、rubyコミッターに擬人化されてとても面白かった。
またそれぞれの鍵が色に例えられてその分かりやすさにビックリ。
ランチ後にセキュリティの話とか絶対眠くなりそうだけど全然。
結局最後までrubyに関係なかったけどよいセッションだった。

俺のrubykaigi2014ここで終了

残念ながらここで離脱して俺のrubykaigi2014は終了。
昨年はrubyを触り始めたばかりでruby界隈のことが分からずに完全アウェーな感じで、少しでも実務に役立つことを吸収しようと緊張してた記憶があるけど、今年はちょっとリラックスして臨めた気がする。
もちろんまだまだ浅くしか知らないことや初めて聞くこともたくさんあるけど、それがまた楽しいって感じで。どんどん興味のツボを刺激される感じ。
来週はrubyを書くのが今までよりまた少し楽しくなるんだろうな。
いい3日間だった。来年も楽しみだー。


最後に。
もし運営スタッフさんがこれを見ることがあれば。
3日間お疲れ様でした!そしてありがとうございました!

rubykaigi2014に参加してきた(二日目!)

いつもより30分早く子供達を保育園に預けて船堀へ。
やはり遠い。けどギリギリ9:30からのMatz氏のkeynoteに間に合った!

Coming soon...

RubyKaigi 2014 | Coming soon...
タイムスケジュールではセッションのタイトルがcoming soonだったけど、まさかのそのままのタイトル。
未来の話、ruby3の話をしようという内容。
Static Typingに関する話は実際興味深いんだけど、他の言語では実装されているのが悔しいとか、実際なくても困らないんだよねとか。やっぱりDuck Typingに反するしなぁとか、業務でrubyを使ってる人にとってはけっこう重要な話だと思うんだけど、なんだかとても微笑ましい。
Matz氏はこういう技術的なはなしを分かりやすく、楽しそうに話す。そして聞く方も楽しくなる。
ruby3でどういった実装がなされるかというよりも、Matz氏の人をワクワクさせる力というか、カリスマ性というか、そういう方に意識がいってしまった。よいセッションだった。

Extreme Makeover: Rubygems Edition

RubyKaigi 2014 | Extreme Makeover: Rubygems Edition
次は英語のセッション。bundlerのコミッターとのこと。
僕の英語力では話の半分どころかその半分も理解できていないと思うけど、実はgem installがパラレルで動かせるとか、RubyGems.orgのミラーが東京にあるとか、有益な情報をゲット。
英語が得意じゃない人にとってはrubykaigiってちょっと敷居高いのも分かるけど、ちょっと頑張ってみるといいと思うなー。

Archeology of Ruby: Removed Features (Ruby 考古学 機能編)

RubyKaigi 2014 | Archeology of Ruby: Removed Features (Ruby 考古学 消された機能編)
前日のコミッター紹介のセッションでMr.typoと呼ばれていた古くからのコミッターNISHIYAMA氏のセッション。
一度導入されたけど消えてしまった機能や、開発版にのみ入った機能などの紹介。
File.exist?(File.exists?は非推奨)の話とか、かなりトリビアな他所では聞けない感じの内容で面白かった。
こういう話って業務に活かせるような実践的な話ではないんだけど、こういう経緯を知ることでrubyがまたちょっと身近になった気がする。

<%= link_to "bundle", "update" %> - Make "bundle update" more fun to review

RubyKaigi 2014 | <%= link_to "bundle", "update" %> - Make "bundle update" more fun to review
午前中最後のセッションは@さん。
昨年もbundle updateに関する発表をされていてすごく印象的だったので今回も楽しみにしていた。
ざっと昨年の発表をおさらいすると、bundle updateを自動化するための試みで、jenkinsさんがgemの更新をチェックして、更新があればbundle updateを行い、テストが通れば自動でpull requestするようにしたと。
今回はGemfile.lockの差分だけではpull request時のレビューとして不十分なので、compare linkerという仕組みを作ったというお話。
compare linker
https://github.com/kyanny/compare_linker
具体的にはjenkinsさんのpull requestのコメントに、差分があったgemの差分を見ることができるurl(Github上)をpostするというもの。
Githubで公開していないもの(rails本体など)には対応できす、あまり成功ではなかったということだけど、
Gemのメタ情報としてgithub.comのリポジトリの URL が設定されていない gem がいくつかあり(具体的には rails に含まれている active_record など)、それらの対応が未だ不十分で、あまり成功ではなかったということだけど、こういうアイデアを思いついて実践するところが本当に素晴らしいと思う。感動。
僕の中では今のところベストセッション。


発表資料

ご本人による解説
Speaker としての #rubykaigi 2014 を終えて - @kyanny's blog

ランチ!

今日はheroku弁当。

ごちそうさまでした!

MRuby as Development Platform for Payments

RubyKaigi 2014 | MRuby as Development Platform for Payments
午後イチはブラジルとコロンビアの方のmrubyを決済(POSシステム端末)に採用したおはなし。
mrubyをはじめwebruny、emscriptenなどふだん使うことのない技術が紹介されてとても興味深かった。
POS端末エミュレータでのdemoもよかった。
なんかmrubyってすごいんじゃないか。

Open the door of embedded systems to IoT! mruby on LEGO Mindstorms EV3 ®

RubyKaigi 2014 | Open the door of embedded systems to IoT! mruby on LEGO Mindstorms EV3 ®
そして次もmruby!
レゴマインドストームをmrubyで制御するというおはなしとデモ。
レゴマインドストームEV3
http://education.lego.com/ja-jp/preschool-and-school/secondary/mindstorms-education-ev3
mrubyって軽量rubyとしてしかイメージなかったんだけど、最近デバイスにも興味がでてきた僕には注目せざるをえない展開。

拍手すると音に反応して神主(Matz?)が現れるruby神社。
これはヤバい。楽しい。すごいぞmruby。

Scalable deployments - How we deploy Rails app to 100+ hosts in a minute

RubyKaigi 2014 | Scalable deployments - How we deploy Rails app to 100+ hosts in a minute
次はクックパッドのsora_h氏のデプロイに関するセッション。
クックパッドほどの規模になると、モデルが1530、サーバが140、そして1日に10回デプロイするとのこと。
そしてsshボトルネックなってデプロイに失敗するケースがあったのをmamiyaというツールを自作して改善したというお話。
mamiya
https://github.com/sorah/mamiya
いつかうちもこんな課題に直面するくらい規模の大きいサービスになるといいな!

7 years of Ruby & Rails with the same web site

RubyKaigi 2014 | 7 years of Ruby & Rails with the same web site
iKnow以前よくやってたなー。あれからもう7年もたつのかと思いながら聞いていたセッション。
7年も同じサービスやってると色々ツラい部分が出てくる。マジで他人事じゃない。
570万行コードを書いたのに対して330万行のコードを消したというところでは場内から拍手が。
iKnow(smart.fmだっけ?)、これからも頑張ってほしい。

Kids, Ruby, Fun!: Introduction of the Smalruby and the Ruby Programming Shounendan

RubyKaigi 2014 | Kids, Ruby, Fun!: Introduction of the Smalruby and the Ruby Programming Shounendan
そして次!Smalruby!
子供用のプログラミング教育ソフトウェアなんだけど、画面はScratch風のインターフェース。
ロジックをブロックで組み立てて、裏ではrubyのコードを組み立てていて実行できるというもの。
しかしただのscratchのruby版ではなくて、僕が惚れたのはその哲学。
子供のプログラミング教育において、ロジカル思考や創造性を養うということに重きが置かれているんだけど、Smalrubyではプログラミングそのものを好きになって欲しいと。
なので労力をかけて、ロジックのブロックとrubyコードの相互変換の機能を実装したとのこと。
実際プログラミングに興味を持った子供達はブロックではなくコードを書き始めるらしい。
5才の息子とやってみる!


他の方のレポート
【速報】RubyKaigi 2014レポ:Kids, Ruby, Fun!: Introduction of the Smalruby and the Ruby Programming Shounendan | Engineers' Blog

Lightning Talks

RubyKaigi 2014 | Lightning Talks
最後のセッションはライトニングトーク。
どれも特徴があって面白かったけど気になったものだけいくつかピックアップしてみる。
iPhoneでルビーを書いて実行もできるofRubyというアプリは面白そうだったな。デモもよかった。試してみよう。
そしてSwitch_point。これはちょうど今の業務で抱えている課題を克服できそうな感じでタイムリー。要検証。クックパッドで既に実績があるのも強み。
そしてRspec2.99(&Transpec)。こちら実際業務でお世話になった仕組みなのでお話聞けてよかった。しかもそれがきっかけでRspecコアチームにjoinしたとか本当いい話だなー。

二日目終わり!

さて明日は最終日。午前中から興味あるセッションばかりなので楽しみ。
そして、もし運営スタッフのかたがこのブログを見ることがあるかもしれないので一言。
あと一日!頑張ってください!

rubykaigi2014に参加してきた(初日)

昨年に続いて今年もrubykaigiに参加してきた。費用(と時間)を出してくれた太っ腹な会社に感謝!

会場は船堀ということでちと遠い。だけど大ホールはかなりの収容人数。
そして角谷氏のさわやかなオープニングで幕開け!

CRuby Committers Who's Who in 2014

RubyKaigi 2014 | CRuby Committers Who's Who in 2014
今年一発目のセッションはこちら。
2013/6/1以降コミットしているアカウントは50あって、そのうち15人が今年のrubykaigiでスピーカーになっているとのこと。
まさに国産のプログラミング言語だなといった印象。
そして昨年も同じセッションで同じことを思ったんだけど、このコミッターさん達が労力を注ぎ込んで作り出した言語のおかげで僕らのサービスが動いていて、それによって僕らの仕事があって日々生きているわけで、本当に感謝しかない。
ありがとうございます。

Building the Ruby interpreter -- What is easy and what is difficult?

RubyKaigi 2014 | Building the Ruby interpreter -- What is easy and what is difficult?
次はYARVの作者である笹田さんのお話。まさに基調講演にふさわしい内容。
普段当たり前のように動かしているわけだけど、そのためにどれだけの苦労があったか。
色んなトレードオフがあるけどそれに打ち勝ってこそ!みたいな強いプロ意識にシビれた。
ruby遅いよね、とか言っちゃう人はちょっと一回体育館裏に呼び出したい気分。
またRGenGCだったりIncrementalGCだったり、今後ちょっと意識していきたいなと思った。

ランチ!!


本日はWantedly弁当。ごちそうさまでした!

Controller Testing: You’re Doing It Wrong

RubyKaigi 2014 | Controller Testing: You’re Doing It Wrong
午後一発目はこちら。いよいよ英語のセッション。幸いわかりやすい内容でよかった。
Controllerではdeclarative(宣言的)に書くべきで、当然テストもそのようにあるべきだと。
具体的にはlet、subject、shared_examples_forなどを使って、simpleに書こうといった内容。
他にも色々な示唆はあったんだろうけど、僕のヒアリング力ではこの程度の理解。
よいレポート見つけたら貼ります。

Eliminating Giant VM Lock in Ruby through Hardware Transactional Memory

RubyKaigi 2014 | Eliminating Giant VM Lock in Ruby through Hardware Transactional Memory
他会場でgithubの話が立ち見が出るくらい人気だったみたいだけど、あえて完全アウェーで門外漢のこちらのセッションを聞いた。
勉強不足でGVL(Giant VM Lock)もHTM(Hardware Transactional Memory)も全く存じ上げなくて、内容とほとんど理解できなかったんだけど、それもまたこういったカンファレンスの醍醐味。
普段目にせず耳にも入らなかった分野にたいして興味を持つきっかけになるというか。そして今後日々の情報収集のときにちょっと引っかかるようになるというか。
そういえば今年のタイムスケジュールを見て、なんとなく実践的な内容よりもアカデミック(マニアック?)なものが増えた印象。
これでいいと思います!

What's wrong with your app?

RubyKaigi 2014 | What's wrong with your app?
実践的なセッションが少ないといったそばから、次に聞いたこちらはだいぶ実践的な内容。
herokuを使ってる人にはかなりあるあるな内容だったと思う。(appがdownした原因の多くはあなたのappのに問題があるのがほとんど!的な。)
heroku初心者の僕にとっては、アドオンのnew Relic、loggin、Expensive Queriesなど耳寄りな情報だった。

Non-Linear Pattern Matching against Unfree Data Types in Ruby (Egison Pattern Matching in Ruby)

RubyKaigi 2014 | Non-Linear Pattern Matching against Unfree Data Types in Ruby (Egison Pattern Matching in Ruby)
次に聞いたのがコレ!これは本当に面白かった。
江木(えぎ)さんが作っているEgison(エギソン)というパターンマッチ志向のプログラミング言語のお話。
ポーカーや麻雀の役のパターンマッチを実際のコードを交えて解説。熱のあるセッションだった。
機会があればgemも試してみたい。(機会あるかな)

Hypermedia: the Missing Element to Building Adaptable Web APIs in Rails

RubyKaigi 2014 | Hypermedia: the Missing Element to Building Adaptable Web APIs in Rails
実践的なセッションが少ないとか言って申し訳ない。こちらも本当に実践的な内容だった。
変化に強いweb Apiを作るにはどうすればよいかという多くの人が避けては通れないテーマ。
twitterハッシュタグを追うと、みんなにとってもかなり評判の高いセッションだったようだ。
結論から言えば、web apiもwebアプリと同様にリンクとフォームもレスポンスに含めるべきだと。
これ多分ネイティブアプリを作った人は共感できるはずで、1画面で1apiというのが結局現実的な設計だということ通じるのかなと思う。
それからリンクやフォームも抽出してhtmlをjsonに変換するこちらのgemを作ったという流れが素晴らしかった。
https://github.com/tkawa/hypermicrodata


発表資料

他の方のレポート
【速報】RubyKaigi 2014レポ:Hypermedia: the Missing Element to Building Adaptable Web APIs in Rails | Engineers' Blog

"Gem of this Week" - building culture and making gem

RubyKaigi 2014 | "Gem of this Week" - building culture and making gem
というか、これもかなり実践的な内容じゃないか!
ドリコムでgemをカジュアルに作って開発効率をあげているノウハウの公開。
ビジネスロジックもプライベートなgemレポジトリに貯めておくというのはいいやり方だな。
gemをカジュアルに作れるgem(drecom_gem)や、他にも社内gemがいくつか紹介された。
僕ももうちょっとgem化意識しよう。


発表資料

他の方のレポート
【速報】RubyKaigi 2014レポ:”Gem of this Week” – building culture and making gem | Engineers' Blog

Ruby committers vs the World

RubyKaigi 2014 | Ruby Committers versus the World
初日最後のセッションはこちら。壇上に晒されるコミッター達!

このゆるゆるな雰囲気。いいと思います。
こちらメモはとってないのでレポートとかtogetter見つけたらまた追って貼ります。

初日終わり!

Partyは参加できなかったけど、明日はどんな話が聞けるか楽しみ!!

デブサミ2014の2日目に行ってきた #devsumi

Developers Summit 2014:開発者のためのITカンファレンス

業務時間を削って行ってきたのでレポート兼フィードバックということで感想など書いてみる。

Webの現在過去未来

http://event.shoeisha.jp/devsumi/20140213/session/402/
まず朝イチで聞いたのがサイボウズ・ラボ竹迫氏、rebuild.fm宮川氏、そしてゆーすけーべー氏というWebで著名な方たちのパネルディスカッション。お題の通りweb全般に関して約2時間に渡ってトークしていた。
Plaggerの話がでてきたときはなつかしかったな。その後APIとかマッシュアップとかweb2.0とか流行った。少しプログラムを書ければサービスを作れるようになってきた時代で今思うとなんか僕自身も浮かれてたかもしれない。
その後openIDやoAuthなどの話から@Nアカウント事件の話題へ。アカウントに関連して、今後Webの世界で何が自分のidentificationになるのかといった話も興味深かった。
あと印象的だったのは宮川氏がAppStore(iTunes)のなかでPodcastは無法地帯でコンテンツの検閲がゆるやかだと言っていた件。AppleGoogleが影響力を増していくなかでもそういった抜け道は常に存在し続けるんだろうな。
またゆーすけーべー氏で発言で印象的だったのはWebサービスの場合、収益を得るためにどうしてもサービスにとって本質的でないこと(SEOとか!)をやらざるを得ない。その点サービスに対して課金するアプリの収益モデルではサービスの本質を追求できると言っていたこと。これは開発者やサービス提供者にとってはいい流れだよね。
けっこう自由に話を展開していたのでとりとめのない感じではあったけど、改めてWebを俯瞰するいい時間だったかなと思う。

悩める金融系SEの軌跡〜COBOLからScalaへ〜

http://event.shoeisha.jp/devsumi/20140213/session/411/
次はランチセッション。スピーカーのTIS角谷氏の初々しくも情熱のあるスピーチだった。
一般ユーザー向けのサービスの開発に憧れながらも、ほとんどコードを書かない金融系のSEとなり、そこから様々なアクションを経て自分のやりたい業務へ近づいてきたというお話。
僕も新卒で入った会社で同じような境遇だったので気持ちがよく理解できた。僕は3年で会社を辞めて、その後技術者として進歩のない数年を過ごしたけど、僕みたいに安易な選択でなく、置かれた状況で前向きに自分のやりたいことや成長に向かっている姿は素晴らしいと思った。

アプリケーションエンジニアのためのクラウドインフラ再入門

http://event.shoeisha.jp/devsumi/20140213/session/436/
こちらのセッションはプライベートクラウドを実現するための二つのオープンソースソフトウェアの紹介。
タイトルから想像していた内容とはちょっと違ったけど未知の世界の話だったのでこれはこれで面白かった。
印象的だったのは、多くの人がAWSなどパブリッククラウドを使っているがその中身は隠蔽されている。このブラックボックスが実は怖いということ。プライベートクラウドを構築することでクラウドの基礎理解が深まり、クラウドをいかすソフトウェアの設計ができるようになるのではと。
これは確かにそうだな。おっしゃる通りだ。
それぞれのユーザ会がお話されていたが、正直違いがよく分からなかったので、機会があればそれぞれの特徴を把握したいと思う。

日本OpenStackユーザ会
http://openstack.jp/

日本CloudStackユーザ会
http://cloudstack.jp/

DeNAにおけるゲーム以外の新規事業の立ち上げ方

http://event.shoeisha.jp/devsumi/20140213/session/421/
DeNAの新規サービス(スマホアプリ)の開発を担当されている開発者の方のお話。
企画からリリースまでのフローや体勢、技術や仕組みなど非常に濃い内容だった。
まずはiOSもしくはAndroidの片方で開発・ローンチして、サービスがスケールしそうならもう一方に着手するとか、OSカバー率(バージョン等)よりスピード感が大事とか、使用しているライブラリを公開するなど、全体的に実践的な内容でたいへん参考になった。
多くのアプリでローンチ前にターゲットとするユーザー層に実際に使ってもらってフィードバックしているということで、いわゆるリーン開発を実際に行うことができているのはすごく羨ましかった。
実際のところ、これをやりたくてもなかなか予算や期間を確保できず、一方納期はしっかり決まっていて、なかなかできていないのが多くの開発現場での現実ではないかな。これをできるのがDeNA(あるいは大手)の強みだ。
ヒットアプリを作るための銀の弾丸はない、フィードバックループをこつこつ回すしかないと言っていたけど、大手がこういう姿勢だと僕らに勝ち目あるのかな?
とりあえず発表資料必見。

発表資料
https://speakerdeck.com/okitsutakatomo/debusami2014-14-c-4-denaniokerugemuyi-wai-falsexin-gui-shi-ye-falseli-tishang-gefang

iOSアプリケーションの継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜

http://event.shoeisha.jp/devsumi/20140213/session/430/
リコーでUCSというiOSアプリ開発をなさっている梅原氏のお話。
これは僕の中でベストセッションだった。
「価値のあるソフトウェアを早く継続的にデリバリーしお客様を満足させなければならない」
この命題のために作った仕組みや、工夫したこと、試行錯誤したことをこれでもかと披露してくれた。
特になるほどと思ったのはエンジニアを、テストエンジニアと開発者に分けたということ。テストエンジニアは製品の品質に責任を持ち、一方開発者はコードの品質に責任を持っていて、それぞれテストを行うにしてもミッションが異なるので当然テスト内容も変わってくる。
これは初めて聞いた開発体勢でとても理にかなっていると思った。現実としては1~2名のエンジニアで開発するケースもあるので、その場合はなかなか難しいけど、少なくともテストエンジニアと開発者というそれぞれの視点を持つことは重要だ。
また前セッション(DeNA)でも同じような話をしていたけど、MMF(Minimal Marketable Feature)、つまり価値の優先度が高いものから小さくつくるというのも、改めて重要なことだなと感じた。
まだまだ勉強になったことがあるけどあと一つだけ。実機でのテストにこだわり、それを自動化するための試行錯誤については感動を覚えた。
このセッションを聞くだけでも雪の中来た甲斐があった。ありがとうございました。

発表資料
http://www.slideshare.net/numeha/ios-31199969

まとめ

本当はSensor & Device Showcase 2014 も聞きたかったけど、ここで会社へ。初めてのデブサミだったけどやはり刺激になった。たまには日常業務を離れて世間の波を感じるのは大事だね。
あと雅叙園。さすがのよい施設で、ここでエンジニアのイベントというギャップが素敵だった。