«前の日記(2008-09-30 [火]) 最新 次の日記(2008-10-20 [月])» 編集
RSS: href="http://endoh-namazu.tierra.ne.jp/diary/index.rdf"


半期 四半期 全カテゴリ

新・なまず日記


2008-10-15 [水]

_ [デスクトップ][カスタマイズ][xfumble] xfumble - XMLルール解釈部完成! → 東京行くぞぉ〜ッ!



xfumbleが、ようやく、XMLファイルでカスタマイズルールを記述できるようになりました。
こんな感じ。

<?xml version="1.0" ?>
<rulebooks>
  <rulebook>
    <rule> <!-- Ctrl-nが押されたとき、トップウインドウがEmacsじゃなかったら、Down -->
      <trigger block="KeyEvent" file="key.rb">
	<keysym>^n</keysym> <!-- ^は、Ctrlを表す。AHKから持ってきた表記法 -->
      </trigger>
      <state_action>
	<state block="TopWinChangeEvent" file="window.rb" not="true">
	  <app_name>Emacs</app_name>
	</state>
	<action block="TypeKey" file="key.rb">
	  <keysym>Down</keysym>
	</action>
      </state_action>
    </rule>
....


なにも書かなくても、やってること、大体わかっちゃうよね。

<trigger>で、引っ掛けるイベントを記述。キーイベントや、マウスイベントや、ウインドウがマップされた、なんてのも、イベントとして引っ掛けられる。
<state_action>の中で、イベントが起こったときの「条件」<state>と、その「条件」にマッチしていたら、起こすべき「行動」<action>を記述する。これで、同じイベント(例えば、Ctrl-nが押された、とか)でも、「条件」(例えば、Emacsがトップウインドウだった、とか)が違えば、異なる「行動」を起こすことができる。


詳細はいずれちゃんと書くけど、ちょっと注目して欲しいのは、<trigger>、<state>、<action>とも、Rubyのファイル名と、その中に入っている、Rubyのクラス名(block="KeyEvent"とかは全部クラス名)を指定している、ということ。

XMLファイルの中でファイル名とクラス名を指定している、ということは、新たな機能拡張が必要になったときは、新たなRubyファイルと新たなクラスを作って、それをXMLファイルに加えれば、いくらでも、機能拡張できちゃうってこと。XMLルール解釈部は、<trigger>、<state>、<action>等、すべて、どんな機能を持っているのか、まったく知らないし関知しない。だから、好きな機能をRubyで書けちゃうわけ。

XMLでは、それらの機能(block、ブロックって呼んでる)を組み合わせて、ルールを記述すればよい。ルールは、比較的単純なものしか書けないけど、だからこそ、誰にでもカスタマイズ可能になると思う。また、将来はXMLを直接編集するのではなく、上記のようなXMLを生成する、GUIを持ったアプリを作りたいんだ。目標は、「メールアプリで、受信メールのフォルダ振り分けルールを記述する、程度の労力で」カスタマイズが可能となること。もっと複雑なカスタマイズがしたかったら、Rubyでブロックを書いて、ルールに組み込んだらいい。

こんな感じの、「段階を踏んだカスタマイズ」ってのが、昔からやりたくてね。AutoHotkeyは、完全なプログラミング言語だから、なんでも好きなカスタマイズができたけど、割とクセのあるAutohotkeyの文法を覚えなくちゃいけないから、初心者には敷居が高い。xfumbleにしても、「カスタマイズにはRubyが書けることが条件です」じゃぁ、誰も使ってもらえないじゃない?

複雑な事情はブロックの中に隠して、とりあえず、それを組み合わせれば、カスタマイズできちゃう。もっと複雑なカスタマイズがしたかったら、Rubyを勉強して、ブロックを新しく作ってね。こんな感じだったら、敷居が低くて、みんなに使ってもらえるんじゃないか、そんなこと考えて、やっとここまで来ましたよ。


と、いうことで、基本はできたから、これから、機能を増やしていくんだけど、遅れがちな開発にを入れるために、デモをしようと思うのです。



Make: Tokyo Meeting 02に、出展しま〜す。

開催日:2008年11月8日(土)
会場:多摩美術大学 八王子キャンパス


Makeは、コンピュータ書籍で有名なオライリーがやってる、電子工作などのDIYやいろんなハックを支援する活動で、雑誌「Make」を出してたり、ブログを運営してたりしてます。おいらMakeの大ファンで、一度展示会を見にいきたいって思ってた。でも、どうせ行くなら、見る方より、やる方!ちょっと思い切ったわけですよ。

Makeは、どっちかと言うと、電子工作などのハードウエア関係が多いから、純粋ソフトウエアのxfumbleは、ちょっと浮くかもしれない。でも、一応、これもある種のハックだと思うし...いや、別に浮いてもいいんだ。オイラとしては、なんでもいいから、現時点として、ある種の「締切り」があった方が開発が加速すると思ってるだけなんだし。

でも、2、3人でも、喜んでくれたら、うれしいな。
本日のツッコミ(全2件) [ツッコミを入れる]
_ Kihuekbm (2010-02-26 [金] 06:39)

cLbFKE この間も俊太郎の詩をお http://www.stlouisbusinesslist.com/business/5021837.htm?info=viagra viagra, pquhdhfmoqzf,

_ viagra (2010-03-08 [月] 11:20)

この間も俊太郎の詩をお http://www.stlouisbusinesslist.com/business/5021837.htm?info=viagra viagra =D

[]