2009年5月22日金曜日

Chromeでマウスジェスチャ by Greasemonkey (User Scripts)

User ScriptsはChrome2(現在Beta版またはDev版 正式リリースされた)から使える。

  1. Google Chrome (BETA)からChrome Beta版をダウンロードしてインストールする (通常のChromeが2.0になったので普通に入手すればOK)
  2. Chromeのショートカットの「リンク先」の最後に、" --enable-user-scripts"を追加する(「"C:\Documents and ... \chrome.ext" --enable-user-scripts」といった感じになる)
  3. 上記のショートカット経由でChromeを再起動する
  4. マウスジェスチャ for Chrome - Grieverか、Loox Uと初音ミクで行こう!: Google ChromeのUserscript版マウスジェスチャ完成からUser Scriptを入手する
  5. メモ代わり: Google Chrome グリースモンキーに書いてあるフォルダにScriptファイルを置く

2009年5月13日水曜日

Firefoxのアドオン CustomizeGoogleを自分で SearchWikiに対応させる方法

やったことのメモ。
Firefoxは閉じてからやった方がよいと思う。

  1. FirefoxのProfilesフォルダを開く
  2. extensionsフォルダの中からCustomizeGoogleのフォルダを探す
  3. chromeフォルダの中にファイル「customizegoogle.jar」があるので、これのバックアップをとっておく
    (必須ではないが、念のため。)
  4. customizegoogle.jarを解凍ソフトで開く(たぶん拡張子をZIPにすればWindowsの標準機能でも展開できると思う)
  5. contentフォルダの中にあるcustomizegoogleフォルダの中にあるファイル「javascript.js」をテキストエディタで開く
  6. 文字列「/li[@class='g']」を、全て「/li[@class='g' or @class='g w0']」に変換し、ファイルを上書き保存する
  7. contentフォルダ、localeフォルダ、skinフォルダをまとめてZIPにして、ファイル名を「customizegoogle.jar」にする
  8. 作った「customizegoogle.jar」を、3の同名のファイルのところに上書きコピーする


検索結果はli要素として表示されるが、そのclass属性が"g"から"g w0"に変わったことが原因だった。
「検索ツール」を使って再検索した場合など、class属性が昔ながらの"g"になる場合もある。
"w0"の意味は知らないので期待通りに動かないこともありそうだが、とりあえずこれで様子を見る。

PEAR::Services_Amazonで Product Advertising APIの電子署名認証を使うサンプル

PEAR::Services_Amazonから最新版(現在0.8.0)を入手する。

pear upgrade -a Services_Amazon-0.8.0

使い方は、SECRET KEYが必須になった以外は今まで通りでOK。
require_once('Services/Amazon.php');

//Services_AmazonECS4ではなく、Services_Amazonの方を使う
$amazon = new Services_Amazon('ACCESS_KEY', 'SECRET_KEY');

//Base URLをhttp://ecs.amazonaws.jp/onca/xmlにする
$amazon ->setLocale('JP');

//デフォルトは現在最新の"2009-03-31"
//$amazon ->setVersion('2009-xx-xx');

$res = $amazon ->ItemSearch('Books', array(
 'Keywords' => 'Ruby on Rails',
 'Sort' => 'daterank',
 'ResponseGroup' => 'Small,Images',
));


参考:Amazon Product Advertising API への対応(PHP版) - もやし日記


(2009/05/17 PEARコマンドの誤りを修正)

PHP 5.3 RC2に無いエクステンション

PHP5.3 RC2(Windows版)で確認したところ、下記のエクステンションが無いことが気になった。

  • php_mcrypt.dll
  • php_pdo.dll
  • php_zip.dll

でも、MCryptもPDOもZIPもできたので問題無かった。
PHP本体に取り込まれた?

Windows用の Freeのサーバ監視ツール HealthMonitor

Windows用のオープンソースのサーバ監視ツール、HealthMonitor3.1についての調査メモ。
情報が少ないのは何故?



ライセンス
  • GPL(v2)

インストール方法
  • インストーラに従うだけ
  • .NET 1.1が入っていない場合は親切にダウンロードするよう導いてくれる

主な監視対象
  • HDD残容量
  • CPU使用率
  • メモリ残容量
  • Windowsのイベント(イベントID、メッセージ等でフィルタリングできるようだ)
  • Windowsのサービス
  • Ping、HTTP、FTP(これらについては他のサーバの監視もできるようだ)

異変を察知した時に実行できること
  • メールで通知する(メールの内容は設定できない)
  • スクリプトを実行する(vbsファイルやbatファイル。パラメータとしてSubject、Messageを渡すことができる)

その他
  • 各監視項目について、On/Offを設定できる
  • チェックするタイミングは秒単位で設定できる。デフォルトでは10分に1回
  • ログはDB(MS SQL Server、MySQL、MS Access(!))にも出力できるが、デフォルトではDBに出力しない
  • 異変が起きたとき

感想
  • 導入がとても簡単
  • 設定も簡単。GUIが直感的で使いやすい
  • スクリプトを実行できるのが便利
  • スクリプト側で、どの異変が起きたかを判断するのは少し面倒そう(メッセージを見比べたりとか)
  • Windowsのイベント、サービスも監視できるのがよい
  • HTTP等についてはローカル以外も監視できそう



HealthMonitor3.1の紹介記事(本家サイトへのリンクはリンク切れ)

本家サイト(SourceForge.net: HealthMonitor
  • バージョン3.1まではここを根城にしていたようだ
  • 現在はもうメンテナンスされてない
  • 現在でもバージョン3.1まではこちらで入手可能

現行サイト(HealthMonitor Web Site - Welcome to HealthMonitor
  • こちらはバージョン4からサイト(最新バージョンは6)
  • 有償だが、機能限定のFree版もあるようだ

2009年5月7日木曜日

PHPマニュアルの比較

数字はGoogle検索結果の順位。

  1. search.net-newbie.com PHP マニュアル
    • 更新日:2009-01-02
    • 見た目:ダウンロードしたマニュアルそのまま
  2. php.benscom.com PHP: PHP マニュアル - Manual
  3. zapanet.info PHPマニュアル:ZAPAnet
    • 更新日:2008-03-27(最新)
    • 見た目:カラフルで見やすい
    • サイト内検索あり
  4. (マニュアルじゃないサイトなので割愛)
  5. manual.xwd.jp PHP: PHP マニュアル - Manual
    • 更新日:2006/10/31
    • 見た目:ダウンロードしたそのままより、少し見やすい
    • サイト内検索あり
  6. php.atpedia.jp PHPマニュアル検索@pedia
    • 更新日:2008-04-11
    • 見た目:ダウンロードしたマニュアルほぼそのまま
    • サイト内検索あり。関数検索とかもできる
    • フッターにSEOっぽいリンクがある
  7. phpspot.net PHPマニュアル
    • 更新日:2006/01/20
    • 見た目:ダウンロードしたそのままより、少し見やすい
    • マニュアル全文検索あり
    • ヘッダーとフッターに関連サイトへのリンクがある
  8. (下記www.phppro.jpの親ページ)
  9. www.phppro.jp PHP マニュアル - PHPプロ!マニュアル
    • 更新日:2009-02-13
    • 見た目:まあまあ見やすい
    • サイト内検索あり
    • ヘッダー・左サイドバー等にサイト内の別コンテンツへのリンクメニューがある
  10. php.s3.to PHP マニュアル
    • 更新日:2008-05-09
    • 見た目:ダウンロードしたマニュアルほぼそのまま
    • トップページに少しだけサイト内へのリンクがある
  11. (上記php.s3.toの全文検索機能)
  12. jp2.php.net PHP: PHP マニュアル - Manual
    • 本家!
  13. onur.profcode.com PHP マニュアル / 日本語PHPマニュアル
    • 更新日:2008-05-16
    • 見た目:ダウンロードしたマニュアルそのまま
    • スポンサードリンクあり
  14. www.phpmanual.jp PHP マニュアル
    • 更新日:2006/01/20
    • 見た目:ダウンロードしたそのままより、少し見やすい
    • フッターにSEOっぽいリンクがある
  15. aym.pekori.to PHP マニュアル:PHPマニュアル
    • 更新日:2006/05/06
    • 見た目:ダウンロードしたそのままより、少し見やすい
    • サイト内検索あり


上位15件の中ではzapa.netが便利。


ちなみに、PHPマニュアルの著作権についてはPHP: 著作権 - Manualに書いてある。
上記ページにある"Creative Commons Attribution 3.0 license"の日本語訳はCreative Commons Attribution 3.0 Unported

Google Maps APIの InfoWindowが仕様変更されてた

いつの間にかGoogle Maps APIに仕様変更があったようで、openInfoWindowHtml()をした直後に、情報Window内のエレメントにアクセスすることができなくなった。

それまでは、こんな感じでアクセスできた。

gmarker.openInfoWindowHtml('<a href="foo" id="bar">baz</a>');
var bar = document.getElementById("bar");

情報Windowが表示されたらイベントがFireするので、それをListenするようにしたら解決した。
gmarker.openInfoWindowHtml('<a href="foo" id="bar">baz</a>');
GEvent.addListener(gmarker, "infowindowopen", function(){ ... });

参考:
 Google Maps API リファレンス - Google Maps API - Google Code
 infowindowopen

PEAR::HTTP_Client 非徹底解剖

PEAR::HTTP_Clinetがget()する時の、主にコネクションを確立するまでの大まかなfunctionの流れ。


HTTP_Client#get()

HTTP_Client#_performRequest()

HTTP_Request#sendRequest() ※1
↓ ↓ ※2
↓ Net_Socket#connect() ※3
↓ ↓ ↓
↓ ↓fsockopen()
↓ ↓ ※4
↓ socket_set_blocking() ※5

HTTP_Response#process() ※6

ソケット経由で得たレスポンスを処理していく
(以下省略)


※1 将来的にはHTTP_Request2に切り替える可能性が高いと思われる
※2 URLのスキームがhttpsの場合は、ホスト名は「ssl://ホスト名」に、そうでない場合はIPアドレスに変換される
※3 ちなみにHTTP_Request2の場合、自前のSocketクラス(HTTP_Request2_Adapter_Socket)を使っている
※4 もしこのあたりでNet_Socket#enableCrypto()を使えばSSLのバージョンを指定できるけど、使っていない
※5 stream_set_blocking()のエイリアス。この流れの中ではデフォルト設定のままなので、常にブロッキングを有効にしている
※6 HTTP_Responseクラスは、HTTP_Requestのファイル(Request.php)内で定義されている

Sinatra on Ruby on JRuby on Java on Google App Engine for Java

環境構築メモ。


Sinatraとは?



Google App Engine for JavaでSinatraを動かす


Datastore APIを扱う


所感
  • Sinatraは素敵だが、こんな準備が必要なら素直にPythonで書いた方が楽そうだ

Google App Engine 調査メモ

リファレンス



Tips

サーバサイドでHTTP POSTする PHPライブラリいろいろ

cURL

PEAR::HTTP_Request
(もうメンテナンスモードになったらしい)
This package has been superseded, but is still maintained for bugs and security fixes. Use HTTP_Request2 instead.

PEAR::HTTP_Request2 (まだα版(0.4.0))

PEAR::HTTP_Client (PEAR::HTTP_Requestをラップしていて使いやすい。現時点ではこれがベストか)

Snoopy (htmlsqlでも内部的に使われている、わりと有名なライブラリ)

Zend_Http_Client


CakePHP HttpSocket

P2_Services_Base

ブログ アーカイブ

tags