These pages are written by only Japanese.

Welcom to My Diary.com
最新の日記タイトル一覧カテゴリ別タイトル一覧トップへ戻る〜

こんにちは♪ 現在は4月25日(木)15時45分。 TeaBreakにしましょうか?


hns - 日記自動生成システム - Version 2.19.5 (色々 Fixed)

先月 2008年05月 来月
01 2 3
4 05 06 07 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Namazu for hns による簡易全文検索です。
詳細は 詳細指定/ヘルプをご参照下さい。
検索式:

2008年05月01日(木)

(速報)SWF SpecificationがOpenになりました

これで堂々と swf 書き換えツール が作れる。^^;
一応、公式の仕様書は読まずに作っていましたが、 代わりに参考にしてるサイトが本当に白かは検証しようがないので…

2008年05月05日(月)

[FFXI] 青魔法ラーニング手伝い

久々に復帰して、やりたい事も見つからず、とりあえずお友達のお手伝いを。
ラミア から2種。 ダハク から1種。

2008年05月06日(火)

湘南の海岸を散歩

小田急江ノ島駅からJR茅ヶ崎駅まで歩き。
GPS でトラッキングしたデータが、カシミール3D で取り込めなかったので 今回は軌跡なし。
後で生データ吸い出してどうなってるか確認しよ… (・ω・)

海辺の写真:

写真を撮っていませんが、江ノ島駅近くは海水浴客でゴッタ返していました。


所感:

海岸沿いに車道がありますが、海から陸の方向に風が吹いているので 廃棄ガスを吸わなくていい感じ。
ただ、砂が沢山飛んできて、口の中がジャリジャリいったり目が痛かったりと 不慣れな自分にはちょっとつらい場所でした。
ついでに髪がボサボサに、肌がザラザラになって痛みそう。^^;

寒川神社

神奈川県の第一の社らしいので見てきました。

寒川駅で降りる (NG):

駅から降りた後に知りましたが、寒川神社の最寄りは宮山駅だそうです。
仕方ないのでそこから歩きました。GPS のおかげで迷わず到着。ъ(`―゜)

神社:



本殿(?)の中は罰が当たりそうで撮りませんでしたが、 装飾品が綺麗に並べられていて、伝統による桁違いのセンスを感じます。
また見に行きたいな。すいてる時に。

外から見た神社:

宮山駅:

帰りは最寄(それでも500m歩く)の宮山駅。

切符の売ってない駅でした。あと、2方向あるのに一車線。

JR相模線:

ボタンを押さないと電車のドアが開かないので、少しドキマギしました。 結局、ボタンを押す勇気がなくて、他の人が開けたドアから乗り込み。
あと、最近何度かこの電車に乗っているのですが妙に外国人率が高いです。
しかも、英語でもフランス語でもドイツ語でも中国語でも韓国語でもない 言語が聞こえきます。ここって日本だよね‥ (・ω・)

2008年05月07日(水)

ゲームを何と比較する?

Webで何かサービスする時もこれが重要ですよね。

大事なことだから細かく言うんです。

全然中身みてねぇ!!
……わずか0.5秒しか見てないのに分かり易いって。。。
あるある…

2008年05月10日(土)

[FFXI] ウルガラン ENM

久しぶりの崖すべりで、予想通り失敗。

BC での戦闘自体はすぐに終了。

[FFXI] テメナス東塔

エレメンタルを倒すと箱がポップして、開けるとアイテムを入手できます。

2008年05月11日(日)

[FFXI] ナイズル島

いきなり蛙が出てきてダメパターン。

2008年05月12日(月)

swfed replaceJpegData alpha データ対応

replaceJpegData の bridge functionで alpha データを渡していなかったので修正。
あと、replaceEditString で処理に成功した場合も false を返していたので、true に修正。

2008年05月13日(火)

swfed replaceJpegData alpha データ対応 (2)

まだ、DefineBitsJPEG3 のマスクデータの処理がダメで、 生成した swf ファイルを dump するとバイナリ列が壊れてました。
% php swfgetjpegdata.phps      chara.swf 12 > 12.jpg
% php swfgetjpegalphadata.phps chara.swf 12 > 12.alpha
% php swfreplacejpegdata.phps  chara.swf 10 12.jpg 12.alpha > tmp.swf
% php swfdump.phps tmp.swf > /dev/null
bitstream_output_sub: bs->data_len(8879) < offset(6)+length(3690977535)
swf_tag_jpeg3_create_detail: swf_tag_jpeg->jpeg_data
can't create tag detail (tag=35)
swf_tag_jpeg_print_detail: detail == NULL
DefineBitsJPEG3 build 処理で offset_to_alpha の出力を忘れてる… ○rz

修正後:

% php swfreplacejpegdata.phps chara.swf 10 12.jpg 12.alpha > tmp.swf
% php swfdump.phps tmp.swf  > /dev/null
swf_tag_jpeg3_create_detail: uncompress: failed by unknown reason
微妙… でも、あとちょっと… のはず…

プログラム:

メモ:

% pwd
/home/yoya/src/php/php-5.1.6/ext/swfed
% mkdir -p ~/public_html/diary/data/2008/05/13/swfed
% cp config.m4  swfed.c php_swfed.h \
     swf_*.? jpeg_segment.? bitstream.? swf*.phps \
     ~/public_html/diary/data/2008/05/13/swfed/.

追記 (2009/04/14):

HNS RSS フィードがうまく行かない

某所のフィーダーで Yoya's Diary の新着が更新されない という話しを伺ったので調査。(mixi では問題ないですけど)

charset:

feedanalyzer では、content-type の charset(未指定なので、 aus-ascii 扱い)と XML の encode が不一致と指摘されます。 少しコードを書き換えて charset を明示的に指定する事にしました。
さて、どうなるか…

item:

あと、RSS0.91 的には item 数が多いという指摘もあるので、 これでダメなら最大15個に絞る予定です。 (同時に変更すると、どっちが悪いのか分からなくなるので、item の対応は後回し)

/awm/diary/lib/HNS/Tools/RSS.pm:

# print "Content-type: text/xml\n";
print "Content-type: text/xml; charset=EUC-JP\n";

2008年05月14日(水)

swfed replaceJpegData alpha データ対応 (3)

DefineBitsJPEG3 build 処理で offset_to_alpha の出力を忘れてたのでなく 出力の場所を間違えていました。出力の場所を修正したら問題解消。
これで、テキストとJPEG画像の入れ替え処理が動きました。(当初の目的達成)

chara.swf の 10,12番と69,71番の JPEG画像を入れ替える:

% php swfgetjpegdata.phps      chara.swf 10 > 10.jpg # 海春
% php swfgetjpegalphadata.phps chara.swf 10 > 10.alpha
% php swfgetjpegdata.phps      chara.swf 12 > 12.jpg
% php swfgetjpegalphadata.phps chara.swf 12 > 12.alpha
% php swfgetjpegdata.phps      chara.swf 69 > 69.jpg # 麗
% php swfgetjpegalphadata.phps chara.swf 69 > 69.alpha
% php swfgetjpegdata.phps      chara.swf 71 > 71.jpg
% php swfgetjpegalphadata.phps chara.swf 71 > 71.alpha
% # 海春と麗を入れ替え
% php swfreplacejpegdata.phps chara.swf 10 69.jpg 69.alpha > tmp1.swf
% php swfreplacejpegdata.phps tmp1.swf  12 71.jpg 71.alpha > tmp2.swf
% php swfreplacejpegdata.phps tmp2.swf  69 10.jpg 10.alpha > tmp3.swf
% php swfreplacejpegdata.phps tmp3.swf  71 12.jpg 12.alpha > tmp4.swf
下に並んでいるキャラの海春さんと麗の位置が入れ替わってます。

プログラム:

夏は時計1時間進めて 自民、サマータイム法案提出へ

勘弁して… (ネットワークエンジニア的に)
今の首相。誰か何とかして…

不具合の原因は「カタカナでなく漢字だったから」――三菱東京UFJのシステム障害

最終的な実運用環境でないと表面化しない問題というのはありがちだけど。う~む。
テストデータやテスト環境を実際のに近づける努力って大切ですよね。

「ビッグサンダー・マウンテンの列に並んだのに、身長が足りなくて乗れなかった子どもと両親」へのディズニー・ワールドの対応

では、ライドに乗れなかった子どもはどうするのか。子どもは、
身長がライドに乗れる高さになったときに、待ち時間なしで乗れることを
約束した証明書をキャストからもらうのである。
マニュアル化されてないと、とても出来ない難しい対応ですねぇ…

難しいの線引き

意味が解っていないということは、
解っている人の考えを超越して意味が解らないのだ。
名言だ…

2008年05月15日(木)

SWF ファイル内 JPEG 画像一覧表示

でファイルを放り込んだ先に「画像一覧」のリンクを作りました。
例えば、上記 URL に chara.swf を渡して「画像一覧」をクリックすると、 以下のように表示されます。 swfed による画像入れ替えでは、image_id で対象画像を指定するので、 実際に SWF に入っている画像と、その image_id の対応を調べる為に このページを作りました。

tag detail:

ついでに、tag detail で画像情報として image_id のみ出すのを、 画像データのサイズも表示するようにしました。

機能拡張予定:

     function getHeaderInfo()       return array('compress'=>...);
     function setHeaderInfo(array('compress'=>...))
                                    return true/false;
     (BMP を読み込むライブラリを知らないので、とりあえず PNG だけ)
     function getPNGData(integer image_id)
                                    return string pngdata;
     function replacePNGData(integer image_id, string pngdata)
                                    return true/false;
     function convertGIFtoAlphaData(string gifdata)
                                    return alphadata;

2008年05月16日(金)

ユーザはいかにテキストを読まないか?

Web はゴミのテキストで溢れているので、まずは見た目で判断するでしょうね。

2008年05月19日(月)

十分に物理メモリを搭載しているにもかかわらずスワップアウトが発生する理由

メモメモ。

自宅サーバの憂鬱 - spam 対策が厳しくなってきた。

spam がヒドイので仕方ないのかなぁ…
今のところうちは影響がないので、こう言ってられるのかもですが。

2008年05月20日(火)

swfed SWF 圧縮on/off 機能

FWS(圧縮無し), CWS(圧縮有り)の切り替えを出来るようにしました。
API 的には以下のメソッドを実装。
function getHeaderInfo()       return array('compress'=>...);
function setHeaderInfo(array('compress'=>...))
                               return true/false;

swfcompress.phps:

実行例
% php swfcompress.phps ~/foo.swf | od -c | head -1
0000000   C   W   S  \b 262   r 001  \0   x 234 324 271   w   X 223   [
% php swfcompress.phps -u ~/foo.swf | od -c | head -1
0000000   F   W   S  \b 262   r 001  \0   p  \0 005 334  \0  \0 327  \0
strings で SWF ファイルの中を見てもさっぱり分からない場合は大抵、 中身が zlib 圧縮されてるので、swfcompress.phps -u で解いてから(以下略

プログラム:

追記 (2008/09/27):

SWF フォーマットについて調べた事を以下のページにまとめました。
[- HNS 警告:コマンド SWF って予約されてます。-]

2008年05月21日(水)

swfed DoAction 実装開始

ActionScript の定数とか書き換えられないかと思い。 ↑この説明を読みながら、本能のままに分解処理をつくってみました。

結果:

action_record =
        action_id=0x01  action_length=2
        action_id=0x01
        action_id=0x00
うーん。全然ダメっぽいですね… action_id 01 なんて知りませんし。
もう少しお勉強しないとダメですか。

プログラム:

はてな日記市民になりました

(よく分からないけど) やったー。

CGアニメを革新する技術

ARToolKit の話を聞いた時、こんな事できたらいいなとは話してたけど、 実際にやる人がいるとは…

2008年05月22日(木)

電車から降りるときに絡まれる

電車から降りようとした時に、ドアが開いてもその真ん中に 立ちっぱなしの若者がいて降りれなかった時の事。
※位置関係
 外
+----+----+ ←電車のドア
○  ○  ○ ←他人
    ↑奴
    ○ ←自分
 中     ※) 通勤中の電車なので混雑してます。
すみませんと言ってもヘッドフォンで聞こえないのか動きがないので、 肩を軽く叩いてどいて貰って、その横を通ったら足をひっかけられ、 更に足を持ち上げられました。(本気で転ばそうとしてきた)
ギリギリ体勢を立て直して *1 転ばずに済みましたが、何だろうと振り返ってみると、 電車の中からさっきの人が思いっきり睨んでる… (そしてて周辺がザワザワ *2 …)
どうやら自分が邪魔になってる事に気づいてないようで…
なんという、ゆとり… (;^ω^)
昔だったら、中指立てて挑発してたと思いますが、 もう大人なので首をかしげつつ、そのまま去りました。
*1: 山登りで鍛えてるおかげですが、昔の自分だったらきっと転倒してた。
*2: 場がザワつくの久しぶりに体験した。^^;

swfed DoAction 実装 (2)

何となく出来ました。

swftools をカンニング:

op コードのフィールド 7 bit で、 同じバイトの MSB 1 bit が length フィールド有り無しフラグで 分かれていると思いきや、
        op = swf_GetU8(tag);
        if(op<0x80)
            length = 0;
        else
            length = swf_GetU16(tag);
どうやら、MSB 混みで op コードとして処理するのが良いらしい。 真似しよう。

swfdump.phps の結果:

tag=DoAction(12)  length=7
action_record =
        Goto Frame len=2
        Play
        End
でも、destructor で munmap_chunk(): invalid pointer が発生。

invalid pointer エラー:

/lib/libc.so.6(cfree+0x1bb)[0x2c00eb]
/usr/lib/php/modules/swfed.so(swf_action_list_destroy+0x2c)[0x113d16c]
/usr/lib/php/modules/swfed.so(swf_tag_action_destroy_detail+0x29)[0x113cac9]
/usr/lib/php/modules/swfed.so(swf_tag_destroy+0x56)[0x113af46]
/usr/lib/php/modules/swfed.so(swf_object_close+0x2d)[0x113a29d]
/usr/lib/php/modules/swfed.so[0x1138bdf]
php(list_entry_destructor+0x82)[0x81d6d92]

デバッグ:

swf_define.h のデバッグの所を有効にして実行
XXX (0) ptr=0x8da1e98 (/home/yoya/prog/swfed/swf_object.c, 19)
XXX (2) ptr=0x8d9e988 (/home/yoya/prog/swfed/swf_tag_action.c, 30)
XXX (165) ptr=0x8d9fa78 (/home/yoya/prog/swfed/swf_tag.c, 71)
XXX (167) ptr=0x8d9faa8 (/home/yoya/prog/swfed/swf_tag.c, 71)
XXX (168) ptr=0x8d9fac8 (/home/yoya/prog/swfed/swf_tag.c, 94)
XXX (169) ptr=0x8d9fad8 (/home/yoya/prog/swfed/swf_tag.c, 71)
XXX (170) ptr=0x8d9faf8 (/home/yoya/prog/swfed/swf_tag.c, 94)
XXX (171) ptr=0x8d9fb08 (/home/yoya/prog/swfed/swf_tag.c, 71)
XXX (172) ptr=0x8d9fb28 (/home/yoya/prog/swfed/swf_tag.c, 94)
XXX (177) ptr=0x8d9eac0 (/home/yoya/prog/swfed/swf_action.c, 221)
XXX (178) ptr=0x8d9ead0 (/home/yoya/prog/swfed/swf_action.c, 148)
XXX (179) ptr=0x8d9eae0 (/home/yoya/prog/swfed/swf_action.c, 221)
XXX (180) ptr=0x8d9eaf0 (/home/yoya/prog/swfed/swf_action.c, 221)
セグメンテーション違反です
destruct 処理の途中で落ちてるので、結構ボロボロ。

malloc のサイズ指定がおかしい:

swf_action_list_t *action_list;
action_list = calloc(sizeof(swf_action_list_t *), 1);
あほですか… ○rz
action_list = calloc(sizeof(* action_list), 1);
修正っと。φ。。
あと余計に free してる場所を発見して修正。

メモリリーク発見:

XXX (178) ptr=0x958aad0 (/home/yoya/prog/swfed/swf_action.c, 148)
メモリリークが一箇所残っていました。
L148      act->action_data = malloc(act->action_length);
なるほど。
        swf_action_t *action = action_list->head;
        while (action) {
            swf_action_t *action_next = action->next;
            if (action->action_data) {
                free(action->action_data); ※←これを追加。
            }
            free(action);
            action = action_next;
        }
        free(action_list);
メモリリークも完治。
さて、逆アセンブルのやり方はだいたい分かりましたけど、 swfed 的にどういう API にしましょうか。うーん。

プログラム:


2008年05月23日(金)

Amazonを倉庫代わりにしていた転売厨終了のお知らせ

ちょっとまて!
つーことは5月31日は品切れ品の大量放出がくるのか!?
よーしパパ、0時から尼のサイトに張り付いちゃうぞー!!!!!
どうなるんでしょうね。

ゲーム制作では成果に対して報酬以外のもので応えなくてはいけないという話

ゲームに限らずプログラマ一般に言える事かもしれません。

地頭力とかフェルミ推定についての誤解を解いておく

工数計算とか推定しなきゃいけない仕事は結構あります。

これで、16 日分だよ〜。

タイトル一覧
カテゴリ分類
Database
JXTA
Java
XML
awm
bookmark
keyword
memo
news
research
Powered by hns-2.19.5, HyperNikkiSystem Project