Windows 上で動く高機能なタブ型 web browser。 約 2 ヶ月ぶりの version up。
Windows 上で動く高機能な DVD リッパー。 そのうち試す予定。
事前に gettext, iconv あたりを入れておくと良い。
$ wget -c http://ftp.gnu.org/gnu/libidn/libidn-1.6.tar.gz $ zcat libidn-1.6.tar.gz | tar xvf - $ cd libidn-1.6/ $ ./configure $ make && make check $ sudo make install
CFLAGS
はお好みで。
事前に zlib あたりを入れておくと良い。
$ zcat libssh2-0.18.tar.gz | tar xvf - $ cd libssh2-0.18/ $ ./configure $ make && make check $ sudo make install
CFLAGS
はお好みで。
事前に gettext, iconv, libidn, zlib あたりを入れておくと良い。
$ wget -c http://curl.haxx.se/download/curl-7.18.1.tar.bz2 $ bzcat curl-7.18.1.tar.bz2 | tar xvf - $ cd curl-7.18.1/ $ ./configure --enable-ldaps $ make && make check $ sudo make install
CFLAGS
はお好みで。
libssh2 が上手く動いてくれないみたいだ。 ;-(
Apple 社が公開している multimedia のコンポーネント群。 約 2 ヶ月ぶりの version up。
Apple 社が公開しているジュークボックス・ツール。 約 1 ヶ月半ぶりの version up。
非常に多くのフォーマットに対応したマルチ・プラットホームのメディア・プレーヤ。 約 1 ヶ月半ぶりの version up。
定番の Intrusion Detection System。
小さく軽快な C コンパイラ。 約 2 年ぶりの version up。
レンダリングに Gecko エンジンを利用した web browser。 約 1 ヶ月ぶりの version up。
CFLAGS
はお好みで。
$ wget -c http://ftp.gnu.org/gnu/m4/m4-1.4.11.tar.lzma $ lzma -cd m4-1.4.11.tar.lzma | tar xvf - $ cd m4-1.4.11/ $ ./configure --enable-changeword $ make && make check $ sudo make install $ sudo ln -fs /usr/local/bin/m4 /usr/local/bin/gm4
UNIX 系 OS や Windows 上で動くウィンドウ・アプリケーション統合開発環境。 約 2 ヶ月ぶりの version up。
QuickTime 形式のメディア・ファイルを再生するライブラリなどの詰合せ for Windows。 約 2 ヶ月ぶりの version up。
CFLAGS
はお好みで。
$ wget -c http://ftp.gnu.org/gnu/libtool/libtool-2.2.2.tar.lzma $ lzma -cd libtool-2.2.2.tar.lzma | tar xvf - $ cd libtool-2.2.2/ $ ./configure --enable-ltdl-install $ make && make check $ sudo make install
UNIX 系 OS 上で動く Windows API の実装。 約 2 週間ぶりの version up。
QuickTime 形式のメディア・ファイルを再生するライブラリなどの詰合せ for Windows。
複数のプラットフォーム上で動く BitTorrent クライアント。
Windows 上で動くシンプルな CSV エディタ。 約 2 ヶ月ぶりの version up。
Mac OS X 上で動く FTP, SFTP クライアント。 約 2 ヶ月半ぶりの version up。
Geek なページの記事。 後で読む。
仙石さんの日記の記事。 こちらも後で読む。
Windows では定番の message user agent。 約 1 ヶ月ぶりの version up。
6/4 発売予定の新作。
5/9 発売予定の新作。
補完機能が非常に強力なシェル。 開発版は約 2 ヶ月ぶりの version up。
事前に新しめの GNU m4 をインストールしておくと吉。
$ wget -c http://ftp.gnu.org/gnu/autoconf/autoconf-2.62.tar.lzma $ lzma -cd autoconf-2.62.tar.lzma | tar xvf - $ cd autoconf-2.62/ $ ./configure $ make && make check $ sudo make install
このバージョンは、/usr/bin/m4 ではなく /usr/local/bin/m4 を、 ちゃんと見にいってくれるね。
EPWING viewer for MacOS X。 人柱版。
梅フォントと M+ font をマージしたフォント。
非常に高機能な画像処理ツール。 開発版。
6/25 発売予定の新作。
6/11 発売予定の新作 (ミニアルバム)。
開発者向けに font-lock のキーワードを追加する elisp。 約 8 ヶ月ぶりの version up。
動作実績の非常に豊富な C 向け XML パーサ。 約 2 ヶ月半ぶりの version up。
Windows 上で動く高機能 IRC client。
Windows な application を emacsen ライクな使い勝手にする tool。 約 4 ヶ月ぶりの version up。
事前に gettext, iconv, GLib を入れておくと良い。
$ wget -c http://pkgconfig.freedesktop.org/releases/pkg-config-0.23.tar.gz $ zcat pkg-config-0.23.tar.gz | tar xvf - $ cd pkg-config-0.23/ $ ./configure --with-installed-glib $ make && make check $ sudo make install
CFLAGS
はお好みで。
事前に readline, ncurses, libz, libgb, X11, libjpeg, libfontconfig, FreeType, libpng, libiconv あたりをインストールしておくと良い。
$ wget -c http://jaist.dl.sourceforge.net/sourceforge/gnuplot/gnuplot-4.2.3.tar.gz $ zcat gnuplot-4.2.3.tar.gz | tar xvf - $ cd gnuplot-4.2.3/ $ ./configure --with-x --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib $ make && make check $ sudo make install
CFLAGS
はお好みで。
事前に libiconv, gettext をインストールしておくと良い。
$ wget -c http://ftp.gnome.org/pub/gnome/sources/glib/2.14/glib-2.14.6.tar.bz2 $ bzcat glib-2.14.6.tar.bz2 | tar xvf - $ cd glib-2.14.6/ $ ./configure --enable-static $ make && make check $ sudo make install
CFLAGS
はお好みで。
TCP, UDP リピータ。
東風フォントを土台に開発されている日本語フォント・ファミリー。
事前に gettext, iconv をインストールしておくと良い。
$ wget -c http://ftp.gnu.org/gnu/tar/tar-1.20.tar.bz2 $ bzcat tar-1.20.tar.bz2 | tar xvf - $ cd tar-1.20/ $ ./configure $ make && make check $ sudo make install
CFLAGS
はお好みで。
Mac OS X 10.5 では make でエラーが発生する。
CFLAGS
はお好みで。
$ wget -c http://ring.nict.go.jp/archives/GNU/emacs/emacs-22.2.tar.gz $ wget -c http://iij.dl.sourceforge.jp/macemacsjp/30446/inline_patch-1.0.4.tar.gz $ zcat emacs-22.2.tar.gz | tar xvf - $ cd emacs-22.2/ $ zcat ../inline_patch-1.0.4.tar.gz | tar xvf - $ patch -p0 < inline_patch-1.0.4/emacs-inline.patch $ ./configure --with-carbon --without-x $ make bootstrap $ sudo make install $ sudo rm -rf /Applications/Emacs.app $ sudo cp -r mac/Emacs.app /Applications/
make bootstrap じゃなくて良いはずだけど、気分的に。
GNU な spell checher。 約 16 ヶ月ぶりの version up。
NASM を作り直した、x86, x64 対応のアセンブラ。
オレンジニュースから。 後で読む。
これ、ちょっと低い気がするんだけど…。 「都内の企業に勤務」と条件をつけたら、かなり変わるのかもしれない。
事前に gettext, iconv, ncurses をインストールしておくと良い。
$ wget -c http://ftp.gnu.org/gnu/aspell/aspell-0.60.6.tar.gz $ zcat aspell-0.60.6.tar.gz | tar xvf - $ cd aspell-0.60.6/ $ ./configure --enable-static $ make && make check $ sudo make install
CFLAGS
はお好みで。
Mac OS X, Windows 2000/XP, Linux 上で動く 3D 地図アプリケーション。 人柱版。
事前に readline, ncurses, libz, libgb, X11, libjpeg, libfontconfig, FreeType, libpng, libiconv あたりをインストールしておくと良い。
$ wget -c http://jaist.dl.sourceforge.net/sourceforge/gnuplot/gnuplot-4.2.3.tar.gz $ zcat gnuplot-4.2.3.tar.gz | tar xvf - $ cd gnuplot-4.2.3/ $ ./configure --with-x --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib $ make && make check $ sudo make install
CFLAGS
はお好みで。
Apple 社が公開している web browser。 約 1 ヶ月ぶりの version up。
定番の multi platform な web browser。 約 2 週間ぶりの version up。
Java の開発・実行環境。
軽快・軽量な SQL データベース・エンジン。 約 1 ヶ月ぶりの version up。
Cocoa な Gecko 系 web browser。 約 2 ヶ月ぶりの version up。
重みつき有限状態トランスデューサの操作ツール。 人柱版。
UNIX 系 OS 上で動く Windows API の実装。 約 2 週間ぶりの version up。
美しいペン習字風 font。
「IT Text 音声認識システム」の付録 CD-ROM に入っている chawan という プログラムの代替をちょこちょこと作成中。
#! /usr/bin/env ruby
# 数字から位取りした読み情報を生成するクラス class CreateJapaneseNumbers JAPANESE_LOWER_ZERO = ['0', 'レイ', '{レイ/ゼロ}'] JAPANESE_LOWER_NUMBERS = [# 各数字の「表記」「読み」「基本発音」を提供。 # 一の位 [[], ['1', 'イチ', 'イチ'], ['2', 'ニ', 'ニ'], ['3', 'サン', 'サン'], ['4', 'ヨン', 'ヨン'], ['5', 'ゴ', 'ゴ'], ['6', 'ロク', 'ロク'], ['7', 'ナナ', '{ナナ/シチ}'], ['8', 'ハチ', 'ハチ'], ['9', 'キュウ', 'キュー']], # 十の位 [[], ['十', 'ジュウ', 'ジュー'], ['2十', 'ニジュウ', 'ニジュー'], ['3十', 'サンジュウ', 'サンジュー'], ['4十', 'ヨンジュウ', 'ヨンジュー'], ['5十', 'ゴジュウ', 'ゴジュー'], ['6十', 'ロクジュウ', 'ロクジュー'], ['7十', 'ナナジュウ', 'ナナジュー'], ['8十', 'ハチジュウ', 'ハチジュー'], ['9十', 'キュウジュウ', 'キュージュー']], # 百の位 [[], ['百', 'ヒャク', 'ヒャク'], ['2百', 'ニヒャク', 'ニヒャク'], ['3百', 'サンビャク', 'サンビャク'], ['4百', 'ヨンヒャク', 'ヨンヒャク'], ['5百', 'ゴヒャク', 'ゴヒャク'], ['6百', 'ロッピャク', 'ロッピャク'], ['7百', 'ナナヒャク', 'ナナヒャク'], ['8百', 'ハッピャク', 'ハッピャク'], ['9百', 'キュウヒャク', 'キューヒャク']], # 千の位 [[], ['千', 'セン', '{セン/イッセン}'], ['2千', 'ニセン', 'ニセン'], ['3千', 'サンゼン', 'サンゼン'], ['4千', 'ヨンセン', 'ヨンセン'], ['5千', 'ゴセン', 'ゴセン'], ['6千', 'ロクセン', 'ロクセン'], ['7千', 'ナナセン', 'ナナセン'], ['8千', 'ハッセン', 'ハッセン'], ['9千', 'キュウセン', 'キューセン']] ] JAPANESE_UPPER_NUMBERS = [# 各位の「表記」「読み」「基本発音」を提供。 nil, ['万', 'マン', 'マン'], ['億', 'オク', 'オク'], ['兆', 'チョウ', 'チョウ'], ['京', 'ケイ', 'ケイ'], ['垓', 'ガイ', 'ガイ'] ] JAPANESE_LOWER_REPLACE_RULE = [# 各数字の「発音変化」を提供。 # 一〜千 [[/\Aヨン\z/, '{ヨン/シ}']], # 万 [], # 億 [], # 兆 [[/\Aイチ\z/, 'イッ'], [/\Aハチ\z/, 'ハッ'], [/ジュー\z/, '{ジュッ/ジッ}'], [/(((ヒ|ビ|ピ)ャ)ク)\z/, '{\1/\2ッ}']], # 京 [[/\Aイチ\z/, '{イチ/イッ}'], [/\Aハチ\z/, '{ハチ/ハッ}'], [/ジュー\z/, '{ジュッ/ジッ}'], [/(((ヒ|ビ|ピ)ャ)ク)\z/, '{\1/\2ッ}']], # 垓 [[/ジュー\z/, '{ジュッ/ジッ}'], [/(((ヒ|ビ|ピ)ャ)ク)\z/, '{\1/\2ッ}']] ] def initialize @output = Array::new end def create_jnumbers(number, values=nil) @output.clear number = number.to_s.split(//) place = number.length inserted_lower_number = false number.each { |n| place = place - 1 lower_index = place % 4 lower_number = JAPANESE_LOWER_NUMBERS[lower_index][n.to_i] unless lower_number.empty? then @output << lower_number inserted_lower_number = true end if lower_index == 0 and inserted_lower_number then inserted_lower_number = false lower_number = @output.pop if lower_number then lower_number = lower_number.dup lower_number[2] = lower_number[2].dup JAPANESE_LOWER_REPLACE_RULE[ place / 4 ].each { |rule| break if lower_number[2].sub!(rule[0], rule[1]) } @output << lower_number end if 0 < place then @output << JAPANESE_UPPER_NUMBERS[ place / 4 ] end end } if @output.empty? then @output << JAPANESE_LOWER_ZERO end if values then return values.replace(@output) else return @output.dup end end end
# 主処理 (動作確認サンプル) values = Array::new cjn = CreateJapaneseNumbers::new ARGV.each { |number| if /\A[0-9]+\z/ =~ number then puts "#{number}:" number = number.to_i cjn.create_jnumbers(number, values) values.each { |n| puts "\t#{n[0]}\t#{n[1]}\t#{n[2]}" } else warn "WARNING: \"#{number}\" is invalid!" end }
12345678901234567890
を引数に与えると、以下の出力を得る。
千 セン {セン/イッセン} 2百 ニヒャク ニヒャク 3十 サンジュウ サンジュー 4 ヨン ヨン 京 ケイ ケイ 5千 ゴセン ゴセン 6百 ロッピャク ロッピャク 7十 ナナジュウ ナナジュー 8 ハチ ハッ 兆 チョウ チョウ 9千 キュウセン キューセン 十 ジュウ ジュー 2 ニ ニ 億 オク オク 3千 サンゼン サンゼン 4百 ヨンヒャク ヨンヒャク 5十 ゴジュウ ゴジュー 6 ロク ロク 万 マン マン 7千 ナナセン ナナセン 8百 ハッピャク ハッピャク 9十 キュウジュウ キュージュー
連続して使うとボロが出るところを、とりあえず修正した。
事前に gettext, iconv を入れておくと吉。
$ wget -c http://ftp.gnu.org/gnu/coreutils/coreutils-6.11.tar.lzma $ lzma -cd coreutils-6.11.tar.lzma | tar xvf - $ cd coreutils-6.11/ $ ./configure --disable-assert $ make && make check $ sudo make install
CFLAGS
はお好みで。
事前に gettext, iconv をインストールしておくと良い。
$ wget -c http://ftp.gnu.org/gnu/texinfo/texinfo-4.12.tar.lzma $ lzma -cd texinfo-4.12.tar.lzma | tar xvf - $ cd texinfo-4.12/ $ ./configure $ make && make check $ sudo make install
CFLAGS
はお好みで。
M+ FONTS とさざなみフォントをミックスした後、更に改良した和文フォント。
これも位取りプログラムと同じく chawan の代替の一部。 以前、同じようなものを作ったときは、もっとゴチャゴチャしたものを書いた記憶が…。 テーブルの作りさえ考えつけば、どうにでもなるものなのかな?
#! /usr/bin/env ruby
NUMBER_TABLE = Hash[# 表記=>数値・演算・桁上がり '0', [0, '+', true], 'o', [0, '+', true], '零', [0, '+', true], '1', [1, '+', true], '1', [1, '+', true], '一', [1, '+', true], '壱', [1, '+', true], '2', [2, '+', true], '2', [2, '+', true], '二', [2, '+', true], '弐', [2, '+', true], '貳', [2, '+', true], '3', [3, '+', true], '3', [3, '+', true], '三', [3, '+', true], '参', [3, '+', true], '4', [4, '+', true], '4', [4, '+', true], '四', [4, '+', true], '5', [5, '+', true], '5', [5, '+', true], '五', [5, '+', true], '伍', [5, '+', true], '6', [6, '+', true], '6', [6, '+', true], '六', [6, '+', true], '7', [7, '+', true], '7', [7, '+', true], '七', [7, '+', true], '8', [8, '+', true], '8', [8, '+', true], '八', [8, '+', true], '9', [9, '+', true], '9', [9, '+', true], '九', [9, '+', true], '十', [10, '*', false], '百', [100, '*', false], '千', [1000, '*', false], '万', [1_0000, '**', false], '萬', [1_0000, '**', false], '億', [1_0000_0000, '**', false], '兆', [1_0000_0000_0000, '**', false], '京', [1_0000_0000_0000_0000, '**', false], '垓', [1_0000_0000_0000_0000_0000, '**', false]]
def get_number(numbers) number = [0, 0, 0] numbers.each { |n| value = NUMBER_TABLE[n] if value then if value[2] then number[0] = number[0] * 10 end case value[1] when '**' then number[2] = number[2] + (number[1] + number[0]) * value[0] number[1] = number[0] = 0 when '*' then if number[0] > 0 then number[0] = number[0] * value[0] else number[0] = value[0] end number[1] = number[1] + number[0] number[0] = 0 when '+' then number[0] = number[0] + value[0] end else return -1 end } return number[2] + number[1] + number[0] end
# 主処理 (動作確認サンプル) ARGV.each { |number| puts get_number(number.split(//)).to_s }
壱兆千五十6万3貳百14
を引数に与えると以下の出力を得る。
1105632141000010563214
まだ修正が必要そうだけど、とりあえず上げてみた。
NUMBER_TABLE
に億の情報を入れ忘れていることに、
4/23 になって気付いた。 ;-(
事前に gettext, iconv あたりを入れておくと良い。
$ wget -c http://ftp.gnu.org/gnu/libidn/libidn-1.8.tar.gz $ zcat libidn-1.8.tar.gz | tar xvf - $ cd libidn-1.8/ $ ./configure $ make && make check $ sudo make install
CFLAGS
はお好みで。
事前に Darts (僕の環境では 0.32), iconv を入れておくと良い。
$ wget -c http://jaist.dl.sourceforge.jp/chasen-legacy/24339/chasen-2.3.3.tar.gz $ zcat chasen-2.3.3.tar.gz | tar xvf - $ cd chasen-2.3.3/ $ vim configure +8548
ここで ac_cv_lib_iconv_iconv=no
を
ac_cv_lib_iconv_iconv=yes
に変更。
$ vim lib/dartsdic.cpp +71
ここで darts->setArray(cha_mmap_map(da->da_mmap));
を
darts->set_array(cha_mmap_map(da->da_mmap));
に変更。
$ vim lib/dartsdic.cpp +163
ここで char** keys = new char*[entries->size()];
を
const char** keys = new const char*[entries->size()];
に変更。
$ ./configure $ make && make check $ sudo make install
CFLAGS
はあまりいじらない方が良いかもしれない。
今回はあえて 2.3.3 と古い茶筌を入れたが、 辞書は新しい IPADIC 2.7.0 で問題ない (早く正式版の NAIST-Japanese-dic を使いたいところだが…)。
Mac で Mac OS X と Windows の dual boot を実現するためのツール。
Mac OS X 上で Linux や Windows を動作させる仮想化環境。 約 2 ヶ月半ぶりの version up。
美しい GUI を持つ多機能と軽快さを兼ね備えた message user agent。 人柱版。
東風フォントを土台に開発されている日本語フォント・ファミリー。
今晩 24:10〜24:54 に放送予定の特番。
重みつき有限状態トランスデューサの操作ツール。 人柱版。
Mac OS X の launchd 設定ファイル編集ツール。 約半年ぶりの version up。
Windows 上で動く高機能なタブ型 web browser。 約 3 週間ぶりの version up。
DLL 不要の万能 archiver for Windows。 約 5 ヶ月ぶりの version up。
C++ による SKK サーバの実装。
Filesystem in USErspace の Mac OS X における実装。
RealMedia 形式のメディア・ファイルを再生するライブラリなどの詰合せ for Windows。
ChaSen の出力の数詞列に適当な発音情報をふってから ChaWan に入力すれば、 音声認識の N-gram 言語モデルで使う分には問題ない出力を得られるようだ。
というわけで、それを実現する chashaku.rb という Ruby スクリプトを書いてみた。 既に自然言語処理方面で茶杓があるので、これは仮の名前だ。 もう少し機能を追加したら適当な名前をつけて公開しよう。
ちなみに僕が自宅で言語モデルを作るときは、 以下の様 (実際には chashaku.rb が入る) なシェル・スクリプトを使って形態素解析させている。
#! /usr/bin/env sh
nkf -e -Lu \ | chasen -C -F "%m\t%a0\t%M\t%h/%t/%f\n" \ | chawan -c \ | postprocess -c \ | iconv -f EUC-JP -t UTF-8 \ | sed -r 's|^([^\t]+)\t([^\t]*)\t[^\t]*\t([^\t]+)$|\1:\2:\3|' \ | sed -r 's|(\W[0-9]+)\/0\/0$|\1|' \ | tr '\n' '\t' \ | sed -r 's|(\t*EOS)+\t*|\n|g' \ | sed -r 's|^(.+)$|<s>\t\1\t</s>|'
これだと各形態素の表記は 「私:{ワタシ/ワタクシ}:14」や「行く:イク:47/9/1」の様になる。
必要に応じて Makefile の CFLAGS
を書き換えること。
$ wget -c http://www.bzip.org/1.0.5/bzip2-1.0.5.tar.gz $ zcat bzip2-1.0.5.tar.gz | tar xvf - $ cd bzip2-1.0.5/ $ wget -c http://quruli.ivory.ne.jp/download/bzip2-1.0.5.diff.gz $ zcat bzip2-1.0.5.diff.gz | patch -p1 $ make $ sudo make install
1.0.3 の時のパッチを書き直しただけだけど、とりあえず問題なく動いてるようだ。
やっと半分くらい読み終えた。 同じ作者の 夜は短し歩けよ乙女を 面白いと感じた人は読むべきだと思う。 学生時代を京都で過ごした人は特に楽しめるだろう。
Windows 上で動く高機能なタブ型 web browser。
大手町で開催中の NTT グループのイベント。 予約が必要だが、機会があれば行ってみたい。