群論と Perl
私は物性物理をやっていたので、いわゆる対称性の部分だけです。群論自体は鼻水が出るくらい難しいです。
これが群論というわけではないですが、平面を正多角形で埋め尽くすと正三角形、正四角形、正六角形しかありません。直線を正二角形 (ミラー対称)、点を正一角形 (点対称) と考えると、対称性はこれで全てになります。これだけ (組み合わせの関係で有限である) の群の中で表現可能になります。特にフーリエ変換を行う場合は、(語弊はあるけど) 正弦関数だけで表現できるため、ある決まった対称性で物質の特徴が表現できてしまいます。当時は、こうしたものをゴリゴリ計算していたのですが、群論自体があまりにも幅が広いので、数学的な部分ではなく、分かりやすい話をしてくれればいいなと思っているだけです。まぁ、YAPC には参加できないわけですが・・・。
Maildir から MH への移行
何年かに一回は繰り替えしている GUI と CUI の移行作業ですが、Sylpheed を使うために Maildir から MH に移行してみました。意外に maildir2mh なんてものがないのですが、今回は以下を使いました。
要するに Python スクリプトなのですが、実行ファイル名から変換元の形式と変換先の形式を選択できるというちょっと面白い仕組みです。なので、保存は Maildir2MH という名前で保存しています。
そのままでは、深いところまでは追ってくれないのと、ディレクトリをあらかじめ作成しておく必要があるので、以下のような一行野郎で shell スクリプトを作成しました。
$ find Maildir -type d | grep cur | sed 's/\/cur//' | awk '{print "mkdir -p", gensub(/Maildir/,"MH","1",$0), "&& ./Maildir2MH", $0, gensub(/Maildir/,"MH","1",$0)}' > maildir2mh.sh $ sh ./maildir2mh.sh
しばらくすると、移行作業の完成です。
プログラムの効果
私の言うプログラムは野良プログラムというか、本道ではなく「あった方が便利」で作るプログラムについてです。なぜなら、私はプログラマではありませんから、本格的なプログラムを書くことはありません。
以前言っていたのが、「その仕事を手作業でやると 1 週間かかるけど、一瞬で終わるプログラムを書くのに 1 週間かかるのであれば、プログラムを書くべきだ」というものです。「実行にかかる分だけ損をするじゃん」と言われるかもしれませんが、プログラムは同じ作業をするのであれば再利用が可能なので得をすると考えています。
ただ、上記リンク先にあるようにコードのメンテナンスなどを考えると結構手間がかかってしまったり、不必要にオプション指定でいろいろできたりするように作られていたりするプログラムを作ったり、小さなプログラムをある順序で使わないと機能しないようになっていたりするので、Makefile にとりあえず手順くらいは書くようにしています。困ったときには make と打てば何かが正常動作し正常終了するわけです。できれば、Subversion に commit くらいしておきたいところです。
もっとも、これが最善というわけではないので、良さそうな解があれば、そちらに移行していきます。
理想的な何か
YAPC::Asia には今年も行けそうにないわけですが、内容は非常に面白そうである。
全部のタイトルを見たわけではないけれど、大まかには以下のような分類かな。
特に「Perl と群論」は群論をやっていた自分としては非常に気になるところではある。当時、Perl も使っていたはず・・・、群論は抽象論ではなく、数値的な部分もあるので、計算させてたかも。
全体的に「何で Perl を使うの?」「そこに Perl があるからだ」的な雰囲気がしているのは Perl ならではの雰囲気なのかもしれない。裾野 (守備範囲) が広く、山 (レベル) も高い富士山のようである。締めは「Perl is unDead」であり、これも面白そう。見ているだけだと、Perl は個人的には理想的な言語である。
と、awk 以外の言語に目をやると面白い。でも、Perl でできていることを awk でやろうとするとなかなか難しい。動画が公開されたらじっくり楽しみたい。
未来の LL
敏感な人はご存知だと思うが、「LL Future」である。以下は、LL Conference とは全く内容は関係なく、個人的なイメージで話しているので、当日話されることは多分ない。
未来の言語、いや、未来そのものをイメージするのは難しい。個人的に思ったひとつに「子孫繁栄」というのがある。
言語はユーザーが少なくなると途端に衰弱して滅びてしまう。今世紀末には 5000 以上の言語がなくなるそうであり、身近なところではアイヌの言葉も例外ではない。
例えば、薄れてしまっても構わないのであれば、他の言語を話す人と結婚してでも未来を託すという方法があるだろうし、村おこしのように別の角度から注目してもらうことだってある。宮崎弁 (日向弁?) は後者であるし、プログラムではキラーアプリで有名になるのも後者である。前後してしまうが、前者は多様性の中に生きるという意味ではマッシュアップに近いのではないかと思う。
Perl は Perl6 から別の言語であり、Perl の子供 (Perl と Haskell の子?) に位置するのではないだろうかと思っている。同時に多様性で Parrot まで産み出しているのは Perl らしい。個人的には Perl6 が Perl 子供であると共に、開発者も次の世代であるところに注目している。
一方、古参の言語である lisp は直系ではないが、Haskell, Gauche といった関数型言語の良さが認められ、それなりにブームである。そう、結果的に言語には子孫繁栄が不可欠なんだと思う。これはプログラムも普通の言語も同じであろう。
そういやニュースで「人口孵化により自然を取り戻せ」とか「元々広葉樹だったが、針葉樹が増えたので伐採して、昔の広葉樹にして自然を復活させた」とか言われているが、大きな間違いである。人間だって自然の中で生きているわけだから、人間が絶滅させたというのは自然のひとつでしかない。
プログラムは動作するマシンがあれば動作する。最近では Xen 上に古いマシンを仮想的に構築することもできるので、たぶん 2038 年くらいまでは永遠の命を吹き込むこともできる。しかし、これは不幸でしかない。試験管の中でしか生息できないウイルスと同じである。そんなことで寿命の長い言語と言われるのはおかしい。
さて、われらが awk の場合、マスコットでもある auk は gawky で awkward であるが故に死滅した。awk は死滅はしていないものの、awk の三賢者は残念ながら生まれてから今までよりも死を待つ方が短そうだし、gawk への移行が急がれている。そんな中、若い (?) 人たちが xgawk の開発を進めていることから、次の世代へ引き継がれていくことができそうである。こうした次の世代へ繋ぐ議論はどうだろうか?
あなたの好きな言語はどうだろうか? こういうことを注目することは OSS の活性化になるのではなかと思っている。それは OSS が人、というよりもバイネームで動いてきた部分が大いにあり、そうした先人が空気のような存在であるからこそ成功しているのではないだろうか。見えないものほど気がつかないし、それの尊さを分かるのは、それがなくなったときである。
もうすぐ母の日である。今年から、ついに親元を離れた方が長くなってしまった。そうした中、酔った勢いで「遠く遠く」を歌い涙してしまった。いや、選曲してくれた後輩に感謝。
ネタとしては古いけど
特に LL とか何とかならないかな。
街の本屋
我が家のそばの本屋が税理士の事務所に変わっていた。結構品揃えがあったけど (自分の連載していたものは置いていなかったのだが)、本屋って日本文化だなと思う。近所にあるから・・・とか、学校の帰りにあるから・・・とか、顔なじみで経営しているところが結構多い。海外で書店と言える書店は大きな街 (主観的なものですけど) にひとつふたつ程度しか見当たらない。
田舎の某書店は私の趣味に合致していたのだが、それは工夫や特色というよりも、多分、企業努力である。この辺は学校が近いから参考書を多めとか、逆に漫画を多めとか・・・、ここに来る学生はヲタだからそういう本を置いておくとか、努力をやっていたように思う。そういう書店は生き残って欲しい。
で、近所の書店がなくなって、次に近い書店は書店内に店長の趣味の非売品の木彫りが半分位占拠している。以前、そこになかった本 (ヤフオクで今だと高額取引されています) を頼むと、免許証の提示や親の電話番号を求められるという様であり、どういうものがお客が求めている価値なのかを分かっていない。自分の書店とお客のニーズが合っていないということに気づかずに、売れ残ったらどうしようという損得が先にきてしまっている。もっとも、awk の人が近所だから awk の本を置けよとは言わないけれど、弛まない企業努力は必要だと思う。