2003-04-25
@ オープンソースソフトウェアに対するユーザの要望について思うこと
基本的に、「こういう機能が欲しい」と思うのなら、自分の手でやるというのが大原則だと思います。ソースはそのために公開されているのではなかったでしたっけ? もちろん、大多数の人が望むような機能ならば、作者はそれを実装するものだと思いますが...
2007-04-25
@ [mysql] MySQLのVARCHAR,TEXT型はデフォルトではCase Insensitive
先日とあるアプリケーションを作っている際にはまりました。とあるテーブルにVARCHARでtagというカラムがあったのですが、このテーブルには
mysql> desc test; +-------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+-------+ | tag | varchar(255) | YES | | NULL | | +-------+--------------+------+-----+---------+-------+ mysql> select * from test; +------+ | tag | +------+ | C | | hoge | +------+
というようにデータが入っていてこのカラムにUNIQUE制約をつけていました。でここにtag='c'(小文字)なデータを入れようとしてUNIQUE制約違反でエラーになっていたんです。でよくよく調べたらVARCHARやTEXTはデフォルトでは大文字小文字の区別がないとのこと。
でぐぐってみるとカラムにBINARY属性をつけると大丈夫なようだったので、
alter table test modify column tag varchar(255) binary;
としてみたらCase Sensitiveになりました。
2008-04-25
@ [linux] ターミナル上にカレンダーを表示するコマンドcal
漢のzsh コマンド補完設定 - cal/ncalコマンド編を見ていて知ったのですが、calというターミナル上にカレンダーを表示するコマンドがあります。
使い方はいたってシンプルで
$ cal
と入力すると
April 2008
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
と現在の月のカレンダーが表示されます。また、
$ cal -3
とやると
March 2008 April 2008 May 2008
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 1 2 3 4 5 1 2 3
2 3 4 5 6 7 8 6 7 8 9 10 11 12 4 5 6 7 8 9 10
9 10 11 12 13 14 15 13 14 15 16 17 18 19 11 12 13 14 15 16 17
16 17 18 19 20 21 22 20 21 22 23 24 25 26 18 19 20 21 22 23 24
23 24 25 26 27 28 29 27 28 29 30 25 26 27 28 29 30 31
のように前後含めた3か月分のカレンダーが表示されるという優れもの。
カレンダーを見るときは大体ウィンドウズの右下にある時計からカレンダーを出していたのですが、ターミナル上にいるときはこのcalコマンドが重宝しそうな気がしています。土曜日や祝日が色つきで表示されるとなお良いのですがさすがに無理っぽいですかねぇ...
# こびと [Emacs で M-x calendar はいかがでしょうか? ]
# おいぬめ [おお、これは知りませんでした。しかも日本の祝日もちゃんと表示してくれるんですね!]
# こびと [日本の祝日は japanese-holidays.el のおかげだと思います。]