« 2005年04月 | メイン | 2005年06月 »

2005年05月31日

XMLRPC Client for Flash ActionScript 2.0

PHPObjectのことを昨日ちらりと知ったので、Perlで同じようなものがないのか調べたけど見つからなかった。
ただ、XML-RPCクライアントがあればarrayやstructのデータを移動しやすいなと思って調べるとやはりあった。

XMLRPC Client for Flash ActionScript 2.0

var RPCConn = new XMLRPC.Connection();
RPCConn.Server="http://betty.userland.com/RPC2";
RPCConn.OnLoad = function(methodResponse:Object){
	_root.result.text = methodResponse;
}
RPCConn.ClearParameters();
RPCConn.AddParameter(41,XMLRPC.types.i4);
RPCConn.Call("examples.getStateName");


こんな感じで動きますね。
ゴリゴリ書くか、こっちを使ってしまうかちょっと悩むなぁ。

2005年05月30日

アマゾン・ドット・コムの光と影

橋本大也さんのブログで紹介されていて気になったので読んだ。著者がアマゾンの物流の現場にアルバイトして潜入、半年間実際に働いたところから、アマゾンのみならず、現代進みつつある格差社会の問題点を指摘した本。著者自身もその現場で働くこととアマゾンの利用者としてアマゾンのサイトを便利に使うところに矛盾を感じると書いているが、これをアマゾンで購入して読んでいる自分も不思議な気分になれる。

アマゾン・ドット・コムの光と影—潜入ルポ
横田 増生
情報センター出版局 (2005/04)
売り上げランキング: 93
通常24時間以内に発送
おすすめ度の平均: 3.46
2 この内容で告発本っぽいタイトルはアマゾンがかわいそうかと...
4 希望格差社会
5 現代求められている潜入ルポの代表格

労働におけるエリートと非エリートが生まれる希望格差社会を生むニューエコノミー=IT企業のような表現されているようなところがあるけど、実際考えてみるとマクドナルドがまさにそれだと思うし、近所のスーパーだってアルバイトとパートで成り立っている。ただ成功している企業はうまくアルバイトとかパートからの情報を吸い上げているのではなかったか。アマゾン(と日通)だけがそういうまったくなくこれからも成長していくことは考えにくいと思うんだが。

2005年05月26日

RastでOR検索したときの結果がダブる

RastでOR検索したときの検索結果がダブる時がある。
前回の、このblogを検索のを使うと、「Blogpet | Pet」での結果でだぶっているのがわかる。Resultが6件見つかりましたに対して、後ろ3件がおかしい。SCOREも「0」だし。
この症状、自分のところだけかと思ったのだが、前田さんのruby ML検索(MeCab版)でも同じことが起きている。2ページの最後の3つが被っている。

結果の取得後にチェックすることは簡単なんだけど。

新撰組続編きたぁ

Yahoo Newsより「新選組!」続編、来年正月放送=NHK

NHKは25日、昨年の大河ドラマ「新選組!」のその後のストーリーを描く単発ドラマを来年1月に正月時代劇として放送すると発表した。大河の続編は初めてという。ドラマは、山本耕史が主役の土方歳三を演じるなど本編と同じキャストで、三谷幸喜が脚本を手掛ける。


土方『主役』キタ━━━━━━(゚∀゚)━━━━━━!!!!!
ところで、オダギリジョーのでているお茶「若武者」のCM、「新撰組!」での斉藤一と比べると、微妙にかっこわるいと思いませんか?

2005年05月25日

IE6で標準準拠モードにするとCSSのFilterが動かない

IE6で標準準拠モードにすると「いままで通りの方法」でCSSのFilterが動かない。
個人的にはどうでもいいんだけど、ぱどタウンでは重要なのでメモ。

IE6の標準準拠モードがOnになっていない場合は、

<font style="width:100%;filter:DropShadow(color=#FF00FF,offX=1,offY=0);">ドロップシャドウをかけたいテキスト</font>

とすることで、DropShadowがかかる。ところが、DOCTYPEスイッチによって標準準拠モードにすると上ではフィルターは動かない。inline要素に対してwidthを設定することはできないからだろうと思って、

<div style="width:100%;filter:DropShadow(color=#FF00FF,offX=1,offY=0);">ドロップシャドウをかけたいテキスト</div>

<font style="display:block;width:100%;filter:DropShadow(color=#FF00FF,offX=1,offY=0);">ドロップシャドウをかけたいテキスト</font>

を試すと両方動いた。ただし、width:100%;を消すとだめ。displayとwidthを両方設定するのは面倒だなといろいろ調べて、msdnのドキュメントにたどり着いた。

インライン 要素の width および height
SPAN、B、および I などのインライン 要素は、width や height プロパティをサポートしません。標準準拠モードを有効にして、インライン 要素の width や height プロパティを設定するには、インライン 要素の display プロパティを inline-block に設定します。

なぜ、inline-blockなのか謎だったが、

<font style="display:inline-block;filter:DropShadow(color=#FF00FF,offX=1,offY=0);">ドロップシャドウをかけたいテキスト</font>

としてみると見事フィルターうごいた。

Blog.NomadsCafe.Jp

2005年05月24日

Sound Blaster Digital Music LX

ヘッドフォンと一緒に使用するためにCREATIVEのSound Blaster Digital Music LXを購入。
2mのUSBのケーブルで机の上まで持ってきたので手元で音量を変えられる。非常に便利。すくなくても内蔵の音源より音が良いし、ノイズも入らない。

Sound Blaster Digital Music LX [SBDMULX] (外付けサウンドボード)
クリエイティブ・メディア (2004/04/09)
売り上げランキング: 245
通常24時間以内に発送
おすすめ度の平均: 4.67
4 期待通り
5 iTunesに溜め込んだ音源でジュークボックス
5 最適デヴァイス

5000円は最近としたらちょっと高いような気がする。

2005年05月22日

仕事中用ヘッドフォン

仕事中用ヘッドフォンとして、SENNHEISERのPX200を梅田のヨドバシで買ってきた。
いくつか調べて、ほぼ決めうちで購入。視聴できればもっとよかったんだけど。

ゼンハイザー ヘッドホン ダイナミッククローズド型 PX200
ゼンハイザー
売り上げランキング: 343
通常24時間以内に発送
おすすめ度の平均: 4.33
5 損なし
4 デザイン・携帯性最高!
4 これから楽しみです!

アマゾンのレビュー書かれているところを信じると、最初のうちは低音があまりでないということなので音の評価はすこし先ですが、付け心地はなかなか。仕事中に使いたいので付け心地は非常に重要。audio-technicaのアートシリーズの旧モデルをもっているのだけど密閉型で長時間していると耳が熱くなってくるから仕事しながらは向かない。音は好きだけど。

ゼンハイザーっていうドイツ語がかっこいい。

2005年05月20日

プログラム「で」作っているんだ

プログラム「を」作っているのではなくて、プログラム「で」つくっている。自分としてはそんなつもりでコミュニティの構築・運用をやってます。プログラムは、自分のアイディアの表現方法の一つであって、目的ではないし、プログラムのためのプログラムは性に合わない。プログラムをつくるときもアイディアを実現するために1つ1つ、1行1行、書いて試して、修正して試して、だめだったら考え直してとやっていく。
naoyaさんの「僕やはてながPerlを選ぶ理由」がはてなブックマークで話題なのですが、非常に私にとってうなずくことが多い。特に

自分に向いてるのはプログラミング言語を使いながらプログラムを考えることだというのが分かってきました。また、プログラミングをしている最中により良いアイディアが思い浮かぶということが何度もあり、次第にそれはプログラミングをしているからこそ思いつくことなのだということもよく分かってきました。紙の上では決して思いつかないようなアイディアが、プログラミング作業を通じて驚くほど自然に生まれてくるのです。

というは私も多く経験しているところ。Perlは「いろいろな書き方」ができる言語、いろいろな書き方を試すことでプログラムに対する視点が変わり、別のアイディアが浮かんでくる。このアイディアを実現していくライブ感が楽しさにつながっていくと良い(と信じる)ものが出来上がる。

コミュニティを運用している会社にいるというのは、自分にとってかなりラッキーなことで、アイディア、構築、公開、修正、運用が自分達(とユーザ)でアジャイルにやっていけたら自分たちにもユーザにも楽しくてよいものができるだろうなぁ。

Rast.pm 0.03リリース

YappoさんからRastの0.1.1に対応したRast.pmをリリース

RAST_DB_RDONLYなどの新規追加されたフラグにも対応しているようです。
わたしのpatchも使っていただきました。
ちょっと今別のことをしているのであとで試してみよう。

2005年05月18日

XMLRPC::Liteでutf8フラグをはずすには

SOAP::Liteパッケージに含まれるXMLRPC::Liteで自動的にutf8フラグをはずすには、XMLRPC::Deserializer::decode_valueを上書きする。
XML::Liteを使うプログラムに以下を追加

sub XMLRPC::Deserializer::decode_value {
  my $self = shift;
  my $ref = shift;
  my($name, $attrs, $children, $value) = @$ref;

  if ($name eq 'value') {
    $children ? scalar(($self->decode_object($children->[0]))[1]) : pack('C0A*',$value);
  } elsif ($name eq 'array') {
    return [map {scalar(($self->decode_object($_))[1])} @{XMLRPC::Deserializer::o_child($children->[0]) || []}];
  } elsif ($name eq 'struct') { 
    return {map {
      my %hash = map {XMLRPC::Deserializer::o_qname($_) => $_} @{XMLRPC::Deserializer::o_child($_) || []};
                         # v----- scalar is required here, because 5.005 evaluates 'undef' in list context as empty array
      (XMLRPC::Deserializer::o_chars($hash{name}) => scalar(($self->decode_object($hash{value}))[1]));
    } @{$children || []}};
  } elsif ($name eq 'base64') {
    require MIME::Base64; 
    MIME::Base64::decode_base64($value);
  } elsif ($name =~ /^(?:int|i4|boolean|string|double|dateTime\.iso8601|methodName)$/) {
    $value = pack('C0A*',$value);
    return $value;
  } elsif ($name =~ /^(?:params)$/) {
    return [map {scalar(($self->decode_object($_))[1])} @{$children || []}];
  } elsif ($name =~ /^(?:methodResponse|methodCall)$/) {
    return +{map {$self->decode_object($_)} @{$children || []}};
  } elsif ($name =~ /^(?:param|fault)$/) {
    return scalar(($self->decode_object($children->[0]))[1]);
  } else {
    die "wrong element '$name'\n";
  }
}


7行目と20行目をいじっています。あと、o_qnameやo_chars関数がうまく動くようにモジュール名を追加

こんなテストコードで試す

#!/usr/bin/perl
use XMLRPC::Lite;
use Devel::Peek;
my $ret = XMLRPC::Lite-> proxy("http://betty.userland.com/RPC2")->call("examples.getStateName", 41)->result;
Dump($ret);


サブルーチン追加前

SV = PV(0x85683d8) at 0x8105ea8
  REFCNT = 1
  FLAGS = (PADBUSY,PADMY,POK,pPOK,UTF8)
  PV = 0x856e8e8 "South Dakota"?0
  CUR = 12
  LEN = 13

サブルーチン追加後

SV = PV(0x8568270) at 0x8105ea8
  REFCNT = 1
  FLAGS = (PADBUSY,PADMY,POK,pPOK)
  PV = 0x856e900 "South Dakota"?0
  CUR = 12
  LEN = 13


具合がよければ、Jcodeなどをいれて漢字コードを変えたりもできるんじゃないないでしょうか。

「PDF Download」Firefoxプラグイン

はてなブックマーク経由、窓の杜のPDFリンクのクリック時に4つの処理を選択可能にする「Firefox」プラグイン

「Firefox」上でPDFファイルへのリンクをクリックした際にダイアログを表示して、 ダウンロードやキャンセルなどの処理を選択可能にする「Firefox」プラグイン。「PDF Download」v0.4.1.1が公開された。


Acrobatが起動する前に開くかDLするか決められるのは、非常に便利。ハゲシクGJ!

SNSの参加者数が1,000万人になるシナリオを考えてみる

フレンドマップのユーザ数と終了することのインパクトはよく知りませんが、同じに発表と言うのはタイミング良すぎませんかね。
Slashdotより、SNSのフレンドマップが6月20日で終了と同じタイミングで、Internet Watchより、総務省、2005年3月末のブログ利用者は約335万人、SNSは約111万人と分析という記事もあります。総務省資料はこちら
総務省資料では、

2005年3月末時点の国内SNS参加者数は延べ約111万人、アクティブSNS参加者(SNS参加者のうち、少なくとも月に1度はSNSを利用(日記、メール、掲示板等)しているユーザ)数は約80万人。2007年3月末にはそれぞれ約1,042万人、約751万人に達すると予測。

この予測はどうなのだろう。SNSはすでに淘汰の時を迎えている訳で、mixi以外がどのくらい生き残るのか心配な部分がある。そもそも日本においては、mixiがSNSのデファクトスタンダードなわけで、SNSとmixiがほぼ同義語のような状況ではないかと思われ。SNSの認知度は過半数に達しないがmixiの認知度はそれ以上になっていたりはしないだろうか。そこでSNSユーザ数が総務省予測に近い数字になるのはこんなシナリオだったり

2005年12月 mixiのユーザ数が100万人到達
2005年末 cafestaがSNSを本格的に名乗る。SNSユーザ数300万人突破
2006年夏 楽天広場がSNSを名乗り、mixiのような機能を搭載。SNSユーザ数400万で認知度あがる
2006年末 Yahoo!がmixiのようなサービスを開始。SNSのようなものと名乗る。

SNSなんてものはユーザの囲い込みが全てで集中的なものになりがち。mixiが強い理由はmixiがもっとも大きくなったから。1,000万人のシナリオを考えたときにmixiが1,000万になるか、あるいはすでにコミュニティを形成しているサービスがmixiの100万人達成でmixiのような機能を意識し搭載してSNSのようなものになる。

微妙に悲観的だなぁ。

朝からサーバメンテ

今日は、某サーバが止まっていたため、朝7時ぐらいからサーバメンテナンス。
再起動してとりあえず動いているのを確認して、しばらく様子見。ねみぃ。

ACCUSYSのACS7500は、しばらく使っているとHDDのエラーを吐くことが多いような気がする。OSに関係なくRAIDが組めて便利なんだけど困り者です。

2005年05月17日

つれづれアヤノブログがTrackBackを受け始めてる

つじあやののブログ「つれづれアヤノブログ」が最新の記事からTrackBackを受け始めている。

眼鏡萠えではないが、この人の歌は結構好きなんだけど、CCCDでアルバムをリリースしたりと微妙なところがあったりする。ブログにコメントはともかくTrackBackもないというのはどうなのかなぁと思っていたところでした。まぁ、トラックバックがあったところでトラックバックをしたりはほとんどしないだろうが、こちらのエントリーにある『真夜中の弥次さん喜多さん』は気になっていたり。

PS3正式発表。大きさはXBox360とおなじぐらいかな

PS3が正式に発表されました。
芸もなく「3」です。

でも、デザインは激しくカッコいいとおもわれ。この間発表された白い箱とはチガウ。ITmediaの記事に載っている鏡面加工の黒いヤツなんて最高。Bluetooth搭載やSDカードが使えたり、ギガビットのイーサネットが標準で3つついていたりてんこもり状態。値段いくらだー?

ki_ps3_01.jpg

イーサネットポートのサイズから比べると、大きさは高さ30センチ、幅8センチぐらいでしょうかね。
PS2より若干大きく、XBoxと変わらないっぽいサイズだな。ただデザインで曲面が使用されているので設置面積等は小さくみえるでしょうか。

2005年05月13日

RastをつかったこのBlogの検索

さっそく、RastをつかったこのBlogの検索をつくってみた。

http://nomadscafe.jp/test/rasttest/search.cgi

生のHTMLを読み込ませただけなので検索結果はあれです。
デザインは適当だけど、EstraierのCSSをちょっと拝借。

RAST_DB_RDONLYで読み込んだ場合も、LOCKがかかるので、CGIの実行ユーザとインデックスファイルのオーナーを合わせておくか、権限を777などとしないとならないのが面倒だな。

2005年05月12日

RastのPerlモジュールをRast 0.1.1に対応させるPatch

YappoさんのRastのPerlモジュールがRast のバージョン0.1.1で動かなかったので、対応させるPatchをつくった。

db_state->db->num_properties;

APIの変更でという表記が使えなくなって、

rast_properties = rast_db_properties(db_state->db, &num_properties);

というようにしないといけないよう。

Patchのダウンロード

なお、モジュールのインストールの時は、Rastモジュールに付属の

1.rast本体への細工
作者の環境では、rast付属のeuc_jp.soの読みこみ時にlibrastの関数の
参照が出来ないせいでエラーが出るので、下記の手順でその場凌ぎしました。
(rast-0.0.1を対象としています。)

1.rastの./src/encodings/ に移動
2.MakefileのAPR_LIBS_LDとAPR_LIBS_LIBTOOLに
-L/usr/local/lib -lrastを追加する。
3.make install

あまり労力を割きたくなかったので、その場凌ぎの対処です。


をやらないと動きませんでした。
3のmake installは、

make clean
make
make install

をした方が良いかもしれません。

Rastのインストール

Rastのインストールのメモ。
RedHat7.3にRastの0.1.1(作業中にアップデートされた模様)を、BerkeleyDB、icu、aprとコンパイルして入れていったときのメモ。
ゆうすけブログさんのこちらの記事も参考にしました。多謝

APRのインストール。0.9.6を入れた。

tar zxf apr-0.9.6.tar.gz
cd apr-0.9.6
./configure
make
make install

で/usr/local/apr/bin/apr-configにインストールされる。

BerkeleyDBは、4.2.52にした。
サイトからはダウンロードしにくいが、適当にPathをつけたら落とせた

ftp://ftp.sleepycat.com/releases/db-4.2.52.tar.gz
tar zxf db-4.2.52.tar.gz
cd db-4.2.52/build_unix
../dist/configure
make
make install

で/usr/local/BerkeleyDB.4.2にインストール

icuのインストール

tar zxf icu-3.2.tgz
cd icu/source
./configure
make
make install

で/usr/local/bin/icu-configにインストール

Rastのインストール

tar jvf rast-0.1.1.tar.bz2
cd rast-0.1.1
LD_LIBRARY_PATH="/usr/local/BerkeleyDB.4.2/lib" ?
./configure --with-apr-config=/usr/local/apr/bin/apr-config ?
--with-db-includes="-I/usr/local/BerkeleyDB.4.2/include" ?
--with-db-libs="-L/usr/local/BerkeleyDB.4.2/lib -ldb-4.2" ?
--with-icu-config=/usr/local/bin/icu-config
make
make install

/usr/local/bin/rast-configにインストールされる

インストール後、exampleディレクトリのものでテストしてみる。

スーファミのFFのサントラがiTunes Music Storeから流れるのは不思議

めっつぉさんの記事、海外のiTunes Music StoreでFFの曲がラインナップ入りをみて、さっそくチェック。

なつかしのFF5のサントラとかある。
スーファミの音のサントラだし、それが試聴でiTunes Music Storeから聞けるというのなんか不思議な感じがしますね。

タイトルは、上の記事からの引用ですが、

FF1オリジナルサウンドトラック $5.99
FF2オリジナルサウンドトラック $5.99
FF4オリジナルサウンドトラック $7.99
FF5オリジナルサウンドトラック $11.99
FF6オリジナルサウンドトラック $17.99
FF7オリジナルサウンドトラック $24.99
FF8オリジナルサウンドトラック $24.99
FF9オリジナルサウンドトラック $24.99
FF10オリジナルサウンドトラック $24.99
FF11オリジナルサウンドトラック $24.99
FF11ジラートの幻影 オリジナルサウンドトラック $9.99
FF11プロマシアの呪縛 オリジナルサウンドトラック $9.99
The Black Mages $9.99
The Black Mages II $9.99
20020220 music from FINAL FANTASY $9.99

X2がないのは、あれがAvexだし、CCCDだからですかね。

2005年05月11日

体の調子をくずす

GWは家でホリデープログラミングではなくて、DIY。ものすごく休日らしい過ごし方で、CDをおさめる棚なぞ作ってました。
んで、旅先で体の調子をくずして、点滴のお世話になって、いまだに直らなくて、昨日病院行って、明日また病院。なんか胃が悪いらしい。

季節の変わり目だからかな。
しかし、奥さんのブログにリンクを張るだけで連休報告ができるのは便利だ(w
きんつばうまー。

2005年05月02日

科学常識

あちらこちらで話題になっている読売新聞の記事
科学常識このぐらいは??目安作り、文科省乗り出す

3とか9でかなり悩んだ末に全部正解。
やってみてみると良いです。
正答は読売の記事の中にあります。

【科学常識チェック、〇か×か】(国際比較の共通質問から)
 〈1〉地球の中心部は非常に高温
 〈2〉すべての放射能は人工的に作られた
 〈3〉我々が呼吸に使う酸素は植物から作られた
 〈4〉赤ちゃんが男の子になるか女の子になるかを決めるのは父親の遺伝子
 〈5〉レーザーは音波を集中することで得られる
 〈6〉電子の大きさは原子よりも小さい
 〈7〉抗生物質はバクテリア同様ウイルスも殺す
 〈8〉大陸は何万年もかけて移動しており、これからも移動するだろう
 〈9〉現在の人類は、原始的な動物種から進化した
 〈10〉ごく初期の人類は、恐竜と同時代に生きていた
 〈11〉放射能に汚染された牛乳は沸騰させれば安全