These pages are written by only Japanese.

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

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


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

先月 2008年01月 来月
01 02 03 04 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 31
Namazu for hns による簡易全文検索です。
詳細は 詳細指定/ヘルプをご参照下さい。
検索式:

2008年01月01日(火)

あけまして(以下略

今年も何もありませんように。平凡に暮らせますように。(・人・)

HDDをフォーマットするブラクラ

画像は拡張子はjpgだが、中身はHTMLとJavaScriptであり、
これをクリックするとブラクラが発動、
最終的にデスクトップにbatファイルをDLさせる。 
再起動した瞬間に発動し、強制的にHDDをフォーマットする。 

対策:

とりあえず怖いので system32\etc\hosts に 127.0.0.1 を書き込んでみました。 (ついでに、最近気になるサイトを幾つか追加)
127.0.0.1 snipr.comc
127.0.0.1 unt.multiservers.com 
127.0.0.1 www.soracger.com
127.0.0.1 www.yyjjoopp.com
127.0.0.1 tinyurl.com
(tinyurl.com はただの短縮URLサービスだけど、よく悪い人に使われるのでブロック)
あと、IE の方も「拡張子でなく中身で見る」を無効にしてみました。

元旦の山登り

某所の占いで「本能のままに遊べ」と出たので、本能のまま山に登ってきました。
山の中腹に地元では有名な神社があるので初詣で人だかりです。
それを横目に自分はストイックに山登り…
周りはみんな女坂に進むも、ひとり男坂を選び黙々と山登り…

思いつきで家を出たので散歩ルックのまま冬山を登ってましたが、
途中から霜が降りてるのを見て、少し後悔しました。軽装だと寒っっ (;ω;)

このところ、天気が悪かったせいか道が悪く何度か危ない時がありました…
いかにも滑り落ちそうな大木の破片の下を横切ったり、 階段の積み石が緩んでいたり、そもそも道になってないとことかあるしw

うまく写せなかったけど右側は崖です。踏み外したら一貫の終り。\(^o^)/

携帯の位置情報:

ついでに(というか、これが主目的ですが)、
頂上近くで携帯の電波を拾えたので、携帯の位置情報サービスを使ってみました。
GPS 無し携帯なので期待はしてませんが…
N35.21.51.84, E139.18.10.8 と N35.28.50.52, E139.21.39.6 の二箇所が取れました。
ちなみに実際に居た場所は、この大山の頂上近く。
で、携帯(Softbank)の位置情報が指したのはここ。dms(度分秒)→degree(度数)変換して URL に直打ちしてます。 随分とかけ離れた場所を。^^;
一応、位置を取った場所の風景。

警察?:

あと、帰りに気になったのは警察の人がやけに多かった事。
初詣で人だかりが出来てるので警察の仕事があるのは自然だけど、 中腹より上の人があまりいない場所で忙しそうに歩くオマワリさんや、 中腹より下だけどオマワリさんに偉そうにしてる私服の人は多分刑事さんですよね。
… 少しだけ気になりました。(さすがに、オマワリさんの写真は怖くて撮れず)

左と右と:

山頂の少し手前でお腹が冷えたのに危険を感じて 引き返した際に気付きましたが、
登りは右側が崖で妙に怖かったのに、 降りは左側が崖であまり気にならなりませんでした。不思議。
行動心理学的に左に安心感を感じるものだとしても、 崖までそうだとすると、ちょっと極端すぎて逆に怖い気もします。

2008年01月02日(水)

ネット中毒の世界へようこそ

自分は既に複合症なので手遅れかも‥

あ…ありのまま 今 起こった事を話すぜ!

空気読めない人カワイソス、と一瞬思ったけど これは可愛そうかな‥ (;ω;)

コピペ元らしい:

ttp://www2.diary.ne.jp/logdisp.cgi?user=69964&log=200604
これか。

2008年01月03日(木)

ヤンデロイド鏡音リン

キャラ立ち杉というか、まっすぐ育ってなさそうなリンについて。 生まれてきた時代が良かったのかまずかったのか。(;^ω^)
1月3日3 時頃の「とおりすがり」さんの見当違いなコメントがアレな感じ。
男声だからと「日本ブレイク工業」の社歌を歌わせた人がいて、
その流れでロードローラーになったのでは。
動画見れば WRYYYYN って言ってるの聞けるのにね。 ケチつけたいだけの人って何処にでもいるようで。
ついでに個人的には、レンのブレイク工業は微妙だと思ってる。
レンはピンじゃ生きないだろ常考…

コメント:

ミクのネギだって元がブリーチのネギ回しフラッシュだってこと
知ってる人なんて大した数いないでしょうし。
知りませんでした。またひとつトリビアと。φ。。
あと、いい感じの動画がでてる。

2008年01月04日(金)

さっそく今年の目標挫折

2008年の目標は「喧嘩せず」でしたが、 ふと気付くとさっそく喧嘩を売るようなメールを何通か書いてました。
...なのが残念です。(いい加減)失敗から学べ。等々…
みんなで幸せに暮らすのって難しいですね… (;^ω^)
…つか、やっぱり今年もこのまま突っ走ろうかと迷い中。
せめて、オブラートに包む物言いは磨こうと思いますが… (黙る気は毛頭ないので)

夜の横浜

6時開演の母校の定期演奏会が気になり仕事を早めに切り上げ、 みなとみらいに到着したのは9時頃。
満足そうな表情でご帰宅の聴衆の流れに逆行してホールへ。
しばらくウロウロしても知った顔を見つけられず、
ホールの裏に回って撤収の様子↓を少し眺めスゴスゴ退散…

※ ピンボケしてるけどトラックね。
…ってアレ… まるっきり ストーカーだ自分… !||!○| ̄|_

まぁ…演奏者の皆様、お疲れ様でした。文字通り陰ながら見守ってます… ここで言っても声は届かないと思うけど、それでも書いてみるテスト
その後、大昔に落成セレモニーで演奏した思い出のある ランドマークに寄り道しつつ横浜まで徒歩。

… 夜風が にしみるべ… (;ω;)

2008年01月05日(土)

MapServer 導入

地図を作れるらしいので、試しにインストールしてみた。

デモページ:

試しにデモページを置いてみた。 ただ、USGS... を選択すると cgi がまともに動かないのと、 URLパラメータで map ファイルの内部パスを渡す方式が非常に気になる…
表示してる場所は↓ここ。
イタスカ湖 Lake - ((Minnesota州北西部のMississippi川の源)).

さて、近所を写す為に MAPFILE の形式をお勉強しよう。

マップファイル指定:

さすがに内部ファイルを渡すのはアレという事か、 Wrapper Script が HowTo ページに張られてた。

QGIS を使ってみる。

マップファイル:

QGIS に(MapServer 用)マップファイル export 機能があるので使ってみた。
問題が発生したため、msexport.exe を終了します。 
ご不便をおかけして申し訳ありません。
ショボーン… (・ω・) これとか見るとバージョンの問題の可能性もあるかな。と思ったりする。 そもそも、Experimental の Windows 版を使ってるし。

画像出力:

が公開しているShapeデータを一通り取り込んで画像を生成するとこんな感じ。

※深緑は人口が集中しているエリアでレイヤーは popa 。消すと以下のようになる。

作業は以下の2点。
地名のラベルを表示した
bnda(行政域)の laa(市町村名)ラベルを MSゴシックで表示するようにした
レイヤーを以下の順で並べた(点>線>面の優先度で)
popp,bndp,transp,hydrop, bndl,trans,hydrol,hydroa,popa,bnda,oceansea
ここまででも十分面白いけど、 実用的な地図となるとまだまだ道のりは果てしなく長そうだ…
とりあえず日本語のラベル名が欲しいw (何万とかありそうな地名を、何ヶ月もかけて全部書き換えてもいいけどw)

人口密集地の色を少しかえてみた:

初めての OpenID 認証

お友達の認証ページに入るのに、 初めて OpenID を使ってログイン操作をしてみました。
(OpenID対応サイトの認証フォームで)自分の OpenID(URL形式)を入力すると、 OpenID 認証サイトに飛んで、 http://www.openid.ne.jp/ で登録している場合は以下のような画面が出ます。
で、パスワードを入れると終わり。
初めて使う時はドキドキしますね。

エクセルって…

入社面接とかでエクセル使えますかと言われても、 これら見た後だと自信をもって使えますとか言えないやw
あ、VBマクロ使えるの?とか聞かないで。(⊃д⊂)

2008年01月06日(日)

山登り

元旦は頂上まで行けなかったので今回は頑張ってみたけど、 こんなにキツイとは思わなかった…
(男坂+見晴台経由のコンボで難易度が上がっていたのもあるけど)

きっかけ:

リラックスしたい時は、自然に触れるようにすると吉。
…なので、山に登ってきました。(馬鹿の一つ覚え)

写真リサイズ:

サイズが大きすぎるので全部 resize しなきゃだけど面倒。 …と思ったら、ImageMagick を思い出した。
for file in P*[0-9].JPG; do
b=`basename $file .JPG` ;
convert -resize 25% $b.JPG  ${b}_hh.JPG ;
convert -gamma 1.4 -resize 6.25% $b.JPG ${b}_hhhh.JPG ;
done; 
楽すぎる…
(初め、set b= にして初めのファイル名固定でループさせてしまって失敗…)
以下に写真を貼り付けてみます。

男坂:

西楽院:


この辺りで通りすがりのお爺ちゃんお婆ちゃんがヘバッてたみたいで、
(お爺ちゃん) この先にこんな坂が続くのでしょうか?
(よや) ぇぇ。ずっとこんな坂が続きます。頑張ってくださいね。(ニコッ)
ひどいよ自分… (・ω・)
でも、1/3 も進んでない場所なので、 もうすぐ終わりますとも戻った方がいいとも言えないんですよね‥

男坂終わり:

男坂の入り口で通りすがりの家族(子供3人づれ)が
えーっ。もしかしたら先の方は坂がきついかもしれないし
女坂の方が楽だったりしないの?
と話していたのが聞こえたので、声をかけてみる。
(よや) この先はきついですよ。子連れでしたら女坂をお勧めします。
(親御) 女坂に入るといきなりきつい階段なのでこっちが楽かなと
(よや) 男坂はこの先、もっときつい階段がずっと続くので大変ですよ。(ニコッ)
(お子様) 早く行こうよー
お子様達はノリ気らしく強行するとの事で、頑張ってくださいねと応援だけしてみた。

謎の洞窟:


説明書きもなく、お姫様っぽい絵が描いてあるだけ。
通りすがりのおばちゃんが、お姫様を生贄にした場所じゃない? と話してたのが印象的でした。

例の危ない場所:


元旦の写真が分かりづらかったので撮り直り。

見晴台:


霜がかなり減ってました。

植物:


高山植物かどうか分かりませんが、ここらの木は独特な形をしてます。

障害物:


どうやって登るんだろうといった感じですが、まぁ何とか登れます。

頂上:


既に4時をまわっていたので誰もいませんでした。
で、今回も位置情報取の実験。 今回は山頂なので厚木と平塚と両方開けてる分、もう少しいい場所が取れるかなと。
N35.23.24.360  E139.22.48.000  01/06 15:51
N35.21.51.840  E139.18.10.800  01/06 15:54
平塚のよく分からない場所を指しました。
そもそも電波がギリギリ届く距離だろうから、 開けているからって二方向の基地局を補足とか贅沢言ってられないか…

下山開始:


あまり整備されていない道が続きます。

中腹:


すっかり夕暮れ。

明かりがちらほらと:



石の構造物の中に灯りがあるシチュエーションが自分は好き。

女坂入り口:


かなり暗くなってたので男坂は断念。

女坂:


足元が見えないほどの暗がりでしたが、何とか下山。
まぁ… 次回はもう少し早く登ろう。^^;

自宅 wiki のメール通知を on に

もう自分は遊んでいない FFXI 関連ページを誰かが更新してくれてて、 また spam かと思いきや追加されている URL のページは (少なくともぱっと見では)まっとうっぽいので、そのままにしてます。
(ページの一番上に URL を追加されてたら、さすがに消してたけど)
でもって、そろそろ更新通知メールが必要かなと感じたので以下のように設定。
- pukiwiki.ini.php
$notify = 1;
$notify_diff_only = 0;
$notify_to   = '秘密';   // To:
$notify_from = '秘密';   // From:
$notify_exclude = array(
        '秘密',
);


把握できているうちは認証をかけないでおきます。

ドラ懸

知らない人にいきなり誘われたので調査。
入る気はないけど一応どんなものかと。 懸賞って名前からして予想してたけど、 無料サイトなのにリアルマネーとの換金性が高すぎて危険な香りがする。
知らない人を誘いまくってお小遣い稼ぎする人とか沢山出て spam を助長させそうだけど、ビジネスモデル的もモラル的にもどうなんだろう…
…まぁ、広告ビジネスモデルから脱却できない会社にいる時点で自分も 50歩100歩な気がするけど、 超えてはいけない一線というのを自分の中に持ち続けたいものです…

2008年01月07日(月)

vim で幸せになる方法

vi ~/.vimrc
set cp
:wq
これのおかげで、{ } の対応に応じてカーソルが勝手にジャンプするのを回避できました。
本当にウザかったので、めちゃくちゃ幸せな気分。

ブックマーク

tota 先生のとこからブックマーク 学生の頃に自分のワーキングメモリ不足が深刻な事に気づいて以来、 忘れるとまずそうなキーワードは即メモる事にしてます。
国滅んで企業栄える
企業献金を正当化してる時点で終わってるという論があるが、 そういった汚い献金を貰いでもしないと政治家を続けられない時点で既に終わってる。

2008年01月08日(火)

Flash のお勉強

とりあえずタイムラインとかシンボルとかモーションとかアクションとか、 一通り使ってみた。 Flash1.1 で多少携帯で動くの意識して作成。905SH で表示できるの確認。

swfmill:

シンボルを上書きして画像の差し替えが出来ないか挑戦してみたけど、 どうもダメそうな予感。
存在しないシンボルを呼んで画像を張るスクリプトを書いておいて、 そのシンボルを attach という形でなら出来るかな... *1

*1: 画像入れ替えに成功している人がいるので参考までにURLを追記。(2008/04/29)
http://blog.e-2.co.jp/kaz/entry/00000011/

SWFTOOLS

- (前略)
- SWFDump Prints out various informations about SWFs.
- JPEG2SWF Takes one or more JPEG pictures and generates a SWF slideshow.
- (後略)
これはすごそうだ…

jpeg2swf:

convert で縦横240制限のサイズ変換をかけて jpeg2swf でスライドショーに結合。
cd (秘密のフォルダ)
for file in *.jpg ; do
  b=`basename $file .jpg`;
  convert -gamma 1.4 -resize 240x240\> $b.jpg ${b}_240.jpg;
done;
jpeg2swf -r 0.3 --width 240 --height 240 *_240.jpg
うぁぁぁぁ… 人様にお見せできない携帯端末向けスライドショーがぁぁ…
./data/2008/01/08/sispri.swf (ヤバイのでリンク削除)
ちなみに自分の使ってる携帯 Vodafone 905SH は flash のサイズを 100KB(= Flash Lite1.1 の上限) に収めないとダメなので、 この質の画像だと12枚が限界。(削除した方は12枚でギリギリでした)この質の画像で19枚が限界。

。。。:

やばっ、画像見てたらまたFFXIで遊びたくなってきたw (仕事してる方が楽しいのでまだ我慢できるけど)

2008年01月09日(水)

霞ヶ関でお散歩

今日は特許庁の周辺をお散歩
JTビルとか虎ノ門病院を見てきました。

更に奥の方に超高層ビルが見えたけど、そこは次回の目標という事で。

変換コマンド:

for f in I*[0-9].jpg; do
b=`basename $f .jpg` ;
convert -gamma 1.1 -resize 50% $f  ${b}_h.jpg ;
convert -gamma 1.3 -resize 12.5% $f ${b}_hhh.jpg ;
done; 

2008年01月10日(木)

捕鯨問題で儲ける人達がいる

捕鯨問題が揉めるほど反捕鯨団体(グリーンピースとか)の寄付が増えるとか、 オーストラリアやアメリカでは政治家が環境問題へ取り込んでるという宣伝に使える とか、そういう話。

円グラフで見るゲーム業界シェアの変遷

任天堂 DS は化け物か…

もやしもん QR コード

中に絵の入った QR コードっぽいのがあるけど、 こんなコード作れるのか…
実際携帯に取り込んだら URL 拾えた。SUGEE

国会図書館の本、全国で閲覧可能に・3000万冊をデジタル化

3000万冊を超える国会図書館の蔵書をデジタル化して全国で
閲覧可能にするための法改正に政府が着手する
いいね。
政府は5月ごろまとめる知的財産推進計画2008にこの方針を盛り込み、
2009年の通常国会での法改正を目指す。
でその後、
まずは都道府県立図書館の専用端末と接続。
将来はインターネットを通じて自宅やオフィスで簡単に読めるようにする方針だ。
先は長そうですね。

2008年01月11日(金)

memcached expire の罠

知り合いから聞いた話
php でよく使われる memcache ですが、 これの memcached 側の expire 処理が曲者だそうです。
set で指定する expire 値が30日を超えるかどうかで意味が変わるらしく、 マニュアルに書いてあるので気付けという感じですが、 見落としてた。 (;ω;)

マニュアル:

項目の有効期限。ゼロの場合は有効期限なし (いつまでも有効) となります。
Unix タイムスタンプ形式、あるいは現在からの 秒数で指定することが可能ですが、
後者の場合は秒数が 2592000 (30 日) を超えることはできません。

コード:

memcached-1.2.4/memcached.c
#define REALTIME_MAXDELTA 60*60*24*30

static rel_time_t realtime(const time_t exptime) {
    if (exptime > REALTIME_MAXDELTA) {
        if (exptime <= stats.started)
            return (rel_time_t)1;
        return (rel_time_t)(exptime - stats.started);
    } else {
        return (rel_time_t)(exptime + current_time);
(コメントは外してます)

ワーナーBD一本化とPS3のPS2互換機出荷完了は、コンテンツ配信のための準備段階

トロステに釣られて 60GB モデルを買う決心をしたばかりなのに… (;ω;)

再掲:

去年10月の記事ですけど、
PS2のゲームをプレイするという選択肢をなくすことで、
顧客がより多くの時間とお金をPS3に費やしてくれる
ことを期待しているという。
元々、PS2 エミュ開発失敗の時点で歯車が狂ってたので、 その点のみ同情してたけど、こういう発言されるとなんだかなぁ…

2008年01月12日(土)

「有害サイト」フィルタリングは何をもたらすか

私は、安価に維持できるフィルタリングは有害無益である、と改めて述べたい。
フィルタリング付きのシステムでチャットしてると、こんな単語が アウトなんだと逆にダメな知識が増えますが… ( ̄― ̄)
それはおいといて、まともなページまでフィルタリングされまくるのがまずいよね…
多少の誤差は仕方ないけど、やり方がまずいと誤差ってレベルじゃなくなるので。

キッズgooはじかれサイト同盟:

こんな同盟が紹介されてました。
自分のサイトがキッズgooにフィルタリングされていることを
知ったときの甘酸っぱい感覚をみんなで共有しようという同盟です。
またオーバーな。
と思ったら、フィルタリングチェックフォームで Yoya's diary も ひっかかる事がわかり、少し甘酸っぱさがこみ上げてきました。(⊃д⊂) って、うち有害サイトなんですかw

Flash のお勉強 (レイヤー)

レイヤーに分けてモーションを独立させてみた。
ついでに、tellTarget の練習。
オブジェクトを選択してプロパティの「インスタンス」に適当な文字列を入れて、
tellTarget("適当な文字列") {
	_alpha = 50;
}
のアクションを適当なフレームに入れると、 そのフレームで透明度が50度になるとの事。 片方のオブジェクトのモーションがすぐ止まるのは謎です。
tellTarget したタイミングなのですが、何でだろう。 (・ω・)

[JavaScript] リッチテキスト編集を可能にする

メモメモ。φ。。

太陽が活動期入りか 携帯・ATMも障害の可能性

太陽の活動が最も激しくなるのは11,12年ごろとみられる。 
来年と再来年に注意という事らしいです。 どの位影響があるのか分かりませんけど。

マイポータルのメールアドレスを無効にしてみた

中の人に知り合いがいる関係で以下のサイトを使っていますが、 「記事一覧」を選択すると何故かブログ記事とメールを一緒に表示する *1 ので、
結果、SPAM メールで埋め尽くされる自分は(自分の見たい)記事を探すのに、 サブメニューの「ブログ記事」を毎度押さないとダメで、 なんでこんな無駄な手間をと毎回思っていました。
ふと設定項目を見ると、
「メールアドレスを「無効」にすると、このアドレスでのメール受信は行えなくなりますが、(以下略)」
というのを発見。当然「無効」に設定。やったーっ ('▽')!
ここのメール、一応 SPAM 判定してくれるけど、SPAM ですよってアイコンが付くだけでフィルタ出来ないですよね。意味なし。(´Д`;) フリーのメアドにそんな期待するなって言われそうだけど。
*1: …というか、メールを記事のくくりに入れるのは何か違うよなぁ… 記事っていったらブログやコミュの投稿記事だろ、常考…
# ML の archive のイメージでごっちゃにしてるだけかもだけどね。


2008年01月13日(日)

awm.jp ドメインの問い合わせ。

そろそろ awm.jp ドメインの expire が近づいてきたので、 humeia に問い合わせてみた。
awm.jp ドメインの有効期限が 2008/05/31 と近いのですが、
更新手続きを促す連絡もなく、管理画面上に更新を行う
リンクも見あたらない為、不安です。
更新手続きの方法を教えて頂けませんでしょうか。
この辺、domain21 は良かったなぁ…
domain21 が潰れて自動で humeia に移管されたので、 仕方なく *1 使ってるんだけど。

誰かまともなレジストラ紹介して貰えませんか? (;ω;)
*1: humeia のドメイン管理画面UI、何とかしてくれないかな。
わかりにくいというか、手抜きにもほどがあるだろう。アレ。

自宅PCメモリ増設

ふと、自宅のメインPCを調べたらメモリが1Gしか載ってなかったので、 PC を購入した時の紙を読んでメモリの種類 *1 を調べて、近所の祖父地図で 1Gメモリを2つ買ってきて、計3G に拡張しました。
効果はというと、
以前は Skype の起動時と終了時に画面が数秒固まってましたが、 とりあえずそれが無くなった様子。(まぁ、気のせいかもですけど)
*1: PC6400 DDR2 800M ちょっとお高いメモリです (;ω・)

その他

SchoolDays 桂言葉ちゃんお誕生日記念競争:

お金出すとレースに名前付けられるからって… アニオタ自重しる (;^ω^)
少し狼狽気味の実況が素敵。

撮影キリン親子死でNHKドラマ放送中止:

赤ちゃんのひまわりをいつも一緒にいる母親のリリカから引き離して、 1日あたり3、4時間撮影。うーむ… 動物園がOK出した以上は大丈夫なはず。の時間なんだよね。 (最近、この手の専門家が頼りないので疑ってしまう…)

[らき☆すた][初音ミク]とある同人イベント、当日になって中止を発表:


2008年01月14日(月)

Flash バイナリいじり (ヘッダの読み込み)

しばらく Flash CS3 を触ってるうちに、
タイムラインとかしち面倒なの使ってられるかー。ヽ(`д´)ノ
と短気を起こし、寄り道してバイナリをいじる事にしてみた。
でも、SWF ファイルフォーマット仕様書のライセンスが怪しい。 つまり、公式のフォーマット仕様書を読むとライセンス的に穢れて SWF バイナリ変換のプログラムを作れなくなるらしい。
なので、以下のページを参考にしてみる。 フォーマットが C の構造体で書かれているので自分的に読みやすいです。

自作バイナリ閲覧ツール:

大昔作ったの引っ張り出してきた。 何故か、EBCDIC 対応w

フォーマットのお勉強:

swf のバイナリを見るとこんな感じ
  addr :  0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF
0x00000: 4657 5304 900a 0000 7000 0960 0000 9600  FWS     p  `
0x00010: 0008 2800 4302 0000 0040 003f 0200 0000    ( C    @ ?
フォーマットは、
struct swf_header {
		unsigned char		f_magic[3];	'FWS' or 'CWS'
		unsigned char		f_version;
		unsigned long		f_file_length;
	}
FWS の magic 文字列がきて続く 4 は Flash のバージョン。 その次がファイルサイズで、900a 0000 => 0x00000a90 => 2704
% ls -l foo.swf
-rwxr--r-- 1 yoya yama 2704  1月  8 23:10 foo.swf
ぉぉ。合ってる。(゜∇゜)
お次は、
	struct swf_header_movie {
		swf_rect		f_frame_size;
		unsigned short fixed	f_frame_rate;
		unsigned short		f_frame_count;
	};

	struct swf_rect {
		char align;
		unsigned		f_size : 5;
		signed twips		f_x_min : f_size;
		signed twips		f_x_max : f_size;
		signed twips		f_y_min : f_size;
		signed twips		f_y_max : f_size;
	};
むー… この swf_rect は、どう解釈すればいいんだろう。

swftools を参考に:

swftools-0.8.1/lib/rfxswf.c (430)
int reader_GetRect(reader_t*reader,SRECT * r)
{ int nbits;
  SRECT dummy;
  if (!r) r = &dummy;
  nbits = (int) reader_GetBits(reader,5);
  r->xmin = reader_GetSBits(reader,nbits);
  r->xmax = reader_GetSBits(reader,nbits);
  r->ymin = reader_GetSBits(reader,nbits);
  r->ymax = reader_GetSBits(reader,nbits);
  return 0;
}
あー。なるほど。
初めの 5bit で twips フィールドの長さが分かるので、 その長さで4回取ればいいのか。
  addr :  0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF
0x00000: 4657 5304 900a 0000 7000 0960 0000 9600  FWS     p  `
                             ~~ 
0x00010: 0008 2800 4302 0000 0040 003f 0200 0000    ( C    @ ?
70
0111 0
01110(= 14)bit らしい。更に分解すると、こんな感じ。
70       00       09       60
01110000 00000000 00001001 01100000 
<---><-----xmin-----><-----xmax----
align
00       00       96       00    
00000000 00000000 10010110 00000....
><----ymin-----><-----ymax----->

0008       2800 4302 0000 0040 003f 0200 0000
<-->       <-->
8.0          0x28=(40)frames
(frame/secs)
14 bit ずつ4つ取り出して、次のバイトを読むと ちゃんとそれっぽい値が対応した。 ちなみに、twips は単位で 20 twips が 1 pixel に相当するらしい。 なので、xmax, ymax は各々 0 10010110 00000 = 0x12c0 = 4800 で、20 で割ると 240 。携帯向けサイズぴったし。 ヽ(゜∇゜)ノ

FrameLabel:

お次はタグ(のはず)。43 番タグは何かというとコレ。
Name     Number  Type
FrameLabel  43  Define
Comments
Names a frame or anchor. This frame can later be referenced using this name.  

struct swf_framelabel {
	swf_tag			f_tag;		/* 43 */
	string			f_label;
	if(version >= 6) {
		/* optional field */
		unsigned short	f_flags;
	}
};
FrameLabel タグらしいけど、↓この実データと合わないんだよね‥
4302 0000 0040 003f 0200 0000
43 の後に文字列が続くらしいけど 02 ってASCII文字じゃないし。うーん… (・ω・)
もしかしたら、PASCAL 内部表現の文字列なのかな。 あれって初めの1バイトが文字列長じゃなかったっけ。

もう少し見ないと構造イメージが沸かなくて中途半端なのが残念だけど、 今日は遅いので終了。 実行結果
% ./a.out  saitama.swf
header magic=FWS
header version=4
header file_length=0xa90(=2704)
movie header alignc=14
movie header x_(min,max) =(0, 4800)
movie header y_(min,max) =(0, 4800)
movie header frame_rate =8.0
movie header frame_count =0x28(=40)
framelabel string=
Unknown SWF Tag(0x00)
ビットストリーム処理(というか、C 言語自体)久しぶりに書いたけど、 むちゃくちゃだ。リハビリしよ。^^;

実のところ:

に内包されてる library に欲しい機能が一通りありそうだけど、一応、 ファイルフォーマットの構造をバイナリレベルで把握するまで SWF の バイナリデータと睨めっこする予定。
続く

追記 (2009/12/18):

CWS, FWS で検索してココに来られた方を見つけたので、 まとめページへのリンクを追記。

awm.jp ドメインの問い合わせ - HUMEIA からの返答

ヒューメイア様から返事が来ました
AWM.JPの更新手続きのご案内は通常有効期限の2ヶ月前:
4月はじめにご連絡用メールアドレス宛にご連絡させていただきます。
毎年更新なので、自分の場合は4月から6月は毎年気が抜けないらしい。
DOMAIN21 はまとめ払いが出来たのでよかったなぁ…
… まとめて(たしか5年分)払ったその年に潰れて持ち逃げされちゃったけどね (;ω;)

愉快堂関連:

maholo

人力検索エンジンとして有名なサイトらしい。 SNS 機能もあるらしく、とりあえずアカウントだけ作ってみました *1 が、使い方がいまいちよく分かりません…
*1: 名前に釣られたとかツッコミは無しの方向で…

嫌儲とWeb性善説

この手の話は儲けるかどうかと別次元だと思っていたけど、 そう奇麗事もいってられないようで…

地上アナログ停波でデジタル放送に移行しない人は・・・

デジタル放送に移行しない人がそこそこいるとしたら、 インターネットの情報をダラダラ見続ける事に特化したサービスにとって ビジネスチャンスだったりしないかな。とふと思った。
2011 年なんてすぐ来るし、今ってダラダラ見続けるサービスってあまり見ないし。 (ニコニコとかの動画サイトも動画ごとにボタンを押さないとダメ)
Push技術を謳ったサービスの復権がありそうな予感。

その他

急速に進む米SNSの相互運用性向上:

JavaScriptの動作を軽くするための工夫:

しかし,ページのロードが終了した段階で,たくさんの処理を行ってしまうと,
「ページの読み込みが終わってからJavaScriptの処理のためにページが一瞬固まる」
という現象が発生してしまいます。
あるある…

フランス大統領、インターネットへの新たな課税を示唆:

日本で真似されたら嫌ん。

miarakure.com

アカウントハックサイトらしい。(以下の URL は間違えても踏まないでね)
- --[http://www.nicovideo.jp/ ニコニコ動画]
+ --[http://www.miarakure.com/happy/ ニコニコ動画]

- --[http://pukiwiki.sourceforge.jp/ pukiwiki-official]
+ --[http://www.miarakure.com/happy/]


履歴見たら 12/24 にやられてたのか…
まぁ、粛々と spam リストに追加しよ。

ちなみに踏むと:

<script language="VBScript">
on error resume nextburl_0="http://www.miarakure.com/wiki/lin.exe"
burl_0="http://www.miarakure.com/wiki/lin.exe"
burl_1="http://www.miarakure.com/wiki/rse.exe"
burl_2="http://www.miarakure.com/wiki/ff.exe"
lin.exe はリネージュ、ff.exe は FFXI だとして、 rse って何だろ。

2008年01月15日(火)

Otaba と広告

からメルマガ的なメッセージが届いていたので、 久しぶりにページを開いてみたら、いつの間にか 色々ウザイ広告が入っていて嫌んな感じになってました。
特にここは紫基調の独特なデザインをしているので、 (目立つ為にオレンジを多用しがちな)広告ととことん相性が悪いです。
収入がないとサービス続けられないだろうし、 広告を選べない状況も考えられるし… 仕方ないんだろうけど、ちょっと残念かも。 (というか、自分は退会するかも)
その点、 は頑張ってる。でも、収益はどうしてるんだろう…

一発は百の空振りから生まれる

「楽に努力出来るのが天才」というのが心に響いた。 確かに今まで見た事のあるすごい人は、そんな感じに見えた。
「楽に」というのを「効率よく」とか「自然に」と 読み替えるとすっきりするけど。
貶しが一般的だと、インプット-プロセス-アウトプットループのコストが
上がるのである。「下手なアウトプットは貶される」ということになれば、
当然「大物狙い指向」になる。
もしくは目立たない事しかしなくなって、出る杭は打たれる(前に自粛する)結果に…
でも、どこかで止めないと、「ぉぃぉぃ、誰もチェック出来なかったのかよ」 みたいなダメな結果を出してしまうので、そうそう褒め続けられない事情も。
バランス、もしくは役割分担が難しい所です。

転載、引用、盗用

一応、区別はつけてるつもりだけど、 最近引用がうまく出来てない気はしてます。 ごめんなさい。

その他

犯罪の九割は失業率で説明がつく:

格差社会がどうとは言わないけど貧困層が増えるほど 犯罪が増えるのは仕方ないというか…
ワーキングプア問題は何とかして欲しいですよねぇ。 自助努力じゃどうしようもない所があるらしいので。
自分はたまたま相性の良さそうな会社に入れたけど、 入社面接に失敗してたら。と思うと全く他人事じゃないし。

「TV見られない」不安あおり契約、「地デジ」トラブル増加:

水まわりの修理サービスのトラブル多発! 広告を見て呼んだら、思いもかけない請求が:

朝毎読日経 VS 地方紙のシェア争い:

「全国紙」の空洞化とブロック・地方紙の強さ
だそうです。

2008年01月16日(水)

BlogPet

えーっと。別にココロ様に釣られた訳でなくブログシステムの研究にですね…
… のっけから言い訳モードなのはさておき、BlogPet を使ってみました。 まずは「ココロと暮らす」を選択してと… (←冒頭の言い訳がすでに無駄風味
幸い yoya のニックネームが取れたので、そのまま登録して My ページへ移動。

My ページ:

初心者に優しい作りのページです。何となく先に進めるこの気楽さがいい。

ブログエディター:

ブログを書く為の WYSIWYG なエディターが表示されて、そこに文字を入力します。
って… リッチテキスト! o('▽')o リッチテキスト!
しかも Flash とか余計なのが動かない DHTML 的なエディターです。

SUGEE!!!!!! (・∀・)
…まぁ、調子にのってエディットしてたらエラーが出たのはご愛嬌。
安全確認を取れないHTMLがあります:<font style="font-size: medium; background-color: #ffff00>
文字を少し大きくしてオレンジ色をつけただけなのですが。
あと、HTML ソースを覗くと、
/* convert_fonts_to_spans : true, */ /*これ入れると 戻る の挙動がおかしくなる*/
等と書いてあって試行錯誤なのが垣間見えます。開発者頑張れ。('▽')!!
あと、エディター機能は TinyMCE という JavaScript 製 WYSIWYG ライブラリ を使っています。(これについては、後述 * で)
ブログを書くと毎回、
投稿に失敗した可能性があります、確認が完了するまでしばらくお待ち下さい
等と適当なメッセージが表示されるのもご愛嬌。
更に、ブログの履歴は表示されるけど、ブログ本文をどこで見られるのか分からないのもご愛嬌。
いやぁ、キャラクターの存在って偉大だゎ。何でも許せちゃう。← 既にメロメロ (何に?)

ブログリーダー:

フィードの追加/編集 UI が非常にシンプルで分かりやすい。
早速、いくつか追加と。φ。。

他の人のフィードを見る事も出来て、気にいったのがあれば、 さくっと自分のブログリーダーに取り込める。

ブックマーク:

ソーシャル化されていて、人様のブックマークが見られるようになってる。
タグもついてるので何となく、飛び先もイメージできる。

なんという Web2.0 (;^ω^)
ていうか、アレなブックマーク集まりすぎw

アクセス解析:

PV をグラフにして見せてくれるらしい。(今日始めたばかりなので、まだカウント増えてないけど)

どう増えるか楽しみ。

グループ:

いわゆる SNS のコミュニティ機能らしい。

これだけはスペースの使い方が下手な感じがしなくもない。
けど、ココロ様が可愛いから許すっ! ← もうダメぽ…

その他:

広告も大きいのが張ってあるのにあまり邪魔に感じさせない。 デザインセンスもレベル高いね。
こういうサイトが作れる技術力がうらやましい。
しばらく使っていこうと思いました。(゜∇゜)b

… (#-_-):

…とべた褒めしたけど、ここにも「ヘアメディカル業用スカルプD」の広告が 表示されやがりました… 最っ低… (一気に評価0…
mixi や Otaba でも毎日こんなの (←微グロ画像注意) 見させられてます。
いくら自分がいい歳したオッサンでも(だからこそ?)、 こんなの毎日何度も見ていい気分しないっての…
ターゲッティング広告も良し悪しですねぇ… (-ω-;)

あ…:

% nslookup cre.adjustnetwork.com
Non-authoritative answer:
Name:   cre.adjustnetwork.com
Address: 202.7.109.107
止めるか… (悪の誘惑
% whois 202.7.109.107
<略>
inetnum:      202.7.109.64 - 202.7.109.127
% echo 202.7.109.64 - 202.7.109.127 | aggrCidr.pl
202.7.109.64/26
ふむ。すっきり。(怒られそうだけど

aggrCidr.pl の中身:

#! /usr/bin/perl -w
use strict;
use Net::CIDR;

for(Net::CIDR::cidradd(<>)) {
    print "$_\n";
}
このスクリプト便利です。

【サーバ設置型 html エディタ】 TinyMCE と FCKeditor

先程、TinyMCE の名前を出したけど、html エディタには色々あるらしい。
以下の参考 URL を見つけたので、ブックマーク。 FCKeditor は WORD と勘違いしそうな程の編集機能があるらしいけど、 重たいので実際に使うには微妙っぽい。(勿論、使ってみないと何ともだけど)
メニューが多すぎると逆に使いづらくなるので、 TinyMCE のメニュー位がいい感じかな。今度使ってみよう。

TinyMCE のコードを読んでみた:

キーやマウスのイベントを真面目にハンドリングして、 JavaScript でエディター機能を力づくで実装してる訳ですが、 もうねw やりすぎww 人のコード見て感動したの久しぶりだゎ。
if (tinyMCE.getParam('custom_undo_redo_keyboard_shortcuts')) {
        inst.addShortcut('ctrl', 'z', 'lang_undo_desc', 'Undo');
        inst.addShortcut('ctrl', 'y', 'lang_redo_desc', 'Redo');
}
	<略>
case "Paste":
        var cmdFailed = false;
        // Try executing command
        eval('try {this.getDoc().execCommand(command, user_interface, value);} catch (e) {cmdFailed = true;}');
Undo や Paste まで対応ですよw
IE で編集したリッチテキストデータを FireFox にコピー&ペーストしたら、 リッチテキストが表示されるし、 NotePad にコピーするとプレインテキストが表示される。
なんという親切設計。(;^ω^)

designMode:

cron 0:00 指定の罠

cron で 0:00 を指定した起動スクリプトが何故か 1秒フライングして 前日の 23:59:59 に起動する事があり困っていた所、以下のような話しを聞けた。
vixie-cron-3.x にはフライングで起動するバグがある。 少し古めの Linux ディストリビューション(RHEL3 とか)だと 標準で vixie-cron-3.x が入っているので、注意が必要らしい。
新しいのだと ISC cron 4.1 が入っていて、 こちらでは問題が起こらない模様。
vixie-cron と作者が同じっぽいけど、 後継プログラムなのか新規に書き起こしたものかは謎。
誰か、vixie 謹製 cron の repository の場所知りませんか。(´Д`;)

<meta name=”keywords” content=○○”←の中にキーワードを入れたら順位がおちました。これってないほうがいいのでしょうかね?

キーワードの無駄使いに注意

2008年01月17日(木)

Flash SWF バイナリいじり (ブロックの分解)

これ の続き
やっぱりタグの所が分からないので、swftools を覗いてみた。

swftools でカンニング:

if (reader->read(reader, &raw, 2) !=2 ) return NULL;
raw = SWAP16(raw);
len = raw&0x3f;
id  = raw>>6;
あー… なるほど。ビット単位で長さが混ざってるのか。
43 01 => 0143
   0    2   4    3
0000 0010 0100 0011
<----------><----->
  id = 1001  len = 3
     =  9
tag 9 番に相当するのはと。
SetBackgroundColor  9  Display  Change the background color. 

struct swf_setbackgroundcolor {
	swf_tag			f_tag;		/* 9 */
	swf_rgb			f_rgb;
};
struct swf_rgb {
	unsigned char		f_red;
	unsigned char		f_green;
	unsigned char		f_blue;
};

length は 3 byte だし、ぴったりですね。
プログラム的にはこんな感じかな。 実行してみると。
% ./a.out  saitama.swf
header magic=FWS
header version=4
header file_length=0xa90(=2704)
movie header alignc=14
movie header x_(min,max) =(0, 4800)
movie header y_(min,max) =(0, 4800)
movie header frame_rate =8.0
movie header frame_count =0x28(=40)
tag=9(SETBACKGROUNDCOLOR) len=3
tag=1(SHOWFRAME) len=0
tag=8(JPEGTABLES) len=63
tag=24(PROTECT) len=6
tag=128(Unknow) len=28
tag=879(Unknow) len=63
tag=128(Unknow) len=32
tag=0(Unknow) len=0
XXX tell= 231
JPEGTABLES からおかしくなってるみたい… 0x023f なので len = 63 なのは確かだけど、うーむ…

再び、swftools をカンニング:

  if (len==0x3f)
  {
      if (reader->read(reader, &len, 4) != 4) return NULL;
      len = SWAP32(len);
  }

  if (id==ST_DEFINESPRITE) len = 2*sizeof(U16);
あー…
0x3f の時は、続く4バイトを長さとしてみるのね。
拡張ビットみたいな感じか。

結果。:

header magic=FWS
header version=4
header file_length=0xa90(=2704)
movie header alignc=14
movie header x_(min,max) =(0, 4800)
movie header y_(min,max) =(0, 4800)
movie header frame_rate =8.0
movie header frame_count =0x28(=40)
tag=9(SetBackgroundColor) len=3
tag=1(ShowFrame) len=0
tag=8(JPEGTables) len=0
tag=6(DefineBitsJPEG) len=2133
tag=2(DefineShape) len=51
tag=26(PlaceObject2) len=9
tag=1(ShowFrame) len=0
tag=26(PlaceObject2) len=7
tag=1(ShowFrame) len=0
tag=26(PlaceObject2) len=7
tag=1(ShowFrame) len=0
tag=26(PlaceObject2) len=7
tag=1(ShowFrame) len=0
tag=26(PlaceObject2) len=7
tag=1(ShowFrame) len=0
tag=12(DoAction) len=7
tag=26(PlaceObject2) len=7
tag=1(ShowFrame) len=0
tag=0(End) len=0
XXX tell= 2704
よし。完璧。 これでデータ構造を作れる。

まとめ。:

{ヘッダ}+{ムービーヘッダ}+{タグ付きブロック}+{タグ付きブロック}+....
といった形式で、
{ヘッダ}が固定長。
{ムービーヘッダ}が TWIPS の値フィールドだけ可変長。
{タグ付きブロック}は { tag | length | contents.... }
といった構成。
複数バイトで表現する値が LittleEndian なのと、一部、ビット単位で フィールドが詰まっている事が分かれば、素直な形式なので楽に分解可能。
ブロックの中身(contents)も興味があるものだけ解析すればOKなので、 中身を入れ替える場合は、入れ替えたブロックの length と先頭ヘッダにある ファイルサイズの2箇所を更新すれば大丈夫そう。
さて、明日はコードを整理しつつ画像の入れ替えに挑戦しようかな。
続く

2008年01月18日(金)

Flash SWF バイナリいじり (画像データ抽出)

これ の続き

コード整理:

bitstream 的な処理を binfile.{h,c}
swffile の全体の解析を swffile.{h,c}
swffile のブロックの解析を swfblock.{h,c}
に分けてみた。

画像抽出:

試しに画像を抽出してみる。
	struct swf_definebitsjpeg {
		swf_tag			f_tag;		/* 6, 21 or 35 */
		unsigned short		f_image_id;
		unsigned char		f_image_data[<variable size>];
なので、<id>.jpg で抽出するならこんな感じでおk
  char jpeg_filename[64];
  swf_block_t *block = swf_file->block;
  for (i=0; block; i++) {
    if (block->tag == 6) { // DefineBitsJPEG
      unsigned char *data = block->body;
      id = LE_VALUE_2BYTE(data);
      sprintf(jpeg_filename, "%d.jpg", id);
      fp = fopen(jpeg_filename, "wb");
      fwrite(block->body + 2, block->length, 1,fp);
      fclose(fp);
    }
    block = block->next;
  }
あっさり抽出成功。 コードは以下のようになりました。

次回の予定:

さて、元々の目的は画像の入れ替えなので、 binfile.{h,c} と swffile.{h,c} にファイル書き込み系の処理を追加する予定。
続く

MySQLがSUNに10億ドルで買収されました

Sun …というか Java は PostgreSQL にぞっこんだった気が…
Javaを開発する、Sun Microsystemsが MySQL よりも PostgreSQL を推している 
なんという裏切りw

1/9 以降、Windows VISTA 搭載 レッツノートのハードディスクが突然死する可能性がある

自分は持ってないけど、VISTA のノートPCを使っている人はお気をつけを?

日清製粉、パスタ40%値上げへ 業務用、過去最大幅

3月から業務用パスタを30~40%、「マ・マー」など
家庭用パスタを15~20%値上げすると発表した。
スパゲッティ好きなのにー (;ω;) 家庭用は2割程度らしいので、影響はどうだろ。

2008年01月19日(土)

Flash SWF バイナリいじり (画像差し替え)

ファイル書き出し処理:

ビットストリームの出力処理を作成。 結構めんどいしコードが汚くなったけど、とりあえず動作するものが完成。 ハマった所としては、
foo = baa << shift_width
みたいな処理で、shift_width が負の値の時に baa >> ... のような動作を期待したんだけど、 foo には 0 が入りました。
残念。

JPEG画像入れ替え処理:

SWF ファイルを読んでブロックに分解するのは出来てるので、 JPEG 画像データで、かつ指定した ID のブロックを探し出し、 データを差し替え、それを SWF ファイルに再構成する処理を書いたところ あっさり画像の入れ替えに成功。 プログラムは以下のような感じ。

さて…:

実験は成功したので、コードをブラッシュアップするか…

追記 (2008/04/02):

↓こちらにまとめを作りました。

Flash Lite のお勉強 (KeyPress)

これ の続き
ふと、寄り道しすぎな事に気づいて、CS3 に戻ってみる。
ボタンが押されたタイミングで HTTP 越しにテキストデータを持ってくる方法を調べた。
自分は IDE が苦手なので、こんな簡単なのでも午前一杯潰れたけど。○rz

KeyPress -> loadVariables のやり方:

作業のそこそこ詳細。
テキスト表示場所の作成
「テキストツール」でテキストの表示枠を作成
(多分下ペインにある)プロパティで(インスタンス名ではなく)変数を指定する
テキストの「単一行」メニューを「複数行」に変更
テキストの文字サイズを14(10だと携帯で表示できず…)に変更
ボタンの作成
「矩形ツール」で四角形を描画する
「選択ツール」でその四角形を選択して「修正(メニュー)>シンボルに変換」でボタンにする
ボタンのアクションを作成
レイヤーのフレームの所で右クリックして(多分一番下の)「アクション」を選択
「選択ツール」で (一度描画外エリアを選択してから)ボタンを選択
アクションの所に以下のようなスクリプトを書く
on (keyPress "<Enter>") {
	loadVariables("test.txt", "/");
}
で、後は text.txt を swf ファイルと同じ場所に用意して、 例えば、テキストの変数名が foo だとしたら、
foo=あーあー。ただいまマイクのテスト中ー
とか書くと、以下のようになる。 ちなみに決定キーが押されるのを検知するオブジェクトとしてボタンを作らざるを 得ないが、表示する意味はないので、描画領域の外に置いて隠すのが定石らしい。

ハマりどころ:

初めテキストが大きすぎて殆ど表示できなかったので サイズを10にしたら、PC では表示できたけど携帯では「.....」のように表示された。
続く

IE7環境でFlash(.swf)ファイルを直に表示できない

なるほど。swf ファイルが壊れたのかと一瞬不安になったよ。

meta keywords

自分のページが随分前から「よや」で検索できなくなっているので、
その対策として、日記や wiki ページに meta keywords タグを追加してみた。

HNS:

diary/<thema名>/thema.ph
<META NAME="Description" CONTENT="Yoya's diary">
<META NAME="Keywords" CONTENT="yoya,diary,よや,日記">

PukiWiki Plus:

pukiwiki/skin/default.skin.php
 <meta name="description" content="<?php echo ($newtitle)?$newtitle:$title ?>" />
 <meta name="keywords" content="yoya,<?php echo "$title,$newtitle" ?>" />

米Yahoo!がOpenID採用を発表、OpenIDアカウント数は一気に3倍に

OpenID の話をちらほら聞くようになってきましたね。

2008年01月20日(日)

Flash SWF バイナリいじり (CWS)

これ の続き

chara.swf:

某19人の flash を dump してみた。
swf_file->header.file_length(18432) != ftell(binfp->fp) (117635)
header magic=CWS
header version=6
header file_length=0x4800(=18432)
movie header alignc=15
movie header min(125, 581) - max(1302, 469)
movie header frame_rate =188.54
movie header frame_count =0x501(=1281)
[0] tag=788(Unknow) length=53
うーむ。ボロボロ。
magic が CWS の場合は file_length フィールドのすぐ後ろから zlib 圧縮がかかっていて、その後ろのバイナリを伸張する処理が必要らしい。 さて、どう作ろうかな…
今のところ、ちまちまファイルストリームから必要な時に吸い出すように作ってるけど、 全データをバッファに吸い出してから処理するように作り変えた方が楽な気もする。
大きなサイズの Flash を諦める事になるけど。そこは妥協で。

追記 (2009/10/07):

「cws zlib」でたどり着く事があるようなので、まとめを作りました。

FireFox の表示文字改善

読むのが罰ゲームになるんじゃないかって位に文字が汚かったけど、 以下のページを読んで解決。ありがとう。ありがとう。(⊃д⊂) これで、IE と同じ表示になりました。(って事は、FireFox はこの設定見てないのか…)
参考にしたページはメイリオフォントについて話しているが、 メイリオフォントを使ってない(はずの)ページでも効果があってラッキー。 …ていうか。 普通に書いてあった。(´Д`;)

ついでに、自分のページでメイリオ指定:

diary/<テーマ名>/theme.ph
BODY {
	<略>
        font-family:メイリオ;
pukiwiki/skin/default.css
body
{
	<略>
        font-family:メイリオ, "Trebuchet MS", arial, helvetica, Sans-Serif;
メイリオが普通になったら外さないとダメだけどね。これ。 その次のフォントが出た時、邪魔になるし。

XPでVista搭載フォント"メイリオ"を使う(&文字幅はMS Pゴシックと同じに)-MeiryoKe_PGothic

すばらしすぎる…
Windows を使ってるって事を忘れそうな位、文字が読みやすくなりました。
使用前 (MS ゴシック)使用後 (メイリオ改)
使用前 (MS ゴシック)と使用後 (メイリオ改)

東京地方、今夜から降雪予報 交通障害に注意 気象庁

明日、無事に会社に辿りつけますように… (・人・)

2008年01月21日(月)

Flash SWF 編集 (PHP編)

C 言語で作った JPEG 差し替えツールを PHP に移植しようとしたら、 既に似たような事をやってる人を発見。 これはヘッダを編集するだけっぽいので、これを拡張するか、 自前でスクラッチから作るかちょっと迷う。 (データ構造的に試したいアイデアがあるので、スクラッチから作る可能性が高いけど)

追記 (2008/07/24):

↓こちらにまとめがあります。

「若い人ほどネットにハマる」は本当か? (イギリスの調査)

「物心ついたときからネットがあるんだから、さぞかし上手に使いこなしているのだろう」
というようなステレオタイプは、それほど正しくはないというレポートが発表されました:
年寄りの独断でサービスを作るのを避ける為に、 若者の傾向を予想してバイアスをかけたのに、 それ自体が間違えてるって事もあるので、 この手の定量的な調査は重要ですね。

2008年01月22日(火)

Flash SWF 編集 (PHP 移植)

適当に移植してみた。 とりあえず、ブロックに分割するところまで。
(tag & length の分割で少しハマった、LE とビットストリームのあわせ技なので、少し分かりにくい)

追記:

「JPEG ブロック分割」で検索して辿りついた方がいらしたので追記。

ヤッターマン公式BBSが削除の嵐 (主題歌問題)

炎上を誘ってるとしか思えないこの暴挙…

謎はてブ


そしてとても興味深いのは、300人くらいのはてブユーザーが、
タイトルに釣られて内容見ずにブックマークしてるってことだよね。
(おそらく、後で見る人が殆どだから)
ここから言えるのは、芸能雑誌の見出しが内容に即していないものでも
効果を上げるのと同じく、はてブも(というかネット記事も)そのタイトルが
いかに大げさで内容に即していないものでも、(少なくとも技術系のページでは)
一定の効果を上げるということだね。
共有ブックマークの一つの限界かもしれません。

コメント欄:

じゃあ何がいいの?って言ってると結局そういう指摘をする人が
いなくなっちゃうんじゃないですかね?
うーん。これは微妙。

ついでに:

考える前にやるべきことの前にやるべきことは考えること

考える前にやるべきことがあるだろ へのツッコミとしては不適切な感じを受けるが、言ってる事自体にはうなずける。
材料をむやみに集めてもゴミの結果しか出ないしね。
考える前にその材料を十分集める必要があるけど、その材料の集め方自体(どんなデータをどんな風に)をまず考えないといけない。って事。

2008年01月23日(水)

Flash SWF 編集 (PHP 移植)

あまりに適当すぎたのでコードをブラッシュアップ。
結構綺麗に書けたつもり。
CWF 対応なので試しに chara.swf を分解してみたけど、 ブロックの分解がまだバグってるっぽい。
tag=SetBackgroundColor(9) length=3
tag=JPEGTables(8) length=574
tag=DefineBitsJPEG(6) length=-103
tag=341 length=20
tag=521 length=58
tag=931 length=39
tag=End(0) length=0
movie header と SetBackgroundColor(9) までは想定通りなので 伸張はうまくいってるはずで、多分、 JPEGTables の tag_and_length の 構造が特殊なのか、そもそも自分が誤解してるのかって所か。
マイナスなので、そもそもビットストリーム処理でシクってる可能性も…

追記 (2009/08/04):

マイクロソフト、2月12日にIE6からIE7への強制アップグレードを予定

もうそろそろですねぇ…

巻き取り式ディスプレイ付き携帯、2008年半ば発売へ

かっこよすぎ…
実際に使ってみないと実用的かは分からないけど。

2008年01月24日(木)

Flash SWF パース (PHP編)

Tag ブロックの処理を Factory パターンで書き直してみた。
static function Factory(&$ibs) {
        $tag_and_length = $ibs->getBytesLE(2); // important
	$tag = $tag_and_length >> 6;
<略>
	$tagclass = @ self::$_tagClassTable[$tag];
	if (! empty($tagclass)) {
	      require_once("FlashSWF/TagBlock/$tagclass.php");
	      $classname = $classname . '_' . $tagclass;
	}
	$block = new $classname($tag, $length, $rawdata);
	return $block;
}
function __construct($tag, $length, $rawdata) {
	$this->_tag = $tag;
	$this->_length = $length;
	$this->_rawdata = $rawdata;
}
こんな感じで。

BitStream 処理見直し:

getLEBytes (LittleEndian で値取得)の処理がおかしかったので修正。
 php swftest.php chara.swf
	<略>
tag=SetBackgroundColor(9) length=3
tag=JPEGTables(8) length=574
tag=DefineBitsJPEG(6) length=31897
        jpeg id=1
	<略>
tag=DoAction(12) length=2
tag=ShowFrame(1) length=0
tag=End(0) length=0
完璧だ… (2^31 以上の値の扱いはとりあえず制限事項で…)
2^31 を超えた値はないのに、(そんな大きなデータを扱い気はないし) 計算途中で 2^31 を超えた値を保存する事があり、 php の整数は unsigned ではないので、マイナスの値におちて おかしな事になっていた。
計算途中でも越えていたのは単に手抜きだったからなので、さくっと修正。

さて…:

次はファイル出力を作ろっと。

今日のブックマーク

面倒なのでこっちでまとめ。

2008年01月25日(金)

Flash SWF ファイル出力 (PHP 編)

BitStream の処理を色々と見直したら SWF ファイルを出力する所まで出来た。
% php swftest.php saitama.swf
% md5sum saitama.swf  output.swf
b4b4698958e961336389dd421b671157  saitama.swf
b4b4698958e961336389dd421b671157  output.swf
完全に元通り :) php は型が分かりにくいので、ビット処理は結構大変でした… (ブラッシュアップしなきゃなので、過去形じゃない訳ですが…)

課題:

  • ファイルサイズの更新処理を追加 (入れ忘れ)
  • CWS の時に圧縮する処理を追加 (入れ忘れ)
  • 画像入れ替えで遊んでみる (そもそもの目的)
  • ブラッシュアップ (特に BitStream のコードが微妙)
とりあえず、1 つ目を直さないと使い物にならないので、さっさと直そう。
画像入れ替えについては、↓これの変換処理を考えないと…

ming を入れてみる

./configure:

configure
./configure
<略>
Config summary:
  C++ enabled
  Perl extension disabled
  PHP extension disabled
  Python extension disabled
  Tcl extension disabled
  ZLIB enabled (-lz)
  Freetype library enabled (/usr/bin/freetype-config)
  GIF library disabled
  PNG library enabled (-lpng)
色々負けてるな…
よいしょっと。
# yum install giflib-devel
./configure --enable-perl --enable-php
<略>
Config summary:
  C++ enabled
  Perl extension enabled
  PHP extension enabled
  Python extension disabled
  Tcl extension disabled
  ZLIB enabled (-lz)
  Freetype library enabled (/usr/bin/freetype-config)
  GIF library enabled (-lungif)
  PNG library enabled (-lpng)
よし…

2008年01月26日(土)

Flash SWF 画像入れ替え(PHP 編)

前回の課題のうち、ファイルサイズの更新処理と CWS の圧縮処理を入れて、 JPEG画像入れ替えまで実装してみた。

CWS の圧縮で問題発生:

PHP Warning:  gzuncompress(): buffer error in /home/yoya/prog/flash/FlashSWF.php on line 42
google で探しても解決した例が見つからないので、php のソースを読んでみた。
(yum で PHP 5.1.6 (cli) を使っているが、)とりあえず最新版の 5.2.5 を取得。
php の中にはメッセージがない
% pwd
/home/yoya/src/php-5.2.5
% grep "buffer error" * */* */*/*
%
zlib の中を探す
% grep "buffer error" *.c
zutil.c:"buffer error",        /* Z_BUF_ERROR     (-5) */
zutil.c (メッセージを定義してる場所)
const char * const z_errmsg[10] = {
"need dictionary",     /* Z_NEED_DICT       2  */
"stream end",          /* Z_STREAM_END      1  */
"",                    /* Z_OK              0  */
"file error",          /* Z_ERRNO         (-1) */
"stream error",        /* Z_STREAM_ERROR  (-2) */
"data error",          /* Z_DATA_ERROR    (-3) */
"insufficient memory", /* Z_MEM_ERROR     (-4) */
"buffer error",        /* Z_BUF_ERROR     (-5) */
"incompatible version",/* Z_VERSION_ERROR (-6) */
""};

#define ERR_MSG(err) z_errmsg[Z_NEED_DICT-(err)]
compress.c (実際に出力する場所)
     compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
   memory, Z_BUF_ERROR if there was not enough room in the output buffer,
   Z_STREAM_ERROR if the level parameter is invalid.
	<略>
   if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR;
    err = deflate(&stream, Z_FINISH);
    if (err != Z_STREAM_END) {
        deflateEnd(&stream);
        return err == Z_OK ? Z_BUF_ERROR : err;
伸張する時に長さを指定するけど、 実際に伸張したらその長さを超えちゃったってだけか…
つまり、ファイル長フィールドの更新に失敗してると… ○rz
chara.swf と(それを read して write した) output.swf はファイルサイズが同じなんだけど。(そうなるように圧縮率を調整したし)
* chara.swf

  addr :  0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF
0x00000: 4357 5306 0048 2c00 789c 9cb9 6b5c 5259  CWS  H, x   k\RY
                   ~~~~~~~~
* output.swf addr : 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF 0x00000: 4357 5306 a86f 2800 789c 9cb9 6b5c 5259 CWS o( x k\RY ~~~~~~~~
確かに駄目だ

圧縮失敗の原因:

if ($magic == 'CWS') {
	movie_and_body = gzcompress($movie_and_body, 6);
}
<略>
$this->_header['filelength'] = strlen($header_without_length) + 4 + strlen($movie_and_body);
えーっと… ファイル長フィールドには 伸張した時のファイルサイズを入れないと駄目なのに、 圧縮後のファイルサイズを入れてました…
そりゃ、伸張した時にバッファも足りなくなるさ… ○rz
$this->_header['filelength'] = strlen($header_without_length) + 4 + strlen($movie_and_body);
<略>
if ($magic == 'CWS') {
	movie_and_body = gzcompress($movie_and_body, 6);
}
こうしないと。

問題 (chara.swf から吸い出した画像が表示できない):

  • saitama.swf の画像吸出し成功、表示も出来る。
  • chara.swf の画像吸出せたが、ビューアで表示できない。(;_;
  • saitama.swf の画像入れ替え成功
  • chara.swf の画像入れ替えも成功 (DefineBitsJPEG3 は未対応 alpha フィールドがよく分からないので…)
先頭 0x10 分を見る限り問題ない JPEG 画像に見えるので長さが足りないか、 途中のどこかを壊してるかってとこだけど、調べるの面倒そう。

課題:

  • chara.swf の画像抽出処理を見直す
  • JPEG 画像の SWF 仕様への変換を考える。
  • もう少しブラッシュアップ
  • 異常系を考える (とりあえず FlashSWFException 実装するか…)
  • デバッグ機能を入れる (動作確認をしやすいように)

追記 (2009/01/18):

追記 (2009/09/09):

ming 導入

まずはコードを取得。current で。
cvs -z3 -d:pserver:anonymous@ming.cvs.sourceforge.net:/cvsroot/ming co -P ming
↑こちらを参考にインストール。

jpeg patch:

まずは、JPEG パッチ *1 を当てる。(flash lite 実行環境は画像フォーマットに好き嫌いがあるので、その対策らしい)
$ wget http://auicon.freeownhost.com/pc/dev/ming/jpeg.c.diff
$ patch -b jpeg.c jpeg.c.diff
patching file jpeg.c
Hunk #1 succeeded at 129 (offset 6 lines).
Hunk #3 succeeded at 310 (offset 11 lines).
ちなみに -b は backup オプション。
(2008/07/25 追記) パッチを公開していたサーバがアクセスできなくなっているので、↑代わり
ついでに JPEG に関するまとめ。↓

configure:

%  ./autogen.sh
Running aclocal -I macros
Running libtoolize --automake
./autogen.sh: line 15: libtoolize: command not found

  Something went wrong, bailing out!
むー。libtool 入ってなかったか…
yum install libtool
./configure
<略>
Config summary:
  C++ enabled
  Perl extension disabled
  PHP extension disabled
  Python extension disabled
  Tcl extension disabled
  ZLIB enabled (-lz)
  Freetype library enabled (/usr/bin/freetype-config)
  GIF library disabled
  PNG library enabled (-lpng)
色々負けてる…
# yum install giflib-devel
# exit
% ./configure --enable-perl --enable-php
<略>
Config summary:
  C++ enabled
  Perl extension enabled
  PHP extension enabled
  Python extension disabled
  Tcl extension disabled
  ZLIB enabled (-lz)
  Freetype library enabled (/usr/bin/freetype-config)
  GIF library enabled (-lungif)
  PNG library enabled (-lpng)
よし…
% make
	<略>
% su
Password:
# make install
	<略>

さて php で…:

によるとコンパイル手順は、
    mkdir <phpdir>/ext/ming
    cp php_ext/* <phpdir>/ext/ming
    cd <phpdir>
    ./buildconf 
    ./configure --with-ming <other config options>
なんだけど、php を yum で入れてるのでどうしよう…
php 自体もいい加減(5.1.6)古いので、これを機会に入れなおそうかとも思うけど、 yum upgrade 対象外になるのは後々、面倒そう。う~む…

php-5.1.6 ツリー上でコンパイル:

yum で入れた php に config オプションはあわせて、 php-5.1.6 のソースをコンパイルしてみた。
php -i | grep Configure
Configure Command =>  './configure' '--build=i686-redhat-linux-gnu'
<以下略>
php -i | grep Configure > ../php-config-option.txt
vi ../php-config-option.txt
sh ../php-config-option.txt
<略>

環境整備:

色々とヘッダが足りなくてエラーが…
checking for PCRE support... yes
configure: error: Could not find pcre.h in /usr
checking for BZip2 in default path... not found
configure: error: Please reinstall the BZip2 distribution
checking for db4 major version... configure: error: Header contains different version
checking for GNU MP support... yes
configure: error: Unable to locate gmp.h
configure: error: Cannot find rfc822.h. Please check your c-client installation.
configure: error: Cannot find ldap.h
configure: error: Cannot find MySQL header files under /usr.
Note that the MySQL client library is not bundled anymore!
checking for ncurses support... yes, shared
checking for unixODBC support... configure: error: ODBC header file '/usr/include/sqlext.h' not found!
not found
configure: error: Cannot find libpq-fe.h. Please specify correct PostgreSQL installation path
checking for sqlite3 files in default path... not found
configure: error: Please reinstall the sqlite3 distribution
checking for PSPELL support... yes
configure: error: Cannot find pspell
configure: error: SNMP sanity check failed. Please check config.log for more information.
必要に応じて -devel パッケージをインストール
# yum install pcre-devel
# yum install bzip2-devel
# yum install db4-devel
# yum install gmp-devel
# yum install libc-client-devel
# yum install openldap-devel
# yum install mysql-devel
# yum install ncurses-devel
# yum install unixODBC-devel
# yum install postgresql-devel
# yum install sqlite-devel
# yum install aspell-devel
# yum install net-snmp-devel

configure (--with-ming で失敗):

さて、php-config.txt に --with-ming を付け足してと…
% sh ../php-config-option.txt
make
ming は php に入ってるのでそのまま。
/home/yoya/src/php-5.1.6/ext/ming/ming.c:2104: error: too many arguments to function 'newSWFMovie'
/home/yoya/src/php-5.1.6/ext/ming/ming.c:2106: error: too many arguments to function 'newSWFMovie'
/usr/local/ に current の ming が入っているので微妙か…
% cd ext/ming/ ext/ming.orig
% cp -r ~/src/flash/ming/php_ext/* ext/ming/.
% sh ../php-config-option.txt
% make
<略>
ext/ming/.libs/ming.o: In function `zif_ming_useSWFVersion':
/home/yoya/src/php-5.1.6/ext/ming/ming.c:121: multiple definition of `zif_ming_useSWFVersion'
ext/ming/.libs/ming.o:/home/yoya/src/php-5.1.6/ext/ming/ming.c:121: first defined here
ext/ming/.libs/ming.o:(.data.rel+0x0): multiple definition of `ming_module_entry'
ext/ming/.libs/ming.o:(.data.rel+0x0): first defined here
collect2: ld returned 1 exit status
駄目か…

configure (--enable-ming で成功):

sh ../php-config-option.txt (--with-ming を --enable-ming に変更)
make
<略>
Build complete.
(It is safe to ignore warnings about tempnam and tmpnam).
やはり…

インストール:

% cd ext/ming;
% sh make_module.sh
% mv ext/ming/tmp/modules/ming.so /usr/lib/php/modules/.

動作確認:

<?php
dl('ming.so');
ming_useswfversion(4);
$swf = new SWFMovie();
$swf->setDimension(640, 480);
$swf->add(new SWFBitmap(fopen('/home/yoya/prog/flash/image1.jpg', 'rb')));
$swf->save('sample.swf');
?>
成功。
% cat > /etc/php.d/ming.ini
; Enable ming extension module
extension=ming.so
^d

。。。:

↓こっち参考にして作業すればよかった… (⊃д⊂)

*1: 詳細や JPEG パッチの cache はこちら。
http://pwiki.awm.jp/~yoya/?Flash/JPEG

スパムメールを送って得られる月収は77万円-108万円

スパマー全員シネバイイノニ
背後に怖い人達がいるんでしょうけど…

2008年01月27日(日)

Illustrator から Flash CS3 に画像をコピー

Illustrator 形式のカッコいい画像 が配布されてたので Flash CS3 の画面にコピーしてみたら、
「ビットマップとしてペーストする」と「AIファイルインポータ環境設定を使用してペースト」
の選択肢が出てきて、

「ビットマップ」を選べば大丈夫かと期待したけど、
パブリッシュ時に
Flash Lite 1.1 Player でサポートされていない機能を使用しています
と警告がでて、実際に画像が表示できなかった。

リソースをチェックすると確かに ai 形式のまま取り込んでいるみたいなので、 Illustrator 側で予めビットマップに落としてからコピーしないとダメなのかな。
「ビットマップとしてペーストする」って何してるんだろ。(・ω・)

近所の図書館

隣駅の範囲まで図書館を回ってきた。
どの図書館でもそうだったけど、 年配のおじさん達がとにかくウザイと改めて思った。
(数少ない)席に座って本読まずに寝てたり、 本を読んでる人も鼻息が荒くてうるさかったり、(←本棚ひとつ距離置いても目立つ位)
クシャミするのはいいけど唾飛ばしてきて、こっちの顔にかかるし、
浮浪者っぽい格好の人もいるし、 格好はおいといても 3m以内に近寄ると鼻が曲がりそうな匂いがするし…
公共の場なので、ある程度は仕方ないんだけど、 団塊の世代の方々はマナーがなってないなと愚痴りたい…
(まともな人は土日に家族サービスとかしてて、 こういう所には居ないのかもしれないけどね…)

愚痴はおいといて:

色々とネタ集めに奔走してみて、色々とやりたい事もみつけたので、 まだ頑張れそう(何が?)な気がする。
後半、AppleII の本を見つけてずっとそれ読んでて、 昔のゲームが沢山載ってて、ちょっと懐かしくなった。
自分も、もう年だなぁ…

Excelマクロで弾幕シューティング「DEX-EV」

こういうの見ると自分は Excel が使えますとか、面接とかで主張できないなぁ… ↓これといい、Excel の底力には感動さえ覚えます。

実際に遊んでみて:

本当に本格的なシューティングゲームでした。SUGEE !
ただ、オプション>セキュリティ>マクロセキュリティで、 セキュリティレベルを中に落とさないと動かないので面倒。 (マクロなので当然だけど)
署名がない場合でも設定を変えずに特定ファイルをその場で指定して、 マクロを有効にする方法とかないのかな。
後で設定を戻し忘れた場合を考えると、セキュリティ設定はなるべく変えたくないし。

プレゼンや映像製作に使えるお手軽な原稿表示ツール

以前、携帯でカンペシステム作ったらウケないかなと数名に話した事があるけど、 PCでは当然のように、とっくに実装されてたようで。^^;
今度、携帯 flash で作ってみるか。

「単純に並べるだけ」じゃないインターフェース(Badoo)

こういう工夫はいいよね。センスを感じる。
頭の固い上司がいると、統一感がないとかで却下されそうだけど。(´Д`;)

CSSとPHPできれいなグラフを描く方法

グラフツール使うの面倒で、HTML で棒グラフを書いた事は何度かあるけど、 これだと、きちんとしたグラフっぽい。今度使おw

2008年01月28日(月)

イリーナ女史、堪忍袋の緒が切れた欧米の生命科学者に引導を渡されるの巻

GMO が怖いと不安を煽るのは百歩譲って我慢するとして
でっちあげに近い実験結果を使って危険だと主張するのは さすがにまずいだろうに…

買ってはいけないのか:

ここからリンクされている「買ってはいけないのか」のページが結構いい感じですが
既になくなっているので代わりに cache ページの URL を張っておきますね :-)

昨今の疑似科学批判ってなんか浅薄だなと思う。:

この記事自体が軽薄な雰囲気を(多分わざと)出してるせいか、 コメントが賑わっていて楽しくなってます。

2008年01月29日(火)

Flash SWF 画像抽出デバッグ

chara.swf で画像吸出しに失敗している原因を調査中
HugFlash で吸い出せたので、その結果と比較してみた。 0x07ed1 - 0x07c97 = 23A ほどサイズが違うのと、マーカーの並びが違う。 一般のツールで表示できない怪しい形式なのかな。

どう壊れているか:

ImageMagick の identity でチェック
% identify ~/prog/flash/image1.jpg
identify: Quantization table 0x00 was not defined `/home/yoya/prog/flash/image1.jpg'.
%
というわけで、QUANT マーカーが無いか壊れているか。なんだけど。
% pwd
/home/yoya/src/ImageMagick-6.3.8
% grep -r "was not defined" .
%
ImageMagick には無いので多分、libjpeg
% pwd
/home/yoya/src/jpeg-6b
% grep -r "was not defined" .
./jerror.h:JMESSAGE(JERR_NO_HUFF_TABLE, "Huffman table 0x%02x was not defined")
./jerror.h:JMESSAGE(JERR_NO_QUANT_TABLE, "Quantization table 0x%02x was not defined")
%
見つけた。
% grep JERR_NO_QUANT_TABLE *
jcdctmgr.c:      ERREXIT1(cinfo, JERR_NO_QUANT_TABLE, qtblno);
jcmarker.c:    ERREXIT1(cinfo, JERR_NO_QUANT_TABLE, index);
jctrans.c:      ERREXIT1(dstinfo, JERR_NO_QUANT_TABLE, tblno);
jdinput.c:      ERREXIT1(cinfo, JERR_NO_QUANT_TABLE, qtblno);
jerror.h:JMESSAGE(JERR_NO_QUANT_TABLE, "Quantization table 0x%02x was not defined")
むぅ… どれだ…

困った時の swftools 頼み:

swftools-0.8.1/src/swfextract.c
void handlejpeg(TAG*tag)
{
    char name[80];
    char*filename = name;
    FILE*fi;

    sprintf(name, "pic%d.jpg", GET16(tag->data));
    if(numextracts==1) {
        filename = destfilename;
        if(!strcmp(filename,"output.swf"))
            filename = "output.jpg";
    }
    /* swf jpeg images have two streams, which both start with ff d8 and
       end with ff d9. The following code handles sorting the middle
       <ff d9 ff d8> bytes out, so that one stream remains */
    if(tag->id == ST_DEFINEBITSJPEG && tag->len>2 && jpegtables) {
        fi = save_fopen(filename, "wb");
        fwrite(jpegtables, 1, jpegtablessize-2, fi); //don't write end tag (ff,d
8)
        fwrite(&tag->data[2+2], tag->len-2-2, 1, fi); //don't write start tag (f
f,d9)
        fclose(fi);
    }
なるほど… 普通のビューアで見ると END マーカーが途中にあると、 その後ろにある QUANT タグが見れないまま終了しちゃうと。
外す処理が必要って事ね。逆に取り込む時は、END マーカーを先頭の 方に入れてやら無いと Flash としては表示を保障できないと。

ソフトバンク922SH「インターネットマシン」詳細

スマートフォンと携帯の合いの子みたいな感じかな…

伸び悩むウェブサービスの三大疾患

あー。あるあr <ピーー …検閲削除>

2008年01月30日(水)

携帯フィルタリング、総務省が“過剰規制”に「待った」

総務省はこうした意見を考慮し、4月をメドにフィルタリングの在り方について
検討会の中間報告をまとめ、原則としてブラックリスト方式を適用するよう促していく。
公式メニュー以外全滅かと思ってたら、状況が変わってきたみたいですね。

地方テレビ局などの視聴が可能なフリーのP2Pソフト「KeyHoleTV」

ちょw

2008年01月31日(木)

「♪」以外の音符を表示させたい!

これは利用せざるを得ない ▽')!!
四分音符: &#9833;
八分音符: &#9834;
連桁付き八分音符: &#9835;
連桁付き十六分音符: &#9836;
だそうです。

やる夫で学ぶサブプライム問題

なるほど、こんなだったのか… 他人事じゃないのね。(・ω・)

ミクシィ決算、会員数や収益は増加もPVやアクティブ率は減少が続く

広告メニューの改定や広告枠新設などの新たな広告展開により、
モバイル、PCともにPV単価が上昇していると説明。
PV が減っても PV 単価が上がってるので問題なしか…
もうユーザの方を向いてないのかなぁ…

迷惑広告メール送信を全面禁止・総務省

NTTなど通信会社に悪質業者の情報提供を求め、
違反業者には総務省が改善命令を出せるようにする。
罰金額の上限引き上げなど罰則も重くする。
今国会に提出する特定電子メール法改正案に必要な措置を盛り込み、
迷惑メール撲滅への対策を強化する。
頑張れ総務省。

これで、31 日分だよ〜。

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