These pages are written by only Japanese.

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

こんにちは♪ 現在は8月9日(日)16時56分。 もうすぐ退社時刻?


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

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

2008年04月21日(月)

swfed replaceEditString 実装完了

DefineEditText の string replace 処理自体は既に作ってあったので php から橋渡しさせただけですけど。

失敗談:

magic が潰れてたりとボロボロでした…
% php swfreplaceeditstring.php textedit.swf var1 ABC > tmp.swf
% fdmp tmp.swf
  addr :  0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF
0x00000: 28e2 2300 28e2 2300 7000 0960 0000 9600  ( # ( # p  `
0x00010: 000a 0100 4302 0000 003f 0c13 0000 0001      C    ?
	<略>
0x00080: ffff 0200 0000 0000 0028 0076 6172 3100           ( var1
0x00090: 4142 4300 8906 0602 0003 0018 a286 8e7f  ABC
	<略>

失敗の原因:

swfed.c: PHP_METHOD(swfed, output)
    data = swf_object_output(swf, &len);
    new_buff = emalloc(len);
    memcpy(new_buff, data, len);
    free(data);
    RETURN_STRINGL(data, len, 1);
… ○rz
以前、getJpegData で全く同じバグを見つけたのに、 同じ処理がある output の修正を忘れてたという…

DefineEditText 出力のバグ:

magic は直りましたが、書き換えた部分が微妙に壊れてます。 font 指定が off になってたり…
壊れる前
tag=DefineEditText(37)  length=37
        edit_id=2
        rect=(-10, -2)-(134, 18) (f_size=13)
        text=1 wwrap=0 multi=1 pass=0 ro=1 col=1 maxlen=0 font=1
壊れたデータ
tag=DefineEditText(37)  length=37
        edit_id=2
        rect=(-10, -2)-(134, 18) (f_size=13)
        text=1 wwrap=0 multi=0 pass=1 ro=1 col=0 maxlen=0 font=0
これを見て、rect の後の bit がズレてるのかなと、 ふと、rect の後の byte align をとってない事に気付き、
swf_tag_edit_output_detail の処理で、
swf_rect_build(bs, &swf_tag_edit->rect);
bitstream_align(bs); ← ☆これ☆
bitstream_putbit(bs, swf_tag_edit->edit_has_text);
を追加したら解決しました。

プログラム:

課題:

DefineBitsJPEG2,3 の画像入れ替えの処理は実装済みですが、 まだ、動かしていません。(テストデータを作るのが面倒なので…)

2008/10/10 追記:

Flash SWF 上の JPEG の扱いについて以下の Wiki にまとめました。

httpd が起動しなくなりました

httpd restart で apache が起動しなくなったので、 log を見ると
% tail -2 /var/log/httpd/error_log
[Mon Apr 21 23:02:37 2008] [notice] mod_python: Creating 4 session mutexes based on 256 max processes and 0 max threads.
[Mon Apr 21 23:02:37 2008] [emerg] (28)No space left on device: Couldn't create accept lock (/etc/httpd/logs/accept.lock.24057) (5)
semaphores 開放忘れのバグがあるようです。
# ipcs -s  | grep apache | tail -2
0x00000000 29229176   apache    600        1
0x00000000 29294713   apache    600        1
# ipcs -s  | grep apache | wc
    114     570    6156
えーっと…
# ipcs -s | grep apache | \
  perl -e 'while (<>) { @a=split(/\s+/); print `ipcrm sem $a[1]`}'
リソースを削除しました
リソースを削除しました
リソースを削除しました
	<略>
これで解決。

2008年04月22日(火)

swfed 改善 (identity 内部メソッド追加)

更新しないブロックなのに、データを構造化してシリアライズし直したり、
そもそも image_id, edit_id は生データから固定オフセットで抽出できるのに、
杓子定規に構造化してから抽出してたので、その辺りの不満を解消。

プログラム:

画像のマスクデータ:

DefineBitsJPEG3 のテストをするには 差し替え画像のマスクデータがいるので、
この際、マスクデータの生成ルーチンも書こうかしら… ↑これのラベリング処理が使えないかと思うけど、どうなんでしょ。

FFXI への誘惑

↑これ見てたら、久々に FFXI で遊びたくなったけど、 仕事がめっちゃ忙しいので我慢我慢… (;ω;)

150万本突破 「モンスターハンター」大ブレークの理由:

185 バクテリア(甘粛省) 2008/04/21(月) 14:39:21.95 ID:2Q2+6BAKO
PSP&モンハン買うのと、FF11買うのとどっちがいいかな?

186 ゲーマー(もんじゃ) 2008/04/21(月) 14:40:15.01 ID:I7qp1sp50
>>185
その金と時間を勉強か仕事に向けるといいんじゃないかな
改めて、MMO は我慢しようと誓いました…

2008年04月23日(水)

swfed 画像抽出バグ修正

某所 トップの flash から画像を抽出したところ 中途半端に表示される画像が生成されました。

調査:

HugFlash で抽出した画像。
% jpeg_segment  ~/top_0.jpg
marker=SOI(FFD8): length=0
marker=APP0(FFE0): length=14
marker=DQT(FFDB): length=65
marker=DQT(FFDB): length=65
marker=DHT(FFC4): length=29
marker=DHT(FFC4): length=179
marker=DHT(FFC4): length=29
marker=DHT(FFC4): length=179
marker=SOF0(FFC0): length=15
marker=SOS(FFDA): length=159023
marker=EOI(FFD9): length=0
失敗した画像。
% jpeg_segment  ~/top_0-fail.jpg
marker=SOI(FFD8): length=0
marker=APP0(FFE0): length=14
marker=DQT(FFDB): length=65
marker=DQT(FFDB): length=65
marker=SOF0(FFC0): length=15
marker=DHT(FFC4): length=29
marker=DHT(FFC4): length=179
marker=DHT(FFC4): length=29
marker=DHT(FFC4): length=179
marker=SOS(FFDA): length=27951
marker=EOI(FFD9): length=0
見た目のまんま、データ部が途中で切れてます。
って、あれ…
159023 と 27951 って キリがよさそうに見える。(*'ω'*)
 dec    hex
159023 26D2F
 27951  6D2F
やっぱり…
JPEG セグメントの長さを入れるフィールドが 2byte なので、 セグメントの長さを unsigned short で保存してたけど、 SOS は長さフィールドの無いストリーム・データなので、 0xFFFF のサイズを超える事があるのね…

プログラム:

という訳で、 0xffff を超えたサイズの SOS セグメントを持つ画像を処理できなかった 不具合を修正しました。

2008年04月24日(木)

swfed 画像抽出バグ修正 (2)

画像抽出で似てるけど別のバグを発見。 これから抽出した画像が、中途半端に表示されました。
正しい画像はこっち→

調査:

壊れた画像のJPEGセグメント
marker=SOS(FFDA): length=439
marker=RST0(FFD0): length=392
marker=RST0(FFD0): length=333
marker=RST0(FFD0): length=344
あーっ…。RST は 0...7 でローテーションするんでした…
正しい並び
marker=SOS(FFDA): length=439
marker=RST0(FFD0): length=392
marker=RST1(FFD1): length=361
marker=RST2(FFD2): length=373
marker の order を決め付けて単純に並び替えちゃダメじゃん。(´Д`;)
あと、HugFlash で展開したのを見ると、未知のタグもありました。
marker=APP0(FFE0): length=14
marker=<Unknown>(FFFE): length=36
marker=<Unknown>(FFEE): length=12OK
もちょっと真面目に並び替えを実装してみます。

修正イメージ:

SWF -> STD JPEG
SOF0...SOF2 の直前に DQT を、直後に DHT を配置する。
STD -> SWF JPEG
DQT と DHT を SOI と EOI で括り、その後ろに(SOI, EOI を含む)残りのセグメントを配置。

プログラム:

テストページ:

これで、あずまんがOP フラッシュの画像も吸い出せます。
一枚しか入ってませんけど。:-)

2008年04月25日(金)

「青少年インターネット規制法案」が成立すると、日本のネットは完全に死ぬ

つまり、青少年健全育成推進委員会というどこの誰だか知らない
5人が作った判断基準が適用されるというわけ。結局、どういう
判断基準になるのかはまだ具体的に何も決まっていないのに、
なぜか先に法律から決めようという、順番がめちゃくちゃな状態。
しかも、法律になるとこの5人が決めた内容が基準になるため、
既存の法律を変えることなく、いくらでもあとからどんどん規制
する中身を自由自在に増やしたり変えたりができるわけです。
やりたい放題ですね。
これは… ひどい…

ガキに見せられなくなるフィルタリングごときでネットって死んでしまうの?:

子供に見られる可能性がある時点でほぼ全てのオープンなサイトが 対象になりうるので、この見出しは問題を矮小化してると思う。
自殺サイトに裏サイト勝手に無料で作らせてガキに自殺者が出て問題になってて
民間の自助努力とやらで何も解決しないから立法が業を煮やして
これは同意なんだけど…
運用できそうもない法律作ってガス抜きしようという腹かどうかも確かめず
どうやったら確かめられるんでしょうね…

アナログ放送に「2011年7月放送終了」のメッセージ表示 ー 停波半年前にはアナログ放送が常時レターボックスに

これも… ひどい…
テレビ離れが進んでくれれば、 ネット事業ウマーで自分的には仕事がやりやすくなりますが、 実際にはテレビから離れられない人の方が圧倒的に多いでしょうね。

「アナログ」という字幕を出す前に:

ふむ。デメリットだらけのシステムに移れって言われても… といった感じ。

JASRACが本当に搾取したもの

JASRACが私たちから本当に搾取したもの。それは日本の音楽の未来だ。
2001年頃だったか、JASRACが登場したことによりインターネット上の
MIDI配信サイトは全滅した。
ついでに、色々とブックマーク。

2008年04月26日(土)

yum install apachetop を試みる

お友達 が CentOS5 の yum で apachetop を入れてたので真似してみました。
# yum じゃ無理だと思って手動インストールしようとしてた。^^;
↓セットアップはこちらを参考に
# vi /etc/yum.repos.d/CentOS-Base.repo

[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=1
includepkgs=clearsilver python-clearsilver trac
gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt

[kbs-CentOS-Extras]
name=CentOS.Karan.Org-EL$releasever - Stable
gpgcheck=1
gpgkey=http://centos.karan.org/RPM-GPG-KEY-karan.org.txt
enabled=1
baseurl=http://centos.karan.org/el$releasever/extras/stable/$basearch/RPMS/
includepkgs=python-docutils python-imaging

# yum --enablerepo=dag --enablerepo=kbs-CentOS-Extras update
	<略>
Reducing Dag RPM Repository for Red Hat Enterprise Linux to included packages only
Finished
Reducing CentOS.Karan.Org-EL5 - Stable to included packages only
Finished
No Packages marked for Update/Obsoletion
# 
# yum --enablerepo=dag install apachetop
Loading "installonlyn" plugin
Setting up Install Process
Setting up repositories
Reading repository metadata in from local files
Reducing Dag RPM Repository for Red Hat Enterprise Linux to included packages only
Finished
Reducing CentOS.Karan.Org-EL5 - Stable to included packages only
Finished
Parsing package install arguments
Nothing to do
… さて、諦めて寝るか… ○rz

遺書をPCに残したフリをしてHDD全消去させるプログラムを実際に仕込むとどうなるか

別の手を考えよう…

フリーゲーム論─インフレのバランス

後で読もっと。

2008年04月27日(日)

仏果山 => 半原越 => 経ヶ岳コース

GoogleEarth で軌跡を見たのですが、どうも地図と合ってないようで…
*1 カシミール3D →
確かに何度か道から外れてた気もしますが、ここまでひどくは無いはず。(´Д`;)

登山前:

バス停から民家を通って登山口まで30分程歩きます。 (遠回りしているので参考にしないで下さい)

世俗の街並が続きます。

ようやく見覚えのある登山口を発見。
(来た事があるのですぐ分かりましたが、初めての人だと迷子になりそう)

仏果山 (登山前半):


ひたすら登ります。

車道が見えて序盤終了。

仏果山 (登山後半):

車道を横切って、また登ります。

鉄塔

仏果山頂上:

←登ってみました
展望台の眺め (見晴らしはよいけど、かなり怖い…)

このとき、GPS がフリーズしました… う~む…

仏果山 => 半原越:


急な下り、そして 難所


肩幅もない狭い道で左は崖。(((;゚Д゚)))


岩場が続きます。

山岳修験者のはなし (明治維新の神仏分離令で廃止されたそうで (;ω;)



リッチランドの分岐から下りが激しくなります。

車道と交差

経ヶ岳:

この辺りで足がつって休憩
経石
頂上


以前、登山を挫折した 場所に到着。


車道と交差。


ここで登山っぽい道は終了。

まとめ:

  • ヒルが出るらしいのと実際に虫が多いので、登るのは4月までにしとこ。
  • 展望台に登るのはかなり怖い。見晴らしが良すぎるしグラグラするし。
  • GPS がフリーズした。電源スイッチを押したら復旧したけど今後が不安。
  • 半原越は難易度がそこそこ高い。少なくともピクニック気分では無理。
  • 標識の無い分かれ道が結構あるけど、自分でさえ間違えなかった(?)ので大抵の人は大丈夫。
  • 足がつった時、右左(両足を揃える)左右(両足を揃える)の順で階段を登るようにしたら何とかなった。困った時お勧め。
  • 途中で下着を着替えたら体力がかなり回復した。相当体を冷やしてたらしい。
  • 途中にトイレがないのはやっぱりキツい…

*1: Terrain(地形) を表示レイヤから外さないと、軌跡が途切れ途切れになります
参考: http://slashdot.jp/~j3259/journal/398895

Google Base

Google Base というものの噂を聞き、アクセスしてみた。
Already use Google Base?
yoya@awm.jps items
何か面白そうなリンクがある…
ポチッとな☆
履歴
Redirecting
Redirecting
Redirecting
Redirecting
Redirecting
<略>
無限、redirect されました。Google 様がこんな初歩的なミスを。(・ω・)

2008年04月28日(月)

中国製のシスコ製品のニセモノが米政府機関で多数発見、FBIが本格捜査に着手

やるなぁ、中国… (勿論、悪い意味で)

殺された人の数 - 平成19年(2007)の殺人発生数は戦後最低

要するに能力の問題で、マスコミの人間は信じられないほどに知識がなく
調べる能力もないために、普通の人には何か裏に大きな陰謀でも渦巻いて
るように見えてしまうものなのです。
なるほど…
会社でダメな仕事やってる人を見て、組織の変な力関係の影響かと思いきや、 指摘してみると単に担当者が考え無しなだけだったりする事が多々あります。 この辺は考えすぎにも注意しないとですね。
黙って他山の石にするのが賢いんだろうけど、自分には無理。(・ω・)

バカな裁判官が航空管制をガタガタにさせるって・・・(追記あり)

↓これと似た問題かしらね。

ガソリンの買い置きは大変危険なので止めましょう

知りませんでした… 周りで買い置きを考えてる人がいたら止めよう。

地上デジタル普及遅れ消費者軽視を連発

テレビ番組には興味が無いけど、家にあるテレビを使わないのは勿体無い。
ニュースサイトの動画とかニコニコの人気動画を順繰りに再生してテレビに 映し続ける事って出来ないかな。

2008年04月29日(火)

swfed getJpegAlpha 不具合修正

alpha channel データの入っていない DefineBitsJPEG, DefineBitsJPEG2 の image_id を指定すると segmentation fault で落ちるバグがあったので修正。 ついでに image_id に対応するタグを探す処理を少し軽くしました。

抽出例:

swfgetjpegdata.php chara.swf  10 > chara-10.jpg
swfgetjpegalphadata.php chara.swf  10 > chara-10-alpha.raw
マスクデータの JPEG への変換 (要 Netpbm)
cat char-10-alpha.raw  | btimes 3  | rawtoppm 84 188 | \
                         ppmtojpeg > chara-10-alpha.jpg
JPEGデータ n JPEGデータ αチャネル n αチャネル

プログラム:


2008年04月30日(水)

JPEG 画像のプロテクト方法 for 携帯

お友達から以下の URL を教わりました。 このおかげで、以前、FFFE のマーカー付き JPEG 画像を見つけて何だろうと 思った疑問が氷解。
この記事によると COM セグメントだそうです。

プログラム:

という訳で対応しました。
jpeg_marker_name_t jpeg_marker_name_table[] = {
    {0xD8, "SOI"},
    {0xE0, "APP0"}, {0xE1, "APP1"}, {0xE2, "APP2"}, {0xE3, "APP3"},
    {0xE4, "APP4"}, {0xE5, "APP5"}, {0xE6, "APP6"}, {0xE7, "APP7"},
    {0xE8, "APP8"}, {0xE9, "APP9"}, {0xEA, "APP10"},{0xEB, "APP11"},
    {0xEC, "APP12"},{0xED, "APP13"},{0xEE, "APP14"},{0xEF, "APP15"},
    {0xFE, "COM"},
    {0xDB, "DQT"},
	<略>

課題:

当たり前ですが、jpeglib にもセグメント分割の処理があります。 全て自前で処理するのはやめて、この仕組みに載せられないか調査中。
jpeg-6b/jpeglib.h
struct jpeg_marker_struct {
  jpeg_saved_marker_ptr next;   /* next in list, or NULL */
  UINT8 marker;                 /* marker code: JPEG_COM, or JPEG_APP0+
n */
  unsigned int original_length; /* # bytes of data in the file */
  unsigned int data_length;     /* # bytes of data saved at data[] */
  JOCTET FAR * data;            /* the data contained in the marker */
  /* the marker length word is not counted in data_length or original_l
ength */
};

これで、10 日分だよ〜。

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