検索はpg_sennaインストールしわすれてた・・・orz。しかしログから見るに10日ぶりか。うはー。
2006年02月
リサイズで変わるレイアウト
http://www.collylogic.com/?/comments/redesign-notes-1-width-based-layout/
コロンブスの卵だね。どうもJavascriptコード自体はもっと洗練される余地はあるような気がするが、これは確かに使えそう。Windowに対してのイベントって正直俺はよく知らないけど、調べてみたら結構色々でてきそうだ。
そういえば、なくなりました
某ヨーロッパに行く話ですが、金がかさむかネットがない状態に陥るかになりそうだったので結局中止になりました。そんなわけで来週も日本にいまーす。
ふむ。
ここ数日間若干効率が落ちてるような気がする。そう、それはちょうど某N案件の事で俺がぶち切れた日あたりから。なんか馬鹿らしくなっちゃってな。お金がもらえないなら楽しい仕事したいし、無理をするとか、アホなヤツと付き合うとかを考えるとお金もらわなきゃやってられないし。
ともかく、金の話はちゃんとしたんだから余計になにか頼む前にそこを片付けてほしいと思う今日この頃。
カフェ飯。
渋谷Dexee Cafeでグリルチキンとサラダを食べた。結構うまかった。
昨日飲んだ酒
No Changes?
敢えて言おう、「ChangesファイルがないCPANモジュールはクソである」と!何が変わったのかわからずにインストールできるかー!
ニラと豚肉の鍋。
久しぶりに実家に行ったら、妹ちゃんが鍋鍋とわめいているのでニラと豚肉の鍋。タレがフードプロセッサで細かくしたニラに麺つゆを足したもの。これがかなりうまい。また今度やろうっと。
夜はロールキャベツ作ってもらった。うま。
ぶちっ!!!
・・・と、ブレーカーが落ちました。洗濯機が乾燥途中で止まりました。ネットワーク接続がぶちきれました。
ああ、ぶち切れました。作業中のデータが消えた。ざっくり。がっくり・・・
ブラックオーラ。
もう結構キツいブラックオーラまとってます。アホと仕事すると本当にやる気無くすな。
300万円の重み
300万、300万と普通に言う物の、現金にしてみると実際すげぇ厚みだ。っていうわけで出資金振込してきました。
湯豆腐、ホタルイカ
前日のチゲに引き続き、風邪を治すようなものを食べようと言う事で鍋をすべく久しぶり(3ヶ月??)に買物。ヒラメのアラが150円だったのでそれをダシにしようと決意して、ネギ、豆腐、エリンギを購入。うまそうだったのでついでにホタルイカも購入。
鍋はすこぶるうまかった。ネギもぷりっぷりでうまー。これだけネギ食ったら風邪治るだろう、みたいな。
ホタルイカは結構残ったので店のおっちゃんが言っていた通り醤油、砂糖、酒で甘辛く煮ておいたらうまうま。すっげーいいつまみができてしまったなー。
前項のPK問題
継承ではPKチェックを行ってくれないよう。そのかわり、TRIGGERを使うとそれっぽいことができそう:
まず、継承関係を作成。この際、小テーブルでもちゃんとPKを明示的に指定しておかないといけない(インデックスはテーブル毎の指定であって、継承はされない)
CREATE TABLE item_200602 (PRIMARY KEY(id)) INHERITS (item);
CREATE TABLE item_200603 (PRIMARY KEY(id)) INHERITS (item);
このままだとitem_200602とitem_200603に同一キーが存在していても問題なしなので、SELECT * FROM item WHERE id = 1; とかした時に複数の行が返ってくる事がある。なので、ここでトリガーを作成:
CREATE OR REPLACE FUNCTION CheckItemPK ()
RETURNS TRIGGER AS
$func$
BEGIN
IF (EXISTS(SELECT 1 FROM item WHERE id = NEW.id)) THEN
RAISE EXCEPTION 'item with primary key % already exists', NEW.id;
END IF;
RETURN NEW;
END;
$func$
LANGUAGE 'plpgsql';
CREATE TRIGGER CheckItemPKTrigger BEFORE INSERT OR UPDATE ON item_200603
FOR EACH ROW EXECUTE PROCEDURE CheckItemPK();
CREATE TRIGGER CheckItemPKTrigger BEFORE INSERT OR UPDATE ON item_200602
FOR EACH ROW EXECUTE PROCEDURE CheckItemPK();
これで、item_200603とitem_200602はitemのPKにいちいちチェックしないとINSERT/UPDATEができない事になるし、同じsequenceを使うので基本的にSERIAL PRIMARY KEYを持ってるのと一緒になるですよ。
PostgreSQL で、複数テーブルで同一のsequenceを使ってキーを作成
これまだ試してないんだけど、いわゆる世代別にわけたテーブルを使ってるとして
item_200602
item_200601
item_200512
item_200511
...
これら全てに通しで使えるSERIAL PRIMARY KEYを貼りたいのね。この場合、テーブルを作る時にこんな感じでいいのかな
CREATE SEQUENCE item_global_id_seq;
CREATE TABLE item_200602 (
id INTEGER NOT NULL DEFAULT nextval('item_global_id_seq') PRIMARY KEY,
...
);
CREATE TABLE item_200601 (
id INTEGER NOT NULL DEFAULT nextval('item_global_id_seq') PRIMARY KEY,
...
);
で、これでINSERTするとitem_200602とitem_200601とでかぶるIDはなくなる(はず)でいいのかな。っていうか、違うな。なんかこの場合は継承を使わないとユニークキーにならないような気がする。こっちか?
CREATE TABLE item (
id SERIAL PRIMARY KEY
...
);
CREATE TABLE item_200612 () INHERITS item;
これだと確かPKはitemの中で保存されるよーな。
チゲと思ったらパジョン
チゲ!チゲ!風邪を治すにはチゲだ!とわめいていたら結局いけた、韓国料理店。でもまず海鮮パジョン。でか!うま!その後チゲを頼んだら馬鹿うま。絶対また行く。
アメリカ人にぶち切れ
エラーがあるといわれるが、それだけでエラーログも何もない。何が問題だったの?と聞くとdiffの結果みたいなアホ臭い表示が15行分程返ってくる。エラーログはないの?というとエラーログが返ってきた。3通目でようやく問題がどうもむこうで使っているバリデーターとこっちに渡されているハンドブックの中身が違うような気がするのでそこを確認してくれと言うと後は電話じゃないと駄目と突っぱねられる。
アホか。もうこの仕事はやりたくない。エラーの内容を知るためだけに2時間以上も費やしてさ。泥舟だよ。
歌丸x楽太郎
昨日は歌丸の一門会150回記念で楽太郎も来てたのでがんばって行ったですよ。
楽太郎が出るからか、場内は微妙にいつもと客層が違ったような。ただ、いつもいるやたらとご祝儀をあげたがるおばちゃんとかはご健在。歌丸一門は花丸以外総出で、うらら、歌若、歌蔵、歌春、歌助、歌丸と。楽太郎は歌春と歌助の間、中入り前に。わりと動きの少ないタイプの噺家さんだった。結構おもしろかったなぁ。技術ってのもあるんだろうけど、やっぱり場数踏んでるんだろうなぁという安心感が。
しかし俺はやっぱり歌丸門下では歌春が一番好きだなぁ。
日記の整理。
今度日記の整理をしようと思う。ここは技術と日常がまざりすぎた。というわけで技術コンテンツはそのうち移動するかもですー。
リンク辿る。
この日記へのリンクを辿って行ったらid:nipotanあたりのブックマークとかに辿り着いたりして。ブックマークのタグがアレだったんでちょっとびっくりしたけど(「いじめ」ってあったんだもの!)俺がいじめてるんじゃなくて、俺が書いたいじめないでね、の事に関してだったのような。ちょっと安心。
しかし本当、一緒にするなって気持ちはよくわかる・・・>nipotan