2004年01月31日
Perl vs PHP vs JAVA 速度編
最近会社ではにわかにPHPブームが巻き起こってまして、Perlプログラマーな僕としては少々肩身が狭い思いをしたりしなかったりな状況なのです。というわけで何とか社内でのPerlの地位を守りたいのですが(笑)、僕はPHPには全くふれたことがないので、Perlの方がPHPより優れている点をぱぱっとあげることができません(汗)。そういうときのGoogle頼み、ということで「Perl PHP 比較」というキーワードでぐぐってみました、すると河合さんの河馬屋におもしろい記事を発見しました。
そういえば、かなり前にこのページを見た記憶があるんですが、そのときはDBIって何?ってなレベルだったので、この記事の内容がよくわからなかったことを思い出しました。しかし、改めて読んでみると本当に参考になる記事ですね。PHPとPerlの比較もおもしろいですが、fetchrow_array+bind_columnsが最速であるとかDBIのベンチネタが非常に参考になります。僕はめんどくさがりなんで*でSELECTして、fetchrow_hashrefを使って取得ってのをよくやるんですが、速度が求められるときはfetchrow_arrayした方がいいのかな?まぁ、それほど速度にシビアなシステムを作ることはあまりないんですけどね(爆)
Posted by horiuchi at 23:07 | Permalink | Comments (0) | TrackBack (0)
2004年01月28日
Let'sノート新モデル「CF-Y2」キタ━!!
製品情報/CF-Y2やばいです。14.1型SXGA+、重量1499g。まじほしーー。。買って下さい。
Posted by horiuchi at 00:59 | Permalink | Comments (0) | TrackBack (0)
2004年01月27日
blogの普及から考える、支持されるWebサイトの条件
NIKKEI NET BizPlus
- ブログとは何か?
- ブログがなぜ普及しているのか?
- blogから学ぶWebサイト制作
が簡潔にまとめられています。メモ。
Posted by horiuchi at 23:29 | Permalink | Comments (0) | TrackBack (0)
pg_atoi: zero-length string
僕はDBMSというとPostgreSQLを主に使っているのですが、このPostgreSQL、バージョン間で互換性のない変更点というのが結構あって、これを知らないと、データベースの移行作業とか、テストサーバで開発したものを本番サーバにアップしようとか言うときに、この違いのせいでトラブるなんてことになりかねません。
「pg_atoi: zero-length string」なんていうエラーもほとんどが7.2から7.3への互換性のない変更点に書かれている、
整数型の読み込みで、空文字列が禁止されました。 この結果、整数型フィールドに対し、COPY 文での入力フィールドの空指定や VALUES 句での空文字列 '' 指定などで、0 入力とはならず、エラーとなります。が原因でしょう。
例として、名前と年齢をフォームから入力させて裏でDBに保存するようなWebアプリケーションを考えてみましょう。 名前と年齢を保存しておくテーブルを次のように定義します。
CREATE TABLE user_master(
name text,
age int
);
そしてこのDBにデータを保存するためのPerlスクリプトを次のように書いたとしましょう。
#! /usr/local/bin/perl
use strict;
use warnings;
use CGI;
use DBI;
my $query = CGI->new;
my $dbh = DBI->connect('dbi:Pg:dbname=testdb', 'username','passwd');
my $name = $query->param('name');
my $age = $query->param('age')
$dbh->do("INSERT INTO user_master (name,age) values(?,?)",$name,$age);
このスクリプトは7.2では問題なく動きますが、7.3だとエラーになる可能性があります。
エラーになるのはageに値が入力されなかった場合です。いつからだったか忘れてしまいましたが、(2.7xくらいからだったような。。)CGI.pmではparam('key')の値が空だった場合、空文字列を返すので、もしageの値が空だと$ageには空文字列が代入されます。それをそのままPostgreSQLのint型のカラムに入れようとしているので、pg_atoi: zero-length string」というエラーがでてしまうわけです。このエラーを回避するために修正したスクリプトは以下のようになります。
#! /usr/local/bin/perl
use strict;
use warnings;
use CGI;
use DBI;
my $query = CGI->new;
my $dbh = DBI->connect('dbi:Pg:dbname=testdb', 'username','passwd');
my $name = $query->param('name') || undef;
my $age = $query->param('age') || undef;
$dbh->do("INSERT INTO user_master (name,age) values(?,?)",$name,$age);
param('key')の値が偽だった場合(空文字も偽になります)、undefを代入するようにしました。入力データが多い場合は、mapを使って一括処理してやるのが効率的でしょう。
my @keys = qw(name age kana birth_year birth_month birth_day);
my %params = map {$_ => $query->param($_) ? $query->param($_) : undef} @keys;
Posted by horiuchi at 14:25 | Permalink | Comments (2) | TrackBack (0)
2004年01月23日
MyIE2いいです!
hail2u.net - Weblog - MyIE2 に紹介されていたMyIE2。Googleツールバーを使えるということでここ何日か試しに使ってます。
- 気づくとIEが起動していることがある。(広告?)
- SELECTフィールドからTABで次のフィールドにうつれない。
- Googleツールバーの設定で検索結果を新規ウィンドウで開くにしておくと検索結果を表示するためにIEが起動しちゃう。
Posted by horiuchi at 18:00 | Permalink | Comments (0) | TrackBack (0)
2004年01月22日
僕のLet'sノートが壊れた!?
ここ数日、修士論文を書き上げるべく研究室に泊まり込んでいたのですが、2日も満足に寝ていないとさすがに眠気に勝てず、軽く仮眠をとることにしました。すぐに再会するつもりだったのでノートの電源は入れっぱなしで寝たんですが、それがいけませんでした。。。
軽い睡眠のあと眠気眼で、ノートの前に座っていざ執筆再会と思ったのですが、どうもノートの調子がわるい。。ずっと起動しっぱなしだったのが悪いのかなと再起動することにしました。若干時間のかかる起動画面の後、いつものログオン画面が表示されパスワードを入力しようとキーボードをたたいたのですが反応なし。。???なにがどうなったのかわからずパスワードを何度も連打するものの何も反応しません。。途方にくれつつも原因を探していると、左のShiftキーのあたりがなんか濡れているのを発見。これは下手にいじるとショートすると思ったのでノートでの執筆は断念し、研究室のUNIX端末で作業を再開しました。結局論文の提出期限には間に合ったのですが危機一髪でした。
論文提出後、そろそろ乾いたかなとノートの電源を入れてみましたがまだキーボードはうんともすんとも反応してくれません。最悪の事態が頭をよぎりましたが、とりあえず、濡れた部分がどうなっているのか見るためにキーボードを引っぺがしてみました。水がかかったと思われる部分が黒く変色していることはわかったんですがだからといってどうすることもできず、記念写真だけ撮ってもとにもどしました。以下そのときの写真です。こういうときカメラ付き携帯は便利ですね!
元に戻した後、あきらめきれず試しに電源を入れてみるとあら不思議、今までのことが嘘のようにキーボードで入力できるようになってました。うーん、結局原因は何だったんだろう?まあ直ったからよしとしましょうか。
Posted by horiuchi at 23:31 | Permalink | Comments (4) | TrackBack (0)
2004年01月18日
CPANでWebからDiffとGrepが利用可能に
use Perl | Diff and Grep Now Available on search.cpan.org
samtregar writes "I'm proud to announce that search.cpan.org now includes two new tools of my creation: diff and grep. To get to these tools, go to a distribution page (ex. HTML-Template-2.6) and click on the "Tools" link. This will bring you to the tools page where you can run diff and grep on the module's source code.
search.cpan.orgでGrepとDiffを利用できるようになったそうです。さっそく試してみましたが、Diffはいいですね!モジュールのバージョンアップがあったときにこれを使えばどこをどう変更したかが一目瞭然です。一方Grepはちょっとどう使うか利用シーンがぱっとは浮かびませんねぇ。モジュールをハックするときはemacsで直接ファイルを見る方が効率的だと思いますし。
それにしてもDiffとGrepの実行時のレスポンス、かなり速いです。裏でどんなことをやっているのか非常に気になります。
Posted by horiuchi at 10:53 | Permalink | Comments (0) | TrackBack (0)
2004年01月17日
Perl5.8.3
use Perl | Perl 5.8.3 Released
5.8.3 is a maintenance release for perl 5.8, incorporating various minor bugfixes, including eliminating a couple of errors in Perl's UTF8 handling. Please see the perldelta for the full details.
Perl5.8.3がでてました。メンテナンスリリースでUTF8系のバグフィックスがメインのようです。
Posted by horiuchi at 11:23 | Permalink | Comments (0) | TrackBack (0)
Google ブログノイズ問題解決へ
The Register
Google is to create a search tool specifically for weblogs, most likely giving material generated by the self-publishing tools its own tab.
ウェブマジシャンの秘密部屋: Google RSS検索エンジンで紹介されていた記事。
Googleの検索結果でブログが上位に来やすいというのはよく言われているし、経験的にもそれは正しいと思います。現にこのブログも「Horiuchi」で検索してみると現時点では4番目に表示されちゃってたりします(笑)しかし、そんな状況も近いうちに変わるかもしれません。引用した記事によればGoogleもこのことは「問題」と、とらえているようで、ブログ用にRSS検索エンジンを用意して、メイン検索とブログ検索を分けようとしているようです。Googleの検索結果からブログが消える日も近い!?。
Posted by horiuchi at 11:02 | Permalink | Comments (0) | TrackBack (1)
2004年01月15日
ゼクシーのCMの女の子
Modern Syntax: うおお、加藤ローサというのかあモダシンさんのウェブログを眺めていたら聞き慣れない名前が。誰かと思ったらなんとゼクシーのCMの女の子ではないですか。ちょっとまえから、嫁さんがあの子かわいーとかいってたので、早速教えてあげよう。
Posted by horiuchi at 17:33 | Permalink | Comments (1) | TrackBack (0)
2004年01月11日
MTのインストールでトラブル ~エントリーを登録できない!?~
MTを新規にインストールする機会があり、みらのさんのサイトを参考に日本語化をしつつ、インストールをしたんですが、mt-load.cgiでMT ERROR: Invalid EUC_JP character ...のようなエラーがでてしまいました。Webで情報を探していると、naoyaさんのWeblogにPostgreSQL を使っていると新しいウェブログが作れなくなる件についてという記事が。記事を読むとlib/MT/default-templates.plの文字コードに問題がありそう。そこでこのファイルの文字化けしている日本語を削除してみると、mt-load.cgiは無事修了するようになりました。
これで一安心かと思いきや、今度はエントリーを登録しようとするとまた同様のエラーがでて、登録できないという現象が発生。よくよく考えてみるとブログの文字コードはUTF-8に設定していたのに、DBの文字コードはEUC-JPなままでした。 。
createdb -E UTF-8 db_name結局これですべての問題は解決しました。。default-templates.plも文字化けているのではなくて、UTF-8なファイルだったので、日本語部分を削除する必要もありませんでした。うーむ、灯台もとくらし。。
Posted by horiuchi at 23:49 | Permalink | Comments (0) | TrackBack (0)
Thunderbird
Mozilla Thunderbirdジャンクメールをフィルタリングできる機能がついていたり、IMAPに対応していたり、その他機能もりだくさんのメールクライアント。結構評判がいいようなので、ためしてみようかなー。
Posted by horiuchi at 00:51 | Permalink | Comments (0) | TrackBack (0)
2004年01月08日
アメリカ入国時に指紋と写真をとられる?
米国、外国人の入国時に指紋と写真のバイオメトリクス登録を開始なにも悪いことしてないのに指紋や写真を撮られるのはやだなーと思っていたら、
米国当局は5日(米国時間)、新たなプログラム『米国出入国現況表示技術』(U.S. Visitor and Immigrant Status Indicator Technology:US-VISIT)の一環として、入国する外国人の指紋スキャンと顔写真の撮影を開始した。
例外として、ヨーロッパ地域など27ヵ国[日本も含まれる]の国民は、米国での滞在期間が90日までの査証(ビザ)を必要としない渡航の場合、このプログラムによるチェックの対象とならない。だそうで、観光旅行にいく分には大丈夫そうですね。でも入国するまでの待ち時間は長くなりそう。。まあアメリカに行く機会なんてほとんどないんですけどね(爆)
Posted by horiuchi at 11:10 | Permalink | Comments (0) | TrackBack (0)
2004年01月07日
生茶パンダへぇーボタン付き
ビタミンX: うわさの「生茶パンダ」と「へぇーボタン」のコラボアイテムとは?これほしー。
Posted by horiuchi at 22:38 | Permalink | Comments (0) | TrackBack (1)
2004年01月05日
3大美女
Modern Syntax: 3大美女を選べ!おもしろそうなので参加~。
1. 仲間由紀恵
2. 長谷川京子
3. 加藤あい
ちなみに3大エロを勝手に決定しちゃうと、
1. 杏さゆり
2. 井上和香
3. 佐藤江利子
Posted by horiuchi at 00:27 | Permalink | Comments (0) | TrackBack (2)
2004年01月02日
ITmedia
ZDNet JAPANがITmediaに改名するそうですね。個人的にはZDNetっていう、なんて読んでいいのかわからない名前が賢そうな感じがして好きですけどねー。ちなみに最近までZDNetを「ぜっとでぃーねっと」だと信じて疑わなかったのはわたしです。。Posted by horiuchi at 22:43 | Permalink | Comments (0) | TrackBack (0)
WindowsXPでファイルが削除できないとき
@ parallel minds: メモ:winXPでファイルが削除できないとき。 より、WindowsXPで
~を削除できません。他の人またはプログラムによって使用されています。 ファイルを使用している可能性があるプログラムをすべて閉じてから、 やり直してください。と言われてファイルを削除できないとき、、
メモ帳等を利用して、空ファイルを同名で上書き保存すると 削除できるようになる。
へぇ~へぇ~へぇ~。
Posted by horiuchi at 22:24 | Permalink | Comments (3) | TrackBack (0)
2004年01月01日
PRIDE、曙vsサップ、ついでに紅白
大晦日の夜はPRIDEをずっと見てました。一番最初に高田がドームの屋上に登場して何か叫んでいたときはチャンネル替えてやろうかとも思ったんですが、そこはぐっと我慢してチャンネルはそのままに。。 それにしても番組が始まってから1時間しても第一試合が始まらないのはちょっと寒かったなー。でも試合はどれもおもしろかったー。吉田には是非ホイスをこてんばんにたたきのめしてほしかったけど、結果的には限りなく敗戦に近い引き分け。ホイスが柔道着を脱いで試合に臨んだ時点で勝負は決まっていたのかな。
パンクラスの近藤は、この試合ではじめて知ったんですが、膝が強烈でした。そういえば膝を使う日本人てあんまりいないような気がするんですが、なんででしょうねぇ?
田村は相手が弱すぎた気がします。いくらレイセフォーの弟でもねぇ。。
桜庭は相変わらずすてき。入場するだけでなんか鳥肌が立ってきます。負けちゃったけど最高でした。
もう一つ気になっていたのが、曙vsサップ。
やっぱりというべきかサップの1RKO勝ち。曙は練習期間が少なすぎましたね。しかし、そもそも名声だけで、パンチの打ち方も知らない素人がメインイベンターなK-1て今後大丈夫なんでしょうか??ちょっと心配。。でもタイソンvsサップは楽しみです。是非実現してほしい。
あと、気にもしていなかったんですが、今年の紅白いろいろあったみたいですね。野鳥の会が紅白に出場できなかったり、小林幸子の衣装?が故障により一部動かなかったり。(衣装って故障するものでしたっけ。。)結果は白の圧勝だったようですね。
Posted by horiuchi at 10:19 | Permalink | Comments (0) | TrackBack (0)
あけましておめでとうございます
新年あけましておめでとうございます。今年もいい年でありますように。
Posted by horiuchi at 00:22 | Permalink | Comments (0) | TrackBack (0)