memo-space
創るJava
- 2005-12-24
- book
買いました。というかけっこう前に買ったんだけど、今やっと読み始めました。 とりあえずNetBeansインストール中
、、、
ほぉ。String.format()ってこういうふうに使うのか。
- WriteBacks: 0
PKF1145
- 2005-12-24
- programming
コードを短くするのって楽しいですよね?(1)などなど。PKF1145祭りなるものが盛り上がっていたらしい。北京大学のプログラミングコンテストみたいなもの?
こんなのに参加するとプログラマを続ける自信を失ってしまいそうなので、とりあえず別のものから解いてみよう。1000はa + bの結果を表示するもの。とりあえずクリア。
えーっと1001でもうグダグダなんですが、、、
- WriteBacks: 0
PostgreSQL日本語化?
- 2005-12-21
- pgsql
画期的に馬鹿馬鹿しいことを思いついた。PostgreSQLのスキャナを見てたら、identは8bitも通るみたいだ。keywordはsrc/backend/parser/keyword.cの中で定義されているので、文字コードと順番に気をつけながらそっと追加してみる。
...
{"work", WORK},
{"write", WRITE},
{"year", YEAR_P},
{"zone", ZONE},
{"せれくと", SELECT},
};
実行
ishida=# せれくと * FROM tbl1; i --- 1 2 (2 rows)
、、、もっと人の役に立つことのために頭を使おう。
- WriteBacks: 2
シングルクォートのエスケープ
- 2005-12-17
- pgsql
PostgreSQL 8.1のマニュアルを眺めていて目を疑った。
PostgreSQLでは、また、単一引用符をバックスラッシュでエスケープすること(\')ができます。しかし、今後のPostgreSQLのバージョンではこれはできなくなる予定です。ですので、バックスラッシュを使用するアプリケーションを上述の標準に準拠するように変更しなければなりません。
(4.1.2.1. 文字列定数 より)
現在のPostgreSQLは文字列リテラル内のバックスラッシュを、特別なエスケープシーケンスの始まりとして扱います。例えば、\nや\010です。これで簡単に特別な値を埋め込むことができますが、非標準であり、他のデータベースからのアプリケーションの移植を困難にしています。このため、PostgreSQLプロジェクトでは、文字列内のバックスラッシュが特別な意味を持たないようにすることを計画しています。後方互換性と、特別なバックスラッシュ処理を使用したいユーザのために、新しい文字列構文を作成しました。
(リリースノート より、太字は石田による)
エーまじですか。詳細はドキュメントを確認してほしいが要するに、文字列中のシングルクォートをバックスラッシュでエスケープするのは将来的にはやめる。互換性のために8.1からは、E'文字列'という文字列構文と、standard_conforming_strings、escape_string_warningという設定パラメータを導入した。ということらしい。まあ当面は問題無いだろうけど混乱しそうだなぁ。
というわけで、PHPなんかで文字列のエスケープにaddslashes()ではなくpg_escape_string()を使うようにしましょう(とはいえクライアント側のlibpqのバージョンが古かったらどうなるんだろうとか)。データベース抽象化レイヤとか書く人が大変そう。
- WriteBacks: 0
べつやくさんいろいろ
- 2005-12-16
- misc
べつやくさんが描くいろんなキャラを作ってみた。キャラ増えてます。
消しゴム彫刻。本人が3D化。なんかクリップに使えそう。やっぱべつやくさんのキャラは立体化が合ってるんだな。スネ夫と違って。
べつやくさんのキャラで好きなのは、思い出のサラダバーを再現したいに出てくるサラダ山(とサラダ山親方)です。ネタとまるで関係ない進行が好き(今回の一揆もそうだけど)。
- WriteBacks: 0
sysadmin toolbox
- 2005-12-14
- unix
My sysadmin toolbox[linux.com] via slashdot.org
Vim - あるある
GNU Screen - あるある
abcde - ねーよ
なんでtelnetなんかはいってるのかと思ったら、あれは25番とか110番とか叩くための道具なのね。
CDargsとかCheckinstallは使ったことないけど、なかなか面白そう。
- WriteBacks: 0
チャイコン・メンコン
- 2005-12-13
- music
先日kitaraで札響を聞いてからというもの、すっかりチャイコンにはまってしまった。で、とりあえずiTMSで買ったのコレ。
メンコンの第一楽章もいいな。自分の中での「これぞヴァイオリン協奏曲」という感じ。
いままで協奏曲ってあんまり興味なかったからなー。kitaraで聞いたのが初めてだったんだろうと思っていたら、某所に放置されていた古い日記を見て驚愕の事実を知る。 前にも一回聞いてるじゃん。しかも札響。そしてそれ日記に書いてるし!!
それがまた前の会社の初出勤の日だったらしいw
- WriteBacks: 0
キーボード購入
- 2005-12-09
- misc
以前から店頭にあるのは知っていて買おうかどうか考えていたのだけれど、実は生産終了していたということを知ってしまい数日前に購入。
タッチにはそれほど拘りはなかったのだけれど、実際席に座って机に置いて使ってみると、店頭で触った感触とはずいぶん違ってなかなか良い。でもスペースキーがぶっこわれそうな気がする。
- WriteBacks: 0
VimでPerlのs///e風
- 2005-12-09
- vim
:s/pattern/\=code/ で、Perlの s/patter/code/e のようにマッチした文字列に対してVimスクリプトのファンクションを実行できる。
以下のコマンドは "ABC" を "96, 97, 98"(文字コード) に変換する。
:s/./\=char2nr(subaamatch(0)) . ", "/g
see :h sub-replace-expression and :h functions
- WriteBacks: 0
Slonik QuickRef
- 2005-12-04
- pgsql
ニートすぎて暇だったわけではないのだが、ついカッとなってこんなものを作ってしまった。
http://www.mono-space.net/misc/slonik.pdf
どれが省略可能なオプションなのかよくわからん。あともうちょっと綺麗に組版したい。
- WriteBacks: 0
iPod対抗の新商品、新入社員がデザイン シャープ
- 2005-12-04
- misc
iPod対抗の新商品、新入社員がデザイン シャープ(asahi.com)
いや別に悪くはないんだけどさ。商品にピントが合ってるのも悪くはないんだけどさ。なんつーか顔の微妙なピンボケ具合が、、、
- WriteBacks: 0
プライマリキーを調べるSQL
- 2005-12-04
- pgsql
久しぶりにPDO_PGSQLのソース見てみたが。しかしPDOStatement::getColumnMetaがSQLの実行結果からメタデータを取ろうというインタフェースがなんつーか。
PDOStatement::getColumnMeta(PHPマニュアル)
flags このカラムにセットされているあらゆるフラグ
微妙。
まあ今回はテーブル名から引ければいいみたいなので、ざっくりこんな感じでしょう。スキーマ名とかは考えてないけど。
ishida=# \d pkey_test
Table "public.pkey_test"
Column | Type | Modifiers
--------+---------+-----------
pk1 | integer | not null
pk2 | integer | not null
data | text |
Indexes:
"pkey_test_pkey" PRIMARY KEY, btree (pk1, pk2)
ishida=# select a.attname
from pg_attribute a, pg_constraint c, pg_class r
where c.conrelid = r.oid
and a.attrelid = r.oid
and a.attnum = any (c.conkey)
and r.relname = 'dao'
and c.contype = 'p';
attname
---------
i1
i2
(2 rows)
どーでもいいけどWebSVNって便利そうね。
- WriteBacks: 1
teeの底力
- 2005-12-03
- unix
teeコマンドは実は複数のファイル名を引数として指定できるということを、たまたまteeコマンドのソースを見てたら発見した。
$ echo Hello | tee /dev/stdout /dev/stdout /dev/stdout Hello Hello Hello Hello
使わねー
- WriteBacks: 0
SEQUENCEをリセットする
- 2005-11-29
- pgsql
create table member ( member_id sequence primary key, member_name text );
みたいなテーブルがあって、そこから
SELECT SETVAL('member_member_id_seq', SELECT MAX(member_id) FROM member);
という文字列を出力するSQL。何の目的で書いたかは忘れた。
select 'SELECT SETVAL(' ||
quote_literal(c.relname) ||
', (SELECT MAX(' ||
quote_ident(
(select a.attname from pg_attribute a
where a.attrelid = d.refobjid
and a.attnum = d.refobjsubid)) ||
') FROM ' ||
quote_ident(refc.relname) ||
'));'
from pg_depend d,
pg_class c,
pg_class refc
where d.classid = (select oid from pg_class where relname = 'pg_class')
and d.refclassid = d.classid
and d.objid = c.oid
and d.refobjid = refc.oid
and c.relkind = 'S'
and refc.relkind = 'r'
- WriteBacks: 1
bashのヒストリ検索
- 2005-11-20
- unix
最近の今更覚えた知識。
bashってCtrl+rでヒストリのインクリメンタルサーチできるのか。readlineの機能なのでpsqlでも使えるじゃん。
- WriteBacks: 0
pgpool failover command
- 2005-11-20
- pgsql
ちょっと前に書いてほったらかしてあったんでさらしておく。
pgpool.confに failover_command = 'hoge' と書いておくと、failover 発生時にそのコマンドを実行してくれるというものです。お約束として、ちゃんと検証してません。
- WriteBacks: 0
DBの正規形は速度面でも有利?
- 2005-11-14
- misc
DBの正規形は速度面でも有利? - DOA+コンソーシアムが測定を公開
そりゃそうだというか、まあケースバイケースなんだろうけど。非正規形にもいろいろあるので、本当にダメな非正規形は本当にダメです(縦に並べるべきデータを横に並べてるとか)。
正規形ってのは重複値の排除なわけで、それだけでデータ量を減らすことができる=>IOが減らせるって考え方もできます。
正規化したデータはチューニングでパフォーマンスが良くなる、というよりかは、本当にダメな非正規形のデータはチューニングのしようが無いという気もします。あと、正規化を崩すこと自身がチューニングの手段な場合もあるわけだけど、それってトリガを使ってどうこうとか、テーブル構造だけでは語れないと思います。
- WriteBacks: 0
Java Seminar(を忘れる)
- 2005-11-14
- programming
土曜日はJava Seminar in Sapporoだったのだがすっかり忘れてお買い物。途中でふと気付いたのはよかったんだけれど、Java Festaと勘違いしてすっかりコンベンションセンター方面でやってるもんだと思って、駅前から一旦家に引き返す。で、実は場所は北大だということに気付く。
北大でお約束のようにさんざん迷う。頼むから要所要所に地図をおいてくれ>北大。
で、到着するととりあえず爆睡(コラ)。最後の二つはまともに聞けました。Sunの川口さんの「定時退社のためのJava」すごく面白かったです。生産性を上げるためにIDEやツール、自動ビルドや自動テストを使いましょうという話。プレゼン上手いし。時間がかなり押してたので駆け足になってしまったのが残念。卓球台を導入すると生産性があがるらしいですよ。
何時に寝たのかわからんが日曜日は全く起きることができず。何も食わずに今まで寝てました。最近日曜はこんなパターンが多い。
11/14 追記:お名前間違えてました。あとこのセミナーの内容については、http://pcweb.mycom.co.jp/articles/2005/11/09/javaone4/にJavaOneの時の記事があります。
- WriteBacks: 0
久しぶりにkitaraへ
- 2005-11-12
- music
ここを日記というのであれば、あまりに日常的なことを書かない日記ですが。たまにはこんなことも書いておこう。
久しぶりにkitaraへいってきた。札幌交響楽団第483回定期演奏会(A日程 夜公演)。ちなみに木曜日にはリハーサルが無料で公開されていたらしい。今度機会があったら見てみたい。
- ムゾルグスキー/交響詩「はげ山の一夜」(原典版)
- チャイコフスキー/ヴァイオリン協奏曲 ニ長調 Op.35
- 休憩
- バーンスタインl/シンフォニック・ダンス(「ウエストサイド・ストーリー」より)
- バーンスタインl/管弦楽のためのディヴェルティメント
ぎりぎり開演に間に合い席につくと、マナーに関するアナウンス「、、、携帯電話の使用は禁止されております。マナーモードに設定のうえ、電源をお切りになるよう、、、」電源切るならマナーモードは関係無いんじゃないかと思いつつ、いやみなさんマナー良かったですよ。時々クラシックのコンサートで人の物音が気になっちゃうことがあるんだけど、今日は聴いてる方にも集中力を感じました。
そんな中、僕は前日も仕事で午前様だったのでヤバイなと思いつつ、やっぱりウトウトしてましたけどね。僕がクラシックを聴きにいく時はまあそんなもんです。空腹でお腹が鳴りだした時はヤヴァいなと思いましたが。
ウトウトしつつも、二曲目はすごく良かったです。ソリストのジョゼフ・リンさんは若くて男前。曲はオーケストラの楽しさを詰め込んだような華やかな曲。グっときました。
リンさんのヴァイオリンによるアンコールの後(曲はイザイのソナタ?すいません覚えてません)、休憩をはさんで後半はバーンスタイン。こっちはチャイコフスキーとは違う楽しさ。なんかやたら楽器多いんですけど、、、パーカスが6人もいるし、ハープだピアノだ、ピアノの横にあったアレがチェレスタ?「こんぺいとうの踊り」のアレかな。パーカス大暴れ。「マンボ!」と叫ぶオケ。跳ねる指揮者。こういう曲は指揮者が一番楽しそうに見える。
- WriteBacks: 2
あーそうそうそういえば
- 2005-11-11
- pgsql
TODO item -- Improve psql's handling of multi-line queries
そもそもコレ、TODOにあったなんて知らなかったし。みんなが幸せになれるんならそれでいいじゃない。8.2で取り込まれるでしょう。
- WriteBacks: 0
記法重要(3)
- 2005-11-09
- KOTOBA
やっと続きを書きますが。
ちょっと前の平鍋さんのblogはユースケース重要!(not 図、but 記述)だった。「○○重要」は名フレーズだと思う。 用法としては、○○は軽視されがちだけれど、○○にはちょっと聞いただけではわからないような、体験してみて初めてわかるような力がある。ということを主張したい場合に使うのがよさそう。
僕が記法について言いたいこともそういったことだけれど、僕がいわんとしている「記法」についていまいち上手く定義できていない(し、まだ定義したくないんだと思う)。なのでこんなにダラダラと書いているわけだ。
こんなことを思うようになった経緯みたいなのを思い出しつつダラダラ書きます。
例えばWebアプリケーションだと、テンプレートエンジンを使って見た目とロジックを分割するというのはよくある手法だ。これは1つのことを表現するのに2つの記法を使っている。それゆえ敬遠されることもある。あと、最近流行のフレームワークとか、DIとかも、ソースファイルから情報を抜き出してxmlファイルにしているので似ていると思うわけです。
アノテーションだとかXDocletとか(すいません。このへん実は全然理解せずに書いてますが)なんかは、、、1つのソースに複数の記法を使って、で、そこから複数の成果物を作ったりする場合もあるのかな。
とにかく最近、そういう「別の記法」を使うとうケースをよく見掛けるなと思うわけです。
で、そういうのは別の記法を使うがゆえに敬遠されたりもするわけです。なんでいちいち新しいのを覚えなきゃなんないんだよ、と。出来ることは同じなのに。と。
でも僕は最近、その「別の記法」には使ってみなければわからない力があるんじゃないかなと思っているわけです。だからといって記法が氾濫するのを良しと思っているわけではなくて、そういう可能性があるからこそ、「別の記法」の設計は注意深く行なわなければならないんじゃないか、と。だから、機能が同じであっても記法がダメなものはダメ。その記法の善し悪しに関してはこれから考えていきたいと思っています。
- WriteBacks: 0
プログラミングを学ぶ別の方法
- 2005-11-05
- programming
進研ゼミとか公文式とか駅前留学とか、そういうところから何か学ぶ方法についてのアイディアをもってこれないもんか。
本買ってググってMLで質問して、、、っていうのが向かない人も当然いるわけで。
- WriteBacks: 0
おっとこれも買わなきゃね
- 2005-11-05
- book
656ページって、、、100ページそこそこで死ぬかと思ったのに(書く方の立場としてね)。
普段から人に教えてる人だし、独自の切り口という匂いがプンプンしますね。
- WriteBacks: 0
PHPは簡単か?
- 2005-11-05
- programming
yohgakiさんのblog、 なか見!検索 - Amazonでも中身が見れる より。エントリの本質的なところじゃないところですが。
「はじめてのPHP言語プログラミング入門」はプログラミング初心者には不評、プログラミング経験者には好評、と評価がはっきり分かれる本なので、、、
そうかぁ。あの本初心者には不評ですかぁ、、、まあ申しわけないが僕もきちんと読んではいないのだけれど、パラリと見た瞬間からこの本は間違いなく良書だと思った(なんで会社では買ってもらいました)。改訂を重ね、年月を経るごとに評価されるロングセラーになってほしいなぁと思っている。
で、ふと思ったのは、この本が初心者に不評ということは、実はPHPという言語そのものが初心者にとっては難しい言語なんじゃないかな、ということだ。
というのはちょっと言いすぎかもしれないけれど、PHPという言語は、既存のほかの言語の概念やら構文やらを惜しげもなく取り込んだ(?)という特徴がある。 このことは、他に2〜3の言語をすでにマスターしている人にとってはすごく習得のハードルを低くしているんだけど、そうでない人にとっては(前者の人が思っているほどには)簡単ではないのかもしれない。 (たぶんこんな関数が用意されているハズだ!という洞察力を要求されるし)。
まあまず「初心者」「はじめての」がPHPにおけるそれを指すか、プログラミングそのものにおけるそれを指すか、というのもあって、PHPにおいては後者のパターンが多いのかな。
プログラミングそのものの初心者にとって易しい言語ってなんだろう、という視点で考えるとほとんどの言語はダメなような気がする。もういっそアセンブラあたりかもしれなしw
- WriteBacks: 0
PHPのmb_strwidth
- 2005-10-26
- programming
斜め後ろの人間として色々調べる。色々わかったけどまとめてる暇ねー!
とりあえず2種類の現象がおこっている。全角マイナスについてはUnicodeのマッピングの問題なのでEUCJP-winで回避できそう。
でも"Ω"とかそのたもろもろ、他にもマズいのがある。これは http://www.unicode.org/Public/UNIDATA/EastAsianWidth.txtのA(Ambiguous)を半角とみなしているからだと思う。
http://www.unicode.org/reports/tr11/によると、East Asian legacy character encodingsではAは全角、non East Asianでは半角とすることを推奨しているらしい。
- WriteBacks: 0
記法重要(2)
- 2005-10-26
- KOTOBA
む。早くもツッコまれてるけど見なかったことにして書こう。
最近マインドマップというのが流行しているらしい。僕はマインドマップについては1冊も本などを読んだことが無いので詳しくはないが、書店にいくとその盛り上がりっぷりに驚く。
あれはさすがに加熱しすぎだろうと思うんだけど、マインドマップ自体は嫌いではない。パっと見で良いなと思ったところは、枝に沿って文字を書き込むところ(そうとも限らないんだろうけど)。そうではなくて丸とか四角の中に文字を書き込んでそれを枝で繋げるようなものだったら、あんまり良い印象を受けなかったと思う。単に書きづらいからだ。。
僕はフロチャートが嫌いだ。あれが本当にダメだと思うところは、条件分岐の菱形だ。文字が書きづらいったらありゃしない。フロチャートを書くという目的以外で菱形の中の文章を書いたことのある人なんてそういないと思う。まあ僕が定規を使っても真っ直ぐ線が引けないほど人一倍不器用なせいもあるんだけど。
マインドマップについてもう少し書くと、僕は二十年間ほどずっとノートは罫線に沿って使ってきた。マインドマップが僕にもたらしたインパクトは罫線からの開放だ。マインドマップという言葉が無ければ、ノートにあんなもん書いてたら恥かしくて人に見せられない。
まあ逆にいえばその程度のインパクトだということだけれども。きちんと本を読めばぐんぐん頭がよくなるのかもしれませんが。
まだ続くつもり。
- WriteBacks: 0
記法重要(1)
- 2005-10-25
- KOTOBA
今年を振り返るわけじゃないが、最近僕の心に響いた言葉。
きしださんのフィジカルの話はおもしろかったしもっと流行ってほしい言葉だ。
平鍋さんのEoM = EoT + EoCも刺激的だった。
ここでひとつ、僕も最近心の中で大切にしているひとつの言葉を紹介したい。それは「記法」だ。Rubyのまつもとさんの「名前重要」をパクらせてもらえば「記法重要」ということだ。ここでいう記法とは、ソースコードのことでもあり、UMLやマインドマップのようなもののことでもある。
しかしこのことをこの時間から説明する根性はなくなりつつある。また機会を見て続きを書きたい。
しかし楽譜ってすごいな。楽譜の歴史はよく知らないけど、表現する為の記法として何百年も使われているなんて。
- WriteBacks: 1
白内障
- 2005-10-23
- misc
数カ月前、眼科で右目が白内障だと診断された。そのころからボヤけている感じはあったが今はもっと見えなくなっている気がする。元々視力は良く今でもおそらく左目は1.0以上あるので普段の生活には支障はないのだが。近くの細かいものに対して右目は全く形を認識できないので、焦点を合わせることができない。ちょっと前まで右目でファインダーを覗いてピントを合わせていたのが信じられないなぁ。
自分がアトピー性皮膚炎だと知った時も思ったが、人一倍自分の体に無頓着な人間にとってはなんともやっかいな話だ。逆に言えば自分を大切にしないことに対してバチがあたったのかもしれない。
というわけで、今の右目の状況をgimpで再現してみました。
- WriteBacks: 2
中国で見かけたアバウトな英語
- 2005-10-22
- misc
中国で見かけたアバウトな英語(@nifty Daily Portal Z)
英語もコレかよ!!懐が深いというか。さすがは富士エアーの国。
- WriteBacks: 0
SmartyでSQL
- 2005-10-22
- programming
東京でのPHP勉強会の時にS2Daoの話を聞いて、あのSQLの中にパラメータ埋め込んだりif文埋め込めるのはいいなぁと思った。Daoはともかくアレだけでもやりたい。
あれはいわばSQLのテンプレートだ、ということはSmartyでもいいじゃん。(と考えた人は過去にもいたと思う)。つまり、
phpファイル
$smarty->assign('user_id', $_GET['user_id']);
$sql = $smarty->fetch("user_sql.tpl");
$res = pg_query($conn, $sql);
...
user_sql.tpl
SELECT * FROM user_table WHERE user_id = {$user_id|sqlq}
という感じだ。SQLのリテラルのクォートは修正子プラグインでも作ってやればよいだろう。
でもせっかくこれが出来るのなら、いちいちfetch()してからpg_query()するよりもSmartyクラスを継承して、
$smarty = new SmartyDB;
...
$smarty->assign('user_id', $_GET['user_id']);
$smarty->query('user_sql.tpl');
みたいなほうがよさそうだ。ついでにクエリ結果をそのままSmarty変数にassignするメソッドがあっても良い。
$smarty->assign('user_id', $_GET['user_id']);
$smarty->assign_allresult('user_tbl', 'user_sql.tpl');
$smarty->display('user_view.tpl); /* そのまま display しちゃう */
もっと言うなら、ついでにクエリの結果をキャッシュできたりしないかな。
- WriteBacks: 2
psqlのヒストリ機能(その2)
- 2005-10-16
- pgsql
空行(改行のみの行)はヒストリに保存されないので、空行を.psql_historyファイル内のセパレータにしてやることにした。
バックスラッシュコマンドも適当に解決。まずまず使えそうだ。
- WriteBacks: 1
psqlのヒストリ機能
- 2005-10-15
- pgsql
psqlのヒストリ機能が使いづらい。ずっと前から思っていた。僕はわりとSQLに改行をいれて打つことが多い。
ishida=# SELECT * ishida-# FROM pg_class ishida-# WHERE relname = 'tbl1';
でも、psqlのヒストリ機能は行単位なので、これを実行した後にCtrl-Pを押すと、"WHERE relname = 'tbl1';"の一行だけが出てくる。3行全部出てきてくれた方がうれしいんだけど。
で、ちょろっといじってみた。つーか適当なパッチのつもりがだんだん色々な問題が発生してきてどうしたものか。バックスラッシュコマンドはどうしようかなぁ。まあでも使える感じ。
あと、一旦psqlを終了しちゃうと、前回の履歴(.psql_historyファイルに保存されたもの)はやっぱり行単位でしか履歴を呼びだせない。うーん。改行をエスケープして保存して、read_history()を使わずに自分でファイルを読みながらadd_history()していけばできなくはないなぁ。
- WriteBacks: 3
Slony-IがCOPYでコケる
- 2005-10-11
- pgsql
調べてみるとどうやら、alter table drop columnで削除されたカラムがあるとコケる模様。この時 pg_attribute は、
ishida=# create table t1 (i1 int, i2 int);
CREATE TABLE
ishida=# alter table t1 drop column i2;
ALTER TABLE
ishida=# select attname, attisdropped from pg_attribute
where attnum > 0 and attrelid =
(select oid from pg_class where relname = 't1');
attname | attisdropped
------------------------------+--------------
i1 | f
........pg.dropped.2........ | t
(2 rows)
こんな感じでゴミが残ってる状態になってるんだけど、その attname を拾ってしまっているようだ 。
これはもう全力でバグレポートを書きにいったら、既知の現象だったらしい。一週間前に報告されたのカヨ。
- WriteBacks: 0
COBOL -> Python
- 2005-10-11
- misc
COBOLはプログラミングを学ぶのに適した言語だそうです。 以前、どこぞでも話たけど、COBOLの入門サイト。
僕なんかは、大ざっぱにいうと BASIC -> C-> Java みたいなわりとマトモな言語遍歴を経ているわけですが、ここでは まずCOBOL、次にPython というかなりかわった順番で言語を修得していく過程が描かれています。
- WriteBacks: 0
何かをホゲるためのSQL
- 2005-10-10
- pgsql
メモメモ。しかしどういう仕組みになってるのか全然わかんないよー。
CREATE TEMP SEQUENCE sl_table_seq;
SELECT 'set add table ( set id = 1, origin = 1, id = ' ||
nextval('sl_table_seq') ||
',\n fully qualified name = ' ||
quote_literal(n.nspname || '.' || r.relname) ||
', comment = ' ||
quote_literal(COALESCE(d.description, '')) ||
')'
FROM pg_class r
LEFT JOIN pg_description d ON (r.oid = d.objoid)
, pg_namespace n
WHERE r.relnamespace = n.oid
AND r.relkind = 'r'
AND n.nspname NOT IN ('information_schema', 'pg_catalog', 'pg_toast');
DROP SEQUENCE sl_table_seq;
- WriteBacks: 0
プライマリキーの無いテーブルを探すSQL
- 2005-10-10
- pgsql
メモ。だいだいこんなもんだろ。
SELECT n.nspname
, r.relname
FROM pg_class r
, pg_namespace n
WHERE r.relnamespace = n.oid
AND r.relkind = 'r'
AND n.nspname NOT IN ('information_schema', 'pg_catalog', 'pg_toast')
AND NOT EXISTS
(SELECT * FROM pg_constraint c
WHERE c.conrelid = r.oid
AND c.contype = 'p')
- WriteBacks: 0
8.0.4リリース
- 2005-10-08
- pgsql
ちょいと前の話しですが、8.0.4がリリースされてますね。
http://blog.postgresql.jp/58 7.3.11、7.4.9、8.0.4リリース(JPUG広報担当blog)
修正内容には、あの「PostgreSQL徹底入門〜8対応〜」の著者としても有名なYoshiyuki Asabaさんのお名前もありますね(こっそり宣伝)。
* Fix CHAR() to properly pad spaces to the specified length when
using a multiple-byte character set (Yoshiyuki Asaba)
In prior releases, the padding of CHAR() was incorrect because it
only padded to the specified number of bytes without considering
how many characters were stored.
これのことかな。 [pgsql-patches] character type value is not padded with spaces。
あ、このバグ見たことある。っていうか俺が放り投げてたやつじゃん。 [pgsql-jp: 34751] Re: charのlength について。へぇー。そんなところに問題があったんだ。てっきり bpcharin あたりがおかしいのかと思ってた。
- WriteBacks: 0
YukiWiki + HTML Slidy
- 2005-10-05
- programming
勢いでこんなものを作ってみました。
http://www.mono-space.net/ys/wiki.cgi
HTML Slidy http://www.w3.org/Talks/Tools/Slidy/ は、HTMLでプレゼンっぽいものを作るツールです。で、これとYukiWikiを合体させてみました。
- WriteBacks: 0
このサイトを今まで知らなかったとは
- 2005-10-05
- pgsql
http://d.hatena.ne.jp/a_ogawa/
PostgreSQLによくパッチをポストしているa_ogawaさんのはてなダイアリー。凄すぎ。
なんつーか。自分ももっとがんばらなきゃダメだな。
- WriteBacks: 0
帰宅
- 2005-09-20
- misc
昨日の夜に旅から帰ってきました。今日は一日寝てました。
14、15と仕事。15はおわってから理事会に出れるかと思ってたけどちょっと迷ったのもあって断念。恵比寿のカプセルホテルに一泊。
16日はJPUG事例セミナー。News Letterの2号も出来ていた。Doblog.comさんの事例はとても具体的で面白かった。
懇親会の後、理事数名で飲みに。いろんな人の考えを聞けた。解散後まんが喫茶で18日の資料を準備。
17日はOSC2005 Tokyo/Fall。展示ブースに立つ。PGClusterのSlony-Iどっちがいいのとの質問にオロオロw。ちょうどbeta2もリリースされたそうで、ブース内で8.1の性能について勝手に盛り上るスタッフ。
隣のブースはRubyの会。札幌の時も来ていた人がブースにいた。今考えてみるとあの人が高橋メソッドの高橋さんその人だったのか。
お昼は本田さんと近くのインド料理屋に食べにいった。おいしかった。
最速で満席となったMySQL vs PostgreSQLの対決セッションを聞く。しゃべりが上手くて面白い。モチベーションの話は印象的だった。「JPUGは何がモチベーションになっているのか」「何ででしょうねぇw」「MySQLは昔、上手く動かすには色々なノウハウが必要で、それがモチベーションになっていた。でも最近は普通に動いてしまうのでモチベーションが下っているのかもw」
ユーザ会に参加する意味。自分にとってのソレはそれなりにあるけど、色んな立場の違う人達にそれを上手く説明できるのかな。この話は16日の飲みでも色々話を聞いてヒントも得たので自分の中で整理しなければ。
終了後、横浜の兄の家に一泊。
18日はPHP勉強会。やたらと暑いし、渋谷はなんだか祭をやっててえらい混雑。
北海道でもPostgreSQLの勉強会をやっているので、PHP勉強会がどんな雰囲気でやっているのかという意味で参考になることは多かった。(しかしさすがに疲れが出ていて、途中ちょっとウトウトしてしまったのは申しわけない)。
あと、17日も来てたけどnowelと会った。東京にきて色んなイベントに参加して良い刺激になっているようだし、コードを読むことを楽しんでいる様子。色んなんことを吸収してほしい。
- WriteBacks: 0
あきらめムードいっぱい
- 2005-09-13
- misc
実際のところ、僕は子供のころからわりと積極的にいろんなことをあきらめてきたと思う。あきらめることは僕の人生にとって重要なテクニックだったし、あきらめることで多くのくとを手にしてきたと思う。
子供の頃の僕は、体があまり丈夫ではなかったし(今でもそうか)、とにかく運動はまるでダメだった。体力も無かったけど反射神経も悪かった。自分は普通の人が普通に出来ることが出来ない人間なんだと言い聞かせることが必要だった。今の人生もその延長上にある。なぜ今の仕事を選んだのかと言われれば、他の仕事が出来ないからだと思う。
そんなわけで、たいていのことはあきらめ慣れた。今ではあきらめられなくなりそうなものを手に入れることが怖いくらいだ。
さて、明日から旅に出よう(出張だけど)。
- WriteBacks: 0
ニュートラ:適性・適職診断
- 2005-09-10
- misc
h2so4氏のところより 。この手の診断をやるとロクな結果にならないが、今回のはかなりすごいですよ!!
診断結果
仕事
どんな仕事にも自信が持てないタイプ
性格
あきらめムードいっぱいタイプ
恋愛
どんな人間かよくわからないので恋にも出会えないタイプ
特に向いている職種は?
? 今回の診断では発見できませんでした。
守りでも攻めでもないタイプ。
つかみどころがありません
内向性(ディフェンス型)
1■□□□□
外向性(オフェンス型)
1■□□□□
どんな仕事にも自信が持てないタイプ
内向性、外向性共に低い結果となってしまいました。あなたは現在とても疲れている
か、自信を失っているのでしょう。もし、これが本来の姿であれば、あなたにできる仕
事は非常に限られてしまいます。仕事というのは、社会生活の中に参加して、何らかの
役割を得ることですから、意欲のない今のままでは、あなたに合った仕事はなかなか見
つからないでしょう。何か仕事を頼んでも、そこそこの責任感はありますが、すぐにあ
きらめて、逃げてしまいがちです。また、人間関係も面倒と感じるので、孤立してしま
いそうです。もう一度、自分自信を見つめてください。あなたにはあなたなりの良いと
ころや個性があるはずです。
あきらめムードいっぱいタイプ
あなたのテンション(緊張度)はかなり低い状態です。おそらく、これは本当のあなた
ではないでしょう。きっと、失恋中か仕事上のトラブル、あるいは非常にイヤなことが
あったばかりではありませんか? そうならば、1週間以上時間をおいて、もう一度こ
のチェックをしてみてください。きっと別の診断結果が得られるはずです。もし、そう
でなければ、あなたはあきらめムードでいっぱいですね。社会的な常識や道徳はそこそ
こもっていますが、周囲の人には無関心で、物事に論理性は少なく、創造力も慎重さも
ありません。もう一度、自分を見つめ直してください。現在、投げやりになっていると
したら、回復するまでゆっくり休んでみましょう。思い切って旅に出るのもいいでしょ
う。これからの長い人生のなかの1ヵ月や2ヵ月、ゆっくり休んでみたってバチは当たり
ません。心とカラダをしっかり休めて、もう一度社会に復帰してください。
どんな人間かよくわからないので恋にも出会えないタイプ
もし、あなたがどんなに美形でも、どんなに学歴があっても、この性格では恋にまで発
展しません。異性にだまされることは少ないでしょうが、相手から見てあなたはまった
くつかみどころがないのです。こだわりも慎重さもなく、気配りもやさしさも不足して
いるので、恋愛関係にまで発展しないで終わるでしょう。もう一度、自分の個性を見直
してください。すべてがネガティヴですから、これはあなたの環境があなたに与えた悪
影響でしょう。どんな事情があるかはわかりませんが、友人関係、仕事関係をよく見直
して、新しい出発を決心してください。
ダ メ 人 間 じ ゃ な い で す か ! ! orz
これ見せられて「診断結果を踏まえて仕事を探す>>GO」とか言われてもねぇ。
- WriteBacks: 2
行ロック
- 2005-09-09
- pgsql
長いこと、行ロックって謎だった。どの行をロックしたという情報をどうやって保持しているんだろう。OID?でもOID無しのテーブルはどうすんの?
で、その謎が突然とけてしまった。トランザクションIDでいいんだ。つまり、行を更新するとその行のxmaxにトランザクションIDがはいる。別のトランザクションは、更新しようとしている行に既にトランザクションIDが書きこまれていて、かつそのトランザクションが実行中なら、相手のトランザクションが終わるのをセマフォで待てばいいんだ(かなりおおざっぱな説明だけど、今のところの理解はこんなもん)。
もう、うあぁぁぁぁって感じなんですが、この感動を共有できる相手もいなくorz
で、、SELECT FOR UPDATEはどうなっているんだろう、とトイレでふと思ったわけです。もしかしたらSELECT FOR UPDATEはxmaxを更新するんじゃないだろうか、と。
ishida=# begin; BEGIN ishida=# select ctid, xmax, * from r1; ctid | xmax | i -------+------+--- (0,1) | 0 | 1 (0,2) | 0 | 2 (0,3) | 0 | 3 (3 rows) ishida=# select * from r1 where i = 1 for update; i --- 1 (1 row) ishida=# select ctid, xmax, * from r1; ctid | xmax | i -------+------+--- (0,1) | 1785 | 1 (0,2) | 0 | 2 (0,3) | 0 | 3 (3 rows) ishida=# commit; COMMIT ishida=# select ctid, xmax, * from r1; ctid | xmax | i -------+------+--- (0,1) | 1785 | 1 (0,2) | 0 | 2 (0,3) | 0 | 3 (3 rows)
やっぱり♪でもcommitしてもxmaxがそのままなのはちょっと意外。うーむ。
- WriteBacks: 1
TODOリストを作る仕事は「メタ仕事」
- 2005-09-09
- misc
TODOリストを作る仕事は「メタ仕事」。 結城さんの日記より。
急がしいのに思わずTODO管理システムを作りはじめてしまうのはメタメタ仕事。というより現実逃避w
- WriteBacks: 0
4番バッターは育てられない?
- 2005-08-24
- programming
できる学生の見分け方(吉越浩一郎の革命社長日記) via 暗黙知をつかみ取る力(やまざきの「あせらず、くさらず、一歩づつ」)
ただし、僕は常々「人は教育できない」と言っています。プロ野球の名監督として知られる野村克也氏が、 「4番バッターは育てられない。できるヤツをどう見つけて引っ張ってくるかが大事」 とおっしゃっていましたが、僕も同感です。
うーん。かなり根本的な問題。4番バッターを何かに例えるとすれば、その何かによってはちょっと乱暴な比喩なのかもしれない。きっとプロ野球の4番と草野球の4番だと事情も違ってくるだろうし。程度の問題か。
- WriteBacks: 0
すべてのオブジェクト指向技術者に送る:EoM=EoT+EoC
- 2005-08-23
- programming
平鍋さんのblogより。しびれましたヨ。ちょっとでも共感した人はぜひどこかで宣伝したり、感想を書いて欲しい。それぐらい多くの人に読んで欲しいと思った文章だ。
- 「保守しやすい」ことが、良い設計(EoM = Ease of Maintenance)
- 「変更しやすい」ことが、良い設計 (EoC=Ease of Changing)
- 「テストしやすい」ことが、良い設計(EoT=Ease of Testing)
すげー。特にEoCの所の、
ここ10年のオブジェクト指向の最大の失敗は、「再利用性」をその最大の価値、として説明しようとしてきたこと。
エエェェェ!って感じですよ。間違ってたんだってさ。デザパタとかいったい何だったの!?。でもたしかにその違和感は感じていたのかもしれない。
でも、EoCのChangeというキーワードを聞くと、Open-Closed Principleの「修正に対してClose」のことが頭をよぎる。実は普段プログラムと呼んでいるものの中には、再利用が重要な部分と変更しやすさが重要な部分という二つの種類があるのかもしれない。
だとすれば、それらを見極めるシンプルな方法と、それぞれのプログラムを作る別々の方法があればいいと思う。この二つに関しては道具(IDE)や言語(っつーか記法、JavaとGroovyみたいな)さえ別であっていいんじゃないかというのが僕の意見だ。
きしださんの意見もリンクしておこう。
- WriteBacks: 0
スリッパで頭を殴って体罰的暴力!?
- 2005-08-23
- misc
同日夜、会見した篠原校長によると、部長は今年6月2日、同校グラウンドで朝練習をしていた際、3年の部員がミスをしたことに腹を立て、平手で顔などを数回殴ったという。さらに、大会期間中の8月7日、大阪府池田市内の宿舎で、食事をめぐって、この部員を別室に呼び出して、自分のスリッパで頭を殴ったという。
いいかげんにしてほしい。俺だって高校の時には先生の平手何発も食ってるっつーの。よりによってスリッパって、、、
でさぁ、それはともかく、彼等は真冬のグランドでノックを受けたりして鍛えられてるわけじゃないですか。それってスリッパで頭を殴られるよりはるかに過酷なわけだけど、そういうのもよろしくないとかいう風潮になったらヤダねぇ。
- WriteBacks: 0
PostgreSQL-CE 7.4 Gold
- 2005-08-22
- pgsql
受けてきました。夏休みを利用して勉強、とか思ったけど正直ほとんど勉強せず(だって駒沢が、、、)一夜漬けで、っつーか何勉強したらいいのかわかんねー!
結果、選択式に対する抜群の強さを発揮して合格しました。正解率80%。
- WriteBacks: 0
夏休みいろいろ
- 2005-08-22
- misc
結局たいしたことはできませんでしたが、、、だって駒沢が、、、高校野球漬けの毎日でした。まあ休み中のできごとは少しずつ更新していきます。
- WriteBacks: 0
夏休みの自由研究
- 2005-08-12
- pgsql
ってわけじゃないですが、だいぶん前からちまちま作っていたプログラム(PostgreSQLの拡張ほげほげですが)がやっとかたちになりはじめてます。
SELECT * FROM t1 ORDER BY x;
x
----------
ファール
ぶあい
ファウル
ふあん
ファン
フアン
ぶあん
(7 rows)
かなり壊れたみたいな動きしてますが、だいだいあってます。(一箇所間違ってるけど)。さてバグを取るか。あともうひとつ作りたいものあるんだよなぁ。
- WriteBacks: 0
サノ???
- 2005-08-12
- music
すげー./でも話題になってるよ。.jpじゃなくて.orgの方ね。
Japanese Musicians Defy Sony by Joining iTunes
でも、
Rock Musician Hotoharu Sano points out:
サノ・ホトハルって誰だ!!
- WriteBacks: 0
初戦突破など
- 2005-08-11
- misc
地元駒大苫小牧が甲子園で初戦突破。試合は見てないけどソツなく勝ったという感じか。エース松橋のデキはどうだったのかな。
去年のチームは記録的な猛打が注目されてたけど、守りもすごく良かった。スクイズは2つ外したし、決勝では捕殺が2つあったと思う。本当に自信を持って守っている感じが伝わってくるチームだった。今年は去年ほどの派手さはないものの、地区大会で失策ゼロの守りの固さは健在か。
次は15日の第二試合。
- WriteBacks: 0
佐野元春キター
- 2005-08-11
- music
「何を使って聴くかは個人の自由。聴く人がいるところには僕の音楽を届けたい」
なんか佐野元春の声でこの台詞が頭の中でぐるぐる
- WriteBacks: 2
郵政民営化
- 2005-08-08
- misc
前の選挙もそうだけど、YesかNoじゃ答えられないんだよね。小泉さん指示だから自民党に投票するのか/小泉さんのやりかたはどうかと思うけど郵政民営化は指示するから自民党に投票するのか。あとその逆が2通りあって、選挙が終った後にどうとでも解釈できちゃうのが悲しい。
- WriteBacks: 0
- 2005-08-06
- programming
平鍋さんのblogはじまってたんだ。で、九州でのイベントに参加したらしい。なんか平鍋さんとかはぶさんとかきしださんががどんな話をしてたのかってファンとしては非常に気になります。
「アジャイル、って「オヤジ語」に直すと、PDCAなんです。
っていいなぁ。まあウチの会社では自分が一番オヤジなわけだが。きっといろんな大きさのPDCAがあるんだ。TDDならテストを書くのがPlanでテストを実行するのがCheckだったりとか。プロジェクトのPDCA、企業のPDCA、人生のPDCA。まあ僕の人生にはPDCA以前に目標が無いわけだが。
- WriteBacks: 0
気分転換
- 2005-08-02
- misc
とにかく気分転換とかが苦手なわけですが、最近は枡野浩一のかんたん短歌blogにはまってます。
栗原あずささんという方のがけっこう好きですね。繊細で。でも時々ユーモラスで。これとか。これとか。
前回のお題は「猫」今回のお題は「愛」だそうです。
- WriteBacks: 0
北海道支部第二回勉強回
- 2005-07-31
- pgsql
7月29日に勉強会やりました。何をやろうかと考えていたところちょうど直前に良いネタがはいったので、「どこよりも早いpg_rastファーストインプレッション」とかやってみました。詳細は後程まとめます。
以下反省。やっぱ初めて参加してもらった人にはフィードバックを貰うべきだったな。勉強会を定期的にということは僕の中では支部の活動の核になるもので、それをどうやったら継続していけるかを毎回模索していかなきゃならないのに。
より面白く、よりためになる勉強会。かつ自分がいなくても開催できるくらいのもの。
やっぱコンセプトを失なっちゃいけないな。
- WriteBacks: 1
今日の名言
- 2005-07-30
- KOTOBA
1. トラックバックは、人の心のすきまに上手く入りこんだんだよ。
2. そういえばローマ法王ってかわったんだよな。まだ見てないな。
- WriteBacks: 0
札幌駅北口からススキノ手前までの歩きたばこ
- 2005-07-30
- misc
備忘録として。
北口からススキノまでの区間でのたばこや空き缶などの投げ捨て、特定区域での歩きたばこを禁止する条例が施行されます。
- WriteBacks: 2
mod_plsql
- 2005-07-22
- pgsql
Oracleのmod_plsqlあたりのドキュメントをちょっと読む。なるほど。PL/SQL Server Pageってちょっといいですね。これPostgreSQLにもってこれないかな。mod_plpgsqlでPL/pgSQL Server Page。
つまりこういうこと。
<table> <% for item in select * from table1 loop %> <tr> <td><%= item.fileld1 %></td> <td><%= item.fileld2 %></td> </tr> <% end loop; %> </table>
PostgreSQL自体がアプリケーションサーバーになっちゃうという。 JSPみたく、一発目はこれをパースしてcreate functionするわけだ。 アプリケーションサーバーが標準で賢い永続的なストレージを持っているという。 セッションとかキャッシュは片っ端からPostgreSQLにつっこめますな。
- WriteBacks: 0
恋はみずいろ
- 2005-07-21
- music
ちょっと前の話だけど、気分転換にCD屋にいって試聴しまくってました(←他の気分転換考えよう)。久しぶりにフランスギャルでも聞きたいなと思ってシャンソンとかフレンチポップのあたりを見てたら、その近くにあったヴィッキーのCDがグっときたので買っちゃったよ。
一応いっときますが、僕は「あーヴィッキーね、懐しいね」って年じゃあないです。1960年代後半から70年代前半の歌手です。
フランス語の他、日本語や英語で歌っている曲もある。フランス・ギャルみたくジャジーではなく、フランス語のスタンダードと日本語の歌謡曲といった感じ。フランス語で歌われる「恋はみずいろ」メチャメチャいいですな。
- WriteBacks: 0
書くこと
- 2005-07-19
- misc
コードを書いたり文章を書いたりしていると、絶望的な気分になることがある。ヘタクソな油絵を書いてる気分だ。
どれだけ時間を書けても、どれだけ塗り重ねても、ヘタクソはヘタクソなままだ。
うーん。この日記も発想はわるくないが文章のソリッドさに欠けるな、、、
- WriteBacks: 0
有名人ブログ
- 2005-07-17
- misc
有名人ブログは眞鍋かをりの一人勝ち状態が続いているようですね。 ブログを始める前から、爆笑問題のススメとかたまに出るタモリ倶楽部なんかを見て面白い人だなぁと思ってたけど、結果的には眞鍋とブログはピッタリだった感じです。 おしどり夫婦の話しとかもつ鍋の話あたりが好きです。
しかし、有名人ブログってすいぶんたくさんあるんだなぁ。 リサ・ステッグマイヤー なんてこれほどの量を書いているにもかかわらずトラックバックってこんなもんですか。 まあ読者の量とトラックバックの量はまた違うんだろうなぁ。
井上和香が等身大シーツを出してもこんなもん。眞鍋のスゴさを感じます。
森下千里はこんな感じ。
つーかこれ誰のブログかわかんねーよ!!これ本当にあの森下千里ですか?1枚くらい写真載せようよ。なんか色々難しい問題あるのかなぁ。これじゃちょっと書いてる人がかわいそうな気が。
- WriteBacks: 0
トリガの元になったクエリを取得する
- 2005-07-17
- pgsql
ずいぶん前の話だけど、ウチのCEOが「トリガを発生させたクエリを、トリガ関数の中から参照できないの?」みたいなことを言ってた。Cで関数書けばなんか出来そうな気はするけどその時はあきらめてた。
で、なんとなく出来たので公開してみる。とっても短かい関数です。GetPortalByName()してportal->sourceTextを返してるだけ。これで本当に良いのかは自身無し。
- WriteBacks: 0
眼科にいってきた
- 2005-07-16
- misc
いろいろ訳あって、眼底検査をうけてきた。結果は網膜には異常無し。
検査を受ける前に、瞳孔を開くための目薬をさす。で、検査が終ったあとも数時間は瞳孔開きっぱなしらしく、眩しいというよりはとにかくぼやけて見える。
コンビニにいっても何パンなんだか何おにぎりなんだかよくわからない。お金を払おうとしても何円玉なんだかよくわからない。視力が悪いというのはこういうことなのか。
家に帰ってきてもパソコンのモニタの文字はまるで見えない。とりあえず洗濯して寝た。
- WriteBacks: 0
昨日は花火だったらしい
- 2005-07-16
- misc
まあ花火自体は見てないですが、浴衣はいいですなぁ。
帰り道、大通公園でバンドが演奏してた。生で聞くドラムの音が気持いい。つーかかなり好みの音。小さめのバスドラに小さめのタム。いい感じで力が抜けてて、かつタイトに叩いてます。カンカンに張ったピッコロスネアのリムに入る音が気持いい。
ギャラリーは花火帰りの浴衣の若者や仕事帰りの会社員から、けっこうな年配のおじいさんまで。横の方でおばちゃんが手拍子してました(当然頭打ちで)。でも一番気になったのは、ワインの瓶みたいなのを片手にぶら下げてヨロヨロと歩いている(多分泥酔しているのではないかと思われる)おっさん。彼がたまに発っするファンキーな咆哮がまたいいアクセントになってました。
CEPSという人達らしい。
- WriteBacks: 0
B-treeを眺める
- 2005-07-14
- pgsql
B-treeインデックスのしくみがちょっとだけわかってきた。ページ間の行き来はともかくとして、1つのページ内でアイテム探す時に、何でソートもされていないデータを二分木検索してんだよとか思ってたら、Item自体はソートされてなくてもItemIdの方がソートされてるってことか。
ガシガシとデータを追加していくと、ある時にバサッっと2つのページに分かれる瞬間が快感だな。意味も無く可視化したい。
- WriteBacks: 0
オープンソースの素晴しさ
- 2005-07-13
- misc
まつもとさんのプレゼン資料を読む。やっぱ僕のオープンソースとの繋がりは開発者としての立場に絞られるなぁ。
オープンソースが何故良いか。それはソースが公開されているからだ。ソースが公開されているとソースが読める。そして、僕はソースを読むことが好きなんだ(困ったことに書くことよりも)。ただそれだけ。のことだ。
子供の頃、夜中に喘息の発作をおこして、苦しくて横になることが出来なくなると、ソファアで音楽を聞いた。KUWATA BANDのROCK CONCERTとかをスコアをおいかけながら聞いて、朝になるのを待った。音楽を聞きながら譜面を追いかけるのは、プログラムを動かしながらソースを追いかけるのに似ている(のか?)。事象と記法が一致した瞬間、「ここがコレだったのか」という快感が好きだ。
僕がオープンソースに関わる理由という意味では、ソースを読むのが好きだという理由以外に、飯を食うためだというのがある。特にオープンソースに関わり始めた頃の自分は、学歴も経験も資格も無いエンジニアだった(今でもあんまりかわって無いか)。
そんな自分にとっては、オープンソースは修行の場だった。個人で勉強する為にはOracleやMS SQL ServerよりもPostgreSQLの方がしきいが低かった。学歴や経験や資格のある人にとってはオープンソースが飯の種になるのは遠回りのように思えるかもしれないけど、僕にとってはそれより近道はあまりなかったのだと思う。
- WriteBacks: 0
知らないというのは恐い
- 2005-07-13
- misc
ワロス。まつもとさんに、「プログラミングはなさいますか」とは。
かく言う僕も、某Javaのセミナーで隣りになった人に、「この人わかってんのかな」くらいの勢いで話してたら、実はその人札幌市ITマスターだったということがあった。
それはともかく、新しくチームで仕事するよ、とかいう時に、それぞれの専門分野とかスキルがわからないのはとても困る。こんなことならこの人に聞けば一瞬で解決するのに、とか。まあコミュニケーション以外に解決方法は無いのかもしれないが、なんつーかパターン的なものが欲しいところだ。
- WriteBacks: 0
wal_buffers
- 2005-07-11
- pgsql
WALまわりは何度見てもよくわからん。wal_buffersって小さなトランザクションに関しては増やしてみ意味無いんじゃなかったっけなぁ。
- WriteBacks: 0
OSC2005Do
- 2005-07-10
- misc
昨日はOSC2005にいってきた。体調はあいかわらずイマイチなんでテンション低かったですが。グッズやパンフはまぁ好評。片岡さんからB-treeまわりのいろいろ話を聞いて目から鱗が落ちたっつーか目に鱗がはいったっつーか。隣りのOSASKはインパクトありました。やっぱ見えるって大切ですね。
最後はDB BOF。いってみたら自分含めて4名(汗。ただのたてやんさんとの対談になってしまったヨ。結構有意義な話だったとは思うけど。
RDBMSの話をしようと思うと、まず「見える」っつーことが難しいのと(だからこそ、矢地さんの電源ブツ切りはインパクトがあったわけで)。あと、結局どこがメインターゲットなんだかよくわからんっつーのは課題だなぁ。
- WriteBacks: 0
contribの中がインストールできない
- 2005-07-10
- pgsql
contrib/pgstattupleとかでmake installするとエラーが出る。
$ make install mkdir -p -- /contrib mkdir: ディレクトリ `/contrib' を作成できません: 許可がありません make: *** [installdirs] エラー 1
よく考えてみたら、configureで--without-docdirしてたからか。うー。
- WriteBacks: 0
ネットプリント、PDF対応
- 2005-07-08
- misc
ネットでアップロードしたファイルをセブンイレブンでプリントアウトできるというサービス。会社に勤めてないころはどうしてもプリントアウントしたい時に重宝してました。
PDF対応はやっとカヨ。つーかこのサービスがPDF対応してなくてどーすんのって思ったんですが、まあXeroxなんで、、、DocWorks(wは元々対応してたわけですが。
- WriteBacks: 0
DIとか
- 2005-07-06
- programming
よくDIの説明を見ると、「オブジェクトの生成を自動化する」とか「依存性をソースコードから排除する」とか書いてある。
でも、だったらソース書き換えてもいいじゃん。って思ってるんです。面倒臭い?それは書く手段っつーか記法の問題で、賢いIDEとかが解決してくれるかもしれないじゃん。DIコンテナの設定ファイルを書き換えるのと同じくらい簡単にソースコードを書き換えられればいいんだよね。
というのは半分アオリで言ってますが。Javaだったらそもそもjarだけでソースが無いって状況もあるわけで。
ただ、DIコンテナが解決してくれる諸問題を、解決する別の方法があるんじゃないかとは思っている。特にDIコンテナっていうのはJavaのような言語にはマッチした方法なんだけど、(よくアチコチで僕が言ってますが)PHPのような言語に適応するのであれば、やっぱ別の方法を探したくなる。
例えば、命名規則によって、変更があった時も機械的に書き換えられるコードを書くという方法もあるだろう。あるいは、中間言語っつーか中間記法を作ってそこからソースコードを生成する、みたいなアプローチの方がいいかもしれない。依存関係はソコだけに記述する。するとその依存関係に基づいたソースを生成してくれる。と。
記法って重要だと最近思う。JavaとGroovyみたいに、同じ機能(API)にアクセスできる別の記法があるというのはすごくイイと思う。フレームワークを書く人とちょっとしたプログラムを書く人が別の記法を使うというのはすごく正常だと思う。(でも僕がイイと思うものはあまり流行った試しがない)。
Smartyのアプローチが好きなのは、あれが中間言語であり(構文はともかく)、PHPのソースコードジェネレータだからだ。
関係無いけど、ソースコードジェネレータっていう手法があ流行らないのは、自分で書いたコードしか信じられないというプログラマーの精神的障壁が邪魔してるのかな。とか。
- WriteBacks: 0
Trackbackのテスト
- 2005-07-03
- misc
古い友人がはてなをはじめたようなのでトラックバックしてみるテスト。手作りなので、変なのがいったらスマンということで。
perlでPOSTすべきパラメータ作って、wget呼んでるだけですけどね。はてなって言及リンクが無いとエラーになるんだ。なるほど。でも見にきてくれるんだったら、blog_nameとかexcerptなんかも勝手に拾ってくればいいのに(ひょっとして出来るのかな)。
- WriteBacks: 1
GCCでアライメントを指定する
- 2005-06-26
- programming
アライメントの指定のしかたを調べる。
#include <stdio.h>
#include <stddef.h>
int
main()
{
struct t1 {
char c;
int i;
};
struct t2 {
ch



