These pages are written by only Japanese.

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

おはようございます♪ 現在は3月29日(金)7時19分。 朝御飯のお時間です。


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月10日(木)

swfed getTagList

昨日見つけた 素敵なサイト のおかげで完成。(というか原文見つけられないなんて、英語弱すぎだわ自分…)
折角なので、実験ページを作ってみました。

php で upload:

upload の仕方を忘れてたので参考にしたページ

実験ページ。:

SWF ファイルをここでアップロードすると、 SWF の構造を解析(とりあえず tag と長さだけ)した結果をテーブルで返します。

サンプル:

実験ページのプログラム。

プログラム:


2008年04月11日(金)

swfed getTagDetail

何となく作れました。

実験ページ:

画像とテキストの情報を少しだけ詳しく表示します。

サンプル:

実験ページのプログラム。

プログラム:


2008年04月12日(土)

塔ノ岳に行ってきました。

登山仲間が出来たので、塔ノ岳に挑戦しました。
昨晩に飲み会があって睡眠を4時間しかとってなかったり、 序盤で早々足がつって不安なスタートでしたが、 結果的には何とかなりました。
足がつってても痛みを無視すれば歩き回れるものなんですね… (後が怖いけど…)
飲み物を何時もより少なめの 2L にしたところ、ギリギリでした。 余裕が無いと怖いので、次回はもう少し大目に持っていこうと思います。
あと、雨具が無いのは山を舐めすぎだと反省。 (傘はあったけど、今回のレベルの山だと意味なし) 大雨がきたら風邪決定ですよね… 途中で小雨が降ってきた時はドキドキ…

登山口:

まずはヤビツ峠のバス停から車道を北上します。

少し歩けば、分かりやすい登山口が見つかります。

序盤:

霧が濃くて風景どころか先の道も見えません。一寸先は真っ白。

難所:

足場が悪いので鎖につかまって降ります。
手が滑って落ちると崖に真ッさかさま。結構、命がけ。


突風が吹いて体勢が崩れると崖に真ッ(ry
尚、写真だとスケールが分かりにくいですが、かがまないと鎖につかまれない位小さいです。

荒い道:


岩場が多くて思った以上に体力を使います。

頂上:

天気が良いと景色が良いそうですが、霧がかかって遠くが全く見えません。(・ω・)

甘酒を頼もうと思ったのに、何故かコーヒーを注文してました…
(頭が)疲れてたのかしら。体の疲労は感じてないのに。(;ω;)

下り坂:

2時間半、ひたすら下ります。

(下から眺めたところ、ここを登るのは 楽しs(ryキツそう…)

下山:


地元の野菜が100円で売られてます。

メモ:

  • 朝は登山者で一杯。バスが満員になって臨時のバスが出る程。
  • バスのアナウンス「遭難者が多発してます」(((;゚Д゚))))
  • 登山初心者にこのコースは多分無理。
  • (当然だけど) 下界が晴れでも、山は雨が降る事があるので雨具は常備すべき。
  • (当然だけど) 下界が暖かくても、山は寒い事があるので厚着すべき。
  • 水は大目に持っていくべき。(ギリギリは精神的につらい)
  • ポール(ステッキ)は便利。(もし無かったら足がつった時点で終了でした)
  • 道の途中で写生してる人がいた。真似しようかな。登る目的が増えるし。
  • 休憩の度に携帯の(基地局ベースの)位置情報取得を試みたけど一度も成功せず。

2008年04月13日(日)

swfed getJpegData デバッグ

getJpegData で抽出した画像が壊れてビューアで表示できない事が あるのでデバッグしました。

JPEGデータの先頭:

成功パターン
0x00000: ffd8 ffe0 0010 4a46 4946 0001 0100 0001        JFIF
失敗パターン
0x00000: 4034 3900 4034 3900 4946 0001 0100 0001  @49 @49 IF
上書き… ですよね。これって。

バグの箇所:

data = swf_object_get_jpegdata(swf, &len, jpeg_id);
new_buff = emalloc(len);
memcpy(new_buff, data, len);
free(data);
RETURN_STRINGL(data, len, 1);
そりゃダメだゎ… ○rz

プログラム:

修正したので、公開プログラムも更新。

それでも画像が表示されない事がある:

これで、DefineBitsJPEG から画像データを抽出できたと思いきや、 失敗するケースが残っていました。
php jpegdump.php ~/public_html/php/flash/swfdump/test.jpg
0x0000: SOI(Start of Image)(FFD8)
0x0014: APP0(FFE0) length=(2+)14
0x0027: SOF0(FFC0) length=(2+)15
0x0035: SOS(FFDA) length=(2+)10
0x7c95: EOI(End Of Immage)(FFD9)
DefineBitsJPEG は JPEG 画像がそのまま入ると思ってたけど、 そうとも限らないようです。修正っと… JPEG セグメントの入れ替えライブラリを整備しないと この辺の表示や DefineBitsJPEG2,3 の入れ替えも無理ですね。 頑張ろ。

田舎に泊まろう! テレビを見る目の悪意

テレビって怖いデスネ…

なぜ5歳の息子を茶髪にしたらいけないのですか?

どっちに転んでも負けゲームだよな。
如何ともし難い感漂う。
ダメな人に相談して状況が悪化するいい例ですね…
茶髪で通したいなら、もっとロックに自己主張すれば良いのに、
自己主張をしたいんだけど、社会でうまくやりたいと思ってるから、
社会の方がおかしいって論理になっちゃうんだな。
なぁなぁで済ます日本の国民性に、中途半端な個人主義が入り込んで 消化不良を起こした結果なのかもしれません。
戦後教育の「成果」の一つが、今のモンスターペアレントなのでしょう。
当人の資質もあるけど、世間に取りざたされるほど、そういう親が 増えているのは明らかに育ってきた環境のせいだと思う。

2008年04月15日(火)

JPEG セグメント分割

SWF の画像入れ替えで JPEG のセグメント並び替え処理が要る ので、とりあえず、セグメント分割のプログラムを作って見ました。 php で以前作った事があるので、それを参考にしてます。 よく見ると、SOS セグメントの長さがきちんと取れてないや… ○rz

プログラム:

jpeg_segment.[ch], bitstream.[ch] の 4 ファイル

コンパイル:

gcc -D__COMPONENT_DEBUG__ jpeg_segment.c bitstream.c

実行結果:

%  ./a.out ~/data/aria.jpg
marker=SOI(FFD8): length=0
marker=APP0(FFE0): length=14
marker=APP1(FFE1): length=32
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=9536
marker=EOI(FFD9): length=0
とりあえず、完成。

2008年04月16日(水)

JPEG セグメント分割&復元

SWF 書き換えではセグメントを入れ替えた後、JPEG 形式に戻すので、 セグメントを分割したのを、元に戻すだけの処理を作ってみました。

プログラム:

白状すると、bitstream_putbytesBE の処理が間違えていたので修正しました。 コンパイル方法は昨日と同じで、
gcc -D__COMPONENT_DEBUG__ jpeg_segment.c bitstream.c

実行結果:

% ./a.out aria.jpg tmp.jpg
marker=SOI(FFD8): length=0
marker=APP0(FFE0): length=14
marker=APP1(FFE1): length=32
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=9536
marker=EOI(FFD9): length=0
% md5sum aria.jpg tmp.jpg
0f5cf415f0d01626632df9e391b1b1eb  aria.jpg
0f5cf415f0d01626632df9e391b1b1eb  tmp.jpg
%
さて、自己参照構造体で作ったリスト構造の入れ替えは どうやるのが綺麗かしら… (と考えてる時点で負けな気もしますけど)

コード整理:

ただの自己参照構造体だと append(最後にnodeを追加)処理の際、 毎回リストを辿るか、node をアクロバティックに持ちまわる事に なりかねないので、node の構造体を独立させてみました。
typedef struct jpeg_segment_node_ {
    int marker;
    unsigned char *data_ref; /* do NOT free */
    unsigned int data_len;
    struct jpeg_segment_node_ *next;
} jpeg_segment_node_t;

typedef struct jpeg_segment_ {
    jpeg_segment_node_t *head, *tail;
} jpeg_segment_t;
こんな感じで。 コンパイル方法も実行結果も同じなので略…

GPS が欲しい

↑これが欲しくなって帰宅途中、電気屋さんを回ったのですが、 結局、見つかりませんでした。 (・ω・)
登山ショップとかでないと売ってないのかな…
あ、アマゾンとかで買うのは負けな気がするので、それは出来ません。(・△・)

参考:

↓この辺とか見てると、楽しそうでいいなぁと…
大きな ファームウェアのバージョンアップがあると、
同じ機種でも全く違う機種になってしまうことが知られている。
また 使う目的によって このバージョンの方がよく似合っている
ということもあります。
	<略>
実際 新しいバージョンにアップしても 以前のほうが
ずっと良かったとは いつもよくある話です。
ぉっぉっ (;;^ω^)

2008年04月17日(木)

swfed で SWF から JPEG 画像を取り出す

セグメント入れ替えの処理 (swf_jpeg.c):

マーカーの並び順を定義して
int jpeg_std_marker_order[] =
{
    0xE0 /* APP0 */, 0xE1 /* APP1 */, 0xE2 /* APP2 */, 0xE3 /* APP3 */,
    0xE4 /* APP4 */, 0xE5 /* APP5 */, 0xE6 /* APP6 */, 0xE7 /* APP7 */,
	<略>
    0xDD /* DRI */ ,
};
その順番でセグメントを追加していきます。
jpeg_segment_t *jpeg_data,
jpeg_data = jpeg_segment_parse(data, data_len);
for(i=0; i< jpeg_std_marker_order_num; i++) {
    int m = jpeg_std_marker_order[i];
    unsigned char *d;
    unsigned short d_len;
    while(d = jpeg_segment_steal_node(jpeg_data, m, &d_len)) {
        jpeg_segment_append(jpeg_output, m, d, d_len);
    }
}
そんだけ。

プログラム:

スクリプトは成功:

吸出し元
% php swfgetjpegdata.php chara.swf  44 > 44.jpg
吸い出した画像

Webアプリは失敗:

apache 越しに実行すると chara.swf は処理できるのですが、 他は大抵、segmentation fault で落ちます。 特に、DefineBitsJPEG2 は全滅… ○rz
まだ怪しい処理があるみたいです…

課題:

↑この辺に DefineBitsJPEG2 の tag の入った SWF ファイルが沢山あるので、 とりあえず、これらが処理できるように頑張ります。

S駅で足止め

今日は少し早めに帰宅しようと9時過ぎに会社を出たのですが、 人身事故の影響で新宿で二時間足止めされました… 落ちたとか飛び込んだとかでなく線路を歩いていたというのが、怖いですね…
この日は天気が悪く電車内が蒸し風呂だったのと、 左隣にいる見るからに不潔なおっさんが爪楊枝で何かしたり、 頻繁に髪をかいてふけを飛ばしてくるし、 前には酔っ払いのじいさんが二人で交互に お酒の匂いがする息を吹きかけてくるし、
…マジ最悪でした… (。´Д⊂)
# 席に座れただけマシかもしれませんけど。
たまたま百科事典を持っていたので、 あ行から順に読んで気を紛らわせられたのが幸い。 アイゼンとかアルピニストとか登山用語ばかり頭に入ってくるのは、 趣味がそっち方向にシフトしているという事かしら…

ソフトバンク役立たず:

どこぞの掲示板で交通情報でもチェックしよううかと思ったけど、 午後11時頃から少なくとも1時頃まで、 ソフトバンク携帯のブラウザで接続が全く出来ませんでした。 輻輳でもしてたのかな…
早く別キャリアに移動しないと…

2008年04月18日(金)

swfed で SWF から JPEG 画像を取り出す (2)

別ホストで試したところ、apache 越しに動かすと画像が 壊れたり、コマンドラインで動かしても Segmentation fault で 落ちたりしたので調査が進展しました。

状況:

JPEG画像の並び替えをしている時にデータが壊れている模様。 (ここまでは予想通り)。そして、データが壊れた為に jpeg_segment 構造体を作るルーチンが NULL を返し、 開放する場所でその NULL ポインタを踏んで、落ちていたと…
アホすぎる…

調査:

画像データが正常に並び替えできた場合と壊れた場合の diff を とってみました。
< 0x00000: ffd8 ffe0 0010 4a46 4946 0001 0100 0001        JFIF
< 0x00010: 0001 0000 ffdb 0043 0006 0405 0605 0406         C
---
> 0x00000: ffd8 ffe0 0000 4a46 4946 0001 0100 0001        JFIF
> 0x00010: 0001 0000 ffdb 0000 0006 0405 0605 0406
7c7
< 0x00050: 2d30 2d28 3025 2829 28ff db00 4301 0707  -0-(0%()(   C
---
> 0x00050: 2d30 2d28 3025 2829 28ff db00 0001 0707  -0-(0%()(
JPEG セグメントの長さのフィールドに 0 が入ってる…
このフィールドの処理で、long ポインタの引数に short ポインタの変数を渡してる所があったので修正。

実験:

今度はうまくいきました。 画像を抽出できない SWF ファイルがありましたら、連絡を頂けると幸いです。m(_ _)m

プログラム:

登山グッズ購入

トレッキングポールを購入。 ↑これの LEKI HIKING 48cm~100cm カーボンライト
あと、コンパスも。(SILVA ECH-141)

GPS:

石井スポーツで GPSMAP 60CSx を見つけましたが、 閉店直前のあわただしい中で買うのが嫌なので購入は明日に延期。
保護シールを売ってなくて、どうしようか迷ったというのもありますが。 後で買い足しましょうかね…

「自分を飛躍的に成長させる状況」と「自分が潰されてしまう状況」の見分け方

分かってても避けられない状況ってあるよね。色んなしがらみで…

MS:「VistaのUACはユーザーをいらいらさせるために搭載した」

Vista はやっぱりいらない子…

2008年04月19日(土)

GPSmap60CSx 購入

↓このお店で購入しました。 液晶保護フィルムはあるし、ホルダーも数種類あるし 地図のインストール *1 まで御願いできて、いい感じです。
対応したおじさんは慣れてないようだったけど、お姉さんは話の分かる人だった。

店へのアクセス:

横断歩道を渡り左に曲がります。
駅を出て4件目になるお蕎麦屋さんの「おそば増田屋」の前を過ぎ、
総武線のガードをくぐったらすぐに右方向へ曲がります。
この説明が微妙で、 増田屋を探しても見つからず(店が閉まっていたのも?) 明後日の方向に行ってしまいます。画像の矢印を信じて進むが吉。

購入したもの:

登山目的なので、腕に装着するホルダー *2 と 10m等高線地図、あと液晶保護フィルムを一緒に購入しました。

地図データ:

10m等高線地図 (Japan TOPO 10M) ですが、これだけで 2G の殆どを使って しまうので、GPS にバンドルされてる市街地図(City Navigator)のデータは これまたバンドルされてる 1G microSD に分けて入れる事になります。
つまり、使う状況に応じて 二枚の microSD を入れ替えねばなりません。 携帯の SIMM カードみたいな差込口なので、あまり頻繁に作業したくないなぁ… ま、慣れるんでしょうけど。^^;

カシミール3D:

最近、バージョンアップされていると、 お店のお姉さんから教わったので早速チェック。
カシミール3D Ver8.8.0 リリース(2008/02/27)
アップデートと…

トラッキング:

GPS から PC に軌跡を取り込んでみたら、 購入前の運搬工程「台湾>米国>日本」のラインが地図上に表示されました。
台湾で作ったのを横流しするだけでなく、 米国でも製品の電源を入れて動作確認してるんですね… きっと。
さすがに運搬中の軌跡はないので拠点間を直線で結ぶ事になりますが、 (当たり前とはいえ) 図法によって道が異なって表示されるのを見て、 改めて、メルカトル脳に侵されているのを実感しました。
メルカトル図法
実際の最短距離

参考:


*1: Bz エディタで特定オフセットをゴニョゴニョしてたのは見なかった事にしよう…
解除コードが ASCII でそのまま埋め込まれてるのか…

*2: 腕が太い人向けっぽく、自分がつけるとカナリ緩い事に帰宅してから気づいた…

ゆるキャラ問題を考える

色々と共感できる部分が多いのでブックマーク。
まぁ、それでもアレ(鹿角童子)はねーYO。と*個人的には*思うけど。^^;
偉いけどヒマな幹部が大勢いる会社などは大変だろう。
 勝手にやると「俺は聞いてない」などと言われてしまうから、
みんなを呼んで会議など開き披露する。
<略>
みんなが思いついたことを脈絡もなく言い募り、挙句に、
「じゃあそんなことを盛り込んで」とか下に無茶振りする。
どこかで聞いたような話だゎ…
幸い自分は巻き込まれてないけど。

これで、9 日分だよ〜。

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