memorandums

日々の作業ログです。

Processing1.5.1をOSX 10.8.2で動かす方法

ここ数日、NyARToolkit (+Processing2.0 beta 8)を利用してオブジェクトをPickingできないかあれこれ試していました。が、なかなかうまくいかず。。。

とりあえずNyARToolkitの説明によるとProcessing1.5.1ではProcessing-Pickingライブラリが動作すると書かれていました。

とりあえず動かすことを優先して1.5.1を試そうとしたところ、JREが32bitでは動作しないとか。。。おいおい。。。とにかくあれこれ調べて1つの解決方法がわかりました。

対処前のJavaのバージョンは以下の通りでした。

java version "1.7.0_06"

Java(TM) SE Runtime Environment (build 1.7.0_06-b24)

Java HotSpot(TM) 64-Bit Server VM (build 23.2-b09, mixed mode)

 

この状態でターミナルでjava -d32とすると以下のエラーが表示されます。Processing1.5.1を実行したときにもこのエラーが表示されます。

Error: This Java instance does not support a 32-bit JVM.

Please install the desired version.

32bitに対応したVMに置き換える必要があります。とりあえず1.6にしてみます。JRE1.6をダウンロードする必要があるかな?と思いましたが、ls /System/Library/Frameworks/JavaVM.framework/Versions をしてみると入っていそうです。切り替えは以下のコマンドでいけるようです。もし1.5.1を常用するのであれば.zprofileなどに入れておくのがいいのかもしれません。

export JAVA_HOME=$(/usr/libexec/java_home -v 1.6)

このコマンドを実行後、java -versionを確認したり、java -d32で32ビットモードで動作することを確認したあと、Processing1.5.1を実行してみると。。。残念ながらエラーが表示されます。

 

そこで、ターミナルより/Applications/Processing.app/Contents/MacOS/JavaApplicationStubを実行します。Processing1.5.1のIDEが起動します。この状態でサンプルなど実行すると、実行できちゃいます。

あまり気持ちのいい方法ではありませんが、やむなくというところです。

 

 

rebuild the processing-picking-library for 2.0 beta 8

3次元表示中のオブジェクトをマウスでクリックできるライブラリがあります。

Link: A simple picking library for Processing

最新版は0.1.6で2.0に対応したと書かれているのですがなぜか以下のエラーが表示され動きません。

java.lang.NoClassDefFoundError: processing/core/PGraphics3D

PGraphics3Dはprocessing.openglに移動したため探せないようです。で、とりあえずリビルドしてjarを再作成しました。よろしければ使ってください。2.0 beta 8でmacおよびwin8で動作確認しています。

Link: Picking-0.1.6a.zip

 

■2013/3/18追記

こちらを参照してください。

 

インタラクション2013

聴講参加しました。

写真は掲載できないので(とりあえず昼ご飯のときにダイバーシティーで撮影したガンダムです。。。何しにいっているんだか>自分)

気になった研究をメモメモ。

今年はソフトウェア開発支援的な作品は少なく。。。唯一?あったのは以下のご研究でしょうか。入力途中のコードからプログラマの意図を推測して実行結果を見せるもの。リアルタイムかつ途中の状態から意図を推定して支援する手法は様々なフェーズで応用できると思います。ぜひ参考にしたい。

次に参考になったのは以下。生体情報をとる方法としてSCRというものがあることを教えてもらいました。これは早速作ってみたいと。

  • SCRを利用した興奮促進動画鑑賞システム 

あとは以下の3つですね。動画像処理で動画閲覧者の表情を撮影しその情報から興味を推定して動画ダイジェストを作っちゃおうというご研究。面白い。そしてマンガ作成支援。学生にマンガ好きがいるので関心あるかなと。プロレスのご研究はこれまたシンプルですが面白い。スポーツや映画など観覧スタイルをより豊かにする研究。アイデア次第で発展性がありますね。

  • 視聴者表情から動画ダイジェストを作成するシステム 
  • 読者の視線移動を考慮した初心者向けマンガ作成支援システムの設計
  • プロレス興行における観客参加型体感アプリケーションの提案 

で、ガンダムでした(苦笑)

f:id:ke_takahashi:20130301120531j:plain

WordPressをApache+ActiveDirectoryで認証つきにした

学科の求人情報を公開するページを慣れたWordPressで作っていました。昨年秋から就職委員を仰せつかったためです。

もう少し詳しく書きますと、大学としての求人情報サイトは当然あるのですが、封筒入りで到着した紙の求人票は掲示することになります。掲示とあわせて事務の方でスキャンしたPDFをゼミ指導教員に送ってくれるのですが、これまではこれをメールで担当学生に配布していました。これを学科分をまとめて就職委員が公開しようという趣旨です。

求人情報サイトといっても受信したメールの本文と添付されたPDFファイルをドラッグ&ドロップしてコンテンツを作るだけなので時間はあまりかかりませんでした。

Googleサーチなどにひっかかってもあまりいいものではないでしょうから、一応、Apacheで認証を設定しました。ただ、唯一のIDってのもあまりよろしくないような気がしました。幸いなことに電算センターの更新でID情報がActiveDirectoryで連携していますので、それを利用することにしました。サイトを昨日から作り始めて、本日はその設定でつぶれました。。。とりあえずあれこれ調べて動くようになりました。

詳しい情報は書けませんが参考にしたサイトなど備忘録までメモしておきます。

 

Apacheの設定

こちらのサイトを参考にさせてもらいました。英語ですが。。。この設定で動きました。日本語でも関連するエントリーがいろいろあるのですが動かないものもいくつかありました。

最初、WordPressのディレクトリ内に.htaccessを設定したのですが、定義が散在しないようにこのページにある通りにLocationで指定しました。ちなみにWebサーバーはRHELです。ADサーバーは確かWindows Server 2008だったと思います。

経験がなかったので試行錯誤で時間がかかりましたが、このページの内容を記述するには認証したいユーザの識別名を知る必要があります。今回の場合はWebサーバーとADサーバーが別サーバーだったためファイアーウォールの設定なども必要になりました。その上でWebサーバーからADサーバーにアクセスして検索できるかldapsearchで確認しました。識別名の指定もあわせて確認ですね。

次に、LDAPバインド用のユーザーが必要であることがわかりまして、自分のIDを流用しようかとも思いましたがパスワードを明記しなければならないので、見よう見まねでADサーバーの管理ツールでユーザを作成しました。作成したユーザの識別名を調べるにはコマンドプロンプトでdsqueryというldapsearchのようなコマンドが利用できました。使い方はこちらを参考にしました。

最後に困ったのが。。。学生と教員が別々のouで定義されているため、AuthLDAPURL にどうやって複数のouを定義すればいいのかわからず。。。これで1時間くらい悩みました。このようなエントリーもあったのですができず。。。結局、ここは解決できずouを指定しない方法で逃げました。恐らく、絞り込まない分、検索が遅いのでしょうね。。。とりあえずアクセスする人数も頻度もそれほど高くないのでいいのかな。。。と。

とりあえず今、作業が終わって頭にあることを書きました。これを読んでも直接の解決にはならないでしょうね。とりあえず自分用のメモでした。

よし、帰ろう!明日から出張。

 

 

 

スマホカメラの視野角の簡易計測法?

簡易ARアプリの試作のため、スマホのカメラの性能を測定しようと思いました。

いろいろ情報があるようですが、とりあえず自分でも計測してみようということで思いついた方法が下記です。

事務デスクは高さが決まっています。ゼミ室のデスクは70cmでした。

デスクトップにカメラアプリを起動したスマホ(iPhone4S)を置きます。

で、撮影できる限界点にマークします。視野角は縦・横が必要とのことなのでスマホをちょっと危険ですが横置きして測定します。

いずれも目見当ですが70cmの距離で撮影できる範囲は55cm x 73cmでした。したがって対角線は

d=\sqrt{55^2+73^2}

ですので、Google電卓を使いますとこちらのようになります。

あとは、こちらのサイトなどを参考にさせてもらいarctanで視野角を求めます。

\th=2 arctan{(\frac{\sqrt{55^2+73^2}}{2*70})(\frac{180}\pi)

Google電卓に上式を計算してもらうとこちらのようになりました。おおよそ66.3°でした。

f:id:ke_takahashi:20130226120722j:plain

ちなみに検証として、求めた人の情報によると35mmカメラ換算でiPhone4Sの焦点距離は33mmとのことです。35mmカメラ換算では対角線は43.2mmになるとのことですので、上記の式にいれるとGoogle電卓ではこちらのようになり、66.4°であることがわかりました。目見当にしてはまあまあな精度と思います。

 

 

てかりを防ぐ洗顔法?

今日はちょっと変わった個人的な話し。

いつからかは記憶にないのですが30歳を越えたあたりから洗顔後の皮脂が気になりだしました。入浴後、しばらくするとオイリーな顔に。特に鼻まわりですね。。。べたつくのが嫌で起床後はもちろん日中も顔が少しでもべたついたら洗顔クリームで洗顔していました。

あるとき、ネットかなにかの記事で「皮脂をとりさってしまうから脂分を補うために皮脂がでる」といったことが書かれていました。

「そうか、取るからでるなら取らなければいいのか!」と思ったわけです。いかにも素人的で申し訳ありませんが。

で、思い切って洗顔クリームの使用をやめてみました。起床時は水で洗顔。日中は気分転換のときに水で洗顔。入浴中はお湯で洗います。水やお湯で洗顔したときに多少ぬるぬる感が残ります。今まではこれは「悪」だと思っていましたが、発想をかえて体を保護するために必要な要素と思うようにしました。

洗顔料をやめた直後が衝撃的でした。

ぬるぬるが嫌で落としたかったのですが。。。入浴後にタオルで軽くふいてみるとさらさら。。。その後、皮脂が放出?されることも、時間が経過してテカテカになることもありませんでした。

40過ぎのおじさんの個人的な体験ですので、ネットで公言するようなことでもないとは思いましたが、個人的に感動したので、もし同じようなことで困っている方がいらしゃったらお試しいただいては?と思い書き込みました。

まぁ、この習慣を始めたのが冬なのでわかりませんが、夏場はさすがに多少なりとも洗顔料を使わなければならないような気はしています。汗をかく量が違うでしょうから。

余談:実は「頭皮が汚れて毛穴が詰まる」というのも本当はどうなのか?と考えているところです。確かに詰まると悪い感じはするのですが、昔々、今のように毎日お風呂に入る習慣がないときにみんなはげていたかと考えると「?」なのです。風邪薬や胃薬もそうですが、化学反応の世界をCGによって可視化してくれます。信じるも信じないも自由ですが、人間本来のもつ治癒力や再生力をもう少し活用した方がいいんだろうな。。。と最近感じています。忙しいので思考停止になっていますが。

ひさしぶりにARで遊んでみた。

ある問い合わせを受けて、Android端末でのARアプリを含むシステムの検討をしています。

プロトタイプならProcessingでちょこちょこっと作れるはずと安請け合いしたのですが、昨日あたりから調べてみるとなかなか大変。動いてしまえば問題ないのですが動かすまでが大変でした。

昨日は一日中、NyARToolKitをNexus7で動かせないか試していました。結果、ダメ。企業で使う場合、ライセンス料がかかる場合があるので、選択は依頼元に確認が必要です。

本日は、もう一つの実装であるandarを試してみました。結果的にNexus7ではダメで以前使っていたHT03Aで動かすことができました。

両者ともインターネットではみなさん難なく動かしているようですが。。。原因を解析している時間がないのでとりあえず、動いたアプリをもとにちょっと改変して試験してみました。実はこれは来週末に依頼元の方と打合せ予定のため、その資料として使おうという魂胆です。

あまり情報がないですね。。。すいません。ただ、あれこれ試行錯誤したおかげで動かなかったときの対処方法(といっても実際にやっている人には当然のことだと思いますが)をいくつか知りました。

プロジェクトをインポートしたときにエラーが出た場合は。。。

  • とりあえずProject->Cleanしてみる。
  • Package Explorer でプロジェクトを右クリックしてAndroid Tools -> Fix Project Propertiesをやってみる。
  • Android Lintをやってみる。エラー箇所を地味になおす。
  • R関連でエラーが出ていたらimportをコメントアウトする、もしくはRファイルを削除して自動生成させる。
  • AndroidManifest.xmlの権限や最低バージョンを修正する。
  • libをlibsに変更する(よくわかりませんがAndroidのバージョンがあがったときにlibsになったとか。古いプロジェクトをインポートするとこういう処置が必要とか。)