2011年6月26日

Android 開発で「Error generating final archive:Debug Certifica」と出た時 の対処

これはそれなりの期間開発している人にしか発生しない現象。 debug.keystore の有効期限切れが原因。
Mac 環境では $HOME/.android 以下に debug.keystore が存在するので、再生成するか、削除すれば良い。

2011年5月17日

Facebook で Create App した時「Your account must be verified before you can take this action」と表示された時の対処方法

いろんな方法があるが携帯があるならConfirm Your Phoneの画面にいって携帯メールにメールを飛して認証するのが簡単。

2011年5月14日

Scala 2.9.0 final インストール

インストール

IzPack Installer を利用してインストールする場合は以下。

curl -O http://www.scala-lang.org/downloads/distrib/files/scala-2.9.0.final-installer.jar
java -jar scala-2.9.0.final-installer.jar

MacPorts を利用した方が楽。

sudo port -v selfupdate
sudo port install scala29

ドキュメントもダウンロードしておく。

curl -O http://www.scala-lang.org/downloads/distrib/files/scala-2.9.0.final-devel-docs.tgz
tar xvfz scala-2.9.0.final-devel-docs.tgz

今回はMacPortsでインストールした。

バージョンの選択

MacPorts でインストールしていて scala28 がインストールされている場合はバージョンを選択しておく方が良い。
「scala_select」コマンドを利用する。

# 選択できるバージョンを確認
scala_select -l 
# バージョン選択
sudo scala_select scala29
# 確認
which scala
scala -version
scalac -version

新機能

  • Parallel Collections 追加
  • App Trait 追加
  • DelayedInit Trait 追加
  • Repl機能向上
  • Scala コマンドに実行関連オプション追加
  • @strictfp アノテーション追加
  • try-catch-finally
  • scala.sys と scala.sys.process パッケージ追加
  • collectFirst, maxBy, minBy, span, inits, tails, permutations, combinations, subsets 追加
  • AnyRef が特化型になった

App Traitの動作確認

サンプル作成はApp Traitは簡単なので、とりあえずApp Traitを動作させてみる。

Echo.scala として以下を作成

object Echo extends App {
  println("Echo" + (args mkString " "))
}
# コンパイル
scalac Echo.scala
# 実行
scala Echo hello
# 出力
Echohello

実行時、以下のエラーが発生するかも。

Exception in thread "main" java.lang.RuntimeException: Cannot figure out how to run target: Echo
       at scala.sys.package$.error(package.scala:27)
       at scala.tools.nsc.GenericRunnerCommand.scala$tools$nsc$GenericRunnerCommand$$guessHowToRun(GenericRunnerCommand.scala:38)
       at scala.tools.nsc.GenericRunnerCommand$$anonfun$2.apply(GenericRunnerCommand.scala:48)
       at scala.tools.nsc.GenericRunnerCommand$$anonfun$2.apply(GenericRunnerCommand.scala:48)
       at scala.Option.getOrElse(Option.scala:109)
       at scala.tools.nsc.GenericRunnerCommand.(GenericRunnerCommand.scala:48)
       at scala.tools.nsc.GenericRunnerCommand.(GenericRunnerCommand.scala:17)
       at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:33)
       at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:89)
       at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)

これは classpath がカレントディレクトリに通ってないため発生する。classpath を明示的に指定。

scala -classpath . Echo hello

実行されるはず。

通常は「SCALA_HOME」環境変数の設定は不要。scala コマンドのあるディレクトリの一つ上を「SCALA_HOME」ディレクトリに自動設定している。

他の機能は使いながら調査する。

Emacs設定

ensime を利用する。
2.9に対応したバイナリはリリースされてないが、ソースを直接取得コンパイルすれば動作する。

2011年2月11日

ToDo、タスク管理は Google Tasksで決まり

Google のサービスに Google Tasks があります。
http://mail.google.com/tasks/
GmailやGoogle Calendar では英語のインターフェースにしないと表示されないので、それほど使われていないのかもしれません。
ブラウザから利用すると不便なこのサービスは専用クライアントを利用することでとても便利なサービスになります。

Windows/Mac/Linuxのデスクトップから利用する

その名もGoogle Tasksという名前のAdobe Airで作成されたアプリケーションがあります。
Adobe Air製なので、Windows/Mac/Linuxのデスクトップで利用することができます。
このアプリケーションが便利なのはアクセスできるのがGoogle Tasksに限らないということです。
Google が提供するサービスのモバイルインターフェース全てにアクセスできます。
Google 専用ブラウザとして利用しても大変便利です。
googletasks.png

iPhoneから利用する

iPhoneのSafariでログインしても利用できますが、専用アプリを利用した方が便利です。利用するアプリはGoTasksです。

GoTasks 1.4.3App
iPhone、iPod touch および iPad 互換 iOS 4.0 以降が必要
カテゴリ: 仕事効率化 価格: 無料
更新: 2011/01/04
無料アプリというのが信じられないぐらい強力なアプリケーションです。

Androidアプリはまだ捜していませんが、捜せばありそうです。

Google Tasks以外のタスク管理サービスに関して

タスク管理なんて必要ないと思っていても、やってみると重要性に気づいたりします。
この分野ではRemember The MilkToodledoが有名です。
ユーザが多く、かつ連携アプリケーションも多いのでこちらの方が便利な場合もあります。
始めるだけなら全て無料ですので、アカウントを作成して始めてみてはどうでしょうか。
きっと、新しいことを発見できると思いますよ。

2011年2月6日

Mac OS X で JBoss 5.0.1 の起動まで

JBossはオープンソースのEJBコンテナ。RedHat社がサポートを実施していますが、オープンソースですので誤解なきように。
公式サイトはhttp://www.jboss.org/です。

ダウンロード

sf.net で配布されています。http://sourceforge.net/projects/jboss/
公式サイトからたどるとややわかりずらいですね。http://www.jboss.org/jbossas/downloads.htmlからsf.netにリンクしています。
2011年1月現在最新版は7.0です。ちなみにRedHatが正式にサポートしているのは 5.0のシリーズになっているようです。
仕事で使うことを想定すると RedHat がサポートしているバージョンをとりあえずいじった方がよさそうなので、jboss-5.0.1.GA.zip をダウンロードして解凍してどこかに置いておきます。

起動

bin/run.shで起動します。
http://localhost:8080/ にてアクセスが可能です。

OutOfMemoryErrorへの対処

けっこう OutOfMemoryError が出て起動が完了しませんでした。run.conf の設定を変更すると良いはずなのですが、変更しても反映されないので、run.sh の中身の変更が必要でした。
JAVA_OPTS が設定できれば良いので、どこで設定しても大丈夫です。

今後の調査項目

とりあえず JBoss でサンプルアプリを動作させて、Seam 等のフレームワークも動作させてみたいです。
また JBoss Tools で Eclipse での開発もためす必要があります。
機能がかなりあるので、計画的に調査していこうと思います。

2011年1月30日

Wowza Media Server を Mac OS X にインストールして動かしてみる

http://www.wowzamedia.com/

ライセンス取得は登録が必要です。数分で登録したメールアドレスにライセンス番号が送付されてきます。このライセンスでは10コネクションまでの接続制限とストリーミング時間の制限がありますが、それ以外の機能的な制限はありません。

Wowza を起動します。

cd /Library/WowzaMediaServer/bin/
./startup.sh
# ライセンスキーを聞いてきますので入力します

とりあえず普通のストリーミングをしてみます。

アプリケーションを作成した方が良いので作成します。アプリケーションは以下のディレクトリにフォルダを作成することで作成できます。

/Applications/Wowza\ Media\ Server\ 2.2.3/WowzaMediaServer/applications

フォルダ名はとりあえず「test」にでもしてみます。設定ファイルもデフォルト状態でコピーしておきます。

cd /Applications/Wowza\ Media\ Server\ 2.2.3/WowzaMediaServer/applications
mkdir test
cd ../conf
mkdir test
cd test
cp ../Application.xml .

ローカルでテストする場合はとりあえず以下のURLで接続可能です。

rtmp://localhost:1935/test

クライアントアプリを作成するの面倒なので、とりあえず http://flowplayer.org/ をクライアントにして動作させてみます。

とりあえず以下みたいな HTML を作成してアクセスすれば再生可能です。clip の URL はこの場合flvです。

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>test</title>
<script src="./flowplayer-3.2.4.min.js"></script>
<link rel="stylesheet" type="text/css" href="./style.css" />
</head>
<body>
 <h1>test</h1>
 <a class="player" id="fms">
   <img src="./showme.png"  />
 </a>
<script type="text/javascript">
$f("fms", "./flowplayer-3.2.5.swf", {
 clip: {
   url: 'test',
   provider: 'wowza'
  },

  plugins: {
    wowza: {
       url: 'flowplayer.rtmp-3.2.3.swf',
       netConnectionUrl: 'rtmp://localhost:1935/test'
    }
  }
});
</script>

</body>
</html>

参考サイト

red5 のコンパイル

http://code.google.com/p/red5/

curl -O http://ftp.riken.jp/net/apache//ant/binaries/apache-ant-1.8.2-bin.tar.gz
curl -O http://ftp.riken.jp/net/apache//ant/ivy/2.2.0/apache-ivy-2.2.0-bin.tar.gz
tar xvfz apache-ant-1.8.2-bin.tar.gz
export ANT_HOME=/path/to/apache-ant-1.8.2
export PATH=$ANT_HOME/bin:$PATH
tar xvfz apache-ivy-2.2.0-bin.tar.gz
mkdir ~/.ant
cp apache-ivy-2.2.0/ivy-2.2.0.jar ~/.ant/
svn checkout http://red5.googlecode.com/svn/java/server/trunk/ red5-read-only
cd red5-read-only
ant retrieve
make

JAVA_HOMEの設定がされていないとコンパイルされないかもしれない。