カテゴリー : 2006年 9月

makexmldocomomap の出力を PEAR の Net_UserAgent_Mobile で使えるようにするパッチ


単純に makexmldocomomap を実行すると <terminal … modeil=”SH902I” … > のように出力されたのですが、PEAR では <SH902I … >という形式を期待していて、そのまま DoCoMoMap.xml に適用すると動作しなくなったため次のように書き換えました。(Net_UserAgent_Mobile 0.27.0 で確認 cpan のほうは失念)
 
$ diff /usr/local/bin/makexmldocomomap{.bak,}

 21,22c21,22
 < push @{$map{terminal}}, {
 < model => uc($model),
 —
 > push @{$map{uc($model)}}, {
 > width => $width,

また、出力時にiモード HTML シミュレータの情報が書かれていないため、エミュレータでも利用するためには

  <ISIM0301 color=”1″ depth=”262144″ height=”320″ width=”240″ />
  <ISIM70 color=”1″ depth=”4096″ height=”182″ width=”163″ />

としてエミュレータの端末情報を指定する必要があります。
 
メモ:
SO902iWP+ 端末が

<SO902IWP+ color=”1″ depth=”262144″ height=”256″ width=”240″ />

となり、XML 的にエラーで次要素以降が読まれなくなるのは何か対処法あるんでしょうか。。
# 現在一番下に移すことで回避中。もちろんこれでは SO902i WP+ 自体は対応されないでしょうね(いろいろ未確認)。

関数, メソッドを動的に実行する


C の関数ポインタや、Java のリフレクションのように任意の関数、メソッドを呼び出すには次のようにします。

<?php
function greet(){ echo “Hello world!”;}
 
// 変数に () を付ける記法(関数のみ可)
echo “0: “;
$func=”greet”;
$func();
 
// call_user_func() を使った関数よびだし
echo “\n1: “;
$func=”greet”;
call_user_func($func);
 
// call_user_func() を使った静的メソッドよびだし
echo “\n2: “;
class Foo{
   function doit(){
      echo “static method called”;
   }
}
$method=array(“Foo”, “doit”);
call_user_func($method);
 
// call_user_func() を使った非静的メソッドよびだし
echo “\n3: “;
class Foo2{
  var $name;
  function Foo2($name){
    $this->name = $name;
  }
  function doit(){
    echo “non static method called (“.$this->name.”)”;
  }
}
$o=new Foo2(“abc”);
$method=array($o, “doit”);
call_user_func($method);
 
echo “\n”;
?>

上のコードを実行すると結果は次のようになります。

0: Hello world!
1: Hello world!
2: static method called
3: non static method called (abc)

参考:
- call_user_func()

C# 逆コンパイルツール


Anakrino(ダウンロードページ)
 
参考:
http://park16.wakwak.com/~mimi/dotnet/misc/discompile.html

携帯各キャリア提供の仕様書


http://kinshachi.ddo.jp/kurage/html/MT/comp/archives/000620.html

携帯用コンテンツ開発コミュニティ


http://www.ke-tai.org/
 
携帯向けコンテンツ開発全般について触れています。
サイトについては perl, PHP が中心のよう。

ハードディスクの中身を誤って消した場合のファイル復旧方法


http://opentechpress.jp/article.pl?sid=06/09/09/1417236&from=rss
 
PhotoRec というツールを使ってファイル復元を行う方法を書いている。Windows (9x,Dos,NT,XP), Linux, Mac OS X で利用可能。
参考:
- Windows で PhotoRec
 http://oss.moongift.jp/review/i-1587.html

IE でブラウザごと Flash を終了すると以後 IE で特定サイトが見られなくなる


具体的には Flash Player 7,8 9, Windows IE 6.0 を使い、
(loadMovie などで)ネットワーク通信中の Flash を IE ごと閉じる、という動作を一定回数(あるいは同一 Flash で一定本数アクセス中に)すると、閉じた Flash がアクセスしていたサーバについて、その Flash と同じプロセスの Win IE から一切アクセスできなくなる。
というもの。
 
netstat で見てみると、Flash を通信中に IE ごと閉じると、IE で使えるサーバとプロセスのコネクション本数(デフォルト2本)分、該当サーバに対して CLOSE_WAIT 状態で残っていました。
 
ここから推測するに、コネクションを使い切って止まっているのが原因のようです。
 
参考:
- FLASH-JP.COM フォーラム
- Flashcoders – IE: close_wait