Twitter Streaming をZeroMQで中継してみた。
以前にソケットを使ってTwitterStreamingしていたものをphp-zmq を使ってZeroMQベースの中継にしてみた。
ソケットを自分で扱うときにはちょこっと工夫が必要だったのだが今回はソケット周りが非常にシンプルにまとまった。
Tiny knowledge base of WEB engineering
以前にソケットを使ってTwitterStreamingしていたものをphp-zmq を使ってZeroMQベースの中継にしてみた。
ソケットを自分で扱うときにはちょこっと工夫が必要だったのだが今回はソケット周りが非常にシンプルにまとまった。
AUの新商品発表会でUstreamの中継画面にある、ソーシャルストリームのほかに、特定のキーワードを含むTwitterのフィードをリアルタイムに表示させていたので、そのJavaScriptで遊んでみた。
メッセージングを簡単に行えるZeroMQをPHPで利用できるようにした php-zmq をCentOSに入れてみたんだが、「chobi_eの日記」にあるようにうまくいかなかったのでメモってみた。SUSEには入ってCentOSには入らなかったんだが、原因はPHPのバージョンでした。configureが通ってエラーがなくても、PHP5.3 じゃないと動かないみたい。
Twitterのストリーミングをコマンドラインやブラウザで表示させるものはググればいくつか見つかるんだが、ストリーミングを複数の接続から同時に見ることが出来なかった。そもそもJavaScript で動作させたり Windows アプリケーションや Mac アプリケーションでクライアント側でそれぞれストリーミングを受信させるのが筋かもしれないが、サーバ側で Twitter のストリーミングを中継させるような事は難しいようだった。
10月2日・3日開催のPHP開発合宿イベントPHP Matsuriに@jean926が行ってきた。「PHP Matsuri はハッカソン形式のイベントです」と公式ページに書いてあるけど、徹夜で開発とかマジかな~とか、1人で気まずく浮いた存在にならないかな、などとどんな感じのイベントかとドキドキしながらも、飛び込んでみた。 Continue reading ‘PHP Matsuriに行ってきた’ »
AjaxでTwitterのStreamingをサーバサイドからPUSH配信できないもんかな~、Flashならなんか出来そうな気がするけどAjaxでやってみたい、ということで手始めにAPEをインストールしてみた。
インストールするOSは、CentOS5.5 64bit。今回はVMware上に構築してみる。
Apacheとは別個に動いて、専用のIPアドレスかポートを作るようになるので、root権限が使えるサーバが必須だろう。 Continue reading ‘APE (Ajax Push Engine)をインストールしてみた’ »
HTMLだけでTwitterをページに埋め込むとしたらウィジェット(notガジェット)を使って自分のタイムラインやFavoritesを埋め込みできる。 何かつぶやくことができるフォームを組み込むとしたら、以前はJavaScriptだけでBasic認証を使って組み込めたが、今ではOAuthを使わないといけないから、ほとんど無理である。
無理にJavaScriptでOAuthしようとすると、Consumer Key と Consumer Secret を公開してしまうことになり、セキュリティ的に問題だ。Twitterを埋め込むとしたら、PHPやPerlなどでサーバアプリケーションを作って必要に応じてDBを組んでやるのがいいところだと思う。
そして2010年4月に出てきたのが、JavaScriptベースの@Anywhere 。サーバサイドの準備がなくても発言する、つぶやくなどできる。
Twitter ID を含む文字があると自動的にTwitterへのリンクを付加してくれる。たとえば「@anywhere」や、「@twitter」などとHTML中に文字列があるとリンクが自動的に生成され、クリックすると実際にTwitterへ飛ぶ。
特に動的に生成されるテキストで、その都度対応するURLへリンクを貼るのが難しい場合には有効だろう。
Twitter IDを含む文字があると、その文字のmouseoverとして、自動的にTwitterのアイコンやプロフィール、フォローボタンなどを含む領域を書き出す。次のリンク(mouseover)は自動的に生成されたもの。 @anywhere @jean926
次のようなフォローボタンを生成する。
デフォルトで下記のようなボックスを生成する。
また、このボックスは下記のような項目をオプション調整可能だが、iframeでコンテンツにテキストボックス等が埋め込まれるため、スタイルの指定は難しいかもしれない。
大きさがS, M , L, XL の4種類の大きさのコネクトボタンが設置可能。
一度コネクトしてしまえば、設置したページからのTweetが可能になる。
またこのボタンは自作のボタンにする事も可能。
ログインしたときに何かJavaScriptの処理を仕掛けることや、ログインしたユーザの情報を取得して表示させることも可能。
ログインしていれば上記のようにユーザー名とユーザーアイコンが表示され、ログインしていなければログインボタンが表示される、という状態を作ることも可能。
最後にサインアウトさせるボタンも作れます。下記のボタンはブラウザデフォルトのボタンで、押すとTwitterからの許可がとりけされる訳ではなく、そのページとTwitter間の接続が切れるようなイメージになる模様。
ファーストサーバでUrchinサービスを使って、リダイレクト数を計測しているのだが、珍しくきちんとした対応をしてもらった。
問題の現象はmod_rewirte を使って下記のようなURLでアクセスされた際にアクセスログを取り、リダイレクトを行うときにUrchinのアクセスログで発生する。URLがたとえば、
http://redirect.server.com/cate/gory/id/*http://www.other.web.server.com/hoge/fuga/
のとき、
http://www.other.web.server.com/hoge/fuga/
へとリダイレクトされるような仕組みになっているのだが、Urchinが記録する、最初の方のURLがたまにアクセス数が計測できておらず、「/cate/gory/id/」 へのアクセスではなく、「cate/gory/xyz」と、近傍のアクセス数に混じって計測されてしまう事がありました。
ラネクシー社が提供元のようで、そこに確認してもらった結果、Urchin内部形式のデータ保存フィールドにURLを書き換える際に問題が起きているようで、「/*http://*.co.jp/」というような形式だと問題があるようで、これではない場合問題は起きないようだ。
推測だが、URL中に「http://」が入っているのがだめなんじゃないかとも考えられる。
DellPrecision M6500 にCPUがCore i7 Q820、メモリ16GB、Windows7 64bit を乗せてさらにHDD-RAIDをSSD-RAIDに変更してみた。
換装するSSDは INTEL X25-M Mainstream SATA SSD SSDSA2MH160G2R5.
Rだと箱がついてきて、中には5インチ用のステーも入っています。

Continue reading ‘DELL Precision M6500 に intel SSD を入れてみた。’ »
今となっては1個旧型の vaio P に IOデータが出しているSSD最適化(RAMキャッシュ&遅延書き込み)ソフトを入れてみた。まず下記にインストール前のもの
----------------------------------------------------------------------- CrystalDiskMark 3.0 (C) 2007-2010 hiyohiyo Crystal Dew World : http://crystalmark.info/ ----------------------------------------------------------------------- * MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]
Sequential Read : 71.678 MB/s Sequential Write : 47.924 MB/s Random Read 512KB : 62.654 MB/s Random Write 512KB : 42.869 MB/s Random Read 4KB (QD=1) : 3.369 MB/s [ 822.6 IOPS] Random Write 4KB (QD=1) : 5.131 MB/s [ 1252.6 IOPS] Random Read 4KB (QD=32) : 7.763 MB/s [ 1895.3 IOPS] Random Write 4KB (QD=32) : 6.072 MB/s [ 1482.5 IOPS]
Test : 50 MB [C: 13.6% (31.3/230.5 GB)] (x1) Date : 2010/05/26 10:36:45 OS : Windows 7 [6.1 Build 7600] (x86)
インストール後は下記のとおり
----------------------------------------------------------------------- CrystalDiskMark 3.0 (C) 2007-2010 hiyohiyo Crystal Dew World : http://crystalmark.info/ ----------------------------------------------------------------------- * MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]
Sequential Read : 424.490 MB/s Sequential Write : 278.691 MB/s Random Read 512KB : 193.374 MB/s Random Write 512KB : 148.227 MB/s Random Read 4KB (QD=1) : 7.191 MB/s [ 1755.6 IOPS] Random Write 4KB (QD=1) : 5.734 MB/s [ 1399.8 IOPS] Random Read 4KB (QD=32) : 7.739 MB/s [ 1889.3 IOPS] Random Write 4KB (QD=32) : 8.127 MB/s [ 1984.2 IOPS]
Test : 50 MB [C: 13.6% (31.3/230.5 GB)] (x1) Date : 2010/05/26 10:50:47 OS : Windows 7 [6.1 Build 7600] (x86)
期待していたRamdomRead 4KBがあまり変化がない。
CPUはこのテストの間中ずーっと100%だったので、もはやIOのボトルネックはなくなってCPUがボトルネックになっている模様。そもそも vaio P はCPUが100%に張りつきやすい貧弱なCPUなので仕方がないかもしれない。