New VAIO Z

ちょっと間が空いてしまいました。

4年前に購入したVAIO type T(TZ)を使っていたのですが、内蔵HDDの遅さに耐えかね、SSDに換装しようといろいろ調べていたところに、VAIO Zの広告を見て、ほぼ衝動買いです。

4年ぶりに新しいパソコン。
Core i7-2620M / DDR3 Dual Channel 8GB / SSD RAID0 256GB(128GB × 2)

決めた理由は、ストレージが爆速なところ。SSDのモジュールは、Samsung。

crystaldiskmark

シーケンシャル・リードが突出してますが、これはSerial ATA 6Gb/s に加えて、SSD RAID0のおかげでしょうか。

ただ、RAIDシステムに、Intel Rapid Storage を使用しているので、Trimコマンドが効かないみたい。MLCの関係で寿命が短いかもしれません。まぁ、3年ほどもってくれれば・・・。SSDモジュール自体はTrimに対応しているので、こういうのはRAIDドライバとかでなんとかなるもんなんでしょうかね???

trim  【インテルラピッドテクノロジーのヘルプファイルより】

で、前の環境を再現しつつ、Visual Studio Express Editionを2008から2010にバージョンアップ・・・したのはいいのですが・・・2008と2010とで全く違っててちょっと後悔。設定などが大幅に違っているので、いちから勉強しなおし(ーー;;;

それと、Active Perl の 古いバージョン(5.8系列)のダウンロードが、有料になってしまって・・・。前にダウンロードしたファイル、削除するんじゃなかった・・・・。しょうがないので、Active Perlの最新版 5.14 をインストール。

あ~あ。

Perlの綺麗な始め方は?

特に意味ないです。

Perl コードを書くとき、↓ のようなテンプレートから mainサブルーチンを書くようにしてました。

#!/usr/bin/perl
use strict;
use warnings;

#スタートアップ・コード
sub main
{
  my @argv = @_;
  
  print "Content-type: text/plain;charset=utf-8\n\n";
  print "ほげほげ\n";
}

#その他のコード
sub func
{
  1;
}
#スクリプト実行開始
main(@ARGV);
#スクリプト実行終了

ファイルの最後でmain をコールすることで、Cとかのmain関数を真似て、自己満足してたんですが・・・

なんか最後に main をコールするところが、ちょっと格好悪く感じて、他に良い書き方ないかな~、と模索してました。バカでしょ(^^;;;

で、最近 jQuery を使ってjavascriptコードを組むことが多いので、その作法にならって、下記のようにしてみた。

use strict;
use warnings;

#スタートアップコード
&{
  sub
  {
    my @argv = @_;
    print "Content-type: text/plain;charset=utf-8\n\n";
    print "ほげほげ\n";
  }
}(@ARGV);

#その他のコード
sub func
{
  ...
}

main というCの名残が消えてしまいましたが・・・、ちょっとスッキリ! ^^

それと、Perlモジュールを作るとき、たとえばコンストラクタ(new)で以下のようにハッシュをクラスに関連づけることが多いのですが、

sub new
{
  my $param = shift;
  my $class = ref($param) || $param;
  my $this = { x => [], y => {} };

  bless($this ,$class);

  return $this;
}

問題は、そのゲッターとかセッター。
$this->{x} とか $this->{y} とかでアクセスするのはちょっと頂けない。とはいいつつ、例えば、

sub x { return shift->{x};}
sub y { return shift->{y};}

とかやるのは正直面倒。最近知ったのですが(^^;;; caller という関数が使えば・・・

sub getter {
  my @name = split(/::/,(caller 1)[3]);
  return shift->{pop @name};
}
sub x { return shift->getter;}
sub y { return shift->getter;}

#追記  ↑より↓の方がコピペしなくていいかもネ。あってんのかな?
no strict 'refs';
foreach my $name_(qw/x y/)
{
  *{__PACKAGE__.'::'.$name_} = sub { return shift->{$name_};}
}

という方法で・・・・、あ、Class::Accessor 使えば良かったんだ。。。orz

HHKB Professonal 2 with AX Keyboard driver

メモです。

キーボードを 念願だった、PFU の Happy Hacking Keyboard Professional 2 に買い替えました。予算が足らなくて、Type-Sは見送りましたけど・・・。

前は日本語配列なLite版を使っていたんですが、とうとう買ってしまいました!この件は、余所のくだらない日記ブログに書いたので(^^;;;こっちでは、英語配列に変更したときの設定をメモ。

DSC00241

まず、キーボードのDIPスイッチにて、モード設定を Lite EXT.モードに。これで、ダイヤモンドキー(っていうのかな?)をWindowsキーに。それと、ALTキーとダイヤモンドキーを入れ替え。

あとは、PFUで配布されている、HHKBキー配列切替ツール で、まずはキー配列を英語配列に切替える。

で、そこで終わればいいんですが、IMEトグルが、英語配列だと、ALT + 「`」 なのでかなり不便。xkeymacsでcontrol + セミコロン に割り当ててるとは言え、たまにキーフックが効かなくときがあるので・・・、この際だから、右Altキーに[漢字]キーを割り当てる方法 に載っている方法で、右ALTキーにIMEトグルキーを割り当てることにした。

レジストリをいじる。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\i8042prt\Parameters を開いて以下のキー・値に修正。

LayerDriver JPN  = kbdax2.dll
OverrideKeyboardIdentifier = AX_105KEY
OverrideKeyboardSubtype = 1

Windows2000/XPの頃の記事だけど、Windows7(64bit) でも問題無かった。この辺はほとんど変わってないんだなぁ。AXキーボード・・・残念ながら見たことない(^^ゞ

というわけで、かなり快適な入力環境が整いました(^^)

あとは・・・そうですね、PFUから Bluetooth版もしくは無線版のHHKB Pro が出ることを強く望んでます!!!

mod_apreq2 のインストール

テストサーバー(NP11 w/ CentOS5)にmod_apreq2 をインストールしたので、そのメモ(備忘録)です。

mod_perl2で、Apacheの処理フェーズにフックするモジュールを書いて、いろいろ遊んでます。

結構以前からmod_perl2的なものは勉強がてら書いていたんですが、CGI的な使い方だと、かなり制約が多くて、ハッキリ言って苦労に見合うだけのものが得られません(笑) そういう用途はmod_fcgid とか遙かに良い、ということに最近になって気付いて(遅そ!)、リクエスト処理に介入してゴニョゴニョしたり、入力された(POSTされた)データをいじったり、監視したり、というような、どちらかというとApacheの動作をカスタマイズするようなコードを Perl で書くのが面白く、勉強と遊びの半々になってます(^^)

・・・で、でも、やっぱりCGI的に使う用途(PerlResponseHandlerのような)では、パースされた入力が欲しい(^^;; つまり、Apache2::Request が使いたい。。。 というわけで、mod_apreq2をインストールしました。

最初は、yum install mod_apreq とかで簡単にできるだろう、と勝手に思ってましたが、not available でした(^^;;;

しょうがないので?、ソースからビルド。僕の環境では、ソース取ってきてmake だけでは、エラーでした。事前にインストールするものがあって試行錯誤。READMEとかINSTALLに書いておいて欲しいな・・・。

CPANからExtUtils::XSBuilderモジュールと、yumでmod_perl-devel をインストールしておかないとmakeでエラーでました。はじめから入れとかんかい!と怒られそうですが…

> cpan ExtUtils::XSBuilder
> yum install mod_perl-devel

ソースを取得して適当なディレクトリに展開。

> wget –nd http://ftp.kddilabs.jp/infosystems/apache//httpd/libapreq/libapreq2-2.13.tar.gz
> tar xvzf  libapreq2-2.13.tar.gz

関連するperl モジュールもインストールしたいので・・・ ./configure じゃなく・・・

> perl Makefile.PL --with-apache2-apxs=/usr/sbin/apxs
> make
> make install

あとは、Apacheの設定ファイルに、mod_apreq2.so を食わせて、インストール終了。
 
 
 
ん~、最近、Linux(CentOS)やめて、FreeBSDにもどろうかな・・・とも思いはじめまして、でも僕がFreeBSD触ってたのって10年以上も前だし・・・、しかも FreeBSD(98)の時代だし(^^;;; と思って、調べたら・・・まだ、リリースされ続けていたんですね・・・。
どーしょっかなー。

ブラック・ジャパンを見た

最近、僕の身近な知り合いが、痴漢の疑いで勾留された。状況から見て、明らかに示談金目当て。

調べてみると・・・今のシステムでは、警察に連れて行かれた時点で、完全にアウト。
警察は検挙率の向上、弁護士は最初っから、ろくに仕事もせず示談にして早々に幕引きをはかりたがり、高い弁護料を取る。

いや、分かってる。警察の言い分、弁護士の言い分は、良く分かる。
結局、示談金を積んで告訴取り下げになるだろう。

・・・何も変わらない。

泣き寝入りしている人も多いと聞く。こういう日本を見ると、何ともやるせない思いでいっぱい。
件の勾留された人が言った。「ブラックジャパンを見たよ」って言われたのが印象的だった。

今回の件で、一番分かったことは、日本の新聞ってのがいかに紙くずだってこと。
外国じゃ、日本の報道機関なんて見向きもされない。完全なお子様扱い。ようやく分かった。
そりゃそうだ、警察の発表をそのまま何の疑いもなく垂れ流してるだけだもの。で、なんかあったら、警察を叩く。
記者は何も調べないし、疑わないし、言うだけ、書くだけ。

僕は、この先、こんな役に立たない新聞を読んで、もっともっと「バカ」になりますよ。