2007-08-01 [長年日記]
★ Checkstyle
業務で現行システムにCheckstyleを適用した際の問題点等の調査・説明を行った。
ぶっちゃけ、既に稼働中のシステムにCheckstyleを適用っつーのもどうなのかなぁ、と思う。単純なトコならまだしも、それなりにリファクタリングが必要なところもあるし。XPでいうところの「勇気」が必要なんだが、ユニットテストすらも導入していないところに発揮するにはいささかリスクが大きすぎる。
既に動いているシステムにXPなんて、所詮絵空事なのか。
2007-08-02 [長年日記]
★ Carbon Emacsに引数を渡す
Carbon Emacsをアップデートしたら、どこかでエラーがでるようになった。あ、んじゃ、--debug-initで、と思ったが、よく考えてみると、QuickSilverからしか起動してないから、引数の渡し方がよくわからん。
/Application/Emacs.app/Contents/MacOS/Emacs --debug-init
と、ターミナルから打鍵してOK。ラクばっかりしてるのはイカンよなぁ。
ちなみに、elscreenの問題だった。最近使ってないから外すことにした。
★ 同じバージョン?
自動デプロイツール書いてくれ、って言われていろいろ調べだす。まぁ、前回の時も書いていたのでラクショーだろ、と思ったんだが。
前回の時が10g R1、今回が10g R3。メジャーバージョン同じなのに全然違う! >< JDKが1.4.2から1.5になってる! >< 管理画面も構成もかなり違う! >< dcmctlがなくなってる! ><
互換性なくなるんだったら、バージョンあげろよって感じ。
★ redMineでCVS
なんかうまくいかねぇなぁ、と思ってログみたら、
Unknown command: `rls'
とか出てる。rlsってcvsのサブコマンドで1.12.8以降でサポートされたらしい。
macのcvsは1.11.20なので、1.12.13なdebian etchで再チャレンジ。パスワードは入力できないので、空で入れるところじゃないといけない。repositories.passwordにsqlでつっこんでみたけどだめだった。mewのcvsが条件に当てはまったのでためしたところうまく行った。リモートのせいかえらい時間がかかったけど。
8/6追記。CVSROOTがにパスワードを含める書式ならパスワードありでも動いた。
:pserver:user:password@server:/cvsroot
2007-08-07 [長年日記]
★ Ext 1.1 HTML Editor
extまだ使い方よくわからん。慣れるために書いとく。1.1から追加されたHTML Editorの動作する最低限のコード。
<html>
<head>
<link rel="stylesheet" type="text/css" href="ext-1.1/resources/css/ext-all.css">
<script type="text/javascript" src="ext-1.1/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext-1.1/ext-all.js"></script>
<script type="text/javascript">
Ext.onReady(function() {
new Ext.form.HtmlEditor({width:600, height:400}).applyTo("editor");
});
</script>
</head>
<body>
<textarea id="editor"></textarea>
</body>
</html>
★ Vimでカーソル下にあるファイルを開く
まだまだ知らないコマンドが多いなぁVimは。
<script type="text/javascript" src="javascripts/hoge.js"></script>
なんてのがあったら、javascripts/hoge.jsの上にカーソルもってけば、
- gfでカレントバッファに開く
- CTRL-W fでウィンドウを分割して開く
- CTRL-W gfで新規タブに開く
となる。空白を含むファイルのばやいはVisual Blockすれば大丈夫。
2007-08-08 [長年日記]
★ 新しいiMac/Mac mini/Apple Keyboard/iLife/iWork
一気にキター!
ビックカメラに新iMacが展示されてたので見てきました。全面がガラス張り、側面はアルミ。なかなか。でも、前のも結構好きだったので、どっちがよいかってーとビミョーな気はする。欲しいなぁとは思うけど、6畳に24インチ2枚並べるのは無理w
iWork '08は表計算ソフトNumbersが付いたのはデカイ。M$ OfficeもNeoOfficeももういらん。買ってくるつもりだったんだが置いてなかった。
キーボードは新しいのがセクシー。つか、あまりのセクシーさにワイヤレスUSキーボード発注しちまった。
Mac miniは長い事Core Duoから変化なしだったんで、ラインから外されたのかと思ってた。場所の問題が解決しない限り、次に買うのはMac miniかノートだが、まぁ、こちらはleopardがでるまで待つ事にする。
★ Vimにヘルプを追加
香り屋で配布されている日本語マニュアルやスクリプト付属のヘルプを追加するには、~/.vim/doc (UN*X)や、%USERPROFILE%?vimfiles?doc(Windoze)にヘルプファイルを置き、vim上で:helptags [ヘルプを置いたディレクトリ]でおk。ctagsが必要。
2007-08-09 [長年日記]
★ コマンドプロンプトでファイル名とディレクトリ名の補完
XP以降だと補完がデフォルト有効なのでいいんだけど、2000だと/f:onとかしなきゃない。めんどくさいのでレジストリに書く。
HKCU\Software\Microsoft\Command Processor
| CompletionChar | REG_DWORD | 0x09 |
| PathCompletionChar | REG_DWORD | 0x09 |
Ctrl+F/Ctrl+Dがデフォだけどめんどいので両方Tabにした。
実行ファイルの補完もやってくれるとほんとはうれしいんだがな。
2007-08-11 [長年日記]
★ JavaScript 第5版
Javascript: The Definitive Guideの邦訳。リファレンス部分はJavaScriptクイックリファレンス 第5版で、こちらは言語解説部分。ようやく日本語版が揃った。
2007-08-14 [長年日記]
2007-08-15 [長年日記]
★ Vimの挿入モードでことえりが勝手に立ち上がる
MacでVim 7.1をコンパイルしたら、何故か挿入モードでことえりが勝手に立ち上がるようになってしまった。これはウザイ。
どうやら、+multi_byte_imeだとそうなってしまうらしい。というわけで、以下を~/.vimrcに追加。
set iminsert=0 imsearch=0
★ 一度ある事は...
なんか、こないだと別の人がシェル動かないって言ってた。
原因はカレントディレクトリのシェルをパスなしで叩いてたから。vi使うの人生二度目とかとも言ってたよ。新人君とかじゃないよ。結構イイトコの社員で入社5年は軽くこえてるはずだよ。
...なんかたまに自分が道間違えたんじゃないかと思う(まぁ、実際、踏み外しているとは思うけど)。
2007-08-16 [長年日記]
★ 最近の俺エディタ比率
- VIM - 80%
- Emacs - 10%
- サクラエディタ - 5%
- Smultron - 5%
公私ひっくるめた割合がこのぐらいだと思う。最近はプロジェクトベースというよりは、ファイル単位でガリゴリっと書く事が多いのでVIM > Emacs。Emacsはsqlplusフロントエンドとしての出番が多い。つか、sqlplusがヘボすぎる。
ところで、そこそこ長い事この業界にいるつもりだが、VIMをメインのエディタにしてる人を見た事がない。みんな、秀とかemとかサクラとか。使いやすいとか使いにくいとかは人の感性だからしかたないが、VIMがそれらの100倍楽しいエディタだということは間違いないと思うのだが。
★ matchit.vim
というわけで、Vimエントリは続く。
Tip #305: Best of VIM Tips (VIM's best Features)を見てたら、
matchit.vim : % now matches tags <tr><td><script> etc
なんてのが書いてあった。そう、常々それが欲しかったのよ。%で対応する括弧に移動するのはviの基本だが、こいつはHTMLの閉じタグとかも対応してくれる。
vimの標準配布物にも同梱されていて、.vimrcに
source $VIMRUNTIME/macros/matchit.vim filetype plugin on
とかしておくと有効になる。Webプログラマ超必須設定かも。
2007-08-19 [長年日記]
★ ホリディ
恋愛モノ。アカの他人と家を交換するってどうなのよ、っつーのはあるけど、面白かった。キャメロンが奇声を上げながらはしゃいだりする姿はとてもかわいい。
一応映画館でも観たにもかかわらず買ってしまいました。
2007-08-20 [長年日記]
★ project.vimの使い方
もはや、vimいじりぐらいしか日々の楽しみがない件。
というわけで、今日はproject.vim。VimをIDEっぽく仕立ててくれるプラグイン。
起動。
:Project {file}
fileはプロジェクトファイル名。省略時は~/.vimprojectsが使われる。左側に空のバッファが現れる。
まず、プロジェクトの名前と場所を決めてやる。左のバッファに自分で書く。
My Project=~/src/myproject {
README
}
なにもないと寂しいので、READMEと書いておく。カーソルをREADMEにあわせてEnterすると、右のバッファに~/src/myproject/READMEが開く。
実は既にこのディレクトリは以下の構成になってたとする。
- README + src/ - Makefile - hello.c
.vimprojectsファイルを以下のように修正。
My Project=~/src/myproject {
README
src=src {
}
}
追加した行にカーソルをあわせ、\rと打鍵。
My Project=~/src/myproject {
README
src=src {
Makefile
hello.c
}
}
勝手に追加される。エントリにあわせてEnterすると折りたたみしてくれる。:makeでmakeしてみる。
make: *** No targets specified and no makefile found. Stop.
Makefileが見つからない。実はカレントディレクトリが変わっていないから。ファイルを開いた時にcdするには以下のように書く。
My Project=~/src/myproject CD=. {
README
src=src CD=. {
Makefile
hello.c
}
}
こんどはmakeできた。make後に\rすると、プロジェクトファイルに.oとかプログラムまで入っちゃう。いらないものを除外するのにfilterオプションが使える。
My Project=~/src/myproject CD=. {
README
src=src CD=. filter="Makefile *.c *.h" {
Makefile
hello.c
}
}
これで指定したファイル以外は入らない。
ここまでの作業、実は.vimprojectsバッファで\cすればインタラクティブに作成可能。...ということを今知った。
プロジェクトに対するgrep機能もある。ブラウザ上で\g(単一ディレクトリ)もしくは\G(ディレクトリ再帰)。
基本的にはそんなとこ。
技術評論社
売り上げランキング: 44592
技術評論社
売り上げランキング: 252220
オライリー・ジャパン
売り上げランキング: 27827
オライリー・ジャパン
売り上げランキング: 120792
2007-08-23 [長年日記]
★ Vimの%
6000行ほどあるストアドにえらい長いループがあって、
FOR v IN cur LOOP (500行ほどsnip) END LOOP;
ループの対応見つけんのめんどくせぇ、と思いつつも、なにげに頭のLOOPの上で%押したら、ちゃんとEND LOOPまで飛んでくれた。スゲェ。
ちなみに、
LOOP FETCH cur INTO v EXIT WHEN cur%NOTFOUND END LOOP;
とかなってると、LOOP→EXIT→END LOOPと飛んでくれる。ヤベェ。
2007-08-28 [長年日記]
★ アン・ハサウェイ
「プラダを着た悪魔」で完全にアン・ハサウェイに完全にやられてしまって買った「幸せになるための恋の手紙」。パケジ裏には、
アン・ハサウェイのキュートな魅力が満載!
って、書いてあったんだけど。…ほとんど出てねぇ ('A`
新任宣教師がトンガの小さな島で奮闘する話。まぁ、悪くはないです。
そんなことより、「プラダを着た悪魔」。マジ、オヌヌメ。
★ 裏技
最近はテストばっかりしてるわけで。
どうにも操作方法がわからない画面があったので聞いてみた。
☆「この画面、どうやってもボタンが有効にならないんですが。」
○「ああ、それは、ココとココと...で、6つのチェックボックスにチェックをつけると押せるようになるんですよ。」
...このシステムには裏技本とか必要なようです。
2007-08-30 [長年日記]
★ 久々に寝付けない。
困った。
★ インジェクション
String where = "WHERE id = '" + id + "'";
なんて安直なコードを見ると、つい、画面から、
' OR 1 = 1 --
とか、
' UNION SELECT NAME, PASSWORD FROM USERS --
とか入力しちゃう俺。
まぁ、別に俺がやるのは問題ないんだけど、こういうのが山ほどあるシステムが動いていた場合に告知するのが難しい。
エンドユーザが知れば、当然、SIに無償で直させるだろう。SIが隠しても、事が発覚すれば - さらにまずいことになれば! - 賠償・訴訟問題はまず避けられまい。
...あれ? 別に俺に被害はおよばないのか。なーんだ、おきらくごきらく!
★ テストばっかし。
で、疲れてきたので明日はお休みをいただきました!
2007-08-31 [長年日記]
★ Oracle用PC
Oracleの実験用PCが欲しくなったので、久々にPC組んだ。つっても、そのへんに転がってた部品を組み上げただけだが。あ、電源だけ買ってきた。Sempron 3000+、PC3200 512*2、IDE 80GB HDD。
無償配布されているOracle Express Editionを入れるので、サポートされているRHEL4互換のCentOS 4で。Debianでもよかったんだけどなんとなく。最小構成でインスコして随時yumとかaptはいつものパターン。
Oracle本体はrpm落としてきて突っ込もうとしたら、libaioがないって怒られた。yumでインスコ。後は、
# /etc/init.d/oracle-xe configure
して、いくつか質問に答えればOK。カーネルパラメタの設定とかも適当にやってくれるらしい。製品版に比べると非常に楽チン。
sqlplusの場所は、
% rpm -ql oracle-xe-univ | grep bin/sqlplus /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/sqlplus
と、深いところにある。同じ場所にあるoracle_env.shを読み込んでおけばテキトーに設定してくれるっぽい。






● しびある [今日iWorkとiLifeを銀座店にて購入してみました。これから入れてみます。肝心のキーボードの入荷はまだらしいです..]
● ☆ [ひと月ぐらいかかるんでないかね。 > キーボード てか、キーボード買うのかよw この間、前の型買ったんじゃなかったっ..]
● しびある [だってかっこよかったんですもーん。アルミ板だからなんていうかちょっと、試し打ちして違和感を感じましたけどね。でも、ブ..]