2003年10月の雑感

更新日:2003-10-26
[トップページへ] [8月] [11月] [過去の雑感へ]

10月26日()

 [Soft] Gtk 2.2.4 のインストール

ふと思い立って、Eclipse Gtk版を試すべくインストール。 Gtkのダウンロードサイトから

をダウンロード。

tar jxvf atk-1.2.4.tar.bz2
cd atk-1.2.4
./configure
make
make install

tar jxvf glib-2.2.3.tar.bz2
cd glib-2.2.3
./configure
make
make install

tar jxvf pango-1.2.5.tar.bz2
cd pango-1.2.5
./configure
make
make install

tar jxvf gtk+-2.2.4.tar.bz2
cd gtk+-2.2.4
./configure
make 
make install

うろ覚えで書いてます。Pango と Glib のインストールは順序が逆かも知れません。

あとは

ldconfig

しておきます。

 [Java] Eclipse Gtk版

いよいよ、Gtk版のEclipseのインストール

unzip eclipse-SDK-2.1.2RC2-linux-gtk.zip -d /usr/local

この状態でEclipseを起動すると

libpangoxft-1.0.so.0 が見つからない

とエラーが出るので

cd /usr/local
ln -s libpangox-1.0.so.0 libpangoxft-1.0.so.0

としておきます。

Motif版よりも見た目はカッコいいです。 マウスでの操作も、Motif版よりさくさく動きます。

日本語の表示はできるけど、日本語入力できないのは、どちらも同じです。 skk-inputとの相性が悪い?

仮に使うとすればGtk版だと思い、Motif版は捨ててしまいました。

 [Perl] ; vs {}

なるほど。確かに、ブロックの最後の";"は省略できるみたいですね。

print 1;
print 2;
print 3

は、OK です。

でも、

print 1;
print 2
print 3

はNG。でもって

{print 1}
{print 2}
{print 3}

{print 1}
{print 2}
print 3

も、全部ブロックの最後だからOK。

多分、}の後だと省略可能ということじゃなくてブロックの最後だから省略可能ということじゃないでしょうか。

{print 1}
{print 2}
print 3
print 4

は駄目だったので。

多分、私は、1個省略するぐらいなら、";" を全部つけちゃいます。 「ここは、ブロックの最後だから...」とか考えるのは面倒ですから。 {}は、もっと面倒になるので使いません。きっと。


10月25日()

 [Java] Eclipse

Vine Linux 上の Eclipse でコードアシストの機能を使っているとかなりの確率で ハングアップするので、しばらく利用するのは控えようと思います。

ふと、思い立って、Google で調べてみたら、 Java Experiment Roomで 同じ現象を見つけました。完全に同じ現象です。 確かに LANG=C だと比較的安定して動くみたいです。 ただ、私が使っているのは、Gtk版じゃなくてMotif版なんですよね。


10月24日(金)

 [Perl] 久し振りのプログラミング

急にPerlでプログラミングすることに。 プログラミングそのものは、非常に簡単な内容。 多分、うまく書けば、ワンライナーで済むんじゃないかと思わないでも無い内容です。

でも、3年以上、Perlを触ったことがありません。 もう、すっかり忘れてしまっている私。 われながら、泥臭い出来となってしまいました。

適当に書けば、適当に解釈して、それなりに動いてくれるという印象があるPerl。 そんな中で、文の末尾には、";" をつけなくてはいけないという厳格さが、どうも馴染めないのでした。

文字列と数を、コンテキストによって適当に解釈する癖に、なんで、そんなちっちゃなことに拘るんだよ。 言語の器が小さいぞ。もっと大らかに行かなきゃ。

そんな感想を抱いた1時間でありました。


10月23日(木)

 [TV] TRICK3

えーと、雷はなぜタイミング良く鳴ったのでしょうか? 毎回、どこかすっきりしないささいな謎が残されて、 それが最終話ですべて明らかになるような凝った趣向が展開される...ことはないかな。

 [Java] Eclipse

コードアシストの機能がかなり便利なのですが、Vine Linux 上だと、この機能がかなり不安定ですぐに落ちてしまいます。 さすがに開発作業で使うとストレスが溜りそうなので、 Vim or Emacs に切り替えてしまおうかと画策中です。

Vim + Ant + screen

あたりが一番心地良さそうな気がしてきました。


10月22日(水)

 [DB2] JDBC接続

ずーっと接続できないで悩んでいましたが、結局、 Web de DB2 第5回 を見て解決。 要は、

source ~db2inst1/sqllib/db2profile

をしていなかったのが原因。

ところで、マニュアルを読もうとせず、Googleに頼ろうとする私の態度は、やはり間違ってますか?

 [Java] Java House ML

最近、過去ログの参照ができなかったんですが、また参照できるようになってます。


10月21日(火)

 [DB2] 8.1.3のインストール

とある事情から、必要にせまられて、Vine Linux 2.5 にインストール。 Downloadサイト から、DB2 Personal Developer's Edition for Linux(x86, 32-bit) をダウンロード。

インストールは、

tar xvf DB2_V81_PE_LNX_32_NLV.tar
cd pe
export LANG=ja_JP.ujis
./db2setup

で開始。

ディスク容量が足りないと言われるが、どこにインストールしようとしているのかさっぱりわからず。 頼むからインストール先を表示してくれ。

その後、インストールタイプでカスタムを選択して、初めて、/opt にインストールされることが判明。 しかもインストール先を変更できない。

/home配下に余裕があるので、姑息にも

mkdir /home/opt
cd /
ln -s /home/opt opt

として、インストーラを騙す。

なんかインストールに失敗したものがあったのだが、サンプルデータベースを作れたし、SQL文も発行できたのでよしとする。

インストールされるパッケージは、RPM になっているので、

rpm -qa | grep IBM

などとすればどんなパッケージがインストールされたかわかる。

次は、JDBC接続。


10月19日()

 [Book] 本日買った本

 [Eclipse] 2.1.1

バージョンアップしていたつもりなんだけどしてませんでした。 バージョンアップしました。

 [Eclipse] 不安定

Vine Linuxの環境では動作が不安定です。 入力補完の画面でEnterキーを押すとハングアップします。

 [Java] Antを試す

Eclipseが不安定なので、Vim or Emacs + Ant の環境を試すべく 初めて build.xml を適当に書いてみました。 Eclipseでbuild.xmlを開いてわかったことですが、Eclipse には、build.xml 用のモードがあります。 これがかなり便利です。

便利さという点では、Eclipseが上なんだけど、 安定感とキーボードの操作感という点ではEmacsやVimの方が上です。 悩ましいところです。


10月18日()

 [Book] 本日買った本

 [Book] わずか270円のために

えっ。AmazonでAmazon.co.jpオリジナルブックカバープレゼント中ですか!? ちょっと欲しいかも。書籍3900円以上買えばいいのか。 えーと。なんか欲しい本無かったかなあ。(←この辺からだんだん冷静さを失い始める。)

とりあえず、YF Computer Bookshelfをチェックしよう。 あっ。訳はあまり期待できないかも知れないけど、『テスト駆動開発入門』を読んでみたい。3000円。 駄目だ。これじゃ足りない。 うーむ。他に読みたい本が無いよ。

そう言えば、Java:Wath's NewでJava良本ランキングがあったな。 1位と4位の本は持ってるよ。 『Effective Java プログラミング言語ガイド』は読んでみたい。2600円。これも駄目だ。足りない。

なんかいい本無いのか!?

そう言えばたださんが Schemeの本を買ってなかったっけ。 (←この辺で、かなりおかしくなってます。) たださんも「7つの習慣」に参加されたのか。 あのキットは重いしかさばるし、一度も使われることなく処分されました。 ダイエットバトルか。なんか不健康になりそうなペースで痩せてませんか? 私もダイエットしないとな。 最近会社で話題にしたんだけど、やっぱりJava House の ML って閉じられてたのか。 あっ。traypseってxyzzyの亀井さんのソフトだ。 私の体験した本作りはたださんの体験に近いはず。 そんなことより、全然見つからないよ。いつの日記なんだよう。 そうか。Shemeで検索すればいいんだ。アホかオレは。さっさと気づけよ。 やっと見つけた

えっ。1点在庫あり。お早めに。期間限定とかそういうのに弱いんだよ。私は。 「ショッピングカートに入れる」ボタンを押さなきゃ。 3000円じゃ足りないよ。 そうだ。上の2冊追加すりゃ楽勝で3900円突破だよ。 これでブックカバーゲットだぜ。(←かなりテンション挙がってます。)

(しばらくして) あれっ?ちょっと待てよ。ブックカバー1つに、9000円近く金出すのっておかしくないか。 そんなにいいブックカバーだっけ? (もう一度ブックカバーを確認。) えっ。ひょっとしてこれ270円出せば買えるんですか? プレゼントはキャンペーン期間中だけで、キャンペーン期間を過ぎても270円出せばいつでも手に入るってこと? (←この辺で一気に冷静さを取り戻す私。)

1回注文をキャンセルしてもう一度冷静になって考えてみよう。

商品間もなく発送されます。

えっ?マジですか?

まあ、いいや。 テスト駆動開発(っぽいことはそれなりにやってるけど)はやってみたいし、 Javaは仕事で使うんだし、Schemaはきっといつかそのうち勉強する日が来るに違いない。

ブックカバーは手に入れたはずなのにどこかしら損したような気がするのは気のせいですか?

 [Book]本日注文して間もなく発送される本

物の見事に、ブックカバーを使えない本ばかりです。


10月17日(金)

 [Eclipse] 共存のコツ

まだちょっとスムーズでない部分もありますが、昨日の設定で大幅にストレスが軽減されました。 後もう一歩というところでしょうか。

 他人のPC

他人のPCを使うと、XKeymacs や skkime が無いので、キーボードの使い勝手が違い、戸惑ってしまいます。 思わず、かなモードと英数モードを切り替えようとして 'l' を押したり、 ESCキーのつもりで、[半角/全角]キーを押したり、 カット&ペーストするつもりで、Ctrl+w、Ctrl+y とやったり、 Ctrlキーのつもりで、[Caps Lock]のキーを押したり、 もう駄目駄目な状態になってしまいます。


10月16日(木)

 [Eclipse] 共存のコツ

という設定で試用中。 中途半端にそれぞれのキー設定を活かすよりも、 すべてをXKeymacsに面倒見させる方が一貫した操作性になるのではないかという期待。

 [Eclipse] viPlugin

しばらく見ないうちに機能がそろってきてます。 ですが、viPlugin 一本で押し通すのは厳しいものがあります。 マークの機能が欲しいです。


10月15日(水)

 [Eclipse] 共存のコツ

何となくskkimeとXkeymacsとEclipseを共存させるコツを掴んだような気になっていたのですが、 掴みそこねていたようです。 かなモードにしたり英数モードに戻したりしているうちに、Ctrl + w でカットできなくなります。

どれを有効にしてどれを無効にしておくとストレス無く作業できるのか模索中。


10月14日(火)

 [PostgreSQL] ユーザーの登録と削除

ユーザーの登録は、createuser を使う。

createuser -P ユーザー名

ユーザーの削除は、dropuser を使う。

dropuser ユーザー名

ちなみに両方ともシェルスクリプトなので、中身を見れば何をしているか、それなりにわかる。

createuserを実行すると、template1 データベース の pg_shadow テーブルにデータが作られる。

psql -c "select * from pg_shadow" template1

10月13日(月)

 [Cygwin] gcc-2

この前、アナウンスがあったけど、削除したそうです。 引き継ぐ人はいなかったみたいですね。

 [Cygwin] diff

そう言えばいつの間にか、diff は diffutilに統合されてます。

 [Cygwin] Cygwin 1.5.5

1.3.22 からアップグレードしました。 いつものごとく必要そうなものだけインストールしてます。 いつから Prolog とか guile とか clisp(Common Lisp)などが含まれるようになったのでしょう。

ちなみに、Rubyのパッケージもありますが、私は、Cygwinの動作確認も兼ねてソースからコンパイルしてます。

Cygwinの山ほどあるパッケージのうち、必要そうなものだけインストールすると、 たまにライブラリ関係を見落としてしまいます。 もちろん、そのライブラリに依存しているコマンドは動きません。 pcre や poptをインストールしてなくて、grepが動かないという現象に出くわしたこともあります。

Rubyのソースをコンパイルすると、configure の中で、grep や sed などのコマンドが実行されます。 ですから、一応、grep や sedなどのいくつかのコマンドが動くかどうかの確認になります。

Ruby 1.8.0 (2003-10-12) [i386-cygwin]

ができたので、とりあえず良さそうです。

 [PostgreSQL] テーブルのスキーマの情報を得る方法

pg_dumpを使う。

pg_dump --schema-only -t テーブル名 データベース名

10月12日()

 [Java] Ant 1.5.4 のインストール

事前にJAVA_HOMEを設定しておく。

tar jxvf apache-ant-1.5.4-src.tar.bz2
cd apache-ant-1.5.4
export ANT_HOME=/usr/local/ant-1.5.4
./build.sh install

.bashrc に以下を追加。

export ANT_HOME=/usr/local/ant-1.5.4
export PATH=$ANT_HOME:$PATH

 [Soft] PostgreSQL 7.3.4 のインストール

./configure --with-java
make
make install

環境の設定と動作確認

mkdir /usr/local/pgsql/data
chown postgres:postgres /usr/localpgsql/data
su - postgres
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
/usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data

/usr/local/pgsql/bin/createdb test
/usr/local/pgsql/bin/psql test

停止するときは、postmaster のプロセスを kill -INT で停止。

.bashrc に以下を追加。

export POSTGRES_HOME=/usr/local/pgsql
export PGLIB=$POSTGRES_HOME/lib
export PGDATA=$POSTGRES_HOME/data
export PATH=$POSTGRES_HOMEl/bin:$PATH

 [PostgreSQL] データベースの作成とその確認

PostgreSQL Server の起動

su - postgres
/usr/local/pgsql/bin/pg_ctl start -D /usr/local/pgsql/data -p /usr/local/pgsql/bin/postmaster

別のコンソールで

su - postgres
/usr/local/pgsql/bin/createdb hellodb
/usr/local/pgsql/bin/psql hellodb

CREATE TABLE HELLO_WORLD_TABLE (
  NO INT NOT NULL PRIMARY KEY,
  MESSAGE VARCHAR(50)
);

INSERT INTO HELLO_WORLD_TABLE (NO, MESSAGE) VALUES (1, 'Hello PostgreSQL World');

SELECT * from HELLO_WORLD_TABLE;

 [Java][PostgreSQL] Javaからのアクセス

/usr/local/pgsql/data/postgresql.conf を編集。

tcpip_socket = true
port = 5432

PostgreSQL Server を再起動

/usr/local/pgsql/bin/pg_ctl restart -D /usr/local/pgsql/data -p /usr/local/pgsql/bin/postmaster 

簡易Javaプログラムを作ってテスト。

import java.sql.*;
public class PostgreSQLTest {

    public static void main(String[] args) {
        try {
            Class.forName("org.postgresql.Driver");
            Connection con = DriverManager.getConnection("jdbc:postgresql:hellodb",
                                                         "postgres",
                                                         "");
            Statement st = con.createStatement();
            String sql = "SELECT * from HELLO_WORLD_TABLE";
            ResultSet rs = st.executeQuery(sql);
            while (rs.next()) {
                int no = rs.getInt("NO");
                System.out.println(no);
                String msg = rs.getString("MESSAGE");
                System.out.println(msg);
            }
            st.close();
            con.close();
        } catch (Exception ex) {
            System.err.println(ex);
            ex.printStackTrace();
        }
    }
}

コンパイルして実行

javac PostgreSQLTest.java
export CLASSPATH=.:/usr/local/pgsql/share/java/postgresql.jar
java PostgreSQLTest

 [Java][PostgreSQL]参考情報


[トップページへ] [8月] [11月] [過去の雑感へ]