OLPC

新しいメーリングリストにもちょびちょびメールを書いています。がそれはともかく、Nicholasからの正式なアナウンスです。http://wiki.laptop.org/go/AnnounceFAQ

Windowsとdual bootできるようにするということで、今までのコミュニティにはがっかりする人もたくさんいるでしょうね。ただ、あたかも世の終わりであるかのように受け止める人も多いですが、Windows上でも気にせずにフリーなソフトウェアを書いている人もいるし、すでにいろいろな教育用コンテンツもあるのでまたそういう人々を中心に新しいコミュニティができればよいのではないかと思います。

実験

GUIフレームワークでの実験なぞをしています。使用しているのはまだSqueakです。
ズーム可能なインターフェイスをMorphic上で書こうとするのは初めてでもないのですが、いつも意味不明な壁に当たってめげていました。Morphicの持つ機能には頼らずに全部自分でやるという建前ではありますが、レンダリングをするところはやっぱり既存のBalloonCanvasなどを使ってしまうわけです。

今回はもう一度気合を入れなおして、じっくりと見直してみました。はまりポイントは

  • 座標変換行列がisPureTranslationかどうかによって最適化しようとしているわけですが、isPureTranslationのときはFormCanvas>>transformBy:clippingTo:during:smoothing:の中でoffsetにnegatedを送るのです。つまり、例えば拡大率が1.0から0.999に変えるだけで、offsetの意味することが正反対になってしまっておかしなところにレンダリングされるという問題がありました。
  • BalloonCanvas>paragraph:bounds:color:は座標変換を実はサポートしていないので、テキストをレンダリングできません。
  • #transformBy:clippingTo:during:はBalloonCanvasには定義されていないので、BalloonCanavsを使っていたつもりが、during:のブロックの中で使うCanvasがいつの間にかFormCanvasになってしまったりします。

というあたりですが、おかげで無限に広がって自由に座標変換できるフレームワークに一歩近づきました。

「無限に広がって自由に座標変換できるフレームワーク」そのものは珍しくもないですが、VPRI謹製の新しいグラフィックスエンジンを使って、フレームワークもさらに簡素にして、新しいEtoysもどきが作れるところまで行きたいわけではあります。