Happy Friday with クジラ飛行机さん

abdev Happy Friday with クジラ飛行机さん はコメントを受け付けていません

今週も開催されました。Happy Friday☆

おいらの会社では、毎週金曜日の夜は職場で立食会?のようなものが開かれるんですよ。ただ単に飲んで食べるだけではなく(まぁ、そういう時もありますが…)、旬の技術話題に関する発表を誰かがすることになってるんです。

てなことで今週は珍しく「なでしこ」「葵」開発者の酒徳さん(クジラ飛行机さん)においでいただきました。そこでは旬の話題でもあり、酒徳さん得意分野のFlash Flexについての勉強会を開催してもらったんです。

内容は、Flexの簡単な説明から入り、簡単な構文の紹介やXMLとの連携の手軽さ、豊富なコンポーネントをポイポイ使う場面など、盛り沢山でした。いつものことながら、酒徳さんプレゼンは分かりやすくて良いです。参加者ほぼ全員、Flexの魅力に取り付かれていました。質疑応答でも多くの質問が飛び交い、最近のHappy Fridayの中ではかなり有意義な時間になったと思います。

酒徳さん、ありがとうございました~☆
またそのうち飲みにでもいきましょう!

http://aoi-project.com/pblog/article.php?id=44
(’くじらはんどぶろぐ’ にプレゼン資料が置かれています)

boost::serializationでリンカ開発

abdev boost::serializationでリンカ開発 はコメントを受け付けていません

AB5の最新リビジョンで静的リンクライブラリの生成及び静的リンクが可能になりました。今朝、それをコミットしたところ。久々のコミットです。

ここ一ヵ月半くらい、静的リンクライブラリの実装に伴う大規模なリファクタリング作業が発生していたため、外部へのコミットができずにいました。何かアウトプットが出せずに作業だけが次々と発生する。これはマジつらいです。自分は何か外に排出していかないといてもたってもいられない性格なので前みたいにコマメなアウトプットを心がけたいもんです。

と、ここらで本題、、、

EXE/DLL/LIBなどのファイルを作るうえで大変なことの一つに、データをストレージする際のフォーマットを熟知していなければならない点があります。EXEファイルを生成した場合は、WindowsのPE/COFFフォーマットに沿ってデータを格納しなければ動いてくれないため、その辺りはハードコーディングになりがちです。

また、静的リンクライブラリというと、単なるコンパイル済みの断片的なネイティブコードではなく、下記のようなデータを管理し、適切なタイミングで結合してやる必要があります。

– クラス情報
– アクセシビリティ情報
– メソッド情報
– メンバ情報
– 継承関係

– グローバル変数・定数
– グローバル関数
– ネイティブコードとソースファイル行番号との対応関係
– 名前空間情報
…etc

上記は必要なメタ情報のごくごく一部。これらのデータ構造を定義するcppヘッダファイルだけで数千行はいってます。

で、問題なのはこういう大きめなデータ構造を依存関係を保持しながらファイルにストレージしたり、読み込んだり、はたまた結合したりする処理をどうするかといったところ。Read/Writeをハードコーディングするのは骨の折れる作業です。

そこで大活躍したのがboost::serialization。オブジェクトを依存関係を保持したまま、ゴソッとストレージしてくれるライブラリです。

http://www.boost.org/libs/serialization/doc/index.html

データ形式としては、XML、テキスト、バイナリがあります。XMLは読み書きに時間を要するため、テキスト・バイナリをチョイス。ABが生成する静的リンクライブラリはboost::serializationによって生成されるオブジェクトフォーマットになっているんです。

週末はがんばってブログもう一本書きたいな~書けるかな~

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS ログイン