バックアップツール

いつもツール選択どまりで実際にバックアップをしないで泣きを見る。
今回こそ定常運用まで漕ぎつけたい。…と思いつつツール選択する俺。

Windowsでネットワーク越しにディレクトリーの複製を定期的に行ってくれるソフトを探しています。UNIXrsyncやmirrorの様な物です。 - 人力検索はてな

http://q.hatena.ne.jp/1073638199

windowsアプリケーションとしてはRealSyncが良さそう。

当ソフトウェアは、2つのフォルダをミラーして同一内容にするツールです。 このソフトを利用することで、フォルダの同期を取ることができ、バックアップ等を簡単にリアルタイムに行うことができます。また、更新されたファイルだけをコピーするため、高速です。

http://www.takenet.or.jp/~ryuuji/realsync/html/topic.htm

rsync自体をwindowsで使うというならこれか。

探してみたところ cwRsync というのを発見。 これも Cygwin 上で動くものなのだが、rsync, ssh, ssh-keygen と cygwin1.dll 等必要最低限のDLL だけがパッケージされていて気軽にインストールできるようになっている。

http://www.naney.org/diki/dk/cwRsync.html

escript

ようやく R11B-4 を入れて escript が使えるようになったんで、試してみた。基本的なルールとしては、
* 一行目は # で始まらないといけない
o shbang を利用しない場合でも、内容はともかく必ず必要みたい
o ゴルフ的には # だけで良し
* main/1 型の関数必須
o 起動時にこれが自動的に呼ばれる
o 引数はコマンドライン引数のリスト
てことで、もしあなごるで escript が使われるようになると hello world は以下のようになる。
% cat hello.erl
#
main(_)->io:format("Hello, world!").

% escript hello.erl
Hello, world!

http://jijixi.azito.com/cgi-bin/diary/index.rb?date=20070408

自分の所のbinにはescriptコマンドがないなと思っていたら昔ダウンロードしたバージョンだったからか。
もう要らなくなるだろうけど、せっかく書いたので起動用のbatもメモ

@echo off
erlc %1.erl
erl -noshell -s %1 main -s init stop
del %1.beam

Erlangの場合

Prologに似た文法を見ていたら試したくなってきた。

rm([],_) -> [];
rm([X|Xs],X) -> rm(Xs,X);
rm([X|Xs],Y) -> [X|rm(Xs,Y)].

>rm:rm([1,2,3],2).
[1,3]

お、2行目の書き方で第1引数のリストの先頭と第2引数が等しい、という意味になってる。
Haskellみたいに

rm (x:xs) y | x==y = rm xs y

とガードを使わなくてもいいんだ。

各硬貨の重さと直径

Wikipediaが硬貨毎のページになってたので一覧にしてみた。

g mm 円/kg 円/m kg/100万円 m/100万円
1 1 20 1000 50 1000 20000
5 3.75 22 1333 227 750 4400
10 4.5 23.5 2222 426 450 2350
50 4 21 12500 2381 80 420
100 4.8 22.6 20833 4425 48 226
500 7 26.5 71429 18868 14 53

重さ順だと10円と50円だけが逆転している
直径順だと1円<50円<5円<100円<10円<500円

見てたら項目を追加したくなってきたので追加。
円/kg、はその硬貨を1kg集めたらいくらになるか。
円/m、はその硬貨を1列に1m並べたらいくらになるか。
kg/100万円、はその硬貨だけで100万円分あったら何kgになるか。
m/100万円、はその硬貨だけで100万円分あったら1列に並べたときに何mになるか。
(各項目は整数部分で四捨五入)

この表の使い方の例

ここに1円玉1kg分と、5円玉1kg分があるとします。
どちらか1つをもらえるとしたらあなたならどちらを選びますか?

答え
1円玉を選んだ人は1000円がもらえます。
5円玉を選んだ人は1333円がもらえます。