鉄道シミュレーションゲーム「LibreTrain ver 0.08 東広島・西条ブールバール線」ver 0.1評価版 プレイ動画


鉄道シミュレーションゲーム「LibreTrain ver 0.08 東広島・西条ブールバール線」ver 0.1評価版のプレイ動画をyoutubeにupしてみました。区間西条駅→中央図書館前です。

ついでにこの「LibreTrain ver 0.08 東広島・西条ブールバール線」ver 0.1評価版の配布も開始。以下の場所でWindows版・Linux版の配布を行っています。
http://www.geikisha.com/libretrain/

鉄道シミュレーションゲーム「LibreTrain」

現在、鉄道シミュレーターゲーム「LibreTrain」を開発中です。今のところはVersion 0.07で、現時点での完成度は上の動画のとおり。路線は東広島市LRT計画として一部で話題の、西条ブールバール線(西条駅〜ブールバール〜広島大学)です。

BGMの歌は、鉄道唱歌の替え歌(?)で西条ブールバール線編を作って、初音ミクに歌わせてみました(歌のタイトルは「鉄道唱歌 東広島ブールバール編」ということにしてます)。

「LibreTrain」は、WindowsLinuxAndroid版を配布予定です。林檎系が無いのは、手元にMaciPhoneiPadが無いからです(汗)

無料評価版と有料版(1000円程度を想定)を準備する予定です。是非買ってくださいm(_"_)m

C言語で音を出してみた

OpenALを使って、C言語で音を出してみました。

C言語で音声データ(単純な正弦波とかの)を作る方法は一応簡単なのですが、そこから先、それをどうプログラム内でスピーカーに出力するかで今まで苦戦していました。googleで「ALSA C言語」とかでいろいろ検索し、サンプルコードを試してみるも、コンパイルしようとすると何故かライブラリのファイルが(それっぽいパッケージはインストールしてあるはずなのに)無いとか、どうもうまくいきませんでした。

で、いろいろ悩んでいたところ、「OpenAl」というOpenGLのオーディオ版みたいなのがあることが分かり、さっそく

のサイト様を参考に試してみたところ、ちゃんと音声を出せました。

ということで、以下に試してみたプログラムを載せます。440Hzの音を10回ポーンポーンと鳴らすプログラムです。

#include <AL/alut.h>
#include <math.h>

#define DMAX 45100
unsigned char dat[DMAX];
double w = 2*3.141592/44100;

int main(int argc, char *argv[])
{
	int i;

	ALuint buffer, source;
	alutInit(&argc, argv);

	alGenBuffers(1, &buffer);
	alGenSources(1, &source);

	for(i=0;i<DMAX;i++)
		dat[i] = (sin(w*440*i)+1)*100
			*((double)(DMAX-i)/DMAX);
	

//	buffer = alutCreateBufferHelloWorld();
	alBufferData(buffer, AL_FORMAT_MONO8, dat,
		DMAX, 44100);


	alSourcei(source, AL_BUFFER, buffer);

	for(i=0;i<10;i++) {
		alSourcePlay(source);
		alutSleep(1);
	}

}

なお、正弦波の音声データを生成する部分は

#define DMAX 45100
unsigned char dat[DMAX];
double w = 2*3.141592/44100;
(中略)
	for(i=0;i<DMAX;i++)
		dat[i] = (sin(w*440*i)+1)*100
			*((double)(DMAX-i)/DMAX);

になります。

私の環境(Ubuntu 12.04)の場合は、libalut-devを(Ubuntuソフトウェアセンターなりaptitudeなりapt-getなりで)インストールすればOK. コンパイルは、例えば

gcc test.c -lalut

みたいな感じでできます。

その他OpenALの各関数の詳細等については、google先生等にお尋ねください(汗)

http://www.geikisha.com/blog/2012052801.html

部分日蝕

この日記には、会社設立後にまずは会社設立手続きの記録的なものでも載せようと思っていましたが、3月1日に登記申請し翌日登記完了、無事3月1日付けで会社設立となったものの、何も更新しないまま3ヵ月近くが経ってしまいました(汗)

この間、ブログは自作プログラムによる会社のブログ

を立ち上げ、また近況報告的なものもfacebook

をメインにするようになったものの、いずれもgoogle先生との相性がどうも悪い。ということで、検索対策も兼ね(?)、はてなでもちょくちょく更新していこうと思います。

まず初日は本日の金環日蝕(広島では部分日蝕)について。


とりあえず今日撮った日蝕の写真。ほぼ曇りっぱなしで地上には影もできなかったけど、太陽の形が分かる程度に雲が薄れた時間は何度かあり、太陽の欠けた様子が分かる写真も一応撮れてました。

ところで、金環日蝕はなぜ直接見ると危険か。夜明け・日没時の太陽や雲の向こうの目で見える明るさの太陽は、太陽光のうち目を傷めるエネルギーの強い(短波長の)光が大気等で十分に散乱されているのに対し、日蝕は単純に光の量が減るだけで成分は変わらないので、仮に目で見える程度の明るさだったとしても日中の太陽並みに危険、という理解で良いはず。

今日の中国新聞の夕刊に東京で撮った金環日蝕の大きな写真が載ってましたが、物差しで図ってみたところ、太陽の直径が43mmで、月の直径は41mm。すなわち(π・(41/2)^2)/(π(43/2)^2)=41^2/43^2≒0.91で、太陽光の強さは通常の10分の1程度。太陽を直視することはたとえ一瞬であっても危険ですが、仮にその「一瞬」を0.03秒とすると、今回の金環日蝕は0.3秒間直視しただけでも危険ということになります。

大学最終日

学部から修士、博士、ポスドクと11年11ヶ月におよんだ広島大学での生活も今日が最終日。今は帰りのバスの中です。

明日からは自分の会社を立ち上げ、自然科学・人文科学の無限の世界を広く世の中の人に親しんでもらうことを中心とした仕事をいろいろやっていきたいと思う次第です。

会社は明日登記申請を出す予定で、順調にいけば明日が会社の創立日となります。

ということで、今後は新会社での営業活動を行うとともに、学術的研究やこのブログの更新も引き続き行っていこうと思います。

今後とも当ブログをよろしくお願い致しますm(_ _)m

小選挙区比例代表連用制は大政党に優先的に議席を配分する制度

衆議院選挙制度改革で、主に中小政党が導入を主張している小選挙区比例代表連用制について、メディアは「中小政党に優先的に議席配分する小選挙区比例代表連用制」と紹介している。しかし、この表現には「中小政党を不当に優遇する制度」というニュアンスが感じられ、違和感を覚える。

小選挙区比例代表連用制は、比例代表制を基本としてそれに小選挙区的な要素を加えた選挙制度であり、単純小選挙区制や現行の小選挙区比例代表並立制と比べると中小政党に有利な選挙制度である。しかし、純粋な比例代表制や、ドイツなどで用いられている小選挙区比例代表併用制と比べると、大政党にやや有利な選挙制度となっている。

小選挙区比例代表連用制は、ドイツなどで用いられている小選挙区比例代表併用制と基本的には同一の選挙制度である。連用制も併用制も、まずは比例代表で各党への議席配分を決め、各党は割り当てられた議席にまずは小選挙区で当選した議員を割り当て、残りの議席に比例名簿の議員を割り当てる。ただし、小選挙区で大勝した党の場合、比例代表で割り当てられた議席よりも小選挙区で当選した議員のほうが多くなってしまう場合がある。例えば定員が10の議会において、ある党が小選挙区で6人当選し、比例代表で50%(5議席分)の得票を得た場合などである。この問題をどう処理するかという点に連用制と併用制の違いがある。

ドイツで用いられている小選挙区比例代表併用制においては、上記の例のように比例代表での議席割り当てが5議席であるにもかかわらず小選挙区で6人当選した場合、6人全員に議席を与え、且つ比例代表での議席割り当てを越えた分については議会全体での超過の議席とする。つまり、上記の例では議会は定員11となり、そのうち6議席をこの党は得ることになる。議会全体での議席が増え、且つその増加分を小選挙区で大勝した大政党が獲得するので、小選挙区比例代表併用制は純粋な比例代表制と比べると、若干ではあるが大政党に有利な選挙制度と言える。

一方の小選挙区比例代表連用制は、小選挙区において当選した議員全員に議席を割り当て、且つ併用制において発生する超過議席を認めない制度である。例えば、上記のように定員が10の議会においてある党が小選挙区で6人当選し、比例代表で50%(5議席分)の得票を得た場合には、この党が10議席中6議席を獲得し、残り4議席を他の党で分け合うことになる。つまり小選挙区比例代表連用制においては、比例代表で割り当てられた議席よりも小選挙区で当選した議員のほうが多い党が存在した場合、議会の議席はそのような大政党に優先的に割り当てられ、その分中小政党に割り当てられる議席比例代表で割り当てられた議席よりも減少する。単に大政党が比例代表による議席数より議席を増やすだけでなく、中小政党がその分本来の議席数よりも議席を減らすため、小選挙区比例代表連用制は併用制よりもより一層大政党に有利な選挙制度と言える。

このように、小選挙区比例代表連用制は大政党に優先的に議席を与え、その分中小政党に割り当てられる議席を削る選挙制度であるので、「中小政党に優先的に議席配分する」という表現は実態とは逆のように思われる。

なお、小選挙区比例代表連用制は上記のように大政党を優遇し、その分中小政党にしわ寄せの来る選挙制度ではあるが、その度合いが著しく大きいということは基本的には無い。よって、大政党に多少有利でありはしても、それをもって民意を歪める選挙制度と言うまでのことは無いと思う。ただし小選挙区議席数が全議席の大半を占める場合については、大政党への有利さは中小政党が甘受すべき程度を越えることになるかもしれない。

不正アクセス

ふと、研究室のサーバのログを見てみると、当然のごとくいろいろと攻撃にさらされていた。

アクセス元はいろいろだが、某有名レンタルサーバや某有名私立大学などもある。恐らくそれらの利用者のサーバが不正アクセスを受け乗っ取られたのであろう。パスワード等はくれぐれも推測しにくいものにしなければならない。

ところで不正アクセスというものは、短時間のうちに繰り返し攻撃を行うものだが、延々と続くわけではなくいつかは終わる。ひととおりパスワード・ユーザー名を試してダメだったら諦めて次の攻撃対象に移る、ということだろうか。管理のしっかりしているところなら攻撃の最中に管理者が気付いて隔離した、ということもあるかも知れない。