2012年3月30日金曜日

GWT:java.lang.NoClassDefFoundError: javax/validation/Path

GWTでRPCプログラムを実行した時に、
[ERROR] javax.servlet.ServletContext log: Exception while dispatching
incoming RPC call
java.lang.NoClassDefFoundError: javax/validation/Path
というエラーがでることがあります。これは、見ての通り
  • javax.validation.Pathクラスがない
っていうことなんですが、これはどのパッケージに含まれているんだろうと、、、実はこういったGWT-RPCに依存しているクラスについては、
  • gwt-servlet-deps.jar
をサーブレットコンテナのクラスパス(/WEB-INF/lib )にいれておけばOKです。


2012年3月23日金曜日

KVM:Error polling connection 'qemu:///system': internal error Cannot find suitable emulator for x86_64

LinuxでKVMの設定をして起動しようとした時、
Error polling connection 'qemu:///system': internal error Cannot find suitable emulator for x86_64 
というエラーに遭遇したときは、マシンのバイオスの設定で、仮想化がDisableになっているはずです。Enableにしましょう。

2012年3月21日水曜日

2011年度卒業生を送り出して

卒業おめでとうございます。本ラボからは5名の4年生が巣立ちました。今年は諸般の事情で例年より人数が少なめでしたが、おかげで研究指導しやすく、ゼミの運営でいろいろ新しい試みをすることができました。そのうち2名は大学院に進学です。どの進路に関わらずここからが人生のスタートということを忘れないでください。

1名が同窓会賞を受賞
今年は本ラボから1名学科同窓会賞の受賞者がでました。


先日のBLOGでも紹介したように、教育システム情報学会学生研究会で優秀ポスター発表賞を受賞した井手くんが、その功績により本学科同窓会賞に選ばれました。おめでとうございます。

卒業生へ送る言葉
今年も学科長のお話を踏まえて私からの贈る言葉を以下に書いてみます。
学科長のされていた話について、実は私も全く同じ考えをしていました。つまり、
  • 人生の岐路にたって判断に迷った時どうするか?
という選択のロジックの話ですが、私なりに言えば
  • 後悔した時のことを考えてどちらの後悔がマシか?
と考えるようにしています。というのも、人生どのように進んでも「後悔」というものは存在すると思います。隣の芝は青いってやつです。「あー、あの時ああしてれば。。。」という後悔。どちらの進路でも同じことを一度は思うはずです。その時、どちらの後悔がマシか?ということです。私の個人的な話を言えば、M2の時に「博士課程にいくか、就職するか?」というのを迷いましたね。この時、どっちの後悔がマシかな~?って考えてました。つまり、「あ~、あの時就職しておけばよかった」という後悔と「あ~、あの時博士課程に行っておけばよかった」という後悔。私は前者がマシだと思いました。だから、進学しました。皆さんも、どうしても迷ったときはこのロジックで考えてみてください。

ちなみに、後悔を前提とした生き方ってなんかネガティブに思われるかもしれませんが、そんなことないです。そもそも「後悔のない人生」なんてありませんよ。私の人生、後悔しっぱなしです。そして後悔は成長の母です。「あー、あの時ああしてれば、こうしてれば。。。」こういった後悔を原動力して、「よし次は。。。」と前を向いて進んでいくんです。だから人生楽しいんです。後悔したことにドップリ浸かって、ネガティブに後悔の海を航海しないでくださいね。


2012年3月10日土曜日

平成23年度教育システム情報学会学生研究会


教育システム情報学会学生研究会に参加。4年生2名がポスター発表、院生1名が口頭発表です。
院生の発表はTwitterを利用したレスポンスシステムでした。クライアントシステムは全国大会と同様、実際に動かしてプレゼンすることができましたが、肝心のサーバー部分がちょっとうまく行かず。。。今後対策を練る必要ありです。
4年生2名は昨日に引き続きということでしたが、ポスターなので1時間たっぷり話ができました。タブレットのシステムはデモを交えたポスターだったので、その有用性が評価されたのか、優秀ポスター発表賞を受賞しました。発表した井手くんおめでとうございます。Kinectのシステムについては、いろいろツッコミを受けていたようですが、それは研究のポテンシャルを感じとっていたからだと思います。つまらないシステムには質問はこないですから。。。いろいろ質問の中で、今後の研究ネタも見えてきましたし。

今回は賞を受賞することができ、得るものがたくさんありました。この勢いに乗って新年度を迎えたいものです。

2012年3月9日金曜日

平成23年度電子情報通信学会関西支部学生研究会


立命館大学にて、電子情報通信学会関西支部学生研究会に4年生2名が発表しました。4年生が発表するのは3年ぶりかな。。。はじめての学会発表でしたが、卒論発表も経験しているので過度の心配は不要で、発表も無事終わりました。
タブレットの研究は思ったよりもウケが良かった感じ。Kinectの研究はベースシステムということもあり、研究としてのアピールがしにくかったようだ。まあこれからの研究なので気にすることはないでしょう。
明日も別の学会の研究会発表です。連チャンですがいい経験になるでしょう。



2012年3月7日水曜日

GWT: Unable to find ~gwt.xml on your classpath

EclipseでのGWTの開発において、複数のGWTモジュールを1つのプロジェクトに併用している場合に標題にあるように,
GWT: Unable to find ~gwt.xml on your classpath
というエラーが発生。エラーとしては、
  • 実行しようとしているGWTのモジュールファイルがない
ということなのだが、そもそもそのモジュールは呼ぶつもりもなく、Run ConfigurationのGWTの設定タブからも削除している。にもかかわらず、Eclipseがそのモジュールを読みにいこうとしているというバグっぽい現象。
で、解決策ですが、Run ConfigurationのArgumentsの欄をよーく見ていると、そこにモジュールの情報が書かれていて、無効にしているはずのモジュールが残っているという、、、しょうもないバグですがこれで半日潰しましたよ。

2012年3月6日火曜日

GAE:Unable to restore the previous TimeZone

EclipseでGAEプロジェクトを起動しようとしたら、
Initializing App Engine server [ERROR] Unable to start App Engine server java.lang.RuntimeException: Unable to restore the previous TimeZone
というエラーが発生。どうやら実行時のタイムゾーンの設定が必要らしい。手順は以下のとおり。
  1. Run Configurationを開く
  2. Argmentsを開く
  3. VMのオプションとして、-Dappengine.user.timezone=JST  または  -Dappengine.user.timezone.impl=JST のどちらかを追記。(追加はスペースを開けること)


2012年3月5日月曜日

GWT4NB:複数モジュールが未対応になっている件

以前の記事([GWT]GWTの起動プロセスを理解し、複数のGWTモジュールを設定する)でNetbeans with GWT4NBにて1つのプロジェクトにて複数のGWTモジュールを扱う方法を書きましたが、現状のGWT4NBではできなくなっている模様。。。GWTの複数のモジュールに対してコンパイルはできているようだが、最後のところでエラーを吐いてストップしてします。
悲しいかな、マイナーなツールを使う故でしょうか。。。もうこれを機会にNetbeansを使うのを辞めるというのもありかなーと思いつつ、やっぱり諦めきれないんですよね。実際、Netbeansを使うほうが便利なことが多いですしね。しかし困ったもんです。

2012年3月3日土曜日

VMWare FusionでJavaを利用する際の問題

VMware Fusion上のWindows7にNetbeansをインストールしようとしてトラブったのでメモ。
まず、Vmware Fusion上のWindowsにおいて、
Javaのuser.homeプロパティが¥¥vmware-host¥Shared Foldersになる
というバグが発生する。これがどう問題になるかというと、Netbeansはインストール時にユーザホームディレクトリにファイルを一時的に作成しようとする。このディレクトリ(¥¥vmware-host...)にはファイルのアクセス権限がないので、その一時ファイルが作成できずインストール失敗ということになる。解決策として
  • Java起動オプションを設定できるにであれば、別のディレクトリを設定する
  • VMWareFusonの共有設定をやめる
のいずれかがある。この問題はNetbeansのインストール以外でも起きる可能性があるらしいのでとりあえず後者を選択したが、状況においじて臨機応変に変えていけばいいだろう。


CSEでSQL Azureにアクセスする方法

SQL Azureを使う際の厄介な問題として、
  • クライアント環境が用意されていない
というのがあります。ウェブ経由で見れないというのはどうしたものかと思いますが、いちおうMicrosoft® SQL Server® 2008 Management Studio Expressというを使えばいいわけですが、これはちょっと大げさすぎ。で、ベストなソフトを見つけました。
です。実はおちラボでは過去にMySQLとかPostgreSQLのクライアントとしてCSEを使っていたのですが、CSEは安定して使いやすいソフトとして定評でした。CSEにはODBC経由でデータベースに接続するという方法があり、これを利用することでSQL Azureに接続できます。以下、設定方法を簡単に紹介します。

ODBC設定
  1. コントロールパネル→管理ツール→データソース(ODBC)を開く
  2. ユーザDSN→追加→SQL Server Native Client
  3. データソース名はわかりやい名前で
  4. サーバ名はSQLAzureのサーバ名(****.database.windows.net)
  5. ログイン名は@付きの名前で
  6. パスワードは忘れずに
  7. 規定のデータベース(接続するデータベース)を設定。デフォルトはmasterになっているので変更は必要です。
  8. (任意)システムメッセージを日本語に
以上によりODBC設定が完了します。

CSEでの接続
  1. データベース→接続
  2. DBMSをODBC汎用にする
  3. データソースは先ほど設定したのを選択
  4. ユーザ名パスワードを入力
以上で接続できるようになります。

ちなみにこの方法(ODBC)をもちいれば他のデータベースソフトを利用することも可能でしょう。これでラボでも本格的にSQLAzureを利用できそうです。


2012年3月2日金曜日

SQLAzureがいいかも!

ここ最近、クラウドのデータベースを何にしようかずっと試行錯誤してきましたが、コストならびに技術的な面でSQLAzureが妥当であると結論づけました。以下、その簡単な理由です。

圧倒的に安い
  • 100MBまで約437円/月(1Gまで約873円)
  • 受信データ転送無料(データセンターへのアップロード)
  • 送信データ16円/1GB(データセンターからのダウンロード)
という感じではっきりいって安いと思います。

Javaからもアクセス可能
マイクロソフト系言語は当然つかえますが、Javaからもアクセスできます。必要なのはJDBC(sqljdbc.jar)だけ。特別なSDKは必要ありません。

O/Rマッパー(Hibernate)が使える
RDBを使うなら当然、O/Rマッパーを使いたいところですが問題なくつかえました。JDBCのフレームワークの範囲内ですので、基本的にはなんら変わりがないということです。
欠点として他のクラウドデータベースサービスと異なり、おそらくスケーラビリティは若干低いかと思います。ただ、個人的にはそんなことはどうでもよくて、とにかくメンテナンスを気にする事無く、大学だけでなく自宅からもSQLサーバーが使えるってのはほんと嬉しいですよ。
まあ、KVSなデータベースをかっこ良く使いこなしたい気持ちもあるんですが、RDBに慣れ親しんでますしね。。。

P.S
先日、利用しようと思った矢先に、WindowsAzureのサービスが閏年バグで一斉停止しましたのはちょっと先行きが心配ですが、それでも1日後には治ってますしそのへんは安心かな。