2009年1月31日土曜日

Scratchというプログラミング環境

さて、Scratchというプログラミング環境がある事を数カ月前に知った。
アラン・ケイが子供でもプログラミングを学べる環境を、と開発を主導してきた
Squeakから派生した発展形のようで、MITで開発しているらしい。
Squeakについってはかなり以前から知っていた。
もう何年も前だがNHKでもNYの小学校で使われているなんて事を紹介する番組が放送された記憶がある。
Squeakは現在どんなプログラミング言語でもその考え方を取り入れていると言われるオブジェクト指向の源流となった言語の一つだと言われる、Smalltalkというプログラミング言語の上に築かれた、一種のビジュアルプログラミング環境だ。
要するに、キーボードで英語の呪文のような命令を一文字ずつ打ち込むのではなく、タイルのような目に見える部品をマウスでドラッグして、まるで絵の世界のロボットでも組み立てるようにして、視覚的にプログラミングを組み立てるこのできる環境だ。正確に言うと、それはSqueakという環境の上に築かれたMorphとかe-toysという環境のことなわけなんだろうが、一般的にはそう受け止められているようだ。
要するに、難しげな英語っぽい命令を沢山覚えたりそれをキーボードで一文字ずつ打ったりせずに、マウス操作だけでもプログラムが書ける環境であるSqueakを、さらにユーザーフレンドリーにしたものがScratchだ、と言ってもそれほど間違っているとは言われないだろう。

以前から、これだけ「コンピュータ」と呼ばれるものが身の回りに溢れるようになったこの時代に、実は本当にコンピュータらしいものなんて全然ないんだと感じていた。コンピュータ雑誌なんて呼ばれるものはいくらでもあるけれど、本当に「コンピュータ」について語る雑誌なんて一冊もないじゃないか、と。もう10年位経つのだろうか、bit、とうい雑誌が「休刊」という名の廃刊になった。あれが唯一の「コンピュータ」の雑誌だったのに…
「本屋」が無くなって「雑誌・新書屋」ばかりになったとの似ている。

今の「コンピュータ」なんて、ビデオレコーダーとほとんど同じだ。誰かが作ってくれたものを、そう使うように決められた方法を「学んで」、その通りに操作するだけ。
このどこに「コンピュータ」の本質がある。
universal turing machineの有限近似たるコンピュータは、今、これだけの種族の繁栄を見ながらも、きっと心の底は虚しさが渦巻いていることだろう。

SqueakやScratchを開発する心の底には、こんな虚栄を、きっとこんな虚しさを、ぱっと見この世の春を謳歌するコンピュータに、本当の生き甲斐を与えたいという思いがあるんじゃないだろうか。
子供でもプログラミングできる、そしてコンピュータに対しては素人である、ほとんど全ての大人にもプログラミングできる、すなわち、「コンピュータ」と呼ばれる家電製品を、正しくコンピュータたらしめるためにそのuniversatilyを引き出すための道具としてSqueakやScratchを開発しているんじゃないかと思う。

酒が入っているのでなんだか良く分からなくなってきたが、要するに、CだのC++だのC#だのJavaだのLispだのPrologだのMLだのPythonだのPerlだのRubyだのActionScriptだのJavaScriptだの…、呪文のようなプログラミング言語を自分の指で一文字ずつタイピングせずとも、アイコンのような部品をマウスでドラッグ&ドロップすることでプログラムを組み上げていくことのできる環境が、Scratchです。まだSqueakの情報量には及ばないけれど、英語の本は一冊出てきました。いずれここで報告したい。
小中高で、教える先生が「何をすればいいか分からない」から、とりあえずネットで調べてパワポでプレゼン作って発表会させる、なんて授業をする位なら、こんな環境でコンピュータに自分の気持を伝え、それを実行してもらう経験をしてもらえたらいいなぁ、と思った。
コンピュータは、気持を正確に伝えることさえできれば何でもしてくれる、万能機械なんだから。

2009年1月25日日曜日

SKKIMEとは、SKKとは

ところでSKKIMEと言っても知らない人が多そうなので少しだけ説明。

名前から分かる通りMS-Windowsのための日本語入力メソッドの一つです。
Windowsに初めからついてくるMS-IMEや、ジャストシステムのATOKなどの一般的なIMEとはちょっと変換の方法が違います。
元々はEmacsという、現在も主にunix系OSで広く使われている(ひょっとして、「いた」、になっちゃった?)テキストエディタで利用するために、Emacsの組み込み拡張言語Emacs Lispで実装されたものでした。unix系では早くからEmacsを飛び出してX-Window環境全般でSKK風に日本語入力ができるようになっていました。
それで、MS-IMEが嫌になってウィンドウズでもそれを使いたいなぁと思っていた時に見付けたのがSKKIMEでした。
つまりSKK風の日本語入力・変換をウィンドウズで可能にしてくれるIMEです。

SKKでは、平仮名入力モードで「aiueo」と打つとそのまま「あいうえお」と確定した平仮名が入力されます。余分なEnter押下は必要ありません。
「愛飢え男」と入力したい場合には、「Ai[space]UEO[space]」という感じに打ちます。
ふだんは平仮名が確定入力され、漢字などに変換したい時にはその初めを大文字で打つという感じです。送り仮名などがある場合には「KannJidesu」のように漢字(変換が必要な部分)と平仮名(変換が不要の部分)の区切りを大文字で入力します。ちょうど手書きのような感覚と表現される事が多いです。
もちろん変換候補が複数ある場合にはスペースキーを何度か押すなどして候補を選択します。

もし変換したい漢字が辞書に登録されていないと、そのまま辞書への登録モードになります。
辞書登録が文章入力とシームレスになっているので、辞書登録画面を出して…のような面倒なことなく非常に楽に辞書を育てる事ができます。
まあ、連文節変換とか前後の文脈を読んで変換するというような「賢い」ことはしてくれません。まさに手書きの感覚なので。しかし「小賢しい」ことばかりされてイライラすることもなく、大変快適に入力できます。

ただ、大文字を入力する事が多いのでシフトキーを多用、つまり小指を酷使するのがちょっと大変です。
Linux上で常用しているEmacsではキーバインドをいじって日本語キーボードの「無変換」「変換」キーを利用しているので、疑似親指変換の気分で快適に入力できるんですが…
この辺はウィンドウズでもなんとかなるかもしれないのでそのうち調べよう。

そうそう、SKKを手放せない大きな理由の一つが、カタカナ英語の変換です。
例えば、「ディスプレイ」のようなカタカナ英語は非常に多いわけですが、これを読み入力するのはとても面倒で、嫌いです。
SKKでは「/display[space]」と打てば変換できます。つまり英語の綴りをそのまま入力すれば変換できるのでとても自然に楽にカタカナ英語を入力することができます。
その他にも補完入力など必要な時にだけ利用できる小賢しくない便利な機能があり、文章書きという大変基本的な作業のための基本の基本ツールとして手放せないものになっています。

ということで、気になった人はぜひ試してみて下さい。オススメ

SSKIMEのインストールと設定

GAEやウェブアプリ作ってみたいなと思ったのも、仕事的にちょうど区切りが良い時期になったからだ。
それで母艦のPCや若干ごちゃごちゃしてきていたバックアップなどを整理して、資料やメール環境なども整理していた。
Windows環境も綺麗にしてキーマップの入れ替えなどもしてみた。常用しているツール群は過去にダウンロードしたものを保存してあったので問題ない、はずだったんだけど、最近ずっと使っていたSKKIMEだけはファイルが見付からなかった。
なのでググってみたもののあまりヒットしないんですね。まあ、ユーザー少なそうだし。ひょっとしてもう死んでしまったのかと思いつつ探し続けると幸いこれまで使っていたバージョン1.0系だけではなく1.5系が存在する事が分かって一安心。

さっそくインストールして使ってみた。
XPを使っているのでSKKIMEの開発者さんのページから1.5のXP用をダウンロードして展開。展開してできたフォルダにあるSKKI1_5U_WXPファイルの上で右クリックし、プルダウンメニューから「インストール」を選択してインストール。
これで言語バーにSKKIMEの選択肢が追加された。


続いて辞書の設定。
まずはここから辞書ファイルSKK-JISYO.Lをダウンロード。gzipで圧縮してあったのでこれも展開し、圧縮を解いた辞書ファイルを自分の好きな場所に置く。
そして言語バーの上で右クリックしてメニューから「設定...」を選択して「テキストサービスと入力言語」ダイアログを表示。

その「設定」タブ内でSKKIME ver.1.5を選択した上で右側にある「プロパティ」ボタンを押してSKKIMEのプロパティダイアログを表示させる。

その「辞書設定」タブで辞書ファイルを指定。ひょっとして既に動いてるSKKに知らせる必要があるのかも知れないのでついでに「同期」ボタンも押しておいた。
これで言語バーから「SKK IME Unicode Edition」を選択すればSKK IMEが使える。

フレームワーク選び

GAEに興味を持った理由はやはりGoogleのBigTableなどのバックエンドを使ってみたいと思ったのと、現在自由になるglobal IPを持ったマシンがないためで、何かウェブアプリを作ってもそれを外から使えないなぁと思っていたからだった。
金銭的なコストなしに簡単に誰にでもアクセスできる場所で自分で作ったものを動かす事ができるのは魅力的だよね。

でも、細かい事はこれから勉強していくとして、でもやっぱり色々制限があるだろうわけで、できれば自分で自由な環境を選んでウェブアプリ作りたいなぁとも思ったり。

それで色々耳にする事が増えたウェブアプリ用のフレームワークを探してみる事にした。GAEもPythonだしとりあえずPythonのものを探してみたけど、いろいろあるんだね。
RubyだとRailsってのが一番有名なのかな。
PythonだとZopeの子孫?のPloneや、一番人気のDjango、元気がありそうなTurboGears、新進気鋭?のPylons、さらには身軽そうなCherryPyやweb.pyなど。
できれば手軽なものが良いなぁと思うので、Pythonさえインストールされていればどこでも稼動して、ほとんど通常のPythonプログラムの感覚で開発できるというCherryPyに特に興味を持った。多機能さや今後の発展性を考えるとPylonsなのかなと思いつつ。
ただ、一番人気のDjangoは文献も多く日本語のものもあったり、またGAEとの関係も深いようでちょっと気になる。
PylonsはRuby on Railsとの関係も深いらしくてちょっと気になる。CherryPyでなければこれかな。
あれこれ欲張っても仕方ないし、とりあえずは手軽そうなCherryPyにする。

もう10年位前だろうか、ウェブブラウザが日常的なツールになってきたころ、面倒なGUIを作るかわりにウェブブラウザをインターフェイスにしようなんてことが増えた時期があったと思うけど、今やりたいのも実際にはその程度の事だし、まずはCherryPyで十分そう。
認証機能も提供されてないってのがちょっと不安だけど、まあ基本はスタンドアロンなCUIプログラムを作ってそのインターフェイスにしたい程度なのでとりあえず問題はない。
それ以上のことをやりたくなってCherryPyでは厳しそうだったらPylonsにでも移行しよう。

2009年1月24日土曜日

GAEの参考文献

さて、これからGAEを試していくわけだが、基本的にはGoogleから提供されているヘルプなどの文書を読みながやっていく事になる。
が、できればもっとフレンドリーな参考文献はないのかなと。
Googleのヘルプって、結局知りたい事が分からない事多いような気がするんだよね…
まあ、Gmailとかカレンダーとかの話だけど。

それでさっそくamazon.co.jpとamacon.comで探してみたところ、もうすぐ一冊、6月頃にもう一冊GAEの本が出るらしい。
つまり現時点ではまだ出てないってことね…
"Google Apps ..."なんてのは色々あるけど、これは別物だよね。
一冊目、19.99ドルのものが日本円で2200ということなので、大人しくco.jpでショッピングカートに入れておきました。

Google App Engineをはじめてみたい

ブログを作って半年放置してから、そういや作ったと思い出した...

というわけで、当初の目的どおり、このブログはメモ的に使っていこうと思う。
これまでいろんなメモをPC上に作成したり溜めたりしてきたが、時間とともに整理がつかなくなり、価値を失う事が多かった。
それでいっそブログにメモってアチラさんに保管をまかせて検索などの諸機能もお願いしてしまうことにした次第。
実際そんなメモ程度のものでも助けになってくれるブログは結構あって、ちょっと忘れてしまった事や自分でちゃんと調べるのが面倒な事をチェックするのに役立っていることだし。

ということで、まずはGoogle App Engineを使いながら導入方法などをメモっていこうと思う。
"Google App Engine"でフレーズ検索してみても、(少なくとも日本語の情報は)あまりみつからない事だし。

という訳で、今日はとりあえずのとりあえずで、GAEのアカウントを作ることにした。
が、すでにGmailやGoogle Groupなどを使っていてそちらのアカウントがあったのでそれで良かったらしい。
GAE公開当初は先着何名様とかだったと聞いたので、別アカウントかと思っていた。
結局パスワードの再入力と二三クリックしながら携帯メールで本人確認コードを送ってもらい、それを入力することでGAEを開始できるようになった、らしい。

というわけで(←これ多いね)、とりあえずSDKをダウンロードした。
基本的には Linux 上で作業する積りなのでLinux用を、そしてついでなのでMS-Windows用も。
Python2.5が必要とのことだが、既に入れてあるので問題なし。
サーバのエミュレータがPython2.5で書かれているらしい。
そしてそもそもGAEの使用言語がPythonということなので。
この点も、興味を引くものは幾つもあれど、GAEを実際に使ってみることにした理由の一つ。