These pages are written by only Japanese.

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

こんにちは♪ 現在は4月29日(月)13時52分。 そろそろお仕事に戻る時間です


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

先月 2008年03月 来月
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年03月21日(金)

昨年逮捕されたスパムの帝王、米地方裁判所が懲役26年の実刑判決

日本もこのくらい厳しくやればいいのに。(・ω・)

2008年03月22日(土)

Pukiwiki のページ名に含まれる / をそのまま URL に

恐らく、これを実行するのは間違いなんだと思いますが、 便利ならいいやと改造してしまいました。
func.php 
function get_resolve_uri($cmd='', $page='', $path_reference='rel',
                         $query='', $\fragment='', $location=1)
<略>
       if (! empty($page)) {
               $ret .= $flag.$page_pref.rawurlencode($page);
               $ret = preg_replace('/%2F/', '/', $ret); // yoya
               $flag = '&';
       }
参考 「Flash/...」のページを辿ると、URL に / がそのまま反映されます。 こんな感じのページにリンクされます。
ちなみに改造前だとこうなってました。

さくら開花宣言

東京は今日開花だそうです。 今年は早いなぁと思ってたら、去年(3/20)の方が早かったみたい。^^; 開花前線 東京の天気 今年も厳しそうですねぇ…

2008年03月23日(日)

PHP extension のお勉強 (4)

これ の続き
extension の skelton 作成ツールで自動生成された swfed.c の中に 実装コードを書き切れないのでファイルを分割し始めましたが、 当然、configure や Makefile に入っていないので、コンパイルされません。
config.m4 を弄って phpize からやり直すとうまくいきました。
vi config.m4
前) PHP_NEW_EXTENSION(swfed, swfed.c, $ext_shared)
後) PHP_NEW_EXTENSION(swfed, swfed.c swf_object.c, $ext_shared)
(ファイル名の間に , を入れず、空白だけにするのがミソ)
$ phpize
$ ./configure
$ make
色々と PHP extension の(仕組みはまだよく分からないけど) 実装方法がわかってきたので、以下のページにメモ開始。 殆どは Klab 様の教えそのままですが、もう少し充実させる予定。
続く

2008年03月24日(月)

ゲームをやるとき、デジタルテレビのディレイに要注意!

オシロスコープが普通に出てくるのが何ともw
気になるコメントがあったので以下にメモ。
ワイヤレスヘッドホンもディレイの元になる可能性があるので実はオススメしがたいところ。

HDTVの映像は16.7ミリ秒(1/60秒)ごとに書き換える必要があるのだけど、
それでこれ以上短い時間はこの時間を単位に整列されることになる。
遅延もきっちり同期してて、ちょうどこの時間2回分というのが面白い。

ここ最近のテレビは内部で映像をデジタル処理してるので、必ず遅延があります。

特にシャープと日立、東芝は4フレ以上と酷いのでゲーム用途では地雷扱いです。
逆に三菱、パナソニックは大体1フレームで収まるので優秀…といわれています。
逆にテレビ番組を見る分には前半のメーカーの方がよさそうですね。
デジタル処理を真面目にやると遅れるのは当然だし、 映像と音声が両方遅れるのなら問題ないし。
どのみち PS2 とかは直接外部出力から取った方が(僕の感覚では) いい音が鳴るのでテレビ越しで聞くの勿体無いと思うけどw

オンキヨーがソーテックを吸収合併へ ソーテック24年の歴史に幕

初期不良率とかサポートのつながり難さとか、着々と改善されている って聞くのに、最近見ないな~と思ったらオワってたのか…
お友達が技術サポートやってたけど大丈夫かな。(・ω・)

2008年03月25日(火)

PHP extension のお勉強 (5)

これ の続き config.m4 に幾つかソースを追加。
PHP_NEW_EXTENSION(swfed, swfed.c swf_object.c swf_header.c bitstream.c, $ext_shared)
更に、クラス内部データ取得ルーチンを分離 (異常系がいい加減…)
static swf_object_t  *get_swf_object(zval *obj TSRMLS_DC) {
        zval *data, **tmp;
    swf_object_t *swf;
    int id, type;
        data = zend_read_property(Z_OBJCE_P(obj), obj, "swf_object",
                                  strlen("swf_object"),1 TSRMLS_CC);
    zend_hash_find(Z_OBJPROP_P(obj), "swfed", strlen("swfed") + 1,
                   (void **)&tmp);
    id = Z_LVAL_PP(tmp);
    swf = zend_list_find(id, &type);
    return swf;
}
SWF ファイルの magic の型定義を作って、
typedef struct swf_header_ {
    unsigned char f_magic[4]; // 'FWS' or 'CWS' + '\0';
	<略>
}
swf_object_input -> swf_header_input の流れと、
swf_object_print -> swf_header_print の流れを作り、 各々を SWFEditor->input、SWFEditor->swfInfo に bind 。
$obj = new SWFEditor();
$obj->input("CWS....");
$obj->swfInfo();
実行結果
% php yoya_test.php
input done
magic: CWS
SWFEditor->destory
とりあえず、とっかかりが出来ました。
ちなみに↓こんな感じ。

課題:

  • 細かい処理を作りこんでいく
  • 異常系のチェックを真面目に行う
  • メモリリークが無いように頑張る
  • パフォーマンス的にも頑張る
  • テストファイルを沢山試す (色んな SWF ファイル、色んな JPEG ファイルで)
続く

知り合いが mixi やってるかどうかを知る

マイミク申請が無視されればバレないので、ソーシャルハックの要素も含めての話ですね

米ソニースタイル、邪魔なプリインストールソフト抜きオプション提供

ちょっw 空気読めないってレベルじゃNEEEE!

2008年03月26日(水)

PHP extension のお勉強 (6)

これ の続き
SWF ヘッダ部の実装完了。

テストコード:

$swfdata = file_get_contents("saitama.swf");
$obj = new SWFEditor();
$obj->input($swfdata);
$obj->swfInfo();

実行結果:

magic=FWS  version=4  file_length=2704
frame_size=(0, 0)-(240, 240)
frame_rate=8.0  frame_count=40

欲をかいて tag 分解まで:

swf_tag_t *swf_tag_create(bitstream_t *bs) {
    swf_tag_t *tag = calloc(1, sizeof(*tag));
    int tag_and_length, length;
    tag_and_length = bitstream_getbytesLE(bs, 2);
    tag->tag = tag_and_length >> 6;
    tag->length = tag_and_length & 0x3f;
    tag->length_longformat = 0;
    if (tag->length == 0x3f) {
        tag->length = bitstream_getbytesLE(bs, 4);
        tag->length_longformat = 1;
    }
    tag->data = calloc(tag->length, 1);
    bitstream_getstring(bs, tag->data, tag->length);
    tag->modified = 0;
    return tag;
}
実行結果。
% php yoya_test.php
*** glibc detected *** php: malloc(): memory corruption: 0x09d202e8 ***
======= Backtrace: =========
/lib/libc.so.6[0x2bd14c]
さて、寝よっと…

我慢できず目が覚めた…:


magic=FWS  version=4  file_length=2704
frame_size=(0, 0)-(240, 240)
frame_rate=8.0  frame_count=40
tag=9  length=3
tag=1  length=0
<略>
tag=26  length=7
tag=1  length=0
tag=0  length=0
タグの分解まで出来ちゃった…

プログラム:

bitstream.c がボロボロなので、かなり書き直しました。

2008年03月27日(木)

PHP extension のお勉強 (7)

今日は出力部分を作ってみました。

実験コード:

$swfdata = file_get_contents("saitama.swf");
$obj = new SWFEditor();
$obj->input($swfdata);
echo $obj->output();

実行結果:

% php yoya_test.php > t
% fdmp  t
  addr :  0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF
0x00000: 4657 5304 900a 0000 .... .... .... ....  FWS
順調…

プログラム:

やる夫がうつ病になったようです

精神的に弱ってる時は、何処でご飯を食べるかでかなり悩むので だいたい分かるかな…
燃え尽きないように気をつけないとね。

複雑な GUI を持つアプリケーションの設計について

オブジェクト指向って分かってない人が使うと、 これ以上なく見難くなるよね。
goto 文だけで遷移した方がマシって位に。

2008年03月29日(土)

PHP extension のお勉強 (8)

SWF バイナリをバラして、そこから組み立てて元に戻るかテスト

テストコード:

$swfdata = file_get_contents("saitama.swf");
$obj = new SWFEditor();
$obj->input($swfdata);
print $obj->output();

実行結果:

% php yoya_test.php > t
% md5sum  t saitama.swf
b4b4698958e961336389dd421b671157  t
b4b4698958e961336389dd421b671157  saitama.swf
さて…、ようやく本題のデータ編集の実装に入れます。長かった…

プログラム:

MZK-W04N-PKU2

自宅の無線APが壊れたので替わりに購入しました。
とりあえず普通に使えてます。素晴らしい。

不安な事:

この手の機器を購入した直後にする事といえば、 ファームのアップデートなので、ドライバ配布ページをチェックしました。 自分が購入した W04N-PKU2 は 1.04 のファームが入っています。
W04N-X はリリースバージョンが 1.04 で今は 1.11 です。
W04N-PKU2 用のファームは一覧に無いです。

放置されてないか心配。(´Д`;)

2008年03月30日(日)

PHP extension のお勉強 (9)

Flash の SWF ファイルから JPEG 画像データを吸い出してみました。
class の使える言語に慣れすぎたせいで、 C 言語で is a を表現するのが少し面倒…

メモリリーク:

メモリリークのチェックコードを入れました。
#define calloc(n,s)  calloc_debug(n,s,__FILE__,__LINE__)
#define malloc(s)    malloc_debug(s,__FILE__,__LINE__)
#define free(p)      free_debug(p,__FILE__,__LINE__)
#define realloc(p,s) realloc_debug(p,s,__FILE__,__LINE__)
これで、free し忘れを一箇所発見。
% php yoya_test.php > /dev/null
XXX (/home/yoya/src/php/php-5.1.6/ext/swfed/swf_tag_jpeg.c, 20)

テストコード:

$swfdata = file_get_contents("saitama.swf");
$obj = new SWFEditor();
$obj->input($swfdata);
echo $obj->getJpegData(1);

結果:

プログラム:

課題:

  • 画像入れ替え実装
  • メモリリークの洗い出し
  • CWF 対応 (zlib を使う)

追記 (2009/11/10):

CWS で検索してこられた方を見つけたので

SWFファイルフォーマットとライセンス(その2)

flash.swf.tools.SwfPrinter#main()になります。なんか、
swfのリバースエンジニアリング大歓迎っていう感じのツールですね(笑)
空気読みまくりな Adobe が大好き。それでは遠慮なく(ry

第13回 Webページで読みやすいテキストとは

読みやすさの研究が足りない自分に反省。(・ω・)

なんでダメなデザインが売れるんだ????

コメントのこの一言が全てを物語っているかも。
量で感情揺さぶるのが先か。
この辺を中途半端に理解して目立つだけの手抜きに走られても困りますけどね。

[JS]アクセシブルな円・棒・折れ線グラフとスライダーのスクリプト

今更ですが、これ見て JavaScript 勉強しようと思いました。

全キーに有機ELディスプレイ内蔵のキーボード近日発売

予価は各249,800円。
うーん。ネタで買うにはキツいお値段…

2008年03月31日(月)

Flash SWF ファイル内 JPEG 画像入れ替えの PHP extension 完成

Flash SWF ファイル内の JPEG 画像入れ替え PHP extension が出来ました。
そのうち、JPEG 画像以外もいじろうと思うので、swfed (swf editor) の名前を つけてます。
メモリの使い方が怪しいので、Web アプリに組み込むには、 もっと叩かないとダメっぽいです。
extension の仕組みも勉強しないとですね…

使い方:

SWF に含まれる画像ファイルの jpeg_id を確認。
% php swfdump.php saitama.swf
magic=FWS  version=4  file_length=2704
frame_size=(0, 0)-(240, 240)
frame_rate=8.0  frame_count=40
tag=SetBackgroundColor(9)  length=3
tag=ShowFrame(1)  length=0
tag=JPEGTables(8)  length=0
tag=DefineBitsJPEG(6)  length=2133
        jpeg_id=1 jpeg_data_size=2131
tag=DefineShape(2)  length=51
<略>
tag=PlaceObject2(26)  length=7
tag=ShowFrame(1)  length=0
tag=End(0)  length=0
jpeg_id(今回は 1) の画像入れ替え実行。
$ php swfreplacejpegdata.php saitama.swf 1 aria.jpg > test.swf

結果:

プログラムとまとめ:

携帯 Flash のメインが 1.1 の今なら需要がありそうですけど、 何方かプログラムを晒すのにお勧めの場所、存じませんか?

課題:

  • メモリリークの洗い出し
  • php 5.2.x で試してみる
  • CWF 対応 (zlib を使う)
  • DefineBitsJPEG2,3 対応

あの「うまいトリ肉」は作れるらしい

今度、やってみよう。

これで、10 日分だよ〜。

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