携帯も今年は買い換えなさそうな感じで,Android機が手元に一台もないのでどうしようかなっと思っていたところに,19800円でBIGLOBEでSmartiaを購入できるということで購入してみた.Androidのバージョンは2.1です.ざっと,いろいろ使ってみた感じの感想としては,iPadやiPod Touchのようなレベルをイメージするとかなり残念な気持ちになる.タッチパネルの反応がいまいちな感じもあるし,液晶部分がフィルムっぽいのもなんだかな,という感じ.開発・検証機的なモチベーションで買ったから別に問題ないけど,日常に使う目的で買ったら,これに19800円は痛い感じだな….それにAndroidのバージョンも上がるのかもわからないし.そんな感じで,結局はiPadとかはよく出来ているなという気持ちになった.
BDZ-AT500を買った
もともとは半年くらい前に一つ前の機種を買おうと思っていたのだけど、最安値の頃合いを逃し、それから価格をトラックし続け、5万を切ったので購入してみた。テレビはブラビアを使っているので、DLNAで別の部屋にBDZ-AT500を置いて、ブラビアで写すというのをやってみたかった。というわけで、LANケーブルとかもいろいろと引き回し、スイッチングハブを購入し、繋いでみた。BDZ-AT500の方は電源を切っておいても待機電源?状態でネットワーク越しにアクセス出来るっぽい。再生自体も普通にできた。いくつか気になる点もある。早見(1.5倍速再生)ができないっぽいのと、削除をリモートでできない気がする。まぁ、見る分には問題ないから特に致命的ではないことだけど、早見はしたいのだけどな。そんな感じだけど、しばらく使ってみよう。
今回、ハブは新規購入したのだけど、LANケーブルを作ったりとガラクタの山をあさっていたら、使っていないハブが3つほど余っていることが発覚…。うーん、今度からはもう少し探してから買おう…。
Mahoutで自分のjarを作る
Mahoutは最新コードを利用したい場合、チェックアウトして、ビルドして、bin/mahoutを実行して、何かを実行することになります。いろいろとやっていくと自分のコードも実行したくなると思いますが、まぁ、単純にexamplesのsrc/main/javaに自分のパッケージを切って、追加する方法もあるかと思います。でも、やっぱり自分のjarを別プロジェクトにして置きたいな~、というときの方法です。Mahout的に推奨のやり方がどこかにあるのか、わからないけど…。ひとまず、私はこんな感じでやっていますということで。(もっと良いやり方があれば、それに切り替えると思うけど)
まず、自分のプロジェクトを作ります。Mavenが前提で話を進めます。
mvn archetype:generate
maven-archetype-quickstartを選んで、適当なプロジェクト名をつけます。今回はhogegroupのhogeprojectにでもしておきます。プロジェクトができたら、pom.xmlを編集しておきます。
: <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.6</source> <target>1.6</target> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>org.apache.mahout</groupId> <artifactId>mahout-core</artifactId> <version>0.5-SNAPSHOT</version> </dependency> <dependency> <groupId>org.apache.mahout</groupId> <artifactId>mahout-math</artifactId> <version>0.5-SNAPSHOT</version> </dependency> <dependency> <groupId>org.apache.mahout</groupId> <artifactId>mahout-utils</artifactId> <version>0.5-SNAPSHOT</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.7</version> <scope>test</scope> </dependency> </dependencies> :
という感じで良いでしょう。あとは、適当にhogeprojectでsrc/main/java以下に自分のMapReduce的なコードを書きます。できたら、mvn installでビルドしておきます。
次に、チェックアウトしてMahoutのコードに戻ります。2つほどファイルを変更します。まず、examples/pom.xmlを追加します。
: <dependency> <groupId>hogegroup</groupId> <artifactId>hogeproject</artifactId> <version>1.0-SNAPSHOT</version> </dependency> </dependencies> :
次に、examples/src/main/assembly/job.xmlを編集します。
: <excludes> <exclude>org.apache.hadoop:hadoop-core</exclude> <exclude>org.apache.mahout:mahout-core</exclude> <exclude>org.apache.mahout:mahout-utils</exclude> <exclude>org.apache.mahout:mahout-examples</exclude> <exclude>hogegroup:hogeproject</exclude> </excludes> </dependencySet> <dependencySet> <unpack>true</unpack> <scope>runtime</scope> <outputDirectory>/</outputDirectory> <includes> <include>org.apache.mahout:mahout-core</include> <include>org.apache.mahout:mahout-utils</include> <include>org.apache.mahout:mahout-examples</include> <include>hogegroup:hogeproject</include> </includes> :
というようにexcludeとincludeに追加します。できたら、Mahoutをビルドします。
mvn clean mvn install
を実行してください。これにより、examples/target/mahout-examples-*-job.jarにhogeprojectが展開されて組み込まれます。あとは、普通にMahoutの実行と同じで
bin/mahout hogegroup.HogeDriver
みたいな感じで実行できます。
Mahoutは一度ビルドしておけば良いので、2回目からはhogeprojectでmvn installして、Mahoutのexamplesディレクトリでmvn clean;mvn packageをすれば、jarが更新されます。そんな感じで遊んでみてください。