タグ

ブックマーク / hakobera.hatenablog.com (11)

  • Github Issues を利用したリリースマネージャのお仕事 - hakobera's blog

    最近、Quipper という会社で「リリースマネージャ」という名前のお仕事をしています。開発以外の仕事は久しぶりだったので大変でしたが、最終的にそれなり上手く行った方法を振り返りとしてブログに書いておくことにします。 経緯 自分のチームとは別のチームが開発しているサービスのリリースが迫っている中、それまで開発者の1人がリリース管理っぽいことをやっていたのですが、さすがに開発と管理の二足のわらじが辛くなってきたとのことで、急遽サポート的に自分が「リリースマネージャ」という役割りで参加することになりました。 コンセプト コンセプトは「使用するツールを増やさない」です。 管理のために新しいツールを増やすと、その使い方を教えるなど新たなタスクが発生してしまいます。タスクを減らすためにタスクが増えるなんてナンセンスです。 ということでQuipper では普段の開発に Github を利用しているので

    Github Issues を利用したリリースマネージャのお仕事 - hakobera's blog
  • Node.js の Heroku 環境におけるパフォーマンス - hakobera's blog

    Heroku で Node.js を動かしても絶対的なパフォーマンスは得られないのだけれど、最近仕事で Node.js on Heroku をやっているので、実際にどれくらいのパフォーマンスがでるのか測ってみました。 今回調べたのは、主に3点。 2X Dyno (CPUとメモリが2倍のDyno。ただし、コア数は4のまま)を使うと速くなるのか? Cluster に効果はあるのか? Dyno 数はどれくらいが良いのか? ベンチマークは Node.js v0.10.9 を対象とし、全て siege のベンチマーク機能の結果です。ベンチマーク対象のコードは、Node.js 家トップページに載っている例のHTTP サーバで、AWS の us-east-1 リージョンの EC2 m1.large インスタンスで実行した結果です。 $ siege -b 60S -c 100 http://server

    Node.js の Heroku 環境におけるパフォーマンス - hakobera's blog
  • 「Node.jsは静的コンテンツには向いていない」のか? - hakobera's blog

    この記事は東京Node学園祭2012 アドベントカレンダーの8日目の記事です。 この記事を書こうと思った理由 Node.jsに関するWeb上の記事を読んでいると、「Node.jsは静的コンテンツに弱い」とだけ書いてある記事をよく見かけます。有名なところだと、LinkedInのNode.jsのパフォーマンスに関する10個のTipsの3番目のTipsに"Don't use Node.js for static assets"とばっちり書いてあります。 確かにCDNやNginxに比べれば、Node.jsは静的コンテンツの扱いが遅いとは思います。しかし、それは LinkedIn くらいの超大規模なトラフィックがある場合には問題になるとは思いますが、小〜中規模なサイトでもNginxは必須なほど遅いのでしょうか?512MBしかメモリのないVPSNginxとNode.jsを入れてやりくりすることがホン

    「Node.jsは静的コンテンツには向いていない」のか? - hakobera's blog
  • Tuppari - WebSocket on Your Cloud - - hakobera's blog

    Tuppari とは 東京Node学園 6時限目で発表した Node.js で作られた Pusher クローンです。 簡単に言うと WebSocket を利用した大規模 Broadcast に特化したサービスです。 インフラとしては Amazon Web Services (以降、AWS)上で動かすことに最適化されていますが、AWS以外でも動かすことは可能です。つまり、クラウド上に自分自身の Pusher を構築することが可能になります。 現時点では Pusher の機能には追いついていませんが、今後も鋭意開発を進めていくので、是非使ってみてください。 あと、WebSocket を使うので、IE9 以下では動きません。 8/15 追記: v0.2.0 から IE もサポートしました。 詳細は以下の記事を参照して下さい。 Tuppari コミュニティ始めました & IE に対応しました -

    Tuppari - WebSocket on Your Cloud - - hakobera's blog
  • Node.js vs Play vs SAStruts - hakobera's blog

    前置き Experiences with Node.js: Porting a RESTful Service Written in Java - ZiggyTech 上記記事では、実験的にJava (Jersey + Hibernate on Tomcat) で実装された REST API サーバを Node.js で書きなおしてみたら、少ないリソース(CPU/メモリ使用量)でほぼ同等のパフォーマンスが出せたよ(ただし、O/Rマッパーを使用しない場合)、と書いてあります。この件に関して @koichik さんとやり取りしていた中で以下のような意見を頂いたので、実際にやってみましたという記事です。 @hakobera メジャーってことだと,あの比較が Play ではなく Tomcat なのは正解.日的には Jersey ではなく Struts (もちろん 1 の方)なら更によかったw 2

  • Heroku で package.json で指定した任意のバージョンの Node.js を 動かす方法 - hakobera's blog

    2012/8/7 追記 Heroku が公式で package.json での Node.js/NPM のバージョン指定に対応したので、現在は以下の方法は必要ありません。普通に package.json の engines に利用したいバージョンを書けばOKです。 以下の情報は古いです。 日、開催された Heroku JP Meetup #3 で話してきた内容です。 内容としては去年の12月の東京Node学園3時限目のLTの進化版で、package.json の engines の指定を変えることで、Node.js のバージョンを切り替えられる公式の versions ブランチの利用法について解説しています。 Run Multi Version of Node.js on Heroku View more presentations from Kazuyuki Honda heroku/

    Heroku で package.json で指定した任意のバージョンの Node.js を 動かす方法 - hakobera's blog
  • 僕の考えた最強の Node.js Document Viewer - hakobera's blog

    自分がNode.js でプログラミングをする際に、必ず参考にするページがあります。それは Node.js の公式ドキュメントです。 Node.js v0.8.12 Manual & Documentation バージョンアップにも追随して、最新の情報が得られるので、書いている人には頭が上がりません。情報量も十分です。(たまに空っぽのページとかありますが) ただ、このドキュメントを見たことある人ならわかると思いますが、すごく見難いのです。より具体的にはナビゲーションが良くないのと、検索がない、という2つの難点を抱えています。 というわけで、この問題を解決する Document Viewer を作りました。 名付けて 「YAND」=「Yet Another Node.js Document Viewer」です。 Yet Another Node.js Document Viewer [追記]

    僕の考えた最強の Node.js Document Viewer - hakobera's blog
  • tail.io - 標準入力をブラウザで tail -f できる htmlcat のクローンを Node.js + Socket.IO で作った - hakobera's blog

    標準入力をブラウザで tail -f できる htmlcat というのを書いた - NaN days - subtech この記事をみて便利そうだったのですが、Perl 詳しくなくて動かし方がよくわからなかったので、勉強がてらに Node.js + Socket.IO でクローンを作ってみました。npm モジュールとして登録してあるので、以下の方法でインストールできます。 $ npm install tail.io -gコマンドラインツールなのでグローバルインストールしてください。これで tailio というコマンドが使えるようになります。 (追記) Socket.IO のデバッグログを標準で出力しないようにしました。また、--port オプションでポート番号を明示的に指定することもできるようにしてみました。既にインストールした人は npm update tail.io -g でアップデー

    tail.io - 標準入力をブラウザで tail -f できる htmlcat のクローンを Node.js + Socket.IO で作った - hakobera's blog
    sugyan
    sugyan 2012/01/20
    実装はやい!w
  • Node.js と Titanium で SlideShare リモコンを作ってみた - hakobera's blog

    2012/1/11 に開催した 「Node塾 講義その5 Node.js × Titanium」の発表用に SlideConcert というアプリを作って、実際にそれを利用して発表してきました。 個人的にLTをする時に便利だなと思うを機能を実装してみました。 スライド発表時は結構歩きまわるたちなのでスライドを操作できるリモコンが欲しい 発表前に「今日のスライドです」と URL をハッシュタグ付きでつぶやくことが多いのでこれを簡単にしたい スライドの内容を手元で確認したい スライドの進行を見ている人で共有したい(進行も含めてスライド共有したい) 聞いている人の感想をリアルタイムで知りたい 言葉で説明するのも難しいので、実際の動作は以下の動画でご確認ください。 サーバは Node.js 、クライアントは Titanium という組み合わせで、構想1時間、実装がアイコンの作成なども含めて年末年始

    Node.js と Titanium で SlideShare リモコンを作ってみた - hakobera's blog
  • Connect ソースコードリーディング(2) - 基本処理フロー - hakobera's blog

    はじめに 今回は、以下の Connect を使ったコードが内部的にどのように初期化され、リクエストの処理がどのように行われていくのかを解説します。 var connect = require('connect'); var server = connect.createServer( connect.logger(), connect.static(__dirname + '/public') ); server.listen(3000); 初期化処理フロー Connect の初期化処理フローは以下のようになっています。 require('connect') で connect 各種 export 処理 createServer メソッドで HTTPServer のインスタンスを生成 HTTPServer のコンストラクタで、middleware とリクエストハンドラを登録 server.

    Connect ソースコードリーディング(2) - 基本処理フロー - hakobera's blog
  • Node.js の Cluster のベンチマークをとってみた - hakobera's blog

    Node.js v0.6 から新規標準モジュールとして導入された Cluster のベンチマークを取ってみました。 測定環境 Server CPU: AMD PhenomII X6 1090T (6コア) MEM: DDR3 16GB (4GB*4) Client MacBook Pro 15 (Early 2011) CPU: Intel Core i7 2.0GHz (4コア) MEM: DDR3 8GB (4GB*2) Network 1GigabitEther (同一セグメント) テスト方法 テストスクリプト cluster-bench.js var cluster = require('cluster'); var http = require('http'); var numCPUs = parseInt(process.argv[2], 10); if (cluster.is

    Node.js の Cluster のベンチマークをとってみた - hakobera's blog
  • 1