Spine.jsでつくるスクラムボード

クライアントサイドフレームワークbrunchでアプリを作ってみたが面白かったので、Spine.jsで書いてみた。

spine scrum

demo (source)

jQueryUIをslug.jsonに含めるとjQueryが定義されてないというエラーになるので、application.jsを実行した後に読み込んでいる。

resizeイベントにバインドすると固まるのでデモではサイズの状態が保存されないようにしているが、ドキュメント見てたらresizeStopにバインドすればいいような気がしてきた。というわけでjQueryUIとの連携のさせ方もわかった。

ほかにCSSまわりのTipsも勉強になった。cursorプロパティ初めてなのとinline-blockの使いどころとか。もっとCSS覚えなきゃならないことも理解した。

SpineのTodoをちょっと書きなおしてGitHub Pagesで公開してみた

Spineを使いそうな案件が増えそうなので、ちょっと復習でもしておくかなと前にやったサンプルを動かしてみたらなぜか動かなかった。

結構な時間を費やしたのち、slug.jsonのjquery.tmplを消せば良いと気づいたのだけど、hem serverはエラーを吐かずに動き続けるので気付かなかったのだけど、おもむろにhem buildをしたところ、エラーが出てきたので解決したのだけど、ココらへんはちょっと不親切かもと思った。

spineはまだまだドキュメントも少ないしサンプルも少ないので試行錯誤を強いられるけど、コードの見通しは良いと思う。僕はCoffeeScript好きなので。

切れ味鋭いPython版underscore.js(knife)

まぁ、僕はSpine派なのであんまりunderscore.jsにそそられないんだけど、knifeってのを見つけたのでちょっと触ってみた。

>>> __(1,2,3,4,5).append(6).append(7).undo(1).peek()
[1, 2, 3, 4, 5, 6]

reduceというかfold系

>>> __(1, 2, 3).worker(lambda x, y: x + y).reduce()
knife.lazy.lazyknife ([IN: ([1, 2, 3]) => WORK: ([]) => HOLD: ([]) => OUT: ([6])]) 
>>> __(1, 2, 3).worker(lambda x, y: x + y).reduce().get()
6

覚えれば短くかけて便利なんだろうけど、覚えたらHaskellとかSchemeとかの構文とバッティングして混乱しそう。

reduceの例はHaskellだったら

Prelude> foldl1 (+) [1,2,3]
6

でいいので、OOPな感じにすると面倒くさそうに感じるかなぁ。

ProductName プログラミングHaskell
Graham Hutton
オーム社 / 2940円 ( 2009-11-11 )


Monadiusのページを改めて読んでみたら、よく理解できたので調子に乗って色々調べていたらいつの間にかFRP方面に迷い込んでいた

ふとMonadiusを読んでみたら、昔はちんぷんかんぷんだったのがかなり理解できるようになったので、自分でも簡単なゲームでも書きたくなってsofを追いかけていたらいつの間にかfunctional reactive programmingの方面に迷い込んでいたらしい。

「Amazonポチッとボタン」もいつの間にか完了していた。

ProductName The Haskell School of Expression: Learning Functional Programming through Multimedia
Professor Paul Hudak
Cambridge University Press / 3963円 ( 2000-06 )


Node.jsにもreactive programmingありそうだよなと思って調べてみたら、Trigger と Stream ベースの Reactive スタイルについて考えるを見つけたのだけど面白そう。あとで追いかける。

そういえば、CTMCPでreactive programmingに触れてたような気がするんだけどなぁとパラパラめくってみたけど、見つけられなかった。

記憶がバグってたのかなぁ

iPhone4sに変えた

Desireの容量が小さすぎて、アップデートに失敗しまくる毎日が続くし、新しいアプリを入れられないしで、さすがに嫌になったので、iPhone4sに変えた。

これでTitanium Mobileを実機で遊べてちょっといいかもと思っているので、積んであるクックブックを読もうかなと。それからAppleの開発者ライセンス購入しないとな。

ProductName Appcelerator Titanium Smartphone App Development Cookbook
Boydlee Pollentine
Packt Publishing / 3810円 ( 2011-12 )


緑の本もいいらしい。

静岡でNode.jsハンズオンやった

久々の静岡

横に広すぎるためにコミュニティが西と東に分断されており、内戦勃発中と噂されている静岡のコミュニティ(twitter情報)ですが、非武装地帯である静岡市で開催すれば、西からも東からもヒトが集まってきて楽しく過ごせますね。というか楽しかったです。

私のハンズオンですが、now.jsはmac,linuxはNode.jsが0.6系でも0.8系でも動くんですが、Windowsだと0.8系だと動かないようなので、0.6系で動かしてみてください。懇親会で指摘された部分なんかも修正したドキュメントにしておきました。

@k0sukeyさんがハンズオンの際にmongooseの説明をしてたので思い出したのだけど、fjkwもmongoose+Expressっていう構成です。こっちもシンプルなので簡単にコードが読めると思います。

懇親会の時にちょっと話してたdocco,pyccoですが、コード中にコメント入れておけばドキュメントに出来るのでソースコードリーディングのメモに使うと調子いいです。参考までにSpine.jsのコード読んだ時にメモったものにリンク貼っておきます。

次回はGit+GitHubのハンズオンを行う予定です@静岡

他に

  • Titanium Mobile(モバイルアプリ興味あるしねー)
  • Sphinxでドキュメンテーション(ReST知ってるとGitHubのREADME書くのが楽になる)

なんかもいいんじゃないかなーと思っています。読書会の本は未定のままですが、誰かがエイヤッと決めないと決まらないでしょうねー。

お食事情報

昼は、つけ麺専門店。カウンター7席のみの小さなお店。和風つけ麺煮干し味

1341099540

1341099542

麺は美味しかったけど、スープにもうちょっと酸味が効いても良かったかなと。

二次会は呑み屋。ずっとブログは読んでいて行きたいなーとおもっていたんだけどチャンスが無かったが、今回初。満足

白岳仙はうまいな。

1341099543

19はフレッシュ感があった。はじめて飲んだ。

1341099544

Expressのroutes

朝からカフェオレを飲みながら。

expressコマンドを叩くと、routesが別になってるのはRoRかなんかのお作法に倣ったのかな。

.
├── app.js
├── package.json
├── public
│   ├── images
│   ├── javascripts
│   └── stylesheets
│       └── style.css
├── routes
│   └── index.js
└── views
    ├── index.jade
    └── layout.jade

でapp.jsを見ると

var express = require('express')
  , routes = require('./routes');

ってなってるんだけど、これって

var express = require('express')
  , routes = require('./routes/index');

と同じということでいいんだろうか?実際動くんだけど。CommonJSのrequireの仕組みを見れば書いてあるんですかね?あとで探す。

おまけ

来月の終わりに静岡でNode.jsの勉強会があります。私はCoffeeScriptとExpressでウェブアプリを作るっていうハンズオンをやる予定にしてますので、暇があれば参加すると楽しいと思います。

PreziのズーミングプレゼンテーションのコツはBig Pictureを描くこと

Preziの本なのか、筆者の考える発想論の本なのかよくわからないが、読んだ感じでは後者のニュアンスを強く持った。特に、preziをマインドマップがわりに使う(4章)話は普通にマインドマップ用のツール使えばいいじゃんと思ったのであまり役に立たなかった。

ProductName Preziで始めるズーミングプレゼンテーション
筏井 哲治
日経BP社 / 1575円 ( 2011-03-31 )


実際に役に立ったのは、5章のあたり。Preziのコツはマクロとミクロな視点を上手く組み合わせることで、マクロにみた時にPreziの絵が美しくあるべきという筆者の主張には共感を覚えた。

一方で、抜けてんじゃないの?って思ったのが、本書ではカメラワークが視聴者にどういう効果を与えるかの説明がまるでないところ。

Preziは一枚の巨大なキャンパスで世界を表現し、それを視点移動と回転、ズームイン、ズームアウトといった躍動感のあるカメラワークでプレゼンテーションを行う点にあります。

とか書いてあるのにねぇ。実際に大きな絵を描いても、プレゼンは動きにも制約されるだろうし、動きの与える効果にも絵の描き方が制約されるだろうし、この2つは切り離せないんじゃないかなぁ。

例えば、同じような話題を反転させながら移動させたら気持ち悪いし、対比させる内容が横とか縦にスライドされて表示されるのもまた変だ。

そういうあたりのカメラワークは映画やアニメーションの技法とかを参考にするんだろうなと思っていたので、そういう話題にも触れてることを期待して本書を買ったんだけど、まったく書いてなかった。なので、去年に買った本なんだけどエントリに上げてなかったという。

なんで突然エントリ書こうかなと思ったかというと、

というエントリをみつけたので、おーこれは期待できそう!と思ったから。色々手を入れれば自分好みのプレゼン作れそうですね。動きと配置のデザインパターンとかも溜まっていけば面白いんじゃないかなぁ。

PhoneGapとTitanium Mobileはどっちが自分にあっているのか?

というわけで、読みかけていたPhoneGapの本も読んだ。

ProductName Androidアプリケーション開発ガイド ―HTML+CSS+JavaScriptによる開発手法
Jonathan Stark
オライリージャパン / 1995円 ( 2011-02-24 )


HTML5での開発が大半で、最後にPhoneGapの使い方が書いてあるが、PhoneGapの開発の流れを考えたらまぁ、こういう構成になるだろうなぁと。最新版は本のとおりには動かなさそうだったので、本家のチュートリアルをなぞったわけだが。

phonegap

結局PhoneGapは(オフラインで動く)webアプリケーションなんかを個別のパッケージにして配布したいとかいう要望にこたえるツールなんかなぁと。一方でTitaniumはjavascriptでAndroid/iPhoneアプリ開発って感じですね。

前者のやり方で作るんだったら、jqmでささっとつくってURLアクセス出来ればいいから(配布もめんどくさそうだし)PhoneGapを利用するシーンはあまりないかなと思った。

それからこういうアプリはShell Appってよばれているらしい。

個人的には触ってて楽しいのはTitanium Mobileだな。

Titanium Mobile iPhone/Androidアプリ開発入門

風邪で咳と鼻水がひどくて会社を休んだのでTDD(ティッシュ駆動開発)してた。

手を動かすのは5章だけなので丸一日あれば普通に終わる。クライアントサイドのwebアプリケーションを書いたことがあればすんなり理解できる感じなので入門書としては良いと思った。

ProductName Titanium Mobile iPhone/Androidアプリ開発入門―JavaScriptだけで作る
小澤 栄一
秀和システム / 2520円 ( 2012-02 )


  • Chapter 1 JavaScriptだけでアプリ開発できるTitanium Mobile
  • Chapter 2 アプリ開発環境を構築しよう
  • Chapter 3 JavaScriptをすこしだけ学ぼう
  • Chapter 4 アプリ開発の手順を学ぼう
  • Chapter 5 小さなサンプルでプログラミングしてみよう
  • Chapter 6 プログラムの動作をデバッグして確かめてみよう
  • Chapter 7 アプリストアに公開してみよう

1章はイントロダクションだとして、3,4章は特に必要性を感じなかったので流した。

2章の環境構築のところは非常にわかりやすかったけど、結局Xcode4.2 for snow leopardがみつからなかったのでLionにあげて最新のXcodeを入れてしまった。それから本書のサンプルコードのダウンロードURLを書いてあるページを見つけられなかったので、自力で検索して探して落とした。

5章のサンプルは

  • stopwatch
  • rss reader
  • 位置情報付きカメラ

の3本立てで面白かった。が、最後のカメラのサンプルは実機がなくて実際に写真を撮ることができなかったのでちょっと消化不良。コードの説明もuiのphoto.jsかmodelのphoto.jsなのか微妙にわかりづらくてちょっとはまった。

6章はデバッグの心構えみたいなものか、入門書だからだと思うがTDDなんかの紹介はない。

7章はiPhone,Android共にアプリストアの公開の仕方が分かりやすく説明されているので開発者登録するときに役に立ちそう。

結論としては2,5,7章がよかったので入門書としては買ってよかったかな。

その先何がいいかなぁとtweetしてたらこれをススメられたので買って読んでみるつもり。

ProductName Appcelerator Titanium Smartphone App Development Cookbook
Boydlee Pollentine
Packt Publishing / 3810円 ( 2011-12 )