カテゴリー
Programming

Camomile

CamomileはOCaml用のUnicode処理ライブラリです。
GODIにも入っていて簡単に取得して使い始めることができます(今は0.6系の模様)。
このソフト、APIマニュアルは公開されているのですが、以前からあんまり
サンプルコードやチュートリアルがなくてとっつきにくかったので、
ちょっとサンプルコードつきの説明を書いてみました。
Camomile

カテゴリー
Web

Scuttle異常回復

身内で使っているScuttleの登録者欄に「hogehoge ほか -1人」というおかしな表示が
出るようになっていたが、何かのきっかけでテーブル定義が壊れていた模様。
MySQLのメジャーバージョンを上げたのと関係あるのだろうか
mysql> show create table sc_bookmarks;
CREATE TABLE `sc_bookmarks` (
(中略)
`bHash` varchar(10) NOT NULL default ”,
MD5が入るのに10って・・・
ということで修正
alter table sc_bookmarks modify `bHash` varchar(32) NOT NULL default ”;
update sc_bookmarks set `bHash` = md5(`bAddress`);
めでたく正常に戻りました

カテゴリー
NHC

Google CodeJam 2006

無事に終了したようです。日本からも1名(nyaさん)が参加されました。結局TopCoderでもレーティング1位のPetr氏が優勝した模様です。
GCJではTopCoderの講評みたいに統計が出ないようなのでメモっておきます。
優勝
Petr (Petr Mitrichev)
言語 C#
得点 927.02 (0.0 + 417.26 + 509.76)
問題概説
250点問題
与えられた複数の点に対する近似直線を求める問題
最速 pashka 7.34分
正答者 69
500点問題
ハッシュから元の文字列を求める問題
最速 tomek 9.06分
正答者 38
1000点問題
パラメータ表示された曲線上の格子点を零点にもつ多項式を求める問題
最速 andrewzta 33.64分
正答者 5
関連サイト
This year’s CodeJam
Google Announces Winner of Global Code Jam 2006
私は決勝の様子をのんびり観戦していたのですが、対戦終盤にサーバからの情報が遅延しだしてついには切断。つなぎ直したときにはコンテストの情報が一切見られなくなっているという始末でした。悲しい。現在は得点やコードの閲覧が出来るようになっています。

カテゴリー
NHC

TopCoderでCodeProcessor+TZTester+FileEdit

上位陣が結構使ってるプラグイン構成
FileEditは外部ファイルをソースとして自動で読み込むようにするもの。
Meadowなりなんなり好きなエディタが使えます。コピペの必要がありません。
TZTesterはテストコード自動生成プラグインで、
ローカルコンパイル&実行すると提示されているサンプルパターンを
全部一気にチェックしてくれます。
手順
Plugin紹介ページからTZTester.jar, FileEdit.jar, CodeProcessor.jarをダウンロード
Competition Arenaの「Options → Editor」で「Editor Preferences」を開く
Common ClassPathにBrowseボタンでTZTester.jar, FileEdit.jarを追加
Addボタンを押して以下のように入力してOKを押す
Name: CodeProcessor
EntryPoint: codeprocessor.EntryPoint
ClassPath: CodeProcessor.jarのパス
CodeProcessorを選択し、Configureを押して「CodeProcessor Configuration」を開く
「Editor EntryPoint」にfileedit.EntryPointと入力してConfigureを押す
「General」タブで「Enter directory to read/write problems to」にソースを置きたいディレクトリを記入
「Code Template」タブでTZTester用にTemplateを編集する。例えばC++ならば


class $CLASSNAME$ {
public:
$RC$ $METHODNAME$($METHODPARMS$) {
}
$TESTCODE$
};
// BEGIN CUT HERE
int main() {
$CLASSNAME$ ___test;
___test.run_test(-1);
}
// END CUT HERE

とする。「// {BEGIN|END} CUT HERE」で囲まれる部分は
CodeProcessor FileEditがSubmit時に削除してくれる。
Saveボタンを押したら今度は「Processor Class」に「tangentz.TZTester」と
記入して「Verify」を押す。3つのメソッドについて「found」と出たらOK。
だめだったらCompetition Arenaを再起動してからチェック。
使い方
新しい問題を開くとDefault Languageに基づいてスケルトンが出来上がる。
外部ファイルを編集・保存してからCompetition Arenaのほうで
Compileを押すと自動的にソースが読み込まれてコンパイルされる。
※ 問題を開いてから言語を変えた場合、前に選択していた言語のままのソースが
外部ファイルにエクスポートされてしまう模様なので注意。
外部ファイルをローカルコンパイルして実行するとTZTesterが生成したテストコードが
実行されて結果が出る。
かなり楽ちんになるでしょう。
ここまでやったらあとはコーディングの実力を・・・

カテゴリー
General

a2ps の日本語化について更新

Gulfweed:a2ps
きちんとのせるとほとんどが「ハングアップの日々」からの転載になってしまうので
ポイントだけ書いていたが、久しぶりに読んでみたら何の役にも立たなかったので加筆。

カテゴリー
Linux

tcpdumpでフレーム全体を16進ダンプする

tcpdumpによる16進ダンプでパケット解析をしているのですが、
イーサネットヘッダまで含めた出力がうまく出来ず困っていました。
(-e オプションを使えば一応内容は出力できますけど)
改造して出力出来るようにしようとソースを見ると
(tcpdump-3.9.4 から引用)
tcpdump.c L747


case 'x':
++xflag;
++suppress_default_print;
break;

xflag を参照しているのは?
tcpdump.c L1259


} else if (xflag) {
/*
* Print the raw packet data in hex.
*/
if (xflag > 1) {
/*
* Include the link-layer header.
*/
hex_print("\n\t", sp, h->caplen);
} else {

なんと、イーサネットヘッダも含めて出力するコードが存在している。
試しに -xx としてみると出力されました。
MANPAGEには載ってない・・・よね

カテゴリー
General

TortoiseSVN の作業コピー管理ディレクトリ

TortoiseSVN を1.3にアップグレードしたところ、
チェックアウトしていた作業コピーを認識しなくなった。
どうも、管理ディレクトリ名の設定が _svn から .svn に
変わってしまったらしい。
この方 や他の多くの方は.svn から _svn に
なってしまう事を心配していたようですが、私の場合2年ほど前に
SVNを使い始めた頃から _svn で管理ディレクトリが作成されていました。
仕方ないのでインストール時にASP .NET Hackを有効にして _svn を
使うように指定。再起動すると、認識されるようにはなったものの、
アイコンに状態マークが表示されなくなるという別の異常が
発生。結局1回入れ直しました。(When upgrading … とあるのに「プログラムの追加と削除」を見ると二重インストールになってた)

カテゴリー
Linux

Debian で BerkeleyDB を4.2から4.3にアップグレードする際に生じるSubversion問題

(久しぶりにSubversionを使ってから気づいたので、大分古い話題ですが)
DebianでBerkeleyDBを4.2から4.3にアップグレードする際、
古いSubversionリポジトリが読めなくなりますが、
svnadmin recover を実行してもリポジトリのアップグレードが
行えず、新しい環境に移行できません。
Subversion公式サイトに対処法が解説されています。
しかし、この方法だと古いsvnadminバイナリが必要で面倒です。
リポジトリの保守 – Subversion によるバージョン管理
に解説されているように、Subversionのコマンド群は
BerkeleyDBのユーティリティで代用できるものがあり、
db4.2_*というコマンド群が残っていればこれで何とかなります。
対処法を以下にまとめました
Gulfweed:Subversion

カテゴリー
General

Hello

This is Gulfweed.