Eclipse 3.1 から 3.2 にアップグレード

いまさらですが、リリースに気づいたので開発環境を Eclipse3.2 にアップグレードしました。
手順は次の通り。
 
Eclipse 公式サイトのダウンロードページから Eclipse SDK 3.2 をダウンロード(Windows版直リンク)
 
言語パックダウンロードページから NLPack1-eclipse-SDK をダウンロード(Windows版直リンク)。
 
– SDK を展開(eclipse フォルダができます)。
– NLPack1 を展開して SDK の展開先に上書き。
展開した eclipse フォルダを、既存の Eclipse 3.1 に上書き ←とするとだめでした。
– ワークベンチを既存のものに指定して、プラグインも導入。
  updateサイトについては、新規フィーチャーの検索とインストール→サイトのインポートから、3.1 の eclipse/configuration/org.eclipse.update/bookmarks.xml をインポートすることで簡単に移行できます。

Yahoo API の簡単な利用法 – serialize

http://developer.yahoo.co.jp/
で公開されている API は全て XML でレスポンスが返りますが、
output=php をパラメータに追加すると、PHP の serialize() 形式でシリアル化されたデータが返るという記事を見付けました。
 
注:ライブラリを利用することで、他の言語(C#, perl など)でも PHP serialize は読み込むことが可能なため、用途は PHP に限りません。これに付いてはリンク先の最後を参照してください。
 
Using Serialized PHP with Yahoo! Web Services
 
ここに書かれている、
http://api.search.yahoo.com/ImageSearchService/V1/imageSearch?appid=YahooDemo&query=Madonna&results=1&output=php
にアクセスしてみるとサンプル出力が得られます。
 
以下、上記 API を利用した PHP のサンプルコードです。

<?php
$url = “http://api.search.yahoo.com/ImageSearchService/V1/” .
        “imageSearch?appid=YahooDemo&query=fruit+cake&results=1&output=php”;
ob_start();
readfile($url);
$result =unserialize(ob_get_contents()); // 結果セットを取得
ob_end_clean();
 
// var_dump($result); // どういう内容が格納されているか確認したい場合コメントアウト。
 
 $thumbnail_url = $result[“ResultSet”][“Result”][0][“Thumbnail”][“Url”];
?>
<html>
<head>
  <title>サムネイル</titte>
</head>
<body>
  <?php foreach($result[“ResultSet”][“Result”] as $record){ ?>
     □<?=$record[‘Title’]?>
       (<?=$record[‘FileSize’]?> バイト)<br>
     <p>説明:<?=$record[‘Summary’]?></p>
     <a href=”<?=$record[‘ClickUrl’]?>”><img src=”<?=$record[‘Thumbnail’][‘Url’]?>”></a><br>
     <hr>
  <?php } ?>
</body>
</html>

 
参考:
Yahoo曰く、XMLじゃなくてPHPの変数をそのままシリアライズして返せばいいじゃん

Windows XP でのタイマー処理あれこれ

ちょっと変わった利用方法ですが..工夫次第でできることの例です。
ここでは sleep というコマンドを利用しますが、標準では sleep というコマンドが存在しないため、Cygwin をインストールしてパスを通すか、ここ(Nifty フォーラム)にあるように次のコードを sleep.bat として c:\windows あたりに保存してください。

@echo off
REM Sleep.bat [秒数]
set /a wtime=(%1+0)*1000
echo WScript.Sleep %wtime% > tmp.vbs
cscript //NoLogo tmp.vbs
del tmp.vbs
set wtime=

 
– スリープタイマーをかけて Windows を自動終了させる
→ 一定時間後に Windows を自動シャットダウンする(以下は2時間後の例/2時間=7200秒)
※管理者である必要があります

sleep 7200 && shutdown -s

 
– 朝になったら目覚しがわりの音楽を再生する
→ 一定時間後に音楽 morning.mp3 を再生する(以下は8時間20分後の例)
※ .mp3 が再生ソフトに関連づけされていて、カレントディレクトリに morning.mp3 があることが前提。

sleep 30000 && morning.mp3

 
追記:
(2006-05-10) sleep について加筆修正しました。

匿名でユーザ名, 所属グループ名を一覧表示してくれるグループウェア

サイボウズ(R) Office 6 は、設定によらずユーザ一覧、グループ一覧を誰でも閲覧できるようになっているようです。

ag.cgi?page=RMOfficeUserSync

でユーザ一覧の CSV を表示する機能があります。
フォーマットは次のとおりです。

UID,ユーザ名,以下所属グループGIDの列挙
例:
192,”山田 太郎”,100,102,103
194,”山田 花子”,100
NOERROR
以下フッタ HTML 。

(ログイン名ではなく)UID とパスワードでログインすることも可能です。
GID は ag.cgi?page=LoginGroup で一覧で表示されるものと同じです。
検索するとでてくるサイボウズ Office 利用団体は、この機能を知らずに公開してるんでしょう(最初からログインユーザを選択できるようにしているサイトは別として)。
さて、是とするか非とするか。

URL をデコードするスクリプト

urldecode.php:
#!/usr/local/bin/php -q
<?php
$in=fopen(‘php://stdin’, ‘r’);
$stat = fstat($in);
while(!feof($in)){
     $buf = fgets($in, 10240);
     echo mb_convert_encoding(urldecode($buf),’EUC_JP’, ‘UTF-8’);
}
?>

簡単なコードですが、

cat access_log | urldecode.php

とかしてやると、検索単語が見えるようになって便利。ただし、この用途のためだけに書いたので、UTF-8 以外の形式でマルチバイト文字列を含んでると結果が化けます。

着うた制限解除

音携闊歩 – 自作着うた登録
携帯の音楽まわりの情報がいいですね。
と、ここによると、次の条件で FOMA 携帯で再生できるそう。

・ファイルフォーマット 3GPP(Mobile MP4)
・オーディオ AAC-LC
・データレート 80kbs
・チャンネル ステレオ
・出力のサンプルレート 16.000kHz
ファイルサイズは300kb以下に収まるようにします(700i/901iは500kbでも可)。
(901iや700iはビットレート/サンプリングレート = 320kbs/48kHzが標準)

で、着うたに指定できるようにするにはバイナリを直接触る。

できあがった3gpファイルをバイナリエディタで開きます。文字列「dcmd」を探しておきます。
ファイルサイズ(右クリック→プロパティ)を調べて以下のように書き換えます。
  
・偶数 dcmd以下2バイト目を「0E」(64 63 6D 64 00 00 → 64 63 6D 64 00 0E)
・奇数 dcmd以下2バイト目を「0A」(64 63 6D 64 00 00 → 64 63 6D 64 00 0A)
(奇数のとき「0A」で登録不可の場合は「0C」)

簡易タイマー

例えば 1 分後にアラートを鳴らすには次のようにすればよい。
– Windows なら sleep というコマンドを使えるようにしてコマンドプロンプトで

sleep 60 && echo <Ctrl-G>

  • UNIX 系(bash, sh)なら

sleep 60 && printf “\a”

 
追記:
(2006-05-10) sleep が Windows 標準で存在しないことに気づき訂正.

PukiWiki で DATA_HOME を変更する

ドメイン固有のデータをまとめるのにDATA_HOME を data/ などにするとよい. 以下その手順.
– index.php,pukiwiki.php の define DATA_HOME を ‘data/’ に変更.
– データ関係を data/ に移動.
  $ mv {wiki,diff,backup,cache,attach,counter,trackback,plugin,skin} data/
  $ chmod o+w data/{wiki,diff,backup,cache,attach,counter,trackback,plugin}
  $ mv {ja.lng,pukiwiki.ini.php,default.ini.php,rules.ini.php} data/
– 望むなら lib/init.php の error_reporting を書き換えてエラーを冗長にできる(デフォルトは E_NOTICE | E_WARNING).