« 2005年11月 | メイン | 2006年01月 »

2005年12月23日

オブLOVE夜会第2弾「イマドキのJavaScript」に飛び込み参加

dotさんのお誘いにより、オブLOVE夜会第2弾「イマドキのJavaScript」に飛び入り参加してきました。
セッションの中でAjaxとかWeb2.0っていうキーワードが頻繁に出てきていたので、最後の10分をいただいて「Web2.0時代のJavaScriptセキュリティ」というネタで乱入ライトニングトーク。突然失礼しました。内容はというと、第4回セキュリティもみじで発表したネタの使い回しで、ゴルゴ13の薀蓄についてしゃべってきました。(謎)

→このことについてあとで書く

http://d.hatena.ne.jp/nskj77/20051222#1135268297

オブジェクト倶楽部の催しには始めて参加したのですが、今回はid:secondlife現在無職のgorouさんに謎の俺様JavaScriptフレームワークGiza(inspired by しょこたん)について聞くことができて大変興味深かったです。ギザテラスゴス(w

その後の懇親会ではppencodeネタも含めていろんな方とお話できて楽しかったです。
参加された皆さん、お疲れ様でした&ありがとうございました。

2005年12月20日

2005年度下期IPA未踏ソフトウェア創造事業 公募結果

2005年度下期IPA未踏ソフトウェア創造事業の採択プロジェクト一覧が公開された模様です。

採択プロジェクト一覧

個人的に関心を持っているプロジェクトをいくつか。

ターミナルエミュレータを軸とした統合環境の開発(岡嶋大介さん)

既存のタブ式GUI・SSH2対応のオープンソースのWindows用ターミナルエミュレータ「Poderosa」(ポデローサ)の改良というテーマであるが、興味を持ってくれそうなPMにあわせてプレゼンする効果があったのか無事採択されたようです。普段お世話になっているTeraTermの平田豊さんも開発に参加されるとの事で期待age。

WEB開発に特化したプログラミング開発環境「葵(あおい)」の開発

日本語プログラミング言語「なでしこ」の開発を継続する形で、ロードマップが提示されている。
http://nadesi.com/about/loadmap200512.htm

開発者の酒徳さんにはウノウ勉強会のときに一度お会いしたことがあるのですが、すごく人徳のある方で、個人的に応援したくなります。
・打倒PHP!
・JavaScript(Ajax)/Flashの生成機能
・手軽に作るWEB2.0!
とか、 なかなかキャッチーな開発目標が掲げられています。:-)

Preccs:実用的な通信プロトコルコンパイラ(服部健太さん)

Preccsは、前回の未踏でも採択されたプロトコルスタックを簡単に構築できるメタ言語で、引き続き改良が行われる模様。
手続き言語でできるだけ書かないようにするというアプローチは賛成である。
Perl6の実装が困難だったのは、言語仕様がまだ決まってもいないのに、それを手続き言語で表現しようとしたことだ。それを打開したのが非手続き言語であるHaskellを使って実装したPugsである。更なる性能向上を期待したい。

で、 「どの辺が未踏ですか?」に対する大人の対応という記事が興味深い。

未踏ソフトウェアともなると、「それのどこが未踏なんですか?」という辛辣な疑問や批判がでます。 「未踏なソフトウェアがそんな簡単に生まれるわけでは無い」、と開き直りたくもなります。が、そこはそれ、大人の対応というものがあるようです。

・(既存のモノは)遅いので新しいモノを作ります、という論理
・(既存のモノは)複雑すぎるのでシンプルな新しいモノを作ります、という論理
・(既存のモノと違って)XMLを使って拡張可能にします、という論理
・(既存のモノでは)できないので新しいモノを作ります、という論理
・(既存のモノは使いにくいので)ユーザビリティで差別化します、という論理
・(既存のモノは)恰好悪いので新しいモノを作ります、という論理

これから新しいソフトウェアを作ろうとする人は堂々と自己主張しましょう。

2005年12月16日

Yet Another Perl Conference Asia 2006 Tokyo

YAPC::Asia 2006 Tokyo を開催します (in English)

日時: 2006/03/29-30 (Wed-Thu) 10:00-19:00 (予定)
会場: 大田区産業プラザ (PiO)
料金: 3000円 (T シャツ込み・予定)
主催: Shibuya Perl Mongers

YAPC とは Yet Another Perl Conference の略で、あの Lightning Talks 発祥のイベントでもあります。本家のPerl Conferenceと違って参加費もTシャツ込みで3,000円と激安となってますので、興味のある方はぜひご参加ください。世界のPerlハッカー達に向けてプレゼンしてみようっていう方も随時募集中。

今回は縁あって私もイベント運営のお手伝いをしています。会場手配ではwakatonoさんに多大なるご協力をいただきました。この場を借りてお礼申し上げます。

来年の3月はこのイベントのためにあのオートリジャスも来日するとかしないとか。

今からとっても楽しみです!

2005年12月15日

ライブドア次世代テクノロジーセミナー第1弾

六本木ヒルズで開催されたライブドア次世代テクノロジーセミナーに、会社の同僚の秋元さんと一緒に行って来ました。

livedoor_seminar.jpg

当社は長い受託ビジネスやWEB開発から蓄積した、膨大な経験と実績を使い、現在UU14,336千人、月間約22億PVというポータルサイト 「livedoor」を構築するまでになりました。そこには飽くなきローコストへの挑戦と、多くの優秀なエンジニア、更には膨大なインフラを支えるネットワークエンジニアによる日々の汗と苦労の結晶です。今回は、それらの技術面及びインフラ面のノウハウの一端を、皆様の成功の鍵にしていただきたく紹介をさせていただきます。

定員50名の募集に対して、告知後数時間で150名超の申し込みがあった
いわば選ばれた者だけが参加できた貴重なセミナーでした。

■参加者のレポート

[システム運用] ライブドア 次世代テクノロジーセミナー
http://pmakino.jp/tdiary/20051213.html#p01

ライブドアの次世代テクノロジーセミナーに行ってきた
http://d.hatena.ne.jp/a666666/20051214

てくのーと2.0 : 六本木ヒルズ初上陸
http://blog.kan.vc/1134571006.html

どこまで公開してよいかわからないけど、当日の個人のメモを公開してみます。
(一部やばそうな内容は削除しています)

■第1部「ポータルサイト<livedoor>の裏側」
 ネットワーク事業部 執行役員 伊勢 幸一

ライブドア、AMD Opteronプロセッサの採用を発表(後日追記)
http://www.amd.com/jp-ja/Corporate/VirtualPressRoom/0,,51_104_543~103315,00.html

AMD 64bit CPU
シャーシから独自設計
1Uの1/3 後ろから前から
1ラック60台まで搭載可能 3kVA(すごい!)

保守性を高めるためにディスクレス

ストレージの仮想化
 ヘテロジニアスストレージシステム
 iSCSIクラスター

トランジットとIXのハイブリッドアップリンク
 BGP4によるTEには限界がある
 根本的な解決は?

配信と同時にリアルタイムに圧縮できない?
 ポータルだけで4000台以上
 JPEG,GIFには効果なし

自力でデータ圧縮することに

URL、サフィックス単位で圧縮ナビゲーション
 Squidに圧縮ゲートウェイを入れちまえ

これってCDMの仕組みと一緒ジャン
 Bind/Tenbin改造してCDMナビゲータ

まとめ: レイヤー0から頑張ってますよ。


■第2部「コストパフォーマンス抜群のWEBアプリケーション構築」
 ネットサービス事業部 テクニカルディレクター 谷口 公一

ライブドアってそんなオープンソース使ってたの?
 OS は主に FreeBSD 4.11 (1割程度は TurboLinux)
 Web Server は主に Apache 1.3.x (mod_perl)
 RDBMS は MySQL 4.0系 (95%以上)
 開発言語は主に Perl 5.8系
  延べ13人の CPAN Author を輩出しています
  現役 3人 (汗)

株式会社オン・ザ・エッジ
 受託Webサイト構築が主軸事業(対法人向け)
業務から生まれたオープンソースProject
 Sledge (http://sl.edge.jp)
 GPL or Artisticライセンス
開発効率の向上(人的コストの削減・より働けるようになった)

ポータルサイト livedoor の誕生 (2003年11月)
 ポータルサイトは後発不利
 当初は泣かず飛ばず

アクセス大杉
まさに
想定外

トラフィックとスケール
Apache/mod_perl
 適切なチューニングとスケール化でここがボトルネックになるケースは稀
MySQL
 Masterのパフォーマンス劣化は免れない

コスト無視の施策
・商用RDBMSの採用
  お金さえあれば何でも買えますから

商用RDBMSについて改めて考える
・メリット
 高い信頼性、高い安定性、豊富なストレージ
・デメリット
 割高なコスト(ハード、ソフト、サポート)
 運用ノウハウの不足
 本当に満足のいくサポートが受けられるか
 「アジャイル開発」には不向き

Webアプリケーションとコスト
・結局、悩まされ続けたのは「DBへの負荷と障害」

ハイエンド機1発+商用RDBMSより
IA機数機+MySQLの構成

MySQL Cluster? 信頼できる実績がまだ見えない
アプリケーションレベルでの付加分散・冗長化

livedoor DBCluster (仮)
livedoor Blog, livedoor FrePa にて実装
cluster化によって障害発生時の影響範囲を最小限に抑えられる
cluster化しないデータとするデータ
Class::DBI like な cluster 用 O/R mapper
memcached との併用

→2005年の成果?

ライブドアの今後の開発スタイルは…
・Web 2.0!
 ・Ajax!
 ・Webサービス!
・Sledge 2.0
 ・現行版の不満点を解消
  ・12 Things I dislike with Sledge
  ・Sledge で気になるとこ
 ・Catalyst や Rails のおいしいとこ
 ・mod_perl 2 対応
 ・下位互換はどうしようかなと・・・

はてなキーワード「ライブドア入りたい!」はまだ健在。


■第3部「大規模システムを構築する秘訣」 →「Inside livedoor Blog's Backend」
 ネットサービス事業部 テクニカルマネージャー 池邉 智洋

・ユーザ数100万人を超えるブログサービス
・アクティブユーザ数は27万人程度(月間)

TurboLinux 10/FreeBSD
Apache 1.3.x
Sledge on mod_perl
Squid
memcached
pure-ftpd

Appサーバ約120台
WWWサーバ約150台
DBサーバ約250台
その他サーバ約20台(バッチ)
NASサーバ

2003/11~ サービススタート
1台構成
開発期間は2週間程度で最小限の機能
ユーザ向けページ/管理ページはVirtualHost
MySQLも同一サーバで稼動
→現在からは課投げられない構成

2004/02 複数台構成
機能毎にサーバを分割
管理ページ
ユーザのブログページ
RDBMS(MySQL)

2004/05 MySQLレプリケーション
・単純なPVの増加にはサーバの追加を行なうことで対応
・管理ページの使用頻度の増加によるMySQL I/Oの増加
・Read/Writeの分割による負荷分散

2004/08 商用DBの導入
・某商用DBを導入する
・SQLの方言に対応するための書き直し
・静的データへのアクセスもボトルネック化
・記事データの配置を変更することで対応
 → mod_rewrite
・画像データをSquidでキャッシュ

2004/10 memcachedの導入
・商用DBで思ったようなパフォーマンスが出ない
・調べてみると記事データ(lob)のI/Oがボトルネック
・メモリ>>>>>>ディスク
・一度取得した記事データをメモリにキャッシュ

2005/06 BlogNGプロジェクト
半年程の安定運用の後・・・
商用DBは運用、機能追加が面倒
ビジネスのスピードアップが必要
再度 MySQL を採用する
アプリケーションサーバだけ追加してもパフォーマンスはあがらない
マシンさえ用意すればスケールする構成に

大規模環境でのMySQLの利用
・Blog毎に記事、コメント、トラックバックを保存するDBを変更
・あるデータがどのDBに保存されているかを指し示すテーブルを用意する
・各セット毎に Master-Slave構成
・テーブルタイプは
 InnoDB(更新系)、MyISAM(カテゴリ、ユーザなどSELECT重視)混在
・mod_perlから持続的接続はしない
 TCP接続は速いのでリクエスト毎に切断した方が効率が良い
Class::DBIでちょっとハック

MySQLへの移行
・移行プログラムを用意して順番に処理
・商用DBからSELECTしてMySQLに分散させながらINSERT
・データの再書き出しを含め予想以上に時間がかかる

ホスト名を分割しての運用
・用途毎にホスト名を分けて運用する
・障害発生時の切り分けが用意に
・サーバ追加のプランを迅速に立てる
・バックアップ用にMySQLのスレーブ

→質疑応答でいろいろ

■最後に記念撮影

livedoor_takesako.jpg

その後の飲み会ではいろいろな方とお話しできて楽しかったです。

第2弾はid:naoyaさんが講演される予定だとか。次回も期待してます。

2005年12月13日

IT技術業界の重言(じゅうげん)

サイボウズ開発部別室のドキュメントチーム紹介記事

この「あらかじめ」と「予告」の「予」は、同じ意味を持っています。「あらかじめ予告」などといった間違った日本語はドキュメントやマニュアルを扱う者にとっては言語道断です。

おおっと、これは手厳しい…。(^^;
私も普段気付かずに使っている表現が結構多いかも。話し言葉では意味を通じやすくするためにわざと意味を重ねて言うことが多いんですよねー。こういう意味の重なる言葉を冗長に繰り返すことを重言(じゅうげん)と呼ぶらしいです。日本語って難しいですね。

脱線ついでに、今まで私の見かけた重言をいくつか紹介したいと思います。

■ 筋肉痛が痛い

たぶん「筋肉痛で足が痛い」とか言いたいのだと思うのですが、類似するものとして「頭痛が痛い」「腹痛が痛い」などがあります。この表現を許してしまうと「骨折が折れた」なんて言い出す人が出てきて大変危険です!

■ HTTPプロトコル

HTTP は HyperText Transfer Protocol の意味なので、HTTPプロトコルという表現だとプロトコル・プロトコルになっちゃいます。FTPプロトコル、SMTPプロトコルとかも同罪です。ここは「プロトコルはHTTPで」と言っておくのが無難でしょう。

■ HDDドライブ

HDD は Hard Disk Drive ですから、先の例と同じくドライブ・ドライブになってしまいます。単に「HDD」「ハードディスクドライブ」と表現するのが良いでしょう。

■ HTML言語

HTML は HyperText Markup Language ですから、意味としては言語・言語になっちゃいます。
単にHTMLと言い切りましょう。

■ エレメント要素

XMLのイタイ解説記事でたまに見かける表現。エレメント=要素のことですから!

■ 受注を受ける

この表現は結構見かけます。「注文を受ける」とか「受注した」と言うのが正解かな。

■ 各サーバごとに

「各~ごと」っていう表現は冗長という指摘が。自分自身良く使っている表現かも。(汗
言い換えると「それぞれのサーバに」とか「各サーバに」とかですかね。

■ IT技術

っていうのも重言ですよね?
IT技術業界っていうのは違和感ありありです。
このブログの記事のタイトルも不自然です。:-)

■ XMLの閉じタグ?

閉じタグって冗長ですよね。これって重言じゃないですか?

私はなぜXMLを愛していないか ~ 言語屋の視点から
http://www.rubyist.net/~matz/20050113.html#p01

XMLウォッチ: XML用の代替構文を調査する
http://www-06.ibm.com/jp/developerworks/xml/030117/j_x-syntax.html

→ XMLステ。YAML、JSON 万歳!(と言ってみるテスト)

2005年12月03日

Binary2.0カンファレンス2005に行ってきました。

ふと自分の過去を振り返ってみると、人生で一番最初に触ったPCは富士通の「FM-TOWNS」というi386(16MHz)のマシンで、学生時代にx86のハンドアセンブルやコードチューニングにハマッていた時期がありました。そんな私にとってBinary 2.0カンファレンス2005はとても楽しめる内容でした。期待以上に楽しかったです。簡単にカンファレスの概要と感想をレポートします。

追記:まとめのページができたようです。


■ 1. Binary 2.0 時代の到来 - 高林哲

binary1keynote.jpg

satoru先生による基調講演。なぜ今さらバイナリなのか?

「Binary2.0は高度なWeb2.0サービスの構築に必要不可欠な技術」というのは表向きの説明で・・・
実は「Web2.0についていけない」のが本音。(w
今のうちに新しいバズワードを提唱して「既得権益を確保」しておこうという狙い。
つかみはOK。会場大爆笑の渦でした。

[発表資料]


■ 2. プログラムはなぜ Mona OS で動くか?fork?何それ? - ひげぽんさん

binary2mona.jpg

Mona OS とは?

2ch生まれのオープンソースOSで、カーネルはC++で書かれている。
ソースコードも5万行で、他OSよりも圧倒的に短い。オブジェクト指向万歳。
中身はマイクロカーネルっぽくって、バッファオーバーフローありありのノーガードOS。w

ユーザモードで各種サーバ(プロセスサーバ・PE or ELFサーバ・ファイルサーバ)が動作。
ユーザモードでできることはユーザモードで実装し、割り込みまでメッセージベースでやりとりしている。
Hello Worldでも一苦労、OSの中のひとは大変・・・という内容でした。

[発表資料]

Binary2.0 のはてなリングもあるので、興味のある方は是非参加してみてくださいとのこと。


■ 3. Dynamic Programming Language C -- 私は誰? - 浜地慎一郎さん

binary3shinh.jpg

SDLプレゼンテーションシステム(SPS)によるプレゼン。

嫌いなもの
- 似たコードの連続

解決方法
- スクリプトでコード生成
 ダサいよね
 生成してからコードを再編集するとイヤなことに
- C/C++のマクロ
 CppUnitとか
 少しマシになっただけ
そうだリフレクションだ
でもCには・・・リフレクションがない
 Javaを使う→(自分にとっては)論外www

道のり

* which $0
 私は誰?
 実行しているEXEを取得
 環境依存、#ifdefの嵐、バッドノウハウの山
 ライブラリ化したい(グッドラッパーを目指す)

* ldd
 ロードされているDLLを取得

* nm
 オブジェクトファイルを見てシンボルを取ってくる
 080xxxxxxx T bfd_make_readable とか

* libbfdで関数アドレスを取得
 GNU binutilsのライブラリ
 オブジェクトファイルを読み書きできる
 多数の対応フォーマット

* c++filt
 C++のシンボルは読めない
 デマングル(w

* 取得した関数のcall
 関数のシグネチャが決まっていれば簡単
 わかっていない場合
 - libffi
  GCJで利用されている
  動的ディスパッチが可能
 - ffall
  GNUStepで利用されている

JavaやRubyなどと比較すると・・・
 可搬性にやや難
 わかりにくいエラーメッセージ(w
 言語に統合されていない
 構造体メンバが見れない

いいところ
 楽しい!

[活用事例]

しー言語(言語というよりかバッチに近い)
#!./she
puts "hello world!"
!load "m"
dx = cos 3.2
printf "%f" dx

Dynamic Test Runner
 .o ファイルをロード・再配置
 内部の dtr_test を含む関数をかたっぱしから実行

Ruby/C++ Ruby/D ちょっと作ってみた
 RubyからC++のクラスを直に、SWIGは面倒
 Objective-C++、Java & Groovy みたいに
 バインディング不要

[言いたかったこと]

コピペでコード書きたくない!(笑)

[発表資料]


■ 4. G-Inspector -- GTK+ ランタイムインスペクション - 青笹茂さん(順番入れ替え)

binary4ginspector.jpg

GTK+はメジャーな言語をサポート
 Ada、Eiffel、Haskell、SmallTalkって・・・(テラワロス

typedef、マクロ、データ構造、リスト、
バイナリツリー、イテレータ、
イベントループ、フレームワーク、抽象化したI/O

GObject
- GTK+の肝
- C言語でオブジェクト指向するためのフレームワーク

ここに実行バイナリがあります
 stripされてる
 ソースもない
そこで G-Inspector の登場!
- editresみたいなもの
- オブジェクト一覧
- 実行中にプロパティを変更
- ウィジェットツリーをシリアライズ(XMLとか)
- メモリ領域をダンプ

* ついでに GNU Autotools のクイックツアー

Autoconf/Automake/Libtool/pkg-config

個人的にはバッドなノウハウがとても一杯の感覚が抜けないんだけど、最近は

configure.ac
Makefile.am
{name}.pc

の3つのファイルを書くだけでいけるようになったらしい。
pkg-config は知らなかったので今度から使ってみよう。


■ 5. g++と例外キャッチボール - 中村孝史さん(順番入れ替え)

binary5dwrf2.jpg

スーツ族?クールビズです 地球にやさしいwoです

g++の例外処理を解明します
でも、キャッチボールはできません(www

gccで一番良く使うオプションは -S です(w

例外処理は何でできてる?
 unwind - 超return
 type_info - do_catch()メソッド

名前 mangling ルールを覚えて extern
(大爆笑

unwind-SjLj
unwind-dwarf2

DWRF2 デバッグ情報フォーマット
 いくつかのレジスタ
 オフセット、状態、CFA、リターンアドレス
 オフセット計算アドレス
 命令セット
→ 実はプログラミング言語?

余談:makefileでクイックソートとかも(すげー)

[発表資料]


■ 6. 実行時自己書き換え佳境 - 首藤一幸さん

binary6corewars.jpg

Core Wars知ってますか?(私ははじめて知りました)

マルチスレッドなプログラム
 実行の流れ(スレッド)が複数あって、メモリ空間を共有する。
 これってリアル Core Wars ですか?

なんで自己書き換えなんかするの?
- HotSpot VM (SunのJava仮想マシン)
 アプリのスレッドを任意の箇所で停止させるために、
 ソフトウェア割り込み命令を上書きする。
 後で元のコードを書き戻す。
 ガベージコレクションやOn-stack replacementが目的。
- IBMのJava仮想マシン (by IBM東京基礎研)
 バッドなノウハウ満載
- shuJIT (x86用 Java JITコンパイラ)
 クラスの初期化
 インスタンス生成時の諸チェック
 Interface実行時のチェック・・・

Core Wars のテクニックを利用して:
   nop
   nop
   初回実行時のみの処理
   nop を jump done に書き換え
done:

x86でプログラムカウンタを読む小技

他のスレッドを妨害しないために
Atomicに書き換える
 x86だとXCHG命令など
ロック
 モニタ、セマフォ
 一時停止

 EB FE をアトミックに書き込む
 他のスレッドはループして待機

[発表資料]


■ 7. ハードコアバイナリアンへの道 - 八重樫剛史さん

binary7hardcore.jpg

[下には下がいる]

ユーザランド C/C++/Java/Perl/...
カーネル Assenmbly/C/C++
--------------------------------
ハードウェア VHDL/VerilogHDL
半導体プロセス ???

ゲート、プリップフロップ
バイナリを生で扱う
I/O(実世界)と直接つながっている

ハードウェア記述言語(HDL)で回路を書く

実際にFPGAボードのVGA出力でプレゼンテーション。
しかも世界初のリモートGDBプレゼン(テラスゴス
→ これにはぶったまげました。ハードコアバイナリアン第一号に認定します。w

[発表資料]


■ 8. ライトニングトーク

binary8lightningtalk.jpg

ここから一人5分間の怒涛の Lightning Talk が開始(時間厳守です)


■ 8-1. Binareal - バイナリファイルの構造と解釈 - 大和正武さん

binary81binareal.jpg

Etherealにインスパイアされて開発を始めたBinarealの紹介
構造改革前と後(うまいなぁ)
バイナリデータを可視化するためのツール


■ 8-2. いけないお化粧magic(5) - 野首貴嗣 5分

binary82magic.jpg

Flashでプレゼン
magicでファイル判定
 M$ Office と OpenOffice.org
 Namazu と Sary(一部自虐ネタ)
トリビアの紹介などなど
期待以上の内容でとても面白かったです。w

[発表資料]


■ 8-3. livepatch - 概念と技法 - 鵜飼文敏さん

binary83livepatch.jpg

実行中のプロセスにパッチをあてる(CGLの要求仕様のひとつ)
- Pannusプロジェクト
- livepatch

ptrace(2) - 黒魔術のシステムコール
MDFライブラリ

[発表資料]


■ 8-4. 斜め下を行くバイナリ書き換えの探求 - 後藤正徳さん

binary84binedit.jpg

Linuxに数行のスペシャルパッチを適用すると・・・
実行時バイナリをバイナリエディタで直接書き換えが可能に!w
アイデア勝負ですね。

[発表資料]


■ 8-5. Cache Pollution Aware Patch - よしおかひろたかさん

binary85cache.jpg

Miracle Linux の中のひと。

CPUの速度向上(+50%/年)
メモリの速度向上(+7%/年)

L1 < L2 < メモリ

ユーザ空間からのコピー
copy_from_user_ll()
をチューニングすると早くなる

カーネル読書会やってます

[発表資料]


■ 8-6. Inside QEMU - BEROさん

binary86qemu.jpg

QEMU
 複数のターゲット、ホストに対応したエミュレータ
Cによる移植性の高いJITコンパイルをどうやって実現しているか?
 TARGET CPUの命令をC言語の関数で実装したものをコンパイル&リンク
→惜しくも時間切れ・・・

[発表資料]


■ 8-7. GNP --- 'g' Network Protocol-Stack (for Boot Loader) - g新部裕さん

binary87gnp.jpg

m32r-g00ffに実装したプロトコルスタックの話のはずだったけど・・・
Binary 2.0カンファレンスのドレスコードは「ブラックandホワイト」だったらしい(w
しかもバイナリアンだったら指折りは2進法で数を数えますよね?って(www


次回は「Binary 2.0 カンファレンス MaxHeart」と改名して、ドレスコードは「ブラックandホワイト」に新しく「ピンク」を加えてみましょう。:-)


それでは、みなさん、Happy hacking!