PlantUML

基本的にはできる限りコードを直接読み書き派なのだが、どうしてもコードと頭だけで整理しきれないとき、ほかの人のコードを読んでて理解しきれないとき、人に口頭で説明するときの資料に、などでUMLを援用することがある。しかしロジックの記述自体はやっぱりテキストでしたい。という観点でPlantUMLは便利。(ウェブ上でもここで直接試せます。)
ということでUbuntu12.04上でセットアップ。

まず、JRE,Graphvizが必要なのでインストール。

$ sudo apt-get install default-jre graphviz

ここからplantuml.jarをダウンロード。
とりあえず、~/plantuml.jarに置く。

[hello.txt]

@startuml hello.png
state "hello, world" as hello
[*] --> hello
hello --> [*]
@enduml

早速テスト。

$ cd ~
$ java -jar plantuml.jar hello.txt

問題なく、hello.pngが生成された。

UbuntuでWineをつかってサクラエディタを試す

Ubuntu12.04でサクラエディタを使おうという試み。

まずWineをインストール。

> sudo apt-get install wine

これでWineはインストールできるのだが、GNOME Shellだとタスクバーのメニューに追加されるWineメニューがUnityだとない(見つけられない?)。
とりあえずはUnityでも実行できる方法で対応する。

ここから sinst2-0-5-0.exe をダウンロード。

ダウンロードしたファイルを右クリックして、メニューから["Wine Windows Program Loader"で開く]を選択してインストーラーを実行しインストール。

Nautilus(標準GUIファイルマネージャ)で
~/.wine/drive_c/Program Files/sakura/フォルダを開いてsakura.exeを右クリックし["Wine Windows Program Loader"で開く]で起動。(.wine/は隠しファイル扱いになるので~/で表示されない場合はCTRL+Hで表示させる。)

このままの状態ではアクセラレータキーがうまく動作しないので、サクラエディタをいったん終了しここを参考にシステムダイアログフォントを変更してからサクラエディタを再度起動。(これをやらないと以下のチェックボックスが表示できなかった。)

[設定]-[共通設定]メニューの「キー割り当て」タブで「ウインドウ毎にアクセラレータテーブルを作成する(Wine用)」にチェックを入れる。

これで入力ができるようになった。
けど、なんかレスポンスがよろしくない。というより日本語がインライン入力できない。なぜだ。
とりあえず、[設定]-[タイプ別設定]メニューの「スクリーン」タブで「起動時のIME」「ON/OFF状態」を「常にOFF」または「常にON」にすると日本語入力でインライン表示されるようになった。Wineのレジストリを変更して対処する方法やIMEを変更する方法などもあるらしいがとりあえずこれで試すことにする。

前もちょっとやったことあったけどこんなんだったかなぁ。ちょっと様子見だけどこれならGeanyのほうがいいかなぁ。

UbuntuでMeCabをビルド

今回はこれ以来放置しているMeCabをUbuntu12.04上でビルドしてみる。

とりあえずお約束。

$ sudo apt-get install build-essential

辞書をビルドするのにmecabを先にインストールする必要があるみたいなのでダウンロードして展開。(今回は~/mecab-0.994/)
ビルド・インストールする。

$ cd ~/mecab-0.994
$ ./configure
$ make
$ sudo make install

次に辞書をビルド・インストールする。ここからダウンロードして展開。(今回は~/mecab-ipadic-2.7.0-20070801/)

$ cd ~/mecab-ipadic-2.7.0-20070801
$ ./configure --with-charset=utf8
$ make

ここで私の環境ではエラーが出た。

/usr/local/libexec/mecab/mecab-dict-index: error while loading shared libraries: libmecab.so.2: cannot open shared object file: No such file or directory
/etc/ld.so.confに
/usr/local/lib
という行を追加して

$ sudo ldconfig

として再度make。今度はビルドに成功。インストールする。

$ sudo make install

早速テスト。

$ mecab

ハロー、ワールド
ハロー 名詞,一般,*,*,*,*,ハロー,ハロー,ハロー
、 記号,読点,*,*,*,*,、,、,、
ワールド 名詞,一般,*,*,*,*,ワールド,ワールド,ワールド
EOS
動作確認。

UbuntuでNHocrをビルド

今回はUbuntu12.04上でNHocrをビルドしてみる。

まずはnhocr-0.20.tar.gzをダウンロード。展開しておく。(今回は~/nhocr-0.20/に展開。)

お約束。

$ sudo apt-get install build-essential

ビルドに必要なライブラリをセットアップする。
以下はいろいろ嵌った挙句http://diary.overlasting.net/2010-07-01-3.htmlと同じ手順でビルドしました。(感謝)

こちらからO2-tools-2.00.tar.gzをダウンロードして展開。(今回は~/O2-tools-2.00/。)
ビルド・インストール。

$ cd ~
$ cd O2-tools-2.00/
$ ./configure --prefix /usr/local
$ make
$ sudo make install

次にこちらからfreetype-2.4.10.tar.gzをダウンロードしビルド・インストール。

$ cd ~
$ cd freetype-2.4.10/
$ ./configure --prefix /usr/local
$ make
$ sudo make install

ライブラリがそろったのでNHocrビルド。
まずは~/nhocr-0.20/libnhocr/nhrec.cppの523行目をコメントアウト

//	if ( cblist )  delete_cblist(cblist);

ビルド。

$ cd ~
$ cd nhocr-0.20/
$ ./configure CXXFLAGS="-I/usr/local/include/freetype2"
$ make

テスト。

$ cd test
$ ./run-test

動作した模様。

UbuntuでJuliusを試す

Ubuntu12.04で音声認識エンジンJuliusを試す。

まずはここからLinux版 Juliusディクテーション実行キット v4.1をダウンロードし展開。(今回は~/dictation-kit/)

早速テスト。
テスト用にwavファイルを入手。
今回はここから「天気予報」をダウンロードして使わせていただく。(そもそも合成音声だけど初音ミクみたい。)

INSTALL.txtを見ると

> julius -C fast.jconf

とすればいいみたいだがfast.jconfはマイク入力設定なので

-input mic
#-input mic
としてコメントアウトし、
 -input rawfile
-smpFreq 22050
と追加する。
さて実行。

> cd ~/dictation-kit
> bin/julius -C fast.jconf -charconv EUC-JP UTF-8

bin/julius: error while loading shared libraries: libesd.so.0: cannot open shared object file: No such file or directory
とでた。

[INSTALL.txt]

お使いの環境で上記の実行ファイルが動作しない場合は,下記の要領で
ソースからコンパイル・インストールできます.
ここにも
 キットに含まれる Julius は古くなっている可能性があります. 最新版はダウンロードのページでご確認下さい.
とあるのでダウンロードしてビルドすることにする。

これをダウンロードして展開。(今回は~/julius-4.2.2/)
例の呪文でビルド。

> cd ~/julius-4.2.2
> ./configure
> make

できた実行ファイルを上書きコピー

>> cp julius/julius ~/dictation-kit/bin

再度実行。

> cd ~/dictation-kit
> bin/julius -C fast.jconf -charconv EUC-JP UTF-8

今度はいろいろメッセージが出た後

enter filename->
と表示されるので"sample01.wav"と入力。

Stat: adin_file: input speechfile: sample01.wav
Warning: strip: sample 0-1957 has zero value, stripped
Warning: strip: sample 11437-13657 has zero value, stripped
Warning: strip: sample 63579-70198 has zero value, stripped
Warning: strip: sample 86668-88974 has zero value, stripped
Warning: strip: sample 122315-139919 is invalid, stripped
STAT: 109209 samples (4.95 sec.)
STAT: ### speech analysis (waveform -> MFCC)
pass1_best: 今日 は 朝 から 行く の は 上 と なっ て い ます が
pass1_best: 今日 は 朝 から 行く の は 上 と なっ て い ます が 夕方 に は 天気 が 回復 する でし
sentence1: 今日 は 朝 から 会い に 空 の 雨 と なっ て い ます が 、 夕方 に は 天気 が 回復 する 。
と表示された。うーんおしい(笑)。

UbuntuでPHP

PHPでhello, world。
環境はUbuntu12.04。

まずはPHPをインストール。

> sudo apt-get install php5

apacheも入ったようなのでブラウザでhttp://localhost/にアクセス。

It works!

This is the default web page for this server.

The web server software is running but no content has been added, yet.

と表示された。

[hello.php]

<?php
echo"hello, world";
?>
このファイルを/var/www/hello.phpに保存。(root権限が必要。)

ブラウザでhttp://localhost/hello.phpにアクセス。

hello, world
無事表示された。

SQLiteをビルド

あまりにやることないけどSQLiteをビルドしてみる。

ビルド環境は、Ubuntu12.04。

ここからsqlite-autoconf-3071300.tar.gzをダウンロード、展開する(今回は~/sqlite)。

> cd ~/sqlite
> ./configure
> make

おしまい。。。

では、hello, world。

[hello.sql]

create table hello(name char(16));
insert into hello values("hello, world");
select * from hello;
実行。

> ./sqlite3 < hello.sql

ちゃんと

hello, world
と表示された。

ちなみにUbuntu上でaptでインストールするには

> sudo apt-get install sqlite3