sakito
http://www.sakito.com/
Posts
|
b-casカード不正改造問題の本質はカードの交換を不可能にしたこと - アンカテ - http://d.hatena.ne.jp/essa...
|
|
たけしの話だと、軍団の一人がヤクザに拉致されてたけしが単独で組に乗り込んで
「一席やって面白かったら返してくれ」と言って漫談やったら組長が大笑いして無事取り返した話とか、
ラッシャー木村だったかがたけしに「引っ越し祝いに何が欲しい?」って言われて「洗濯機が欲しいです」
って言ったら、後日宅配便が来てラッシャーがワクワクして包みを開けたら金だらいと洗濯板で「こりゃ一本とられた」
と思って裏を返したら大金の入った袋があって、「コレでいい洗濯機買え」っていうメモが入ってたっていう話が好き。 - http://sakito.tumblr.com/post...
|
|
新たな知識や技能を教わる機会が貴重だったのは、既に遠い昔の話だろう。 今なら参考書が簡単に手に入るし、安価なスクールも充実している。学びたい人間はお金を払ってでもとっくに学んでいる。 特に自主的に学んでいない人間にとって、教わることより教えることの方が気持ちいい。語りたいのだ。 キャバクラは、お金を払えば、つまらない話を好意的に聞いてもらえる場だ。 自慢や説教、そういったものを聞いてキャバ嬢は「すご~い」「○○さんと居ると楽しい♪」と感謝の反応をする。 こんなもの、金をもらえなければ無理だ。 同じことを部下は上司にされるものだが、これも上司が自分の出世・将来を握っているから耐えているだけだ。... - http://sakito.tumblr.com/post...
|
|
76:ナレーター(アラビア):2010/07/26(月) 09:20:14.24 ID:dCT6rJbg
ググッたけどスペインも「日本と同じ」失敗例として扱われてるな。
非正規が1/3で女は正社員総合職は無理で良くて一般事務。
低収入でも地域の助け合いがあるから孤立して一家心中、自殺の日本みたいにはならないけど。
日本でもみんな生まれた土地で死ぬまで離れなかったらどれだけ貧乏でも助け合いで生きていく事は出来るのだろうけど。
どのサイトでもスペインは「日本と同じく」って枕詞付きの失敗例で語られるのが面白かった - http://sakito.tumblr.com/post...
|
Posts
過去のコミットログを修正したい場合は mq を利用して修正します。
設定ファイルで mq を有効にしておきます。
[extensions]
mq =
r 1 のログを変更したい場合は以下の手順で変更できます。
これで"change" というコメントになります。
hg qimport -r 1:tip
hg qapplied
hg qgoto 1.diff
hg qrefresh -m"change"
hg qpush -a
hg qfinish -a
mq を利用するといろいろと過去の修正はできます。
Python の文字コード周りは基本に忠実で、かつ高機能です。入出力の文字コードがわかっているなら、iconv とか nkf よりも使いやすい場合も結構あります。
基本は、入力時に decode して、出力時に encode します。
decode すると Python の Unicode 型になり、この型はかなり便利。
とりあえず decode の簡単なサンプルを以下に書きましたので参考にしてみてください。
読み込みファイルは以下から取得してください。
sakito / python_sample_code / source — Bitbucket
Python で MongoDB を扱う場合は、「pymongo」を使えば良いですが、素のままだとそこそこ面倒なので、「MongoEngine」の簡易サンプルを書いてみました。
Python の MongoDB 用 ORM は他にも以下のような物があります。
一応、全部ためしてみましたが、MongoEngineはテストコードがテストとしても、サンプルとしてもかなりしっかりしており信頼できます。
あと GeoPoint とかその他複雑な機能にちゃんと対応しているのが MongoEngine ぐらいしかないみたい。
まあ結局選択の一番は個人的にかなり使いやすいと言うことですね。
ほんとうに MongoDB ちゃんと使っている人が作っている感じがします。
hgflow の説明と使い方は「hgflow - watawata日記」を参照。
hgflow は Fork した物の方を利用している。yujiewu / hgflow / overview — Bitbucket
curl -LO https://bitbucket.org/yujiewu/hgflow/downloads/hgflow-v0.9.2.tar.gz2
tar xvfj hgflow-v0.9.2.tar.bz2
解凍すると、hgflow.py をいうファイルができる。任意にディレクトリに配置して、${HOME}/.hgrc に以下を設定すると利用できるようになる。
[extensions]
flow = /path/to/hgflow.py
とりあえずこんな感じで動作させてみる。
hg flow init
hg flow develop
hg flow feature start spam
hg flow feature finish spam
hg flow release start 1.0
hg flow release finish 1.0
感想としては、使い易い。
場合にもよるが、git-flow の場合は feature は削除されるので、hgflow も feature は branch でなくて、bookmark の方が良いような気がする。本当は選択できるのが良いのだけど、このあたりはポリシーの問題のような気がする。
Kyoto Cabinet の動作を見せる機会があったので、簡単なサンプルを作ってみました。
以下のサイトを参考にしています。
準備
Python は 2.7.2 で確認しています。
必要な物をインストールします。MacPorts と pip を利用してインストールしています。
sudo port install kyotocabinet +lzma +lzo
pip install -U http://fallabs.com/kyotocabinet/pythonlegacypkg/kyotocabinet-python-legacy-1.16.tar.gz
pip install -U tornado
検索用郵便番号データの作成
以下に記述されているソースは bitbucket にアップしてあります。
sakito / sample_py_kyotocabinet_tornado_zipcode / source — Bitbucket
Kyoto Cabinet Python ライブラリは素のまま使うと Python らしくないのでラッパを作成しておきます。
郵便番号データを読み込んで、KEN_ALL.kct というデータベースに格納するスクリプトを作成します。参考にしたサイトでは kch にしてますが、郵便番号検索は別に前方一致で良いので、kct の方が効率的です。
このスクリプトを利用して郵便番号データを作成します。
curl -O http://www.post.japanpost.jp/zipcode/dl/oogaki/zip/ken_all.zip
mkdir data
unzip -d data ken_all.zip
python data_load.py
Web UIの作成
UIを作成します。テンプレートとか利用するともうすこし綺麗に作成できますが、とりあえず参考サイトの形式で一つのファイルになるようにしてみました。
例外の処理とか、セキュリティとかは考慮してないです。
実行
起動します。
python server.py
Python のグラフライブラリmatplotlib はデフォルトだと日本語フォントではないため、日本語が正常に表示されません。
設定は簡単です。
まず現在読み込んでいる設定ファイルの位置を確認します。
import matplotlib
matplotlib.matplotlib_fname()
cp /path/to/matplotlib/mpl-data/matplotlibrc ~/.matplotlib
font.serif : Osaka
font.sans-serif : Osaka
ipython --pylab
x=arange(0.0, 2.0, 0.01)
y=sin(2*pi*x)
plot(x,y,"-")
title(u"日本語タイトルです")
xlabel(u'X軸のラベル')
ylabel(u'Y軸のラベル')
hunchentoot は 1.2 で API が結構変更になっているのだけど、ネット上にあるサンプルは古い物が多いので、1.2.2で簡易なサンプルを作成してみた。
https://bitbucket.org/sakito/hunchentoot-sample/src
View は cl-markup
ORM は clsql で MySQL を利用している。
clsql は環境によってはうまく日本語がはいらないかもしれない。
値を入力して、確認、DBへ挿入、ログの出力までとりあえずしている。
テストを書いてないのとテスト不足なので品質がいまいちなのだけど、公開しておく。CCLでしか動作確認してないけど、それほどコードないし、他でも動作すると思う。
使い方を簡単に。
hg clone https://bitbucket.org/sakito/hunchentoot-sample
cd hunchentoot-sample/simple
ccl
;; ロード
(ql:quickload :hunchentoot-sample)
;; 起動
(hunchentoot-sample::start)
終了するには以下で。
;; 終了
(hunchentoot-sample::stop)
これだけだとおもしろくないのでソースもはっておきます。
とりあえずいろいろ入れておく。
# test 関係
pip install nose
pip install pexpect
# numpy のインストール
pip install numpy
# scipy のインストール
# scipy をインストールするには Fortran コンパイラが必要なので gfortran をインストール
# http://gcc.gnu.org/wiki/GFortranBinaries#MacOS
curl -O http://quatramaran.ens.fr/~coudert/gfortran/gfortran-4.6.2-x86_64-Lion.dmg
# dmg 内の pkg で 普通にインストールます
pip install scipy
# matplotlib のインストール
# http://www.activestate.com/activetcl/downloads 入れておく
sudo port install antigraingeometry
sudo port install libpng
pip install pytz
# http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-1.1.0/
# から tar.gz 取得
tar xvfz matplotlib-1.1.0.tar.gz
cd matplotlib-1.1.0
# 環境によっては export CC=gcc しないとコンパイルできないかも
python setup.py build
easy_install -UZ .
# Sympy のインストール
pip install sympy
とりあえずいろいろはいるので起動する。
ipython --pylab
plot([1,2,3])
マニュアルはhttp://clsql.b9.com/manual/にある。結構丁寧に書いてある。
(eval-when (:compile-toplevel :load-toplevel :execute)
(require :clsql))
;; DB に接続
(clsql:connect '("localhost" "cclsample" "root" "")
:database-type :mysql)
;; field-names を nil にすると column は返ってこないようにする
(clsql:query "select * from sample" :field-names nil)
;; insert 文発行
(clsql:execute-command "insert into course value('1','sample')")
;; clsql:do-query ループ
(clsql:do-query ((no name)
"select no,name from sample")
(format t "~a,~a~%" no name))
;; 接続を切る
(clsql:disconnect)
環境によって文字化けするかも。
Clozure CL が App Store に公開された。
Clozure CL 1.7(無料)
カテゴリ: 開発ツール
販売元: Clozure Associates - Clozure Associates, LLC(サイズ: 28.3 MB)
全てのバージョンの評価: (1件の評価)
これでアプリケーションの管理とか、バージョンアップとかが簡単になるし、Mac で Common Lisp するならやはり ccl が一番早道な気がしている。
IPython 0.12 が正式リリースされた。
IPython: Productive Interactive Computing — IPython
とりあえず notebook を動作させてみた。
pip install ipython
pip install tornado
sudo port install zmq
pip install pyzmq
# 速度を求める場合は pyzmq-ctypes
# pip install ctypes
# pip install pyzmq-ctypes
# 起動
ipython
> from IPython.external import mathjax; mathjax.install_mathjax()
> exit
# notebook 起動
ipython notebook
デフォルトのプラウザで起動する。ブラウザベースの環境としてはかなり強力。
用途は色々あるけど、まずは画像とかも出るので、ターミナルで画像が表示できないとかの環境なら、利用すると良いんぢゃないかな。
cclは標準状態では補完は動作しません。補完するのは Linedit か rlwrap を利用します。
Linedit の ccl 対応は比較的最近なのでまだ設定してないので、rlwrap の方で書いておきます。
sudo port install rlwrap
alias ccl='rlwrap -pgreen -r -m --history-filename=${HOME}/.ccl/ccl_history --histsize=1000000 -c -b "(){}[],^%$#@\"\";''|\\" -f ${HOME}/.ccl/ccl_completions ccl64 -K utf-8'
あとは ccl-init.lisp にhttps://gist.github.com/1140214 の設定を追加しておくと補完が楽になります。
設定を完了して ccl コマンドで起動すると補完が効きます。履歴の補完場所とかは自分の好みで変更してください。
注意点として slime の repl に rlwrap を有効にした物を設定してしまうと変になると思います。
利用する実装
Common Lisp の実装は複数ありますが、Clozure CL(以後 ccl)を利用します。
ccl はコンパイル速度が早くて、スレッドも利用でき、もともとMacで開発されたこともあり、Mac用の機能なんかもあって楽しいのでこれを利用するのが良いです。
インストール
MacPorts を利用するのが楽。
# インストール
sudo port install ccl
# 起動
ccl64
# 終了
(quit)
設定ファイル
「$HOME/.ccl-init.lisp」が設定ファイルになります。設定ファイルは当然 Common Lisp で書きますので、Common Lisp勉強する前には書けないかと思います。とりあえず空のファイルを作成しておくと良いかと思います。
Quicklispのインストール
ライブラリをインストールする場合は Quicklispを利用します。昔はASDF-Installとか利用していたけど、全然便利ではないし ccl では非推奨になったので利用しません。
以下のようにインストールします。
curl -O http://beta.quicklisp.org/quicklisp.lisp
ccl64 --load quicklisp.lisp
(quicklisp-quickstart:install)
以下で動作確認ができます。「term」を含むライブラリを検索しています。
(ql:system-apropos "term")
起動直後からQuicklispを有効にするために設定ファイルに設定を追加します。
(ql:add-to-init-file)
設定ファイルを見るとパスが記述れているのでQuicklispのディレクトリ位置を変更したい場合は設定ファイルを修正してください。
Emacs の設定ファイルを記述したことがある人なら簡単な設定変更はできるかと思います。
人気のライブラリはQuicklisp news: Project download statistics等を参照するとわかるので、上から入れて、ためしてみたり、ソース読んだりすると勉強になるかもしれない。
ライブラリに関してはいずれ書きたい。
Zsh プロンプトに色を付ける場合、ネットを探すと結構古い設定ばかりが検索にひっかかる場合があるようなので、Zsh 4.1.12 に合せた設定方法をメモしておく。
Zsh の該当の man は zshmisc 等になる。
記号で使えるのは以下とか。
| 記号 | 説明 |
|---|---|
| %B | ボールド(%bで終了) |
| %E | 終了でのクリア |
| %U | アンダーライン(%uで終了) |
| %S | 強調(%sで終了) |
| %F | 文字の色(%fで終了) |
| %K | 文字背景の色(%kで終了) |
色は基本だけなら、0:black、1:red、2:green、3:yellow、4:blue、5:magenta、6:cyan、7:whiteが利用できる。数字は色の番号。
カレントディレクトリを表示させる場合は「%~」なので、例えば以下のようにすると色が黄色で、背景が赤にできる。
# 色を文字で設定
%F{yellow}%K{red}%~%k%f
# 色を数字で設定
%F{3}%K{1}%~%k%f
マニュアルは量が多すぎて該当箇所をみつけるのが結構大変な気もする。
現象
コンパイル中に「error: stdarg.h: No such file or directory」のエラーが発生してコンパイルが停止することがあります。これに対して対処します。
原因
コンパイル対象が gcc-4.2 に対応していないのが原因。Lion でインストールする XCode4.2 は gcc-4.2 しかインストールされないが、これに対応していない。
対処方法1
根源的に対処するのはMakefile等を修正する必要があるかもしれません。これはとりあえず暫定的な対処になります。
コンパイラを gcc でなく clang に変更するとコンパイルが通る場合があります。
export CC=/usr/bin/clang
対処方法2
gcc-4.0 をインストールしてしまう手もあります。
XCode3をインストールすれば gcc-4.0 をインストールすることが可能です。以下のサイト等を参考にすればインストールできるでしょう。
LionにXcode3をインストールする | Smartphone-Zine
MarsEdit 3.3.4(¥3,450)
カテゴリ: ソーシャルネットワーキング, 仕事効率化
販売元: Red Sweater Software - Red Sweater Software(サイズ: 6 MB)
全てのバージョンの評価: (2件の評価)
MarsEditは標準で「HTML」、「Markdown」、「SmartyPants」、「Textile」のプレビューができます。
プレビューにどの文法を利用するかは、プレビューウィンドウの「Preview Text Filter」で選択します。
このプレビュー文法は追加することができます。
文法追加手順
標準の文法ファイルは「~/Library/Application Support/MarsEdit/TextFilters」以下に用意されいて、追加ファイルもこのフォルダの中に入れます。
まず簡単にPHP Markdown Extraを追加してみます。
PHP Markdown Extra 1.2.4 をダウンロードすると、「php-markdown-extra-1.2.4.zip」というzipファイルが落ちてきますので、これを解凍します。
解凍ソフトによりますが、標準的には「PHP Markdown Extra 1.2.4」という名称のフォルダが生成されるはずです。
このフォルダを「PHP Markdown Extra_1.2.4」とバージョン番号の前を空白でなくアンダーバーにした名称に変更します。
名称変更したフォルダを、先程のTextFiltersフォルダにそのまま入れます。MarsEditを再起動すると、利用が可能になっています。
プレビューで「PHP Markdown Extra」を選択して、PHP Markdown Extra文法を試してみてください。
文法フィルタのルール
テキストファイルを引数にすると、HTMLを出力するプログラムであればいかなる文法フィルタでも変更無しで追加することが可能です。
文法フィルタが一つのプログラムファイルで構成されている場合は非常に簡単ですが、もし複数のファイルが必要な場合は注意が必要です。
複数のファイルが必要な場合は、最初に起動してほしいファイルの名前をフォルダ名からバージョン番号を除いた名前にする必要があります。
実際にそうしたファイルを作成してみると簡単です。
オリジナルの文法フィルタ作成
自分オリジナルの文法フィルタを作成してみます。
PHP Markdown ExtraとPHP SmartyPants Typographerを組合せてみます。
「PHP Markdown Extra + PHP SmartyPants Typographer_1.0」というフォルダを作成します。
PHP Markdown ExtraとPHP SmartyPants Typographerを解凍して中に入っているPHPファイルをフォルダにコピーもしくは移動します。
「PHP Markdown Extra + PHP SmartyPants Typographer.php」というファイルを作成し以下の内容にします。
#!/usr/bin/env php
<?php
require_once 'markdown.php';
require_once 'smartypants.php';
$text = file_get_contents('php://stdin', 'r');
$text = Markdown($text);
$text = SmartyPants($text);
echo $text;
?>
MarsEditを再起動し、Preview Text Filter で「PHP Markdown Extra + PHP SmartyPants Typographer」を選択すればプレビューが可能です。
その他の文法
他の文法も簡単に追加できるので追加手順はまたの機会にメモしてみます。
2011年10月09日追記:
以下でMarsEditに追加できる形式にした文法ファイルを公開しています。
sakito / MarsEditPlugIn / source — Bitbucket
必要な文法がある場合は、自己責任でご利用ください。
Mac OS X Lion などを企業で大量に購入する必要があり場合、Appleソフトウェアボリュームラインセンスが利用できる。
ボリュームライセンスの詳細は以下から見ることができる。
アップル - Mac - Appleソフトウェアボリュームライセンス
20ライセンス以上でないと購入できないという制限はあるが、纏め買いできるので、企業での大量アップデートなどに利用できる。
Apple Online Sotre を利用して購入することができるので結構手軽だと思われる。
これはそれなりの期間開発している人にしか発生しない現象。
debug.keystore の有効期限切れが原因。
Mac 環境では $HOME/.android 以下に debug.keystore が存在するので、再生成するか、削除すれば良い。
いろんな方法があるが携帯があるならConfirm Your Phoneの画面にいって携帯メールにメールを飛して認証するのが簡単。
インストール
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に対応したバイナリはリリースされてないが、ソースを直接取得コンパイルすれば動作する。
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 専用ブラウザとして利用しても大変便利です。
iPhoneから利用する
iPhoneのSafariでログインしても利用できますが、専用アプリを利用した方が便利です。利用するアプリはGoTasksです。
Androidアプリはまだ捜していませんが、捜せばありそうです。
Google Tasks以外のタスク管理サービスに関して
タスク管理なんて必要ないと思っていても、やってみると重要性に気づいたりします。
この分野ではRemember The MilkやToodledoが有名です。
ユーザが多く、かつ連携アプリケーションも多いのでこちらの方が便利な場合もあります。
始めるだけなら全て無料ですので、アカウントを作成して始めてみてはどうでしょうか。
きっと、新しいことを発見できると思いますよ。
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 での開発もためす必要があります。
機能がかなりあるので、計画的に調査していこうと思います。
- http://www.wowzamedia.com/store.html からWowzaMediaServer-2.2.3.dmgをダウンロードしてインストール
- Wowza Server Developer editon のライセンスを取得
ライセンス取得は登録が必要です。数分で登録したメールアドレスにライセンス番号が送付されてきます。このライセンスでは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/ をクライアントにして動作させてみます。
- http://flowplayer.org/download/index.html から 「GPL license (Free)」の flowplayer-3.2.5.zip をダウンロード
- http://flowplayer.org/plugins/streaming/rtmp.html から flowplayer.rtmp-3.2.3.zip をダウンロード
- 「flowplayer-3.2.5.swf」、「flowplayer.controls-3.2.3.swf」、「flowplayer.rtmp-3.2.3.swf」、「flowplayer-3.2.4.min.js」、「style.css」をどこか一箇所に集めておきます
とりあえず以下みたいな 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>
参考サイト
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の設定がされていないとコンパイルされないかもしれない。
「アカウントを編集」に行き、以下のように設定する。
| Title | 任意 |
| Access Point | http://d.hatena.ne.jp/username/atom/ |
| System | Atom 1.0 |
| Username | ログインする時のユーザ名 |
| Password | ログインする時のパスワード |
ツールバーの「ecto」→「Settings」→「Weblog」に行き、はてなダイアリの設定を選択。「Publishing」の所にある「Encode HTML entities」のチェックをはずしておきます。
これで問題ないはずです。