tkh君に日時がローカライズされていないというご指摘をいただく。 手抜き個所である。
perldoc perllocale
あたり。POSIX::strftime については use locale する必要がないので、以下のような感じか。
require 5.004; use POSIX qw(locale_h strftime); my @time = localtime; my $old_locale = setlocale(LC_TIME); print strftime("%A", @time); setlocale(LC_TIME, "ja_JP.UTF-8"); print strftime("%A", @time); setlocale(LC_TIME, $old_locale); print strftime("%A", @time);
手元の環境だと、'ja' だと駄目で ja_JP を指定する必要あり。そのままだと日本語EUCになるので、UTF-8 の時は 'ja_JP.UTF-8'。
しかし指定できる名前は環境に依存する(perldoc POSIX)ので、環境チェックとか面倒だな。
ってそういえば WiKicker では、L10N といっても en と ja しかメッセージを用意していないんだった。 ja 以外は en 用の日時出力にするようにするだけにしようかな。
添付機能を有効にすると、添付ファイルが無いページに対応するディレクトリが無条件に作られてしまう問題を修正。
それから日本語ファイル名のファイルを WikiPage に添付した際、Internet Explorer でそのファイルをダウンロードして保存しようとすると URI エスケープされた文字列がデフォルトの保存ファイル名になってしまいよろしくない。 このため、Content-Disposition ヘッダをつけてレスポンスを返すためのダウンロード用のリンクも追加。
Cotent-Disposition ヘッダでファイル名を指定する際、
ファイル名をシフト JIS でエンコードしてしまうようにした。
ファイル名にシフト JIS で表現できない文字があるかもしれないし、Accept-Language に ja があったからといって Windows のロケールが日本語になっているという保証もないので、かなりいい加減なコードである。
なにか良い方法があったら修正したい。
USB メモリといえば、他人の PC とデータをやりとりする際によく使われるメディアだ。
最近どんどん大容量化していることもあり、ついいろいろなデータを入れっぱなしにしがち。
など、そのまま入れておくのは不安なファイルもある。
ということでやっぱりいくつかのファイルは暗号化しておきたい。さて何かよい暗号化ソフトウェアはないだろうか。
で調べたところ TrueCrypt が有名らしい。Windows と Linux の両方から使えるというのが良い。
ということで試してみた。
ライセンスの関係で Debian GNU/Linux には無いので、ビルドしてインストールする。
まずはビルド。
tar zxvf truecrypt-4.2a-source-code.tar.gz cd truecrypt-4.2a/Linux fakeroot ./build.sh
次にインストール。apt-get install dmsetup してから ./install.sh を実行する。
# ./install.sh Checking installation requirements... Testing truecrypt... Done. Install binaries to [/usr/bin]: Install man page to [/usr/share/man]: Install user guide and kernel module to [/usr/share/truecrypt]: Allow non-admin users to run TrueCrypt [y/N]: y Installing kernel module... Done. Installing truecrypt to /usr/bin... Done. Installing man page to /usr/share/man/man1... Done. Installing user guide to /usr/share/truecrypt/doc... Done. Installing backup kernel module to /usr/share/truecrypt/kernel... Done.
ここからは実際の利用。まず最初にボリュームファイルを作成する。
$ truecrypt -c vol.tc Volume type: 1) Normal 2) Hidden Select [1]: Filesystem: 1) FAT 2) None Select [1]: Enter volume size (bytes - size/sizeK/sizeM/sizeG): 128M Hash algorithm: 1) RIPEMD-160 2) SHA-1 3) Whirlpool Select [1]: Encryption algorithm: 1) AES 2) Blowfish 3) CAST5 4) Serpent 5) Triple DES 6) Twofish 7) AES-Twofish 8) AES-Twofish-Serpent 9) Serpent-AES 10) Serpent-Twofish-AES 11) Twofish-Serpent Select [1]: Enter password for new volume 'vol.tc': Re-enter password: Enter keyfile path [none]: TrueCrypt will now collect random data. Is your mouse connected directly to computer where TrueCrypt is running? [Y/n]: Please move the mouse randomly until the required amount of data is captured... Mouse data captured: 100% Done: 125.85 MB Speed: 15.66 MB/s Left: 0:00:00 Volume created.
基本的にはデフォルトで OK。確保容量とパスワードはそれぞれ決めて入力する。
マウントポイントを作成してマウントする。 自分の場合ロケールを ja_JP.UTF-8 にしているので、日本語ファイル名を読み書きするために -M utf8 しておく必要がある。
cd mkdir mnt truecrypt -M utf8,fmask=133 -u vol.tc mnt # マウント Enter password for '/home/naney/vol.tc': # パスワード入力
マウントができたら後は普通に読み書きができる。読み書きが終わったら、truecrypt -d でアンマウント。
truecrypt -l # マウントされているもののリスト truecrypt -d mnt # アンマウント
Windows 版は truecrypt-4.2a.zip を展開して、中に含まれているインストーラを使ってインストール。
TrueCrypt を起動して、先ほど作成したボリュームファイルとつけたいドライブ名を指定してマウントすると、うまく中身を読み書きすることができた。
また TrueCrypt にはトラベラーモードというものがある。 メニューから [Tools] -> [Traveller Disk Setup] を実行して、指定したいメディア(ディレクトリ)に、インストールせずに実行するのに必要なファイル群を配置することができる(オプションで autorun.inf を作ることも可能)。
これを実行して USB メモリに TrueCrypt を入れておけば、TrueCrypt をインストールしていない Windows PC 上でも TrueCrypt をトラベラーモードで実行してマウントできるようになる (ただし、管理者権限が必要)。
母艦である Linux BOX からアクセスできるというのが便利。 Linux BOX に USB メモリを挿した後、truecrypt でマウントして Unison で同期してアンマウントまでの一連の処理を流れ作業でできるようにしたい。
Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。
nDiki は1999年1月に始めたコンピュータ日誌を前身とする Naney の Web 日記(兼パーソナルナレッジベース)です。
#nNote タグがついている記事は他の記事に比べて、より断片的・未整理・不完全なちょっとしたノートです。まだ結論に至っていない考えなども含まれます。頻繁/大幅に更新したり削除したりすることがあります。
ナレッジベースアプリケーション Obsidian で書いているノートの一部を notes.naney.org で 公開しています。
※内容は個人的見解であり所属組織とは関係ありません。