「Perl用のWebアプリ開発フレームワークを無償公開(IT Pro)」だそうだ。この記事を読む分には面白そうだ。これを使って商用アプリケーションを作ることも可能だけれど、なんだかちょっと心にひっかかるものが。このひっかかりはなんだろう?
どうもここ数日で視力が落ちた気がする。ディスプレイの文字が読みにくい。一時的なものだったらいいけど。。。
今更使ってみた。個人用アドレス宛のメールを会社で読んだりする場合には便利かも。
ゆうべ「スカパラの新曲って、最初 SMAP の新曲かと思った」と言ったら、よきゅんも同意してた。
MacOS ( Mac OS X じゃない)で scp だの sftp だのって、意外と面倒なのか。
▽ る [「牛丼売り切れ占い」→http://kaseide.net/jisaku/uranai/]
が、1通送信するのに30秒以上かかっている。もしかすると、昨日の段階でも「送信できない」のではなく「送信に時間がかかっている」という状態だったのかも。
SMTP のトレースバッファを見ると、EHLO → MAIL FROM → RCPT TO → DATA まではリクエストもレスポンスもスムーズに実行されているようなのだが、次のメールデータを送信するプロセスに時間がかかっているように思える。
FLIM の smtp.el 辺りを edebug でステップ実行してみたけど、どーもいまいち良くわからん。うむー。
たかはしさんからツッコミを受け、るびまの正規表現関係の記述を読んでみると、Ruby に関しては「標準添付ライブラリ紹介 【第 12 回】 正規表現 (1)」にそのものズバリが書いてあった。
文字列先頭や文字列末尾の意味で「^」や「$」を使ってはいけません。Perl などの他の言語の正規表現とは意味が違うので気をつけてください。 たとえば、CGI の入力のチェックで間違って「^\d+$」のように使ってしまうと、「数字だけからなる文字列」を受け付けたつもりでも「数字のみの行」を含む文字列を受け付けることになってしまいます。
「\Z」も普通は使うことはないでしょう。「\A」とセットで文字列全体をチェックするのなら「\z」を使うべきです。「\Z」は「^」に対応する「$」のように「\A」に対応するものとして存在するだけで、普通は使うものではないと思います。行を意識して処理をしたいのなら、「\A」と「\Z」ではなく「^」と「$」が向いていることの方が多いはずです。
hnw さんと同じく、オレも \z と \Z の存在を知らなかったのが今回の(オレの)混乱の原因か。ということで、\z を使ったコードを試してみた。
まずは PHP 版。
#!/usr/bin/php
<?php
$array = array('1234',
'1234' . "\n",
'1234' . "\n" . '5678');
for ($i = 0; $i < count($array); ++$i) {
if (preg_match('/^([0-9]+)\z/',$array[$i],$match)) {
print "ok: " . $match[1] . "\n";
} else {
print "ng\n";
}
}
?>
次に Perl 版。
#!/usr/bin/perl
@array = ('1234',
'1234' . "\n",
'1234' . "\n" . '5678');
for ($i = 0; $i < @array; $i++) {
if ($array[$i] =~ /^([0-9]+)\z/) {
print "ok: " . $1 . "\n";
} else {
print "ng\n";
}
}
最後は Ruby 版。
#!/usr/bin/ruby array = ['1234', '1234' + "\n", '1224' + "\n" + '5678']; array.each { |tmp| if /\A([0-9]+)\z/ =~ tmp then print "ok: " + $1 + "\n" else print "ng\n" end }
実行結果はコレ。
$ ./test.php ok: 1234 ng ng $ ./test.pl ok: 1234 ng ng $ ./test.rb ok: 1234 ng ng
この結果を見ると、ようやく全ての言語で期待通りの結果になった。Ruby の場合は、PHP / Perl と同じ /^[0-9]+\z/ では、これがまた違う結果になるので、上記の通り /\A[0-9]+\z/ としている。PHP / Perl で使っていた正規表現を Ruby に移行しようとするときには、この辺に気をつけないといけなさそうだなー。
ところで、Ruby が Perl と似た表記での正規表現を採用したのに、この部分の動作を変えた理由はなんなのだろう? 何かメリットがあって Perl とは違う道を選んだのだと思うのだが、それがどんな時なのかが思いつかない。「すげー便利」って何かがあるんだろうか。。。
産業技術大学院大学で行われた「PostgreSQLしくみ勉強会」へ参加してきた。主催者側のツテで大学の教室をお借りできたとのことなんだけど、あの会場はすげー良かった。各テーブルにコンセントがあって、ノートPCの電源をそこから取る事ができた。最近の大学って、みんなこうなの??
pgpool-II のオンラインリカバリや PostgreSQL 本体の PITR は、名前だけ知っていて実際に触ってなかったので、かなり知識があいまいだった。この勉強会でその辺の整理ができた。ダウンタイムを完全にゼロにすることはできないにしても、あの程度の時間でオンラインリカバリできるなら、pgpool-II での冗長化はアリだなぁ。
しばらく活動停止していた「しくみ勉強会」だけど、これから再開していくそうなので、興味があれば日本PostgreSQLユーザ会の RSS を購読しておくと良いと思うよ。
Dell の27インチディスプレイやら格安タワーサーバなどを買っていた関係で、メールニュースが時々届いていたんだけど、もういらないかなーと思って、メール配信を停止しようとした。
メール配信の停止画面には、「なんでやめちゃうのか教えて下さい!」系のアンケートがあって、まぁ、これは普通によくある。だけど、その下に、今まで見たことのなかった設問があった。
お客様の登録状況について12ヶ月ごとにEメールで確認させていただきたいと考えております。12ヶ月後のEメールのお受取りに同意いただける場合は「はい」をクリックして終了してください。
今はメール配信いらないけど、12ヶ月後には「受け取っても良いかも」という気持ちになっているかも知れない、そんな人への救済策になる。そして(こっちが主だろうけど)マーケター側から見たら、潜在顧客をこれっきり逃してしまうよりも、12ヶ月後にリベンジが可能になっている。
心変わりするつもりのない人は、12ヶ月後のメールも断れる仕組みなので、これは良い方法ではないかなぁ。
▽ shachi [NetFinderかNiftyTelnet使ってた>MacOSでscp,sftp]
▽ すずき [ちょうどその辺を勧めときました>scpとか Mac OS X なら簡単なのに、とか思いましたよ。。。]