ふと思い立って、Eclipse Gtk版を試すべくインストール。 Gtkのダウンロードサイトから
atk-1.2.4.tar.bz2
glib-2.2.3.tar.bz2
gtk+-2.2.4.tar.bz2
pango-1.2.5.tar.bz2
をダウンロード。
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
しておきます。
いよいよ、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版は捨ててしまいました。
なるほど。確かに、ブロックの最後の";"は省略できるみたいですね。
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個省略するぐらいなら、";" を全部つけちゃいます。 「ここは、ブロックの最後だから...」とか考えるのは面倒ですから。 {}は、もっと面倒になるので使いません。きっと。
Vine Linux 上の Eclipse でコードアシストの機能を使っているとかなりの確率で ハングアップするので、しばらく利用するのは控えようと思います。
ふと、思い立って、Google で調べてみたら、 Java Experiment Roomで 同じ現象を見つけました。完全に同じ現象です。 確かに LANG=C だと比較的安定して動くみたいです。 ただ、私が使っているのは、Gtk版じゃなくてMotif版なんですよね。
急にPerlでプログラミングすることに。 プログラミングそのものは、非常に簡単な内容。 多分、うまく書けば、ワンライナーで済むんじゃないかと思わないでも無い内容です。
でも、3年以上、Perlを触ったことがありません。 もう、すっかり忘れてしまっている私。 われながら、泥臭い出来となってしまいました。
適当に書けば、適当に解釈して、それなりに動いてくれるという印象があるPerl。 そんな中で、文の末尾には、";" をつけなくてはいけないという厳格さが、どうも馴染めないのでした。
文字列と数を、コンテキストによって適当に解釈する癖に、なんで、そんなちっちゃなことに拘るんだよ。 言語の器が小さいぞ。もっと大らかに行かなきゃ。
そんな感想を抱いた1時間でありました。
えーと、雷はなぜタイミング良く鳴ったのでしょうか? 毎回、どこかすっきりしないささいな謎が残されて、 それが最終話ですべて明らかになるような凝った趣向が展開される...ことはないかな。
コードアシストの機能がかなり便利なのですが、Vine Linux 上だと、この機能がかなり不安定ですぐに落ちてしまいます。 さすがに開発作業で使うとストレスが溜りそうなので、 Vim or Emacs に切り替えてしまおうかと画策中です。
Vim + Ant + screen
あたりが一番心地良さそうな気がしてきました。
ずーっと接続できないで悩んでいましたが、結局、 Web de DB2 第5回 を見て解決。 要は、
source ~db2inst1/sqllib/db2profile
をしていなかったのが原因。
ところで、マニュアルを読もうとせず、Googleに頼ろうとする私の態度は、やはり間違ってますか?
最近、過去ログの参照ができなかったんですが、また参照できるようになってます。
とある事情から、必要にせまられて、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接続。
『暗黒大陸の悪霊』(マイケル・スレイド)
帯に魅かれて買ってしまいました。
『依存』(西澤保彦)
匠千暁のシリーズなので購入。
バージョンアップしていたつもりなんだけどしてませんでした。 バージョンアップしました。
Vine Linuxの環境では動作が不安定です。 入力補完の画面でEnterキーを押すとハングアップします。
Eclipseが不安定なので、Vim or Emacs + Ant の環境を試すべく 初めて build.xml を適当に書いてみました。 Eclipseでbuild.xmlを開いてわかったことですが、Eclipse には、build.xml 用のモードがあります。 これがかなり便利です。
便利さという点では、Eclipseが上なんだけど、 安定感とキーボードの操作感という点ではEmacsやVimの方が上です。 悩ましいところです。
JAVA PRESS vol.32
えっ。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はきっといつかそのうち勉強する日が来るに違いない。
ブックカバーは手に入れたはずなのにどこかしら損したような気がするのは気のせいですか?
テスト駆動開発入門
Effective Java プログラミング言語ガイド
プログラミング言語SCHEME
物の見事に、ブックカバーを使えない本ばかりです。
まだちょっとスムーズでない部分もありますが、昨日の設定で大幅にストレスが軽減されました。 後もう一歩というところでしょうか。
他人のPCを使うと、XKeymacs や skkime が無いので、キーボードの使い勝手が違い、戸惑ってしまいます。 思わず、かなモードと英数モードを切り替えようとして 'l' を押したり、 ESCキーのつもりで、[半角/全角]キーを押したり、 カット&ペーストするつもりで、Ctrl+w、Ctrl+y とやったり、 Ctrlキーのつもりで、[Caps Lock]のキーを押したり、 もう駄目駄目な状態になってしまいます。
Eclipse の Keys の設定は、標準のまま。ただし、入力補完の機能は、Ctrl+Spaceから Alt + '/' に変更。
skkime は、デフォルトのまま。
XKeymacs は、skkime、Eclipse の両方で有効。
という設定で試用中。 中途半端にそれぞれのキー設定を活かすよりも、 すべてをXKeymacsに面倒見させる方が一貫した操作性になるのではないかという期待。
しばらく見ないうちに機能がそろってきてます。 ですが、viPlugin 一本で押し通すのは厳しいものがあります。 マークの機能が欲しいです。
何となくskkimeとXkeymacsとEclipseを共存させるコツを掴んだような気になっていたのですが、 掴みそこねていたようです。 かなモードにしたり英数モードに戻したりしているうちに、Ctrl + w でカットできなくなります。
どれを有効にしてどれを無効にしておくとストレス無く作業できるのか模索中。
ユーザーの登録は、createuser を使う。
createuser -P ユーザー名
ユーザーの削除は、dropuser を使う。
dropuser ユーザー名
ちなみに両方ともシェルスクリプトなので、中身を見れば何をしているか、それなりにわかる。
createuserを実行すると、template1 データベース の pg_shadow テーブルにデータが作られる。
psql -c "select * from pg_shadow" template1
この前、アナウンスがあったけど、削除したそうです。 引き継ぐ人はいなかったみたいですね。
そう言えばいつの間にか、diff は diffutilに統合されてます。
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]
ができたので、とりあえず良さそうです。
pg_dumpを使う。
pg_dump --schema-only -t テーブル名 データベース名
事前に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
./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 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;
/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