Release Programs
以下,私の作ったプログラムを公開します.ほとんど全て,UNIX 上のソフト
です.これらのプログラムはフリーソフトであり,全く無保証です.
再配布・利用は自由に行なっても構いませんが、いかなるトラブルがおきようと、
私は一切の責任を取りません。
バグ,意見,質問,などございましたら,私(iz@onicos.co.jp) 宛までお願いします.また、こんなの作って欲しいっていう
要望があれば、相談にのります。暇とやる気さえ起これば作りましょう。
最近更新したプログラム:
- zlib.js (随時更新中...)
- httpget (Version 5.2.2, 2000 10/1)
- html-edit-mode (Version 1.5.0, 2002 9/13)
- pg-view-table.el (Version 1.1.2, 2002 8/3)
- mi-arcfs (Version 2.2.1, 2002 3/25)
- bz2SelfExtract (Version 1.1.0, 2002 1/15)
- soundscope (Version 3.0a18, 2001 9/10)
- uvfs (Version 0.5.2, 2000 8/25)
- utils (2000 8/17)
- meminfo (Version 0.1.0, 2000, 7/13)
- libarc (Version 2.0.2, 2000 6/13)
- aspj (Version 1.3.1, 2000 5/28)
- sunrand (Version 1.1, 2000 5/28)
- bms (Version 2.2.1, 2000 4/17)
- switcher (Version 3.00, 1999 12/10)
- unicode.pl (Version 1.1, 1999 7/9)
- md5.pl (Version 1.0)
- zlib.js
zlib を JavaScript に移植してみました。
deflate/inflate がサポートされています。
gzip フォーマットやchecksumは対応中です。
- html-edit-mode-1.5.0.tar.bz2 (Version 1.5.0)
README
本ソフトは HTML を記述するための Emacs のメジャーモードです。
仕事上、必要だったので作っていたのですが、この度、全面的に書き直して公開します。
HTML のチェック機能があります。
このチェックは IE+NN がデフォルトとなっています。
ASP, PHP 部分はチェックにスキップされるので、それなりにチェックできます。
なお、i-mode 4.0 用のチェックも入っています。
あと、対応するタグへジャンプできる機能は、複雑に入り込んだ HTML を
追うのに便利です。
Emacs 21 以降でないと動きません。
- pg-view-table.el.bz2 (Version 1.1.2)
PostgreSQL のデータベースへ TCP/IP で接続し、SELECT 文の結果を表形式に
整形して表示する elisp のコードです。\C-j
でデータの
中身を書き換えることができたりして、、、
なお、このコードを動かすには
pg.el
が必要です。
- bz2SelfExtract-1.1.0.tar.gz
tar + bzip2 用の自己解凍プログラムを構築できます。
Windows 版のコード (EXE ファイル) も対応しています。(構築には Cygwin + Mingw gcc が 必要)
Linux 版は、
http://www.fefe.de/dietlibc/
を使ってビルドするのを推奨。
- uvfs
ftp://〜 のように URL を用いてファイルをアクセスできるように
します。
説明
- meminfo-0.1.0.tar.gz
meminfo.o はプロセスのメモリ状態を調べる Linux kernel 2.4.0 用のモジュール
です。これを用いて gmeminfo はプロセスのメモリをモニタリングします。
- aspj-1.3.1.tar.gz
UNIX Apache 用 ASP for perl 日本語対応版です。ASP ファイルを Shift_JIS
で書けるのが売りです。
IIS の ASP との互換性はあまり考えていません。
Session オブジェクトは実装してません。
- mi-arcfs-1.1.1.tar.gz, mi-arcfs-2.2.1.tar.gz,
- Archive filesystem for Linux kernel module (Version 1.1.1, 2.2.1)
アーカイブファイルシステムを作ってみました。tar, zip, lzh, tgz
ファイルをファイルシステムとしてマウントすることができるようになる
Linux のモジュールです。詳細はこちらへ。
- sunrand.c
Sun の /dev/audio を物理乱数発生装置として使うための簡単なプログラム
です。1 秒あたり約 1 バイトの物理乱数が発生できます。
ソースコードは sunrand.c です。
Sun IPX 100 台近くを用いて大規模な乱数テストも行った結果、
乱数として十分な結果が出ています。この時に使用した乱数データ、および
検定プログラムは、神奈川大学の
kk
から入手可能です。
注:/dev/audio から発生するバイトストリームは不安定性があり、
物理乱数として用いるのに最適なデバイスです。Sun のマシンを買えば
物理乱数発生装置まで付いてくるということになります。
このデータをそのまま用いると、値に偏りが
あるため、そのままでは乱数にはなりません。本プログラムでは、
値に偏りがあったとしても、得られるデータは偏りのない乱数が
得られるように工夫されています。理論上、偏りがあったとしても
不安定性があれば乱数が生成できます。
なお、ハードウェアが Sparc でないと乱数にならないかもしれません。
- unicode.pl-1.1.gz
Unicode と EUC(Japan) を相互変換する perl のライブラリです。
UTF8 との変換も可能です。
注:本 perl ライブラリは、Unicode テーブルがバイナリで
埋め込められています。中身を修正する場合は特に注意してください。
Windows では正常動作しません。テーブル部分を抜き出してきて、
実行時に読み込むように書き直してください。)。
使い方の簡単な説明
- md5.pl-1.0.gz
RFC1321 を元に、MD5 の perl 版を作ってみました。実行速度よりもシンプルさ
を重視して書いたので、分かりやすい半面、遅いです。100 行未満にすっきり
収まってしまいました。速度が気になる場合は適当にコードの最適化をして
利用して下さい。
- des-130.js.gz
本ライブラリは DES の暗号/復号化を行なう JavaScript のコードです。
パスワードを用いた秘密情報へのアクセスに便利かもしれません。
利用例 (パスワードは "abc" です)
テキストの暗号化
ソースコード
- Chasen サーバ
茶筌サーバ (chasend-1.6.1) をリリースしました.chasen コマンドをサーバ
タイプ にし,Perl および Emacs Lisp から TCP を用いてアクセス
できるようにしました.
説明&ダウンロード
- bms
utils のリリースキットの中ににも,このプログラムが含まれていますが,
このプログラムはかなり使い勝手がいいので,独立してここにも紹介することに
しました.bms は fgrep のようなプログラムで,指定した文字列を
含む行を表示するプログラムです.egrep/fgrep よりも高速で,
さらに,以下の便利な機能があります.
- ディレクトリを再帰的に辿り,そのディレクトリ以下全てのファイルを
検索対象にすることができます.また,検索対象のファイル名を shell の
正規表現で指定することもできます.
- マッチした行の前後を表示できます.
- マッチした場所の表示が反転するので,
どこがマッチしたか分かりやすいです.
- JIS コードを EUC コードに変換して比較/表示することができます.
日本語メールを日本語で検索することができます.
- gzip で圧縮したファイル (*.gz) の中身も検索できます.
SGI/O2 では,8.7M もあるデータの中から Izumo という文字列をすべて
探し出すのに user+sys = 0.3 秒強でした.(ディスク IO が無ければ 20M/sec
という検索速度になります)
ソースコード:bms.c (74KB), (Version 2.1)
Windows 用バイナリ(コンソール版):bms.exe (54KB)
- httpget (perl 版)
HTTP を用いて WWW のドキュメントを得る perl のプログラムです.
引数に URL を指定すると,指定されたドキュメントを取ってきて,
標準出力に表示します.
-r
オプションを指定すると,指定した HTML ファイルから辿れるファイル
を再帰的に取ってきて,ファイルにダウンロードします.この -r
モード
では,指定した HTML があるディレクトリ以下のファイルのみを取ってきます.
サーバが異なったりする HTML は取ってきません.さらに,
複数のプロセスを fork して,並列にドキュメントを取ってくる技を使っています
ので,他の似たようなことをやってるプログラムよりも高速です.
デフォルトでは 8 プロセスが並列に動作します.処理の空いているプロセスから
ドキュメントを取得していきます.
-n
オプションでコネクション数を上げることができますが、
あまり上げすぎるとサーバに対して大きな負荷をかけることになるので
気をつけて下さい。サーバが UNIX の Apache なら少々あげても問題ないですが、
NT サーバに対してあまり多くつなげるとサーバが悲鳴をあげてしまいます。
尚、本プログラムを使用して、いかなるトラブルが発生しようと、
私は一切の責任を負いません。
httpget-5.2.2.pl.gz (Version 5.2.2)
このプログラムを動作させるには,以下のライブラリが必要です.
jcode.pl
switcher.pl (Version 3 以降)
httpget 5.2.0 以降で switcher が新しくなりましたので、新しい switcher も
入れ直して下さい。
上記ライブラリを取得し,httpget スクリプト内の @INC
変数を修正してください.
- mpegtty (IRIX only)
以前ちょっと作った面白いものを思い出しました.
MPEG 動画 (MPEG video-stream) を ASCII テキストのみで表示するというもの.
YIQ 変換を用いた白黒画像の画素の明るさを ASCII 文字を用いて表現します.
kterm や xterm 上で ASCII 文字を用いて MPEG 動画が
見れます.出力をリダイレクトしてファイルにしておけば,cat するだけで
動画が見れます.
残念ながら,このプログラムは IRIX のみで動作し,他の OS では試すことは
できません.IRIX が使用できる方は是非試してみてくださいな.
mpegtty.c (14KB), (Version 1.1)
Compile: cc -O2 -o mpegtty mpegtty.c -lcl
- URL library
http://〜, ftp://〜, news://〜 のようにネットワークを介してファイルを
open して,データを読み込むためのライブラリです.
利用例(URL cat 版),
アーカイブ (30KB), (liburl-1.8.4.tar.gz)
- Archive library
アーカイブファイルの読み込みを統一的に扱うためのライブラリです.
このライブラリは上記 URL library を完全に含み,URL によるファイルの open
も可能です.現在サポートしているアーカイブ形式は,
- tar ファイル (*.tar)
- tar + gzip'ed ファイル (*.tar.gz, *.tgz) (deflate の解凍のみサポート)
- zip ファイル (*.zip) (implode, deflate の解凍をサポート)
- lzh ファイル (*.lzh) (lh0, lh1, lh2, lh3, lh4, lh5, lh6, lzs, lz5, lz4
の解凍をサポート)
- MIME multipart
です.
利用例(アーカイブファイルの cat 版),
アーカイブ (95KB), (libarc-2.0.2.tar.gz)
- Soundscope
Audio ファイルを演奏しながら,その波形をオシロスコープのように表示したり
するツールです.サポートしている Audio フォマットは
au / wav / aiff です.
説明,
アーカイブ (170 KB), (soundscope-3.0a18.tar.bz2)
- QuickHandy
C ライクなインタープリタ言語です.グラフィックスのプログラミングも
簡単にできます.
説明,
サンプル,
アーカイブ (230KB), (QuickHandy-1.79.tar.gz)
- mmlp
MML のプレイヤーです.BASIC の PLAY 文に記述する MML を,PCM 波形に変換
し,再生します.
説明,
試してみる,
アーカイブ (47KB) (mmlp-1.2.tar.gz)
- utils
小物ユーティリティです.便利なものやくだらないものが集まってます.
説明,
アーカイブ (75KB), (utils.tar.gz)
- sword
英単語の綴りがなかなか思い出せない時に使うツールです.指定した文字列に
近い綴りの単語を曖昧検索し,近い順に幾つかの単語を表示します.
現在 約 90 万語登録されています.
アーカイブ (2.7MB), (sword-1.4.tar.gz)
デモ
- timidity GUS/patches
timidity で使われている GUS の patche を集めました.なかなかいいものが
揃ってます.私が作ったものではないのですが,一部の壊れたパッチを自分で
修正しました.utilsパッケージ内の ovw などを使って,バイナリを
コマンドライン上から修正したものがいくつかあります.
パッチ集
- TUT - TCP&UDP translator
TCP to UDP to TCP です.TCP のストリームを UDP パケットに変換して送信,
そして,受け取った UDP パケットを TCP のストリームに流し込むという
2 種類のサーバプログラムから構成されます.
非常に混んでいるサイトへ telnet でログインすると,頻繁に固まってしまい,
数十秒くらい,反応がないことがあります.ひどいときには,数分間,反応が
なくなり,最悪の場合,接続が切れてしまうことがあります.
この TUT パッケージを使えば,こういったことがかなり改善されます.
固まって反応がなくなる時間が短縮できるのが,このパッケージの利点です.
tut-1.3.tar.gz
TUT を用いて ftp を UDP で繋いじゃうようにハックしたものもあります.
tut-fff-0.5.0.tar.gz
どちらも,ドキュメントはないし,仕様も変更される可能性があります.
- switcher.pl
Perl 5 の pre fork ライブラリです.複数のサーバを立ち上げ,
コネクション要求がくると,処理の空いているサーバへ接続するライブラリ
です.同時接続をサポートするサーバの実装方式としては、最も高速に動作する
方式と言われています。
説明,
アーカイブ(Version 3.00)
- Base64.el
base64 の encode/decode の Emacs Lisp のコードです.
かなり高速に動作するようにチューンされてます(w3 パッケージの base64.el
より数倍以上高速です).
アーカイブ(Version 1.2)
- fdrand48
drand48() 関数の超高速版です.sparc/gcc 用にチューン
されており,Sun の drand48() より 5〜6 倍高速です.
SS5 で約 1M random/sec の性能がでました.
また,乱数の種が同じであれば,fdrand48()とdrand48()とで
生成する乱数列は全く同じなので,drand48をfdrand48に書き換えて
用いても,モンテカルロシュミレーションの結果に違いが出てくること
はありません(多分.保証はない).なお,fdrand48() の種は
fsrand48(seed)を用いて設定します.
fdrand48.c
fdrand48.h
- CASL(awk 版)
情報処理技術者試験で登場する CASL アセンブラを実行/トレースしてくれる
プログラムです.なにを血迷ったか awk で書き上げてしまいました.
このプログラムは awk を初めて習ったときにちょっと作ってみた
プログラムです.プログラミング言語 awk を片手に,最初のバージョンは
2 〜 3 日で作ってしまいました.
(その後 perl に出会って,今となっては awk 言語仕様の大部分を
忘れてしまったとさ)
説明
ソースコード
テストプログラムその 1
テストプログラムその 2
テストプログラムその 3
- e
とにかくこの C 言語のソースを見てください.実際にコンパイルできて,
ちゃんと実行できますよ.
exp.c
このプログラムを実行すると,
e^(引数の数)の値を表示します.このプログラムは以前
遊び半分で作ってみたコードです.初期値が main のアドレス値で,
e の値に収束します.
その他
- UDP relay
UDP のパケットをリレーするプログラムです.utilsパッケージ内の
tcprelay の UDP バージョンです.Multicast にも対応してますので,
Multicast を Unicast に変換して送信し,別のところで,その Unicast パケット
を受け取って,再び Multicast にして送信するといったことが可能です.
アプリケーション層で動作する,単純なプログラムです.
まだ,仕様が安定していないです.取りあえず,アルファ版です:
udprelay.c.gz
- BigInt.js
こっそりと公開。
公開しようかなって思っているモノ
作ってはみたものの、公開するにはちょっと中途半端、あるいは会社の産物として
売りモンの一部になる可能性があるので、ちょっと公開できないものです。
メールを頂ければ、個人的に使用する範囲内という条件で差し上げますので、
相談してください。
- roman.pl (Perl のローマ字、仮名、カタカナ変換ライブラリ)
- Jcode.class (Java の日本語コード変換クラス)
- Des.class, DesInputStream.class, DesOutputStream.class (Java の暗号/復号化クラス)
- Deflate.class, Inflate.class (Java の圧縮/解凍クラス)
- jcodesub.pl (WWW CGI で jcode.pl を利用するにあたり、jcode.pl の
不十分な点を補うライブラリです。日本語文字コードの文字化けがかなり
減少します)