2008/10/31

Hachikuro

http://comics-news.shueisha.co.jp/common/hatikuro/

一時期、あるIRCチャンネルでハチクロハチクロ言ってる連中がいた。「のらくろ」だろJK と脳内で言い換えつつ見ていたわけだが、昨日1巻だけ読んでみた。

ああ・・・これは・・・・・・なんとなく納得したよキミタチ!(笑)
・・・一部で流行る理由というやつが、ね(´ー`; )

----

けど、何がきっかけで一部で流行り始めたのかは未だにわからない。

2008/10/29

Love for Software

http://www.slideshare.net/hsbt/sapporo-ruby-kaigi01-presentation

20年宣言て凄いよな。これは間違いなく「愛」だと思う。

誰しもソフトウェアを書くに当たっては大なり小なりの「ゴール」(目標)があると思うのだけれども、hsbtさんはどこにゴールを置いてるんでしょうね。是非聞いてみたいところかもしれない。どちらにせよ、tdiary に対する愛がなければこんな宣言はできないだろう。

----

ソフトウェアを書き続けるにあたって、「ゴール」は勿論、維持すべき「モチベーション」、そして様々な実生活の中でそれを維持するための「バランス感覚」は物凄く重要である。だが、それ以上に「一度ゴールを決めてやり始めたら、たとえ時間がかかってもやめない」ことも重要だと思う。これが今の自分に課している課題である。

これが簡単なようで意外に難しい。。かもしれない。ほら、人間ってなんだかんだ言い訳して楽な方向に自分を持っていこうとする生き物だから、、ネ。自戒を込めて。

2008/10/22

bug report, workaround

http://d.hatena.ne.jp/hnw/20081022
http://d.hatena.ne.jp/shimooka/20081012/1223784788

hnwさんのエントリはバグ報告についての最低限の作法だと思うので、非常にいいエントリだと思います。大筋は多分どこでも通用するかな、という気がします。

・・・以上、ではなんだし、余所行きなエントリは嫌いなので、以下独り言をば。

----

何かソフトウェアの変な挙動を見つけたとき、workaround(回避方法) を探してしまう癖が自分についているような気がする。そして諦めてしまう自分が多くいたりする。それが歯痒い。

何が変なのか、何が正しいのか、どう直せばいいのか、というのを知るにはそれなりの力量、知見に加え、何よりそれなりの時間、労力が必要だ。それを幅広いソフトウェアで見極められる人間になりたい。そう思ったり。「それなりの力量、知見」の部分が全く足りない。そう思う。そして日々もがく。そんな状態。

2008/10/20

Ethna_AppObject

全部書き直したくなる衝動を必死で抑える簡単なお仕事です(一行独白

prolonged sound symbol

http://www.microsoft.com/japan/presspass/detail.aspx?newsid=3491

俺って長音記号は「付けない」派なのよね。つまり、以下のように言いたがる人である。

----

maintainer - 「メンテナ」
committer - 「コミッタ」

これらを「メンテナー」「コミッター」と言いたがる人もいるということである。

----

ただ、翻訳にあたってはそんな個人の感覚やエゴよりも、「統一」されていることが重要なので、それはそれ、これはこれ。で大人の対応をしましょう(*´〜`)

2008/10/18

[memo] How to get Database Metadata by PHP

普段データベースのメタデータを取得する機会なぞあまりない。だが、ORMを弄るときは別だ。ユーザがそうしたものを全部プログラムに書いてくれれば不要なのだが、今時の怠惰なプログラマはそれらを自動生成または補完することを求めるからである。

ということで、ちょっと Creoleadodb の場合を調べたのでメモしておく。test というテーブルのメタデータを取得する流れを記してある。尚、エラー処理は省略してある。

----

1. adodb の場合

require_once 'adodb/adodb.inc.php';

$dsn = 'mysql://foo:bar@localhost/test';
$conn = NewADOConnection($dsn);

// get ADOFieldObject
// A field object is a class instance with (name, type, max_length) defined.
// @see http://phplens.com/adodb/reference.functions.metacolumns.html
$columns = $conn->MetaColumns('test');
foreach ($columns as $column) {
var_dump($column->name);
var_dump($column->type);
var_dump($column->max_length);
}


2. Creole の場合

require_once 'creole/Creole.php';

// first get DatabaseInfo object.
$dsn = 'mysql://foo:bar@localhost/test';
$conn = Creole::getConnection($dsn);
$info = $conn->getDatabaseInfo();

$test_info = $info->getTable('test'); // TableInfo object.
$test_columns = $test_info->getColumns(); // ColumnInfo object.

// finally get as you like.
// @see http://creole.phpdb.org/docs/api/creole.metadata/ColumnInfo.html
foreach ($test_columns as $column) {
var_dump($column->getName());
var_dump($column->getNativeType());
}

2008/10/16

SQL QUOTED IDENTIFIER

SQLのキーワード を含んだ識別子は、ANSI/ISO SQL規格によれば ダブルクォートで括ることになっているようだ(※)。ただ、その扱いは RDBMS によって様々である。これは ORM 等で、SQLを自動生成するプログラムを書く人にとっては割と問題になる。なぜなら、ユーザが識別子として何を書いてくるかわからないからである。

そのまとめとしては、PEAR::MDB2 での扱いが非常にわかりやすかったりするのだが、私が触れている主なRDBMS上での扱いを以下にメモしておく。基本的にダブルクォートが可搬性が高いわけだが、そのデフォルトは異なったりするので、やはり RDBMS を見てクォートする文字を変えるライブラリが存在している。

----

・MySQL - http://dev.mysql.com/doc/refman/5.1/ja/identifiers.html
デフォルトは「`」を使う。目立つわけだが、そんなエンジンでも ANSI SQLモードは用意されている

・SQLite - http://sqlite.org/lang_keywords.html
[] も区切り文字として許されている。Access や SQL Server への互換性のためのものだが、これも目立つ。

・Microsoft SQL Server - http://support.microsoft.com/kb/156501/ja
設定すれば強制クォートしてくれるモードが用意されている。

・PostgreSQL - http://www.postgresql.jp/document/current/html/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS

え、Oracle がないって? 俺普段触らないのでどなたか補足よろしく(´ー`; )

----

※ ダブルクォートで括らねばならないとされる根拠は、ANSI/ISO SQL規格にある。SQL 92 で言えば、5.2 <token> and <separator> にある。そこでは、識別子 (regular identifier body) は SQL のキーワードであってはならない (shall not) とされている。delimited identifier(ダブルクォートで括られた識別子)についてはこの規定はない。ただ、その comparion rule は複雑過ぎたので読むのを止めた、、(´ー`; )

mumu.mu

http://nic.mu/modules/smartwhois/whois.php?domain=mumu.mu

お名前.com で .mu ドメインが申し込み可能になった、という話があり、俺に 「mumu.mu」を取ってくれ(*゜ー゜) という話題がちょっと出たので調べてみたら下記の結果。モーリシャスドメイン自体は以前から登録を受け付けていたこともあるんで、取られてても全然おかしくない。

Domain Information
Query: mumu.mu
Created: 29 Jan 2008
Expires: 29 Jan 2009
Status: Active
Registrar: Key-Systems
Name Servers:
ns1.sedoparking.com
ns2.sedoparking.com

Registrant:
Serap Temel

まぁあれですよ。俺は permalink 的に使わないドメインには基本的に興味がないので、空いていても多分とらないっす(´ー`; ) mumumu.net はその意味で例外ではあるけれども、これも多分(2015年以降は)維持はしないし、ね。

----

あぁ、ドメインといえば、ethna.jp ドメインは藤本さんが保有しているんだけど、あれが先月末に 数時間 expire するという事件があった。忘れないように Google Calendar にアラートを追加しておいた。

2008/10/11

Ethna 2.5.0 preview2 announced

http://sourceforge.jp/forum/forum.php?forum_id=16056

ようやくアナウンスした。小粒な変更しかないように見えるが、PEAR依存が半分外れていることだけでも割と侮れない。まあ、このリリースは次への布石に過ぎない。

preview3 がおそらく本番だ。いよいよ悪名高いDBとSessionまわりに手を入れるからだ。
おそらくUTF-8化くらいアレなんじゃないかな。実装というよりは落としどころを探すのが(藁

フレームワークというのは実装以上に落とし所を探るのが大変だったりする。