プロジェクトのはじめに計画をたてるのは無謀

プロジェクトのはじめに計画をたてるのは無謀だそうです。IBMの記事だし、覚えておくと引用できる機会もあるかも。

Google Earthバージョンアップ

事務所のPCにGoogle Earthをインストールしたら、バージョンが上がっていた。自宅のは3.0.0762で、最新は 4.0.2742.0って、随分上がってるなぁ。日本語化されているし、デザインも随分違う。

プログラミングJava第4版

本屋でプログラミングJava第4版を見かける。Java1.5対応のようだ。既に持っている第3版はJava1.3対応だそうで、欲しくなり購入。Javaは1.5からだよなぁ。で、読んでみて

  System.err.printf("Hello World%n");

なんてことができることを知る。%nで、システムの改行文字(Unix/Linuxなら\n, Windowsなら\r\n, Macなら昔は\rだったけど今は何?)を出力できるそうだ。これでprintln()と混ぜても、改行コードが変にならないで済む。ほかにもprintfのフォーマットの指定が拡張されているらしい。詳しくはjava.util.Formatterのjavadocをどうぞ。

Javaのお勉強

今日もInput Method Frameworkのお勉強をする。ダウンロードしたサンプルプログラムのappletを動かしたり、Java APIを読んだりしてだいぶ分かった気になる。AttributedCharacterIteratorとかTextHitInfoとか知らないことが多い。JavaのIME制御は思ったよりも高機能なようだ。

Input Method Framework

趣味でJavaのInput Method Framework IME制御まわりを勉強中。「ルートウィンドウ」方式は何もしなくても動く。「ビロウザスポット」方式も簡単にできそうな気がするのだがよくわからない。Javaのドキュメントがよく揃っていることには感心する。この辺の話はX11R5のころにも一度やったんだよなぁ。

Vista体験

Virtual-PC 2007をインストールし、バーチャルマシン上にWindows Vista Enterprise editionをインストール。思ったより順調に作業が進み、無事起動することができた。バーチャルマシン上なので、反応は遅いが画面はなかなかきれいだ。

Unix/Linux/X-windowの感覚で考えれば、OSとウィンドウマネージャは独立しているので、OSを買い換えなければウィンドウマネージャが新しくならないのはおかしいと思うが、そうしないと新しいOSをアピールできないという事情は理解できる。

バーチャルマシン上のVistaで、Movie Flash Converterの動作チェックを行う。意外なことに、OSのチェックを外しただけで動作、VistaはWindows-NT6.0だった。細かい問題がいくつか見つかったので、それらを修正し、近日中にVista対応版をリリースする予定。

問題解決

DirectShowを使っているプログラムがMediaPlayer11をインストールすると動かないという問題があって(って、こいつのことですが)デバッグしようとするとシステム全体が固まったかのように遅くなるので、なかなか解決できなかったが、Virtual PCでテスト環境を作りつつ、いろいろ実験を重ねるうちに、割と簡単にいろいろ試せる方法がみつかり、試しているうちにMediaPlayer11環境下でも動くようになった。ああ嬉しい。近日中に 対応版をリリースできる予定。

で、プログラム中にいろいろ調べることがあって、従来はMSDN Libraryなどを調べていたのだが、GoogleやGoogle code searchで検索した方が早いと気づく今日この頃。

Javaの本を読む

趣味でJavaのプログラム作成中。好きなだけクラス構成等をこねくりまわしているので、それなりに面白い。Swingの知識が不足気味なのでJFCプログラミングを読み直す。Actionを使ってみよう。

Java遊び

遊びでJavaのプログラムを作る。

仕事と同じことをする

このところ、Eclipse上でJavaのコーディングという仕事が続いている。なかなか快適な環境なので家でもやりたくなり、Eclipse3.2とSubclipseをインストール、Javaのコーディングを始める。作っているのは仕事とは関係ないプログラム。

会社やっている仕事と、家でやっている趣味の作業が同じで気分転換にならんと昔からよく思っていたが、仕事でやっていると趣味でもやりたくなっていたのかも…

クラス名completion機能が欲しい

仕事でJavaのコーディングをしていると、変なヘッダなどがついた妙に長いクラス名が多かったりする。EclipseのCtrl+1やAlt+/で楽に入力できる場合も多いが、未インポートのクラス名は入力できない。これの入力補助機能があれば便利だと思うが….自分で作ればいいのかもしれないが….誰か作ってないかな?

インナークラスからアウタークラスのメソッドを明示的に呼び出す

Javaで調子に乗ってインナークラスを使っていたら、インナークラスの親とアウタークラスでメソッド名がバッティング、アウタークラスのメソッドを呼び出すつもりが親のメソッドが呼び出されてしまった。アウタークラスのメソッドを呼び出す方法があるはずだと、ネットで調べるがわからない。プログラミング言語 Javaで調べるとちゃんと書いてあった。OuterClass名.this.method名で呼び出せばいいそうだ。

Movie Flash Converter 1.07-R66リリース

ひさびさにMovie Flash Converterの新版をリリースしました。動画をFlashに変換しホームページに貼るソフトです。売り物(4,200円)ですが無料版(CM付き)もあります。興味がある人はこちらをご覧ください。ちなみにMedia Player 11をインストールしているとwmvの変換がうまくいきません。

Javaのコーディングの日々

今日もJavaのコーディング。Eclipseの機能を覚えてさらに便利になってきた。Ctrl+1やShift+Ctrl+Oは前から使っていたが、宣言部の表示や参照部分の検索をよく使うようになった。ソース内を自由に移動できて、source navigatorでプログラムを書いている感覚だ。

リファクタリングの名前の変更以外の機能も、徐々に試しながら使い始めている。

Javaでプログラムの日々

仕事でJavaのコーディング中。最近、Javaのnull値ってどうよ、と思い始めている。nullがからむとコードが汚くなりがちな気がする。nullはポインタ(オブジェクト)のspecial valueであって、special valueを使って変数に複数の意味を持たせるのは、計算機のメモリーが少なかったころの名残りなのではないか。

でもねぇ、空のリストとか表現するのにnullは便利なのよね。代わりに new LinkedList()とか渡すの嫌だしねぇ。

あと、Javaだと複数の値を返すのが面倒。Cだと引数でポインタ、ポインタのポインタを渡せるので、値をいくつでも返すことができる。Javaだと引数でポインタ(オブジェクト)は渡せるが、ポインタのポインタは渡せないので、複数の値を返すには、オブジェクトや配列を使って値をまとめてやる必要がある。そのため、Cでよくやる 関数がうまくいったかどうかを値で返し、具体的な値は引数のポインタ経由で返すということが、Javaではきれいにかけない。

とかなんとか、Javaでのプログラムスタイルを模索中。