Twitterからミリフェスの地図を作成するサービスを作った #imas_ml

2015-07-07   treby   エンジニアリング  , , このエントリーをはてなブックマークに追加

ふと思い立って表題のようなそんなサービス作りました。

MlMaps Generator

mlmap-overview

動機としては、「@t3_さんの自分用地図いいな」→「みんなミリフェスのスペースアピールしてるな」→「これ自動で地図作れるんじゃね?」→作ってみたという感じです。

とりあえず、完成した時点で寿命が一週間ないというw(イベント前一週間切ってる)でも、個人的にフロントエンドの勉強になったから良いかな。

技術的には、基本的に以下のサービスのマッシュアップな感じです。

流石に3時間じゃ無理でしたが、それなりに頑張ったので最低限使っても良いかなレベルにはなっているのではないかと。技術的には、フロントエンドが楽しかったですね今回。

たくさん参加する人がいるとその分地図も賑やかになります。

mlmap-usecase

なお、負荷的な面は何も対策しておりませんので、愚直にフォローしている人一覧取りにいきますし、愚直にユーザー情報を取りにいきます。フォローしている人が多いと時間かかるかもしれませんし、何回もやるとTwitter側のアクセス制限(API Limit)に引っかかるかもしれませんのでご注意いただけますと幸いです。

コードの方は例のごとく、オープンソースな感じなのでPull Request等お願いできますと幸いでございます(余談ですが、ふとした瞬間にimas Organizationがとれてしまったので割とエンジョイしています)。というかスタイルシート書くのを放棄して各要素のstyle属性にcss直書きしているので分離したい。あとドキュメント。。。テストは、、、これ拡張するのかな……

以上、ご確認いただけますと幸いです。

border botの観測拠点を作りました

2015-05-06   treby   エンジニアリング  , , , このエントリーをはてなブックマークに追加

特に旅行の予定もなかったので、ゴールデンウィークは飲み会・イベントを除けばひたすらborder botちゃんと戯れていました(botに”ちゃん”づけする呼び方は他の方がされているので知ったのですが、何だか愛着が湧いて良いですね)。

で、いざ戯れるといってもいろいろ方向性はございまして、今回のケースですと大きく一つは先日やったようなインタラクティブ機能の追加(もっともこれは本質とは関係ないのですがw)、もう一つがせっかくデータがあるんだから文字だけじゃなくてグラフでも見られるようにしようぜ、的なところでした。

ただ、一度にあれもやりたい、これもやりたいやっておりますと大抵全部ダメになるのでよろしくないです。となれば決めの問題にはなるのですが、インタラクティブの部分は先日かじったこと、ボーダー観測業界におきましてはborder botはスクフェスのbotに様々な面で後れを取っているということから今回はWebでのボーダーの可視化を目標に作業することにしてみました。

出来上がった成果物がこちらです。

やっていることといえば、以前より溜め込んでおりますデータをRailsから適宜引っ張ってきているだけなのですが、やはり手軽にグラフ表示できるようになると違いますね。

作るにあたり、どういう風にモデルを設計しておこうか、というのは結構前から興味のあるところではありました。今回の実装としては今回ミニマムにRDB側では一つのイベントを表すEventモデルとイベントの種別を表すEventTypeを作ることにしました。

ボーダーの経過情報とEventモデルの結びつけとしては、それ用のcolumnを用意するという実装になっています。ただ、これだと1イベントで複数のボーダー軸が必要なHHP型のイベントに対応できないのでこの辺りどうするか考えなければなりませんね。

あと、イベントのSeedを持ってくるのが結構大変でした。基本はゲーム内のランキングデータのところを拝借すれば良いのですが、これだとイベントの日にちは分かっても時間まで書いていないのです。その辺はWikiを参考にさせていただきました(有志の方々に感謝!)。そういえば少し前までは17:00スタートの16:59終わりでしたね。

グラフは当初Highchartsを考えていましたが上手く使いこなせず、試しに使ってみたamChartsがほとんどデータの加工なしでいけたので、そのまま使っています。

なお、例のごとくソースコードは公開しております。ご興味ある方は開発に参加いただけますと私としてはありがたいです。

ちなみにボーダーのデータストア(InfluxDBホスト)側の実際の負荷をあまり見ていないので、アクセスいっぱいくるとどうなるか、とかよく分かりません!ほどほどにご活用いただけますと幸いです(こちら側でも早いうち対応したい)。

というのと、もしアフィリエイト経由でグッズ諸々買っていただけるとサーバ代とかお酒代になります。よろしければ!(宣伝)

と、まだまだ課題や改善点はあるのですが、ゴールデンウィークというまとまった期間に一個完成までもっていけたのは良かったかな。

Sendagaya.rb #99

2015-03-31   treby   日記・雑記  , このエントリーをはてなブックマークに追加

Sendagaya.rb #99で出てきたもののメモ。

基本的にはこの記事で紹介されていたgemをさらっていっていた。多分以下のツイートがあったからだと思う。

ここではその中でも個人的に気になったもの、取り入れてみたいものをピックアップしてみる。

  • The Recipe for the World’s Largest Rails Monolith
    • Rails Appをスケールさせるやり方のような
    • Ruby on Alesなるイベントがあったのか……
  • DatabaseRewinder …… テストに使うDatabaseCleanerを置き換えて、さらに早いらしい。入ってなかったので入れてみたい。
  • Annotate (aka AnnotateModels) …… modelファイルにschema情報を書き出してくれるやつ。本番環境には無害なので導入したい。
  • Rails View Annotator …… Viewファイルの場所が簡単にわかるようになるやつ。今はいらなさそうかな。
  • 番外編:remark …… @fukajunさんが紹介されていたもの。markdownで簡単にスライド作れるようになるらしい

Ruby周りのコミュニティはnearイコールRailsのコミュニティであるし、中でも特にテストの話になると温度が上がる印象がある。

最近見よう見まねCIを回し始めたところなのでこの辺りの知見を盗み吸収しつつ、そしてアウトプットもしていきたい。

Railsをproductionで動かす時に500が返る

2014-04-21   treby   技術メモ   このエントリーをはてなブックマークに追加

書かなさすぎて、ブログの書き方を忘れていたでござる。orz

表題の件、結論としては下記コマンドを実行してプリコンパイルしてあげれば良いという感じに解決。あ、サーバも再起動する感じで。

% bundle exec rake assets:precompile RAILS_ENV=production

最近は(多分にわかに)GitHub活動してる。やんなきゃ始まらないよね。と言い続けて20数年。

以下、参考文献。

DebianにRails環境を構築する

2013-10-28   treby   Debian  , , , このエントリーをはてなブックマークに追加

もはや本当の意味でのblogですががが……さくらVPS、高かったのに3ヶ月くらい触れてなかったのも事実なのでモチベーション維持の観点からも書いていくことにしときますです。

続きを読む