コインランドリーへ行ったら
そのコインランドリーで一番高い洗濯機2台が変わって、
さらに高くなっていた。
 「電解水で除菌する」という機能が付いて洗濯時間が少し長くなっていた。
そんな機能いらんやん。。。。と思いつつ、
洗濯物の量からその洗濯機を使う。
説明を読むと、すすぎの間に少し浸けておくらしい。
・・・ん? なら洗剤がよりきちんと濯げるな。
ならありがたい。
この季節、下着に洗剤が残っていると
汗をかいたときに洗剤かぶれを起こすからなぁ。
こんどコインランドリーを使うときはこの洗濯機を使おう。

・・・彼女に洗濯してもらうのが一番なんだけどな〜。
「ロボット妹―改め人類皆兄妹!~目醒めよ愛の妹力」
ISBN:4840227543 文庫 佐藤 ケイ メディアワークス 2004/08 ¥536

 「病弱妹」な傑作「LAST KISS」
(http://www.bk1.co.jp/cgi-bin/srch/srch_detail.cgi/3cae237f1ec630105799?bibid=02208786)
を描いたを書いた作者の作品だからって
買ってみました。

・・・・・。怒ってます。
くぅ〜、こんな、「お兄ちゃん心」を弄び、
踏みにじるような凶悪な作品、読んではだめです。
純真な「お兄ちゃん心」を持つ人は
深く傷ついてしまいます。
世間が信用できなくなります。
 たとえおもしろくても、こんな作品は認めません。
僕の「お兄ちゃん心」はずたぼろです。うぅ。。。。(笑)
コミケ1日目終わり。
 普段、手伝っているサークルはほとんど売れないというか、
売るものが無い(おいおい)のだが、今日は違った。
 列はほとんど出来ないが、人が途切れない。
既刊・新刊併せて全部で1800冊ほど?
2時前に本日販売分完売。

こういう経験は初めて。疲れました。。。。

何人も、拝んで買っていかれる人がいました。
別に僕を拝んでいるのではないんだけど、
その方向に僕がいるから
不義理ものの僕は恐縮していました。

 僕も売った本をもらって読んで、
泣いてました。。。
9月以降は古いほうの URL に戻るの?

・・・ってまだトラックバックが効かない・・・(T_T)

http://diarynote.jp/d/10000/20040807.html

・・・って情報修正されている・・・。
http://diarynote.jp/d/10000/20040816.html
 さて、dblink での Sanitize。
8/5の日記では prepare を使えばいいと書いたが、
dblink では文字列で渡すわけだから結局問題を解決できない。
そういうわけで、文字列を escape するようにしていく。
 postgresql には文字列を escape する関数 quote_literal がある。
これを使えばすぐだろう。
・・・って考えは甘かった。

 dblink では query を文字列で渡す。

SELECT foo(’XXX’,yyy)

を dblink に埋め込むと

dblink(’SELECT foo(’’XXX’’,yyy)’)

って感じになる。ここで、xxx,yyy を変数にすると

dblink(’SELECT foo(’’’ || v_xxx || ’’’,’ || v_yyy::text || ’)’)

って感じ。これを Stored Function に埋め込むと

dblink(’’SELECT foo(’’’’’’ || v_xxx || ’’’’’’,’’ || v_yyy::text || ’’)’’)

と ’ がいっぱいになってかなり変態的。
で、ここで、quote_literal を入れてみる。

dblink(’’SELECT foo(’’’’’’ || quote_literal(v_xxx) || ’’’’’’,’’ || v_yyy::text || ’’)’’)

ってやったら・・・エラーが出て動かなくなった。
で、なかなか解決できない。うぐぐぐぐ・・・・。

 PHP の場合、pg_escape_string という、
「文字列中の Single Quote 等を escape する」関数があるが、
それはこんな感じで使う。

$sql = "SELECT foo(’" . pg_escape_string($xxx) . "’,$yyy);";

しかし、PostgreSQL の quote_literal は
実は「文字列を引用符で括る」関数で、
ついでに 「文字列中の Single Quote 等を escape する」関数だった。

そういうわけで、正しくは

dblink(’’SELECT foo(’|| quote_literal(v_xxx) || ’’,’’ || v_yyy::text || ’’)’’)

と少しすっきりした形が正しかった。
これだけで半日つぶしたよぉ・・・・。

R.O.D〈第10巻〉

2004年8月5日 読書
ISBN:408630192X 文庫 スタジオオルフェ 集英社 2004/07 ¥500

 う〜ん、これはひどいです。
パンドラの箱を開けたというか、
禁忌を侵した感じ。
 締め切りが迫っているからって、
作者の状況をライブで中継しながら書く作品なんて、いけません。
SD文庫の「丸宝編集長」が「まるとみ」って読むことも知ってしまいました。

 そんな作品です。
はっきりいっておもろいです。
禁忌を侵した今、もはや怖いものは無いって感じでいっちゃってます。
SD文庫の「R.O.D.」10巻の紹介(http://dash.shueisha.co.jp/whatnew/-rod/index.html)を
見ればそのいきっぷりが感じられます。

すごくよし。
朝、出勤途中の自転車で。
近々リリースのシステムのことを考えていた。
漠然と、セキュリティの不安がまだあるなぁ。。。
・・・ボーっと考えていたらふと思いついた。

dblink で投げる query は文字列でつなげて作るわけだから、
サニタイズしていないと・・・・わぁ、見落としていたぁ。

 頑張って直さないと。
PostgreSQL には文字のエスケープする関数が
ちゃんとあったよなぁ。。。

 動的に SQL文を作る場面があるところは注意しないと。
MS SQL の openquery とかでも同様かな?

 あと、PostgreSQL の場合は prepare してから
値を突っ込むってのが正しい回避法かも。
SQL文の動的生成は可能な限りさけるために。
---------------------
(平成18年2月3日追加)
2004年8月6日に続く
結局、セーフモード・ネットワークで起動して、
ネットワークを介して主なデータのバックアップを取り、
そして最初からインストールしてます。
まだまだ復旧までには時間がかかります。
・・・バックアップの取り忘れ、大丈夫かなぁ。。。
メール等に使用している主機VAIO U PCG-U3/P「UNICORN」が動かなくなった。

起動はするが、ログインするとブルーバックで落ちる。
セーフモードでもなんらかのウィンドウを開くとおちる。

そういうわけで、種々の連絡等は滞っています。。。
今朝、家の郵便受けを覗くと従姉からの手紙がきていた。
主な内容はコミケのこと。

で、ついてに書いていたことだが、結婚するとのこと。
うぅ、先を越されたぁ〜〜〜・・・。
いや、まて。まだ一年あるさ(笑)
Microsoft の MCP の アンケートに答えた最後の画面に
「NOP の世界はマイクロソフト株式会社に代わってこの調査を行なっている。ここにかちりと鳴らしなさいこの調査の信用を確認するため
のためにここにかちりと鳴らしなさいプライバシー規約」

・・・「ここにかちりと鳴らしなさい」?

・・・・「Click here」の訳か(笑)
 会社で使っているシステムで、front-end と back-end の Database を分ける構成にした。
front-end は PostgreSQL でいいのだが、
back-end は MS SQL Server にし・・・・たかったが、
そこは夢も希望も無い屑会社、
まともにお金をかけようとしないんでやはり PostgreSQL ということになった。

 で、front-end と back-end のやりとり、
どうしようかと検討。
PostgreSQL 本体には OpenQuery や database link みたいな
機能はなかったはずなので、
Perl で移そうと思ったが、
PostgreSQL のソースの contrib ディレクトリの中に
contrib/dblink があり、
それを使うと他の PostgreSQL にアクセスできるようになるので
back-end に入れて使うことにした。(front-end からは直接 back-end にアクセスすることはない。)

 Stored Function で分散トランザクションをすることになるのだが、本当に僕の書いたコード、大丈夫かなぁ。。。という
不安なしろものを作っていった。
(PostgreSQL の Stored Fuction で
エラー処理が出来ないってのがつらい。)

 で、どうしてもうまく動かないところがあり、
psql でコードを確かめながら実行する。
その途中で寝ぼけて

SELECT dblink(’SELECT count(*) FROM foo’);

みたいにしてしまい、落ちた。
どのレベルで落ちたかはよく分からないが、
本番環境の php が一時エラーを出していた。
(connection Pooling のからみ?)

setof record を返す関数は
注意しないといけないかもしれないなぁ。。。


 
コミケ66のカタログ買った。
CD-ROM版のみ。
書籍版は会場で買うつもり。
「富士見二丁目交響楽団」でgoogleって、
ここに来てしまったフジミストの貴女、
ここは貴女の来るべき場所ではありません。
貴女が進むべき道はこちらです: http://park1.wakwak.com/~wonder/fujimi/index.htm
さぁ、貴女の愛を信じてその道を突き進むのです!!!

・・・ちゅうか、この日記、今日 7/12現在、
「富士見二丁目交響楽団」でgoogleると、20番目くらいだし、
「富士見二丁目交響楽団 六月祭」でgoogleると、「六月祭」のサイトをひっかけずにうちがトップに来るし、
「富士見2丁目交響楽団 六月祭」でgoogleると、「六月祭」のサイトも引っかかるけどそれを差し置いてうちがトップに来る。
う〜む。
VBA でランダムな文字列を生成するのに
BASP21 の MD5 関数を使って

Left(baspobj.MD5(GetTickCount), 10)

みたいにしていた部分を
PostgreSQL の Stored Function 内に
移そうとしたときに実験。

select
MD5(current_timestamp),
MD5(current_timestamp),
MD5(timeofday()),
MD5(timeofday());

結果:
532ae86f9c32b3e23f8c74c60ee5f44a,
532ae86f9c32b3e23f8c74c60ee5f44a,
44beb3440e1f45f3297943c6c1fb0e26,
aaf5f2737ab9e84f5734545b85f1cfb1

 まぁ、きちんと
current_timestamp と timeofday() の説明を読めば
実験するまでも無いことですけどね〜。

--
2009年6月30日追記
PostgreSQL の MD5関数に関してはこちらを参照
http://10395.diarynote.jp/200404042216420000/
ISBN:4044491038 文庫 榎田 尤利 角川書店 2004/06/29 ¥500
 本屋で、「彩雲国物語」を見かけて、
読んでみようと一番上から 2冊目を取ってレジへ持っていった・・・ら別の本だった。で、そのまま買った。(爆)
 そのときに手に取った本が「ヴァンピールアトリス」シリーズの 2作目で、
その後 1作目を入手してから前から読んだ。
で、まぁよかったのでこの 3作目も買いました。
 前作に比べて少しパワーダウンの感じがするけど
まぁよしかな。で、これで完結。
ISBN:4086301911 文庫 海原 零 集英社 2004/06 ¥600

 「銀盤カレイドスコープ」の作者が送る新シリーズ。
が「銀盤〜」とはかなり違う雰囲気の作品です。
まぁ、よしかな。だけどまだまだこれからってとこです。
ISBN:4044346429 文庫 後藤 星 角川書店 2004/06/29 ¥540

確かもうすぐ出る予定だったなぁ・・・っておもったら
出ていたので早速購入しました。

 電柱殿下の壁につきあたり、苦悩するさまがいい感じ。
ただ、壁を乗り越えるあたりのシーンが、
紙面が尽きちゃって描き切れなかったって感じがして
少々不満。
でもおすすめ〜☆
・・・ただし、過去にこのジャンルの小説の経験の無い人は覚悟と作品の本質を評価する寛容さが必要(笑)
まぁ、ぼくは電車の中でそういう部分も読んでました〜。
(平然と・・・ではなかったが(自爆))
 会社の仕事で Revision管理ツールとして Subversions を使用している。
で、Windows上で DOS窓を開けてコマンドラインのクライアントを使用していた。

で、コミットするときにエディタが立ち上がるようになっていて、
コメントを書き込めるようになっている。

 僕は環境変数「EDITOR」を設定して WZ Editor が立ち上がるようにしていた。
で、コメントを編集後、セーブして Editor を閉じる。
で、DOS窓に戻ると abort/continue/edit を選択するようになっているので、
continue を選んでコミット処理を続けるようにしていた。
・・・ここ数ヶ月!!!

 次期バージョンの開発と現行バージョンの保守のため、
プロジェクトをブランチするようにした。
その際、マニュアルを片手に「svn log」でファイルの変更履歴を見てみた。
・・・あら? たくさん書き込んであるはずのコメントが無い。
一部残っているのは UNIX機である server で変更を commit したときのだ。
・・・なんで?

 svn commit のマニュアルをよく読んでみると、
abort/continue/edit の問い合わせが出るのはコメントを書き加えずに
エディタを終了した場合に出るとある。
・・・つまり、コマンドライン上で GUIエディタを立ち上げるとそのまま
処理がコマンドラインに戻り、
そしてその時点ではコメント用の一時ファイルは変更されていないから
abort/continue/edit の問い合わせが出て、
そんでもって continue を選ぶとコメントを書き込まずにコミットする・・・って訳。

 あああ・・・律儀にコメントを書いていたのにぃ〜。あやしいうそ英語で。
うるうるうるうる。
ISBN:4086001829 文庫 須賀 しのぶ 集英社 2002/11 ¥560

ちゅうわけで「流血女神伝・砂の覇王」読了。
いや、なんちゅうか、次から次へと
話が展開する様がすごいです。
おすすめ〜☆

次は「天気晴朗なれど波高し。」なんだけど、
本屋では見かけないなぁ・・・。
「冬ソナ」といっしょに購入しようかな。

< 15 16 17 18 19 20 21 22 23 24 25 26 27 >