2009-10-22

ポリコム接続実験

実は、研究室にはポリコムが一台あります。本日、徳島大とポリコム(VSX-5000) の接続実験をしました。カメラは標準のカメラの画質が悪いので、パナソニックのネットワークカメラを接続。これは、三年前に遠隔講義で利用した経験があり ます。今後の利用を想定して、パソコンラックに各種機器をまとめて配置。パソコンの画面を直接送信できるように、ダウンスキャンコンバーターも用意。
で、早速接続。なんかあっさり繋がって、いろいろこれも問題なく見えた模様。あとは、向こうの様子とかをどうするかだな~。まあ、こうあっさりできたのも、以前の経験があるからだろう。こういう実践というのは経験が大切だとあらためておもう。
また、いろいろ研究アイデアもでてきた。やはりこの手の遠隔講義は、実際やってみるとソフトウェアで支援できるところがいろいろあることがわかる。 特にうちが数年前からやってるカメラ制御関係は、奥が深い。ただ、実践する場がないといろいろ話をすすめるのが難しい。机上の空論的な研究はあんまりやりたいくないしね。

2009-10-21

GWTでダイアログボックスを表示する

Windowクラス(com.google.gwt.user.client.Window)のメソッドを用います。
  • alert() ・・・  メッセージの表示
  • confirm()  ・・・ 操作の確認(OKボタンのときはtrueを、それ以外はfalseを返す)
  • prompt()  ・・・ 文字列の入力(OKボタンのときは文字列を、それ以外は”null”を返す)

サンプルプログラム
boolean ok = Window.confirm("Windowクラスのメッセージ機能を紹介します");
 if (ok) {
 Window.alert("これが「alert」です。先ほどのものが「confirm」です");
 String string = Window.prompt("「prompt」の紹介です", "ここへ文字を入力します");
 Window.alert("入力した文字は「" + string + "」です");
}
参考URL(APIのページ)

http://google-web-toolkit.googlecode.com/svn/javadoc/1.5/com/google/gwt/user/client/Window.html

2009-10-17

Rを本格導入

マイニング系の研究をする上で、Rを本格的に導入する事に決定。今更感が漂ってる気もするが、こういうのは自前で作るよりは、システムに組み込んだ方がはやいし。システムへの組み込み方の目処がついたので、あとは、その適用の仕方という本質のところを議論できる。

また、これらを研究室で使えるように、うまい具合にウェブサービス化することも重要だ。それが結果として研究の持続性を高める。ここのところの実装方法にちょっと悩んでいるところだが、REST系に落ち着くかなー。

2009-10-16

Googleが創造したクラウド・コンピューティング ~Google App Engineによる開発のススメ~

京都リサーチパークの「KRPまちびらき20年行事展示会専門セミナー」にて開催された技術セミナー“Googleが創造したクラウド・コンピューティング ~Google App Engineによる開発のススメ~”というのに参加してきました。個人的には、今、ウェブ系システムの実装をGWTに移行中なわけで、GWTはGAE(Google App Engine)での利用を想定しているらしいので、これは参加するしかない!っというわけで。。。。


クラウドコンピューティングの利点は?
雰囲気的にはつかんでいたのですが、今日の話でわかってきた気がします。というかまあ、いわゆる“高いスケーラビリティ”を実現することができるんですね(いまさらな話ですが)。クラウドサーバーってのは。単なるレンタルサーバーとはちょっと違う。これがよくわかる事例として、
“ニューヨークタイムズが画像のPDF変換をするのに、Amazon EC2上に100インスタンスを生成して、24時間で1100万枚の画像から1.5TB分のPDFを作ることに成功した”(Self-service, Prorated Super Computing Fun!
っていう話。つまり、24時間だけ100台のマシンを借りたってことなわけで、こういうことはレンタルサーバーの考え方ではちょっとできないだろうね。これは極端だけど、利用負荷のピークがある一時期だけに限定されるようなケース、、、例えば大学でいえば、履修登録システムなどは、履修登録の期間だけにピークがおとづれる。この一時期だけのために、サーバにお金をかけることが妥当であるのか、、、クラウドなら柔軟に対応できるってこと。

それとスピード。レンタルサーバを借りるのは、おそらく、手続きなので数日はかかると思われる。それが、AmazonとかGoogleであれば数分で利用できる。これもクラウドならではの話だろう。

GAEについて
細かな技術的な話は聞けなかったのは残念だったけど、個人的に見聞している情報を再確認できた。あと、GAEがいいのは、JDOとかJavaMailとかできるだけJava標準とかオープンソースのライブラリの利用を前提にしている点。こういうスタンスは大切だと思う。導入への敷居も低いし。


クラウドで教育システム研究は変わるか?

ウェブベースのシステムに限定した話になるけど、運用面については、もう全部、GoogleとかAmazonにサーバを任せたらいいんじゃない?って思う。セキュリティの面でも、欧米ではすでに銀行が個人情報を含んだデータであっても外部サーバに置くような時代らしいし。あるいは、GoogleとかAmazonに匹敵する教育システム用のクラウドサーバーを国内向けにつくるとか、、、まあ、UPKIイニシアティブがやってるプロジェクトみたいに、分散しているユーザ情報などを連携させるなどして、統合的に管理するような研究や運用が最近は流行っているようだけど。クラウドの場合は、その下のプラットフォームやハードウェアのレベルでの共有になるのかな。学術(大学)用のクラウドサーバができたら、もう各大学にサーバを置く必要がなくなるんだよね。どこかにクラウドセンターがあって、そこに各大学がサーバー類を配置していく、、、そうすれば、結果としてセンター系のスタッフの負担も減るし、コストもダウンする。こういうの誰か考えてないのかなぁ。偉い人にやってほしいんだけど。
 ちなみにうちの大学でもクラウド的なサービスを試験的に始めるらしい。ホントにGoogleとかAmazonとかみたいなクラウドサーバなのかはわからないけど、とりあえず僕はそこにサーバ類を移行する予定。まずは、研究室からサーバの排除だな。学科のウェブサーバもそこに移行しようかと思ったりしてる。

まあ、そんな感じで、クラウドコンピューティングってのは、思った以上に世の中のサーバ運用を変える可能性がある。ちょっと今までクラウドの関心がなかったけど、しっかりおさえておこうかと思う。

2009-10-10

Moodleアップデート断念

かなり古いMoodleサーバーを動かし続けていたのだが、いっきに最新版にすることにした。実はバージョンアップがうまくい かなくてそれでためらっていたのだが、もう新規一転、ゼロからサーバーを立て直して、コンテンツはコピペ作戦で、、、という、もう面倒だけどそれしか方法 がない。
原因はわかっていて、データベースの文字コードがUTF-8になった頃に、どうもバージョンアップのコツを理解しておらず、なんか無理矢理データベースをUTF-8にした?かなにかの影響だろう。とにかくそのへんの移行時期に、変なことをしてごまかしていたのが、今、ツケになって返ってき たというわけだ。
個人的には、研究室でこの手のサーバーを自前で用意するのは極力やめようかと思っている。自前でやると確かにノウハウは溜まる。それが意外なところで役に立つこともあるだろう。でも、今のぼくの立場ではそれはレア。というか、メンテナンスに時間をかけるほど余裕がないし。
予定としては、講義内容のアップはMoodleに残しつつ、他の情報はgoogle siteに移行しようかと思っている。実は今も一部のコンテンツを移行している。容量が心もとないので、お金もはらって増やすつもり。研究室内部の情報もGoogle Groupに移行することを検討。もう、うちの研究室は、Googleの兄貴!ついていきますって、まさにGoogleと心中ってかんじ。

2009-10-09

Netbeans6.7でのDerby操作につまづいた



#################################################
改訂記事を
Netbeans6.9.1でのDerbyの作成について
に書いてますので、そちらを御覧ください。
#################################################

NetbeansはDBアクセス環境を持っているから便利なんだけど、今日は初歩的なところで躓いたので悔しいから書いとく。

【症状】
Derby上に新規でDBを作成した場合、こことか見ると、"「表」、「ビュー」、「プロシージャ」の 3 つのサブフォルダがあります" とか書いてるんだけど、なんかいろんなスキーマが書いてるんだよね。これは、6.7から変わったのかな?
で、どのスキーマを使うのか、、、ということを考える必要がある。もともと埋め込まれているサンプルのデータベースをみると、データベース名と共通したスキーマが存在している。でも、Netbens上でデータベースを作成した場合それがない。だから、Hibernateのエンティティを自動生成しようとしても、うんともすんともしないという状況になったわけだ。

【解決策】
どうやら、データベース作成時のパスワードがスキーマに関係しているらしい。Netbeans上でDerbyのデータベースを作成する場合、パスワードを設定するとそれがデフォルトスキーマになってしまうようだ。たぶんNetbeansのバグだろう。だから、データベース作成時に
  • ユーザ名、パスワードをともに設定しない
  • ユーザ名だけいれて、パスワードは空白にする
という設定をすれば、APPというのがデフォルトスキーマになる。つまり、APPの中にある「表」のサブフォルダにテーブルを作成していけばいいわけだ。

なんか、この問題のおかげで、えらい時間がかかってしまった。


2009-10-07

第20回教育システム若手の会 setoseto2009 開催のお知らせ

今日はイベント情報です。ボクはたぶん、初日に顔だけ出します。

  1990年から始まった教育システム若手の会(当初はITS若手の会)も,
 今年で第20回目をむかえました.
 そこで今回は,若手の会の発足当初を知る平嶋先生の講演と,
 将来の研究へのつながりを考えたディスカッションを企画しました

 今回は,参加者のみなさん自身の研究活動・教育実践について
 じっくり考えながら,過去からの流れの中にどのように位置付けられる
 かなどをみんなで話し合うことを糸口にして,これからの
 教育システム研究で注目されるであろう話題やテーマ,
 将来どんな転換や発展が起こり得るか,あるいは今後の研究や
 実践のヒントなどについて考えていきます.
----------------------------------------------------------------
テーマ:若手の交流と議論が生む教育システム研究の未来

日時:11月13日(金)~15日(日)

場所:広島大学(研究室見学)
    グリーンピアせとうち(研究発表・議論・宿泊)
    〒737-2502 広島県呉市安浦町三津口326-48
    (Webページ: http://www.gp-setouchi.com/

対象者:教育システム関連の若手研究者(自称も含む)および学生

Webページ:http://www.isl.hiroshima-u.ac.jp/setoseto/

----------------------------------------------------------------
スケジュール概要(予定:詳細は後日変更される可能性があります)

11/13(金)
15:00-16:30 研究室見学
 夕食
19:00-      オープニングセッション
           開会のあいさつ
           第20回記念講演(広島大学大学院 平嶋 宗 教授)
           参加者自己紹介・研究紹介
11/14(土)
 朝食
 9:00-10:50 研究発表(ライトニングトーク)
11:00-12:00 議論セッション1「自分の研究の意義の整理」
 昼食
13:00-16:30 議論セッション2「次世代のテーマの創発」
 休憩
17:00-18:00 議論セッション3「結果の発表と全体議論」
 夕食
20:00-      ナイトセッション
           エンドレスセッション
11/15(日)
 朝食
 9:30-10:00 クロージングセッション
 解散
----------------------------------------------------------------

幹事:
 北里大学 高橋 勇
 尚美学園大学 山本 樹
 電気通信大学 太田 光一
 広島大学 倉山 めぐみ
 京都外国語大学 村上 正行

問い合わせ用メール
 setoseto@isl.hiroshima-u.ac.jp


2009-10-06

OpenCV2.0をWindowsで利用する

OpenCV2.0を4年生に試行してもらおうとしたら、どうやらライブラリがないとかいう。。。何のことかと思ったら、関連するDLLファイルがデフォルトではWindows用が用意されていないらしい。マジですか?前のバージョンもそうだったかなぁ。そういえば、何かDLLをとってきたような気もする(いや、これは違う話だったかな)。とにかくこういうのはノウハウの記録が大切。
で、解決策ですが、cmakeというツールを用いれば、各種DLLが自動的に作られるらしい。その手順を大雑把に書くと
  • cmakeをインストール
  • OpenCVのビルドディレクトリを指定してConfigureを押す
  • 赤いエラーがでたらもう1回Configureを押す 
  • Generatorボタンが有効になったらGeneratorボタンを押す
 以上の手順で、DLLを作成するためのVSプロジェクトがビルドディレクトリに作成されます。つづいて、
  • ビルドディレクトリに移動し、VSプロジェクトファイルを開く
  • debugモードで実行ボタンを押す
  • 10~20分くらいひたすらコンパイルが行われ(気長に待ちましょう)、無事デバッグ用DLLが作成
  • releaseモードで実行ボタンを押す
  • 10~20分くらいひたすらコンパイルが行われ(気長に待ちましょう)、無事release用DLLが作成
本記事をアップした直後に気付いてあわてて追記してますが、コンパイルは、debugモードとreleaseモードの両方をやって、それぞれのDLLを作成しておかないとまずいようです

以上の手順で作成されたDLLやLIBファイルをOpenCVのディレクトリに適時移動させてください。DLLやLIBはビルドディレクトリ内のbinとlibディレクトリにあります。

実はコンパイルの際に、omp.hがFile Not Foundであるというエラーが出る場合があります。 これは、OpenMPに関わるファイルらしく、"Windows SDK for Windows Server 2008 and .NET Framework 3.5"に入っているらしいです。

このエラーに関する解決策は

  • 該当のSDKをインストールして解決
  • Generatorボタンを押す前に、OpenMPに相当する記述のチェックを外す
 の、どちらかです。ボクは思わず後者を選んじゃいましたが、よかったのだろうか。。。前者がたぶん正攻法だと思います。

参考サイト


2009-10-05

致命的: java.lang.OutOfMemoryError: PermGen space が出た場合の対処

glassfishでHibernateを使ってると、java.lang.OutOfMemoryError: PermGen spaceというエラーが出てしまったのだが、glassfishの設定ファイルを以下のようにすればいいらしい。

\domains\domain1\config\domain.xmlファイルにおいて
-XX:MaxPermSize=256m
と追記する。

ちなみに、Tomcatの場合も同様の処方箋でいいらしいです。ただし、設定ファイルは違いますけどね。