Jul 05
(準)定例のCCHC活動。写真も何度も撮ってるので、今回はレンズを変えて50mmマクロで勝負。
下りの途中でウサギに遭遇した。少しづつ近づきながら撮ったが、3枚目くらいが限界。フォーサーズの50mmなのでそれなりに望遠効果もあるのだが、離れたところ(7-8m?)から小さい被写体をアップで撮るのはさすがに無理か。
で、いつものCafe Borroneでbrunch。これも50mmマクロで。もともとご飯撮影用にと思って買ったレンズなんだけど、単焦点なのでいま一つ使い勝手が悪く、あまり活用できていない。
ところで、最近Italian Sausageのサイズが短くなっているような気がする。たとえば2008年3月の写真を見ると、一本まるまる提供されているのに対し、今日のは途中で切られている。たしか前回もそんな感じだったような…。実質値上げ?
Jul 04
Independence Day。Scanner家のBBQにお招きいただいた。
関係ないけど、7月4日って”4th of July”と表現する人が多いような気がする。普通はJuly 4thのように”month day(-th)”式の表現の方をよく聞く気がするんだけど、これは単に自分が聞き慣れてないだけで”day-th of month”方式も日付を表すのに普通に使われる表現なのか、7月4日が特別だからちょっと特別な言い回しをするのか、どっちなんだろう。
という話はどうでもよく、BBQ。アメリカの国技とも言われる(勝手に言っている)だけあって、この辺の人達は実にBBQ好きだ。
More… »
Jul 02
San Mateoの火鍋(hot pot)屋Little Sheepを再訪。前回は野菜盛り合わせがいまひとつだった(assortedというわりにあまりvariationなし)ので、今回は野菜はアラカルトで。たんぱく質系も、肉団子やbeefを混ぜたりして多少工夫した。
More… »
Jun 26
某氏を接待dinnerにご案内。”American”(ただし非巨大肉)なものというリクエストだったので、無難そうなMike’s Cafe(in Menlo Park)へ。
Appetizer: (居酒屋風にいうと)カマンベールチーズのかりかり揚げ。「shareしたいんだけど、どう?」と聞いたら「ばっちり」と言われたのでorderしてみたが、見ての通り結構shareしにくい形状だった…
Scampiガーリックソースと野菜とご飯。ホワイトバランス調整しなかったらちょっと黄色くなってしまった。
Jun 22
BIND 10 design meeting中のご飯を一挙掲載。
More… »
Jun 18
一つ前のエントリの続き。gccの_Unwind_Backtrace()
には、フレームポインタなしでコンパイルされたコードに対しても動くという特長がある。はじめは、最初のフレームのときだけbuiltin関数に頼った後はレジスタの値を復元しながら巻き戻していくのでそういうこともできて当然、くらいに思っていたのだが、調べてみたらかなりtrickyだということが判明した: (少なくともFreeBSD/i386の場合)フレームポインタなしでコンパイルすると、gccは各フレームにおけるスタックの伸縮状況を細かく記録するFDEを作る。_Unwind_Backtrace()
で巻き戻すときは、レジスタの状況にはほとんど頼らず、一つ前のフレームにおけるスタックの開始位置から、FDEに記録されている現在のフレームのスタックのサイズ分を差し引いて、直接現在フレームのスタックの位置を計算している。
単に_Unwind_Backtrace()
を使うだけなら、こんなことまで知ってる必要はまったくないのだが、せっかく時間をかけて調べたのでこれもメモとして残しておくことにする。
More… »
Jun 14
ふと思い立ち、gccの秘密(?)関数_Unwind_Backtrace()
を使って実行途中プロセスのbacktraceを取ってみようとしたら、驚くほど動かず、延々と調査するはめに。結局わかったことは以下:
- C++のコードの中から使った場合は(試した範囲内では)いつでも動く
- Cのコードから使った場合、x86_64(amd64)やIA64では動くが、x86(32ビット)とかsparcでは動かない。また、これらはOSにも依存しない
- Cの場合で、x86_64とx86の違いは、ELFの.eh_frame section内に実行コードのframeに関するcall frame information(CFI)が含まれているかどうか。含まれていれば動くが、そうでなければ動かない。
- x86におけるC++とCの差もELFの.eh_frame sectionの中身の違い
- .eh_frame sectionに必要な情報がなくても、.debug_frame sectionに実行コードのCFIが含まれていれば、それをちょっといじって
__register_frame()
(さらに秘密な関数?)で登録すれば動くようになる
- IA64の場合は上記とは別な扱いになっている模様。CでもC++でも、そもそも.eh_frame sectionが存在しないが
_Unwind_Backtrace()
はちゃんと動く
Cで動かすためのテストコードも公開しているので、万一このページを読んだ方がいらっしゃいましたら、(とくにi386やsparc以外で)動いたとか動かなかったとかご報告いただければ幸いです。
以下はとっても長い詳細。
More… »
Jun 11
出張でSan Franciscoに来ている某氏らと晩飯。
最近、誰かが出張に来るというついでに外食というパターンが結構多いような気がする(だからどうということもないが)。
South Bay住民との位置バランスを考慮して某氏には Millbrae まで出てきてもらい、肉希望の某氏のリクエストにより、BelmontのThe Van’sへ。
More… »
Jun 05
某氏から更新頻度が低いと怒られ、swine fluの疑いまでかけられてしまったので、次回帰国時に別室送りにならないよう、たまった写真を一部公開して潔白を証明することにする。
More… »
May 26
某氏との密談のため、久々の新規店開拓。
Buca Di Beppo
643 Emerson Street, Palo Alto, CA 94301
650-329-0665
More… »
Recent Comments