日曜日, 2月 10, 2008

Sugarチュートリアル(20080210)

OLPC wikiにはチュートリアルがいくつもある。
いくつかやってみたのでその寸評。

Activity tutorial
一番最初にやってみるべき。基本的なことが分かる。
Gladeを使わないなら、これで十分。


PyGTK/Hello World with Glade
PyGTK/Hello World Tutorial

Gladeを使ったチュートリアル(下段は使わない物も含む)。お勧めは下段。
上段はアプリケーション本体とActivityのためのコードが密になっているが、下段は分離されている。
ただし、下段にはGladeの詳細な操作が含まれない。
レイアウトを記述したXMLはサンプルに含まれているので困らないといえば、困らない。
ただGladeの使い方も知りたい人はちょっと困る。

下段で行うGladeの操作を未来の誰かのために書いておく。
ただし、チュートリアルに出て来るそのまんまのものは出来ないのであしからず。

1
Gladeを起動して、パレットからWindowを選び、widgetを置く準備をする。

2
パレットのVertical Boxクリックし、次に1で作ったWindowをクリックする。
何段にするかダイアログで聞いてくるので2と入力。

3
Labelをクリックし、2で配置したVertical Boxの上段をクリックする。
Labelが配置され、プロパティパネルにLabelのプロパティが出るので、ラベルの内容をHelloとし、マークアップの使用をONにする。

4
Horizontal Boxをクリックし、Vertical Boxの下段に3列で配置する。

5
Hrizontal Boxのそれぞれの列にボタンを配置する。
それぞれのnameを左から順に、helloButton、cleanButton、quitButtonと設定する。

6.保存する

これで、ほぼサンプルと同じになる。「ほぼ」だけど、チュートリアルの実施に問題は無いはず。


他のチュートリアルは別の機会があったらやってみる。

Sugar on Ubuntu on Parallels

XOの発送は遅れているそうなので、遊ぶための準備をここ数日進めてみた。

何はなくともSugar環境の構築。

これ自体は何度かやってるけど、生活環境にSugar環境を構築すると、依存関係でいろいろ衝突して結局消したりしてる。
そこで、Parallels上のLinux上に構築出来ないか挑戦。使うLinuxはUbuntu。
前回6.06に入れた時のようなトラブルも無く無事導入完了
よく使うコマンドを以下の様にaliasに登録しておく。

$~/sugar-jhbuild/sugar-jhbuild shell sugar-shell
$~/sugar-jhbuild/sugar-jhbuild run sugar-run

Ubuntuでやる前に、Fedoraで挑戦したら失敗した。原因は使い慣れていない物を使ったせい。

木曜日, 2月 07, 2008

iGoogleのテーマ

誰でもテーマを作れるようになって、テーマを選択の中身が随分増えましたね。
サンプル画像が出てないのとか何とかしなさいよと思いますが。
で、見た目で選んだやつが、ジョン前田製でびっくり。
なにやってんすか前田さん。。。

日曜日, 2月 03, 2008

最近Pythonで作ったもの

最近作ったもの

  • ディレクトリを漁って、ドキュメント(HTML)を自動生成
  • ディレクトリを漁って、事前に定義したルールに従ってファイルを振り分け
  • ディレクトリを漁って、SQL生成

WindowsのGUI以外を知らない人にも使わせる事が前提なので、ダブルクリックすれば万事OKな作りになっている。
会社からファイルを持ち出しちゃダメなので、コードそのものを未来の自分に送る事はできないが、概要だけを未来に送る。
walkとかlistdirでディレクトリ内のファイルリストを取り出して、endswithで拡張子を見て後は適当に。
エラー処理は考えてません。

もうすこし面白い物を作りたいな。

木曜日, 1月 17, 2008

自動化、ラッダイト運動

今現在、お仕事ではテスト手順書を書いて、その手順書からSeleniumのテストケースを自動生成するという作業を行っている。(自動生成スクリプトは自作した)
いまやっている機能の場合、テストケース出力には5秒ぐらいかかって、全テスト(500ケースくらい)の実施には30分ほどかかる。

テスト実施は別な人がやることになっているので、本来、私の作業はテストケース出力まで。
とはいえ、せっかくテストケースがあるのに実行しないのはもったいないので、何となくSeleniumを動かしてしまう。すると、当然のごとくバグが見つかるので、修正作業に回す。
この勝手なテストは、正規のワークフローではないので、この時点ではバグを直さなくても文句は言われないのだが、見つかった物を放置するのも気持ち悪いので修正は行われる。修正が終わったら、またテストを流して直っている事を確認する。

隣を見ると、同じくらいの量のテストを3日くらいかけて人力だけでテストしている人たちがいる。
Seleniumの良さはさんざん宣伝したので、知らないわけはないのだが、頑に人力だけに頼る理由はなんだろう。

納得出来る理由としては学習コストがあるが、Selenium IDEという便利なものがあるので、コマンドを丸暗記する必要は無い。多少難しいのはstoreEvalのようにjavascriptを使うものだが、それが必要となるケースはそれほど多くはない。今となってはテストケース自動生成まで出来るようになったので、Seleniumについて何も知らなくても、スタートボタンさえ押してくれればそれでいい。

そこまでしても人力のみに頼ろうとするのは、機械に仕事に取られたくないという気持ちの現れだろうか?
単純に何も考えてないだけというのが一番ありえそうだが。

土曜日, 12月 29, 2007

電脳コイルまとめ

最終回が過ぎて大分経つけど、まとめ。

最終的な大構造は「こども(劇中の全人物) vs 大人(メガテク)」。アニメ本編は、その対決に至るための前哨戦というか、「こども」側がまとまるための衝突の物語だった。

なので最終的にヤサコが倒すべき敵は、結局劇中には出てこなかった。
当初、敵に見えたサッチーは、ペット性が高まるにつれ、おばちゃんの代弁者として動くようになり、さらに2.0に敵役を譲ってからはこどもの味方となっている。
途中から登場した猫目も、表面的にはイサコを操り、ハラケンを脅しているが、彼も、彼なりの理由でメガテクと対決しており、ラスボスというわけではない。

最終的にメガテクを代弁するキャラクターは登場せず、それ故に多くの謎が解決されたにも関わらず、メガテク絡みの謎はほとんど残されている。
ヤサコたちの目的は、メガテクの不正(?)を暴く事ではなく、「あっち側」についてのこと、イサコの兄の復活、カンナの事故の真相を知る事などにあるので、メガテクがどんなことをしていようと巨悪以上の印象は受けない。
一応、ヤサコ父と猫目はメガテクと直接対決をしているようだけど、ヤサコ父はほとんど出番がなく、猫目にとってメガテクの悪事は自明なので、謎解きは発生していない。

最終回直前にメガネを取り上げられた子供達は、結局中学生になってもメガネをつけ直すことはなく、ヤサコとイサコだけが装備している。
この描写を見ると、敵というのはメガテクですらないのかもしれない。これまでやってきたことはともかく、メガテクはメガネの普及に尽力しており、その意味ではこどもの世界の創造者であり味方である。
そのメガネを取り上げ、こどもの世界を崩壊させた「親」という存在こそが最大の敵といえる(一応通過儀礼としての意味はあるのでやはり純粋に敵というわけではないのだろうけど)。
ヤサコとイサコが依然としてメガネをつけ続けるというのが「親殺し」なのか「成長の拒否」なのかは最終回からだけでは判断出来ない。

DVDはどうしようかなあ。

追記

最後みんなメガネかけてた。

火曜日, 11月 06, 2007

Selenium敗れる?

Canoo WebTestとSelenium(RC)の対決記事が、地味に話題になってるようなので、乗り遅れないうちに書いておこう。

書いた人がWebTest派なので、当然の結果ではあるんだけど、勝ち負けでなく比較として読めば、2つのテストツールの違いが分かる良い記事だと思う。
とはいえSelenium派としてフォローしたい。
#WebTestは使ったことないんだけどね

とりあえずSeleniumが勝利した項目を並べてみる。

  • Browser fidelity(いかにブラウザに近いか(?))

  • Beginner friendly(初心者にやさしいか)

  • Support for badly formatted HTML code(「悪い」HTMLコードをサポートするか)

  • Multi-language support(多言語サポート)



WebTestとSeleniumの最大の違いは、本物のブラウザを使うかどうかという点。Seleniumが勝利した数少ないこれらの項目のうち、"Browser fidelity"と"Support for badly formatted HTML code"の2つは、この仕組みのおかげで勝てたと言いきっていい。件の記事でもブラウザ上でテストが動くという利点は認めてるし。というか、この2つと他の項目が同じ得点ってのがおかしいでしょ。
そもそもbadly formattedってのが今時ありえないでしょと言われたら、言い返せないけどさ。
でも、実際のブラウザでテストできるというのは、5点分ぐらい貰ってもいいはず。で、悪いHTMLサポートで追加2点。
まあ、これでもまだWebTestに得点で勝てないわけですが、そんなに良いのだろうか。

WebTest勝利項目のうち気になるのは、antに組み込めるのと、HTML以外にも使えるという点。
これはJava内で実行されるWebTestの特性を活かしているわけで、Seleniumにはちょっと無理。
これは勝てなくても構わないと思うけど、Speedも絶対に勝てないだろうなあ。
XPathをフルに使えるのもいいなあ。というかSeleniumを使っていてかゆくなるところを全部カバー出来てるように見えちゃうなあ。
そのうち時間を見つけて使ってみたいです。

番外対決ですが、それぞれの本山サイトのデザインはWebTestの圧勝です。ドイツデザインっぽくてかっこいいなあと思ったらスイスはバーゼルの会社だそうです。
Selenium本山
Canoo WebTest本山


Selenium勝利項目最後の"Multi-language support"ってのは、テスト対象のページが何語で書かれているかではなく、テストケースを書くのに使えるプログラミング言語のことを言ってます。