MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜

カーナビやスマートフォンのマップアプリなど、目的地への最短ルートを一瞬で割り出してくれるサービスのお世話になっている人も多いと思いますが、その仕組みがどうなっているのかを知っている人はほとんどいないはず。その処理には、ルート探索専用のアルゴリズムが用いられているのですが、そんなアルゴリズムの動作する様子や、種類の違いによる結果の変化をわかりやすく見せてくれるサイトが「PathFinding.js」です。 PathFinding.js http://qiao.github.io/PathFinding.js/visual/ このサイトでは、スタート地点からゴール地点までの最短ルートを発見するさまざまなアルゴリズムを、自分で設定を変えながらインタラクティブに体験できるようになっています。2点の間に障害物を配置することも可能で、以下のムービーでは画面左下の緑色の地点から右上にある赤い地点までのル
Photo by Hermann Kaser こんにちは。谷口がお送りします。 ITエンジニアの方の中には「R言語を学習したい」という方も多くいらっしゃるかと思います。 R言語は、データ分析やデータ処理に特化したオープンソースのプログラミング言語です。システムを開発をする他のプログラムミング言語とは位置付けが異なり、統計解析機能が付いていて、解析処理やその結果をグラフィカルに表示することができます。 そのため、多量のデータ解析が求められるソーシャルゲームの解析や、リサーチ、データマイニング、アソシエーション分析が必要な業務の求人が増えています。 また近年データサイエンティストが注目されていることもあり、今後求人が増えることが予想されます。 そこで今回は、プログラミング未経験~初心者の方が、なるべくコストをかけずにR言語に触れられて、学習に役立てられるコンテンツを10件ご紹介していきます。
以前、オセロの対戦AIの作成しましたが、そこでは実装を簡略化する為に盤面の価値を 盤面の価値 = 自分の石の数 – 相手の石の数 という単純な方法で決めていました。 でも、これには問題があります。 同じ石でも配置場所によって価値は異なるはずです(例: 角は最強)。それが考慮されていません。ゲーム終盤になってくると石の数が重要になってきます。でも序盤から石の数を重視するのは方向性としておかしいです。 という訳で、 序盤から中盤では石の配置場所を重視する終盤では石の数を重視する 形で盤面の価値を算出すれば、結構良さそうなAIになりそうです。 しかし、今度は 「序盤」「中盤」「終盤」をどのように区別するのか?石の配置場所の強弱はどう決めるのか?同じ配置場所でも周囲の状況次第で強弱が異なるのでは? という問題が出てきます。これは作るのが面倒臭そうです。 どうにかしてお手軽かつそこそこ強そうなAIを
ここ最近、自分が見ているプロジェクトの1つで、うまくスケジュール通りに作業が進んでいなかったので、その対策をした。 その中でも特に効果があった2つを紹介する。 背景 簡単にプロジェクトの背景を説明する。 スクラムっぽい開発をしている スプリントの期間は2週間 スクラムマスターはいるが専任ではない すでにリリース済みで運用中のWebサービスである 基本的によくあるスクラムっぽい感じで、2週間というタイムボックスの中にチームが作業可能なストーリーを突っ込んで、ひたすら消化する。 スプリントの最後には、レビューをして、次のスプリントの計画を立てる。 スクラムマスターは、一応自分が担当しているが、専任ではないし、他のプロジェクトも見ているので、注意深くチームを見れていない。 課題 以下のような課題があった。 バグの修正や問い合わせ対応など、計画時に含まれていなかったタスクがスプリント中に増えてしま
はじめに 久しぶりに Aho氏, Sethi氏, Ullman氏の書いた Compilers(レッド・ドラゴン・ブック)という書籍を目にしたので、昔、コンパイラを作った時の事を思い出しながらコンパイラについてまとめてみました。 Translator (翻訳) Translatorとは、一つのプログラミング言語(Source Language: 原始言語)で書かれたプログラムを入力として取り、別の言語(Object Language or Target Language: 目的言語)のプログラムとしてつくり出すプログラムです。 原始言語が FORTRAN, C, Pascal などの高水準言語で、目的言語がアセンブリ言語や機械語といったような低水準言語である時、そのような Translator をコンパイラ(Compiler) と呼びます。また、原始言語がアセンブリ言語で目的言語が機械語であ
収集した情報等をメール送信したいときにpostfixを使ってるのだが、設定を毎回調べてなんかしら詰まったり詰まってなかったり手順が面倒だったりするんだけど、メール送信だけしたいのでpostfixみたいな機能もりもりな物よりnullmailerを設定してみようと googleメール経由でメールを送信する。 $ sudo apt-get install nullmailer mailutils $ sudo vi /etc/nullmailer/remotes smtp.gmail.com smtp --port=465 --auth-login --user=<メールアドレス> --pass=<パスワード> --ssl 2段階認証を設定してる人はここでアプリパスワードの設定、取得をしてそれを使う必要が有る https://security.google.com/settings/securi
999階を目指して突き進むスマホ用ゲーム、ダンジョン999Fのメイキング記事が公開されました。 ダンジョン999F - 開発ノート 記事の内容はデータの作り方やプロトタイプからの変化試行錯誤の様、個人開発ゆえの素材の割り切りと拘り、バランステストや開発以外に必要なものなど、多岐にわたります。 キャラクターはモデリングしスプライトアニメーション化。表情は手書きで、そのほうがアニメ的に豊かな表現が出来るんだとか。 素材の大量生産。色変えバリエーションは個人開発にとって頼もしい見方ですね。 ゲームバランスはExcelでは無くGoogle Drive。何処でも操作出来るのが良いとか。 最近良く見るようになったTrelloで進行管理 バランス調整でゲームを繰り返しプレイするのが面倒なので追加した「自動戦闘システム」。使ってみたら面白いのでゲームに組み込んだそうな。 内容を軽く紹介しましたが、本記事で
================ 「Slack成長の秘密は何なのでしょう?」車内にBluetoothを通した声が響きます。 「あなたがたが、Slackに行ったことを私たちにもしてほしい」と、今後クライアントになるであろう、成功を収めたSaaSアプリのCEOが、彼のプロダクトのリデザイン依頼をしてきました。 それから私は今までに何百回もした話を始めました。 この一年、ほぼ毎日のように同じ質問を、Slack成功の鍵について分析を試みるクライアント、投資家、デザイナーから浴びせられていました。 Slackは今や世界を席巻しており、28億ドルの評価額と何十万ものユーザーを持ち、猛スピードで成長しています。 なぜ私にSlackの質問がくるのか? 私はMetaLabというデザイン会社を経営しています。 私たちは普段表舞台には出ないので、おそらく、あなたはこの名前を耳にしたことはないでしょう。しかし、私
連載「Webサイト・アプリ高速化テクニック徹底解説」の第3回は、前回の「ユーザーの体感速度を高めるためのJavaScriptチューニング(前編)」の続きです。この後編では、「ユーザーの操作を阻害しない」方法についてJavaScriptのシングルスレッドやイベントループを交えて解説し、HTML5のWeb Workersについても紹介していきます。 前回は、ユーザーの体感速度を向上させるための方法として、3つのうち「ページを素早く表示する」と「ユーザーに素早くインタラクションを返す」を解説しました。今回は、最後の「ユーザーの操作を阻害しない」について詳しく解説していきます。 ユーザーの操作を阻害しない JavaScriptによる処理が重くなると、いつまでも画面が更新されなかったり、ユーザーの操作が止まってしまったりということがあります。止まっている時間が長すぎると、ブラウザから応答がないという
1ヶ月くらい前、 「バグをドラゴンと呼んだらどうなるか」というTweetを見ました。 確かに、バグをドラゴンと読んだ場合「Sクラスのドラゴンが出ました!」「Aクラスのドラゴンを相手にしてる最中だってのに!」って会話になるし、ドラゴンは結局人の手で生み出されたものってところが中二ファンタジーっぽくて良い— 尾野(しっぽ) (@tail_y) March 18, 2015 これは天才的発想だなと思って職場で雑談で話してみたところ、 同僚のスペイン人エンジニアにバカウケしまして、 それからちょいちょいバグのことをドラゴンと呼ぶようになりました。 せっかくなので、どんな雰囲気になるのかまとめてみようと思います。 先に言っておくと、自分ともう1人スペイン人エンジニアが時々チャット上で使っているだけで、 正直そんなに流行ってないです。 なんかテンションが上がる バグ修正ってマイナスをゼロにするだけで何
数週間前やっと、大興奮の長い旅にピリオドを打つことができました。 2年間かけて私の全精神と愛情を注いで制作したAlto’s Adventureがついにリリースされました。 簡単な道のりではありませんでしたので、その制作過程で私が感じたことをうまく言葉にできるか分かりませんが、 まずはこのゲームをダウンロードして遊んでくれている全ての方に感謝の意を表したいと思います。 このゲームで遊んでくれている方がいるというだけでもう私の努力は報われています。 今回のゲームの制作に関して経験してきたことや、直面した問題などをシリーズで投稿していきたいとずっと考えていました。 何が皆さんの興味を引き、どこまで詳細にお話するかなどは難しい課題ですが、まず簡単なゲームの紹介から始めたいと思います。 Alto’s Adventureは、移りゆくアルペンの美しい景色を背景に、スノーボードの果てしない冒険ができるゲー
(ちょっとメモ)Canvasで便利な javaScriptライブラリ 最終更新日:2019年02月06日 (初回投稿日:2015年01月23日) Canvasで図形やの描画のソース書いていて「わ〜面倒くさい」と思うことが度々あります。 私はまだ超canvas初心者なので、面倒くさがってる場合じゃないのですが、 Canvasで使える javaScriptライブラリがいろいろあるらしいので、後学のためにメモっておきます。効率良くなるんだとか。 基礎がわかってそこそこCanvas使えるようになったらライブラリも使おっと。 (なんだ〜ヤッパリあるんじゃない、あると思ったわ〜ライブラリ) ヒト様の「まとめ記事」を利用させていただいて、大変恐縮なんですが、 これら↓の記事がいろいろ網羅されているのでメモ。 k.ishiwataさんの WEB PIXEL「HTML5のCanvasを使いやすくするライブラ
今どきっぽいというのは、各種JavaScriptライブラリを使うという意味です。ここでは、Bootstrapと、Knockout.jsを使ったサイトを作ってみます。 HTML Serviceの強化 @dz_ さんの記事の[Check! Google Apps Script - UIの実装は HtmlService + Polymer の利用が主流に?] (http://qiita.com/dz_/items/4391ab8c94498cbc512c)に書かれているように、Google Apps ScriptのUI周りに少し手が入ります。 今まではUi Serviceというのを使っていた。JavaとかC++のGUIフレームワーク的な仕組みで、サーバサイドでUIのパネルとかボタンとかラベルを作り、コールバックも定義してあげる仕組み。ただし、生成されるHTMLはHTML 3.2的なテーブルレイア
このドメインは お名前.com から取得されました。 お名前.com は GMOインターネットグループ(株) が運営する国内シェアNo.1のドメイン登録サービスです。 ※表示価格は、全て税込です。 ※サービス品質維持のため、一時的に対象となる料金へ一定割合の「サービス維持調整費」を加算させていただきます。 ※1 「国内シェア」は、ICANN(インターネットのドメイン名などの資源を管理する非営利団体)の公表数値をもとに集計。gTLDが集計の対象。 日本のドメイン登録業者(レジストラ)(「ICANNがレジストラとして認定した企業」一覧(InterNIC提供)内に「Japan」の記載があるもの)を対象。 レジストラ「GMO Internet Group, Inc. d/b/a Onamae.com」のシェア値を集計。 2024年5月時点の調査。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く