«前の日記(2009.10.10 / Saturday) 最新 次の日記(2009.10.14 / Wednesday)» 編集

Hena Hena Nikki

2003|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|10|11|12|
2012|01|02|03|04|05|06|07|08|10|12|
2013|01|02|04|06|

2009.10.12 / Monday [長年日記]

* [computer/update] MeCab ver.0.98

高速な形態素解析エンジン。

* [computer] MeCab 0.98 を Mac OS X 10.5 にインストールする

辞書は別途インストールすること。

$ wget -c 'http://downloads.sourceforge.net/project/mecab/mecab/0.98/mecab-0.98.tar.gz?use_mirror=jaist'
$ gzip -cd mecab-0.98.tar.gz | tar xvf -
$ cd mecab-0.98/
$ sed -i -r 's|(ac_cv_lib_iconv_iconv_open=)no|\1yes|g' configure
$ ./configure --with-charset=utf8
$ make && make check
$ sudo make install

GNU sed を使っている処理は Vim などで置き換えても良い。

* [computer] Google の技術者が LaTeX+Prosper 使ってた!

Back-Off Language Model Compression の発表資料、 意外なことに Prosper で作られている。 今更と思う反面、「やっぱり数式入れるなら LaTeX だよなぁ」とも思ったり。 … LaTeX 使うにしても、自分なら Beamer を選択しそうだ。

* [computer] Jasper 1.900.1 を Mac OS X 10.5 にインストールする

事前に X11, libjpeg を入れておくと良い。

$ wget -c http://www.ece.uvic.ca/~mdadams/jasper/software/jasper-1.900.1.zip
$ unzip jasper-1.900.1.zip
$ cd jasper-1.900.1/
$ ./configure --enable-shared --with-x
$ make
$ sudo make install

CFLAGS などはお好みで。

* [computer] jbig2dec 0.10 を Mac OS X 10.5 にインストールする

事前に gettext, zlib, libpng を入れておくと良い。

$ wget -c http://ghostscript.com/~giles/jbig2/jbig2dec/jbig2dec-0.10.tar.bz2
$ bzip2 -cd jbig2dec-0.10.tar.bz2 | tar xvf -
$ cd jbig2dec-0.10/
$ ./configure
$ make && make check
$ sudo make install

CFLAGS などはお好みで。

* [computer][bookmark] CS 224S / LINGUIST 281, Speech Recognition and Synthesis, Winter 2009 (Stanford Univ.)

2009 年初めにスタンフォード大学で開講された音声認識・合成の講義の資料。 かなりのボリューム。

* [computer] Re: malloc() と free()

free_LIST() のループ版実装を書いてみよう。

void
free_LIST(LIST* list) {
    LIST* tmp;
    while (list) {
        tmp = list->next;
        free(list->name);
        free(list);
        list = tmp;
    }
}
void
free_LIST(LIST* list) {
    LIST* tmp;
    for (; list; list = tmp) {
        tmp = list->next;
        free(list->name);
        free(list);
    }
}

同じ内容だけど、僕は前者しか書かない。 for の後の () 内に空の部分がある時、 while に書き直すことにしているからだ。 ただし例外があって、C の場合に限るが、無限ループは for (;;) で表している。 C++ の場合は while (true) としているので、for (;;) は例外的な存在だ。


  • この日記には本日 名の方が訪問してくださっているようです。 また、昨日は 名の方が訪問してくださったようです。
  • この日記の更新情報の取得には antenna.lirs を利用するのがおすすめです。