D-7 <altijd in beweging>

Day to day life of a Perl/Go/C/C++/whatever hacker. May include anything from tech, food, and family.

2005年08月


台風の雨のせいで最寄りの駅前のスーパーに行くより某でかい駅前のデパートに行った方が買物しやすい(バスでいける)ので、ちょっとでかけてきました。デパ地下を回っていたら鰹の刺身のシッポ部分だけが安く売ってたので購入。あとラム肉がいい感じだったのでちょっと購入。これは2回か3回に分けて食べれるな。あとは野菜をちょこちょこと。思ってたよりデパ地下の野菜って悪い値段じゃないな。今度からもたまになら使おうっと


(昨日絶食とか言ってたのはどうした、とかのツッコミは無し)


ちなみにこれを書いてたら突然どしゃぶり。すげー。



    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr


"Super Size Me"見ました。一言、こええええええええ


いやー、自分アメリカにいたときにそれなりにファーストフードって食べてたけど、これは怖い。たったの2週間で肝機能障害に陥りそうになる食べ物っていったいなんなんだよ!あと、俺もご多分に漏れずによくソーダ類は飲んでたのだけどあるとき「(アメリカだから)ソーダを飲むのはしょうがないけど、ダイエットにしたら?」と言われてからダイエット系しか飲まなくしたのはよかった(まぁダイエット系は他に害があるのでまたそれはそれなんだが)。30日で14kgの砂糖だっけ。すっげぇ。こわいよー。


ちょっとこれは機会があったら戒めのために購入しておこうかと思う。



    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr


近所の昭和30年代チックな個人宅が取り壊されてる。俺の家のすぐ近くの家々も軒並みなぎ倒されてモダンな家屋に建て替えられたりしてる。それぞれの建物も老朽化してるのは確実なのでしょうがないんだけど、なんとなーくその後に建つ建物を想像すると昔の家屋が残ってもいいような気がしてしまう。



    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr


intなプライマリーキーを使うと落ちるバグがあるのでそこだけコメントアウトしちゃって文字列として扱っているけど、よりSQLライクな構文で動くようにしたrev 8をコミット。



CREATE TABLE foo (
id SERIAL PRIMARY KEY,
content TEXT
);
SELECT pg_senna_create_index('foo', 'content');
INSERT INTO foo (content) VALUES ('はげはげはげはげ');
INSERT INTO foo (content) VALUES ('はげはげはげはげほげほげほげほげ');
INSERT INTO foo (content) VALUES ('ほげほげほげほげ');

SELECT * FROM foo WHERE id IN (select 'foo'::SENNA @@ 'ほげ');
id | content
----+----------------------------------
2 | はげはげはげはげほげほげほげほげ
3 | ほげほげほげほげ
(2 rows)

色々やってみたけど 最初にやりたかった



SELECT * FROM foo WHERE 'foo'::SENNA @@ 'ほげ'

は外部にインデックスを持つエンジンという宿命上逃れられない事が分かったのでせめてインデックスへのパスを気にしなくて良い形で実装してみた。


あとはautoconfとかを使えるようにしないといけないんだけど、できるかなぁ。



    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr


英語と日本語のチャンポンで会議中。頭の中がコンテキストスイッチしまくりでやりにくいったらありゃあしない。通訳を生業としてる人ってすごいなぁ。こんなのしてたら頭が焼き付いてしまうわ。


ちなみに現在の通訳の女性は金色のパンプスをはいてて・・・すごい。きっと海外育ちの日本人だな。



    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr


いつも会議に行く道の途中で気になっていたボロい外見のトンカツ屋。こんな駅前のくせして700円の定食。今日は会議が二つあってちょうど昼食を挟んでたので一人で喜び勇んで食べてきました。


見かけ通り、おっちゃんとおばちゃんだけでやってる店。トンカツはジューシーでとてもおいしい。本当はおまけでご飯にカレーをかけたりできるらしいんだけど、今日は白いご飯で。最後ご飯が少し余ってしまったのでごま塩で残さず食べたのでありました。


(ちなみに壁のあちこちに「おかわりした物は残さないでね★」とか書いてあるのでいつもよりさらに気をつけて残さないようにしましたよ)



    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr


さて、SELECT * FROM hoge WHERE primary_key IN (SELECT * FROM pg_senna_search(...))はちゃんと動くからいいことはいいけど、やっぱりもっとSQLチックに検索したい、ということで色々見ている。


俺としてはせめてこれくらいはしたいわけですよ:



CREATE TABLE foo (pk SERIAL PRIMARY KEY, contents TEXT);
SELECT pg_senna_create_index('foo', 'pk', 'contents');
SELECT * FROM foo WHERE senna @@ 'query'

どうもCREATE TYPE, CREATE OPERATORはしないと駄目だというのはわかってきた。どうやってシンタックスをSQLライクにするかだよなぁ。



    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr


朝会議に向かう途中、コンビニに寄ったら東京カレンダーに銀座とNapaの記事があったのでついつい購入。Napa行きたいなぁ。遊びに行くのには本当に良い所なんだよなぁ。



    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr


・・・のアルゴリズムをいろいろ見ているのだが、どうもなぁ。なんか実用的でないし、オープンなものもない。うー。


あとpg_senna、少しずつアイデアが湧いてきた。今下調べ中。



    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr


某所でひじょーに細かいミスを見つけたのだけど、そっちで指摘するのもアレなのでここでメモ。曰く、




require Module import Module qw(foo bar) if $condition;



eval "use Module qw(foo bar)" if $condition

と比べるとevalを使用する方法は$conditionが正になるまでエラーが検出できないのに対してrequire...の方はコンパイル時にスペルミス等を検出できるため、良いと思う



というコメント。俺も使うとしたら最初のほうに近い構文を使うのだけど、スペルミスの検出・・・?それは違うな。まず、コンパイル時に何かチェックが通ると言うのがおかしい。


例えば下記ソースでBEGIN {}ブロックはコンパイル時に実行されるので、BEGIN{}ブロックより前にrequire文の間違いが検出されればいいのだが、実際はそうならない:



use strict;
requir POSIX; # should be "require"
BEGIN { print "Compilation done\n" }

Perlにおけるベアワード(この場合、POSIX)まわりの処理は変数を使っている時と明らかに違うので注意。これが



use strict;
my $module = "POSIX";
eval "require $modul"; # should be $module
BEGIN { print "Compilation done\n" }

だったら確かに$moduleのスペルミスは検出してくれるんだけどね。というわけでミニPerl講座でした。



    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr



http://openfts.sourceforge.net/primer.html



次のステップはここを見てfunction callではなくて、普通にSQL文に全文検索を入れられるようにする、ってことだろうな。



    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr


(最新版の説明はこちら


pg_rastは出てるのにpg_sennaは出てないのはアレなんで、アーキテクチャはpg_rastのようにしてpg_senna作った。



http://dev.razil.jp/svnweb/pg_senna/browse/trunk/



結構色々と制限があって、(1) postgresql-8.x のビルドツリーが必要 (2) Makefileの中身を変更してtop_builddirを(1)のツリーに指定しなくてはいけない (3) postgresqlそのものにインテグレートしてるわけではないので呼び出し方がダサい。


・・・というわけなんだけど、とりあえず作れます:



svn co svn://dev.razil.jp/pg_senna/trunk pg_senna
cd pg_senna
vi Makefile <-- top_builddirを変更
make && make install

その後、データベースにpsqlでアクセスして



\i /path/to/pg_senna/src/pg_senna.sql
SELECT pg_senna_create_index('/path/to/index', 'tablename', 'primary_key', 'text_column');

すると、トリガーとかが作成されてインデックスの更新がされるようになる。その後(ここがかっこわるい部分なのだが)検索するには



SELECT * FROM tablename WHERE primary_key IN (
SELECT * FROM pg_senna_search('/path/to/index', '検索文字列') )

とすればオッケー。まぁ色々問題はあるけどとりあえずpostgresqlでsenna検索をしたい人はどうぞ。senna本体はsen_index_info()を正しくサポートしてないと駄目。


ほとんどテストしてないので壊れる可能性は大ですので、一応用心を。



    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr


今日はオフィスに立ち寄り仕事の話。ちょうど昼時なので出前を頼んでもらってごちそうになったのだが、その時電話をしたいがぐり坊主(!=俺)が「全部大盛りで」などとのたまってしまったために大盛り。自分はご飯を残したのだが、それよりすごいのオフィスで一番若いヤツが頼んだ親子南蛮蕎麦。どこかで聞いた「富士山盛り」かと思うような麺の多さ。すげー


若者は半分くらい食べた所でも相当ギブアップ近かったのだが、それでも周りではやし立てて食べさせた所死にそうになりながらも汁まで完食していた。素晴らしい意気込みだ。



    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr


はやくあのストーカーと↑このストーカーが同じだと確認取れないかなぁ。結構状況証拠からすると信憑性ありなんだけど、同人物だと知れたらこれは被害者の会結成して本名とか晒し決定だな



    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr


長くて読み難いのでとりあえずコメントからは消しとくけど、以下どうぞ。



taka 『僕は以前ブログをしていたのですが、あなたと雰囲気が似ているとかの訳のわからない理由であなたと思い込まれてストーカーされている者です。


自分のブログは閉鎖しました。


好意的な感じでコンタクトをとってきたので、不覚にも携帯番号を教えてしまいました。何度もあなたじゃないことはいいました。その場では理解しても次の日にはまた電話してきます。あげくのはてには「大ちゃんお疲れ様。あんまり無理しないでね」等の留守電を毎日残してきます。当然すぐに着信拒否しましたが、毎日着信履歴に残っています。今までもう連絡しませんと何度も言わせることはできましたが、すぐに忘れてしまう病気のようです。


あなた宛のメールがきていましたので添えておきます。


一時期この量の倍以上のメールが1日2通来てました。


-------------------------------


こんばんは、○○です。


これはだいちゃんに向けて書いているメールです。


何言ってるか分からなかったら、スルーしてね。


あのウケミレンアイ。。。はKさんが書いてる気がしちゃった。


誓って言うけど、私は不倫なんかしたこともしたいと思ったことも無いです。


ネットでモテたいと思ったことも無い。


Kさんが周りの男性に崇めたてられたいっていうのが


つくづく分かったよ。。


前に彼女の取り巻きさんの男性が私に接触してきたのを


まだ根に持ってるみたいです。


私、バカ正直に携帯電話で報告したのよ。


「沙希(漢字忘れたけど、サキさん)さんらしき人が連絡来ましたよ」


って。


彼女の声のトーンがその時変わったんだ。


あちらが勝手に接触してきたのを私は無視したの。


だけど彼女の捉え方では


「自分の男友達を食った」


という表現になっちゃうのね。そういう表現が驚くわ。。


あと、彼女のところの女性の常連さんが


私に悩みの相談してきてたりしたのも嫌がってたな。。


例の「SAY HELLO」の本を贈ってくださった女性。


私は別にKさんと対抗する気持ちなんてこれっぽっちもないのに


彼女は私の存在が疎ましいんだよね、きっと。


サイト閉鎖して以来、一切彼女の友達には接触してないのにな。


とにかく私のことを追いかけ続けるんだろうね。


今後、彼女はじめ、嫉妬に狂った粘着質の人に


ずっとまとわりつかれるのかと思ったら


私、具合が悪くなってきちゃった。胃が痛いよ。


だいちゃん、お願いだから守ってね。


私、前の職場では、こういう嫉妬の炎で倒れちゃったの。


やっぱり日記でやりとりするの、ダメだよ。。


メールとか電話とかメッセじゃないと、


私、他人の嫉妬で倒れちゃう。。


わけわからないメールでごめんなさい。。


胃が痛くて、つらい。。


-------------------------------


何のことやらさっぱりわかりませんし、興味もありません。


僕がここでこんなことをしたところで、あなたの自作自演と思うだけでしょうが、着信履歴に残っているあの女の名前を見るだけで反吐がでるのでここに書き込むに至りました。


ちなみに東京少女という本は、あなたがストーカーのことを想って書いた本だと言い張っていました。あの女は病気です。』(2005/08/21 14:26)



いやぁ、本当に同じストーカーだとしたら笑えるなぁ。



    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr


堀江さん・・・あんたはいったいなにをしたいんだ。



    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr


昨日ピーマンを細切りにしていたらすっぱりと左人差し指の皮を薄く、しかし円形に広く切ってしまった。すっぱり。いてえええええええ。結構出血したのだが、前回の肘の怪我の時に買ってあった薬とかを総動員して処理。いてえよう・・・


どうもやっぱりこう、気持ちが落ち着いていないときに包丁を操るのはよくないらしい。くぞー。今日ガーゼ買ってこないと。


タイプはなんとかできるけどギターはひけん(涙)



    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr


昨日は「たりらりら~ん」見てたら番組内でチャットしまくりという内容でなんか「インターネットもここまで一般の人の生活に入り込んだか」という印象とともに南海キャンディーズの山ちゃんがいい味だしてたので楽しめた。


あと最近朝の「タッチ」再放送が結構楽しみ。某HDDレコーダーのプロトタイプをもらってから容易に見れるようになって便利というか、テレビを見すぎてしまうというか・・・まぁ、仕事はできてるからいいんだけど。



    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr


ひさしぶりにDNSの設定をしたのだが、本当あのファイルフォーマットって変だ。誰だあんなの書いたの。



    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr

このページのトップヘ