2010-10-02(土) [長年日記]
■ Debian lennyでClojure開発環境を作る
Android用アプリの開発をするために『プログラミングClojure』を読み始めたので(←どう考えても不必要に遠い道のり)、実際に動かせる環境を作る。普段持ち歩いているLet's note上のVMwareで、Debian lennyが動いているのでそこへ。
まずはjavaの環境を入れなければいけない。Java環境にはいくつか選択肢があるみたいだけど、non-freeながらオリジナルのSun実装があるのでまずはそれをチョイス。Clojureのビルドにはantも必要らしいので一緒に入れる:
% sudo aptitude install sun-java6-jdk ant
antが一緒にgcjを入れるのが気になるけど、依存関係どうなってんのかなぁ……。まぁ、/usr/bin/javaコマンドは/etc/alternatives/javaを経由して/usr/lib/jvm/java-6-sun/jre/bin/javaを指しているようなので、OKなんでしょう。
Clojureはtestingには1.1のdebがあるみたいだけど、本書のサンプルにも常に最新のclojure.jarが含まれていて、それだけあれば十分らしいので、まずはそっちを持ってこよう:
% cd ~/src % git clone git://github.com/stuarthalloway/programming-clojure.git
対話式にコードを試せるREPLを起動して「Hello world」してみる:
% cd ~/src/programming-clojure % bin/repl.sh Clojure 1.1.0-alpha-SNAPSHOT user=> (println "hello world") hello world nil user=>
OK、動いた。
いちおう公式な処理系もGithubから作っておく(けどたぶんしばらくは使わない):
% mkdir ~/src % git clone git://github.com/richhickey/clojure.git % cd clojure % ant
続きはまた。
2010-10-04(月) [長年日記]
■ Clojure勉強中(1)
小田急線や横浜線で『プログラミングClojure』を開いたまま寝こけている人がいたら、それはワタシです。
いやまぁ、寝こけていることがあるのは事実ながら、数年前にSchemeにチャレンジしてすぐに挫折したのに比べると、ずいぶん理解してる感じはする。Clojureの構文がSchemeに比べて慣れ親しんだものに近いというのはあるが(といってもカッコ乱発のList属には違いないけど)、それ以上についこのあいだ『メタプログラミングRuby』を読んだことが効いてる。
読みながら「これをRubyで書いたらどうなるだろう」と思い浮かべると、その答えがあるていど頭に浮かぶから、理解が早い。プログラミングを初めて学ぶ初学者ならまだしも、あるていど経験があって頭の固くなった大人にとって、知っている知識を足場にできるかどうかは学習スピードに相当な違いが出るものだ。Lisp属の教科書にも、他言語と比較しながら学べる『はじめてのRuby』みたいな本があればいいのにね。
で、実際にREPLに対してポチポチとサンプルコードを打ち込みながら学習を進めているわけです。簡潔に書ける言語だからと言って、本の説明までずいぶん簡潔だったりするものだから、動かしてみないと何が書いてあるのかさっぱり理解できなかったりするので(唐突に登場したマクロの説明が50ページもあとに登場したりするし)。うっかり「(iterate inc 0)」とか打ち込んで「ギャッ」とか言ったりするわけです。ま、ひさしぶりに新しい言語を学ぶのは楽しいな。
もっとも、JavaVM上で動作する、Javaのクラスライブラリを直接呼び出せるLisp属言語ということで、けっこう妙なところがあるのだけど。特にメソッドチェインのシンタックスシュガーはなかなかキモい。あと、末尾再帰最適化ができないと知って「えっ」と思ったところ。大丈夫でしょうか……。
2010-10-06(水) [長年日記]
■ Clojure勉強中(2)
さいきん猫画像がなくてすみません。
空き時間にぽちぽち進めているClojure、教科書を読んでいるときはREPLに直接コードを打ち込んで動かしているからいいけれど、アプリケーションを書こうと思ったらちゃんと.classファイルを生成して配布可能にしなくてはならない(もちろん.cljファイルのまま配布したっていいんだけど、それじゃClojureを選んだ意味がない)。
で、やっと教科書でもそのへんに差し掛かったので、一番プリミティブなJavaアプリケーションはどんなものかと思って削っていったらこんな感じになった(あってる?):
(ns hello (:gen-class)) (defn -main [& args] (println "Hello, world."))
Rubyでは3タブだが、Clojureでは普通に2タブである(余談)。これを"hello.clj"として保存し、(まだコマンドラインコンパイラを使えるようにしていないので)REPL上でコンパイル:
user=> (compile 'hello) hello
するとclassディレクトリの下に.classファイルができる。hello.classだけじゃなくて他にもhelloで始まるファイルが都合4つ。これを普通にJavaアプリケーションとして実行する:
% java -cp classes:lib/clojure.jar:lib/clojure-contrib.jar hello Hello, world.
JRubyなんかだと、rubyのクラスとJavaのクラスが一致するように書けるからもっとシンプルなんだろうけど(jrubycを使ったことがないので「たぶん」)、関数型言語とオブジェクト指向言語の橋渡しをするための「おまじない」が多くてかなーり暗号っぽい。アプリケーションならエントリポイントを1個だけ作ればいいけど、これがクラスライブラリだったりすると「うぇ」ってなるかもなぁ。
まぁ、このあたりはテンプレ化できるはずなので、きっとスマートに書けるフレームワークがあるに違いない。なんにせよやっと単体で動作するアプリが書ける準備ができたので、だんだん面白くなってきたよ。
2010-10-08(金) [長年日記]
■ Desire (X06HT)にFroyoが来た!
今日はSoftBankがDesire(X06HT)向けにAndroid OS 2.2(Froyo)のアップデートを配布する日とあって、Androidコミュニティは朝から賑やか。10時からの配信開始に向けてバックアップをとったりroot化を解除したりと準備運動に余念がない。Desireユーザのかなりの割合が「二台目」な人たちなので、人柱的な役割は彼らに任せて、おれはのんびり夜になってからアップデートしようと考えていたのだが。
Twitter上に流れる情報を見ていると、アップデートに失敗したとか、がっかりした的な情報はほぼ皆無。HTCとSoftBankはずいぶんいい仕事をしたようだ。というか、Desireユーザってこんなに大勢いたのか! おまえら今までどこにいたんだよ(笑)。
ともあれ、そうなると夜まで待ってなんていられない。昼休みにアップデート開始。
で、まずは本体のストレージに空きを作らないといけない。情報によれば25MB以上の空きが必要らしいのだが、現在おれのDesireは15MBしか空いてない。あと10GB10MBもどうしろと……。
もっとも、プリインストールされているアプリのアップデートがけっこう大きくて(数MB)、こういうのはあとから再度インストールしてもいいので、ばっさばっさ消していったらそれなりに空いた。マナーモードにしてからOSアップデート開始*1。
2度ほどリブートがかかって、なんの問題もなくアップデート完了。ダウンロードも含め、20分くらい? もっともホームをADWにしているせいか、見た目はほとんど変化なし。
とにかくメモリ不足にあえいでいたので、2.2からSDカードに移動可能になった一部のアプリをがんがん移動させる。対応アプリは悲しいほど少ないという話だったけど、Dolphin BrowserやMixZing、twiccaなどが移動できたので、かなり空いた。25MBくらい。つごう10MBほど退避できたことになる*2。
一番大きかったのは、WiFiをONにしてもちゃんとブラウザが使えること(笑)。まったく、こんなひどいバグがよくもここまで放置されてたものだ。
あと、Flash 10.1のサポートは、やはりWebでできることをずいぶん拡大してくれてる。まぁ、ぶっちゃけた話、ニコニコ動画なんだけど。ちょっと操作性に難があるものの、ちゃんとコメント付きで動画が再生できるのは感動だ。
地味に嬉しかったのが、Webkitのバージョンアップ。これでHTML5のサポートレベルがだいぶ上がった。フォームのautofocus属性やplaceholder属性がちゃんと効くようになったし、type属性もnumberだと数値用キーボードに切り替わるようになったし。
速度に関しては、キビキビするような気がするけど、もともと反応がいいDesireのことなので、そんなに体感は違わない。重いアプリなら違ってくるのかも知れないが。それより、速度と何を引換えにしたのかは気になるな。メモリか、CPU(バッテリ寿命)か。これはもうちょっと使い込んでみてからじゃないとわからないけど。
いずれにしても、iOSには完全に水をあけたなー。Android最高や。
2010-10-10(日) [長年日記]
■ ナビスコ杯準決勝: 川崎 1-3 磐田
ナビスコはどうしても代表戦の裏番組みたいな立ち位置にされてしまうので、準決勝だというのに代表に招集されているケンゴが出ない。これで勝てというのか……とか言うと他の選手に失礼かも知れないけど、実際かなりのハンデだよなぁ。とは言うものの、磐田にも駒野や前田がいないわけなので実際は同条件なんだけど。
で、前半は失点したものの3分後に追いついて、これならなんとか勝てるかもと思ったが(アウェイで勝っているので引き分けでも決勝進出)、後半、特に選手を入れ替えてからがグダグダで、立て続けに失点してしまった。あーあ、今年の11月3日の予定がなくなっちゃったよ。
リーグ戦は首位との差が開きすぎたので他力本願でもしないと優勝の可能性は低いし、残るタイトルのチャンスは天皇杯かぁ。代表が抜けても勝てるようにならないとねぇ。
■ ドーラ、踊りながら刺身を食べる
(写真はありません←非難轟々)
試合には負けたが、なんとなく猫たちにいいもの食わしてやろうぜ的な流れになったので、帰りにカツオの刺身を買って帰った。
ドーラは人間の食事中によく食べ物をねだるし、最近はキッチンに上がって人間の食べ残しをあさろうとするくらいなので、こういうものは好きなはず。という予想どおり、大喜びで食べた。いつもはグスタフの餌を横取りすることしか考えていないくせに、今日は自分の皿に夢中だ。皿の外に取り出して、両手で捧げ持って食べたりするが、上手に持てないので踊っているかのように見える。
グスタフはというと、実は正月にも刺身を与えてみたのだけど、なにしろ人工の食品しか食べたことがないので、刺身の食べ方がわからない。というか、これを食物として認識できないらしく、まるっきり食べないんだな。不憫だなぁ……とは思うものの、人間の食べているものを食べたがらないというのは、変なものを食べないという意味で、むしろ安心ではあるのだけど(あいかわらずウール製品は大好きだけど……)。
2010-10-11(月) [長年日記]
■ 久しぶりにバイクに乗ろうとしたらエンジンがかからなかったでござる
今年の夏はあまりに暑くて、まったくバイクに乗る気になれなかったのだが、やっと秋らしい気温の日が増えてきたので、そろそろ復帰しようかと思った(まぁ、今日もなぜか夏日だったわけだけど)。日記によると5月末に乗ったきりになってるけど、6月か7月にも1回乗ってるはずなので、たぶん3~4ヶ月ぶり?
で、さっそくセルを回したら一瞬回ってから「ガコン」と言って止まってしまった。うわー、バッテリ切れてるよ。
というか、ガレージで充電器にはつなぎっぱなしなので、本来なら常に満充電なんだけど、なにしろ買ってから数年間、一度も交換していないのでこれは間違いなく寿命です、ありがとうございました。
というわけでツーリングの予定はキャンセルして(ソロツーリングなので誰も困らない)、バッテリを外し、車でMotorrad SHONAN(旧Craft)へ。あらかじめ電話して充電済みのバッテリを確保しておいたので、すぐに受け取って帰路についた。元々ついていたバッテリは(最近のBMWの例にもれず)取り外しにトルクスレンチが必要だったのだけど、交換品はただの六角ボルトになっていたのでむしろサービスアップ(笑)。
ところで、バッテリの電極の金属価格が高騰しているそうで、他店で買うと2万円近くするらしい。が、なぜかBMWは価格据え置きなので、以前の価格のまま(1.5万円)。って、いくら安いとは言っても、ここで予定外の出費はキツいなぁ。
なんにせよ、これで万全になったので(たぶん)、涼しくなったらもうちょっと乗るよ!
■ tDiary: testableブランチが(ついに)マージされる
長らく@kakutani and @hsbt(他にも協力者が何人か)が開発してきた「tDiaryをテスト可能なプロダクトにする」ためのtestableブランチが、masterに取り込まれた。とうとう、自分で見たこともないコードが取り込まれちゃったよ、たいへんだ!(えっ……)
- tDiary.orgのアナウンス
- (主に開発してきた)hsbtのアナウンス
とりあえずhsbtは、(利用者がtDiaryを)test可能になるために必要なドキュメントを書いて下さい。必要なツールが多くてよくわかんない(笑)。
2010-10-12(火) [長年日記]
■ 最近のfacebookの盛り上がりは児玉太郎支社長暗躍の成果(たぶん)
ここ数日、毎日のようにfacebookへの友だち申請がガンガン来るようになっていて、けっこう鬱陶しい賑やかなんだけど、どうやら日本のソフトウェア技術者コミュニティに、本格的に普及し始めたようだ。
起爆剤になった記事は「フェイスブックがはじまりそうな件」だと思うのだけど、実はGoogleトレンドなんかでは9月ごろから動きが見え始めていたし、実際の仕込みはもっと前にあったはずだ。1ヶ月も前にfacebookを本格的に使い始めたおれが言うんだから間違いない(笑)。
で、おれのきっかけというのが上の記事でも書いているとおり、都内某所で行われたセミナーなのだけど、ここでfacebookの紹介をしたのが日本支社country growth managerの児玉太郎氏だ。これまでも何度かfacebookに関する紹介は見たけれど、どれも「できること」しか説明しないダメプレゼンの典型だった。しかし児玉氏は違っていて、「なぜ楽しいのか」「どうやって儲けるのか(広告系のイベントだったため)」と、ちゃんとオーディエンスの琴線に触れるタームを使って、ちゃんと「面白いプレゼン」をしていた。
たぶんあれを聞いた人たちは間違いなくfacebookをやってみたいと思っただろうし、実際に帰宅してからログインし、以前とはずいぶん変わったUIをいじり、ファンページを開設してみたことだろう。いまの爆発的な盛り上がりは、すでにそういう人たちによる下地が出来上がっていたからだ。いつもなら真っ先に食いついていたはずのギークたちが、facebookに限ってはアーリーアダプタですらないというのは面白い。
件のセミナーは、中継禁止な上に主催団体のサイトにも案内・報告がないというシークレットぶりで、たぶん他にも似たようなセミナーはいくつも開催されていたのだろう。どうやら児玉氏は水面下で活動することにしていたようだ。
それが、9月のなかばあたりから急に露出が増え始める(Googleトレンドにまで動きが見えるほど)。mixiやGREEのような国産SNSがオープン化に向けて本格的な活動を開始し始めた時期と合致するが、実際はじっくり下地を作った上で露出を開始したように見える。何もないところに「facebookへどうぞ」と言ったところで、mixiやGREE(そしてTwitter)から客を引き込むことはできないからね。
そう考えると、この時期の盛り上がりは、周到に計算されていたタイミングなんじゃなかろうか。以前はYahoo!で手腕を振るっていた児玉氏、facebookに移って半年あまりでこの成果。たいしたものだなぁ。
そういえば以前、『ソーシャルウェブは「ポストOS」なのか』という記事を書いたけど、あれから1年半、いよいよ舶来OS(facebook) vs 国産OS(mixi)の戦いの火蓋が切って落とされたというところか。いや、身の回りだけ見てると勝負はすでについてるという感じだけどね……。
2010-10-16(土) [長年日記]
■ ドーラ、やっと野良猫を卒業する
野良猫ってぇのはたいていなんかしらの病気や怪我を抱えているものだと思うけど、特におそらくほとんどの野良猫は腹に寄生虫を飼っているんじゃないだろうか。だとすると、拾われてからもずーっと回虫を抱えていたドーラは、飼われていながらも野良猫の一部を残していたと言える。
で、今月あたまに都合4回目になる虫下しを飲ませて、今日その結果を診てもらいにいったところ、やっといなくなったというお墨付きをもらった。ここ1、2週間、やたらと食欲があって、おまけに体もどんどん大きくなるようになったので(現在体重2.2kg)、たぶん出たんだろうとは思っていたけど。これでようやく野良猫卒業である。
最近は人間の顔を見ると「にゃー」と鳴くし(意図は不明)、隣で眠ることも(たまに)あるし、さすがに3ヶ月もたつとなついてくるようになったという感じだ。写真は「キリッとしてー」と注文をつけて撮ったもの。なかなかの美人になってきましたね。
そうそう、Facebookにドーラのファンページも作った:
グスタフはこちら:
ドーラは今後、Facebook側で更新して、それをTwitterに流すようにしてみる。グスタフは引き続きTwitterとは独立。ペットのファンページでいろいろ実験する飼い主。
◆ tamo [今夜は赤飯ですね。 うちで10歳で貰った猫も、3ヶ月、3年の二段階で急にフレンドリーになりました。 3ヶ月っていうの..]
◆ ただただし [3年!? そんなにたってから何か変わるんですか。]
◆ tamo [臆病で気難しい猫だったので、大まかに言うと…… 3日で明るい場所に出てくるようになり(その前は全員寝静まるまで隠れて..]
◆ ただただし [うはー。触れるようになるまで3年なんて、気が遠くなりますねぇ。えらいなぁ。]
◆ smbd [ふと古い日記を見てみたら、Facebookへのリンクか何かが消えているようです。pluginが動いてない?>「そうそ..]
◆ ただただし [ううむ。social_buttonプラグインに差し替えたら、Fbのスクリプトがはいらなくなったせいだなぁ。面倒だから..]
2010-10-17(日) [長年日記]
■ 二匹の猫の散歩は同時にできない
グスタフは以前から外に出るのが大好きで、ベランダに出しておくといつまででも外界を見下ろしているし、玄関からも隙あらば抜けだそうとする。そんなわけで彼にはリードを買ってあって、ときどき近所に連れ出してやっている。いちおう「散歩」とは呼んでいるけれど、家が見えなくなるほど遠くまでは行かない。ほとんどの場合は庭から出ないし。
で、最近はドーラがそんなグスタフをみて自分も出たいというものだから、今日はドーラ用にもリードを買ってきて、つけてやった。首輪だけのものだと抜けてしまうので、首と胴体の2箇所で固定するものなのだけど、(グスタフもそうだったけど)こういうのをつけると最初はうまく歩けないのな。なんか地面に這いつくばって動けなくなってしまう。
で、二匹一緒に連れ出したのだけど、やっぱ猫二匹は犬と違っていっしょに散歩はできない(笑)。もう、あいつら勝手なんだもん(猫ですから)。別々に連れ出すか、かみさんとそれぞれ一匹ずつ担当しなきゃいけないなー。
写真は、珍しく冷蔵庫のうえで仲良く対話(?)している二匹。ただし、この直後にとっくみあいが始まる。
2010-10-19(火) [長年日記]
■ ゴアテックスのおかげで3年履いた靴が新品になった
歳を食って金銭的にそれなりの余裕があるようになってからは、何かを買うとき選択肢にゴアテックス(GORE-TEX)製品がある場合にはそっちを選ぶようにしている。主にバイク用品だけど、ビジネスシューズも一足ゴアテックス対応品を持っていて、雨の日の通勤には重宝していた。買ったのはかれこれ3年数カ月前で、靴底を張り替えたりしながら使っていた。
が、それが先日の大雨の日からとうとう雨が漏れるようになってしまい、「さすがに3年も履いたら寿命かな」と思いつつ、「ゴアテ伝説」を検証してみたくなったので靴屋に持ち込んで修理の可能性を相談してみた(クレームじゃないよ)。そしたらとりあえず状態を確認させてくれというので預けてみたのが3週間ほど前。
そしたらなんと、「ゴアテックス社の試験の結果、水漏れが確認されたので新品と交換させていただきます」だって。ひょえー! 修理じゃなくて交換かよ。伝説は本当だったんだ!
靴屋で話を聞いてみると、製品を受け取ったゴアテックス社では、靴の中に水を溜めて高速で回転させ、水が漏れるかどうか確認するのだそうだ。だいたい3年経過していたら製品側の責任にはならないというのが通常の基準らしいが、特に「何年保証」と書いていないこともあって、3年が経過していても今回のように保証の対象になることもあるらしい。(たぶん)費用は全額ゴアテックス社持ち。
3年間、毎週かならず1、2回は履いていた靴を、水漏れしただけで新品と交換してくれちゃうんだから、やっぱゴアテックスすげー。こういうことを知ってしまうと、安いからという理由だけで「なんちゃってゴアテックス」なんて買えなくなってしまうよなぁ。
2010-10-21(木) [長年日記]
■ Facebookに友達リクエストが来ても、誰だかわからん人が多すぎる
Facebookはあいかわらずひっきりなしに友達リクエストが来ている状況だが、さすがに技術系の知人には行き渡ったようで、そろそろリアルで何度か会ってるような人たちはいなくなってきた感じ。ここから先が伸びるかどうかが今後の盛り上がりを左右するかね。ちなみにFacebook上の付き合いはTwitterより絞っておこうと思うので、見覚えのない人とか、誰だかわからない人からのリクエストは無視してしまっている。
もっとも、「見覚えのない」とか「誰だかわからない」といったところで、例によって重度の「人の名前と顔が一致しない病」なので、本当にそうなのかまったく自信がない。まぁ、昔っからそういう人なので、うっかり無視されちゃった人は諦めてください。Facenbook以外にもいくらでもコンタクトをとる手段はあるんだから。
そうは言っても、「自分はこういう人物である」ということをちゃんとプロフィールでアピールして欲しいよね。「Facebookは実名主義」という看板を真に受けて、本名のままで(しかも外国人との付き合いもないのに英語表記のままとか)、知人が見ても人物特定が難しいような顔写真をアイコンにするとか、「オンラインの知人は識別しないで下さい」と言わんばかりのプロフィールが多すぎる。
だいいち、実名イコール本名ではない。本名しか使えなかったら芸名や筆名で活動している人が使えないではないか。自分がFacebook上でどういう活動をするつもりなのか考えれば、どう名乗るべきかなんておのずと決まってくるし、アイコンに何を選べばいいかも自明だろう。プロフィールのホームページ欄にWebサイトやブログ、TwitterのURLを入れておくのも、人物の特定のしやすさにつながって良い。
もし、プライベートな付き合いとそうでない人たちを分離したいのであれば、自分のファンページを作ってしまえばいいのだ。そしてオフィシャルな発言はファンページを通してすればいい。個人的に勝間和代のことはたいして評価していないけど、彼女にファンページを作れとアドバイスした周囲の人たちは正しい。ここ数日で、公式ファンページを作る著名人が増えてきているようだし、(ネタ混じりながら)普通の人が自分のファンページを作る例も見かける。
もし「自分のファンページなんて恥ずかしいよ」とか言っているようなら、許可をもらって代理で作ってあげちゃってもいいと思う。おれもドラ娘のファンページを作ったよ(ぉ。ドラ娘経験者やドラ娘になりたい人は掲示板で名乗ってねっ!(最後は宣伝か)
2010-10-22(金) [長年日記]
■ Facebookアプリを作ってみた(グラコロ同盟2010)
数日前から持病が悪化して外出できなくなってしまったので、せっかくだから何か勉強しようと思い、郷田まりぽさんが日記で「Facebookアプリ作ろうぜ」という連載を始めたこともあって、ちょっといじってみた(というほど簡単ではなかったのだけど)。
当てもなくテストアプリを作っても面白くないので、毎年やっているグラコロ同盟をFacebook上で展開したらどうなるか、という例題にしてみた。うまく動いたら今年の同盟活動ははてなスターからFacebookに移行してしまうので、同盟各員は今のうちにFacebookのアカウントを取っておいた方がいいですよ*1。
お試しなので機能的にはできだけ単純に。訪問者を特定し、食べた個数を報告すると自分のストリームに書き込み、同時にサーバに保存する。ランキングにはグラコロ数の多い順にユーザのアイコンが並び、グラフで各自の食べた個数がわかる。
で、なんか動くようになったっぽいので公開しておいた。デザインはてきとう(というか誰かやってくんないかなー)。
使ってみるには、まずファンページに行ってから「アプリケーションへ移動」。認証やパーミッション許可のポップアップがあるので、それにOKを出せば、あとは個数をセットして「食べました!」ボタンを押すだけ。
これだけ単純なものを作るだけでも、なんかけっこう苦労したなー。まぁ不慣れなJavaScriptで書いたってのもあるけど(格闘していた時間の大半はjQuery相手だったような気もする)、ドキュメントがいい加減で情報不足なのが一番厳しい。仕様書の体をなしてないわ、書かれてないパラメタが存在するわで、最初にパーミッションを得られるようになるまで、Facebook上でまりぽさんにサポートしてもらうアリサマ。慣れれば勘どころはつかめるようになりそうだけど、機能も豊富なので隅々まで探検するのも大変だ。
あと、開発者のページに「提出」って機能があるから、それをするまでは自分にしか使えないのかと思ったら、単にカタログに載せてもらう処理にすぎなかった。つまり、開発中だろうとなんだろうと、URL知ってる人には見えちゃってるってこと。これ、開発初期はいいけど、運用が始まってからはどうすんだ? リリースの概念がないんだけど……。
*1 というか、いったい今年はいつからグラコロを始めるんですかね、マクドナルドさん。
2010-10-23(土) [長年日記]
■ プログラミングClojure(Stuart Halloway)
関数型言語、特にLisp族への漠然とした憧れというのがあるわけですよ。S式を操るのってなんかカッコいいし。で、7年も前にSchemeに挑戦してあっさり挫折した身としては、このClojureで再チャレンジになる。
きっかけは今年のLLTigerで、Language Updateで紹介されたのを聴いて興味をもったため。特に並行プログラミングをサポートするSTMは面白いと思ったし、プラットフォームがJVMというのも、豊富なJavaのライブラリを活用できるいい選択だと思った。JVMを要求するとなると活躍の場が限られてしまうけど、今ならAndroidもあるからね。
読み手(おれ)の側で7年前と何が大きく違うって、いまはRubyでメタプログラミングがそこそこわかっている点だ。おかげでClojureでやろうとしていることが、Rubyではどう書けばいいのかなんとなく想起できるので、ずいぶん理解が早い。つまり、手続き型言語脳をRubyを介して関数型言語脳に変換できるようになっているわけで、これがないとまた挫折したんだろうなー、と思う。やっぱRubyすごい。
登場するコードはREPLに入力して動作を確認しながら読み進めた。川合さんの訳も読みやすいし、著者にもできるだけトリッキーなコードを排す姿勢があって、けっこうサクサク読める。まぁ、「理解できたか?」と聞かれれば「だいたいわかった」という程度だけど、最後まで読み通せた自分をほめてあげたい(ただし「マクロには近寄るな」ってじっちゃが言ってたので、軽く流す程度←じっちゃじゃねぇ)。
(JVMの制限で)関数型言語のくせに末尾再帰最適化ができないとか(これは回避策がいくつかある)、Javaのライブラリを使うときのシンタックスシュガーがちょっとキモいとか、慣れるのに時間がかかりそうな要素はあるものの、基本的には素直なLisp族という印象。ロック状態に気を配らずに並行プログラミングができるSTMはすばらしいし、(動的ディスパッチ的な)マルチメソッドも面白い。使いこなしたらなかなかいい武器になりそうな言語という印象だ。
とはいえ、何か本格的なアプリを書いてみないことには、言語を習得したとは言えないわけで、そうは言っても今のところいいネタがないんだよな。とか言ってるあいだに忘れそうだが(笑)。いやAndroidアプリを書けばいいんだけどさ。
2010-10-26(火) [長年日記]
■ 猫にたかられるようにして寝ている
寝るときに「猫あんか、あったけ~」とTweetしたら、ほうぼうから羨ましがられたので、最近どういう状態で寝てるのかメモ。こういう図をImpressで描くのは難しいな。こういうのはあれだ、コミPo!があればいいのか。
以前、一緒に寝てくれるのはグスタフだけで、独立心の強いドーラは寝てくれないと書いたけど、最近はさすがに寒いのか、おれが寝支度をしているとベッドの上で待ち構えるようになった。で、もちろんグスタフも入って来たがるんだけど、2匹を一緒に布団に引き入れるとどうしてもドーラがグスタフにじゃれかかってしまうので、騒がしくてこっちが(グスタフも)寝てられない。
それぞれ別の場所で寝てもらわなくてならないものだから、図体の大きいグスタフは腹のあたりに、ドーラは尻の下あたりに収まってもらうのがいい落ち着きどころらしい。見ればわかるようにこれでは人間が寝返りを打てないので、それはそれで困るんだけどね……。
なぜかかみさんとはあまり寝たがらないので(女性の方が体温が低いからだろうか?)、必然的に2匹の面倒はおれが一手に引き受けることに。まぁ、冬は暖かくていいよ。猫サイコー。
2010-10-28(木) [長年日記]
■ ソリューション・ゲーム 日常業務の謎 「このミス大賞」シリーズ)(伊園 旬)
たまには小説も読まないと想像力が錆びついてしまうので発掘。「面白いよ」といわれてもらったんだったか。うん、けっこう面白かった。派手さはないけど肩のこらないエンターテイメント。人を食ったような語り口ながら行き過ぎにならない節度があって、波長が合う文体だなーと思って奥付をみたら同世代だった。どうりで。
コンプライアンス的に自由が効かない親企業の代わりに汚れ仕事を依頼される、大手IT企業の子会社の無茶なお仕事の数々を集めたオムニバス長編。著者が「このミス大賞」の人だし、謎解きテーマの第一話読んでいて「ミステリーかな?」と思ったけど、種明かしがちょっとルール違反っぽいのでそういうスジ向けじゃなさそうだ。むしろプロットはピカレスクロマンで、スケールは大きくないけど不幸になる人がほとんどいない、きれいなオチがつく。
この会社の社長の「〈多数から少しを奪う〉よりも〈一人から多くを奪う〉行為の方が罪深い」というポリシーが、気が効いてていい。売れる小説を書こうとすれば、おのずと派手になるこの逆をいくものだろうけど、それだとリアリティがないからそういう指向の小説は白けるんだよね。〈多数から少しを奪う〉話はみんながちょっとずつ不幸になり、全体的には幸福というオチになるので、地味だけど得心できる。現代小説だったらこういう方が面白いよなぁ。
2010-10-31(日) [長年日記]
■ パラボラアンテナのサイトをリニューアルした
WikiFarm閉鎖後、Wiki形式のまま静的HTML化してほとんど放ったらかしだったパラボラアンテナのサイトを、リニューアル・オープンした。ここしばらく、他のことは放り出して、時間をみつけてはポチポチ開発を進めていたんだけど、まぁ、だいたいメドが立ったので:
といってもまだ作りかけで、新しいページは第二階層あたりまでしかない。まぁ、個々のコンテンツはぼちぼち移行していけばいいので、とりあえず公開しちゃっていいや。
基本的に静的HTMLだけからなるサイトにしようと考えて(動的な部分はJavaScriptでまかなえばいい時代だ)、それじゃあってんでソレ用のCMSを作ろうと思ったら、DSL部分が難航してしまい、そうこうしているうちに『メタプログラミングRuby』を読み始めたせいで全面的に作り直したり。
で、最終的に「CMSを作りながらコンテンツも作るのは無茶だ」という結論に達したので、evalを排除するのは後回しにして、コンテンツ部分だけ先に進めた(逆だろ……)。というわけで、そのCMS『REGO』は、公開してはあるものの荒削りで完成品にはほど遠い。
おまけに作ってる途中でHTML5に変更したり*1、Facebookが流行り始めたからファンページと連携したり画像をFacebook APIで持ってくるようにしたり。おまけにjQueryにはまったりと、紆余曲折していたせいで、アンテナ施設夏の公開日にはまったく間に合わないというていたらくである。まぁ、面白かったからいいんだけど。
そんなわけで、旧デザインのページをなんとかするまで、もうちょっと他のものは後回しになりそう。
*1 なので一番まともに見えるのはChrome、次がFirefoxという感じ。IEは期待した通りには見えない。
◆ cesare [Lisp達人の人から、「括弧は見えなくなるものだ」と聞きましたw 末尾再帰の最適化がダメなのは、JVMの仕様から発..]
◆ ただただし [達人になる前に挫けなければいいんですけどw 末尾再帰最適化の件がJVMの制約だという話は他のページで登場しました。で..]