タグ

ブックマーク / toritori0318.hatenadiary.jp (12)

  • #tvrendo テレビ連動サーバ勉強会 で発表しました - アルパカDiary

    http://connpass.com/event/10424/ 弊社にて、テレビ連動サービスに特化した勉強会を開催しました。 で、自分も発表してました。 スライドはこちら。 http://www.slideshare.net/tsuyoshitorii5/public-43549341 TV連動サービスのリアルタイム通知を支える技術 from Tsuyoshi Torii 時間配分全然わかってなかったので、(特に後半)かけ足になってしまいました。 申し訳ございません。 デモの辺りの補足 背景 そもそもだいぶ前から 「こういう感じでsocket.ioコンテナ化して自由に上げ下げできると面白いな。 で、実際どうなのかな?実運用できそう?」 ということを考えていました。 そして今回いい機会なので急ぎでプロトタイプ書いてみたところ なんとなく上手くいったのでデモとして公開してみました。 またこの

    #tvrendo テレビ連動サーバ勉強会 で発表しました - アルパカDiary
    koba04
    koba04 2015/01/16
    未来感ある
  • YAPC::Asia2014で儚いクラスタ運用話をしました - アルパカDiary Pro

    http://www.slideshare.net/tsuyoshitorii5/yapcasia2014-2-public (※一部素材を変更しています) TV連動サービスの運用ってこんな特徴があって それに合わせていろいろ運用改善したぜ〜、 という話をしてきました。 結構ボリュームが多くなってしまって 限られた時間でうまく説明できたかどうかいまいち自信がないのですが、 「へぇ〜、そんな感じで運用してるんだ〜」 というニュアンスだけでも伝われば嬉しいです。 足を運んで聞いて下さったみなさま、ありがとうございました!!! 明日もまだまだYAPCは続くので存分に楽しみたいと思います〜 ちなみに株式会社バスキュールは フロントエンド/バックエンド問わずエンジニアを随時募集しているようです。 もしご興味がある方いれば是非お声がけください!

    YAPC::Asia2014で儚いクラスタ運用話をしました - アルパカDiary Pro
    koba04
    koba04 2014/09/02
    お疲れ様でした!
  • Redisのビットコマンドを用いた高速集計 - アルパカDiary Pro

    Redisは様々な型をもっているので 単純な集計(increment)は結構柔軟にできたりします。 ですが、後から条件付きでクロス集計したい時があると思います。 Redisにはビット演算するコマンドがあるので それを使っていろいろな集計をしてみました。 ビット関連コマンドリファレンス GETBIT/SETBIT Redis 2.2.0以降が必要。 ビットのオフセットに対してフラグを取得/設定します。 GETBIT key offset SETBIT key offset value(1/0) BITCOUNT Redis 2.6.0以降が必要。 キーに対するビットカウントを取得します。 BITCOUNT key [start] [end] BITOP Redis 2.6.0以降が必要。 複数のキーに対してビット操作を行うことが出来ます。 集計にはこの操作を使います。 BITOP opera

    Redisのビットコマンドを用いた高速集計 - アルパカDiary Pro
    koba04
    koba04 2014/04/28
  • すぐに子供の写真を見れるGoogle Chromeの拡張作った。 - アルパカDiary Pro

    ※元ネタはこちらです http://soh335.hatenablog.com/entry/2013/02/10/011039 http://hisaichi5518.hatenablog.jp/entry/2013/02/01/003820 soh335さんのリポジトリをforkし、 DropboxAPIを利用してDropbox内の写真を表示するように改造してみました。 この拡張でやれること Dropboxのアプリフォルダにある写真をシャッフルして表示 Dropboxの「Camera Uploadsフォルダ」内の写真を時系列に表示(ペンディング中) 最初は後者をやりたくて始めたんですけど、DropBoxAPIの仕様によりペンディング中です。 理由は後述。 準備(アプリ編) ダウンロード 適当なフォルダで以下のコマンドを実行して下さい。 git clone https://github.c

    すぐに子供の写真を見れるGoogle Chromeの拡張作った。 - アルパカDiary Pro
  • nginx-lua-moduleでLuaスクリプト書いてみた - アルパカDiary Pro

    プロダクトでWebサーバ上の現在時刻出したい要件がありました。 これぐらいの処理ならアプリケーション介さずともnginxだけでやりたいですね。 現在時刻ヘッダーにつけるならnginx標準機能で出来そうなんですが、 深淵なる理由からコンテンツとして欲しいとのこと。 今後、Nginx+Lua試してみたいなーという要件もありましたし、 せっかくなのでこの機能をLuaスクリプトで書いてみることにしました。 NginxでLuaを動かす環境 まず環境整えるのが若干大変でした。*1 以下のような手順でインストールするようです。 LuaJITインストール ngx_devel_kitインストール lua-nginx-moduleインストール ライブラリのパスなど気をつけないとハマるかもしれませんね。 nginxレシピ opscodeのnginxクックブックにはluaをインストールするレシピもありました。 し

    nginx-lua-moduleでLuaスクリプト書いてみた - アルパカDiary Pro
  • vagrant-awsを利用したイイカンジ(?)のAWS開発フロー - アルパカDiary Pro

    Vagrantでupとdestroy繰り返すのが大好きです。アルパカ大明神です。 DevOps 社内でデブオプスを推進していることもあり、 まず第一歩として進めているのが ローカル開発環境構築 ローカルVagrantでのアプリケーション開発 EC2への環境構築 デプロイ クラスタ構築 といったサーバエンジニア視点での開発フロー改善についての調査/検討です。 そして、ここ数日の間に 「こういう感じで開発を進められたらイイカンジなのでは?」 というフローが固まってきたので共有したいと思います。*1 概要図 リポジトリのVagrantfileを用いてローカルVagrantを構築し、 その環境を使ってアプリケーションを開発。 さらにec2の操作まで全てvagrantコマンド*2で実行します。 今回はknife soloも一切使用していません。 番環境のクラスタ構築はCloudFormation+

    vagrant-awsを利用したイイカンジ(?)のAWS開発フロー - アルパカDiary Pro
  • socket.ioでxhr-pollingのコネクションが詰まる件(解決 - アルパカDiary Pro

    ※2012/01/09 追記 続きもあるよ あらすじ 先月晴れてsocket.ioクラスタがデビュー。 しかし想定していたよりxhr-polling接続が多くてフガフガな状況に。 こりゃxhr-pollingの性能評価もしとくべきだったなーと思いを馳せるアルパカ。 そこでsocket.io-clientでベンチマークを走らせたのだが websocketと時と異なりコネクションがすぐに詰まるという自体が発生…! アルパカ大明神の運命やいかに!? 現象 socket.io-clientでxhr-pollingのコネクション貼りまくると5コネクションで詰まる。 時間が経つとその内ヌルッと進む。 chromeやfirefoxでも同様。 調査 様々なクライアントから実行しても同様の状況が見られたため サーバの問題と断定しサーバ調べる。 しかしコード追ったりトレース取ったりしてもまったく原因わからず…

  • expressやsocket.ioのテストはこんな感じで書いてます、というお話 - アルパカDiary Pro

    最近仕事ではNode.jsしか書いてないtoritoriです。 お仕事でもexpressやsocket.ioを使っているのですが WebアプリケーションのテストについてWeb上にあまり書かれていないような気がします。 特にソケット接続した後のメッセージ送信/受信の部分です。 今までのようなHTTPの単純なリクエスト/レスポンスとは手法が異なりますしどうしたものかと。 そこで「自分はこんな感じでテストしてますよー」という記事を書いてみます。 裏を返せば「もっといい方法あるよ!」というのを聞きたいのです>< サンプルについて socket.ioのexample を使います。 ただし、サンプルではログイン時に遷移しない方式なので もう少し実用的な動作に近づかせるため あえてログインURLから遷移するようにし、 セッションもRedisを使うようにしてexpressとsocket.ioでセッションを

    expressやsocket.ioのテストはこんな感じで書いてます、というお話 - アルパカDiary Pro
  • Socket.IOを詠む会 に参加してきました - アルパカDiary Pro

    ひょんなことからSocket.IOを詠む会に参加させて頂きました。 ATNDだけみるとどういう会なのかわからずドキドキ… 勉強会は以下のような流れで進みました。 簡単な自己紹介 勉強会の趣旨 基、司会の方がSocket.IOのソースコードを読み進めていきます。 読んでいく上で疑問点や意見などあればみんなで議論したりとか。 読む前に ドキュメント http://jxck.github.com/socket.io/ https://github.com/Jxck/socket.io-spec ※他にもいくつかあったけど失念… 前提知識など nodeとSocket.IOの環境構築 module.exportsの仕組み prototype チェーンを用いた継承の作法 EventEmitterの役割(※重要) (質問タイムのやりとりを行った後)少しハードル高いかも… コードを読むときの心掛け 機能

    Socket.IOを詠む会 に参加してきました - アルパカDiary Pro
  • 転職 - アルパカDiary Pro

    現職は今年一杯で終了し、 来年から新しい職場で働くことになりました。 何故転職したのか なんか会社がバタバタし始めたり、お誘いの話があったり、年齢的なことがあったりと きっかけはいくつかあるのですが、 転職自体は1年以上前から考えてたことでした。 現職は入社当時、エンジニアが一人もおらず(!) さらに自分もWeb専門でやっていたわけではなかったので*1 無我夢中で毎日勉強していたような感じでした。 それから3年ほど経ち、エンジニアも少しずつ増えてきました。 ですがサービスも増えてきて徐々に日々の業務に追われ始め ここ最近は全然成長できてないなーと感じる日々が続いていました。 自分はエンジニアとしてはまだまだですし、 エンジニアとして1歩でも前に進みたい、進める環境で働きたいと考えるようになりました。 転職活動 それほど多くはしていません。 ちなみにYAPC転職は叶いませんでした:-( コン

    転職 - アルパカDiary Pro
  • node.js の練習がてらリアルタイムTwiter単語カウンタアプリ作った - アルパカDiary Pro

    こんなの。 名詞全般 http://www2125u.sakura.ne.jp:3010/ 固有名詞のみ http://www2125u.sakura.ne.jp:3011/ ソースコード(node.js部分のみ) https://github.com/toritori0318/node-twitter-word-counter 仕組み まず別プロセスでTwitterのパブリックストリームを形態素解析して mongodbに入れ込みます。 「年月日」+「単語」をカウントのキーにして丸めてます。 ちなみに辞書はLivedoorさんのこれ使ってます。 node.js側ではsetintervalで定期的にmongodbをSELECTしてソートして 繋がってるクライアント全てに結果をJSONで返してます。 で、クライアントでは受け取ったJSONを表示してるだけです。シンプルですね! アドバイスありが

    node.js の練習がてらリアルタイムTwiter単語カウンタアプリ作った - アルパカDiary Pro
  • EC2:microインスタンスのCPUがへぼいというお話 - アルパカDiary Pro

    すでにお気づきの方も多いと思われますが、 microインスタンスってCPU弱いですよねー。 でも、以下を見ると 「スモールインスタンスと同等」もしくは「バーストとかあるからむしろ速くなるんじゃね?」 と勘違いしがち。 スモール インスタンス(デフォルト) 1 EC2 Compute Unit (1 EC2 Compute Unitを有する1仮想コア) マイクロインスタンス 最大2 EC2 Compute Units (短期の定期的なバースト) http://aws.amazon.com/jp/ec2/instance-types/ しかし、あきらかに マイクロインスタンスのCPUはスモールインスタンスより遅い です。 特に、CPUを長時間占有するmakeなどはかなり顕著に違いが出ます。 さらによく見ると以下のようなことが書いてありますね。 マイクロインスタンスは、少量の整合性のあるCPU

    EC2:microインスタンスのCPUがへぼいというお話 - アルパカDiary Pro
    koba04
    koba04 2011/06/29
  • 1