アクセス数

自分でアクセスカウンタ3000を射止めました。

はるか昔ブログのブの字もなかった時代、とあるデジカメのプロトコル解析を日記風に行ったところかなり好評でした。アクセス数が3000になるまでは結構かかったものの、それ以降は急激に上がっていったので3000というのは一つの目安だな~と感じたのを覚えています。

このブログにカウンタを設置しているのも、その時の状況が再現されるのかなと興味を持ったからです。実際のところ機能性も話題性もないのでそうはならないでしょうが。

知り合いのブログはかなりアクセス数が上昇しているそうです。

http://blog.goo.ne.jp/tekutekutozan/

こういった人のブログにはとてもかないません。

草刈り

今日も昨日に引き続いて活動しました。今日は子どもさんたちは来ず、おとなばかりだったので草刈りを行い、今後の方針を話し合うなどしました。

私の今日の仕事はキャベツ畑の周囲の雑草刈りだったのですが、背の高い雑草に覆われてキャベツの葉っぱは虫食いだらけでした。どうもキャベツを作っているんだか、芋虫を育てているのかわからない状況です。

それでも一通り草刈りは終わって何とか一段落できました。

いつもの定食屋さんで昼食をとり、これから設立するNPOに関する計画を話しあったり、遊休施設の活用方法などについていろんなアイデアを披露しました。なかなか楽しかったです。

収穫

今日は久しぶりにボランティアのイベント活動を行いました。GW前後に植えた作物の収穫のため、近所の方に声をかけてじゃがいも掘りをしていただきました。

日差しがないものの気温が高く、湿気も多い不快な日でしたが、みんな子どもたちも元気に遊びながら収穫してくれました。掘ったじゃがいもをその場で茹でて食べたり、そば粉と小麦粉で作ったお好み焼きを食べたりと、おいしい1日になりました。なかなか楽しめたのではないかと思います。

子どもたちがこれからカブトムシを取りに行くというので話をしていると、近所で研修中の農家の卵の青年が、近くのイチョウの木の根元にカブトムシがいて、木を蹴飛ばしたらクワガタと一緒に大量に落ちてきたという話をしていました。まだまだそんな自然が近くにあるもんですね。

帰りは近くのほったらかし温泉に行ってやすみました。

http://www.hottarakashi.com/

ボンベイ閉店

学生のころはよくお世話になっていました。久しぶりに行きたいと思っていただけに残念です。

http://www.sabosabo.com/bombay/

裏メニューの「赤トンボ」を注文しては、1口目で激しく後悔していたものです。

カシミールカレーはとてもおいしかったですね。

ぜひ店長さんの体調が回復されることを願っております。

何で実装するか?

前期にソフトウェアを設計して後期に実装するという授業をしています。夏休み前に内部設計まで終わらせるという過酷なスケジュールなのですが、問題は後期にどんなプログラミング環境で実装するか?というのを悩んでいます。

ここ数年はSmalltalk/80で実装しているのですが、今年はどうしようかしらん。

ちなみに作ろうとしているソフトウェアは学生さんの履修登録を支援するシステムです。

pot casting

英語のカタカナ表現なんてどうでもいいといえばどうでもいいことなのですが、たまたま身近なところで単純ミスを見つけたのでYahoo!で検索したところ、結構あるもんですね。「ポットキャスティング」

全く関係ないですが、高校時代の先輩がair checkを「エアチック」と呼んでいたのを思い出しました。

そういえば私も今日、MaxtorのHDDを買うときに「マクスター」と言ったところ、店員さんに「マックストア」と直されました。

本当にどうでもいいと言えばどうでもいい話です。

ワールドカップ

テレビはおろか携帯さえつながりにくい所に行ってましたので今日がその日とは知りませんでした。

そういえば8年前は、たった1勝することさえ難しいものだと言われていたのを懐かしく思い出します。

エレベータ怖い

もともとエレベータは好きではないのですが、最近報道されるいろんなニュースを見ると、誤動作するんじゃないかという漠然とした不安が現実となりそうで余計に怖くなってきます。

数年前にモスクワ大学を訪問した際、スターリン様式の堂々たる建築物の中で、エレベーターがかなり危険な様子で動いていました。

3(4?)基あるエレベータのうち1基は故障で使えず、別の1基に10名くらいで乗り込みました。すぐに動かないので「なんだかおかしいな」と思ったら、「ガクッ」と(感覚的に)10cmほど「落ち」ました。その後上昇をはじめ数階上って無事に停止しました。

このときの車内の雰囲気は恐怖の体験としていまでも脳裏に焼き付いています。落ちたのが10cm程度で本当に良かったです。

ロシアの恐怖体験として冗談話にしていたのですが、身近なところにも危険がありそうで心配です。

ワールドカップ

今日ちょっと早めに帰宅しようとしたら、同僚に「ワールドカップですか?」と尋ねられました。うちにはテレビがないので見ようにも見れないのですよ。いつもどおりの穏やかな夜です。

SeaSideでのwebアプリ製作

SeaSideを使ってwebベースのアプリケーションを作ろうとしています。

インストールは、梅澤さんのSeaSideJページにあるインストールイメージをそのまま使って行いました。

http://swikis.ddo.jp/umejava/22

とにかく文字でも表示できるものをと思って、簡単なものから作っています。チュートリアルにあった、WACounterを参考に、以下のようなクラスを作ってみました。

WAComponent subclass: #MySeaSideApp1
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'SeaSide-MyApp'

これがベースとなるクラスです。何の機能もいらないのでインスタンス変数も空です。

次に、インスタンスメソッドを登録します。

initialize
self session registerObjectForBacktracking: self.

WACounterクラスで実装されていたのでコピペしましたが、デバッグ用のものでしょうか。なくても動くかもしれません。

renderContentOn: html
html heading: 'MySeaSideApp1'.
html text: 'Hello!'

これがキモとなるメソッドです。drawOn:のように、引数のオブジェクトhtmlに対してページを形作るメッセージを送っていきます。

今度はクラスメソッドを登録します。

initialize
self registerAsApplication: 'MySeaSideApp1'

これがこのクラスをアプリケーションとして登録するためのもののようです。

canBeRoot
^ true

このメソッドでtrueを返すと、config画面のGeneralセクションでRoot Componentの一覧に現れるようになります。

これで準備は完了です。次にwebブラウザからSeaSideにアクセスして実際の動作を試してみます。

http://localhost:9090/seaside/config

上記のURLを開くと、IDとパスワードを尋ねられます。インストールのままならID=admin,パスワード=adminとしてconfig画面を開きます。

add entry point:の覧にMySeaSideApp1と入力し、TypeをSeaSide ApplicationとしてからAddを押します。すると、Application: MySeaSideApp1という画面に移ります。画面下部にGeneralというセクションがあるので、このRoot ComponentにMySeaSideApp1を選びます。

add…で入力したものはアクセスのためのエントリポイントで、後者が実行するアプリケーションというわけですね。画面最下部のDoneボタンを押せば、config画面に戻り、/seaside以下の一覧にMySeaSideApp1が現れているのがわかります。

MySeaSideApp1をクリックすると、

MySeaSideApp1
Hello!

という画面になります。renderContentOn:メソッドの内容と比べてみれば、どういうことなのかわかりますね。

クラス定義と4つのメソッドで、実際に動くwebアプリケーションが作れますし、生成するhtmlコードもプログラムでいかようにも操れるので結構便利です。

まだ少ししか使っていませんが、SeaSideで便利そうなのが実際のオブジェクトの中身をブラウザから確認できる点です。画面の一番下に、Toggle Halosというリンクがあります。これをクリックすると、ブラウザ上でハロが表示されます。目のボタンをクリックすると、実行中のセッションを扱うオブジェクトの内容を覗き見ることができます。これを使えば、アプリケーション動かしながらオブジェクトの変化の様子を知ることができるのです。

これから少しずつアプリケーションを作っていこうと思っています。