秋葉原特攻してきた

仕事の憂さ晴らしにカラオケと、エネループ充電器(マウス用)と雷サージタップとBTヘッドセットの購入をしに秋葉原に特攻してきた。
1時過ぎに秋葉原に到着して友人とカラオケに。会員登録に携帯のアドレスでと言われたけど、なんだかんだでGメールのアドレスで登録終了。いいのか?カ○館…
で4時くらいまで歌ってから買うもの購入。
ペンタブ欲しいなぁと思いつつも予算がないのとUbuntu対応が怖くて見送り。高いし。
で帰りに電車の中でスマホにペアリングしようとしたら、まず充電が必要とのこと…
家に帰ってから充電して、Windowsに接続したら音が止まる止まる…止まってる間のはバッファリングしてるせいか、再生停止しても8秒くらい流れ続けてた…
Ubuntuに接続するも同様の症状。スマホにいたっては接続してもそっちに音が振れない…しかもスマホとの接続は強制解除…Windowsにログインしても自動で接続しない…もはや欠陥機だろこれ…
もうiBuffaloの機体は買わねぇ。
明日次の機体買う予定…5000円無駄した…
カラオケでは過去の履歴をガン無視して歌いまくった。こっちは楽しかった。
またみんなとカラオけ行きたいなぁ…

Ubuntu11.10β1インストール

Ubuntu11.10β1をVirtualBoxにインストールしてみた。
起動画面からShiftでUbuntuのインストールを選んだら、最後のほうでエラーでインストーラーがクラッシュ。そのままLiveが立ち上がったからそっちからインストールしたら無事に成功。
その後、東方OSビルドしてみたら、lzmaが入ってないからカーネル圧縮に失敗したり、initrd.lz内に必要なファイルが無かったりで結局起動せず。
initrd.lzは何が悪いんだろう…/script/casperが無いと言われてるんだが…

東京総合車両センターと房総半島に行ってきた

昨日昼頃にトシ様から東京に行くことになったけど一緒に行かない?と誘われたから、朝から東京へ出発。
8時過ぎに品川で合流して、まずは東京総合車両センター夏休みフェアへ。
トシ様は9時開始と思ってたようだが、実際は10時開始。ただ、毎度のごとくフライング開始で30分早く入場。
ちなみに、入場列と廃車部品販売で別々に並んでいたんだけど、廃車部品販売のほうが倍位列が長かった…
入って速攻で、くじ見つけたから「1等(Nゲージレール付きのセット)当たったらどうするよw」とか言いながら引いてみたら、4等だったから、201系の方向幕キーチェーンもらった。後でもう一回引いたら、4等だったから、今度は前面種別表示機のキーホルダーを獲得。
その後115系試乗会乗ったりして10時過ぎに撤収。
品川から横須賀、総武快速線で稲毛へ移動し、113系回送を撮影。
内房線で木更津へ移動し、久留里線に乗って久留里で撮影。1時間待機してまた木更津へ。
千葉行きの113系を撮った後乗車し、蘇我駅で下車して、外房線を待つも、やってきたのはさっきまで乗ってた113系だった。このとき、Twitterに「さよなら113系」の表示を投稿しようとしたけど、上手く行かないように見えて3回くらい投稿しちまった…
外房線誉田駅駅で特急退避中に撮影。209系に乗って蘇我から京葉線で東京に戻って夕飯食った後、新幹線ホームで解散。
帰って速攻風呂に入って、帰宅報告した後写真の回収と動画の変換とアップロード。途中操作ミスってデータ軽く消去したが、無事にアップ。
URLは http://mattyan.net/photo.php?d=1314370800
トシ様、お疲れ様でした。

クラスのメンバ関数をマルチスレッドで動かすためのメモ書き

クラスのメンバ関数をSDLのSDL_CreateThread関数で扱うためのメモ書き。ちょっと流用すれば他のライブラリでも使えるかも?
staticメンバ渡せば一発なんだろうけど。派生することを考えるとなんか色々面倒くさそうなんで、普通のメンバ関数を呼び出すようにした。

基底クラスの用意

マルチスレッドで動かすクラスの基底クラスでは、至るところで派生クラスの型がわからないと使えないので、テンプレートクラスで作成。


template <typename T> class Thread{
		private:
			struct ThreadParameter{
				T    *instance;
				void *parameter;
			};
			SDL_Thread *thread;
			/**
			 * スレッド関数呼び出し
			 * @param[in] param スレッド情報
			 * @return function()の戻り値
			 */
			static int callThread(void *param){
				ThreadParameter *tp = pointer_cast<ThreadParameter *>(param);
				return pointer_cast<T *>(tp->instance)->function(tp->parameter);
			}
		public:
			/**
			 * スレッド実行関数
			 * @param[in] param 引数
			 * @return 不明
			 */
			virtual int function(void *param) = 0;
			/**
			 * スレッド実行関数
			 * @param[in] p     派生クラスのポインタ
			 * @param[in] param スレッドに渡す引数
			 */
			void run(T *p,void *param){
				ThreadParameter tp = {p,param};
				this->thread = SDL_CreateThread(&Thread<T>::callThread,&tp);
			}
	};

1.privateにSDL_CreateThreadから呼んでもらうメンバ関数をstaticで宣言。その関数への引数として、派生クラスのポインタとスレッドへの引数をまとめた構造体を渡す。
2.callThread関数では、渡されたポインタから派生クラスのインスタンスのポインタを取り出して、マルチスレッドで実行したいメンバ関数を呼び出す。
派生クラス


class Add:public Thread<Add>{
	public:
		virtual int function(void *p);
};
int Add::function(void *p){
	FILE *file = fopen(pointer_cast<char *>(p),"w");
	fprintf(file,"start = %d\n",SDL_GetTicks());
	for(int i=0;i<2000;i++){
		fprintf(file,"i = %d\n",i);
	}
	fprintf(file,"end = %d\n",SDL_GetTicks());
	fclose(file);
	return 0;
}

マルチスレッドで使用する関数をオーバーライドするだけ。
これが呼び出されると、プログラムが起動してからのミリ秒を記録したあと、2000回ほどループして、終了時間を記録してスレッド終了する仕組み。
実行結果は

スレッドID 開始時刻 終了時刻
1 515 536
2 515 536

だから、マルチスレッドで動いてる。はず…
ちなみにpointer_castはこんな関数


/**
 * ポインターキャスト
 * @param[in] p キャストするポインター
 * @return キャスト結果
 */
template <typename T> inline T pointer_cast(void *p){return reinterpret_cast<T>(p);}

Ubuntu64bit化

先週、32bitUbuntuにOracle VM VertualBoxいれて1GBメモリ割り当てたら、なんだかんだでメモリ使い切るところまで来た。メモリ4GBまでしか認識しない(PAEいれてないし)からまぁ当たり前なんだけど。
そこで昨日からUbuntu 11.04の64bitバージョンをインストール。ただし、日本語化されていないので64bit版Ubuntuを日本語 Remixにする(このブログ、ひねくれすぎ)を参考に日本語化。flashplayerはUbuntu 10.04 LTS 64bit に 64bit版Flash Player の導入(それなりに適当にやってます)を見ながら11のベータ版を導入。
あとはapt-getでeclipse-cdtとかsubversionとかSDL周りとかインストール。
ntfs-configをいれてWindowsのDドライブに相当するのを/media/driveDにマウントするように設定。firefoxのプロファイルをwindowsと共有するようにprofiles.iniを調整。
serviceを再起動しなくてもBlueToothが生きてるのはなんでだろう?32bit限定のバグ?

JAXA一般公開に行ってきた

昨日からtwitterでイカロスくんとあかつきチームが宣伝してるから行ってきた。
朝に友達をメッセで誘って淵野辺駅へ。
淵野辺で集合してシャトルバスでJAXA相模原キャンパス…の向かいの市立博物館へ。
全天周映画「HAYABUSA BACK TO THE EARTH 帰還バージョン」の入場券買って博物館巡り。前回行ったときはハヤブサ一色だったのが、今回はイカロスやのぞみやかぐやの展示物もあった。他いろいろ見て回って列が形成されかけたところで並んで入場。
前回「HAYABUSA BACK TO THE EARTH」見たのに同じところで半泣き。つーかしょうがないとはいえ後ろの子がうるさい…友達は頭蹴られたり、2つ隣のやつがいびきかいててうるさかったそうな。ドンマイ…
映画が終わったらJAXA相模原キャンパスへ。原寸大ハヤブサの模型を見たり、イオンエンジン燃焼実験見たり撮ったり、惑星探査機見たり撮ったり、ハヤブサのコスプレしてる人がいたからいりこ持ってもらって写真撮ったりしてMV-2ロケット見て終了。シャトルバスで淵野辺駅まで行ったあと、鹿沼公園に移動してD52撮って淵野辺駅で解散。
帰ってからUbuntuを64bitにするために再インストール。日本語化パックいれてビデオドライバ入れて、現在セキュリティーアップデートインストール中。通信遅い…

本届いたー

金曜日にAmazonでポチッた「THE 鉄道漫画 002レ」が届いた。本自体は1000円だけど手数料やらなんやらで1700円取られた…orz
Amazonから届いたパッケージ
とりあえず切ってみたらまだくっついてたから切り直しを2回くらいやらかしてようやく開封
パッケージでかくね?
…本に対してパッケージでかくね?
表紙裏に3キャリア対応の壁紙プレゼントってあったからAndroidで読み込んだら403だった…もう終わってる(発行は2月)のか、Androidだから弾いたのか…欲しかった…
漫画の中身は、001レ同様鉄道中心の話がいっぱい。ギャグもあるし恋愛ものもあるしで色々揃ってる。とりあえずC11の爺さんは店内で煙吐くのやめろw

三連休終了

3  連  休  何  し  て  た  か  3  行  で(もみあげチャ~シュ~)
ゲーム
写真
ゲーム
こんな感じの連休だった。
ゲームは主にsimtrans。おかげで現在2027年。
1両しか製造されなかったクハ415-1901を組み込んだ編成が6編成くらいあったり、全力を出すと変電所を吹っ飛ばすおそれがあるEF200が6両ほど全力疾走してたり、415系とE233系,681系SREがすれ違ったり、E351系が基本編成だけのはずなのに両端非貫通だったりとゲームならではの運転。
写真はトシ様と一緒に群馬でSLとか旧客とかジョイフルトレインとか撮影。
…明日からまた仕事か。

群馬に行ってきた

この前買った特急券で群馬に行ってきた。
まず大宮でトシ様と合流。MAXたにがわで高崎へ。高崎で群馬フリーパス買って上越本線の岩本へ。
岩本ではC61-20を撮影。ここ、1時間に1本も電車が通らない時間帯があるのね…基本1時間に1本しか来ないと。ほぼ一発勝負だったけど、あまりの暑さに陽炎でまくりなこと以外は良かった。とにかく暑い。
その後、渋川でリゾート草津と宴の回送を撮影。新町でスハフ32の回送を撮影後高崎に戻って続き撮影。ついでに昼飯(15時)。その後、籠原で貨物撮ろうとしたが、期間者単機だった上に失敗…そのまま大宮で団体臨時撮って夕飯。その後、北斗星撮ろうとしたが、湘南新宿ラインがいい感じに邪魔するように停車して失敗。
トシ様と駅のホテル前で別れて帰宅。風呂はいってさぁ写真アップすんぞと写真更新システム動かしたらファイル名順にソートしてない不具合が発覚。即修正してなんとか今日中に登録終了。
http://mattyan.net/photo.php?d=1310828400
明日はどうすっか。THE 鉄道漫画の002レが出てるらしいし探してみるか。…ってこれひょっとしてネット通販のみ?