The API uses eyes as the "facial detection" and there is no other detail (face dimensions mouth location etc.).
Also faces that are taken from the side will not be detected. Sunglasses/glasses turns out to interfere with detection.
It seems to take the same amount of time regardless of how many faces you specify in the FaceDetector constructor.
I recommend the picture size smaller than 800x800 pixels coz it will take a lot of time to process the large image.
The following app runs the image processing code in a separate thread, and notifies the UI thread when the processing gets done, then calls invalidate() to redraw the canvas.
(画像解析のコードは別スレッドで走らせて、処理が終了したらUIスレッドに知らせてキャンバスを描き直しています。)
特に何でもないアプリですが、
もしコード見たい方がいたらアップしますので、コメントでお知らせください。
Demo Video:
というわけで、Android上でのアプリ開発はいったんストップかな。前回のエントリー以降いくつか機能を追加して音楽も再生できたりして結構いい感じまでいったのにな~。
なんでも、来週にはクラスの生徒へのサンプルとして公開されるそうです。
しかし、STBが届いてしまうと忙しくなってしまう。卒業研究がピンチだw。どうせならもっと暇だった1月前半に送って欲しかった(涙)今週末からOCAP Platformの勉強をしないといけない。。。
というわけで、今日時点でのアプリのスクリーンショットをちょっとご紹介!
お買い物に行ったり、夜遅くまで24を見たり、まあ優雅な休日を過ごしております(笑)
さてさて、今日はクリスマスだったので、割と高級なSunDialというレストランに行ってまいりました。
コース料理で一人約80ドル。あ~、学生にしては高いですね。
前菜としてはキャビアがちょっとのっかったスモークサーモンサラダを食べました。
キャビアを食べるのは生まれて初めてだったんですが、意外といけました。
生臭くて食べられないんじゃないかと最初は思ったけど、今までのイメージ的には。
最後にちょっとしたニュースなんですが、来学期はモトローラと合同でIPTVプロジェクトに取り組むことになりました。最後のセミスターなんですが、何気にかなり忙しくなりそうです。
1. MySQL JDBCドライバをhttp://dev.mysql.com/downloads/connector/j/5.1.htmlからダウンロード。
2. ダウンロードしたZIPファイルを解凍する。
3. mysql-connector-java-5.x.x-bin.jar を{Sailfinをインストールしたディレクトリ}\lib にコピーする。
4. Sailfinを 'asadmin start-domain domain1'コマンドを実行して起動する。ちなみにasadminコマンドは{Sailfinをインストールしたディレクトリ}/binにあります。
5. Sailfinの管理画面へとログインします。デフォルトではhttp://localhost:4848/login.jsfになっています。インストール時にsetup.xmlなどで変更していなければ、ユーザ名とパスワードはそれぞれadmin,adminadminとなっています。
6. 管理画面の左側にあるCommonTaskのResourcesメニューをクリックし、JDBCメニュー配下にあるConnection Poolsをクリックします。
7. Resource Typeとしてjavax.sql.ConnectionPoolDataSourceを、Database vendorとしてMySQLを選択し、新しいConnectionPoolの名前を入力します。
8. 後はウィザード通りに進んで最後に"Ping"ボタンを押してConnection Poolが正しくセットアップされたかどうか確認してください。
9. 続いてJDBCメニューにあるJDBC Resourcesをクリックします。
10. JDBC Resourceを特定するのに使われるJNDI Nameを入力します。先程作成したConnectionPoolを'Pool Name'として選択します。
11. OKボタンを押して終了となります。コードでは先程指定したJNDI Nameを指定してデータソースにアクセスすることができるようになります。
さて、mod_jkを使ったApacheとTomcatの連携はよく知られているけど、ApacheとSailfinでも結果的に同じことが可能であった。ただやり方はちょっと面倒くさい。
ちなみにSailfinとは
- オープンソースアプリケーションサーバー
- ベースはGlassfish
- Sip Servletが使える
- 管理・Netbeansを使うと開発が簡単
構築環境:
OS: Ubuntu Server 8.04
Apache(httpd): Apache 2.28
mod_jkのバイナリ 1.2.27
1. mod-jkをインストールする。
mod-jkが我がサーバーにはないので、まずはここからダウンロードする。
Apacheのバージョン情報に応じてダウンロードするものが違うみたいなので、下記のコマンドを実行し出力されたApacheのバージョンに合ったモジュールをダウンロードする。
/usr/sbin/apache2ctl -v (もしくはhttpd -v など実行)
ダウンロードしたモジュールをmod-jk.soとリネームして/usr/lib/apache2/modulesに配置する。
続いてmod_jk.confとworkers.propertiesを下記を参考にして作成し、/etc/apache2/confに配置する。
[mod_jk.conf]次は/etc/apache2/mods-availableにmod_jk.confとmod_jk.loadを作成し、
JkWorkersFile /etc/apache2/conf/workers.properties
# Where to put jk logs
JkLogFile /var/log/apache2/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel debug
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
# JkOptions indicate to send SSL KEY SIZE
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat: set the request format
JkRequestLogFormat "%w %V %T"
# Send all jsp requests to Sailfin
JkMount /examples/*.jsp ajp13
# Send all XMLTester/XmlService requests to Sailfin
JkMount /XMLTester/XmlService ajp13
(注)JkMount->場合によってはVirtualHostごとに設定が必要。
[workers.properties]
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
worker.ajp13.cachesize=10
worker.ajp13.cache_timeout=600
worker.ajp13.socket_keepalive=1
worker.ajp13.socket_timeout=300
/etc/apache2/mods-enabledからシンボリックリンクを張る。
cd /etc/apache2/mods-enabled
sudo ln -s ../mods-available/mod_jk.load mod_jk.load
sudo ln -s ../mods-available/mod_jk.conf mod_jk.conf
[mod_jk.load]
LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so
[mod_jk.conf]
<IfModule mod_jk.c>
Include /etc/apache2/conf/mod_jk.conf
</IfModule>
最後にApacheを再起動します。
sudo /etc/init.d/apache2 restart
2. AJPコネクタモジュールなどをインストール。
Apache Jakarta Projectからcommons-logging-1.1.1.jarを入手します。
Tomcat 5.5.16のserver/libに含まれている下記の2ファイルをコピーします。
- tomcat-ajp.jar
- commons-modeler.jar
- tomcat-ajp.jar
- commons-logging-1.1.1.jar
- commons-modeler.jar
asadmin(Sailfinディレクトリ)/domains/(ドメイン名)/configディレクトリに以下の内容でsailfin-jk.propertiesファイルを作成。他サイトの情報によるとこれをやらないとREMOTE_USER情報がSailfinに渡されないとのこと。
create-jvm-options -Dcom.sun.enterprise.web.connector.enableJK=8009
[sailfin-jk.properties]
tomcatAuthentication=false[参考サイト]
続いて設定するドメインに応じて下記コマンドを変更した上で実行し、Sailfinが
sailfin-jk.propertiesをロードするようにする。
asadmin create-jvm-options
-Dcom.sun.enterprise.web.connector.enableJK.propertyFile=
/usr/share/sailfin/domains/domain1/config/sailfin-jk.properties
最後にドメインを再起動して終了です。
後は適当なJSPファイルを使ってちゃんと動いているか確認してください。
asadmin stop-domain domain1
asadmin start-domain domain1
お疲れ様でした。
http://www.office-matsunaga.biz/dev/description.php?id=6
http://weblogs.java.net/blog/jfarcand/archive/2006/03/running_glassfi_1.html
いや~、久しぶりにたくさんの日本人を見ました。
そして疲れました、特に一日目のハプニングのせいで。
というのも、出発日に予約しておいた飛行機がメカニックトラブルでキャンセルされ、午前中の面接をキャンセルする羽目になり、それらを午後に詰め込んだためスケジュールがなかなか激しいことに。。。会場を走り回りましたw。
ちなみに今回受けた5社は全て外資系になりました。IT系の会社と外資系投資銀行ですね。
2年前のキャリアフォーラムでは応募しなかった金融系の会社を今回受けてみたのですが、なかなか勉強になりましたね。それにしても外資系投資銀行は受けてる人のレベルが高いな~と。
ディナーにも連れてってもらったりしたのですが、MIT、UPENN、Columbiaなど名の通った大学の方々がたくさんいました。
とにかく、僕的には結果も含めて満足のいくキャリアフォーラムになりましたね。
あまり時間はかけられませんが、納得のいく結論を出したいです。
今日は疲れたのでこれから爆睡します。おやすみなさい。
もう受ける企業は決まっているので、後は現地に行って面接に臨むだけであります。
ちなみに今日は縁起を担ぐためにとんかつを食べました(笑)
うまくいくといいですなぁ。というのも、やっぱ自分は日本で働きたいので。
でもあんまり給料が安いとこは嫌ですけどね。
話は変わって、今学期から取り組んでいる電話会議プロジェクトがもう少しでオープンテストの段階まで持っていけそうです。今週かボストンから帰ってくる来週あたりに先生に見せてOKがでればいいかなあと。ふっふっふ、ついに購入したサーバーマシーンの出番がやってきそうだw。
いや~、メールサーバーやバーチャルホストの設定などいろいろ勉強になりました。
ちゃんとスパムフィルターやウィルススキャンの設定もしましたよ~!
というわけで、とりあえずサーバーのセットアップが終わったので来週からはまた例のプロジェクトの開発に取り組めそうです。公開できるレベルにまで達したらこのブログでも発表したいですね。
まあトラフィックはかなり低いですがw。
UbuntuのRepositoryには入っていないので、
http://sourceforge.net/projects/postfixadmin/
から現時点で最新版のpostfixadmin2.2.1.1all.debをダウンロードしてインストール。
dpkg -i postfixadmin_2.2.1.1_all.deb
上記コマンドを実行するとPostfixadminは"/usr/share/postfixadmin/ "にインストールされます。設定ファイルは"/etc/postfixadmin/config.inc.php"です。
またApacheにaliasが追加されます → /etc/apache2/conf.d/postfixadmin
続いてPostfixadminの設定ファイルを編集します。
vim config.inc.php
[...]
$CONF['configured'] = true;
$CONF['postfix_admin_url'] = 'http://example.com/postfixadmin';
$CONF['database_type'] = 'mysql';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfixadmin';
$CONF['database_password'] = 'YourPassword'; //Change here
$CONF['database_name'] = 'postfix';
$CONF['domain_path'] = 'YES';
$CONF['domain_in_mailbox'] = 'NO';
$CONF['encrypt'] = 'cleartext';
設定ファイルの中に記載されているドメインを自分のものと置き換えます。
cd /usr/share/postfixadmin
sed -i "s/\@change-this-to-your.domain.tld/\@example.com/g" config.inc.php
sed -i "s/change-this-to-your.domain.tld/example.com/g" config.inc.php
sed -i "s/Return to example.com/Return to www.example.com/g" config.inc.php
Postfix用のデータベースとユーザーを作成します。
mysql -u root -p
mysql> create database postfix;
mysql> grant all privileges on postfix.* to 'postfixadmin'@'localhost'
identified by 'YourPassword!';
mysql> flush privileges;
mysql> \q
ブラウザを開いてhttp://yourdomain.com/postfixadmin/setup.phpへ移動します。
SetUpCheckerが全ての項目に対してOKと表示するか確認。
場合によってはphp5-imapなどをapt-getでインストールする。
OKならAdmin用のEmailAddressとパスワードを登録。 登録し終わったらsetup.phpは削除。
続いてhttp://yourdomain.com/postfixadmin/へと移動。 先程setup.phpで作成したAdminアカウントでログインできるか確かめておく。 (注...まだドメインやメールボックスは作成できません)
次回はPostfix本体の設定を暇なときに書きます。
鍵方式によるログインの方が攻撃者の侵入を防ぎやすいからです。
これでセキュリティ的にはかなり上昇します。
初めての方は下のリンク先にあるページでも見てみるといいと思います。
Puttyで鍵交換方式によるSSH接続
(メモ)
1. Puttyで作成した公開鍵をOpenSSH形式に変換するコマンド。
- ssh-keygen -i -f id_rsa.pub >> authorized_keys
3. ターミナルエミュレーターとしてPoderosaを使う場合はPuttyで生成した秘密鍵を「ssh.com」形式へとエクスポートする必要あり。
鍵のセットアップが終わってテストログインにも成功したら再度sshd_configファイルを編集します。
1. #PasswordAuthentication yesの行をUncommentして以下のように修正。
これで秘密鍵を所持していないとログインできなくなりセキュリティが向上します。
- PasswordAuthentication no
- sudo /etc/init.d/ssh restart

Recent Comments