タイトル未定
タイトル未定
posted with amazlet at 09.06.24
Floor on the Intelligence
AMC (2009-07-08)
売り上げランキング: 38957


最近買ったピアノハウスがことごとく当たりでちょっとホクホクです。

そんな中の一つがNew World Recordsからリリースされた田中隼人の別プロジェクト、Floor on the IntelligenceのUntouchable。

とにかくさびの日本人のわびさびをくすぐる泣きのフレーズがたまりません。久々にぐっときました。

ピアノハウスというにはちょっと控えめだけど、全編にわたってしずくのように流れるピアノフレーズと盛り上がるピアノソロが気持ちいいです。

すでにiTunesで配信されてるので是非。

で、そんなUntouchableを収録した1stアルバムが7月8日に発売されるそうです。amazonではまだタイトル未定になってますが、この辺見てるとタイトルはROMAHOLICで11曲入りになりそうです。

あ、本人のmyspaceでも聴けるので是非。

RIMG0327.JPG


そろそろ書いておくかってことで。

Internet DJって単語があるかどうかわかりませんけど、要は家でDJしてそれをインターネットで中継してる人たちで、最近のPCDJの普及によるデバイスコストの低下、ファイルによるメディアの入手し易さ、そしてUstreamなどのインフラの整備で最近増えてきました。

ネットでのDJ中継は日本で2000年前後にYahoo! チャットではやってたのが僕にとっては最初の出会いでした。当時のYahoo! チャットは音声の双方向通信ではなくトランシーバーのように発言ボタンみたいのを押すと音を流し続けられるという特徴を生かして(押しっぱなしツールなんてのもありました)持ち回りでDJをするという一種のコミュニティができあがっていて、音楽カテゴリでは様々なジャンルに分かれていて、平日でも多い部屋だとリスナー50人とか結構ありました。当時デバイスはPCDJなどなかったのでターンテーブルかCDJでした。

で、クラブ仲間と平日は夜な夜なネットでDJごっこして週末はクラブで回すみたいなことをしてたのですが、仕事が忙しくなったのとクラブから足が遠のいたのをきっかけにしばらく趣味としてもDJから離れていました。

しばらくして、また趣味でDJを始めるわけですが、もうクラブに足げく通う元気はなくなっているので、ネットで中継しようと考えました。けど、Yahoo! チャットの困った点が人間関係が鬱陶しいのと音が猛烈に悪い(たぶん22KHzとかそんなもん)ので自分でサーバーを立てて身内だけに配信することを始めました。SHOUTCastやWindows Media ServerやRed5なんかを試しましたが、自宅配信の場合のネックはネットワークの帯域を猛烈に食う点で、当時はADSLだったので公称上り1Mbpsではせっかく音質を上げてもせいぜい5人とかしかさばけないし、光になっても動画をつけたら20人とかが精一杯でした。インフラの壁ってやつです。

2006年、そこに登場したのがStickam! Japanで、このサービスのおかげで必要な帯域はサーバーに配信する分だけで済むようになりました。このころからまたネットでDJをやる頻度があがりました。また、StickamでもたくさんのDJがプレイするようになりました。

そして2007年にはUstreamが広まり、それと同時にPCDJが普及を始めて最近の盛り上りに拍車をかけている感じです。最近ではniteatustのような面白い試みもあったりして楽しみな感じです。

まー、ぶっちゃけいくらPromo Useのものを選ぼうと著作権などグレーなところがあるのでまだまだアングラなカルチャーなのでこれからも見守っていきたいと思います。

というわけでUstreamやStickamでたまに回してるのでよかったら聴きにきてちょ。

まつもとゆきひろ コードの世界‾スーパー・プログラマになる14の思考法
まつもとゆきひろ
日経BP出版センター
売り上げランキング: 169


最近全然本を読んでないです。最近買った本といえばジョジョのストーンオーシャンの文庫本という体たらくぶりです。まぁ、あれだけ飲み歩いていたらこうなりますよね。

というわけで、本書を買ったのも某飲み会の行きがけにネタ半分で買って行ったのがきっかけです。ご覧の通り、某二代目リーダーの写真にも負けないダンディな表紙なので軽いつかみになりました。ありがとうございます。

で、肝心の中身は、さすがに説明の多くがRubyで言及されているので、Rubyをあまり知らない自分にとってはRubyの言語思想を学べて勉強になりました。が、むしろRubyを学ぶというよりは若いエンジニアの方がプログラミング言語の基礎、歴史など勉強するのにオススメです。範囲がオブジェクト指向からAJAX、関数型言語と幅広いのですが、非常に説明が丁寧ですし、わかりやすい文体なので読みやすいです。

それにしても本は読まないとどんどん読む力が落ちて読み終わるのに時間がかかるようになりますね。ちょっとだけ反省してリハビリ開始したいと思います。

良くあるDBICのサンプルではDBIx::Class::Schema::load_classes()を使ってクラスのロードを行っています。

CD.pm
package CD;

use strict;
use warnings;

use base 'DBIx::Class::Schema';

__PACKAGE__->load_classes;
1;
load_classes()はクラスを指定しないと
CD
    Album
    Track

という構成において自動的にクラスをロードすることができます。

ここでResultSetの拡張をしたいと考えます。例えば

CD/ResultSet/Album.pm
package CD::ResultSet::Album;

use strict;
use warnings;

use base 'DBIx::Class::ResultSet';

sub search_order_title {
    my $self = shift;

    return $self->search({}, {'order_by' => 'title'});
}
1;

のようにDBIx::Class::ResultSetを継承したクラスを作ってCD::Album::resultset_class()でロードします。ここで問題になるのがこのクラスのネームスペースをどうするかという点です。

CD::ResultSet::*にしてしまうと、load_classes()でwarningが出る羽目になります。かといってload_classes(qw/Album Track/)などとクラスを指定するのもクラスが増えてきたときに大変そうです。またはResultSet::CD::AlbumのようにCDより上のネームスペー>スを使うのも、あんまりいけてない感じです。

そこでDBIC::Schemaにはもう一つクラスのロード手段としてload_namespaces()が用意されていているのこれを使います。

CD.pm
package CD;

use strict;
use warnings;

use base 'DBIx::Class::Schema';

__PACKAGE__->load_namespaces;
1;

load_namespaces()はデフォルトで

CD
    Result
        Album
        Track
    ResultSet
        Album

という構成をとります。

これのメリットはネームスペースがすっきりするだけではなく、ResutlSet::*にResutl::*と同じ名前のResutlSetクラスを作ると、Resultクラスでresutlset_class()で指定しなくても自動的にロードしてくれる点です。(ただ逆もまたしかりで、上の構成でResultSet::Hogeなどを作ると対応するResultクラスがないとwarningがでます。)

ちなみにDBIx::Class::Schema::Loaderを使ってデータベースからクラスを起こす場合は
perl -MDBIx::Class::Schema::Loader=make_schema_at,dump_to_dir:./lib -e 'make_schema_at "CD", {use_namespaces => 1, debug => 1}, ["dbi:SQLite:cd.db","",""]'
のようにuse_namespacesオプションを指定するといいです。

今回のコード

CD.pm
package CD;

use strict;
use warnings;

use base 'DBIx::Class::Schema';

__PACKAGE__->load_namespaces;
1;
CD/Result/Album
package CD::Result::Album;

use strict;
use warnings;

use base 'DBIx::Class';
__PACKAGE__->load_components(qw/Core/);
__PACKAGE__->table('album');
__PACKAGE__->add_columns(
    id => {
        data_type         => 'INTEGER',
        size              => 11,
        is_nullable       => 0,
        is_auto_increment => 1,
    },
    title => {
        data_type   => 'VARCHAR',
        size        => '255',
        is_nullable => 0,
    },
);
__PACKAGE__->set_primary_key('id');
__PACKAGE__->has_many(
    tracks => 'CD::Result::Track', 'album_id', {order_by => 'position'}
);
1;
CD/Result/Track.pm
package CD::Result::Track;

use strict;
use warnings;

use base 'DBIx::Class';
__PACKAGE__->load_components(qw/Core/);
__PACKAGE__->table('track');
__PACKAGE__->add_columns(
    id => {
        data_type         => 'INTEGER',
        size              => 11,
        is_nullable       => 0,
        is_auto_increment => 1,
    },
    album_id => {
        data_type   => 'INTEGER',
        size        => 11,
        is_nullable => 0,
    },
    position => {
        data_type   => 'TINYINT',
        size        => 1,
        is_nullable => 0,
    },
    title => {
        data_type   => 'VARCHAR',
        size        => '255',
        is_nullable => 0,
    },
);
__PACKAGE__->set_primary_key('id');
__PACKAGE__->add_unique_constraint(
    track_uq_album_id_position => [qw/album_id position/]);
__PACKAGE__->belongs_to(album => 'CD::Result::Album', 'album_id');
1;
CD/ResultSet/Album
package CD::ResultSet::Album;

use strict;
use warnings;

use base 'DBIx::Class::ResultSet';

sub search_order_title {
    my $self = shift;

    return $self->search({}, {'order_by' => 'title'});
}
1;

先日、カジュアルな飲み会の席でPerl 5.10が2007年12月19日にリリースされてから早1年半が経ったけど何か普及してなくない?って話をしてました。

そんな中、ノートのOSをUbuntu 8,04から9.04に変えてUbuntuは8.10からすでに5.10がデフォルトでインストールされてるということを知り、5.10は普及してないというのは自分の単なる思い込みかもしれないと思い、ちょっと調べることにしました。

で、見つけたのがDistroWatch.comという、300ちかいのLinux/BSDのディストリビューションの情報が紹介されているサイトで、ここからWeb::Scraperで各ディストリビューションの最新バージョンのPerlのバージョンをスクレーピングしてみました。ついでに最近見つけたChart::Clickerというモジュールでグラフを作ってみました。

結果は

foo

5.10.0124
5.8.8124
none29
5.8.76
5.8.64
5.8.03
5.8.43
5.8.93
5.8.53
5.8.21
5.9.41
5.6.11


と、5.8.8と5.10.0が同数という結果になりました。もちろんわけのわからんマイナーなディストリビューションや単なる派生ディストリビューションも含まれるのでこの情報にどこまでの意味があるかわかりませんが、なかなか面白い結果になりました。

そもそもメジャーなディストリビューションで5.10じゃないのはRHELとCentOSくらいです。(ともに6からはFedora 11ベースになるはずなので5.10になると思います。)後はDebian, Fedora, Ubuntu, openSUSE, Mandriva, Slackwareと軒並み5.10がデフォルトなので、ディストリビューションという観点からは中々の普及率と言えると思います。

後はレンタルサーバーのOSの移行がどこまで進むかにかかっていると思います。

ちなみに今回使用したコード

emobileのD11LCというUSBモデムを使っています。8.04ではusbserialというドライバがモジュールだったのが9.04からカーネルに組み込まれたため、設定を変える必要があったのと毎回探すの面倒なのでメモっておきます。

usb_modeswitchのインストール
D11LCはそのままつなぐとUSBストレージとしてみえるのでモード切り替えを行うためusb_modeswitchをインストールします。コンパイルにはlibusbが必要なのでこれもインストールしておきます。

sudo apt-get install libusb-dev
wget http://www.draisberghof.de/usb_modeswitch/usb_modeswitch-0.9.7.tar.bz2
tar jzvf usb_modeswitch-0.9.7.tar.bz2
cd usb_modeswitch-0.9.7
make
sudo make install

usb_modeswitchの設定
/etc/usb_modeswitchから以下の部分の;を外して有効化します。

/etc/usb_modeswitch
--snip--
########################################################
# Alcatel OT-X020 (aka MBD-100HU, aka Nuton 3.5G), works with Emobile D11LC
#
# Contributor: Aleksandar Samardzic

DefaultVendor=  0x1c9e
DefaultProduct= 0x1001

TargetVendor=   0x1c9e
TargetProduct=  0x6061

MessageEndpoint=0x05
MessageContent="55534243123456780000000000000606f50402527000000000000000000000"
--snip--

udevルールの作成
毎回usb_modeswitchを起動するのは面倒なのでUSBにモデムが差されたら自動的に起動するようにudevルールを作成します。

/etc/udev/rules.d/00_modem_d11lc.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="1c9e", ATTR{idProduct}=="1001", RUN+="/usr/sbin/usb_modeswitch -Q"

カーネルパラメータの設定
8.04ではmodproveでusbserialモジュールの設定を変更していましたが、9.04ではカーネルに組み込まれたのでカーネルパラメータとしてusbserial.vendor=0x1c9e usbserial.product=0x6061を渡します。

/boot/grub/menu.lst (kernelの行は見た目の都合上折り返してますが一行です)
--snip--
title       Ubuntu 9.04, kernel 2.6.28-11-generic
uuid        43c8028b-a7d0-453a-bea0-ee259aaa246fe
kernel      /boot/vmlinuz-2.6.28-11-generic root=UUID=43c8028b-a7d0-453a-bea0-ee259aaa246f 
ro quiet splash usbserial.vendor=0x1c9e usbserial.product=0x6061
initrd      /boot/initrd.img-2.6.28-11-generic
quiet
--snip--

GNOME-PPPのインストールと設定

sudo apt-get install gnome-ppp

gnome-pppはroot権限で実行する必要があるので、パネルのメニューの編集から[インターネット]-[GNOME PPP]を選択[プロパティ]をクリックして[コマンド]をsudo gnome-pppに変更します。

さらに、sudoでパスワードを毎回聞かれるのはたまらないのでvisudoで
--snip--
%admin ALL=NOPASSWD: /usr/bin/gnome-ppp

を追加します。

GNOME-PPPの設定は
Username: em
Password: em
Remember password: on
Phone number: *99***1#

Setup:
    Modem:
        Device: /dev/ttyUSB0
        Type: Analog Modem
        Speed: 460800
        Phone Line: Tone
        Volume: Off
        Options:
    Desktop Integration:
        On connection:
            Minimize: on
            Dock in notification area: on
        Connection:
            Auto reconnect: off
            Abort connecting if line is busy: off
            Abort connecting if no dialtone: on
            Check carrier line: on
            Check default route: on
            Ignore terminal strings (stupid mode): on
            Send custom reply: off
な感じです。

で、再起動して、モデムを差してGNOME-PPPを起動してConnectでオッケーなはずです。

参考:

RIMG0319.JPG

Inspiron Mini 12はチップセットがPoulsboのため、8.10ではドライバ周りがリリースされずに苦い思いをしてきたわけですが、ここにきてUbuntu Mobile Teamが結構がんばってくれたみたいで、9.04リリース時には間に合わなかったものの比較的早くに9.04用のドライバ群がリリースされたので9.04にシフトしてみました。

今回は普通にUbuntu 9.04デスクトップ版をインストールしました。この時点で画面解像度以外で特に問題もなくインストールできました。

あとはLaunchpadのPPA for Ubuntu Mobile Teamにあるとおり

deb http://ppa.launchpad.net/ubuntu-mobile/ppa/ubuntu jaunty main
deb-src http://ppa.launchpad.net/ubuntu-mobile/ppa/ubuntu jaunty main

をリポジトリソースに追加してやって、パッケージマネージャからxserver-xorg-video-psbをインストールして再起動すればOKです。

9.04にしてまだ時間が経ってないのでなんともいえないですが、起動は確かに速くなった気がします。ウィンドウの描画もキビキビした感があるような気がするけど、ベンチ取ってるわけではないので気のせいかも知れません。

ちなみに主にこんな感じのものがインストールされます

  • xserver-xorg-video-psb - X.Org X server -- Interl Poulsbo (2D)
  • psb-modules Kernel module built for -generic or -lpia kernel
  • libdrpm-poulsbo1 - Userspace interface to kernel DRM services -- runtime

また

  • libgl1-mesa - The OpenGL utility library (GLU)
  • libgl1-mesa-dri - A free implementation of the OpenGL API -- DRI modules
  • libgl1-mesa-glx - A free implementation of the OpenGL API -- GLX runtime

とか入ってるので3Dアクセラレーションも効くのかな、などと思いつつも必要ないので効力の程はわかりません。

追記: dmesgしたら
[drm:psb_xhw_add] *ERROR* No Xpsb 3D extension available.
とか出てたので効いてないっぽいですね。というか、3Dアクセラレーションとビデオ再生アクセラレーションはプロプライエタリなファームウェアが必要なのでちょっと期待できないですね。


さらに追記:
http://launchpad.net/~ubuntu-mobile/+archive/ppa/+sourcepub/605405/+listing-archive-extra
http://launchpad.net/~ubuntu-mobile/+archive/ppa/+sourcepub/605406/+listing-archive-extra
8.10ではfirmwareや3DのXドライバが出てて3Dサポートもされてるので期待できそうです。

JPAセミナー#1でJay Shirley氏が絶賛していたlocal::libですが、その際に「異なるバージョンのモジュールをテストするのにも便利ですね」とか言っていた気がするので、早速やってみました。

お題は、Catalystで先日公開されたMoose版の5.8と旧5.7をベンチマーク比較してみます。

まずはCatalyst::Runtime 5.71001を$HOME/cat5.7にインストールします。

$ cd
$ perl -MCPAN -Mlocal::lib=cat5.7 -e 'CPAN::install("M/MR/MRAMBERG/Catalyst-Runtime-5.71001.tar.gz")'

次にCatalyst::Runtime 5.8(この時点での最新版は5.8001でした)を$HOME/cat5.8にインストールします。

$ cd
$ perl -MCPAN -Mlocal::lib=cat5.8 -e 'CPAN::install(Catalyst::Runtime)'

$HOME/MyAppに新しいCatalystアプリケーションを作ります。

$ cd
$ catalyst.pl MyApp
$ cd MyApp

後は

$ perl -Mlocal::lib=~/cat5.8 script/myapp_server.pl  

とやればテストサーバーがCatalyst 5.8で起動するし

$ perl -Mlocal::lib=~/cat5.7 script/myapp_server.pl  

とやれば5.7で起動します。

で、参考までにベンチ結果ですがベンチ用に最小構成にした以下のアプリケーションをテストサーバーで立ち上げてとってみました。

lib/MyApp.pm
package MyApp;

use strict;
use warnings;

use Catalyst::Runtime;
use parent qw/Catalyst/;
__PACKAGE__->config( name => 'MyApp' );
__PACKAGE__->setup();

1;
lib/MyApp/Controller/Root.pm
package MyApp::Controller::Root;

use strict;
use warnings;
use parent 'Catalyst::Controller';

__PACKAGE__->config->{namespace} = '';
sub index :Path :Args(0) {
    my ( $self, $c ) = @_;

    $c->response->body( $Catalyst::VERSION );
}

1;

ab -n 1000 -c 10 http://localhost:3000/の結果は

5.71001
Requests per second:    164.87 [#/sec] (mean)
Time per request:       60.653 [ms] (mean)
Time per request:       6.065 [ms] (mean, across all concurrent requests)
Transfer rate:          18.30 [Kbytes/sec] received
5.80001
Requests per second:    156.48 [#/sec] (mean)
Time per request:       63.907 [ms] (mean)
Time per request:       6.391 [ms] (mean, across all concurrent requests)
Transfer rate:          17.37 [Kbytes/sec] received

でした。
この辺は参考程度にしかなりませんが、そこそこいい線行ってると思います。

Catalyst 5.8系、通称catamooseの最初のリリースバージョンであるCatalyst::Runtime 5. 80001がCPANにアップされました。

[Catalyst] [ANNOUNCE] Catalyst Runtime 5.80001
The Catalyst Core Team is proud to announce that we've just shipped  
the next major release of the Catalyst framework, version 5.8001.  
This release is the result of the helpful contributions of a large  
number of people, comprising documentation, new features, bug fixes  
and entire branches of refactoring, and has taken over twelve months  
work.

5.8系の大きな変更はcatamooseの通称どおりMooseの採用にあります。ただし、5.8系ではインターフェースとしては5.7系との後方互換があるので多くのケースではそのまま移行できるとのことです。

また、MROとしてNEXTからC3への移行や、古いM|V|Cのネームスペースの廃止、setupフェーズのhook pointの追加、細かなバグフィックスなどが含まれています。

この辺の情報はすでにドキュメント化されておりCPANに上がっています。

まだCatalyst::DevelやCatalyst::Manualのほうは更新されていませんが、この辺も徐々に追い付くと思われます。

RIMG0247.JPG

今年もプロ野球が開幕して早一週間、2009年関東開催一発目、対読売ドーム三連戦に超気合入れて行って参りました!






























...
orz


RIMG0242.JPG

すっかり春ですね。( ゚ ρ ゚ )


レッズの2009年ホーム開幕戦行ってきました。

RIMG0197.JPG

フィンケ新体制で迎えた開幕戦は鹿島にコテンパンにやられたレッズですが、ホーム開幕戦はさっそくスタメンをいじってきました。

まず前線は前節全く見せ場のなかった高原を下げてエジミウソン。ディフェンスは鹿島にやりたい放題にやられたサイドを平川を変えて右に暢久を入れて細貝を左にシフトした布陣で臨んでました。

結果は危ない場面もさほどなく3ー1の快勝。

RIMG0200.JPG

この日のMVPは言うまでもなくポンテ。1ゴール2アシストの活躍。序盤の原口とのサイドチェンジも見ててダイナミックさを感じたし、ゴールシーンでの山田直輝とのコンビネーションもすばらしかったです。

サイドバックが暢久になって上がりは減ったけど落ち着いた感が出てました。この辺は一長一短かなー。ボランチの二人は安定してるけど相変わらずエリアに入ってくる回数が少ないのが不満。あのサッカーをやるんだったらもっとあがってこないと選手間の距離が空きすぎて厳しいと思います。

そう言えば相当久々に歌ったなーと思ったら去年は5,6試合ほど見に行って一回も勝ち試合を見てなかったことに気がつきました。

RIMG0207.JPG

今年はもうちょっと歌を聴けたらなーとは思うけど、新体制ってことで我慢の年として生暖かく見守りたいと思います。

というわけで、Ubuntuをインストールして使ってるわけですが、これが一筋縄では行かなかったので経緯をメモ。Vaio Type Pも同じ問題を抱えているので参考になるかも。

まず、Mini 12のUbuntuモデルでインストールされるUbuntuは通常のパッケージとは異なりDell独自のパッケージになっています(Belmontと呼ばれてる)。 このパッケージは一部プロプライエタリなものを含んでいるため公開されていません。

そこでオープンなパッケージの選択ですが最新版である8.10(Intrepid)は、Mini 12のGMA500を載せたPoulsboのXドライバであるxserver-xorg-video-psbがX.Org 7.3までしか対応していないのとDRMドライバがkernel 2.6.24以降のカーネルで存在しないため、VESAドライバでしか動かせず解像度が1024X768までの制限になります。 一方の8.04(Hardy)はxserver-xorg-video-psbが用意されていますが、デスクトップ版や日本語RemixだとkernelオプションをつけないとHDDが見つからなかったりこれまた面倒です。 そこで今回はUbuntu Netbook Remixのインストールイメージを使うことにしました。

ここからISOイメージを入手してインストールDVDを作るか、imgファイルからUSBインストーラを作ってインストールします。 UNRのインストーラはパーティションの指定などができないため、まるっとHDD全部をフォーマットしてどすんとインストールする豪快さです。Windowsとのデュアルブートを考える場合はインストール後にパーティションを変更してgrubなどのブートローダーをインストール・設定する必要があります。インストール直後からディスプレイ解像度以外は無線LANもサスペンドからの復帰(たまに失敗するけど)もサウンドもディスプレイの輝度調整も問題なく動きます。 インストール後にはデスクトップモードを変更してUbuntu Netbook Launcherからクラシックモードに変更して、Maximusを無効にしました。

次にxserver-xorg-video-psbのインストールですがUNRのリポジトリのバージョンは少し古いのでppaのリポジトリを/etc/apt/source.listに追加します。

deb http://ppa.launchpad.net/ubuntu-mobile/ppa/ubuntu hardy main
deb-src http://ppa.launchpad.net/ubuntu-mobile/ppa/ubuntu hardy main

これでxserver-xorg-video-psbをインストールすればlibdrm2なども最新のものと置き換わり、Xを上げなおしたら解像度が1280X800になりました。ただ個人的な体感だとFirefoxのスクロールがもたつくくらい重い気がします。これが、Mini 12のハード的な仕様なのか、ドライバの不出来なのかは判断しかねています。 さらに、このドライバは今のところ2Dのアクセラレーションのみで3Dと動画再生支援はサポートされないためCompiz3Dデスクトップは動作しないし、動画再生時のCPU負荷軽減などは見込めません。Dell版Ubuntuはこの辺のサポートがされているようです。

おまけですが、Mini 12は1.8インチHDDを使っていて、これのディスクの回転開始時か停止時かわからないのですがカッコンカッコンと結構耳障りな音がするので/etc/rc.localに

hdparm -B 254 /dev/sda

としてパワーマネージメントを無効にしると精神的にも快適です。

意外と面白かった。

ターミネーター:サラ・コナー クロニクルズ ファースト・シーズン Vol.1 [DVD]
ワーナー・ホーム・ビデオ (2009-01-07)
売り上げランキング: 196


LOST シーズン4をAXNで見終わってから見たい海外ドラマがなかったのですが、何でいまさらなのかよくわからないけどドラマ化されたターミネーターがDVDで出たので見ています。

時間軸的にはターミネーター3(自分は見てません)を異なる時間軸と位置づけて

ターミネーター > ターミネーター2 > ここ > ターミネーター4(2009年公開)

という設定になっているそうです。

まだ4話しか見てないのですが、まぁまぁ普通に見れます。いい感じにB級です。特殊効果的にも物語的にも初代ターミネーターのB級感がぷんぷんします。

2の時のT-800がジョンに人間らしいしぐさを学ぶシーンやT-1000が鉄格子をすり抜ける時に警棒だけひっかかった時のような、にやっとできるシーンもいくつかありました。

ただ、主演のサラ・コナー役のレナ・ヘディの方がサマー・グローより人工的な美しさもあってターミネーター向きだと思うんだけどなー。

miyagawaさんが紹介されていたlocal::libを使って非rootでのCPAN環境を作ってみました。平たく言えばさくらインターネットのレンタルサーバで一般ユーザーでCPAN環境を作ってみました。

とはいえ、多くは先人たちの と大差ありません。

まずはlocal::libのアーカイブを取得・解凍します。最新のバージョンは1.003001です。

wget http://search.cpan.org/CPAN/authors/id/A/AP/APEIRON/local-lib-1.003001.tar.gz
tar xzvf local-lib-1.003001.tar.gz
cd local-lib-1.003001

otsuneさんの記事にある通り、BSDPANのエラーを回避する設定をします。自分はbashを使っていますが、さくらのデフォルトのcshellを使っている場合は適宜setenvなどに置き換えてください。

export PKG_DBDIR=$HOME/local/var/db/pkg
export PORT_DBDIR=$HOME/local/var/db/pkg
export INSTALL_AS_USER
export LD_LIBRARY_PATH=$HOME/local/lib
mkdir -p ~/local/var/db/pkg

local::libにはまっさらな状態からインストールすることを想定したbootstrapオプションがMakefile.PLにあり、CPANの設定もしてくれます。が、さくらのレンタルサーバにインストールされているCPANモジュールが古いのと設定がされてないため、urllistが設定されずに途中のインストールで失敗するので、CPANの設定を先に行います。

cpan
...
cpan> exit

質問に対しては基本的にデフォルトで(リターン連打) ミラーの選択だけAsia>Japanから選べばいいと思います。設定が終了したらCPANシェルを抜けます。(余談ですが、2月16日現在でcharsbarさんオススメの山形大学のミラーが2月6日付けで止まってる気がします。)

Makefileを作成します。

perl MakeFile.PL --bootstrap=$HOME/local
...

ちなみに$HOME/localを省略するとデフォルトの$HOME/perl5にインストールされます。

この時点で$HOME/local/lib/perl5以下にlocal::libが必要とするモジュールがインストールされます。

通常はこの後makeしてインストールすればよいのですが、たまにMakefileが作成されないことがあるので、その場合は先ほどのコマンドを再度実行します。

makeしてtestします。

make && make test
...
Files=2, Tests=6,  0 wallclock secs ( 0.04 cusr +  0.04 csys =  0.08 CPU)

問題なさげならmake installします。

make install

シェルの起動時に環境変数を設定するようにします。

echo 'eval $(perl -I$HOME/local/lib/perl5 -Mlocal::lib=$HOME/local)' >>~/.bashrc
cshellの場合は
echo 'perl -I$HOME/perl5/lib/perl5 -Mlocal::lib' >> ~/.cshrc

こうすることによりシェルが起動されると

export MODULEBUILDRC="/home/hidek/local/.modulebuildrc"
export PERL_MM_OPT="INSTALL_BASE=/home/hidek/local"
export PERL5LIB="/home/hidek/local/lib/perl5:/home/hidek/local/lib/perl5/i386-freebsd-64int:$PERL5LIB"
export PATH="/home/hidek/local/bin:$PATH"

という環境変数が設定されます。

後はいったんシェルを抜けるかsource ~/.bashrc(または.cshrc)してからいつものようにcpanシェルからinstall Bundle::CPANしてください。

なお、環境変数にPERL_MM_OPT="INSTALL_BASE=/home/hidek/local"が設定されているのでcpanシェルを使わずにインストールする時もperl Makefile.PL INSTALL_BASE=$HOME/libする必要なくperl Makefile.PLでよしなにしてくれます。

最近の円高ポンド安でアニメのDVDなどをAmazon.co.ukで買うとべらぼうに安く買えるという話がありましたが、個人的にはアニメのDVDは興味ないのでCDを買ったらどうなるだろうと試してみました。

買ったのはUKレーベルのCD2枚セットのハウスのコンピレーション物を5枚。

ちなみに日本で買うと1枚\2,624~\2,149、合計で\12,340でした。
僕はAmazonプライムに入っているので送料は無料なのでそのまま\12,340です。
ただ、1枚在庫切れがありお届けまで1~2週間となっていました。

これをUKで買うと、 £6.94 ~£11.29。とはいっても、£11.29は1枚だけで残り4枚は£6.94でした。
商品だけの合計は£39.05で、送料が £9.54、合計で£48.59でした。
在庫は全てそろってて購入したのが1月30日、発送が2月3日で2月7日に届きました。

で、さっきカードの明細を調べたら2月4日に決済されていて、そのときのレートは

£1 = \127.679

£48.59 = \6,203

と、\12,340の約半額。

まぁ、今回はUKのレーベルで1枚の単価がCDとしては大きかったので一概には言えませんが、CDも物を選べばアニメのDVDほどではないにしろお得というお話でした。

ちなみにAmazon.co.ukからの梱包はこんな感じで緩衝材も入ってなかったのでちょっと怖かったです。

RIMG0179.JPG

プロフィール

アーカイブ

最近のコメント

flickr

www.flickr.com

Last.fm

VPSレンタルサーバー