Twitter Streaming をZeroMQで中継してみた。

以前にソケットを使ってTwitterStreamingしていたものをphp-zmq を使ってZeroMQベースの中継にしてみた。
ソケットを自分で扱うときにはちょこっと工夫が必要だったのだが今回はソケット周りが非常にシンプルにまとまった。

Continue reading ‘Twitter Streaming をZeroMQで中継してみた。’ »

twitterをリアルタイムに表示させるJavaScript

AUの新商品発表会でUstreamの中継画面にある、ソーシャルストリームのほかに、特定のキーワードを含むTwitterのフィードをリアルタイムに表示させていたので、そのJavaScriptで遊んでみた。

Continue reading ‘twitterをリアルタイムに表示させるJavaScript’ »

PHP+ZeroMQ php-zmqをCentOSに入れてみた

メッセージングを簡単に行えるZeroMQをPHPで利用できるようにした php-zmq をCentOSに入れてみたんだが、「chobi_eの日記」にあるようにうまくいかなかったのでメモってみた。SUSEには入ってCentOSには入らなかったんだが、原因はPHPのバージョンでした。configureが通ってエラーがなくても、PHP5.3 じゃないと動かないみたい。

Continue reading ‘PHP+ZeroMQ php-zmqをCentOSに入れてみた’ »

Twitter Streaming をPHPでソケットで中継してみた。

Twitterのストリーミングをコマンドラインやブラウザで表示させるものはググればいくつか見つかるんだが、ストリーミングを複数の接続から同時に見ることが出来なかった。そもそもJavaScript で動作させたり Windows アプリケーションや Mac アプリケーションでクライアント側でそれぞれストリーミングを受信させるのが筋かもしれないが、サーバ側で Twitter のストリーミングを中継させるような事は難しいようだった。

Continue reading ‘Twitter Streaming をPHPでソケットで中継してみた。’ »

PHP Matsuriに行ってきた

10月2日・3日開催のPHP開発合宿イベントPHP Matsuriに@jean926が行ってきた。「PHP Matsuri はハッカソン形式のイベントです」と公式ページに書いてあるけど、徹夜で開発とかマジかな~とか、1人で気まずく浮いた存在にならないかな、などとどんな感じのイベントかとドキドキしながらも、飛び込んでみた。 Continue reading ‘PHP Matsuriに行ってきた’ »

APE (Ajax Push Engine)をインストールしてみた

AjaxでTwitterのStreamingをサーバサイドからPUSH配信できないもんかな~、Flashならなんか出来そうな気がするけどAjaxでやってみたい、ということで手始めにAPEをインストールしてみた。

インストールするOSは、CentOS5.5 64bit。今回はVMware上に構築してみる。
Apacheとは別個に動いて、専用のIPアドレスかポートを作るようになるので、root権限が使えるサーバが必須だろう。 Continue reading ‘APE (Ajax Push Engine)をインストールしてみた’ »

@Anywhere でTwitter埋め込み

HTMLだけでTwitterをページに埋め込むとしたらウィジェット(notガジェット)を使って自分のタイムラインやFavoritesを埋め込みできる。 何かつぶやくことができるフォームを組み込むとしたら、以前はJavaScriptだけでBasic認証を使って組み込めたが、今ではOAuthを使わないといけないから、ほとんど無理である。

無理にJavaScriptでOAuthしようとすると、Consumer Key と Consumer Secret を公開してしまうことになり、セキュリティ的に問題だ。Twitterを埋め込むとしたら、PHPやPerlなどでサーバアプリケーションを作って必要に応じてDBを組んでやるのがいいところだと思う。

そして2010年4月に出てきたのが、JavaScriptベースの@Anywhere 。サーバサイドの準備がなくても発言する、つぶやくなどできる。

Linkfy 自動リンク

Twitter ID を含む文字があると自動的にTwitterへのリンクを付加してくれる。たとえば「@anywhere」や、「@twitter」などとHTML中に文字列があるとリンクが自動的に生成され、クリックすると実際にTwitterへ飛ぶ。

特に動的に生成されるテキストで、その都度対応するURLへリンクを貼るのが難しい場合には有効だろう。

Hovercard マウスオーバーカード

Twitter IDを含む文字があると、その文字のmouseoverとして、自動的にTwitterのアイコンやプロフィール、フォローボタンなどを含む領域を書き出す。次のリンク(mouseover)は自動的に生成されたもの。 @anywhere  @jean926

Follow Buttons フォローボタン

次のようなフォローボタンを生成する。 

Tweet Box ツイートボックス

デフォルトで下記のようなボックスを生成する。

また、このボックスは下記のような項目をオプション調整可能だが、iframeでコンテンツにテキストボックス等が埋め込まれるため、スタイルの指定は難しいかもしれない。

  • 縦、横のサイズ
  • 文字数カウンターの表示
  • 左肩のラベル文字
  • テキストボックスにあらかじめ入れておく文字
  • ツイート完了後に実行するJavaScriptを指定
  • 緯度経度、replyToなど、ツイートに付随するメタデータ(詳しくはPOST statuses/updateのドキュメント

User login & signup ログインボタン

大きさがS, M , L, XL の4種類の大きさのコネクトボタンが設置可能。
一度コネクトしてしまえば、設置したページからのTweetが可能になる。

またこのボタンは自作のボタンにする事も可能。

ログイン・アウト時のイベント処理と、ユーザー情報取得

ログインしたときに何かJavaScriptの処理を仕掛けることや、ログインしたユーザの情報を取得して表示させることも可能。

ログインしていれば上記のようにユーザー名とユーザーアイコンが表示され、ログインしていなければログインボタンが表示される、という状態を作ることも可能。

サインアウト

最後にサインアウトさせるボタンも作れます。下記のボタンはブラウザデフォルトのボタンで、押すとTwitterからの許可がとりけされる訳ではなく、そのページとTwitter間の接続が切れるようなイメージになる模様。

Urchinの誤動作

ファーストサーバで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://」が入っているのがだめなんじゃないかとも考えられる。

DELL Precision M6500 に intel SSD を入れてみた。

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 を入れてみた。’ »

マッハドライブを vaioP に入れてみた。

今となっては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なので仕方がないかもしれない。