sakito

http://www.sakito.com/

Posts

May 24, 05:50 PM
今年の夏は熱い夏になりそうだにゃ…
May 24, 05:50 PM
おかしな平等主義はよろしくない
May 24, 05:41 PM
微妙に面倒
May 24, 04:55 PM
人間より自動生成か
May 24, 04:34 PM
雨降るのかな
May 24, 04:33 PM
おはようございます
May 24, 08:53 AM
環境によって微妙に異なるからにゃー
May 23, 04:41 PM
目がつかれているのか
May 23, 04:29 PM
おはようございますです
May 23, 08:53 AM
また胃の調子が良くないにゃ
May 23, 08:51 AM
銀兵衛のデザインがいまいちな気がする
May 23, 08:38 AM
b-casカード不正改造問題の本質はカードの交換を不可能にしたこと - アンカテ - http://d.hatena.ne.jp/essa...
May 23, 08:19 AM
頭痛というか腰が痛い
May 22, 04:37 PM
あまりよくないのかな
May 22, 04:31 PM
速いのかな
May 22, 04:27 PM
おはようございますです
May 22, 09:03 AM
頭痛かな
May 21, 04:40 PM
ネットワークの調子今一だった
May 21, 04:39 PM
おはようございますです。
May 21, 08:52 AM
明日が雨か
May 20, 05:45 PM
ヤンデレ風表現は結構好きなのかもしれない
May 20, 05:42 PM
防弾飛び箱かの表現が必要
May 20, 04:51 PM
喉が痛んだままだなー
May 20, 04:27 PM
おはようございますです
May 20, 09:09 AM
女性誌の特集が「夏までに痩せる!」から「細く見えるコーデ」に変わった瞬間、夏がやってくる。 - http://sakito.tumblr.com/post...
May 20, 09:02 AM
たけしの話だと、軍団の一人がヤクザに拉致されてたけしが単独で組に乗り込んで 「一席やって面白かったら返してくれ」と言って漫談やったら組長が大笑いして無事取り返した話とか、 ラッシャー木村だったかがたけしに「引っ越し祝いに何が欲しい?」って言われて「洗濯機が欲しいです」 って言ったら、後日宅配便が来てラッシャーがワクワクして包みを開けたら金だらいと洗濯板で「こりゃ一本とられた」 と思って裏を返したら大金の入った袋があって、「コレでいい洗濯機買え」っていうメモが入ってたっていう話が好き。 - http://sakito.tumblr.com/post...
May 20, 08:57 AM
sirousagimoon: 「アッメーバッ!!」/「おたけやん」のイラスト [pixiv] - http://sakito.tumblr.com/post...
May 20, 09:05 AM
ヒーローショーの仕事をした時に「ちびっ子に否定語は使わない」と教わった。立たないで、じゃなくて「座って見てね」。走らないで、じゃなくて「ゆっくり歩いてね」。ネガティブな事を言わないのはもちろんだけど、否定だけだとじゃあどうすればいいかご伝わらないんだな。毎日の事だと、難しいけど。 - http://sakito.tumblr.com/post...
May 20, 09:10 AM
新たな知識や技能を教わる機会が貴重だったのは、既に遠い昔の話だろう。 今なら参考書が簡単に手に入るし、安価なスクールも充実している。学びたい人間はお金を払ってでもとっくに学んでいる。 特に自主的に学んでいない人間にとって、教わることより教えることの方が気持ちいい。語りたいのだ。   キャバクラは、お金を払えば、つまらない話を好意的に聞いてもらえる場だ。 自慢や説教、そういったものを聞いてキャバ嬢は「すご~い」「○○さんと居ると楽しい♪」と感謝の反応をする。 こんなもの、金をもらえなければ無理だ。 同じことを部下は上司にされるものだが、これも上司が自分の出世・将来を握っているから耐えているだけだ。 精神科のカウンセリングでもそうだろう。患者の愚痴、症状の訴えといった暗く行き詰った話を、延々と聞き続けなくてはならない。 金をもらえないのに積極的に責任感を持ってやれる人間がどこに居るだろうか。   講演会に呼ばれるような貴重な人間でない「ただの人」同士であるなら、話を”聞かせた側”は、話を”聞いてあげた”側に感謝するべきだ。 ただの人同士の会話は、聞かせた側が気持ちいい構造になっている。 これを「教えてやった」と思い、感謝をせびる人間は確実に嫌われる。キャバクラでやれ。
新たな知識や技能を教わる機会が貴重だったのは、既に遠い昔の話だろう。 今なら参考書が簡単に手に入るし、安価なスクールも充実している。学びたい人間はお金を払ってでもとっくに学んでいる。 特に自主的に学んでいない人間にとって、教わることより教えることの方が気持ちいい。語りたいのだ。 キャバクラは、お金を払えば、つまらない話を好意的に聞いてもらえる場だ。 自慢や説教、そういったものを聞いてキャバ嬢は「すご~い」「○○さんと居ると楽しい♪」と感謝の反応をする。 こんなもの、金をもらえなければ無理だ。 同じことを部下は上司にされるものだが、これも上司が自分の出世・将来を握っているから耐えているだけだ。... - http://sakito.tumblr.com/post...
May 20, 09:08 AM
76:ナレーター(アラビア):2010/07/26(月) 09:20:14.24 ID:dCT6rJbg ググッたけどスペインも「日本と同じ」失敗例として扱われてるな。 非正規が1/3で女は正社員総合職は無理で良くて一般事務。 低収入でも地域の助け合いがあるから孤立して一家心中、自殺の日本みたいにはならないけど。 日本でもみんな生まれた土地で死ぬまで離れなかったらどれだけ貧乏でも助け合いで生きていく事は出来るのだろうけど。 どのサイトでもスペインは「日本と同じく」って枕詞付きの失敗例で語られるのが面白かった - http://sakito.tumblr.com/post...

Posts

April 01, 06:50 AM

過去のコミットログを修正したい場合は 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 を利用するといろいろと過去の修正はできます。
March 29, 08:39 AM

Python の文字コード周りは基本に忠実で、かつ高機能です。入出力の文字コードがわかっているなら、iconv とか nkf よりも使いやすい場合も結構あります。
基本は、入力時に decode して、出力時に encode します。
decode すると Python の Unicode 型になり、この型はかなり便利。
とりあえず decode の簡単なサンプルを以下に書きましたので参考にしてみてください。


読み込みファイルは以下から取得してください。
sakito / python_sample_code / source — Bitbucket

March 11, 08:08 AM

Python で MongoDB を扱う場合は、「pymongo」を使えば良いですが、素のままだとそこそこ面倒なので、「MongoEngine」の簡易サンプルを書いてみました。

Python の MongoDB 用 ORM は他にも以下のような物があります。


一応、全部ためしてみましたが、MongoEngineはテストコードがテストとしても、サンプルとしてもかなりしっかりしており信頼できます。
あと GeoPoint とかその他複雑な機能にちゃんと対応しているのが MongoEngine ぐらいしかないみたい。
まあ結局選択の一番は個人的にかなり使いやすいと言うことですね。
ほんとうに MongoDB ちゃんと使っている人が作っている感じがします。
March 09, 08:29 PM

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 の方が良いような気がする。本当は選択できるのが良いのだけど、このあたりはポリシーの問題のような気がする。

February 10, 11:52 PM

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
KEN_ALL.kct が作成できている事を確認しといてください。

Web UIの作成

UIを作成します。テンプレートとか利用するともうすこし綺麗に作成できますが、とりあえず参考サイトの形式で一つのファイルになるようにしてみました。
例外の処理とか、セキュリティとかは考慮してないです。

実行

起動します。

python server.py
ブラウザで http://localhost:5000/ にアクセスすれば動作します。
January 08, 11:53 PM

Python のグラフライブラリmatplotlib はデフォルトだと日本語フォントではないため、日本語が正常に表示されません。
設定は簡単です。

まず現在読み込んでいる設定ファイルの位置を確認します。

import matplotlib
matplotlib.matplotlib_fname()
設定ファイルのパスが表示されます。この設定ファイルを「~/.matplotlib」以下にコピーします。
cp /path/to/matplotlib/mpl-data/matplotlibrc ~/.matplotlib
中に以下のような行を追加します。この例ではフォントは Osaka にしていますが、「~/.matplotlib/fontList.cache」というファイルの中に利用できるフォント名が書き出されているので、好きなフォントを設定してください。
font.serif : Osaka
font.sans-serif : Osaka
ipython などで動作確認を取ってみます。
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軸のラベル')
以上
January 03, 07:57 AM

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)
これで http://localhost:4242/my/ にアクセスすると動作する。
終了するには以下で。
;; 終了
(hunchentoot-sample::stop)
環境によっては上手くコマンドうてないかもしれないけど、その場合は強制終了してください。

これだけだとおもしろくないのでソースもはっておきます。

December 25, 06:25 AM

とりあえずいろいろ入れておく。

# 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])
December 23, 11:41 PM

マニュアルは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)

環境によって文字化けするかも。

December 21, 03:48 PM

Clozure CL が App Store に公開された。

Clozure CL 1.7(無料)
カテゴリ: 開発ツール
販売元: Clozure Associates - Clozure Associates, LLC(サイズ: 28.3 MB)
全てのバージョンの評価: (1件の評価)

これでアプリケーションの管理とか、バージョンアップとかが簡単になるし、Mac で Common Lisp するならやはり ccl が一番早道な気がしている。

December 20, 08:24 AM

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

デフォルトのプラウザで起動する。ブラウザベースの環境としてはかなり強力。
用途は色々あるけど、まずは画像とかも出るので、ターミナルで画像が表示できないとかの環境なら、利用すると良いんぢゃないかな。

December 04, 06:54 AM

cclは標準状態では補完は動作しません。補完するのは Lineditrlwrap を利用します。
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 を有効にした物を設定してしまうと変になると思います。

December 03, 10:52 PM

利用する実装

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等を参照するとわかるので、上から入れて、ためしてみたり、ソース読んだりすると勉強になるかもしれない。
ライブラリに関してはいずれ書きたい。

November 26, 11:50 PM

Zsh プロンプトに色を付ける場合、ネットを探すと結構古い設定ばかりが検索にひっかかる場合があるようなので、Zsh 4.1.12 に合せた設定方法をメモしておく。
Zsh の該当の man は zshmisc 等になる。

記号で使えるのは以下とか。

記号説明
%Bボールド(%bで終了)
%E終了でのクリア
%Uアンダーライン(%uで終了)
%S強調(%sで終了)
%F文字の色(%fで終了)
%K文字背景の色(%kで終了)
例えば、%B%bで囲んだ間は、ボールドになる。

色は基本だけなら、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

マニュアルは量が多すぎて該当箇所をみつけるのが結構大変な気もする。
November 06, 07:54 AM

現象

コンパイル中に「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

October 08, 11:58 PM

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 ExtraPHP SmartyPants Typographerを組合せてみます。
「PHP Markdown Extra + PHP SmartyPants Typographer_1.0」というフォルダを作成します。
PHP Markdown ExtraPHP 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
必要な文法がある場合は、自己責任でご利用ください。

August 03, 08:22 AM

Mac OS X Lion などを企業で大量に購入する必要があり場合、Appleソフトウェアボリュームラインセンスが利用できる。
ボリュームライセンスの詳細は以下から見ることができる。
アップル - Mac - Appleソフトウェアボリュームライセンス
20ライセンス以上でないと購入できないという制限はあるが、纏め買いできるので、企業での大量アップデートなどに利用できる。
Apple Online Sotre を利用して購入することができるので結構手軽だと思われる。

June 26, 07:29 AM

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

May 17, 09:41 AM

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

May 13, 09:15 PM

インストール

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に対応したバイナリはリリースされてないが、ソースを直接取得コンパイルすれば動作する。

February 11, 01:56 AM

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です。

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

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

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

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

February 06, 06:58 AM

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 での開発もためす必要があります。
機能がかなりあるので、計画的に調査していこうと思います。
January 29, 11:04 PM

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>

参考サイト

January 29, 08:43 PM

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の設定がされていないとコンパイルされないかもしれない。

January 15, 07:22 AM

「アカウントを編集」に行き、以下のように設定する。

Title任意
Access Pointhttp://d.hatena.ne.jp/username/atom/
SystemAtom 1.0
Usernameログインする時のユーザ名
Passwordログインする時のパスワード
文字化けの対策として以下を設定する必要がある。
ツールバーの「ecto」→「Settings」→「Weblog」に行き、はてなダイアリの設定を選択。「Publishing」の所にある「Encode HTML entities」のチェックをはずしておきます。
これで問題ないはずです。
abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz