Shoken Startup Blog

KitchHike Founder/CTO

丸の内MongoDB勉強会 #6 やりました #mongonouchi

丸の内MongoDB勉強会 #6 : ATNDをやりました。
勉強会のページはこちらです。
https://github.com/syokenz/marunouchi-mongodb/tree/master/20130123

テーマ

■GridFSハンズオン
発表者: OpenStandia @syokenz
MongoDBのドキュメントサイズは16MB制限がありますが、GridFSを使うと16MB以上のサイズのデータを扱えます。
GridFSを初めて触る人向けのチュートリアルです。
資料: GridFSハンズオン


■SnapDish 画像配信について
発表者: Vuzz @kiyotaman

大人気の料理写真共有アプリ、SnapDishを開発しているVuzzのCTO @kiyotamanさんの発表でした。
SnapDishでは200万枚の画像配信をnginx-image-filter + Mongodb(GridFS)で行っているそうです。
画像の保存先が、なぜS3ではなくGridFSか、という話題にも触れられています。S3とGridFSで迷っている人は必見のスライドです。スライドの所々にでてくる料理の写真がおいしそうです。


■MongoDB sharding C10Kとの戦い
発表者: @crumbjp

MongoDBのソースコードも多く読まれている@crumbjpさんが、実際の経験を元にsharding環境でのC10K問題に関して発表されました。mongosからmongodへのコネクションを回収タイミングを設定できるパッチを作成されています。MongoDBに関する深い知識と障害での経験がバックボーンにあり、非常に勉強になる発表でした。



感想

今回、MongoDBヘビーユーザーの貴重な事例発表とあって、40人の参加者が集まりました。
やはり、他の人がどう使っているかは気になりますね。今後も多くの事例を共有することで、MongoDBの理解と普及に勉強会が貢献できればと思います。

第7回は2/19(火)予定です。次回もMongoDBヘビーユーザーの発表が決まっております!

丸の内MongoDB勉強会 #5 やりました #mongonouchi

丸の内MongoDB勉強会 #5 : ATNDをやりました。
当日の資料はこちらにあります。
https://github.com/syokenz/marunouchi-mongodb/tree/master/20121218

テーマ

今回は「ソースコードリーディング入門」と「MongoDBをカスタムビルドしてみよう」でした。

ソースコードリーディング入門
担当: OpenStandia @syokenz
git grepを使用して、mongodの起動オプションである"noscript"オプションがtrueの場合の処理を調査する、というハンズオンを行いました。


■MongoDBをカスタムビルドしてみよう
担当: OpenStandia @syokenz
標準で用意されているMongoDBのREST APIにはfindとinsertしかありません。今回はdeleteを追加してビルドしました。

感想

今回はソースコードリーディングということで、なかなかマニアックな人が集まりました。丸の内MongoDB勉強会も5回目を迎えて、日本のMongoDBに詳しい人たちが少しずつ集まって来ていると実感しています。詳しい人の一人、楽天の窪田さんには次回の勉強会で発表してもらうことになりました!

次回のテーマ

第6回でついに外部発表者のお願いに成功しました。
楽天の窪田さん、snapdishの清田さんが発表してくれます。これは豪華!とても楽しみです。

日本語で読めるMongoDB(薄くない本)

日本語で読めるMongoDB関連の書籍と言えば薄い本が有名ですが、こちらは薄くはありません。

MongoDB in Action の和訳本がついに明後日(12/14)発売されます!
ほんの少しですがご協力させていただき、訳者の玉川さん(@tamagawa_ryuji )に献本いただきました。
f:id:sfujisak:20121212232511j:plain

日本語版の付録としてMongoDB v2.2の新機能紹介が巻末に追加されています。そのリファレンス先に、丸の内MongoDB勉強会で発表した資料のURLを紹介していただいてます。
ご丁寧に訳者まえがきでも取り上げていただき、うれしいかぎりです。

訳者の玉川さんと本日のMongoDB Tokyo 2012で初めてお会いしました。
プライベートの時間を使って翻訳されているそうで、大変驚きました。この本は3ヶ月くらいで一気に翻訳されたそうです!

私は原本を持っているのですが、英語だと通して読むのはなかなか大変で、トピックだけ拾い読みして、後は困ったときに辞書的に使っていました。
和訳本は本日いただいてまだ1章しか読んでいませんが、RDBとの違いやMongoDBが開発された背景など、英語では読み飛ばしていたか忘れた部分をじっくりと日本語で読むことができ、大変新鮮です。
日本語についても、Hadoop,HBase,Jenkinsなど数々のオライリー本を翻訳されている玉川さんなので、全く違和感無く読めます。

MongoDBを使い始める人にはもちろん、MongoDBをすでに使っている人にも新しい発見がある本だと思います。


MongoDBイン・アクション

MongoDBイン・アクション

MongoDB Configパラメータ解説

丸の内MongoDB勉強会 #4 : ATNDで@fetarodcさんが発表した「MongoDB2.2 全設定値解説」の内容をスライドにまとめました。


Configパラメータを
・ログ、情報出力
・インターフェイス
・セキュリティ
・チューニング
・その他
に分類して、解説しました。


もとになった資料はgithubにあります。一部設定の検証を行い、コマンドレベルの手順を書いています。
marunouchi-mongodb/20121106/fetarodc at master · syokenz/marunouchi-mongodb · GitHub

【TechBuzz】第3回.js系勉強会に行きました

【増員】【TechBuzz】第3回.js系開発技術勉強会 〜先行事例紹介/交流会〜 yeomanでフロントエンド開発を効率化する方法 / CoffeeScriptとTypeScriptの比較 / tmlib.js at http://www.socialtoprunners.jp/ : ATNDに行きました。


今回は3人の発表がありました。
■yeomanでフロントエンド開発を効率化する方法
 @anton0825
 資料:http://hosokawa0825.github.com/slides/IntroductionOfYeoman/#/

  • メモ

yeoman(よーまん)
 解説サイト
 http://jser.info/post/31650273373

yeomanを一番使いやすいアプリ構成
サーバ側:json APIを実装
クライアント側:backboneなどでjsonを受けて表示する

参考サイト
http://havelog.ayumusato.com/develop/others/e516-yeoman.html



■CoffeeScriptとTypeScriptの比較
 @kabochha

  • メモ

【TypeScript】
MSが作ってる
C#Delphi作った人が作ってる
静的型付け(オプション)
クラス宣言
モジュール・サポート
jsのコードがそのまま動くので、覚えなくても使える
本家サイトのSampleはだいぶ役に立つがまだまだドキュメントは少ない
開発環境
MSから各エディタの拡張を出している、EmacsVimSublime Text
Visual Studioメイン
他jsとの連携
TypeScript上で扱えるように定義ファイルを用意する必要がある
NodeやjQueryは用意されている
プロジェクトの継続性
Microsoftのなで。。

【CoffeeScript】
RubyPythonライクな構文
シンタックスシュガーやコード量の削減により、可読性が向上
jsとの互換性がないので別言語として覚える必要がある
日本語の書籍が出てる
ネットでの情報が豊富
The little book on Coffee Scriptの和訳がネットで公開されている
開発環境
Emacs, Vim, Eclipse, Webstormなど多い
他jsとの連携
HTML側で読み込ませておけばよいので問題なし
プロジェクトの継続性
Railsデフォルト

【結論】
CoffeeScriptに静的型付けがあったら最強。

発表者の会社では10万アクセスを超えるゲームでの使用を検討した
jQueryは重いので使えない
なので、TSかCS


■tmlib.jsの紹介
 @phi_jp
 資料:http://www.rvl.io/phi/tmlibjs
 公式サイト:http://tmlife.net/tmlib

  • メモ

ゲームプログラマやりながら執筆してる23歳が作っているjsライブラリ。
JavaScript をより使いやすく, より便利に, そしてより豊かに」

BGMを流しながらのライブコーディングが楽しそう。

ゲームや動く物が簡単に作れるライブラリという印象。これを使ったら楽しく開発できそう。Enjoy Programingの概念はRubyと共通しているかも。