今日も適当ダイアリー

PHP や Javascript や Symfony、BEAR.Sunday などのWeb周りのことを中心に。それ以外のことも気まぐれに投稿します。

MongoDB の歴史(MongoDB 2.0 まで) #mongodbjp

つい先日の9月12日、MongoDB 2.0 が正式にリリースされました。
2.0 から始める MongoDB」 という記事を書くにあたって、MongoDB 2.0までの遷移を調べていたのですが思いのほか濃い内容になってしまい、せっかくなのでここで皆さまに共有します。

続きを読む

2.0 からはじめる MongoDB - 第0回 #mongodbjp

一部の方から“SymfonyのMongoDBの人”などと呼ばれたりしますが、実はSymfonyもMongoDBも業務では使っていない、という痛い感じの @madapaja です。

大事なことは最初に言う。という事で、宣伝から始めます。
ここ1年で急伸している MongoDB。日本でもMongoDB JP(MongoDBの日本ユーザー会)が去年の11月18日に立ちあがって以来、勉強会やカンファレンス等も開かれ、盛り上がりは加速し続けています。
MongoDBをもっと知りたい、と思ったら、以下のGoogle グループや勉強会にもぜひ参加してください!みんなでMongoDBを楽しみましょう。
MongoDB JP | Google グループ
「第6回 MongoDB 勉強会 in Tokyo」 : ATND(すでに定員オーバーしてますね。。。)

宣言 2.0からはじめるMongoDB という記事をブログに書く!宣言しないと書かなそうなので…

と大見得を切ったので、MongoDB について最初から優しく丁寧に解説していこうと思います。
ただ、とても一回で終わりそうにないので、これから複数回にわたって MongoDB の基本的な使い方を書いていこうと思います。

さて、今回は「0回目」として、MongoDB のメリット・デメリットやユースケース、特徴を通して“MongoDB とはなんぞや”という部分をお話します。(たぶん割と退屈な内容です。。。)

今回のアジェンダ

  • 設計思想
  • デメリット
  • ユースケース
  • 特徴
続きを読む

TDDBC Tokyo 1.7 for PHP に参加して #tddbc

8/21(日)にタイレルシステムズさんの TDDBC Tokyo 1.7 for PHP に参加してきました。
すでに3週間が経とうとしてますが、あの時感じた事や、今想う事をここに書いておきます。(なので、TDDのやり方やブートキャンプ部分については、今回は触れていません。。。)

なお、TDDBCについてのまとめ記事は主催者である @shishi4tw さんが書かれた記事が詳しいので、そちらをどうぞ。
It's just same as dust ahead of a wind: TDDBC Tokyo 1.7 for PHP を開催しました
http://shishithefool.blogspot.com/2011/08/tddbc-tokyo-17-for-php.html


今回のTDDBCの内容は大きく2つにわかれ、1つめは日本のTDD先駆者である @t_wada 氏によるTDD(BC)についての基調講演を中心とした(いわゆる普通の)勉強会の部分、2つめはTDDをペアプログラミングで実践してみるTDDBCのBCの部分です。

続きを読む

Git のおさらい

8/21(日)にタイレルシステムズさんに会場提供いただいて行われた TDDBC Tokyo 1.7 for PHP に参加してきました。
参加登録に出遅れ補欠だったのですが、@ さんから、

LT してくださる方を 1 名補欠の方の中から募集します。LT してくださる方は LT 枠として、本編にも参加していただけるようにします。題材は広く PHP や TDD に関することなら何でも良い、つまり、開発に関することなら何でも良い、とします。

との言葉をいただき、参加したかったので、LT表明をして参加させていただけることになりました。

そこで、「Gitのおさらい」というLTをしてきましたので、その内容をまとめておきます。
なお、勉強会本編の感想は別記事でアップする予定です。

続きを読む

Symfony温泉に参加してきました! #trspa


[テトラポッドで作業をする人々]


Symfonyユーザー会で企画された温泉ツアーに参加しました。
今回は、主にリリースが迫った Symfony2 のドキュメントの翻訳を一気に進めよう、ということで、7月23日(土)〜24日(日)の一泊二日で静岡県伊東の旅館に行ってきました。



旅館に着いて一発目、靴箱に書かれた「シンニーユーザー会」の文字で吹き出してしまいました。
旅館の粋な計らい。侮れませぬ。


私は、短めのドキュメントを2つ翻訳したのですが、久しぶりに翻訳をして日本語がやっぱり難しいな、と改めて感じました。
結局の所、自然な日本語を作るのが難しい。
ですが、これをきっかけに、SymfonやMongoDBのドキュメント翻訳に出来る範囲で貢献していけたらいいな、と思っています。


それにしても今回のツアーでは翻訳をしていたのに、いつの間にかMacやGitの勉強会になったり、大喜利大会になったりして、なかなかユニークで面白くて有意義な2日間でした。


まとめ:Symfonyユーザー会にはツッコミが多い


他の参加者の日記:
http://yanchi52.blog21.fc2.com/blog-entry-40.html
http://d.hatena.ne.jp/n416/20110726/1311645557
http://shishithefool.blogspot.com/2011/07/2-symfony.html

[symfony2][mongo]「第4回 Symfony2 勉強会」でも、Symfony2でMongoDBと仲良くする方法についてLTしてきました

2011-06-06 に ZyngaJapan さんで開催された Symfony2 勉強会でLTをしてきました。

今回の勉強会では MongoDB 周り以外にもちょっと応用的な内容(動的なフォーム、バリデーションなど)を含むことをやろうと思っていたのですが、あえなく挫折。
そして、時間的に押し押しになっていたことと、LTにしては欲張り過ぎたのか、全然説明できずにLTは終わってしまった感があります。。。
が、スライドは丁寧に書いたので、そちらを見ていただけると嬉しいかな、と思います。
また、これを機に、Symfony2やMongoDBを触り始めていただければ、なお嬉しいかな、と思います。

なお、下記のスライドやサンプルコードは、Symfony2 Beta1 での動作を確認しています。
将来のバージョンでは動かなくなってしまうかも知れませんが、また改めて、このブログでも取り上げようと思いますので、一緒にSymfony2 + Mongoしましょう!

スライド:

http://www.slideshare.net/madapaja/symfony2mongodb

サンプルコード:
https://github.com/madapaja/MadapajaMongoWikiBundle

ツッコミお待ちしてます!

「第2回 Symfony2 勉強会」でSymfony2からDoctrine MongoDB ODMを使ってみる、というLTをしてきました!

2011-01-15にZynga Japanさんにて開催された、Symfony2 勉強会でLTをしてきました。
内容は、Symfony Adventで書いた記事をざっくりまとめ、現時点での最新情報に更新しただけなのですが、Symfony2+MongoDB ODMの基本的な使い方をご紹介しました。

この勉強会は、なかなかスパルタ、というか、あまり説明をしないで、とりあえず作ってみやがれ!的なノリで進行していくので、事前情報なしだと結構ひぃひぃですw
でも、やはり、習うより慣れろじゃないですけど、やっぱり最初はトライ&エラーを重ねていくしかないわけで。
それこそ、フレームワーク始めて!っていう方から、Symfonyのスペシャリストまで、いろいろな方がいる中で、こーすればいいよ!だったり、あーでもない、こーでもないというやり取りをしていくのは、適度な緊張感があって面白いです!

勉強会全体については、日本ユーザー会の下記ページをご覧ください。
http://symfony.gr.jp/blog/20110116-symfony2-workshop2-report

@hidenorigoto さん、Zynga Japanの皆様を始め、運営の皆様、参加者の皆様、本当にありがとうございました!
私も十分に楽しみましたよ!

Symfony2 + MongoDB ODM を使ってみる

この記事は、Symfony アドベントカレンダー2010 に参加しています。



投稿時の設定を間違え、12/14付けになっちゃってますが、Adventカレンダー15日目の記事です!(投稿も15日早朝です)
日付変えちゃうとURL変っちゃうのでそのままにしてありますが、ご容赦くださいませ〜


と発言したので、今回は Doctrine MongoDB ODM を Symfony2 から使ってみる。という、割と初心者向けチュートリアル的な記事です。

今回使用した環境は下記の通り。

  • PHP 5.3.3
  • MongoDB 1.7.3
  • Symfony2 PR4
  • Doctrine MongoDB ODM 1.0.0 beta1
  • PHP Mongo Extension 1.1.0 (pecl)

MongoDB ODM ってなに?

ODM は Object Document Mapper の事で、Doctrine2 のORM(Object Relational Mapper)によく似ていて、PHP 5.3.0+ のオブジェクトをMongoDBのドキュメント(RDBのレコードに相当)として簡単に扱えるようになります。

Symfony2 から MongoDB ODM は標準でサポートされているので、早速ためしてみたいと思います。

続きを読む

「第1回 MongoDB JP & CouchDB JP 合同勉強会 in Tokyo」でMongoDB 地理空間インデックスについてLTしました+

昨日(2010/12/12)開催された「第1回 MongoDB JP & CouchDB JP 合同勉強会 in Tokyo」で、MongoDBの地理空間インデックスの紹介をLTとしてやりました。

初LTで緊張しまくってましたが(?)皆様の暖かいまなざしに救われ、なんとか無事に終われました。

勉強会全体の内容については、主催者でもある@doryokujinさんがまとめられた記事をご覧ください。
「第1回 MongoDB JP & CouchDB JP 合同勉強会 in Tokyo」を開催してきました! - doryokujin's blog

で、地理空間インデックスに関するいくつかの補足と、コピペ用のテキストを書いておきたいと思います。

続きを読む

MongoDBの地理空間のインデックスを試してみる

MongoDB面白いですね。
ドキュメントが親切なのでありがたいのですが、なかなか日本語の記事が無かったりするので、Geospatial Indexingについて試してみた事を投稿しますよ!

マニュアル:MongoDB internal corp site


Geospatial Indexing は MongoDB ver1.3.3以上で使えます。

地理空間のインデックスとは

読んで字のごとくなのですが、MongoDBでは二次元地理空間情報(多くの場合、緯度経度情報)をインデックスとして検索をかけることが出来ます。

最近のガラケースマートフォンからは簡単にGPS機能を利用することもできますし、PCブラウザなどでも位置情報を取得出来るようになったり、html5のGeolocation API(厳密にはHTML5に含まれてはいない)の登場などで、今後、ますます位置情報の利用頻度は高くなるんじゃないかと思います。

でも、位置情報って検索が面倒だったりして、そのままで使いやすい情報ではないです。

GeoHashやGeoHexなどというエリア(面)情報として文字列で保存する方法などもありますが、一長一短。

例えば、GeoHashは、文字数が長いほど詳細なエリアを表し、検索なども非常に使い勝手がいい(文字列比較で済む)のですが、その特徴上、距離でのソートが難しかったり、検索エリアの範囲を細かく指定しづらかったりと、デメリットもあります。

どんな技術も、制約と利便性のトレードオフなので、上手く使い分けてやる必要があります。

今回は、MongoDB の Geospatial Index を用いて「近い店検索」のようなものを実験してみます。

続きを読む