2010-10-26(火) [長年日記]
■ 猫にたかられるようにして寝ている
寝るときに「猫あんか、あったけ~」とTweetしたら、ほうぼうから羨ましがられたので、最近どういう状態で寝てるのかメモ。こういう図をImpressで描くのは難しいな。こういうのはあれだ、コミPo!があればいいのか。
以前、一緒に寝てくれるのはグスタフだけで、独立心の強いドーラは寝てくれないと書いたけど、最近はさすがに寒いのか、おれが寝支度をしているとベッドの上で待ち構えるようになった。で、もちろんグスタフも入って来たがるんだけど、2匹を一緒に布団に引き入れるとどうしてもドーラがグスタフにじゃれかかってしまうので、騒がしくてこっちが(グスタフも)寝てられない。
それぞれ別の場所で寝てもらわなくてならないものだから、図体の大きいグスタフは腹のあたりに、ドーラは尻の下あたりに収まってもらうのがいい落ち着きどころらしい。見ればわかるようにこれでは人間が寝返りを打てないので、それはそれで困るんだけどね……。
なぜかかみさんとはあまり寝たがらないので(女性の方が体温が低いからだろうか?)、必然的に2匹の面倒はおれが一手に引き受けることに。まぁ、冬は暖かくていいよ。猫サイコー。
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-22(金) [長年日記]
■ Facebookアプリを作ってみた(グラコロ同盟2010)
![[スクリーンショット]グラコロ同盟アプリ [スクリーンショット]グラコロ同盟アプリ](https://userimages.tdiary.net/sho/20101022_0.jpg)
数日前から持病が悪化して外出できなくなってしまったので、せっかくだから何か勉強しようと思い、郷田まりぽさんが日記で「Facebookアプリ作ろうぜ」という連載を始めたこともあって、ちょっといじってみた(というほど簡単ではなかったのだけど)。
当てもなくテストアプリを作っても面白くないので、毎年やっているグラコロ同盟をFacebook上で展開したらどうなるか、という例題にしてみた。うまく動いたら今年の同盟活動ははてなスターからFacebookに移行してしまうので、同盟各員は今のうちにFacebookのアカウントを取っておいた方がいいですよ*1。
お試しなので機能的にはできだけ単純に。訪問者を特定し、食べた個数を報告すると自分のストリームに書き込み、同時にサーバに保存する。ランキングにはグラコロ数の多い順にユーザのアイコンが並び、グラフで各自の食べた個数がわかる。
で、なんか動くようになったっぽいので公開しておいた。デザインはてきとう(というか誰かやってくんないかなー)。
使ってみるには、まずファンページに行ってから「アプリケーションへ移動」。認証やパーミッション許可のポップアップがあるので、それにOKを出せば、あとは個数をセットして「食べました!」ボタンを押すだけ。
これだけ単純なものを作るだけでも、なんかけっこう苦労したなー。まぁ不慣れなJavaScriptで書いたってのもあるけど(格闘していた時間の大半はjQuery相手だったような気もする)、ドキュメントがいい加減で情報不足なのが一番厳しい。仕様書の体をなしてないわ、書かれてないパラメタが存在するわで、最初にパーミッションを得られるようになるまで、Facebook上でまりぽさんにサポートしてもらうアリサマ。慣れれば勘どころはつかめるようになりそうだけど、機能も豊富なので隅々まで探検するのも大変だ。
あと、開発者のページに「提出」って機能があるから、それをするまでは自分にしか使えないのかと思ったら、単にカタログに載せてもらう処理にすぎなかった。つまり、開発中だろうとなんだろうと、URL知ってる人には見えちゃってるってこと。これ、開発初期はいいけど、運用が始まってからはどうすんだ? リリースの概念がないんだけど……。
*1 というか、いったい今年はいつからグラコロを始めるんですかね、マクドナルドさん。
◆ smbd [奥様にねたまれそうw]
◆ yomoyomo [たださんが屁をこくとドーラが被害にあうと思うと腹が立ちます!]
◆ ブチャ猫 [↑yomoyomo さんって愉快な方ですね(笑 猫に好かれるタイプってあるようですよ。 きっと、たださんがそういう..]