PlantUML
基本的にはできる限りコードを直接読み書き派なのだが、どうしてもコードと頭だけで整理しきれないとき、ほかの人のコードを読んでて理解しきれないとき、人に口頭で説明するときの資料に、などでUMLを援用することがある。しかしロジックの記述自体はやっぱりテキストでしたい。という観点でPlantUMLは便利。(ウェブ上でもここで直接試せます。)
ということでUbuntu12.04上でセットアップ。
ここから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このファイルを/var/www/hello.phpに保存。(root権限が必要。)
echo"hello, world";
?>
ブラウザで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