xyzzy 0.2.2.236

何年ぶりか分かりませんが,xyzzyがバージョンアップしました。
作者の気分が乗らなくなったとかで開発が完全ストップしていましたが,最近になって,オープンソースとして開発が進んでいるようです。新機能やバグ修正が行われており,また使ってみようかと思っています。

Pure JavaなHTMLレンダリング

CobraというPure JavaなHTMLレンダラーがあるそうです。オープンソースで開発が進められており、HTML4、Javascript、CSSがサポートされているとのこと。性能のほど(レンダリングの質)はまったく確認していないのですが、JavaでHTMLを扱うソフトウェアを開発するときなど、役に立つ場面もあるのではないでしょうか。

ちょっと気になるので、いつか使ってみようと思います。

MediaCoder

MediaCoder – more than a universal audio/video transcoder – MediaCoder official website:
http://www.mediacoderhq.com/

現在、動画や音声には多種多様なフォーマットが使用されています。なんでこんなにたくさん使われているのか、統一してくれないものかと思うのですが、以前から使われているフォーマットであったり、効率などを改善したフォーマットであったり、それぞれに存在する理由があるので仕方ありません。

しかし、たとえば携帯端末はこれらのうち特定のフォーマットにしか対応していない場合もあり、あるフォーマットから別のフォーマットに変換したい場合があります。そんなときに活躍するのが、上記の「MediaCoder」です。

動画と音声の代表的なフォーマットを網羅しており、相互に変換することができます。内部的には、オープンソースなどの自由に利用できるライブラリを多数搭載し、それらを組み合わせることで処理を実現しているようです。

細かい設定ができるので、使いこなすまで大変かもしれません。しかし、機能がとにかく豊富ですので、ほとんどのニーズを満たすことができると思います。

KeePass

KeePass Password Safe:

http://keepass.info

今回紹介する「KeePass」は、パスワードを管理するためのソフトウェアです。インターネット上の会員制サイトや、電子メールのアカウントなど、個人が管理しなければならないユーザー名とパスワードは増加の一方です。そのため、同じパスワードを使いたくなるのですが、そうすると、ひとつのパスワードが突破されてしまうと全てのアカウントについてパスワードが突破されることになってしまいます。かといって、それぞれのアカウントに異なるパスワードを設定すると、忘れてしまってログインできなくなることもあります。そこで、これらの情報を安全に管理するためのソフトウェアというものにニーズが生じるわけです。

オープンソースで開発されているため、パスワードなど盗み取るコードが混入していないことを自分で確認できる(もちろん前提知識は必要ですが…)という点が一番の特徴です(だと思っています)。

使い勝手もよく、ひとつの項目に追加的な情報を多数書き込めたり、全体検索機能、メモリ内暗号化によるセキュリティの強化など、さまざまな機能を備えています。また、Firefoxのアドオン「KeeFox」を使うことで、Firefoxとの連携をすることもできます。

MozSwingにビックリ

JavaでHTMLをレンダリングしようとすると、どえらく大変です。SwingコンポーネントもHTMLを解釈してレンダリングしてくれますが、CSSなどには対応しておらず、ごく基本的なHTMLしか使うことができません。

Javaでスタイルシートも含めてHTMLをレンダリングしたい! 自前でSwingコンポーネントを組み立てていくのはイヤだ! そう叫びたい方、現に叫んでいる方に朗報です。あのオープンソースで開発が進められている有名ブラウザ、FirefoxをSwingコンポーネントとして使うことができるようになっていたのです。

MozSwing (SourceForge)からパッケージをダウンロードすることができます。

内部ではXULRunnerという、XULとXPCOMを使ったアプリケーションを動作させるための基盤システムを使っています。パッケージには各プラットフォームごとのバイナリが入っており、内部としては、単純に、Javaを介してそれらのバイナリを動作させているだけということになります。

パッケージに入っているjarファイルをすべてクラスパスに組み込み、提供されているSwingコンポーネントMozillaPanelを使うことで、簡単にFirefox相当のブラウザを組み込むことができてしまいます。

ただ、事前に、システムプロパティmozswing.xulrunner.homeにXULRunnerのディレクトリを指定しておかなければならないようです。これをインストールされているFirefoxのディレクトリに合わせれば、最新版のFirefoxで動作することになるのかなあ? 内部動作など、まだよく分かっていないので、予想です。

サンプルコードはkaisehのブログに掲載されていました。まあ、JFrameにMozillaPanelを貼り付けるだけ、というシンプル極まりないものですが。これだけでブラウザが動作してしまうのですから、ちょっとビックリです。

Windowでemacsみたいなエディタ

いつの間にか、emacsキーバインドが体に染みついてしまいました。もはや、標準的なWindowsのエディタを使うことはできません。カーソルを移動させようと思うとファイルを開いてしまったり、印刷を始めてしまったりしてしまうのです。

そんなわけで、ふと思い出したように、いろいろなエディタを探す旅に出てしまうことがあります。Windows上で、自分の要望を適度に満たしてくれるエディタはないものか、開発環境はないものか。キーバインドはemacsに準じたもので、しかしWindowsネイティブなプログラムであって動作は軽快、設定も分かりやすくグラフィカルであってほしい。内部はRubyもしくはJavaScriptが組み込まれていて、簡単にスクリプトを利用することができる。そんな、使いやすいエディタはないものか。

そこまで考えているなら、自分で作れって話ですが。

まあ、それはそれとして。既存のものを頑張って作る必要はありませんから、まずはリサーチすることが肝要なわけです。

かつて使っていたのはxyzzy。emacsに準じた操作方法、Lispインタプリタ内蔵、動作も軽快と、希望を満たしてくれるソフトウェアでした。しかし、ある時期を境に、更新が止まってしまいます。現在ではソースも公開されており、これを改変することによって自分の希望を満たすようにできるのかもしれませんが、うーむ。現状でも十分な性能を持っているので、とくに更新されなくても構わないように思えますが、いまは使っていません。また使おうかな…。

次に見つけたのは、エディタではありませんが、xkeymacs。Windowsのフックを使って、あらゆるアプリケーションをemacsバインドにしてしまおうという、ちょっと野心的なソフトウェアです。確かに、このアイディアは素晴らしいところがあります。しかし、もともとemacs的な機能を持っていないソフトウェアについては、無理があります。そのため、こればかりに頼るというわけにもいきません。たとえば、Ctrl+X Ctrl+Fは、メニューから「ファイルを開く」という項目を探して、それを実行しているように見えます。そのため、メニューの記述が一般的なアプリケーションと異なっている場合などは、この機能が働かないということになります。

しかし、ちゃんと適合するソフトウェアであれば、emacsっぽく使うことができるようになります。Peggy Padは、そのような要件を満たすエディタのひとつでした。スクリプトなどの機能はありませんが、軽快で、テキスト編集には十分な機能を持っているソフトウェアです。企業が作っているということで、それなりに(いろいろな)信頼が置けそうだというところもポイントです。まあ、そんなものは主観にすぎず、本当に信頼できるかどうかは分からないのですが。とりあえず、けっこうな期間使いましたが、信頼が裏切られたようなことはありませんでした。

Meryというソフトウェアもあります。これはスクリプトを使うことができたり、プラグインを使うことができたり、拡張性に優れています。エディタとしての機能は、標準的。ちなみに、スクリプトはWindows Scripting Hostをサポートしているようで、JScriptとVBScriptがサポートされているとのこと。しかし、Delphiで作られているためか、ちょっとxkeymacsとの相性はよくありません。

いろいろと巡ったところで、行き着いたところは、emacsだったりします。最近のビルドはWindowsでもそのまま動くようになっており(バイナリ配布されているものを使った場合)、ある程度はGUIを使って操作することができます。しかし、Windows APIを直接に使うようなものではないようで(何かのツールキットを使っている様子)、GUIまわりにちょっと不安があります。しかし、期待しているすべての機能を満たしており(そりゃemacsなんだから当然だ)、機能的には満足です。Emacs Lispがよく分からないので、ちゃっちゃっと設定を書いたりすることができないというのが難点ですけれども。

なんだか、いろいろ探していたら、最初にいた位置に戻ってきたという感じです。しかし、最近のemacsはWindowsでも使えるように対応が進んでおり、また、国際化も進んでいて、UTF-8が普及したからか、日本語なども問題なく扱えるようになっています(ただ日本語入力するときはインラインに書き込めない。これは何とかしてほしい。自分でコントリビュートすればいいのだろうが)。