無言電話が多くなったので、電話番号を変更。
ついでに、ナンバーディスプレイとナンバーリクエストを申込。
2008-07-28
[電波]隣の席のヒゲモジャな人
今朝出社してみると、パチンコ玉みたいにつるんつるんになってた。
前は某ラディン氏のような風貌だったのに。
前は某ラディン氏のような風貌だったのに。
[Apache]mod_proxy_balancerのfailoverが腐っている件
2008-07-24
[モバイル]今さらWillcom03をゲット
巷ではiPhoneとやらがもてはやされているけど、そんなのガン無視でWillcom03ゲットー!!!
色?もちろんピンクトーンですよ!奥さん!
で、ザクッと使用感。
キーボード。すごく使い易い!本当にモバイルかと思わせるほど、違和感の無い使い心地!
電話として見た場合。
あまり使い易くないです。まあでも、着信専用みたいな扱いなら、気にならない。
イルミネーションキーは以外と操作性が良い。でも、真夏の関東圏ではボタン自体が見えないことも。。。
ネット端末としてみた場合。
まずまず快活に動作するブラウザ。スタイラスをつかって、ページを掴むようにしてスクロールできる。これがなかなか便利。
メーラー。いわゆるPCのそれとほぼ酷似。何の取り柄もなく、使用感を書くまでもないレベル。動作はまずまず快活。
その他導入したソフトウェア。
・EasyDial: PPPダイヤラー。必須。単機能ながら、非常に重宝。
・PocketPuTTY: 日本語版をゲット。SSHコンソールをバリバリ使えるのは素晴らしいね!
・vncviewer: ネタです><
総評:★★★☆☆
やっぱりモバイルでSSHコンソールって最強ですわ。
電話とメールの使いにくさがもう少し緩和されていれば。。。。><
色?もちろんピンクトーンですよ!奥さん!
で、ザクッと使用感。
キーボード。すごく使い易い!本当にモバイルかと思わせるほど、違和感の無い使い心地!
電話として見た場合。
あまり使い易くないです。まあでも、着信専用みたいな扱いなら、気にならない。
イルミネーションキーは以外と操作性が良い。でも、真夏の関東圏ではボタン自体が見えないことも。。。
ネット端末としてみた場合。
まずまず快活に動作するブラウザ。スタイラスをつかって、ページを掴むようにしてスクロールできる。これがなかなか便利。
メーラー。いわゆるPCのそれとほぼ酷似。何の取り柄もなく、使用感を書くまでもないレベル。動作はまずまず快活。
その他導入したソフトウェア。
・EasyDial: PPPダイヤラー。必須。単機能ながら、非常に重宝。
・PocketPuTTY: 日本語版をゲット。SSHコンソールをバリバリ使えるのは素晴らしいね!
・vncviewer: ネタです><
総評:★★★☆☆
やっぱりモバイルでSSHコンソールって最強ですわ。
電話とメールの使いにくさがもう少し緩和されていれば。。。。><
[Perl]今さらながら、Gearmanを学ぶ。
Gearmanというのは、Perlでかかれたジョブサーバー。
dangaという会社がリリースしているらしい。
log4ZIGOROu - Gearmanを使ってみたを参考に、Gearmanを触ってみた。
まだインストールしたばかりだから、コードは書いていないんだけど、ややつまずいた箇所をメモ。
先の参考ページでは
と書かれている。
しかし、元記事が書かれてから1年以上(!)経過しているせいか、若干差異があった(これは仕方無い)。
現在のところだと、
とすれば、インストールできる模様。
それ以外の差は多分なさそうなので、参考にさせていただくことに。
dangaという会社がリリースしているらしい。
log4ZIGOROu - Gearmanを使ってみたを参考に、Gearmanを触ってみた。
まだインストールしたばかりだから、コードは書いていないんだけど、ややつまずいた箇所をメモ。
先の参考ページでは
インストール
gearmand, GearmanをそれぞれCPANから入れるだけです。
と書かれている。
しかし、元記事が書かれてから1年以上(!)経過しているせいか、若干差異があった(これは仕方無い)。
現在のところだと、
# cpan Gearman::Worker
# cpan Gearman::Server
とすれば、インストールできる模様。
それ以外の差は多分なさそうなので、参考にさせていただくことに。
2008-07-16
[Perl]変数からだとModule::Pluggableのsearch_pathを指定できないらしい。
前回の苦悩を解決すべく、調べてみた。
ダサくて泥臭いけど、直接Module/Pluggable.pmのimportメソッドにwarnを仕込んで確認した。
この際、背に腹は変えられない。
で、以下のようなパターンで実行。
で、その結果。
よく見ると、変数で指定している箇所が根こそぎundefinedな扱いになっている。
つまり、「Module::Pluggableのsearch_pathには変数使えません」ということっぽいorz
多分、Module::Pluggableがimportでとりまわしている箇所だからとか、そういう理由なのかもしれない。もう少し掘り下げて調べねば。。。
Module::Pluggable::Objectを直接扱えとか、そういう感じではないかと勝手に憶測してみたり。。。
ダサくて泥臭いけど、直接Module/Pluggable.pmのimportメソッドにwarnを仕込んで確認した。
この際、背に腹は変えられない。
Module/Pluggable.pm
### 前略
sub import {
my $class = shift;
my %opts = @_;
use Data::Dumper;
warn Dumper \%opts;
my ($pkg, $file) = caller;
# the default name for the method is 'plugins'
my $sub = $opts{'sub_name'} || 'plugins';
# get our package
my ($package) = $opts{'package'} || $pkg;
$opts{filename} = $file;
$opts{package} = $package;
warn $opts{package};
my $finder = Module::Pluggable::Object->new(%opts);
### 後略
で、以下のようなパターンで実行。
lib/Parent.pm
### 前略
### パターン1
sub import {
use Module::Pluggable search_path => $_[0].'::Component', sub_name => 'components';
}
### パターン2
sub import {
use Module::Pluggable package => $_[0], search_path => $_[0].'::Component', sub_name => 'components';
}
### パターン3
sub import {
use Module::Pluggable search_path => 'Child::Component', sub_name => 'components';
}
### パターン4
sub import {
use Module::Pluggable package => 'Child', search_path => 'Child::Component', sub_name => 'components';
}
### パターン5
sub import {
use Module::Pluggable package => 'Child', search_path => $_[0].'::Component', sub_name => 'components';
}
### 後略
で、その結果。
### パターン1
Use of uninitialized value in concatenation (.) or string at ../lib/Parent.pm line 16.
$VAR1 = {
'require' => 1,
'search_path' => '::Component',
'sub_name' => 'components',
'package' => undef
};
Parent at /usr/lib/perl5/site_perl/5.8.8/Module/Pluggable.pm line 28.
### パターン2
Use of uninitialized value in concatenation (.) or string at ../lib/Parent.pm line 16.
$VAR1 = {
'require' => 1,
'search_path' => '::Component',
'sub_name' => 'components',
'package' => undef
};
Parent at /usr/lib/perl5/site_perl/5.8.8/Module/Pluggable.pm line 28.
### パターン3
$VAR1 = {
'require' => 1,
'search_path' => 'Child::Component',
'sub_name' => 'components',
'package' => undef
};
Parent at /usr/lib/perl5/site_perl/5.8.8/Module/Pluggable.pm line 28.
### パターン4
$VAR1 = {
'require' => 1,
'search_path' => 'Child::Component',
'sub_name' => 'components',
'package' => 'Child'
};
Parent at /usr/lib/perl5/site_perl/5.8.8/Module/Pluggable.pm line 28.
### パターン5
Use of uninitialized value in concatenation (.) or string at ../lib/Parent.pm line 16.
$VAR1 = {
'require' => 1,
'search_path' => '::Component',
'sub_name' => 'components',
'package' => 'Child'
};
Parent at /usr/lib/perl5/site_perl/5.8.8/Module/Pluggable.pm line 28.
よく見ると、変数で指定している箇所が根こそぎundefinedな扱いになっている。
つまり、「Module::Pluggableのsearch_pathには変数使えません」ということっぽいorz
多分、Module::Pluggableがimportでとりまわしている箇所だからとか、そういう理由なのかもしれない。もう少し掘り下げて調べねば。。。
Module::Pluggable::Objectを直接扱えとか、そういう感じではないかと勝手に憶測してみたり。。。
2008-07-15
[Perl]Module::Pluggableのsearch_pathをうまく指定できず、悩む。
困った。
で、hoge.plを実行。
なぜだ。。。orz
lib/Parent.pm
package Parent;
use warnings;
use strict;
sub import {
use Module::Pluggable search_path => $_[0].'::Component', sub_name => 'components';
}
sub new {
my ( $self, $opts ) = @_;
my $c = bless { option => $opts }, $self;
$c->{component}->{"$_"} = $_ for $c->components;
$c;
}
1;
lib/Child.pm
package Child;
use warnings;
use strict;
use base 'Parent';
1;
hoge.pl
use lib qw(./lib);
use Child;
my $child = Child->new;
で、hoge.plを実行。
$ perl hoge.pl
Use of uninitialized value in concatenation (.) or string at ./lib/Parent.pm line 6.
なぜだ。。。orz
2008-07-13
[Perl]オレオレなWebフレームワークをこさえてみる。
オイラ自身のPerlやらモジュールやらに対する理解を深める目的で、BreezyというMVCなWebフレームワークをこさえてる今日この頃。
とはいえ実のところ、HTTP::Server::Brickに乗っかりまくりなのですけど^^;
ぶっちゃけおいらは、開発速度とか速いほうではないです。
さらに、相変わらずテストとは微妙な距離を置いているので、出来は悪いかもですが、そのうちレポジトリを後悔・・・いやいや、公開しようかと思ってます。
基本構成は、
・Module::PluggableでMVC各コンポーネントおよびその継承クラスをロード。
・Dispatcherが各Controllerクラスからアクセスパスを割り当てる。
・HTTP::Server::Brick様にてサーブ。
という具合を目論んでいるけど。。。
はて、このクソ暑くてクソ忙しい状況下で、実際何処まで出来ることか。。。;;
大まかな思想としては、とにかくユーザ(Breezy利用者)のコーディング量の減少。コレ。
合言葉は「easy breezy!(超簡単!)」
# むしろ超テキトー!のほうがあってるかも・・・><
とはいえ実のところ、HTTP::Server::Brickに乗っかりまくりなのですけど^^;
ぶっちゃけおいらは、開発速度とか速いほうではないです。
さらに、相変わらずテストとは微妙な距離を置いているので、出来は悪いかもですが、そのうちレポジトリを後悔・・・いやいや、公開しようかと思ってます。
基本構成は、
・Module::PluggableでMVC各コンポーネントおよびその継承クラスをロード。
・Dispatcherが各Controllerクラスからアクセスパスを割り当てる。
・HTTP::Server::Brick様にてサーブ。
という具合を目論んでいるけど。。。
はて、このクソ暑くてクソ忙しい状況下で、実際何処まで出来ることか。。。;;
大まかな思想としては、とにかくユーザ(Breezy利用者)のコーディング量の減少。コレ。
合言葉は「easy breezy!(超簡単!)」
# むしろ超テキトー!のほうがあってるかも・・・><
2008-07-02
登録:
投稿 (Atom)