雑記帳 2009年 5月第3週

2009/05/10 Sun.

あまりにも暇だったので、自宅周辺を10kmくらい散歩してみる。やたら熱かったせいか、この距離でも意外に疲れた。
932SH」のカメラのチェックも兼ねて色々撮ってきたけど、CCDの8.0Mピクセルといってもデジカメには適わないな。
設定が甘いだけかもしれないけれど、どうにも夜景撮影時が弱い気がする。日中の風景を撮るなら問題無さそう。
それにしても、「932SH」は音がデカい。音量を最小にしても十分すぎる。最大音量はもはや騒音公害になりそう。
どうせだったら、音量調節をもっと細かく設定させてくれればいいのに。ちょうどいい音量設定というのが難しいな。

2009/05/11 Mon.

何という衝撃の月曜日……、全く予想だにしないことが突然起こるとビビってしまう。詳細はいつも通りに「ここ」を参照で。

相変わらずJavaでのSwingでの実装を進めてみる。イベントのリスナーの登録がメンドすぎる。ってか、複雑すぎる。
JTable」に「MenuKeyListener」と「MouseInputListener」を登録するも、後者のmouseDragged()が拾えない。
テーブルのセルをクリックで選択して、マウスクリックを放さずにドラッグするってことじゃないのか?どういうこっちゃ?
もう一つ不明なのが、「MySQL」にプロンプトからログインしてテーブル参照しつつ、Swingアプリからレコード削除する場合。
MySQL」のautocommitをオフにした上で、Javaからレコード削除をした後にConnection#commit()をかけると挙動がおかしい。
Swingアプリからレコードの再取得をすると削除が反映されてるのに、「MySQL」で参照するとレコードが消えてない。
で、「MySQL」上で明示的にコミットをかけてテーブルを再度参照すると、今度はしっかりレコードが消えている。
Oracleでいうところの「set transaction read only;」みたいな感じになってる?あれ、俺がトランザクションを理解してないだけ?

2009/05/12 Tue.

今日はPerlで「MySQL」を触ってみた。とりあえずDB操作関連のモジュールが入ってないのでインストールから。

C:\> ppm
PPM - Programmer's Package Manager version 3.4.
Copyright (c) 2001 ActiveState Software Inc.  All Rights Reserved.

Entering interactive shell. Using Term::ReadLine::Perl as readline library.

Type 'help' to get started.
ppm > install DBI
ppm > install DBD-MySQL

で、site/libの中にDBIが入ったことを確認してから、ちょいとネットで調べつつ適当なソースコードを書いてみる。

use strict;
use DBI;

my $user = 'tester';
my $password = '******';
my $db = DBI->connect('DBI:mysql:test_db:localhost', $user, $password);
my $sth = $db->prepare('select * from favorite order by description asc');
$sth->execute;
my $rows = $sth->rows;
for (my $i = 0; $i < $rows; $i++) {
    my @records = $sth->fetchrow_array;
    my $column_size = scalar(@records);
    my $flg = 0;
    for (my $j = 0; $j < $column_size; $j++) {
        if (!$flg) {
            print $records[$j];
            $flg = 1;
        } else {
            print "\t" . $records[$j];
        }
    }
    print "\n";
}
$sth->finish;
$db->disconnect;
undef $sth, $db;

適当にfavoriteというテーブルを作り、descriptionとurlというカラムを持たせてみて、実際に流してみた。
動くことは動く。本当に書き方が正しいかどうかは知りません。とりあえずPerlから「MySQL」を触れたので満足。

で、Perlで動くことが確認できたとなったら、次にやりたいのはPHPってなワケで、これもインストールして設定。
PHPは昔に少しだけやってたんだけど知識は残っていないので、「PHPBook」というトコを参考にして入れてみた。
どうやらDBを触るには微妙にメンドい。手順が正しいか知らんけど、「ココ」のソースからまずはPHPファイルを作成する。

C:\php> php go-pear.php
C:\php> pear install DB

途中でゴチャゴチャと大量の標準出力であれこれ聞かれるけど適当にEnterを連打して、一応は導入完了したのか?
PHPのDB操作も全くわからないので、適当に調べつつ「こんなソース」を書いてみた。selectもinsertもできるのを確認。
いい機会だからPHPをある程度やっておこうかなと思ったけど、どうにも意欲がいまいち湧いてこないから困る。

……IEで「この前述のソース」を開いたらHTML形式になりやがる。ソースを表示して見てみて下さいませ。
そういや随分前にブラウザごとの挙動を調べたことがあったな。見直してみたら「2005年3月23日」の雑記だった。
つーか、あれから4年も経ってるってのに、まだ直っていてくれてないのな。これ非常に不便なんだけど何とかならん?

2009/05/13 Wed.

TestSwing01」、「TestSwing02」、「TestSwing03」、「TestSwing04」、「TestSwing05」の5つがSwingのGUIのJavaコード。
後はDB操作用の「TestSwingDB」、共通例外の「TestSwingException」、起動用の「TestSwingMain」。まとめてみました。
画面設計は2分で書いたので適当。テーブルも一つしか参照できませんが、まあ勉強用のお遊びアプリだから何でもいい。
つーか、本当にクラス設計がわからん。いちいちパネル単位に分ける必要性も無いのかな?どうすりゃいいのかなー。
そもそも起動用のクラスにstaticJComponentが大量にあるってどうなの?しかもパネルに対するgetter()まで書いてるし。
各個処理のスレッド起動もいらないかなー、これの有無でソースの煩雑さが随分と変わる気がしないでもないんだが。
あー、DB操作クラスのメソッドでConnectionnullチェックとか接続チェックが入ってないのばっかりじゃん。もういいや。

で、風呂入ってる最中にやたらと自宅マシンにJDKやらIDEを入れたくなってきた。自宅でも開発環境揃えとこっかなあ?

2009/05/14 Thu.

Cのコンソールアプリを作成するのを、新人が仮想プロジェクトとしてやっているらしい。明日は基本設計書レビューだとか。
で、何で俺がレビューアとして呼ばれるのかが理解できん。しかも10時から15時とか、思ったよりも長そうなんですけど。

さて、時間もあることだし、自宅マシンにJDKとIDEを突っ込むか。このマシンで「Eclipse 3.4」は快適に動いてくれるかな?
ついでに「MySQL」も入れてみよう。どうせ近いうちにシステム入れ替える予定だし。あとはPerlのモジュールもだな。

2009/05/15 Fri.

4時間ほど新人の仮想プロジェクトの基本設計書のレビューに付き合わされたので、あれこれ突っ込みまくってきた。
それにしてもMicrosoft Magicとでもいうのか、「OpenOffice」との互換性はやはり微妙だな。あれじゃ苦労するだろう。
つーか、ウチの会社もライセンスをケチりすぎ。そもそも開発マシンすらケチりすぎ。ネットブックの方がいいってレベルだ。

昨日はJDKを入れただけで満足してしまったので、今日になってやっと「Eclipse 3.4」、別称Ganymedeを入れました。
ちなみにインストールしたJDKは1.5.0_18です。いや、1.6の機能とか全然知らないし。別にこれで困ることは無いだろう。
そうそう、入れた「Eclipse 3.4」は「PleiadesのAll in One」です。最初から入ってるプラグインの数が異常に多いのは当然か。
つーか、apacheのcommonsあたりもあれば、あげくの果てには「JUnit」まであるし。さすが350MBも落としただけあるわ。
自分のマシンでもそれなりに動いてくれるようで、結構快適な感じです。自分用の共通ライブラリでも作っておこうか。
これが職場のマシンとなると、起動にすら4分近くかかるから困る。おかげで職場ではEclipse 3.2を常時使っています。
MySQL」はインストーラーは落としたのだけど、入れるとなるとシステムに大きな影響が出るから躊躇ってます。
でも、入れないとDB関連の開発が行いにくい。うーん、一応色々とデータのバックアップを取ってからインストールしよう。

2009/05/16 Sat.

undefined.