_whyさんがまたおもろそうなものをドロップした

Hackety

Shoes is a very informal GUI toolkit. It's for making regular old windowing apps. It's a blend of my favorite things from the Web, some Ruby style, and a sprinkling of cross-platform widgets. (More in the README.)

というわけで_whyさんがまたおもろそうなものをドロップしてくれた。rubyのMLにもほんの10分前ぐらいに流れてたから、ホントにできたてホヤホヤなんだろう。

webっぽいデスクトップアプリのguiをつくるものらしく、CairoとPangoを使ってるらしい。わたすがライヴコーディング向けに考えてたアイデアがあって、「あーjrubyでswingしかねーかなー」と思ってたとこだったので激しく試したい衝動に駆られるわけですな!

なにが魅かれるってDxSxLぽいから

サンプルコードが↓のようなかんじらしい。

label, time = nil, Time.now
Shoes.app :height => 150, :width => 250 do
  background "rgb(240, 250, 208)"
  stack :margin => 10 do
    start = button "Start" do
      time = Time.now
      label.replace "Stop watch started at #{time}"
    end
    stop = button "Stop" do
      label.replace "Stopped, #{Time.now - time} seconds elapsed."
    end
    label = text "Press start to begin timing."
  end
end

まさにrakeライクなDxSxL!! こりゃ早くコミューンに戻って試したいものだと思う火曜日の朝、みなさんいかがお過ごしですか?

つかrubyist magazineのcairo解説みてたらフツーに仕事に使えそうだな。

ざっくり

このページintel macビルドを試した。おそらく依存するものをつっこんで、rubyをビルドすれば問題は少なそうなんだけど、今日は時間があんまり無いので。とりあえず依存するものたちがあるけどportsでcairoとpangoだけ指定したらモロモロ入ったみたい。

sudo port install cairo
sudo port install pango

あとは解説にある通りにmkdirとcpする。なんにもいじってなければ/tmp/Deps/etc/pangoは/opt/local/etc/pangoに置き換えてそのままいける。

だがしかし文字化け発生。後日ゆっくり検証するために一応自分のメモ用に書いとく。

追記:「あー」と思って(ここに書いてあった)cairoのインスコ時に「sudo port install cairo +quartz +atsui」としてみたけどやっぱダメだった。ちなみにcairoの再インスコの際に「sudo port deactivate cairo」とするのを忘れてビミョーにハマった。バカか!!

さらに追記:winXPで試したら、さっくりと動いた。おそらくhackety hackからの派生物だから当たり前っちゃ当たり前だと思うけど。

まだまだ追記:すこし時間がとれたので、見てみるとこんなん準備されてた。さくっとosxでも動作確認できた。ただしShoes.app/Contents/MacOSにあるuse-depsてシェルスクリプトを動かさないとまたはまるので要注意。