YMO

Yellow Magic Oracles

2009年11月21日

GNU/Linux 環境

現状で使いこなせる(と思い込んでいる)ツール・言語・ライブラリetc
  • C++(0x対応コンパイラを待ちわびている信者なので)
  • \end{align*}\LaTeX\begin{align*}関連諸ツール( platex とか dvipdfmx とか、 Word も PowerPoint も、ましてや OpenOffice なんて使う気がしないので必須)
  • gnuplot (usingとかsetを使いこなせるようになると飛躍的に便利になる)
そこそこ使えるが、まだまだ勉強が足りないツール・言語・ライブラリetc
  • AWK (たぶん文法はほとんど知ってるけど毎回忘れる、これさえあれば数値実験のデータ解析は大体用が足りて、 Excel はほとんど不要)
  • Ruby (まだまだ勉強中)
  • PHP (研究には絶対使わないし、大規模システムは絶対 PHP では組みたくないけど、このサイトとかちょっとしたウェブアプリには便利)
  • XHTML (文法はほとんど忘れてる、別に勉強したところで得るものは W3C に準拠しているという満足感だけだろうけど)
  • CSS (同上)
  • boost (C++信者には欠かせないライブラリ)
  • make (これも研究で必要になることはないだろうけど)
  • gdb (効率的に使えるようになるとデバッグが進んでうれしいな)
  • ssh (自分の知らない機能が大量にあるはず)
  • apache (研究で Web サーバ立てることなどまずない)
  • Coreutils (コマンド使いこなせるようになるとちょっとスキルアップした気がする)
  • Emacs (完璧に gEdit っぽいキーバインドになるのなら便利なエディタだけど)
  • vim (こっちはキーバインドどころではないが、使いこなせたら便利そう)
  • zsh (「漢のシェル」だが、機能が多すぎてぜんぜん全体像までたどり着けない)
ほとんど使えないが勉強してみたいツール・言語・ライブラリetc
  • R (統計関数が山ほど入っているのがうれしい、どうでもいいが一語の命名は検索にかからないからやめて)
  • subversion (数値実験のソースをバージョン管理した方がいい気がしてきた)
  • gprof (性能解析も今後必要になるだろうな)
  • JavaScript (その気になればすぐ習得できるだろうけど面倒なので労力を割かない)
  • SWIG ( Ruby と C++ を一緒に使えるのはかなり魅力的)
  • autoconf (まあ、研究で使う機会は皆無だろうね)
  • bison, flex (同上)
  • as (コンピュータを使うものの教養程度には…… アセンブラ使った方が早くなる計算処理とかあるのかなあ)
  • Postfix (まあ、サーバ立てる機会があれば)
  • GSL (数値計算やるものとしては魅力的だが如何せん言語が C だし)
  • GTK++ ( X プログラミングで、計算結果を画像で見れるとうれしい)
  • OpenGL (3次元の数値計算では、やっぱりこういうので絵で見られればいいな)
  • ImageMagickconvertしか使えません)
  • ghostscript ( TeX やってると、関連ソフトにはお世話にはなるけど)
  • XSL (昔真面目に使ったことはあるけど、もはや完全に忘れてしまった)
そこそこユーザはいるものの今更使う気にならないツール・言語
  • FORTRAN (この業界未だにいるよね、自分で使ってる分にはいいけど何も学生に教えなくてもいいのにと思う)
  • C (例えクラスもテンプレートも使わなくても、 C++ を better C として使った方が圧倒的によい)
  • Java (中間言語って、こういうことやってるとあらゆる意味で中途半端)
  • Perl (読みにくさは犯罪的、 zsh 以上 ruby 以下の作業があればもしかしたら使うかもしれないけど)
  • Python (一面的な価値観の押し付けは嫌い、そういう意味で Ruby も同等だけど、あっちの方がだいぶマシ)
  • bash その他シェル( zsh に勝てるところってあったっけ? 軽さ?)

なんか XHTML とか JavaScropt とかが場違いな気がするけど、まあいいや。

ラベル:

2009年11月19日

(int)

例えば、1/2が0として(意に反して)認識されるというバグはよく埋め込まれる。今日ちょうどこれで数週間悩んでいたのが発覚して、あまりの呆気なさに愕然とした。指摘されればすぐ気づくバグではあるが、なかなか自分では気づかないのが悲しい。

ところが、これも同じく今日気づいたのだが(これで悩んだのは数十分)、こちらはどう考えても言語設計が悪いだろうという罠。


container<double> x; // 0 <= x[i] < 1
std::cout << std::accumulate(
 x.begin(),
 x.end(),
 0,
 std::plus<double>()
) << std::endl;
// prints 0.

期待した結果が欲しければ、以下のようにせねばならない。


std::accumulate(
 x.begin(),
 x.end(),
 0.0,
 std::plus<double>()
)

そう、std::accumulateは第3引数で型を推論しているので、第4引数にどんな関数オブジェクトを指定しても出力は第3引数の型となる。これは非常に厄介だ。まあ、実装する側になって考えれば、この罠を回避するうまい術は思いつかないのだが。

ラベル:

2009年11月9日

Pileon

先週の日曜、UbuntuをJauntyからKarmicにアップデートした(検索に引っかかるようにUbuntu 9.10とも書いておこう)。GCCは4.4.0が標準なようなので、C++-0xのautoを使いたいがために野良ビルドしたGCC4.4.0を削除する(でも4.5が出たらLambda使いたいがためにまた野良ビルドすることになると思う)。zshも4.3.10にアップデートされているな(RPROMPTに`zsh --version`を表示しているのですぐに気づく)。Open Officeもアップデートされているようだが、ほとんど使わないので気にしない。GCCの他に野良ビルドしているアプリケーションといえばpteTeXなのだが、LiveTeXの方はUTF-8のソースコードに対応しているのだろうか。対応しているようならそちらもCanonicalの方のパッケージに戻してもよいんだが(誰か情報ください)。先週の日曜は音が出ない問題等々に忙殺されてしまった。

フリーセルをしようと思ったらない。一瞬焦ったが、AisleRiotソリティアを初めて開いてみたら、そちらに収録されていた。山ほどゲームがあるので色々やってみた。個人的には完全情報ゲームの方が好き(なのでWindowsを使っていた時代にもソリティアはほとんどやらなかった)だが、その中でも特に面白いと思ったのがPileon。日本語ではピレノンと書かれているが、どう考えても音写ミスだろうな。意味から考えても"Pile on"ととるべき。

最初は全然クリアできなかったが、だんだんコツを掴んできた。ほとんどの場合、最初の数手、つまり空きスペースにどれを置くかでそのゲームをクリアできるか否かが決まる。始めてすぐは、**Xの形の山と**XXの形の山ができてしまうせいで手詰まりになるケースが多かったので、それを避けることくらいは学んだ。

それにしても、RhythmBoxとかPidginとか、画面右上に表示されるポップアップ(って呼び名でいいの?)のフォントって変えられないの? なんかKarmicにアップデートしたらフォントがセリフ体に変わってしまった。これに関しても情報持ってる方がいたらお願いします。

Windowsは良くできてますよ。

自分が(多少Windowsより不便なところがあっても)Linuxを使うのは、研究やる上で空気のようにUNIX環境を使いたい(使う必要がある)から。その辺、Mac OS Xでもまあいいんだけど、WindowsでCygwinはあまりにストレスがたまる。まあ、でもDTMやるときはWindows使ってるけどね。一応WindowsとUbuntuの両方で使う可能性のもっとも高いFirefoxはプロファイル共有してる。

ラベル:

2009年10月30日

Enjoy programming

Enjoy Programmingとかいう割には、Rubyは細かいところで手が届かない。特に、イテレータは大好きで、よく使っているんだけど(C++にもさっさとLambda入らないかなあ……0xは10進法じゃなさそうだし)、ちょっとやはり物足りない。each_with_indexが入ったのも1.9でようやくだし、てかmap!とかにも実装してほしいんですけど。この類のメソッドはeach_with_indexの挙動をデフォルトにして、|item,i|のiをオプションにすればいいのに。

あと、


std::transform(
 InputIteratorBegin,
 InputIteratorEnd,
 OutputIteratorBegin,
 UnaryFunctor
);

OutputArray = InputArray.map { |x| Sentence }
とか書けるけど、

std::transform(
 InputIterator1Begin,
 InputIterator1End,
 InputIterator2Begin,
 OutputIteratorBegin,
 BinaryFunctor
);
はどうすんの? 全般的にもうちょっとこの辺関数型プログラミング的にならないかなあ。

全然話は変わるが、AWKは使えるときには超便利。しかし、たまにしか使わないから書く度に文法忘れてるので、毎回文法調べて書いてる。そしてそんなAWKをRubyから(別にperlでもPHPでもいいけど)簡単に呼び出せる``演算子はもっと超便利。

ちなみに、研究室のサーバに自動認証かけられなかったのは自分の手違いでした。

ラベル:

2009年10月25日

Log

このサイトのログを見るのが楽しい。アクセス解析された結果を見るのもいいが、やっぱり一番面白いのは生ログ。こんなこと書いてるとストーカーじみてるように思われるかもしれないけど。

おそらく知人と思しきログや、熱力学・統計力学の記事に関して検索してきたログ(うちを含んだ大学からのアクセスが多い)が多い。中には教科書とか書いている偉い先生かもしれないログも(でも、他のページ見ずにすぐ帰ってるから別人かもしれない)。

OSはやっぱりWindowsが多いけど、Macもそこそこいる。Linux使ってるのは自分くらいかと思ってたら、どうやら他にもLinuxの閲覧があった。ブラウザはWindowsはIEが多い(あんなブラウザ、よく使う気になれるなと思うけど)が、2番手はChrome、意外。その後にFirefox。なんと懐かしきネスケのログもあった。MacユーザはSaafriとFirefoxが大体同数。

ちなみに、Adsenseのクリック数は0。まあ、別に期待なんか最初からしていないが、それにしてももう少し物理関係の広告だしてほしいな。

ラベル:

2009年10月16日

研究テーマ

昨日は、研究室セミナー(自己紹介)と歓迎会があった。自己紹介(研究の概要紹介)はさすがによく分からない。歓迎会ではとある大先生の武勇伝(研究室でキレて醤油ブチまけたとか)が聞けた。ほかにも「あの人は一時期株にはまってた」とか「この人は偏見が強いからなあ」とか。M1の先輩によると熊本ラーメン(今年度秋の物理学会は物性は熊本)はまずかったらしい。

今日は師匠と面談して、研究テーマ決め。5つ考えてこいとの難題で、2つは内容を詰められたが3つは苦し紛れ。結局苦し紛れな方の3つは捨てて、残り2つの、反応速度論を非平衡から真面目にやるか、超流動(超伝導)の輸送係数の消失を非平衡で真面目に出すかというところに決定。まずはこの2本立てでやってみて、あとで絞ろうという話に。

とりあえず、今日は疲れたから自分の手は動かさずにまずは勉強。現象論としてGinzburg-Landau理論を調べてみる。巨視的波動関数って何じゃ一体。まずは現象論を抑えて、次に先学期聴いた院の講義(最後フェードアウトしてしまったけど)にも出てきたBCS理論、Bogoliubov理論で平衡統計力学の範疇の理解をしなきゃ。あと、線型応答も極めて怪しいので、応答係数と時間相関関数の関係とかKubo公式の導出あたりは土日にやっといた方がいいかもしれない。

そんなこと考えてると気が滅入ってくるので、研究室のサーバの設定もしてみようと思い、まずはSSHでログイン。authorized_key2をSCPで送ってみる。しかし、一向にパスワードの入力がサボれない。これはひょっとするとRSA認証を許可してないのか? 今度管理してる先輩に会ったら聞いてみよう。それにしても、SFTPが使えないようだ。これは、テキストファイルのちょっとした編集をするのにはEmacs(かvi)を使うしかなさそう。Emacsはあのキーバインドにどうしても慣れないので、今まではgEdit使ってたけど、さすがにそろそろ宗旨変えが必要かなあ。気が乗らないなあ。

今日の講義の名言。「Kramers-Kronig関係式の導出には因果律しか使ってないので、どれだけ強い非平衡であっても、例えば生物をどついてもその応答はKramers-Kronig関係式が成立する」

ラベル: ,

2009年9月27日

TeX導入成功!

TeX導入に成功! ちゃんとtxfontsにもできた。

\int_{-\infty}^\infty dx\,\exp(-ax^2)=\sqrt{\frac{\pi}{a}}

platexはあってもdvipngがXREAになかったので野良ビルド。CGIは当初はrubyで書こうと思ったけど結局PHPで書いた。ご希望の方がいればコードもアップロードします。

ラベル:

2009年9月19日

XREA TeX導入計画

調べてみたところ、どうもXREAにはplatexは入ってたけど、dvipsもdvipngも入っていなかった(dvipsを内部呼び出しするdvipdfはなぜか入っているのに!)。どっちか入れてくださいと要望しといた。入れてくれるといいな。

個人的にはMediawikiみたいな感じを想定してる。Computer Modernは嫌いなのでtxfonts使うと思うけど。

ラベル:

2009年9月17日

Yellow Magic Oracles

卒研も始まることだし、ボスに倣ってブログを始めて(再開して)みることにした。どうせまたすぐ飽きるだろうけど。

前にやってたのは、とにかく仕様にできるだけ縛られず自由にやりたかったので、そうなると自分でコードを書くのが良かろうということで、fc2もMovable Typeも使わず自力で1からPHPでコードを書いて、SQLでコメントとトラックバック管理して、フィードも込みで何とかブログと呼べるようなものになったと思う(実際、フィードやトラックバックの実装は良い勉強になった)。しかし、バグの修正や記事書く面倒さで2ヶ月くらいで飽きてしまった。今ではそのコードも誰が書いたか分からんくらい読めたもんじゃない(というか、PHPで数年後に読めるコード書くのは不可能だろう)。

そうこうしてるうちに、GoogleがBloggerなるサービスやってることを知り、Googleがやってるので拡張性は抜群だろうと思ったら案の定。さすがに自分で書くほどではないが、その手間をかけるほどできない機能があるわけではない。しかも、外部サーバに公開できるということで、長年(といっても実働期間は少ないが)世話になってるXREAに公開。読者の皆さん、俺のAdsenseなんかどうだっていいのでXREAの広告をクリックしてあげてください、素晴らしいレンタルサーバです(そして無料サービスをゲットできたのは当時知名度がまだ大きくなかったから)。

タイトルはもちろん細野さん、教授、ユキヒロのグループから。Black MagicでもWhite Magicでもない、Yellow Magic。せっかくなので動画にリンクしておこう。YMO屈指の名曲、CUE。ドラムを叩いている教授に注目。

ラベル: