パッチやがらくたプログラムがあります。 全て気の向くまま、徒然なるままにつくりました。 一部の人には有用かも知れません。
ここにあるプログラムやパッチは全て 「無償・無保証・著作権放棄」です。
自己の責任において、使用・改変を行って下さい。
また、パッチに関しては「無償・無保証・著作権放棄」で公開していますが、 その対象となるソフトウェアが GPL の場合はパッチを適用したソフトウェアは GPL となりますので注意が必要です。
tac とは cat の逆でファイルを最後から出力するものです. オプションとして,行の文字も逆に出力することができます.
C 言語です.一応 GNU の tee にあるオプションは付けているつもりです. また,GNU とは違い,一つのソースファイルで完結しています. ライブラリは UNIX や Linux であれば,最初から入っているものだけしか使っていないと思います.
$ cc -o tee tee.c
で大丈夫だと思います.環境によって,cc ではなく,gcc を使って下さい.
「エラトステネスのふるい」を使い,素数を求めます. デフォルトでは 1000 までの素数ですが,プログラムの引き数に数字を指定すると その数までの素数を求めます.かなり甘々なプログラムです.見せるのも恥ずかしいくらい.
( -.-)y-o O ()
tab をスペースに変換します.tab 幅は 0 〜 15 の間で決定できます.
ただ,作った後に思ったのですが,エディタの一括変換使えば必要無いな...と. ま,一応作ったので,使う人は使って下さい.ホントのがらくたです.
HTML のタグを大文字,小文字に変換します.
コメント,属性の値(<tag elem="value"> の value)は変換対象ではありません.
デフォルトでは大文字から小文字への変換です.適当に使って下さい.
基本的に要素は小文字で書いた方が良いでしょう。 XHTML が小文字だから、今後 XHTML への移行を考えると小文字で書いた方が楽だからです。
プログラムを作っていると 10 進法から 16 進法に変換したい場合がある。 256 くらいまでは頭の中で変更できるが、1000 を越えるとすぐに計算できない。 このような時のためにプログラムを作ったのだが、 どうせなら各進法から各進法に変換できたら便利だろうと XP 的には危険なことを考えて実装したのがこのプログラムだ。
$ gcc -o radix radix.c
でコンパイルして下さい。
$ radix [-i base] [-o out] number base: 入力された数値の進法(default: 10) out: 出力される数値の進法(default: 16) number: 変換したい数値
2002/12/08 の日記 に書いた干支表示プログラムをちょっと手直しして載せてみた。
引数に年を入れるとその年の干支を表示する。 引数に何も指定しなければ、その年の干支を表示する。
棒倒し法 を素直に実装したもの。
Java 2 SDK 1.4 に標準でついてくる Image I/O で,PPM/PGM を読み込む Plug-in を作ってみました. 使い方は Image I/O ドキュメントを読んで下さい. 一応,クラスパスにこの jar ファイルを加えるだけで使えるようにしています.
White Space を削除する apache ant のタスク。 携帯サイトなど、HTML のファイルサイズを小さくする必要のある時にお使い下さい。
使い方は以下の通り。
<taskdef name="delspace"
classname="com.oikaze.tama.ant.taskdefs.DeleteWhiteSpaceTask"
classpathref="project.class.path"
/>
<mkdir dir="${output.dir}" />
<delspace destdir="${output.dir}"
basedir="${src.web}"
ignorestart="<"
ignoreend=">">
<include name="**/*.jsp" />
</delspace>
以上のタスクで ${src.web} 以下の jsp
ファイルの < から > までの文字列以外は、全てホワイトスペースが削除されます。
ignorestart と ignoreend ではさまれた部分はホワイトスペースが削除されませんが、 これらに指定できるのは 1 文字だけです。
ちなみに、まだテストはしていませんし、cvs に登録もまだしていません。 それでもよければどうぞ。
テストして、cvs に登録して、ちょっと手直し。 そして、移動しました。ライセンスはここにあった時と同じく 「無償・無保証・著作権放棄」です。
http://oikaze.com/%7Etamada/Products/delspace/index.html
Servlet などではインターフェースとして Enumeration
を返す仕様となっていものもありますが、内部では List
など新しいコレクションフレームワークで、データを扱っている場合が多いと思います。
その場合にこのクラスが使えるでしょう。
メソッドの実行時間を調べたい時がある。 しかし、そのような情報はリリース時には削除したい。
ならば、class ファイルに直接加えればどうだろう。 class ファイルに直接挿入することで、ソースコードの編集はいらなくなる。 Apache Ant で組み込むことができれば配布用の target にはその処理を通らないようにすれば良い。
ということで作ってみました。AddMethodPerformanceTracer。略して ampt。 よろしければお使い下さい。
ちなみに、使い方。
<taskdef name="mptracer"
classname="com.oikaze.tama.ampt.AddMethodPerformanceTraccerTask"
classpathref="project.class.path"
/>
<mkdir dir="${output.dir}" />
<mptracer destdir="${output.dir}"
basedir="${class.dir}"
lastmodified="true">
<include name="**/*.class" />
</mptracer>
java.io.Serializable を implements すると
serialVersionUID が定義されていない場合は、
コンパイラが自動的に計算してクラスファイルに定義を加えてくれる。
間違ってました.serialVersionUID の説明は
「オブジェクト直列化仕様の「4.6 ストリーム固有識別子」」 で説明されています。
で,修正しました.修正したものを公開します.今までは
Jakarta BCEL を使っていましたが,
新しいバージョンでは使っていません.java.io.ObjectStreamClass を使って
serialVersionUID を取得するようになっています.内部の処理としては
serialver コマンドとほぼ同じようにしました.
しかし、あとから調べるには serialvar を実行しなければならない。 いちいち、複数のクラスを調べるのに serialvar コマンドを実行するのは面倒臭い。 更に serialvar コマンドはクラスの完全修飾名を引数に取るため、tab が効かないのだ。 こんなのは駄目だ。ant から見えるようにしよう。
ということで作ってみました。ViewSerialVersionTask。 よろしければお使い下さい。
ちなみに、使い方。
<taskdef name="serialver"
classname="com.oikaze.tama.ant.taskdefs.ViewSerialVersionTask"
classpathref="project.class.path"
/>
<serialver basedir="${class.dir}">
<include name="**/*.class" />
</serialver>
属性は basedir のみです。もし、basedir
が指定されなかった場合は ant のプロジェクトディレクトリとなります。
この basedir はクラスパスの起点となるディレクトリのことです.
この指定を間違うと動きませんので注意してください.
以下の jar ファイルを project.class.path の通っている場所に置いて下さい。
クラスファイルの情報を直接みたい場合がある. javap -c では表示されないコンスタントプールであるとか, 細かな Attribute_info も見たい.適当なツールもないので,適当に作ってみた.
出力方法はプログラムをサボって,bcel に任せてる.コマンドラインオプションもなし. java -jar でクラスファイルを指定すると,情報が出力される.
GNU tar には標準で gzip 圧縮のオプションがついています. このパッチはそれに加えて bzip2 圧縮のオプションを加えます.
$ patch -p1 < tar-1.13-exec_bzip2.diff
とやればパッチが適用されます.
オプションスイッチは 'j' にしています.なので,
$ tar cvfj aaa.tar.bz2 aaa bbb ccc
とすることで,tar + bzip2 アーカイブが作成できます. ただし,bzip2 が既にインストールしていることが条件です.
ttyrec は tty を録画するコマンドです。
ttyrec-1.0.5 から録画データの収録時間を調べるコマンド、ttytime
が追加されましたが、この ttytime、秒で表示されるので、
収録時間が長い場合、実際にどれくらいの時間なのか一見してわかりません。
なのでもっとわかり易く表示させようと手を入れました。
$ ttytime -f ttyrecord
とすれば hh:mm:ss 形式で表示されます。
http://www.higuchi.ecei.tohoku.ac.jp/%7Emiyabi/diary で、 「今日の Google」として Google から飛んできた人の検索ワードを掲載していらっしゃいます。 しかし、一つ一つ調べていくのが面倒臭い。コマンド一つで「今日ぐる」を一覧で出して欲しい。
そんな時にこのコマンド。どこからどんな検索ワードでどのページにやってきたのかを一発で調べられます。 あなたも今日から「今日ぐる」。
「今日ぐる」のアイデアは 夏井 雅典 (Masanori Natsui) さんから頂きました。
UTF-8 のエンコーダを http://www.higuchi.ecei.tohoku.ac.jp/%7Emiyabi/diary/2003-02.html#2003-02-06 で教えて頂きました。
ChangeLog から特定の日付の項目を取得します。 また、オプションで特定の日付を出力から削除することもできます。
| コンテンツ |
|---|
| リンク |
| おしながき |
|