テクノロジーの最近のブログ記事
エバンジェリストのdoryokujinさんの能力の高さもあって、注目度の高いMongo DBの勉強会を見ながら書いている記事。
1. MongoDB機能解説
アーキテクトとして、システムのDBの選択する際に、下記の迷いが生じます。
・RDBかKVSか?
・KVSならばどれなのか?
・KVSにはOnMemory DBいるか?
MongoDB使ってアプリ作りたいけど、なんでMongoDBなのかに答えを出さなでせんたくするのがいやなんだよなあ・・・。
パフォーマンス良さそうだけど、SQL Serverの開発環境の素晴らしさと比べちゃうと、そのあたりの貧弱さが気になる。
2.NijiBox「ソーシャルアプリのプロトタイプ制作にMongoDBを活用」〜PHP+Sleepy.Mongooseでお手軽永続化〜
アプリ開発のXP開発をつづけるため、DBの変更がたくさん発生する。開発スタッフ間でスキーマ共有するのにもコストがかかる。
ログ分析にはMongoDB使う予定だったが、プロトタイプ揮発にも使うことにした。
スキーマがないので、最初はMongoDBでアプリをつくって、最終的にはDBに移行する。(予定)
プロジェクトへの効果は、ソースコードだけ共有すればいいので、DBのスキーマ共有コストが減った。
また複雑なクエリがかけないので、あとでRDBに変更したときにO/R Mapperがスロークエリーを発行する可能性が低い。
スキーマーレス + クエリが協力 = ストレスフリーなアプリ開発。
Cassandraなどに比べて、MongoDBはRDBに近くて使いやすい。
アプリ開発者にとってはShardingやReplicaはおまけ。
悪い点: 信頼性が低い。安定性が全然ない。(・・・えっ?)
つまり、信頼性や安定性を犠牲に出来る部分で使うと良い。認証、課金系では使う気がおきない。
信頼性を担保しようとすると、パフォーマンスが落ちる・・・という本末転倒な、闇MongoDBワールドに陥る。
Capped Collectionはログ解析のためにあるといっても過言ではない。
キャッシュとしても使えるかもしれないが、他のキャッシュDBのほうが良い。
--------------------------------------------
最後の雑談が凄く興味深い:
・開発スタッフはMySQLにもMongoDBにも詳しくない。DBスキルが低いので、MySQLにしても高度な事ができない。
・割りきって、単純な使い方だけでアプリを開発してしまおう・・・。
3.MongoDBのチューニング
並列に実行計画を実行して一番早いプランを採用する・・・っていいなwww
4. MongoDBを使ったモバイルゲーム開発
・東京ガールズスナップ 3ヶ月で開発4月リリース。実写を使用して画像合成。
・「Java+MongoDBに絶望した」を追体験してやるぜ・・・という気持ちでやってみた。(node.jsがいいらしい)
・Web2台、DB3台 (Shardingせずに、Primary、Secondary、Secondary)
・カラム追加せずに機能追加できるのが良い。最初のノウハウ貯めるオーバヘッドを除けば開発効率はいい。
・秒間500UpdateでLockが4%程度
・1台でCPU1個しか使わないのはもったいない。
・Memcachは使わない予定だったが、TokenやSessionでは使ってしまった。
・決済はAPIで別サーバ呼び出しなので、MongoDBでも問題なかった
・CPU(コア)が複数あったとしても、一つのプロセスがメモリが幾らのっていても使いきってしまうので、1サーバ1プロセスにすべき。
第9回 データマイニング+WEB 勉強会@東京 ( Google Group ) 主催者まとめ
Ustreamで観戦してたけど、いろいろ覚えておくことがあったのでまとめ。
1. 初めてでもわかる Complementary Naive Bayes 分類器 (講師:@yanaoki)
開発Webアプリ さまったー
アルゴリズムの詳しく内容を知るには、朱鷺の杜 参照。
2. お金をかけず広告配信のログ分析システムを作った話 (講師:@karubi)
Kauri社長さん。プレスなどでしばしば目にしていたので登録してみた。
安くシステムつくって営業には資金を投資するという姿勢。
そう言っている割に、システムカッコイイし使いやすい。たぶん、ハードウェアへの無駄な投資をしないという姿勢。
3. 分析屋のためのマーケティング講座 (講師:@mmlab_jp)
ロックオン・MMLabの中川さん。主にマーケティングの話。
4. Mecab以外の形態素解析 – 新たなわかち書き機能を実装してみた- (講師:@super_rti はてな )
MeCab最高!ってことが証明されたwww
PREZLカッコイイ!
5. 画像認識の初歩、SIFT, SURF特徴量 (講師:@lawmn)
素粒子物理でPhD.だけど仕事に無関係・・・。物理多いなあ。価格.COMにお勤め?
SIFT (1999) Googleの論文 C#ライブラリ libsift 回転普遍、拡大縮小普遍
SURF(2006) SIFTの速度向上。OpenCVに実装されている
HOG(2005) Histogram of Oriented Gradient 大まかな特徴抽出
参考URL:
3日で作る高速特定物体認識システム (2) SIFT特徴量の抽出
---------------------------------------------------------
【SIFT/SURFの話をもう少し詳しく解説】
SIFTは、LOGだと計算量が多すぎて使えないので、DOGを用いている。
特徴点の抽出→ 特徴量の計算をしている。
SIFTよりSURFの方が特徴点検出を高速化しているが、誤認識がでるので認識率はSIFTの方が上。
Bag Of Featuresを使って、複数の画像から同一のオブジェクト抽出をおこなう。これは、Bag of Wordsの画像版。そのため、特徴量をVisual Wordと呼ぶ。
6. ペアトレードを実装してみた (講師:@yokkuns)
実装してもうまく儲けられるとおもえない・・・。確信あれば投資するんだけどなあ。
7. 「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜 (講師:@doryokujin)
P23: Graphの種類の関係図が分かりやすくて良い。
P32,33 Graph DBはIndex-Freeであることが条件。ここ重要。DBの設計思想の違い。ある種のアプリケーションの動作速度の最適実装になる。グラフをB木でもつのはコストが大きすぎる。
Graph DBの比較および、Tool群の紹介。Graph DBを使ったからこそできるアプリケーションが思いつけば使いたいなあ。
8. Newman アルゴリズムによるソーシャルグラフのクラスタリング (講師:@komiya_atsushi)
グラフのクラスタリングなんて、30年前には必要なかったからなあ。ほんと近代の計算科学の分野だ。
おまけ:
前日にあった、第4回 自然言語処理勉強会のまとめ
Windows 2008 R2の上でWindows 7をゲストOSとして利用していますが、高速化のためにはいくつもの注意点があるようなのでまとめておきます。
ちなみに環境としては、Intel Corei7 930, Crucial SSD 128GB (OS, VHD設置ドライブ)、メモリ12Gです。
自分の期待値としては、ホストOSの50~70%の性能がでればよい(参考資料)・・・というところなのですが、現状では10%以下です。ホストOSのCPU利用率は1~3%程度・・・。
ホストOS側のタスクマネージャーでは表示されているCPU利用率は、ゲストOSのCPU利用を含まないので、実際には、パフォーマンスモニターでHyper-V Hypervisor Logical Processorで見ないとわかりません。これでみると、かなりいい値がでてきます。CPUはほぼ100%利用できる感じですね。
それでも、遅いので色々調べたら、細かいTipsがありました。
高速化Tips:
ホストOSでVHDファイルをセキュリティ検査の対象外にする。
VHDは容量固定のほうがパフォーマンスがよい。(データ)
統合コンポーネントをインストールする。(リンク)
Hyper-V Managerを閉じる
IPv6をホスト・ゲスト双方で切る
ホストOSの仮想ネットワークカードのLarge Send OffloadをDisableにする。
ゲスト用とホスト用のネットワークカードを分ける。可能ならホスト毎に物理NICを増設し、仮想ネットワークアダプタをつくる。
手動でパッチをあてる。(パッチ一覧)
ゲストOSにWindows 2008 Serverを使う。
その他 Tips
仮想ネットワークアダプタ周りはチューニングしないと、IEなんかがもっさりして使い物にならないですね・・・
先日また、ブランドダイアログのGRIDYの新聞広告が、日経に掲載されていました。
またもや、全面広告です!

7月にも全面広告出したときにも記事( GRIDYが日経新聞に全面広告 )を書きましたが、今日みたら随分とウェブサイトに変化がありました。
あれ? P2Pは? 遊休資源の有効活用は?
お知らせ
本日、約3,900社にご利用いただいている完全無料のSaaS型クラウド・グループウェア『GRIDY(グリッディ)』は、SaaS型グループウェア・SFA/CRM「Knowledge Suite(ナレッジスイート)」へと進化し、「GRIDYグループウェア」を始め、「GRIDY SFA」、「GRIDY CRM」、「GRIDY CENTER」、「GRIDY AGENCY」、「GRIDY AFFILIATE」からなる6つのアプリケーション群と、企業のインフラ環境に応じたクラウドを提供するサービス総合ポータルとして生まれ変わりました。
・・・つまり、無料は縮小の方向で、有償グループウェアソフトの販売会社になったというこですね。
経営的には実に正しい選択です。
でも、黒歴史のP2P Gridyの説明イメージ残しておいてほしかったな・・・。おかげで過去記事の図表がリンク切れです。(Google様からキャッシュを探してきて復元しました)
しかし、サイボーズ、SalseForce、シナジーマーケティング、など有象無象の競合がいる中、どうやって戦っていくんだろう。
価格表 (C社=サイボーズ、D社=シナジーマーケティング かな?)
有料版GRIDY
有料プライベートGRIDY
利用ユーザあたり課金のない料金体系を作成で差別化しているけど、別段安くないから乗り換え動機は薄いなあ・・・。
これならAmazone EC2の方が価格メリット大きそう。なんにしても一度使ってみたいなあ。
しかし、GRIDY記事のアクセスログを解析するとサイボーズからのアクセスが多い・・・。「Gridy 問題点」とか「Gridy 2ch」とか、かなりブランドイメージを気にされていますね。
結論からいうと、Google Appsは使い物にならない!
以前より現場から、「メールがエラーになる場合がある」というクレームがあがっていたのですが、借りていたValue-DomainのDNSの不調もあり、「原因不明」のままにしていたGoogle Appsでのメール不調ですが、原因がGoogle側にあることが確定しました。
Google Appsで、登録ユーザには普通にメールが届くのですが、グループメールアカウントにメールを送ると、下記のような「Bulk Emailガイドラインに抵触したからチェックしろよ!」というエラーメールが返って来ます。昨日までは普通にメールが出せていたのに急にです。
This is an automatically generated Delivery Status Notification
Delivery to the following recipient failed permanently:
Technical details of permanent failure:
Message rejected. Please visit http://www.google.com/mail/help/bulk_mail.html to review our Bulk Email Senders Guidelines.
違うSMTPサーバからメールを出すと届くので、どうやら自分の使っているSMTPサーバが「大量メール発信サーバ」とGoogle側で判断されてしまっているようです。
件のSMTPサーバは、いくつかのWebアプリケーションでメール送信サーバとして利用はしていますが、SPAMと呼ばれるほどMailを送信しているわけではありません。せいぜい1日100通程度、Gmail向けメールは10通に満たない程度です。
Google Apps Known Issues こちらに(日本語には記載がないので英語を選択する)書かれているように、既知の課題のようで、「SPFレコードをしっかり設定しても、ダメだったら、個別に連絡ください」 (もちろん返事など来ない)、という有様。「返信はスプレッドシートで集計されます」がよけいに腹立たしい。
Googl Apps ディスカッショングループでも、Google Apps Helpでも困っている人がいるようですが、2月頃から問題がわかっていて、未だに解決していません。誰からも反応がもらえない人もいます。怒り狂っている人も。
10万円払ってでもすぐに解決してほしい問題なのに、対応の進捗すらわからない・・・・、半年近くたってもIssueのまま。これはGoogle Appsのビジネス利用はできないということです。
他のメールサーバに乗り換えます。
気になったTechCrunch記事を備忘録がわりにまとめておきます。
キャピタル関連
SequoiaとGreylockがOpenDNSにビッグな投資
黒字経営にもかかわらず事業拡大のために投資を呼び込む。ビジネスを拡張させる意思が高い。しかし、たかだかDNSサーバでそんなに儲かるものなのか? どうやらビジネスモデルとしては、セキュアなDNS・・・つまりDNSポイゾニングを喰らわないで、意図しないサーバや、危険なコンテンツのあるサーバに接続しないようにできますよ・・・ってこと。
Y Combinatorから2件。
Y Combinator傘下のPicurioは団体利用に適した写真共有化サービス
旅行や結婚式で、参加者がそれぞれ撮影した写真をルームという概念で共有するサービス。魅力がわからない。Flickrのニッチを狙ってるみたいだが。
Y Combinator傘下のMixpanelはGoogle Analyticsよりも高度なアクセス解析/ユーザビヘイビア解析を提供
Google Analyticsと競合するのは苦しい。僕は諦めた。解析ではなく、示唆まで落とし込み作業として提示しないとユーザバリューが創造できない。そして、現状でそこまでやると開発リスクが高すぎる。
私のテクノロジー業界情報収集の七つ道具にTech Investor Newsが加わった
日本でもプレスリリース多すぎて、ほしい情報だけ手に入れたい。自分でつくるかな・・・。でもベンチャー投資情報って公開全然されてないんだよね。
慎重ながらも楽観的:CrunchBase Q2レポート、VC投資とベンチャー出口に上昇の兆し
投資額がうらやましい。国内も産業革新機構に期待しましょう。しかし、こっちの記事と随分趣がちがうな。
Amazon Buys Zappos; The Price is $928m
靴屋が1000億円かよ。
バーチャル通貨の価値:Super Rewardsの本当の値段は$50Mに近かった
これは興味深い。日本でいうとポイントサイトのように一見みえるが、Super Rewards、Offerpal Mediaをみると、「貴方のお友達をお金に変えよう」的なサービスに対して、対価を現金でなく仮想通貨で行う仕組みのようだなあ。運営会社の違うポイントサイトや、アドネットワークが共通の仮想通貨を利用している・・・そんな雰囲気。
サービス関連
Rakuten―国外では無名だが、日本最大のeコマース・サービスがAmazonに挑戦中
楽天イメージ悪すぎなんだよな。しかし、各社がワールドワイド展開を絞っている現在は、グローバル化のチャンスだね。
「Twitterにビジネスモデルがない」とまだ言う人たちにはまったく興味が持てない
馬鹿には見えない服・・・・ですか? すばらしい!
Face.com―顔認識技術でFacebookの写真を一括タグづけできるサービス
ああ、これはいい。なんに使えるってわけでないし、お金にもならないけど、技術的におもしろい。
リアルタイムWeb
リアルタイムWebはソーシャルな顧客関係管理(Social CRM)の到来を告げ, 動的な関係性構築のないマスメディア広告は非力化
