ふつうのLinuxプログラミング Linuxの仕組みから学べるgccプログラミングの王道

超面白くてためになりました。

ファイルシステム、プロセス、ストリームとLinuxを構成してる概念を説明した後でシステムコール、標準ライブラリ(glibc)と順を追って丁寧に説明してあります。

この本 → Code Readingって流れがすごく良さそうなので試してみます。(以前Code Reading挫折した)

Code Reading―オープンソースから学ぶプログラミングテクニック

昨日知ったMySQL豆知識。

  • テーブルに可変長カラムが1個でもあるとCHAR型はVARCHAR型に変わる。
  • 3文字以下のVARCHAR型はCHAR型に変わる。
mysql> create table address (
    ->     zip1 char(3),
    ->     zip2 char(4),
    ->     address text
    -> );
Query OK, 0 rows affected (0.06 sec)

mysql> show create table address;
+---------+-------------------------
| Table   | Create Table
+---------+-------------------------
| address | CREATE TABLE `address` (
  `zip1` char(3) default NULL,
  `zip2` varchar(4) default NULL,
  `address` text
) TYPE=MyISAM |
+---------+-------------------------
1 row in set (0.00 sec)

知らずに泣くなよ!

MySQL リファレンスマニュアル :: 6.5.3.1 カラムの暗黙的な変更

長さが 4 文字に満たない VARCHAR 型のカラムは CHAR 型に変更される。

テーブルのいずれかのカラムが可変長である場合は、結果的にそのレコード全体が可変長になる。したがって、テーブルに可変長のカラム(VARCHAR、TEXT、BLOB)が含まれている場合、長さが 3 文字を超す CHAR 型のカラムはいずれも VARCHAR 型カラムに変更される。

Blog::koyhoge – PostgreSQLで日本語全文検索 (文字コードはUTF-8)

NTTの寺本さんがつくられたkakasi tsearch2をベースにして、分ち書き部分をmecabに置き換えたものを先日作ってみました。一応UTF-8でちゃんと動作しているようです。

おお、男は黙ってLIKE ’foo’かと思ったらおれが知らないだけでポスグレでも色々あるんすね。
まとめてみると、

  • tsearch2+(kakashi|mecab)—- 形態素解析
  • Senna—- 形態素解析
  • Rast—- N-gram

という感じでしょうか。MySQLと同じだ。
仕事での事例とかがすごい知りたい!

AnyEdit tools plugin for Eclipse

3 ””Convert → Leading tabs to spaces”“
(trailing whitespace will be removed automatically)

4 ””Convert → Leading spaces to tabs”“
(trailing whitespace will be removed automatically)

エディターに細かい機能を追加するEclipseのAnyEdit tools pluginがPHPEclipseでも使えるようになったとか。

spaceをtabにする機能はちょっと欲しい。

PECL :: Package :: PDO_MYSQL

This extension provides a Mysql 3.x/4.x driver for PDO.

PDO_*系が一斉に1.0RC1をリリース。
こりゃ正式リリースが近いわ。

「xxさん忙しいですか?」

会社で頻繁にされる質問ですが、返答に毎回困っていました。
忙しいというのは「楽しい」とか「美味しい」などと同じで暗黙的に「自分にとっては」が頭に付きます。
つまり、気分などによってコロコロ変わってもいい概念なので返答に困っていたのです。
しかし、逆に考えると「自分で決めてしまえばそれが正解」ということになるので自分にとっての「仕事の忙しさ」を定義しました。

tabouritu

これでいつ何時誰に聞かれても即座に答えることができます。
webにアップしてURIを名刺に印刷しておけばなお良いですね。

うそです。

Collection & Copy – JavaScript: 世界で最も誤解されたプログラミング言語

標準以下の標準

JavaScriptの公式仕様書はECMAが発行しています。この仕様書の品質は非常に悪いです。これを読み進めるのは難しく、内容を理解するのは極めて困難です。JavaScript関連書籍の作者達が、自分自身の理解を深めるためにJavaScriptの公式仕様書を使用できないことが「ひどい書籍」の問題を引き起こしているのです。ECMAとTC39委員会は、深く反省するべきだと思います。

ECMAScriptの仕様書が全然分からないおれは酷く知恵足らずなのでは・・・と思ってましたがみんな分かり辛いと思ってたんですね!

仕事ではPHP5.1が出たら(すぐ出そう)真剣に何使うか考えなきゃいけないですが、現状ではMojavi2使ってる人も多いはず!(おれも)

そこで地味Tips

「modules/foo/config.php」を置いておくとそのmodule呼ばれた時に読み込んでくれる!(ExecutionFilterが)

使い方としてはそのモジュールだけで使うライブラリや定数を書いとくと便利っぽいです。

<?php
define("FOO_BAR_LIMIT", 10);
include_once("Pager/Pager.php");

include_onceとPHP閉じタグを書かないのが流行です。(うz)

日本PHPユーザ会からの平面波

いつのまにKOF2005を日本PHPユーザ会としてやるようになったのだ?

ユーザ会の人が3人1組になって戦うのかと思った・・・orz

PEAR :: PEPr :: Details :: XML_Feed_Parser

XML_Feed_Parser is a package providing unified access to a range of XML-based syndication formats. At present it offers near-complete support for Atom 1.0, RSS1.0 and RSS2.0, and it should be straightforward to add support for other formats.

DraftにRSSやAtomを統一的に扱おうというParserがあがってます。
XML_RSSではAtom無理なのでProposal通って欲しいです。