路傍のプログラマ

只のプログラマが綴る愚痴と備忘録

robocopy!

2008-02-25 22:42:30 | プログラミング
Vistaのcmd.exeでxcopy /?とタイプしたら、

「xcopyは現在推奨されていません。Robocopyを使用してください」

とのこと。

robocopy、なんかおもちゃみたいな名前ですけど。

・・・とか思いつつ、robocopy /?とタイプしたら、ずらずらずらーっと数ページにわたって解説が。

robocopyとは、堅牢性の高い(robustな)copy、という意味らしい。なんでrobUcopyじゃないの?

気に入ったのは、ミラーリングをサポートしてるところ。オプションは/mir。Mir?ロケットにちなんで命名したのか。そういえば、コマンド名やらオプション名やらが、何となくロシア語っぽい。

3文字も使ってたりする割には、名前から機能が想像つかない/FFT(フーリエ変換?)などというオプションとか。

あとは、/MOVと/MOVEがあって、ヘルプメッセージによれば、前者はファイルを、後者はファイルに加えてディレクトリも移動するんだとか。こんなびみょーなオプション、覚えられない。

試しに実行してみると、それはそれは冗長なメッセージが、もう延々と表示されました。ひぇぇ。期待を裏切らない。

ツッコミどころ満載のrobocopyですが、私が使う分には、

robocopy /mir > NUL

とだけ覚えておけば良さそう。

配列に要素を追加したいだけなのに

2008-02-19 20:14:19 | プログラミング
以下は、今日、ふと自問自答した内容。

------

Javaで、動的に長さを増やすことのできる「配列」のような物といえば?

→ もちろんArrayList。

で、たとえばArrayList<String>の末尾に、"a", "b", "c"を順に追加したい。どう書くの?

→ え?簡単にできるよ。
a.add("a");
a.add("b");
a.add("c");

なんかまだるっこしい。
Pythonだったら、
a.extend(["a", "b", "c"])
ですむのに。

→ いやいや、Javaでも1行(というか1文)で書ける。
a.addAll(Arrays.asList(new String[] { "a", "b", "c" }));

長くね?

(2008/03/07 訂正。不要なハイフンがあったところを削除。)

Atok Everywhere

2008-02-18 22:55:11 | その他
メインのPCは昔からAtokだったのですが、今回は自分が使うPCはすべてAtokで統一することにしました。

・Atok for LinuxがUbuntuでも使えるようになったらしい。いまだ正式なサポートはないけど、Atok X3 for Linuxから、Ubuntuで使う方法がジャストシステムのサイトに載るようになった。

という事情があったので、そろそろかな?と機をうかがってはいたのですが、

・(某巨大掲示板および/.-jによると)MS IME(Officeについてくるやつ)は中国の人が作っている(作らされている?)らしい。

という驚愕の記事を見て、一気に決心がつきました。

米MSからみれば「日本も中国も漢字使ってるし」くらいの感じなのでしょうか。

(2008/02/20 追記)
Synapticパッケージマネージャが動かなったので、ググって(先人たちの知恵をお借りして)対策を講じました。

他にもあるかもしれないので、統一計画は、もうちょっと試してみてからにします。

iccの俺様オプション

2008-02-15 19:40:17 | プログラミング
インテルC++コンパイラ for Linux、なるものを試してます。

インストールが終わって、icc -helpとしてオプションを調べる。

最初の方をちらっと読んで、「あー、だいたいgccと同じね」と思い込んだのが運の尽き(いや、-openmpというのはすぐに気がついたんですけれども)。

いざ、手元のソースコードをコンパイルして実行しようとすると「libguide.soが見つかりません」と文句言われる。

さんざん調べたあげく、コンパイラのオプションに-static-intelをつければいい、とようやく気づきました。

ちなみにこのオプションは「インテルコンパイラについてくるライブラリ*だけ*をスタティックにリンクする」というとても便利なオプションです。

その他にも、-fastなる魅惑のオプションも見つかりました。こいつは「CPUに合わせて速くなりそうな最適化オプションの組み合わせを一度に指定」という、なんかこれだけでいいやん、てな感じのものです。

インストールガイドに「とりあえず-static-intelと-fast(と-openmp?)をつけろ」と書いといてくれればいいのにと思うことしきり。

・・・まあ何にせよ、これでコンパイルして動くところまできたので、いよいよこれからベンチマークします。

msttcorefonts

2008-02-12 13:15:25 | ubuntu linux
Ubuntu 7.10の日本語版セットアップ・ヘルパをここ数日2度ほど実行していて、ふと目にとまったのが、
msttcorefonts
なるもの。

詳細タブを見てみると、ダウンロードするファイルの名前がtimes32.exeとか。間違いなくMS謹製っぽい。

日本語版セットアップ・ヘルパを実行すると、フォントが妙にVistaっぽくなるとは思ってたけど。MSのフォントを使ってたのかー!

ライセンス的にどうなの?と調べてみると、

msttcorefontsは
http://sourceforge.net/projects/corefonts/
でホストされている、まっとうなプロジェクトらしい。

さらにウェブでごそごそ調べてみると、MSはフォントをAppleにも使わせていたりして、かなり太っ腹な感じ。

ちょっと意外。

Ajax入門

2008-02-07 15:25:31 | プログラミング
何の因果か、Ajaxをかじる羽目に。

とにかくいろいろ情報あさってみます。

ライブラリも見てみました。Prototype.js, Mochikit。

最初は、なんじゃこりゃー、となったのですが、よくよく考えてみると、難しい原因がわかりました。

Ajaxは、きわめてつぎはぎな技術なのでした。

(1) まず、HTMLを知ってないと。「HTMLをエディタで編集できます」程度の知識では全く不足でした。

DOMのモデル、エレメントの属性みたいな細々とした知識、それから当然、エレメントがどうレイアウトされるか、CSSでどうやるか。

(2) 次に、JavaScriptを扱えないと。ぱっと見た感じはマクロみたいな言語ですが、プロトタイプベースのオブジェクト指向言語でした。

これだけでも結構やっかいですが、JavaScriptとHTMLの橋渡しの方法も知っている必要がありました。DOMを通じてHTMLページをどんどんいじります。

(3) まともにいろいろなデータを扱おうと思えば、XML, Jsonも外せないところ。今回は事前に知っていたのでまあいいですけれど。

(4) 次に、ライブラリやGoogle MapのAPIといったものを学習しないと。

先ほどのPrototype.js等のライブラリを使えば、ブラウザの違いを吸収するといった煩わしいコードからはあるていど解放されるみたいです。が、その一方で、オブジェクト指向言語の上にライブラリとして構築された関数型プログラミング、も入ってきたりするので、それなりの覚悟も。

(5) いまのところ、開発・デバッグ環境の構築について悩んでます。FireBugがそれっぽいのですが、Java/C++の統合環境開発ヴァリヴァリな世界と比べると、まだ歴史が浅い感じが否めない・・・

とまあ、現状はこんな感じ。とはいえ、まだ入門中なので、ひょっとするともっと奥があるのかもしれず。

いやー、やっかいなことこの上なし。

とか言ってるうちに、SiverlightやらXULRunnerやらが流行りだして、「Ajax?何それ」とかなるかもしれず。

なやましい。

# ブログ中の広告削りました。

個人情報独占禁止法

2008-02-04 19:03:21 | Birds-Of-Feather
記事「 MicrosoftのYahoo!買収で懸念されるプライバシー問題」
http://www.computerworld.jp/news/trd/97429.html
より。

このチャンスを逃すと、基本ソフトを米国に抑えられ(て以来ずーっと輸入超過になった)あの大失敗の二の舞ですよ。わかってますか?

いますぐ法制化して、ヨーロッパやお隣の大国と共同しましょう!

・・・ってこんなところで言っても、日本の政治家の皆さんには「なんのこっちゃ」なんでしょうね。