Home

memo-space

冬休みの課題(1)

創るJava

買いました。というかけっこう前に買ったんだけど、今やっと読み始めました。 とりあえずNetBeansインストール中

買いました
買いました posted from フォト蔵

、、、

ほぉ。String.format()ってこういうふうに使うのか。

PKF1145

コードを短くするのって楽しいですよね?(1)などなど。PKF1145祭りなるものが盛り上がっていたらしい。北京大学のプログラミングコンテストみたいなもの?

こんなのに参加するとプログラマを続ける自信を失ってしまいそうなので、とりあえず別のものから解いてみよう。1000はa + bの結果を表示するもの。とりあえずクリア。

えーっと1001でもうグダグダなんですが、、、

PostgreSQL日本語化?

画期的に馬鹿馬鹿しいことを思いついた。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)

、、、もっと人の役に立つことのために頭を使おう。

シングルクォートのエスケープ

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のバージョンが古かったらどうなるんだろうとか)。データベース抽象化レイヤとか書く人が大変そう。

べつやくさんいろいろ

べつやくさんが描くいろんなキャラを作ってみた。キャラ増えてます。

消しゴム彫刻。本人が3D化。なんかクリップに使えそう。やっぱべつやくさんのキャラは立体化が合ってるんだな。スネ夫と違って。

べつやくさんのキャラで好きなのは、思い出のサラダバーを再現したいに出てくるサラダ山(とサラダ山親方)です。ネタとまるで関係ない進行が好き(今回の一揆もそうだけど)。

sysadmin toolbox

My sysadmin toolbox[linux.com] via slashdot.org

Vim - あるある

GNU Screen - あるある

abcde - ねーよ

なんでtelnetなんかはいってるのかと思ったら、あれは25番とか110番とか叩くための道具なのね。

CDargsとかCheckinstallは使ったことないけど、なかなか面白そう。

チャイコン・メンコン

先日kitaraで札響を聞いてからというもの、すっかりチャイコンにはまってしまった。で、とりあえずiTMSで買ったのコレ。

メンコンの第一楽章もいいな。自分の中での「これぞヴァイオリン協奏曲」という感じ。

いままで協奏曲ってあんまり興味なかったからなー。kitaraで聞いたのが初めてだったんだろうと思っていたら、某所に放置されていた古い日記を見て驚愕の事実を知る。 前にも一回聞いてるじゃん。しかも札響。そしてそれ日記に書いてるし!!

それがまた前の会社の初出勤の日だったらしいw

キーボード購入

FILCO FKB91JP

以前から店頭にあるのは知っていて買おうかどうか考えていたのだけれど、実は生産終了していたということを知ってしまい数日前に購入。

タッチにはそれほど拘りはなかったのだけれど、実際席に座って机に置いて使ってみると、店頭で触った感触とはずいぶん違ってなかなか良い。でもスペースキーがぶっこわれそうな気がする。

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

Slonik QuickRef

ニートすぎて暇だったわけではないのだが、ついカッとなってこんなものを作ってしまった。

http://www.mono-space.net/misc/slonik.pdf

どれが省略可能なオプションなのかよくわからん。あともうちょっと綺麗に組版したい。

iPod対抗の新商品、新入社員がデザイン シャープ

iPod対抗の新商品、新入社員がデザイン シャープ(asahi.com)

いや別に悪くはないんだけどさ。商品にピントが合ってるのも悪くはないんだけどさ。なんつーか顔の微妙なピンボケ具合が、、、

プライマリキーを調べるSQL

久しぶりに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って便利そうね。

teeの底力

teeコマンドは実は複数のファイル名を引数として指定できるということを、たまたまteeコマンドのソースを見てたら発見した。

$ echo Hello | tee /dev/stdout /dev/stdout /dev/stdout
Hello
Hello
Hello
Hello

使わねー

teeのマニュアル(JF)

べつやくさんマスコット

かれこれ30時間程仕事中。あと10時間くらいは帰れない気がする。

こんなの見て癒されてたり

Home

Search
Feeds
Profile
石田@苫小牧市と名乗りつつ札幌の某社に勤務するプログラマ
書いた本
Links

Page Top