近所のジョーシンに寄ったらシムシティDS2が出ていたので買いました。
前作のシムシティDSは色々ひどすぎだったので、今作で改善されていると良いのですが…。
同期が日本酒を買ってきてくれたので、寮の食堂に4人くらいで集まってちびちびやってました。
しばらくしたら園芸の飲み会現場から電話がかかってきました。すごいテンションで騒いでいる様子がひしひしと伝わってきて、疎外感が満点でした。
広島旅行2日目です。昨日に引き続き写真メインでお届けします。まずは車でR2を西へ行き、宮島行きのフェリー乗り場へ。10分程度の船旅です。
記念碑が建っていました。日本三景とは松島、天橋立、厳島(宮島)のことです。同期に聞くまで知りませんでした。旅行の前に何も調べないことがバレバレです。
宮島といえば鹿です。宮島の鹿は観光客が持っている観光マップに味を占めているらしく、積極的に狙って来ます。同期が観光マップをちらつかせて誘導し、集合写真の一員に入れて遊んでました。
厳島神社(世界遺産だそうで)では結婚式を行っていて、外国人観光客が写真を撮りまくっていました。派手さはありませんが神前式も良いもんですね。
最後に鳥居(満潮時)を拝んでおきました。綺麗な青空と、綺麗な赤い鳥居と…素晴らしい組み合わせですが、携帯のカメラと自分の腕に限界を感じる一枚になりました。腕はどうしようもないので、せめてデジカメを持ってくれば良かったですねぇ。
良い天気なので呉に行く予定を変更して、弥山に登ることにしました。まずはロープウェーに行くべく、神社を出てもみじ谷へ。この山も厳島神社一帯って扱いで世界遺産のようです。
ロープウェーを登り切った後は、30分くらいハイキングコースを歩いて弥山の頂上へ。本堂があって、位置は中間より頂上寄りかな。消えずの霊火があります。
下りは別のコースを通りました。さほど違いは無いですが…。
もみじ谷に戻ってきて、再び厳島神社へ。
山に登って降りてしているあいだに、潮が引いて鳥居に近づけるようになります。水たまりに気をつけつつ、鳥居の足下まで近づきました。
焼き牡蠣や穴子を堪能しましたが、写真を撮り忘れてしまいました…。
その後、商店街をふらふらしていると謎のデカしゃもじを発見。説明を見ればここ宮島はしゃもじの発祥の地であり、しゃもじの形は琵琶に似せたものなのだとか書いてありました。ふーん…。
おみやげのもみじ饅頭を買って、宮島を後にしました。
帰りは広島を4時半出発というギリギリの時間でしたが、なんとかレンタカーの返却時間(大阪駅に午後10時)に間に合いました。セーフ。
会社の同期の人達と広島へ一泊二日の旅行に行きました。珍しくたくさん写真を撮ったので、写真メインでお届けします。
岡山県のSAに居た桃太郎像(顔が怖いよ…)
新幹線代を節約するため、レンタカーで5人一路広島へ。所要時間は5時間半でしたが、ほとんど高速に乗っているだけなので楽々です。ドライバーも二人で交代に運転できたのがありがたかったです。
広島に着いたのは午後の4時くらいでした。原爆ドームと平和記念資料館を見学しました。資料館は取り忘れましたが、非核、反戦の一色で染まっていました。
慰霊碑を通して原爆ドームを眺めることができます。後に巡った場所にも○○の間から△△を眺める、というスポットがありました。これが広島流か。
平和記念公園の東側にあった看板だけ、呪われそうな字体で書いてありました。内容もごく普通の案内板なのですが…。何か意味があるのだろうか。
札幌のワンマン市電(路面電車)と違って、広島の路面電車は複数両編成のとても立派な電車でした。広島スゲー。
晩は広島焼きを食べました。店員のおっちゃんが焼く様子を見ていましたが難しそう…。キャベツ満載なので量は意外と多いです。
その後は地ビールが飲める店に行って地ビールを注文しました。ビールの味は良くわかりませんが、見た目通りの素直な味だったと思います。
明日は宮島と呉に行く予定です。
以前、カードの有効期限が迫ってきたときに思ったこと。カードの有効期限が切れたら当然カードが使えなくなります。うちのカードの場合、期限が切れる一ヶ月前に送られてきました。
例えばカード有効期限が08年5月(GOOD THRUが05/08)だったら、今年の4月の頭か3月の終わりくらいに送られてくることになります。4月は引っ越しや異動のシーズンで、忙しくてつい住所変更を忘れていた、なんてことありません?私はそのくちです。
クレジットカードは多くの場合郵送されてきますが、これが意外と危険です。
郵便物は宛名の住所に住んでいる人であれば、誰だろうと渡してしまいます。ええ!そんな不用心な!?と言う無かれ。自分宛の郵便を家族が受け取れることと同じです。
一応、カードが入っている封筒には親展の表示(宛名の人物以外は開けないでくれ、という意志表示)はありますが、封筒なんて誰でも開けられますし。カードが古い住所に送られてそのまま誰かの手元へ…なんてことも起きるでしょう。
そういえば、古い住所に届いたカードが悪用された場合は、紛失や盗難と同じ扱いになるのでしょうか?ちょっと気になりますね。
思った通り足が痛いです。階段がきついなー。
部屋でロードモナークをぼちぼちとプレイしていました。残り5面の段階で前回の記録(5段)を越えて6段になりました。多分に攻略サイトのお陰なのでしょうが、自身も以前より多少はうまくなっているんだと信じたい。
同期に誘われて、会社の近くにある市民体育館で運動してきました。バスケットとバレーボールを選べましたが、バスケットには良い思い出が全くないのでバリボーを選択。
バレーボールと言っても、自分を含めてバリボーは初めてですって人が多数で全くゲームになってませんでした。ボールが来たぞーとにかくボールを返せー!って感じw
一日にこれほどジャンプすることはないので、明日辺りひどいことになっているでしょう。
Sena氏と近所のカレー屋に行きました。以前行ったら閉まってたんで、リベンジです。
普通のカツカレーでもいっぱいいっぱいでした。メニューにはもっと過激なものがいくつも書いてありました。カツが二つ載ってるダブルカツカレーなんて、もはや食える気がしない…。
いかにも学生向けって感じの量です。
3月らしからぬ寒い日が続いていましたが、日曜日くらいからやっと暖かくなってきました。
春の足音が聞こえます。そろそろ桜の季節、別れと出会いの季節ですね。
同期を送る(4月の人事異動で富山に行ってしまう)壮行会がありました。他の会社も同様だと思いますが、新人の異動は滅多にないです。ちょっと特殊な例だったのでしょう。
高槻駅から帰りのJRに乗ったら、神戸より西にいることになっていました。乗ったときは西明石行き(京都行きと逆方向)だったと思います。
垂水〜京都の間と、引き返してから京都〜高槻の間、ずっとこの表示だったことになります。もしかしたら2往復以上しているかもしれませんね。
同一車両の他の位置にあるディスプレイは正常でした。独立制御か、故障か。それとこの異常なディスプレイが車掌席に一番近い位置にあったのは、何かの皮肉なのでしょうか…。
最近実践している通勤電車での暇つぶし方法。Wikipediaで適当な単語を検索して、その記事からまた別の記事を辿り、また別の記事を…と次々に読みます。新たに発見した単語をさらにGoogle先生に聞いてみたりしていれば、退屈することなく時間が過ごせます。
今日も機関銃の項(Wikipedia)を見ていました。ガトリング砲とリボルバーの違い(砲身が多数本or一本)とか「バルカン」は商品名(※)というような豆知識など、色々な発見がありましたよ。
Wikipediaは鉄道、軍事オタが数多く生息しているようで、鉄道、軍事関連の記事が異常に充実しています。細かいところが気になるオタクの性なのか、どうでもいいところまで細々書いてあるのも特徴です。逆にその偏向っぷりが、広く浅くをモットーとする一般百科事典と違うWikipediaらしさなのだとも言えますな。
(※)商品名が一般名詞のように用いられる例は他の商品にも多く存在し、有名なところではホッチキス(ステープラー)やバンドエイド(救急絆創膏)があります。
以前、hdk神からLinuxカーネルは最適化を有効にしないとコンパイルできないという話を聞いたのですが、詳解Linuxカーネルをパラパラと読んでいたら理由が書いてありました。
この不思議な現象を生み出す原因はfix_to_virt関数にあります。どのアーキテクチャにもあると思います。ざっと確認した限りではmips, sh, x86_64, sparc, i386, umに同様の関数が定義されていました(ファイル名はasm/fixmap.h)。
例えばmipsのコードを見ると、以下のようになっています。
static inline unsigned long fix_to_virt(const unsigned int idx)
{
/*
* this branch gets completely eliminated after inlining,
* except when someone tries to use fixaddr indices in an
* illegal way. (such as mixing up address types or using
* out-of-range indices).
*
* If it doesn't get removed, the linker will complain
* loudly with a reasonably clear error message..
*/
if (idx >= __end_of_fixed_addresses)
__this_fixmap_does_not_exist();
return __fix_to_virt(idx);
}
引数idxには必ず __end_of_fixed_addresses未満の定数を渡します。するとこのコードが最適化される際にifの条件が評価され、if文が常に成立しないことがわかります。コンパイラはifブロックを全て消しさってから、呼び出し元の関数に埋め込み(インライン展開)ます。
__end_of_fixed_addressesってのは、各アーキテクチャの固定メモリマップのアドレスを定義するfixed_addresses列挙型の最後に置かれる定数です。値そのものより「どの固定メモリマップアドレスよりも大きい」ことが重要です。この値を越えたアドレスへのアクセスは不正なアクセスなのです。
mipsでは以下のような列挙型で定義されています。
enum fixed_addresses {
#define FIX_N_COLOURS 8
FIX_CMAP_BEGIN,
#ifdef CONFIG_MIPS_MT_SMTC
FIX_CMAP_END = FIX_CMAP_BEGIN + (FIX_N_COLOURS * NR_CPUS),
#else
FIX_CMAP_END = FIX_CMAP_BEGIN + FIX_N_COLOURS,
#endif
#ifdef CONFIG_HIGHMEM
/* reserved pte's for temporary kernel mappings */
FIX_KMAP_BEGIN = FIX_CMAP_END + 1,
FIX_KMAP_END = FIX_KMAP_BEGIN+(KM_TYPE_NR*NR_CPUS)-1,
#endif
__end_of_fixed_addresses
};
正しくない引数(変数や __end_of_fixed_addresses以上の定数)を渡す呼び出しがあると、if文が消去できず __this_fixmap_does_not_exist関数の呼び出しが残ります。しかしこの関数はどこにも定義されていないため、リンク時にエラーになるのです。
つまりこのif文は、最適化によって消去されることを前提に作ってあります。逆に言うと、最適化しなければ正しい呼び出しでも __this_fixmap_does_not_exist関数の呼び出しが残ってしまってコンパイルが通らないことを意味しています。
こうすることで実行時のチェックを省略できて速くなるのでしょうけど、gccの挙動にべったり依存しています。この技を使わずとも実現できる何か良い方法は無かったのかなあ…。
< | 2008 | > | ||||
<< | < | 03 | > | >> | ||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
- | - | - | - | - | - | 1 |
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 | - | - | - | - | - |
合計:
本日: