As It Turns Out,

Java, Linux, and more.

2009年6月20日

Mac畑の話

実は、自宅のメインマシンは専らMacなんです。
一昔前のMacBookで、メモリは2GBまで制限がありますが2GB積んでます。
とても気に入っていて、プライベートの用事は大抵これで済ませています。
ネット以外の主な用途は以下のとおり。
  • 撮り溜めた写真の整理
  • 写真からのスライドムービー/DVD作成
  • iPod/iTunes関係
  • 家庭内オフィスドキュメント(OpenOffice使用)
  • Java/Coherence/Pythonの開発/実行環境。Pythonはあまりやってないけど。
一番最後はWindowsでもどこでもやってるので放っておくとして、
それ以外はこのMacでやるのが一番楽でかつストレスが無い気がするんだよね。
WindowsはVista スルーの予定でもあるけど会社で見てる画面は味気ないし、
Linuxが使えるのが理想だけどマルチメディアは苦手だし、
第一マシンスペックがボロボロなので、あれこれやるには非力すぎる。

と良い事づくめのように書いたのですが最近悩み事が。
フリーで配布されているソフトを使ったりするときに、
"Leopard以上"と言われてしまうことが多い気がするのです。
あまりに多いので"Leopard以上じゃないとMacじゃないぜ?"って言われている気になってきました。
Snowが出たら乗り換えようかな。

2009年4月24日

(遅いけど) Oracle Buys Sun

Oracle Buys Sun

遅ればせながら。
Oracle Corp.がSunと合意したとのこと。

なおきさんが書いているとおり、
僕も中の人なのでこれ以上はコメントできませんのであしからず。
# 聞かれないけどねー:p


2009年3月18日

いまさらオブジェクト

いまさらjava.lang.Object#notify()とwait()...でもjavadocの説明じゃ解らんよね。以下はnotify()の例。

このオブジェクトのモニターで待機中のスレッドを 1 つ再開します。

えー?サンプルくれよ、みたいな。

スレッドがオブジェクトのモニターのオーナになる方法は、次の 3 通りがあります。
  • オブジェクトの synchronized インスタンスメソッドを実行する
  • オブジェクトを同期化する synchronized 文の本体を実行する
  • Class 型のオブジェクトの場合は、そのクラスの syncronized static メソッドを実行する
平たく書いて欲しい。まじで。

結論としてはwait()/notify()はsynchronizedブロックの中でロックの対象になっているオブジェクトに使え、だ。
もうちょっとちゃんと書くと、synchronizedブロックを準備しただけではそれを実行するスレッドの順序の保証が出来ないので(先に呼んだもん勝ち)、やりたいならwait()/notify()を使ってちゃんと順序保証しなさい、だ。

多分よーく読むと解るんだろうけど...

後輩M(2人居る!)には少し省略して話をしてしまったので、調べた結果でした。

ちなみに近代Java(Java5以降なので)だとこんな事しなくても順序保証された並列処理ができるようになってる。
java.util.concurrentとかjava.util.concurrent.atomicとか。ちょーきもちいー。

2009年2月28日

jBPM 4.0.0-Alpha2 Released

jBPM4.0.0のAlpha2がリリースされてた。

JIRAによれば、fixされているissueは33個。まぁ個数は問題じゃないけど。

定義情報の名称に変更があったりするようなのでまだまだ開発途上な雰囲気は否めないが、早い時期に更新版をリリースできるのはオープンソースとしては良い傾向にあると思う。スピード感命的な。

jbpm-usersのメーリングリストに、Oracle Workflowからの移行ツールを作ったぜ!という内容の投稿を見つけた。勘弁してくださいよもぅ。

2009年2月19日

Coherence担当者と会うの巻

Coherenceの担当者であるが来日していたので、彼らに会う。
忙しい中時間を割いてくれて、我々のぼやけた?悩みを聞いてくれた。感謝感謝。
もっとも自分はカタコト英語なので迷惑をかけたかもしれないが...

Coherenceはとても素晴らしい製品(アプリケーションの構造が変わると言っても良いくらいだと思う)なので、もっと広く知れ渡って欲しい。
キャンペーンサイトがあるのでリンクしておく。

急増するリクエスト、データ量に対する拡張可能な超高速インメモリ処理 アプリケーション・グリッド/ Oracle Coherence / 日本オラクル

技術情報はこちら
Coherence Knowledge Base

2009年2月15日

jBPMに触れてみる 4 of n

jBPM(3.x)でデプロイしたプロセスは、jbpm-consoleというアプリケーションで実行することができる(実行できるようになるまで苦労したが、それはそれ)。

シンプルなjbpm-consoleの操作画面





基本的な機能としては以下のものがあるようだ。
  • プロセスの新規インスタンス起動、停止
  • プロセスの削除(途中キャンセル)
  • プロセスへの引数入力
  • プロセスへのシグナル送信
  • (ユーザのロールに応じた)タスク一覧の表示
  • プロセスの画像表示(インスタンスの状況に応じて該当部分をハイライトできる。ちょっと良い)





ハイライトされたプロセスの画像。

全体的に動作が軽く、使いづらさはさほど感じない。
問題は、時折JSF動作時のコンパイル関係っぽいエラーが出ることと、
このコンソールでプロセスをさくさく進行・確認出来ても、
業務プロセスの実装という観点ではあまり意味がないことだ。

後者は特に重要で...実装およびデプロイされているプロセスに関わる人が皆このアプリケーションを使ってプロセスを進めるとは思えないし。
jBPMのAPIとしての性格から見ると、組み込みプロセスエンジンとしての役割をある程度果たすためには、何かしら外のアプリケーションとのやりとりでプロセスが進んでいくことが必要になるだろうと思う。
管理コンソールで実行してるだけで満足しちゃいかんのである。

「ファイルを定期的に読み取ってプロセス開始」という単純なものでも、
プロセスの途中でメールを送ったり外部のアプリケーションを実行したりすることもあるわけだ。
# Oracle BPEL PMにはそういうことを実装するためのアクティビティやPartnerLinkがあらかた揃ってるわけだが...

今後jBPMを機能面で見ていくにあたり、この観点で調査をしていこうと思う。

2009年2月13日

Oracle Rich Enterprise Application サイト公開中

ちょっと前から、米国OracleサイトにてOracle REAのサイトが公開されています。

Oracle Rich Enterprise Applications

Oracle ADF/Oracle WebCenterを使った、
リッチなWebアプリケーションを実現するための情報を提供しています。

Oracle REAはJDeveloper 11gでの開発を前提にしています。
このサイトからリッチクライアントおよび
ADF Data Visualization(グラフや地図などデータを入れるだけで使える画面部品群)のデモ、
チュートリアルを見ることができます。

是非一度ご覧ください。

InfoQにもざっとした概要の記事があったので、貼っておきます。
Oracle launches Rich Enterprise Application (REA) site

今後開発Tipsなどをこのブログで紹介できればと思いつつ。