[JavaScript] prototypeに直接代入しちゃうのってダメじゃなかったっけ?

JavaScript基礎文法最速マスター - なんとなく日記という記事がはてブ界隈で話題になっていたので、徒然なるままに読んでみて心に浮かんだことをそこはかとなく書きつけてみる。

続きを読む

[Windows] NTFSハードリンクで増分スナップショットをとるバックアップツールを作りました!

タイトルの通り、NTFSハードリンクを使って増分スナップショットを作成するバックアップツールを作ったので公開します。

LiosK's Rosids-Backup-Tool at master - GitHub

Rosids is a snapshot-style backup tool written in Python 3, emulates the things like pdumpfs, `rsync --link-dest' or Apple's Time Machine on Windows using NTFS hard links.

Rosidsは指定したフォルダのスナップショットを作成するだけの単純なバックアップツールですが、NTFSのハードリンク機能を使うことでバックアップに必要なディスク容量や所要時間を節約する機能を持っています。pdumpfsやrsyncの--link-destオプション (参考)、アップルのTime Machineのような機能だと言えば、わかる人にはわかるでしょうか。

Rosidsは、上に挙げたようなツール群と違って、はじめからWindowsをターゲットに作られているので、ジャンクションやファイル属性のようなWindows特有の機能に対するサポートが手厚いです。加えて、日本語環境でテストされているので、Unicodeファイル名に対する配慮もされています。

細かい特徴や詳しい使い方については続きで。

続きを読む

[JavaScript] ランダムなひらがな列を出力するBookmarklet

ちょっとした用事があって、16文字のランダムなひらがな列を生成する単純なBookmarkletを書いたのでメモ。

Bookmarklet

(function(lb, ub, n) {
    var cs = Array(n), span = ub - lb + 1;
    for (var i = 0; i < n; i++) {
        cs[i] = lb + Math.floor(Math.random() * span);
    }
    return String.fromCharCode.apply(String, cs);
})(0x3041, 0x3093, 16)

ソースを見ればわかるとおり、16文字という文字数はコードの最後に指定しているので、そこを書き換えれば任意の長さのひらがな列が生成できます。

ひらがなの範囲は、Unicodeのひらがなの範囲を参考に、「ぁ (U+3041)」から「ん (U+3093)」にしてみました。

MarkScanが公開停止になっていた

以前の記事で紹介した神奈川県教委のMarkScanが公開中止になっているということに今気がついた。

実にもったいない。

ある程度のスキルがない人を対象にするとサポートコストがかさんでしかたがないというのはなんとなくわかるけど、結構よくできたソフトだっただけにもったいない。

オープンソースにしてソースコードを吐き出してくれればいいのになー。

参考

[Concurrent Haskell] 無限リストが止まらない

HaskellのControl.Concurrent.Chanを使って、簡単な並行処理プログラムを作ろうとして試行錯誤したのでメモ。

Control.Concurrent.ChanはHaskellで並行処理をするときに使うことができるFIFOキューライブラリ。複数のスレッドからキューにデータを流し込んで、別のスレッドがそのデータを読み取って処理をしたりすることができる。

Control.Concurrent.Chanを使えば、スレッド間の排他処理とかを全く考えずに済むので、簡単に並行処理プログラムを書けるかと思っていたけど、処理終了時の扱いに悩んだので、ちょこちょこと試行錯誤してみた。

詳細は続きで。

続きを読む