はじめまして。あるいはこんにちは。加藤歓隆(かとうかんりゅう)です。

このサーバーは私が作成したプログラムや成果が置かれています。

記事は追々書いていく予定ですが、できているもののリンクとその紹介を書いておきます。

作成したものの紹介

フォルダエディタ

ファイル名変更ツール(リネームツール) です。 いつものメモ帳や秀丸やEmEditorなどでの編集と同じような方法で、 たくさんのファイル名を 一度に編集 することができるようになります。

マニュアル:(ときどき更新)

最新版:

Webインストール版:

Squirrel JIT

Squirrel というアプリケーション組み込んで使うのに便利なスクリプト言語を JITコンパイル駆動するよう改造したものです。Squirrel-2.2.2-stableをベースにしています。

Tcl::yaml

Pure Tclで書かれたYAMLパーサーです。読み書きを行えます。 最新版は tcllib に収録されています。

2009-05-26時点の最新:

Tcl::huddle

Pure Tclで書かれたライブラリです。Tclはスペース区切りの独特のデータ構造でlistやdictなどのコンテナ情報を保持できますが、それはシンプルである反面、実行時にlistなのかdictなのか区別できないという問題があります。

そこで各ノードにラベルを置いてラベルで識別することでより複雑なデータ構造を保持できるようにしたものです。このような処置が、Tcl内部データとJSON/YAML/XMLなどのデータ形式との変換の間に必要になります。 Tcl::yamlの下回りとして実装していますが汎用で使えます。

現在、同じくtcllibに収録されています。

JPEG-LS plug-in for Irfanview

JPEG-LS画像を表示し、他の画像形式から変換するIrfanview用のプラグインです。

JPEG-LS というマイナーな可逆形式の画像フォーマットがありまして、 読み書きライブラリはオープンソースで複数種類入手できるものの、 まともなビューアーが無かったので Irfanview 用のプラグインを作成しました。

現在はIrfanview本家の拡張ライブラリ集に収録されています。

JPEG-LSの読み書きライブラリとしては、現在一番新しく活発に開発が続いている charLS を採用しています。

こちらにもいくらか貢献しています。(JPEG-LSの圧縮率を向上させるcolorxformフィルタや、DPI・サムネイルなどの付加情報を挿入するJFIFコンテナの対応など)

Irfanviewは標準的なプラグインの実装法が決まってないようで、このプラグインを開発する過程で呼び出し方を詰めていきました。今後他の形式向けのプラグインを作成する際の参考になるでしょう。

SlimORM

Pure Pythonで書かれ、Python/IronPython両方で使用可能なO/Mマッパーです。

IronPythonでもSQLiteが使用可能なのですが、CPython向けのO/Rマッピングライブラリが軒並み 使用不可能な状態で困っていて、結局自作することにしました。

ベースは 『みんなのPython Webアプリ編』 を書かれた柴田淳さんの 『100行ちょっとのやる気のないPython製O/Rマッパー』 です。 とはいうものの、Connector/Cursor周りを全部書き換えたのでほとんど原型が残っていません(笑) 再配布について柴田さんの同意をいただけましたので、3条項BSDライセンスで配布します。

Connectorをdbapiそのままで使うのが特徴といえば特徴です。現在200行程度の実装になっています。 単独のテーブルを操作する分には問題ないレベルです。INNER JOINによるテーブルの連結の対応は必要に応じて行っていく予定です。

SlimORM.NET

Boo言語で書かれ.NET Framework全般で使用可能なO/Mマッパーです。

Boo言語というマイナーな言語があるのですが、 この言語向けに作られたGPL/LGPL以外のライセンスのO/Rマッパーが見当たらなかったため、 Python版のSlimORMを移植することにしました。

Boo言語にはPythonにおけるdbapiが存在しないため、dbapiライクの動作をするCursorクラスを含めています。

単独のテーブルを操作する分には問題ないレベルです。INNER JOINによるテーブルの連結の対応は必要に応じて行っていく予定です。

Pakefile

PowerShell用の依存性解決システムです。

RubyにおけるRakefileにあたります。

DFL用GUIデザインフォーマットのサンプル

GUIのデザインをXMLで作成し、これをD言語のソースコードに変換します。

D言語というプログラミング言語がありまして、DFLというWindowsでGUIアプリを作れるライブラリがあります。 .NET FrameworkにおけるSystem.Windows.Formsのようなものですね。 Visual Studioのようなフォームデザイナー(Entice Designer)もオープンソースであるのですが、その役に立てればいいかなとちょっと改善案を作ってみました。 GUIのデザインをDプログラムに直接出力するのではなく、一旦XMLファイルに宣言的な構文で出力しておき、 そこから改めてDプログラムに変換すればいいのではないかという趣旨です。

XMLで記述されたGUIデザインのフォーマットは世の中にいくつか存在します。

このうちXULは直交性が高く学ぶべきところは多いものの Widgetの自動配置が必要になるためすぐに採用するには不向きであり、 Qt uiはリファレンスの資料なし。 GuideXMLは 例文 があったので、 とりあえずこの構文を真似してみることにしました。

XMLを解析してDプログラムを出力する部分はD言語の範囲では良い方法が見いだせなかったため、Pythonでちょちょいと書いています。

※1 今(2010-05-14現在)D言語の勉強中で、色々できる面白い言語なのですが記事や使えるライブラリがまだ少なくて、ちょっと大変ですね。

※2 Wikipedia:Gladeによると、 今回作成したサンプルツールは「コードスケッチャー」というツールにあたるようですね。 →DFL_XMLはXMLファイルからDFLを使用したDプログラムを生成します。実行時にはDFL以外のライブラリを必要としません。

奥付

私の作ったものにご興味のある方はお気軽にメールでお知らせください。

加藤歓隆(KATO Kanryu k.kanryu@gmail.com)