iconv

日本語のエンコード変換はいろいろな方法がありますが、とりあえず iconv, nkf あたりをおさえておくといいでしょう。(すぐわすれるのでメモ)

$ iconv -f Shift_JIS -t UTF-8 sjis.txt > utf-8.txt
$ nkf -Ew euc.txt > utf-8.txt

TSVからSQL文を生成するスクリプト

UPDATEのSQL文などを、TSVから生成するスクリプトとかあると、重宝します。ということで、作りました。最近、シェルスクリプトに頼ることが多くなってきました。それだけ時間が足りないということなのか、単にEclipseを起動するのが面倒になったのか、作ったプログラムの管理をするのが嫌になったのか、いろいろと思いあたる節はありますが、まぁ、どうでもいいことです。Macですぐに試せるから、というのは環境的には大きな変化かもしれません。

!/bin/sh
fileName=$1
id0=$2

function createUpdateSql
{
  id=$1
  v=0
  if [ $# = 2 ]; then
    v=$2
  fi
  echo "UPDATE user SET c1 = $v WHERE id = $id and id0 = $id0;" >> a.sql
}

sed "s/,/    /g" $fileName > $fileName.tsv
echo "" > a.sql
while read _line ; do
  createUpdateSql $_line
done < $fileName.tsv

使い方は、下記のような感じ。fileNameにはCSVファイル名をいれる。id0はSQL文で必要なのでいれてある。複雑なCSVには対応していないし、汎用性はないけど、こういうのをテンプレートとしてもっているとそれなりに使える。

$ ./a.sh fileName id0

ちなみに、echoコマンドがMacとLinuxでは動作が違うような気がします。「-n」オプションがLinuxでないと効かない。

それから、直接mysqlやpsqlコマンドをうつという方法もあるが、個人的にはいったんSQL文のファイルに落として問題がなさそうだということを確認してから、DBへ適用するのがいいと考えています。コンパイラなどでも中間表現を使うのだが、途中経過がわかるようにしておいた方が、何かうまく動作しなかったときに、追跡しやすいからです。

URL Rewrite

RewriteCondを使ったURLリライトの設定について調べました。なかなか奥が深いですね。正規表現も言語によって微妙に違ったりする物なので、少々面倒なのですが、使いこなせると便利なので、積極的に利用したいところです。

How to boot a virtual machine from CD drive on VMware Player

VMware Player で動く仮想マシンを VMware PlayerのCDドライブ(実際はホストマシンのCDドライブ)から起動しようとしたのですが、設定ファイルで指定ができませんでした。起動時にESCキーを押すと、何からBootさせるか選択ができたので、それで対応をしました。これで、無事LinuxのひとつであるCentOS5.2の仮想マシンをCDからインストールできました。

mkisofs

mkisofsを使うと、ISOイメージを作ることができるそうです。targetDirectory配下のファイルを持つdisk.isoを作成するには下記のとおりです。ちなみに、Ubuntsuでは、mkisofsコマンドは、apt-getコマンドでそのままインストールできました。

$ mkisofs -r -J -o disk.iso targetDirectory/

maillog

久しぶりにmaillogを眺めた。Logwatchの結果が気になり、postfixの設定をかえたところ、これまで届いていなかった監視サービスからのメールががんがん届くようになってびっくり。いろいろな理由で、監視サービスが誤動作していたのですが、メールは届いていなかったのです。動作自体はしていたので、まったく気がつきませんでした。

ということで、監視サービスの設定やら、監視対象の設定やら、いろいろ設定してみたところ、そちらは解決したのですが、メールの設定がまだ怪しくて、maillogにエラーがでています。設定を変更しながら、いくつかは消したのですが、全部を消すことはできませんでした。また、きちんとみようと思います。

Debian 5.0

見逃していました。「Debian Report:バレンタインにDebianを――2月14日、Debian 5.0リリースへ – ITmedia エンタープライズ」ということで、2/14にDebian 5.0がリリースされていた模様です。ApacheもTomcatもバージョンアップされて、どんどん進化していきますね。

我が家のFedoraはあいかわらずよくセキュリティアップデートしているし、Windowsマシンもしょっちゅうセキュリティアップでーとしているので、なんだか疲れてしまいます。マシンをたくさん持っているのがいけないのですが、それぞれ用途がちがうので、どうしようもありません。ハードもOSも選択肢が多いのはいいのですが、こういう使い続けるという時には、種類が多いと苦労も多くて大変です。仮想マシンも増えてきているので、管理コストは増大する一方…。もちろん実機を同数持つのよりも楽なんですけどね…

Debian 5.0 はどうしようかなぁ。仮想マシンにインストールするか、やめておくか、悩みます。