新しいblogに移行しました

新ブログ "All Yout Bugs Are Belong To Ass" に移行しました!

2008-04-30

[Perl]テストを書く?自動生成でいいんじゃないの?

YellowTurtle = テスト書くのが苦手な子 です。orz

オイラは別にCPAN Authorでもないし(というか英語力が神がかっている所為で、なれなかったw)、一介のPerlコーダーでしかないのですが、それでもテストを書く必要が有ったりして、毎度その度に涙目(笑)になっている。

で、そのオイラが思うこと。

Test::Simpleだとか、Test::More等の素晴らしいモジュールのお蔭で、確かにテストコードは書きやすい。

でもちょっと待て。これらはオイラの様な中級者にとって、やさしい物だろうか。NO。
テストコードを書くという退屈な作業から、perlコーダーを開放してくれるだろうか。NO。

尤も、そもそも中級者程度がpmなんて作るんじゃねえという向きもあるだろう。CPANやperlコミュニティから見た場合、そのような意見は決しておかしなものではないだろうし。

とはいえ、これでは如何にもテスト書けないヤツはゴミ以下といわれているようなものだ(ああ、そう言っているのか、グヘヘ)し、とにかく楽をするというHackerの態度とは相反するじゃないか。

別にテストを貶しているわけじゃない。テストの重要性は涙目になるほど承知しているつもりだ。
言いたいのは、何で仕様書からテストコードの自動生成をしないのか、ということだ。
なぜTest::Moreばかりがもてはやされるのよ?Test::LectroTestではダメなんかい?

そんなわけで、今日もTest::LectroTestのドキュメントとにらめっこのオイラなのであった。

[無電源遊戯装置]ソードワールド2.0

無事入手。
じっくり読んだ上で、以前との違いを追記していく予定。

2008-04-22

[Linux]自宅サーバへのSSH Bruteforce-Attackの統計を取りました

Powered by K6-II 400MHz なマシンを自宅サーバとして公開しているんだけど、例のごとくSSHdへのBruteforce-Attackが多い。
実は半年くらい前に、SSH-Bruteforce-Attack対策ツールを仕掛けておいたんだけど、このツールのIPリストをちょくちょく見てる。
で、さっきそいつの統計を取ってみた。期間はだいたい6ヶ月(2007-11-01〜2008-04-22)。
統計の基準となる物といっても、アクセス元IPから国を割り出すくらいの事しかしていない。


攻撃回数 ccTLD
348 CN (中国)
143 KR (韓国)
138 US (アメリカ)
59 IN (インド)
50 TW (台湾)
33 JP (日本)
25 HK (香港)
22 DE (ドイツ)
21 FR (フランス)
18 BR (ブラジル)
14 TH (タイ)
12 RU (ロシア)
12 PL (ポーランド)
12 IT (イタリア)
11 MY (マレーシア)
11 CO (コロンビア)
9 CL (チリ)
9 CA (カナダ)
9 AU (オーストラリア)
9 AR (アルゼンチン)
8 GB (グレートブリティン)
7 TR (トルコ)
5 PH (フィリピン)
5 ID (インドネシア)
5 ES (スペイン)
4 ZA (南アフリカ)
4 VE (ベネズエラ)
3 SG (シンガポール)
3 SE (スウェーデン)
3 RO (ルーマニア)
3 PK (パキスタン)
3 NL (オランダ)
3 MX (メキシコ)
3 MA (モロッコ)
3 DK (デンマーク)
3 CZ (チェコ)
3 BD (バングラデシュ)
3 AT (オーストリア)
2 YU (ユーゴスラビア(現在未使用のはずなのに!?))
2 TG (トーゴ)
2 PE (ペルー)
2 IR (イラン)
2 IL (イスラエル)
2 HU (ハンガリー)
2 GT (グアテマラ)
2 EE (エストニア)
2 CH (スイス)
1 VN (ベトナム)
1 UA (ウクライナ)
1 SK (スロバキア)
1 SI (スロベニア)
1 PT (ポルトガル)
1 PS (パレスチナ)
1 NG (ナイジェリア)
1 NA (ナミビア)
1 MU (モーリシャス)
1 LT (リトアニア)
1 LK (スリランカ)
1 LA (ラオス)
1 KH (カンボジア)
1 GR (ギリシャ)
1 GE (グルジア)
1 FI (フィンランド)
1 EC (エクアドル)
1 CR (コスタリカ)
1 CM (カメルーン)
1 BG (ブルガリア)
1 BE (ベルギー)
1 AP (アジア太平洋地域)
1 AE (アラブ首長国連邦)


う〜ん。あえてコメントする価値も無いね。

2008-04-15

[Perl]Crypt::SSLeayのテストで不思議に思った

t/01connect.tの10行目のくだり。

eval {
$sock = Net::SSL->new(
PeerAddr => '127.0.0.1',
PeerPort => 443,
Timeout => 3,
);
};

なんで自分自身がHTTPSポートを開放してることが前提?
Windowsならどうすんの?そもそもHTTPSDやらない子は?

[Linux]CentOS5のopenssl-develでちょっとハマった

吉野家コピペ風に。

そんな事より1よ、ちょいと聞いてくれよ。スレとあんま関係ないけどさ。
昨日、近所のCentOS5にCrypt::SSLeayをつっこんだんです。CentOS5。
そしたらなんかMakefile.PLが

========================================================================
No installed SSL libraries found in any of the following places.
/local
/local/ssl
/opt/ssl
/usr
/usr/local
/usr/local/ssl
/usr/local/openssl
You will have to either specify a directory location at the following
prompt, or rerun the Makefile.PL program and use the --lib switch
to specify the path. If the path in question is considered standard
on your platform, please consider filing a bug report in order to
have it taken into account in a subsequent version of Crypt::SSLeay.

Which SSL install path do you want to use?


とか言ってインストールできないんです。
で、よく見たらなんかopensslのライブラリの場所がわからない、とか書いてあるんです。
もうね、アホかと。馬鹿かと。
お前らな、無償如きで普段使ってないCentOS使ってんじゃねーよ、ボケが。
無償だよ、無償。
なんか親子連れとかもいるし。一家4人でCentOSか。おめでてーな。
よーしパパnamazuをソースからビルドしちゃうぞー、とか言ってるの。もう見てらんない。
お前らな、openssl-develパッケージつっこんでやるからCrypt::SSLeay使わせろと。

# yum -y install openssl-devel

CentOSってのはな、もっと殺伐としてるべきなんだよ。
ググる気の無い奴といつ喧嘩が始まってもおかしくない、
刺すか刺されるか、そんな雰囲気がいいんじゃねーか。OS議論好きは、すっこんでろ。
で、やっとyumを実行できたかと思ったら、yumの奴が、

Transaction Check Error:
file /etc/krb5.conf from install of krb5-libs-1.6.1-17.el5_1.1 conflicts with file from package krb5-libs-1.5-17
file /usr/kerberos/man/man5/krb5.conf.5.gz from install of krb5-libs-1.6.1-17.el5_1.1 conflicts with file from package krb5-workstation-1.5-17
file /usr/share/man/man1/asn1parse.1ssl.gz from install of openssl-0.9.8b-8.3.el5_0.2 conflicts with file from package openssl-0.9.8b-8.3.el5
file /usr/share/man/man1/nseq.1ssl.gz from install of openssl-0.9.8b-8.3.el5_0.2 conflicts with file from package openssl-0.9.8b-8.3.el5
file /usr/share/man/man1/ocsp.1ssl.gz from install of openssl-0.9.8b-8.3.el5_0.2 conflicts with file from package openssl-0.9.8b-8.3.el5
file /usr/share/man/man1/smime.1ssl.gz from install of openssl-0.9.8b-8.3.el5_0.2 conflicts with file from package openssl-0.9.8b-8.3.el5
file /usr/share/man/man8/avcstat.8.gz from install of libselinux-1.33.4-4.el5 conflicts with file from package libselinux-1.33.4-2.el5
file /usr/share/man/man8/getenforce.8.gz from install of libselinux-1.33.4-4.el5 conflicts with file from package libselinux-1.33.4-2.el5
file /usr/share/man/man8/getsebool.8.gz from install of libselinux-1.33.4-4.el5 conflicts with file from package libselinux-1.33.4-2.el5
file /usr/share/man/man8/matchpathcon.8.gz from install of libselinux-1.33.4-4.el5 conflicts with file from package libselinux-1.33.4-2.el5
file /usr/share/man/man8/selinuxenabled.8.gz from install of libselinux-1.33.4-4.el5 conflicts with file from package libselinux-1.33.4-2.el5
file /usr/share/man/man8/setenforce.8.gz from install of libselinux-1.33.4-4.el5 conflicts with file from package libselinux-1.33.4-2.el5
file /usr/share/man/man8/togglesebool.8.gz from install of libselinux-1.33.4-4.el5 conflicts with file from package libselinux-1.33.4-2.el5

とか言ってるんです。
そこでまたぶち切れですよ。
あのな、依存パッケージの手動解決なんてきょうび流行んねーんだよ。ボケが。
得意げな顔して何が、conflicts、だ。
お前は本当に依存関係の解決をしたいのかと問いたい。問い詰めたい。小1時間問い詰めたい。
お前、conflictsって言いたいだけちゃうんかと。
CentOS通の俺から言わせてもらえば今、CentOS通の間での最新流行はやっぱり、
yum -y upgrade、これだね。

yum -y upgrade openssl libselinux krb5-libs

これが通のアップグレードのしかた。
yum -y upgradeってのは、このコマンドだけで、依存パッケージまで勝手にインストールやらアップグレードしてくれる。そん代わり細かいコンパイルオプションの指定が出来ない。これ。
で、それに指定するパッケージがopenssl libselinux krb5-libs。これ最強。
しかもこれを頼むと次からyum -y install openssl-develが出来るという、一石二鳥。
素人にもお薦めできる。
まあこのネタがわからないお前らは、平文で通信してなさいってこった。

2008-04-14

[生活]鼻づまりがひどい

オイラはもともと花粉症を患っていて、年々症状が酷くなっている気がするんだけど、自分の生活スタイルに問題があるからだと思っている。今日も風邪をひいたらしく、無茶苦茶鼻水が出まくる。

ここいらで、生活習慣を見直そうと思う。

オイラの平日の一般的な行動パターンは概ね以下の通り。

 1:起床は割とおそい方だと思う。(8:00頃)
 2:朝食は必ず食べるが、ジャンクフードと自炊飯が半々位の割合。
 3:通勤は自転車のみ。電車やバスには乗らず、徒歩での移動もほとんどない。
 4:昼食は主に炭水化物多めのメニュー。
 5:おやつ大好きだから、ジャンク菓子を食べることが多い。
 6:職業柄、体を動かす機会が少ない。
 7:夕食は食べたり食べなかったり。しかも食うときはものすごく変な時間。(23:00とか)
 8:立場的に、夜遅くまで仕事することが多い。(帰宅1:00くらいとかザラ)
 9:仕事関係で、イラッっとする経験がしばしばある。
 10:コンピュータヲタクの御多分に漏れず、寝るのが遅い。(2:00とか)
 11:酒好きだが、以前より呑めなくなってきた。最近は普段から控えている。
 12:オイラ自身はタバコ吸わないけど、職場で隣の席のやつがすげえヘヴィスモーカー。
 13:その上、職場は「全く!」分煙されていない。

はい、フラグ立ちまくりですね。><

で、「鼻炎 生活習慣」あたりでぐぐる

いやいや、色々ヒットしますねえ。
楽○ショップはおいといて、以下、サイトごとに思い当たる所を抜粋。

横浜の薬屋のおやじのひとりごと
 ・長引く鼻炎症状の改善に・自律神経を乱さない生活習慣を!(2)
しかし、ストレスや不規則な生活習慣によって自律神経のバランスが乱れると、鼻の機能にも悪影響を及ぼし、鼻炎症状を引き起こしやすくなります。

  1、7、8、9、10が該当。
  いかん、順当にフラグが立っているではないか。。。

 ・長引く鼻炎症状の改善に・自律神経を乱さない生活習慣を!(3)
精神的なストレスを受け続けると、自律神経のバランスが崩れ、鼻粘膜からの鼻汁の分泌が低下してしてしまいます。このような状態が続くと、鼻の粘膜の表面が乾燥してしまい、花粉などの異物が粘膜の中に簡単に侵入するようになり、鼻炎を起こしやすくなります。

  やべえ、図星だ。

 ・長引く鼻炎症状の改善に・自律神経を乱さない生活習慣を!(4)
ところが、睡眠不足になると、身体に備わっている体内時計のリズムが乱れ、交感神経と副交感神経のバランスが崩れやすくなります。

  なんか全部オイラのことじゃんよ〜><

 ・長引く鼻炎症状の改善に・自律神経を乱さない生活習慣を!(6)
胃腸の働きは、自律神経によって調節されているので、逆に胃腸機能に負担がかかると、自律神経も影響を受けてバランスを崩しかねません。

  2、4、5、7が該当。
  不本意ながらジャンクフードに頼っている現状に、NOが突きつけられている。。。

マクロビオティックのレシピ〜キッチンで作る健康
 ・生活習慣と鼻炎(マクロビの考え)

ここで、彼女の体質や生活を例にとります。
まず、遺伝からくる肉毒が根っこの部分にあります。

朝食は食が進まず、保育園の給食をその分バカ食いするようです。
ごはんは、ウチから持っていく雑穀米ですが、おかずは保育園から出ます。
園のおかずは、肉類が毎日必ず入っているし、こどもが食べやすいように甘く味をつけてあります。
これを良く噛んでいただけばいいのですが、ウチでの食べ方を見ても丸のみ。
そして、食事のときに残す率の高いのが味噌汁。      

これが、鼻炎になりやすい人の生活です。

  オイラ、食が細いわけでは無いけど、いわゆるバカ喰いはしない。
  肉毒という言葉があるんだね。でも、肉は好きだしなあ。
  味噌汁は残さない派。昆布だけで取った出汁は口にあわないが、
  昆布+鰹なら全然無問題。

慢性鼻炎:健康マニュアル!食事療法による鼻づまり解消♪:
■食べてはいけないもの
1.腸・肝臓・腎臓・牌臓・リンパ系に負担をかけるもの

精製糖類…白砂糖、氷砂糖、ザラメ、ブドウ糖、果糖、乳糖、オリゴ糖
果物…バナナ、パイナップル、メロン、マンゴー、オレンジ、ブドウ、柿、梨
香辛料
アルコール飲料
清涼飲料…ジュース、コーラ、スポーツ飲料、ドリンク剤
動物食品…肉、牛乳、魚、卵、練り製品(ハム、ソーセージ、かまばこ等)
油脂…バター、マーガリン、ラード、ヘット

  ぎゃぁぁあああああああっ!!!><
  全部オイラの好きな物ばかり・・・
  オイラ涙目・・・

・・・こりゃ、想像以上に酷い生活スタイルらしい。
早速改善せねば。。。むむむ。。。

2008-04-12

[生活]タコライスもどき

2〜3日ほど前に作ったタコライスもどき。
こいつが我がファミリーに非常に好評だったので、メモメモ。

タコライスもどき 2人前



* 材料
・ご飯 お茶椀2膳分
 ・トマト 1個
 ・レタス 2枚
 ・スライスチーズ 3枚
 ・マヨネーズ 大さじ2
 ・塩 少々
 ・コショウ 少々
 ・挽肉 ご飯の1/6くらい。有ってもなくても良い。
 ・オリーブオイル 少々。挽肉炒める用。

* 下拵え
 ・ご飯 お皿に平に盛り付ける。
 ・トマト 1.5cm角程度のダイスカットに。
 ・レタス 太い目の千切りに。
 ・スライスチーズ 各々半分に切り、それを5mm幅程度の短冊切りに。
 ・挽肉 オリーブオイルと共に炒めておく。

* 調理
 ・レタスをご飯の上に敷く。
 ・その上に挽肉をのせる(あれば)。
 ・その上にトマトをのせる。
 ・その上にスライスチーズをのせる。
 ・その上から塩、コショウを振りかける。
 ・その上に、マヨネーズをかける。

* 食べるときに。
 良く混ぜてから食べると(゚д゚)ウマー

2008-04-11

[Perl]Tritonn(MySQL5.0.45)のmysqlhotcopyのおかしな挙動


[root@hackathon backupdir]# mysqlhotcopy hogedb ./
Invalid db.table name 'hogedb.hogedb`.`some_table' at /usr/local/bin/mysqlhotcopy line 855.


あ〜、これじゃあmysqlhotcopyできないよ〜><

mysqlhotcopyは前からbugだらけなのは知っていたけど、オイラもついに被害者に。
/(^o^)\ナンテコッタイ

とりあえずPerlで書かれているので、/usr/local/bin/mysqlhotcopyをHacking。

書き換えた箇所は、以下の通り。

336c337,343
< my @hc_tables = map { quote_names("$db.$_") } @dbh_tables;
---
>
> ### hacked by yellowturtle
> ### my @hc_tables = map { quote_names("$db.$_") } @dbh_tables;
>
> my @hc_tables = map { quote_names("$_") } @dbh_tables;
> ### /hacked by yellowturtle
>

837a861,863
> ### hacked by yellowturtle
>
> $name =~ s/\`\.\`/./g;



で、改めて実行。

[root@hackathon backupdir]# mysqlhotcopy hogedb ./

    (中略)

Copying 192 files...
Copying indices for 0 files...
Unlocked tables.
mysqlhotcopy copied 57 tables (192 files) in 16 seconds (16 seconds overall).


バッチリhotcopy完了!

たぶんTritonnじゃなく、MySQL側の問題なんだろうね。

2008-04-08

[生活]ジュニア1号、新一年生に。

うちのジュニア1号が小学校へ入学。
記念撮影のときに寝たふりをするとか、激しく協調性のなさを露呈していた。。。orz

まあ、返事をするときの声のデカさだけは一番だったけど。

[Perl]YAPCチケット追加販売

らしいんだけど、大真面目に予定がバッティング><

[Perl]近頃Class::ComponentとHTTP::MobileAttributeがアツい

HTTP::MobileAttributeというモジュールがClass::Component使ってるらしく、それぞれのauthorが本気モードでパフォーマンスのチューニングにあたっているようだ。

今のところ、一介の利用者であるオイラは傍目から状況を伺っているわけなんだけど(というか、所謂 Perl Hacker の手際よさに腰を抜かしている状態...><)、どんどんバージョンアップしてゆくClass::Componentは今後、プラガブルなモジュールのベースとして、間違い無く本命になる予感がする。

そして、HTTP::MobileAttributeの存在。
今までHTTP::MobileAgentを使っていたんだけど、こいつにはプラグインの概念がないので、なんか新しい枠組が追加された場合(新キャリア登場!とか、第X世代端末登場!とか)の対処方法に乏しい感がある。
しかし、HTTP::MobileAttributeにはプラグインの概念がある。それも当然。Class::Componentを使ってるんだから。
オイラはまだHTTP::MobileAttributeを弄っていないけど、HTTP::ReplacePictogramMobileJpあたりと組み合わせれば、携帯向けWebアプリフレームワークとかできそう。author同じだし。
Catalystベースのメタ環境ってことにすれば、ご機嫌になれそう。

2008-04-02

[Perl]Class::Component0.11リリース

YappoLogsにて、Class::Component0.11リリースとの発表があった模様。

今まで苦手分野だった引数の扱いを、大幅に強化したらしい。

また、MyApp::Plugin::HogeHogeの扱いを、MyApp::Pluginの継承クラスとして扱うことを推奨。素直に喜ばしいポリシー変更です。なぜなら、オイラは0.10の頃からMyApp::Pluginをbaseにしてたからね。

[ネットライフ]はてな

近頃身の回りで、はてなが便利だという話を聞く。アカウントもとってみたい気もする。
ただ、マイペースなオイラが使っても、果たして荒らしとか言われないものだろうか。

まあ、そもそもネット全体に言えることだけど、粘着とか自作自演とか、単一視点からの意見の強要とか、そういうのが多々あるのはまあわかる。
でも、そういうのがあまりに目についちゃって、ちょっと大人気ないなあコイツラって思い始めると、途端に引いちゃうんだよね。なんていうのか、そのコミュニティにいること自体を拒絶しちゃう。

で、いまのはてなのコミュニティを散見する限り、非生産的な、大人気ない軋轢のようなものが垣間見えて、オイラのヌーディーな心臓にはちょっと堪える感じがする。得られる情報や学ぶべき姿勢なども多いだけに、なんか悔しい。

もう少し自分に冷静になれたら、はてなアカウントを作っても大丈夫なのかもしれないけど。