February 3, 2012

gnuplot の canvas terminal についての諸々

gnuplot 4.4から、terminalにcanvasが追加された。このcanvasは、何を隠そうHTML5のCanvasオブジェクトに、グラフを描画するコードを出力する。たとえば、以下のコマンドを入力すると、

set terminal canvas mousing jsdir 'http://www.argv.org/~chome/gnuplot'
set output 'sinx.html'
plot sin(x)

sinをプロットした画像が、sinx.html に書き出される。次に、

set terminal canvas name 'sinx'
set output 'sinx.js'
plot sin(x)

と入力すると、name オプションで指定した文字列のidを持つcanvas要素にグラフを描画する関数を含むJavaScriptのコード「のみ」が、sinx.jsに出力される。ドキュメントによると、このスクリプトを使う最小構成は以下のようなHTMLとのことだ。

<html>
<head>
<script src="canvastext.js"></script>
<script src="gnuplot_common.js"></script>
</head>
<body onload="fishplot();">
<script src="fishplot.js"></script>
<canvas id="fishplot" width=600 height=400>
<div id="err_msg">No support for HTML 5 canvas element</div>
</canvas>
</body>
</html>  

が、OSX版のChromeでは、変数zoomedが宣言されていないとエラーが出るので、以下のようにグローバル変数 zoomedを宣言する。JavaScriptのみを出力する場合は自前でコードを追加するはずなので、そこで宣言しておけばよいだろう。

<html>
<head>
<script src="canvastext.js"></script>
<script src="gnuplot_common.js"></script>
</head>
<body onload="sinx();">
<script type="text/javascript">
var zoomed = false;
....
</script>
<script src="sinx.js"></script>
<canvas id="sinx" width=600 height=400>
<div id="err_msg">No support for HTML 5 canvas element</div>
</canvas>
</body>
</html>  

February 2, 2012

pipeを使ってgnuplotをCで書いたプログラムから制御する方法(Win32)

gnuplotは優れたプロットプログラムである。インタラクティブにコマンドを入力してもよいし、スクリプトを書いてバッチ処理もできる。そしてWin32であっても、パイプを使って外部プログラムから制御することもできる。ここではWin32 APIを使って、Cで書かれたプログラムからgnuplotを操作してみた。

#include <stdio.h>
#include <stdlib.h>

static const char *GNUPLOT = "c:\\gnuplot\\binary\\gnuplot.exe -persist";

int main(int argc, char* argv[])
{
	FILE *pPipe = _popen(GNUPLOT, "w");
	
	if(NULL == pPipe){
		printf("popen fail\n");
		return 0;
	}

	fprintf(pPipe, "set terminal png\n");
	fprintf(pPipe, "set output 'test.png'\n");
	fprintf(pPipe, "plot cos(x)\n");
	_pclose(pPipe);
	return 0;
}

 非常に簡単だ。UNIX同様パイプを作成し、パイプにコマンドを入力する。この例だと、test.pngというファイルにcos(x)のグラフがPNG画像として保存される。ポイントは、gnuplotコマンドに -persistオプションを付けることである。

そういえば、気になっていたスタイルシートを修正しました。

January 23, 2012

2011年京都、奈良の旅

iPad用のキーボードLogicool Tablet Keyboard for iPadを買ったので、試してiPadでblogを書いてみることにする。このキーボードは、iPadのスタンドとBlueroothキーボードがセットになったものだ。iPad用のHTMLエディタであるdPadでこの記事を書いている。印象としては実用上支障なしといった感じ。入力補完が少し煩わしいが慣れの問題だろう。シングルタスクでアプリを切り替えながらFlickrやブラウザから比較的簡単にコピペできるし、HTMLの入力支援もなかなか。さて、次から本文。

昨年の12月に例年通り京都、奈良に旅行に行った。初日の京都は寝不足だったせいか、体調が悪かったので清水寺と三十三間堂にしか行かなかった。二日目は奈良。実はほとんど写真を撮っていなかった。

R0013390

奈良ではまず元興寺に行った。ここは近鉄奈良駅から奈良公園までの間にある。猿沢の池の近くにある寺で世界遺産にも登録されている。本尊が曼荼羅という珍しい寺だ。また本堂の屋根に奈良時代当初の瓦が使われていたりなかなかぐっとくる。上の写真の色が変わっている瓦が当初の瓦だ。また宝物館では、五重塔のミニチュアがある。これは当初のものだ。奈良時代の寺院の屋根は、鎌倉以降再建された屋根に比べ角度が浅かった。これは屋根の角度が浅いために雨水が流れ落ちにくく雨漏り等による痛みが激しかったため角度を急にしている。唐招提寺では平成の大修理で屋根の垂木からこの事実が証明されている。このミニチュアの五重塔は屋根の角度が浅い。屋根の角度でずいぶん違って見える。屋根の角度は変わり、朱塗が剥げた建物を私達は見ている。当初と印象はずいぶん違うだろう。このミニチュアは当初の五重塔がどのようなものか私達に教えてくれる。

次に興福寺。興福寺は国宝館ができていた。興福寺といえば阿修羅像だが、阿修羅像を含む乾漆八部衆立像が好きだ。阿修羅像は言うに及ばず八部衆のどれも傑作だ。次に平安神宮に行く。東大寺と平安神宮の参道の分岐点から結構歩く。参拝したあとは、東大寺三月堂まで歩く。三月堂といえば不空羂索観音立像。これは東大寺で最も古い仏像だ。大仏よりもこちらがお目当てだ。なんと三月堂の須弥壇の修復が平成25年3月末まで行われるらしく、残念ながら見ることができなかった。東大寺のWebによると不空羂索観音立像、日光月光菩薩立像は東大寺ミュージアムで見ることができるようだ。

R0013427

ここから鐘楼を通り大仏殿へ向かうが、あえてスルーして戒壇堂へ(上の写真)。戒壇は僧侶に戒律を授ける場所だ。聖武天皇は国内の僧に戒を授けてもらうために唐から鑑真和上を招聘した。東大寺の他に栃木県の下野薬師寺と福岡県の観世音寺に戒壇院を設置した。

次は正倉院。正倉院も修復中は入れず。なんか覆い屋根を作っているようだったので長くかかるのかもしれない。活動限界まで時間があったので、ようやく大仏殿に。大仏殿は軒が長く、重いため組物も大がかりだ。最後は南大門を通ってるバスで近鉄奈良駅まで行き伊丹に向かってこの旅を終えた。

今回の旅は修復中で見られないものが多かったなぁ。が、元興寺を見つけることができたのでよしとするか。

January 5, 2012

休暇は終わりぬ

PHOTO: many empty cans of Ukonnochikara in the trash box.

冬の休暇が終了した。今年はいつもより数日長く休んだ。それに伴い同僚に掃除を押し付けてしまったが。 例年どおり呑んでばっかりの日々だった。28日に田舎に着いたその足で友人と会食で焼肉の食べ放題。 翌日は忘年会で鍋料理。30日はSHARCメンバと会食で水炊き。大晦日は家族とすごし、 元日は姉夫婦と甥っ子たちの襲来を受けた。

甥っ子たちは小学1年生と2歳にして時刻表好きになっていた。 幼少期に鉄道にハマるというのは往々にしてあるものだが、車両でも線路でもなく時刻表とは。 恐ろしい子。幸い西鉄名物ダイアグラムをもっていたので、彼らにあげたらさすがに見たことないらしく面白がってくれた。こうやって男子はマニアックになっていく。 来年会ったときはまた興味が変わっているのだろう。 ピクトさんや、テトラポッド、ダムやジャンクション、橋梁、ガントリークレーンに興味を持ちはじめるのは 時間の問題だろう。すばらしい。

 とにかく、休暇は終了した。 帰路の道すがら立ち寄った太宰府天満宮で引いたお神籤によると、今年は変革の年であるという。 なにをどう変えるのかまったくわからない。だが夢のような時間は終わり、現実はもうすでに始まっている。

 遊んでくれた皆さんに感謝。

January 2, 2012

Happy New Year 2012

正月二日の夕暮れ

 新年あけましておめでとうございます。今年もよろしくお願いします。

 毎年、年末と年始には記事を書いているので惰性で記事を作ったが、特に書くことがない。よって今年の目標を書いてみよう。

  • 次の仕事を見つける
    来年度いっぱいで任期が切れるので、昇格できなければクビである。よって昇格できるよう現状の仕事をやり、かつ就職活動も開始する。これは達成必須。
  • 第一種放射線主任者試験を取得する
    これは仕事上求められているのだが、喫緊の要求ではない。が、今ほど放射線の勉強をちゃんとしようと思える時はおそらくないので、今年取得する。
  • Debianプロジェクトに参加する
    ようやく昨年末から勉強会に出るようになったので、まず何かネタをつくって発表することおよび、パッケージングのコントリビュートを行う。できれば数年以内にDDにapplyすることを目標に活動をはじめる。
  • 月に一回は写真を撮って記事を書く
    最近はtwitterに逃げてばっかりなので、月に一本は写真付のblog記事をアップする。できるだけフィルムで撮ること。
  • FPGA/CPLDを使った工作をひとつ以上作る
    仕事でちょっと使ったことあるくらいなので、もうちょっとちゃんと勉強して何か成果物を作る。最終的にはLISPマシンを作りたいので、その足がかりとなるものがいいな。

 ざっと思いつく限りで挙げてみたが、来年の今頃どのくらい達成できているか評価してみよう。上の3つは達成したい。あと去年ネタで作った環境放射線を使った乱数生成器でも遊びたいな。

December 31, 2011

2011年終了

R0013368@Kiyomizu

 今年の漢字は絆らしい。まぁいろいろといわれているようだが、今回の震災のような大規模災害で出てくる問題の多くは、震災があろうがなかろうが存在していた問題である。それが災害によって顕在化しただけだ。このことを忘れてはならないと思う。つまり絆がなくなったのは今に始まったことではないということだ。

 blogは残念ながらこれを入れても14件しか書いていない。最近は月一ですらなく、震災がなければ一桁になってた。

 今年は、現在のコンピュータを作りあげてきた巨星達が次々と墜ちた年でもある。Lispの父John McCarthy、プログラミング言語CやUNIXを開発したDennis MacAlistair Ritchie、そしてApple社の創始者のSteven Paul Jobs。 彼らが開発したものは、今でも使われており大きく変わっていない。Jobsを除けば大往生と言ってもいい年齢だ。コンピュータの歴史というのは高々こんなもんとも言える。

 さて、来年は任期切れの年なので、そろそろ進路を考えないといけないし、個人的になにかと大変な年になるだろう。コンカツ(笑)も遅々として進まない。しかし甥っ子をはじめ、友人たちの子らはすくすくと育っているようだ。すばらしい。

 2011年がようやく終わる。今年は震災をはじめいろいろあり、貴重な体験ができた。 そしていくつかのことに絶望した一年でもあった。

 今年一年、私をかまってくれたみなさんありがとうございました。来年もよろしくお願いします。そしてみなさんに幸多からんことを。

December 16, 2011

みんなのためのDebian Pure Blends

はじめに

 Debianは何に適したディストリビューションなのでしょう。どうやらDebianは、開発者向けだったり、サーバ向けだったり、Ubuntuのベースなんだからデスクトップ向け....といったイメージがあるようです。しかしDebianはユニバーサルOSです。Debianを使うユーザには、ソフトウェアを使う自由だけでなく、i386やamd64、ARM、SuperHといったCPUアーキティクチャを選ぶ自由、LinuxやkFreeBSD、Hurdといったカーネルを選ぶ自由もあります。そしてもちろん用途を選ぶ自由もあります。

forkするか否か。それが問題だ

 確かにDebianはあらゆる用途で利用することができますが、たとえば電子顕微鏡で撮った画像を解析するソフトを会計士が仕事で使うことは考えにくいように、それぞれの用途で必要とするパッケージは異なっています。
 他のディストリビューションでは、それぞれの用途向けに、forkしたディストリビューションを作ります。たとえばKnoppix/Mathは、Knoppixに数学関連のパッケージやTeXを追加したディストリビューションですし、Ubuntu Studioは、Ubuntuから派生した音楽や映像、アート向けに特化したディストリビューションです。
 もちろん素のKnoppixでもUbuntuでも、パッケージをインストールするなどカスタマイズすることで、Knoppix/MathやUbuntu Studioと同等の環境を作ることができます。しかしユーザに興味や知識がない場合、彼らがこれを行うことは難しいでしょう。またforkしてしまうと、開発者も分断されがちなため、子ディストリビューションの成果が親に反映されなかったり、その逆もまた起こりがちです。

Debian Pure Blends

一方Debianは、forkした別のディストリビューションを作るのではなく、それぞれの用途でよく使われるパッケージを簡単にインストールする仕組みを用意することにしました。これがDebian Pure Blendsです。squeezeでは、以下の用途がサポートされています。

 何を隠そうDebian Pure Blendsの実態はただのmeta packageおよびtaskです。たとえば、物理であればscience-physics を、openstreetmapで活躍したい人はgis-osmをインストールすれば、手っ取り早く環境を構築することができます。

November 12, 2011

国民主権とはなんだろうか

 国民主権とは何か。この場合の主権とは、国家の最高意思決定権という意味だ。すなわち国民主権とは、国家の最高意思決定権が国民にあるということだ。その主権者たる国民が、憲法という契約書で公権力を国民の幸福の為に使うべく権力を定義し、また制限している。そしてその憲法で、我が国は間接民主制をとることを定めている。つまり主権者としての意思は、立法権を持つ国権の最高機関たる国会議員の選挙で表示しているはずだ。

 はっきり言っておく。彼らが自分の都合の悪い判断をしたからといって、それは国民主権が侵害されたのでは断じてない。ただ主権者が判断を誤っただけである。

 今となっては間違ってしまったのはどうしようもない。そこで次は何をしなければならないか。過ちを悔いるのも良いが、主権者が何をすべきか、自分に何ができるか考え、そう行動すればいい。ただ文句を言っても何かが変わる訳ではない。余計にひどくなるだけだ。

 今がどのような状態であるか把握し、悪くなりつつあるのであればその傾向をどう止めるのか。自分が主権者であるとい自覚があるなら、次に何をすべきか考え、実行せよ。ただぶーたれているだけで、お上のいうことを聞いているだけでは、どっかの専政国家とかわらないことを指摘しておく。

September 4, 2011

上海旅行に関する諸々

img035

8月21日から26日まで、国際会議で発表するために上海に出張した。 上海浦東空港からホテルまで私はマグレブで行こうと思っていたのだが、ユーザーの先生につかまりタクシーで行く事になった。タクシーの運転手は、現地の地理を知らないらしく見事に道に迷い結局現地に着けなかった。彼は英語が全くできなかったので、「請下車」と書いた紙を渡し、無事にタクシーを降りる事に成功した。この漢文を駆使して交流を試みる方法は、以前PAQ氏と香港に行ったときに学習した。まぁ文法的に正しいかはわからんが、通じることが重要ということで。

 こういう出張では、1泊1.5万円くらい宿泊費が出るので、結構いいホテルに泊まれる。今回も会場の上にあるホテルで、明らかに自宅のアパートよりも広い。独りなのにたいていツイン。誰か一緒に行ってくれる人...以下略。ホテルのサービスは申し分なかった。日本の高級ホテルと同等のサービスだ。毎晩新聞とクッキーを持ってきてくれた。 中国に偏見を持っていたために期待していなかったのだが、金を払えばちゃんとしたサービスが提供されることがわかった。

 会場が最近開発された浦東という地区にあったため、まるで新宿副都心にいるような感じだった。日本を含む外国資本の経済侵略もあらかた終わっており、マクドやケンタッキーはもちろんSubway、ファミリーマート、吉野家、味千ラーメン、珈琲館、ピザハット、なんと和民まで進出していた。ということで、食事は日本とあまりかわらなかった。もちろん中華料理も食べたけど。ラーメンは、見事に久留米ラーメン。東京ですら味わえないスタンダードな味。大龍系といえば久留米の人は味が想像できるだろう。餃子は具が大きくタレが中国風の味付けだった。餃子の餡の粒度がかなり舌触りに影響することが判明した。

 中国といえば、名物Grate FIrewall。ネットのアクセス状況はどうだったかというと、Google+、Facebook、Twitterはアクセスできなかった。gmailや、iGoogle、Google Readerにはアクセスできた。国内のSNSや掲示板にはことごとくアクセスできた。mixi、2ch、発言小町など。Yahoo!はmailも含めアクセスできた。今回、twitterは、自宅のサーバにTwitterIRCGatewayを設定していたので、IRCでtweetができた。ただmentionが面倒だったので、いくつかのmentionをいただいているのだが、ほとんど返事ができなかった。ごめんなさい。そのほかは特に制限はなかった。そういえばエロはどうだったのかな。試してない。
 これから中国に行かれる人で、SNS中毒な人は、何かしら用意していったほうが良いだろう。Twitterであれば少なくとも自分のタイムラインを読めるように、どこかのサーバにTLをRSSなりATOMでアクセスできる環境を作ることをおすすめする。tweetはtweetmailあたりを使えばよいかな。

 滞在した5日間のうち、1日は上海の街を観光した。スパイゾルゲが活躍した街なので、近代史好きとしては心躍る街だったのだが正直あまり面白くなかった。租界時代の街並は開発で失われつつあり、マンションやショッピングセンターに変化していた。 幸いにも開発はまだ一部で、隣の通りは伝統的な建物と生活があった。だが、あまりシャッターは切らなかったというか何故か写真を撮る気にならなかった。とはいえ、興味をそそられるものはやはりあり、面白かったのは、租界ごとに個性があることだ。日本の租界には行けなかったが、フランスとイギリスの租界は建物からして違う。地下鉄で駅2つ3ついくとずいぶん異なる風景があった。一部は文化財として保護されるようだが、おそらく大半はこれから失われていくだろう。上海の良いところをどうして自ら壊してしまうのかと思ったとき、私が幼少の頃、父が同じ事を日本に向けていっていた事を思い出した。ま、かつて通った道なのだな。

 最終日は12時にチェックアウトした。飛行機が17時だったので、およそ3時間ほど時間がある。特にやる事もなかったので空港に向かっていると、上海科学博物館なる駅があるではないか。そりゃ行かなきゃだめでしょ。駅をおりると、おみやげやさんがいっぱい。日本人とみるや、バッグだロレックスやなんだかんだ。どこをどうみたら、私がバッグや時計を欲しがる人種に見えるのか。バッグを買ってあげたい人がいれば...以下略。
 ということで、No thank youを連発しつつ博物館へ。でかい。予想以上にでかかった。
 こういう博物館では、何をどのうように展示しているかで、何を見せたいのか、対象である子供たちに何を求めているのかなんとなくわかる。行ってみて驚いたのが、入り口のすぐ近くの一番良い場所に地学の展示があったことだ。日本では、地学は物理以上にマイナーな分野で、日本の博物館ではあまり良い待遇ではない。岩石や地球の構造や海底に並んでやはり石油、資源についての展示に力が入っていた。油田をどのように探すのか、どのように掘削するのかひとつの小部屋をつかって展示されていた。
 次に力を入れているのは宇宙かと思ったが、(確かに神舟3号の実物大模型が展示されていたり力が入っていたが)存外物理や光に関する展示もちゃんとあった。驚いたのが、光を使って探求するという大展示室に、相対論や量子についての展示があったこと。霧箱や電子線などの展示があった。このへんの展示がある科学博物館は日本には少ない。あとはやはり加速器があった。シンクロトロンの模型だ。でも説明はサイクロトロンだった。展示を見るに衝突加速器を模擬したようだったが。残念!
 あとは博物館内にCAD教室や工業用ロボットのデモや、3Dスキャナで自分の顔をスキャンして置物を作ってくれたり、今は製造業に力を入れていることが見受けられた。だが、地学や量子、加速器など展示物の内容と幅広さは目を見張るものがあった。
 一方日本では、子供どころか親の理科離れが進んでいる。その証拠に私がバーに呑みに行って仕事が学者(笑)だとバレると必ず「何を研究されているのですか?」と聞いてくる。そこで物理だと答えると十中八九引かれてしまう。これほどサイエンスに対する忌避感が蔓延している。十中八九惹かれてくれればすばらしいんだけどなぁ。ということで結婚適齢期の女性の皆さん。国益のために...以下略。いや、国益なんかどうでもいいから、私を愛してくれる方絶賛募集中です。
 確かに展示物の作りがチープな部分もあった。が、おそらく私の次の世代では確実に科学技術分野も中国に抜かれるだろうなぁ。案の定小学生くらいの子供たちのツアーがきていた。

 数日間とはいえ、行きたいサイトに行く、見たいものを見る自由を禁じられると、言論の自由の大切さを考えさせられる。言論の自由とは、エロだろうがグロだろうが核爆弾の作り方だろうが、見たいものが検閲されることなく見ることができ、そして公権力から発言内容に制限を加えられないということだとつくづく実感した。

August 21, 2011

TokyoDebian勉強会#79に参加してきた

 今日は久しぶりに TokyoDebianに参加した。テーマはパッケージング。

 やまださんの「パッケージビルド七転八倒 - rulesからgit-buildpackageまで」はDebianパッケージ作成のプリミティブなところから、テストまで丁寧に説明されていた。上位のツールから、 最もプリミティブなrulesファイルまで、いくつか階層があるのだが、それはパッケージ作成をできるだけ自動化しようとした経緯を表しているように思えた。
 私が野良パッケージを作るときはdpkg-buildpackage を使っていたのだが今はcowbuilderを使うのか。知らなかった。
 またいくつかのバグの存在が示唆され、資料に不正確なところがあったようだが、いずれ修正されるだろう。この資料は、 Debian package の作成方法を理解する上で重要な資料になる。

 次の @iawamatsu さんのSponsored Uploadの話は、スポンサーであるDebian Developer および Debian Maintainer がパッケージのチェックをいかに行っているかという話だった。 パッケージを作るほうはパッケージがちゃんと機能していれば良いと考えがちだが、スポンサーは、ライセンスやポリシに準じているかまでチェックされているようだ。Debian スポンサーにとって、Sponsored Upload は、アップロードの代行ではなく、スポンサーがメンテナー同様、そのパッケージに責任を持つということということがわかった。

懇親会は、近くの華の舞で。外国から参加された方がいらしたので、英語まじりの 宴会だった。

そういえば、apt cheat sheet を作る宿題が出たので、このドタバタが終わったら。