「B♭M7」セッション

今子供と帯広に帰省している。今日は地元のジャズクラブ「B♭M7」に行ってみた。

夜8時頃、「B♭M7」があったはずの場所に行ってみると、あるはずの「B♭M7」がない。まさか、と思った。以前「add」のセッションに行こうとしたら、「add」がビルごと無くなっていた事があったからだ。近くの酒屋で話を聞くと、移転しただけだという事で、ほっとした。

「B♭M7」に行くとまだセッションは始まっておらず、客も私しかいなかったので、ママさんから去年亡くなったトランペッター浅倉功一氏の話を聞いた。浅倉氏は十勝のジャズを長年にわたってリードし続けた人で、車椅子に座りながらも精力的にライブ活動を続けていた。ベースの稔さんは浅倉氏が亡くなってからウッドベースは弾いていないという話だった。浅倉氏が「銀巴里」で日野皓正や山下洋輔とセッションしていたほどの人だとは知らなかった。浅倉氏とは一度だけ、「add」で共演させていただいた事がある。

9時を過ぎて人が集まり、セッションが始まった。ベースが私を入れて3人、管4人、ドラム3人、ピアノ4人、ボーカル1人、あとはギャラリーが数人いた。私が帯広で参加したセッションのなかでは最も人数が多いし、レベルも高かった。私自身は、"Beautiful Love", "Old Folks", "Satin Doll"を演奏し、11時半ごろ帰る。

Couldn’t fetch mysqli

私的メモ

あるオブジェクトをserializeしてunserializeすると「Couldn’t fetch mysqli」が発生した。

そのオブジェクトはあるテーブルに対するラッパーとして作成したもので、ページ内でこのように使われている。

・ページ1:インスタンス化して、serializeした後でセッション変数に格納
・ページ2:セッション変数から取り出して、unserializeし、使用

このクラスは基底クラスのコンストラクタでDBへの接続をおこない、メソッドではそのDB接続を使って読み書きをおこなう。エラーはページ2で発生する。

ラッパーオブジェクトのコンストラクタで作成されたmysqliオブジェクトはserialize->unserializeのなかでその接続を失うようだ(mysqliオブジェクト自体がSerializableではない模様)。そのためラッパーオブジェクトの基底クラスに__wakeup()を追加してunserialize時に再度mysqliオブジェクトを作成するようにした。

よーく考えたらそりゃそうだろうという話だ。ページをまたがる過程でDB接続を保持したスレッドが死んでいるんだから。

今日は朝から食欲がない。

昨日の夜も眠れず、2時半に起きて4時にまた床につき、6時前に起きて皆の朝食の準備をする。家族を送り出してからは何も食べずにひたすら横になる。ああまた調子が落ちてきたなと思う。こんな時は2,3キロ体重が落ちるが、やりすごしているとまた調子が戻ってくるものだ。こんな時は、何をするにも夕暮れの坂道を一人でとぼとぼと歩いているような気分になる。薬はちゃんと飲んでいるのだから、しばらくしたら元にもどるだろう。

牛乳がない。買い物に行って子供達を迎えに行くか。

unserializeされたオブジェクトのメンバ変数にアクセスするとphpファイルが頭から再実行される

私的メモ

ブラウザーを立ち上げなおしてから一回目の実行時にのみ、以下の現象が再現される

・phpページ1でユーザー定義のオブジェクトをserializeする
・phpページ2で、
          ・それをunserializeする
          ・unserializeされたオブジェクトのメソッドをコールして一部のメンバ変数が変更される
          ・オブジェクトのメンバ変数を参照しようとすると、phpページ2が頭から再実行される
          ・phpページ2は、以上の挙動をするまでの間、html出力はおこなっていない

バグなのか仕様なのかわからないが、html出力をおこなっていなければphpページ2は頭から再実行しても問題ないだろうとphp側が思っている節があるので、以下の修正にてとりあえず回避。

・phpページ2において、unserializeされたオブジェクトのメンバ変数を参照する前にダミー的なhtml出力をおこなう

phpのバージョンは5.1.6。

追記

htmlの出力をおこなってもページの再実行がおこなわれるケースあり。session_startが含まれる関数のコードの宣言をクラスの宣言が行われるコードの後に置くと、今のところ再現せず。前も今もsession_startの実行自体はクラス宣言の後なのに、不可解。

MySQL5

メモ

DBサーバーをMySQL5にアップデートした。引っかかった点

・森けい二の「けい」の字がphpMyAdminからエクスポートした時に文字化けを起こしていたので、インポート時にSQL文法エラーを起こす原因になっていた。「けい」の字はJIS X 0213の字なので取り扱い要注意。
・PHP側からの接続先コンピュータ名が「localhost」では通らなくなっていた。
・接続に失敗した場合の処理が不親切なのでリリースまでに改良する必要あり
・接続に失敗した場合、DBを選択できなかった場合、DBが選択できてもスキーマがなかった場合に分けて処理を変える必要あり。

今日は家族4人で大宮の「鉄道博物館」へ行ってきた。大宮に移る前の秋葉原にあった「交通博物館」には長男と何度か行った事があった。まだ長女が生まれる前で、電気街を見て、交通博物館で遊んで、アメ横で中華食材を買って帰るというのが定番パターンだった。大きな鋼鉄の機械を見るとそれだけで血が騒ぐのは男の子の特権なのかもしれない。

私が小さい頃、よく兄に連れられて電車に乗ってあるいた。当時国鉄のキャンペーンで「いい旅チャレンジ2万キロ」というのがあって、国鉄に2万キロ乗ると認定証がもらえるというものだった。鉄ちゃんの兄がこれを目指していて、路線の始発駅と終着駅で兄と駅名の入った看板の写真を証拠写真として撮るのは私の役目だった。広尾線に乗って広尾に行ったのは楽しい思い出だったが、赤字ローカル線としてもう廃止されている。

ここ数日子育ての事で色々な事があったが、いちおうのケリはついた。私もいつもの生活に戻ってきた。今回の一件は、自分の父親としての仕事をゼロから見直すいい機会になった、と自分に言い聞かせている。

ITゼネコン

池田信夫氏がITゼネコンについて語っている。

ITゼネコンはなぜ生まれたか

前半部についてはそうなのかと納得するしかないが、後半部については業界の問題点が非常によくまとめられており「激しく同意」だ。特に日本のIT業界には「最終財市場の競争がない」という指摘は、「いつでもフルオーダーメイドのシステムを」「いつも出入りしているあの業者に」「発注は後になるけどとりあえず作り始めてちょうだい」という業界の病巣を凝縮した言葉に私には聞こえる。

introセッション(高田馬場)

今日は子供の運動会だった。夜、イントロにセッションに行く。

7時頃イントロに入ると今日のベース担当は初めて見る若い人だった。堅実なベースランニングでバップの手本のような演奏をする人だ。ベースは他に私、村山さん、初心者風の人で合わせて4人。管が井上さんの他はts一人と少ないが、一方でドラムが7人くらいいた。私の番の1曲目は井上さんがフロントで"Black Nile"。2曲目は"Wabash"という曲だが知らなかったので譜面を貸してもらって演奏する。3曲目はトランペットのフロントで"There is no greater love"。偶然3曲とも同じピアノの人と演奏した。9時頃帰る。