13052012 javascript
Xcode 4.2 for snow leopardが見つからなかったので、Lionに上げてXcodeの最新版を入れた。
そんなこんなで半日がかりで環境構築までは進んだが、実機欲しいなぁ(iPhone)
13052012 javascript
Xcode 4.2 for snow leopardが見つからなかったので、Lionに上げてXcodeの最新版を入れた。
そんなこんなで半日がかりで環境構築までは進んだが、実機欲しいなぁ(iPhone)
13052012 Haskell javascript
アルゴリズムの本。いまいち読む気分になれない
Titanum Mobileは興味があるので次に読む本としてはこれが候補かな。
これは流し読みしたら途中で挫折したので、今度は丁寧に読む予定
予約してあるやつ
15042012 Python javascript Flask Spine
SpineのtodoサンプルをSpine.appを使って書いてみた。これはBrunch(Backbone.js)みたいに、モデル、ビュー、コントローラーをバラバラに開発してbuildすると一つのjsファイル(cssも)にアセンブルしてくれるツールですね。テンプレートはecoを使っています。
index.coffeeの役割がわかりづらかったので理解するのにちょっと時間がかかった。
hem model task
とかやるといっしょにテストのひな形が作られるのとlocalhost:9294/testにアクセスすればjasmineのテストが走るようになっているので使いやすそう。
そして以下の素晴らしい三部作を読んでSinon.jsの便利さに目覚めたので積極的に使っていこうと感じた。
Spine.Model.AjaxつまりRESTのAPIはFlaskを使おうと思っているんだが、Flask-Restlessを利用するのが手っ取り早くていいかなぁと。
14042012 javascript
spine.todosのtodoがデフォルト値を入れてないのに真偽値を返すので、なんでだ?と。
適当なオブジェクトを作って確かめてみると確かに真偽値が返ってくる。
> t = {name:'kzfm'} { name: 'kzfm' } > !t.done true > !!t.done false
結局undefinedかと。
> !undefined true > !!undefined false
JGPのappendixにundefinedはfalsyだって書いてあった。
でもちょっとわかりづらいなぁ。
24032012 javascript
Brunchはいまだにお作法がよくわからん。やっぱbackbone.jsから地道にステップアップしていくのがいいのか?
さて、クライアントサイドMVCってことはクライアント側に小難しい処理が移行しているってことですよね。加えてHTML5的な潮流はマークアップじゃなくてCSSでデザイン周りをやれというimplicitな意図を感じるわけです。さらにclosureみたいなアプリケーション構築用のライブラリの存在を考えると、jQueryでプラグイン入れまくりのスパゲッティライクなフロントエンドがどこまで許されるのかなぁと思ったりする。
ふとWOMASという言葉がよぎった。
Webservice Of Maintainability And Sustainability
23032012 javascript
クライアントサイドのMVCフレームワークはbackbone.jsかSpineのどっちかかなぁと。
coffeescriptで書けるSpineを使おうかなぁと思っていたのだけど、Brunchっていうのが便利そうなので調べてみた。
Application assemblerと銘打っているようにBackbone.jsを軸にjQueryやJade,Stylusの面倒をまとめてみてくれるうえにcoffeescriptでの開発がデフォルト。
ディレクトリの階層もわかりやすいし、使いやすそうなのでbackbone.jsを覚えておこうかなと。
02022012 javascript HTML5
三島でやります。
今回は、ローカルストレージ、websocket、History APIあたりなので、以下の話題に興味があれば参加すると面白いかもしれません。
入門Gitを推しておきます。GitHubでフォローしているShizudeverいないんだよね、増えたらいいなっていうのが理由の一つ(他のサービス使っているんだろうか?)。もうひとつはブランチの切り方がイマイチきちんと身についてないので、勉強会で人が集まれば複数人作業ってのを試すことができるかなと。
31012012 javascript Node.js
CLIで良い感じ
$ npm install -g todo
でインストールできる。
help: help: todo - Todos in the CLI like what. help: help: Usage: help: help: todo Go shopping. - Adds new item. help: todo ls. - Lists not finished items. help: todo ls --all - Lists all items. help: todo rm 1 - Removes #1 item. help: todo check 1 - Marks #1 item as done. help: todo undo 1 - Marks #1 item as not done yet. help: todo clear - Clears the whole list. help: todo version - Lib version. help: help: Author: Veselin Todorov <hi@vesln.com> help: help:
Node.jsのテスト系のライブラリなんかもそうなんだけど、ターミナルに色付きで表示されると見やすくていいですね。オプションもわかりやすいので、端末にちょっと入れておけばtodo管理ができてイイかも。普段はGmailのタスクを使っているので同期できると嬉しいんだけどねー
と思いながら調べたらGoogle Tasks APIってのがあったけど、これでいいんだろうか?あとで試してみよう。
30012012 javascript Node.js
中級者向けのJavascript開発の本として読んでもいいし、テスト駆動開発の入門書として読んでも良い感じ。名著だと思う。
自分はプログラマーの集団的な組織に属したことがないため、開発の色々(特にペアプロ)なイメージが良くわからんし、TDDもイマイチ理解していない感があったので、本書のように丁寧に書いてある本はありがたかったりする。
第三部の「Javascriptテスト駆動開発の実際」のパートが面白いが、その中でも特にNode.jsによるサーバーサイドのテスト(14章)とクライアントサイドのテスト(15章)が非常に良かった。この2章だけで90ページくらいあるし、じっくり写経したら2日を費やしてしまったが、得るものは多かった。特に実際のコードとテストコードが絡み遭いながら完成に向かって進んでいく感を味わえたのはなかなか素晴らしい体験だった。
ちなみに14章ではNodeunitを使ってたけど、実際に自分が使うならVowsかなぁと(CoffeeScriptでも使えるしね)
エディタに関しては、Emacsの場合、縦分割して左にコード、右にテスト出して交互に切り替えながら進めていくのが調子良かった。
一部がテスト駆動開発の一般論で、二部がJavascriptの概論だけど、第4章の「学ぶためのテスト」というパートが面白かったかな。他の人が書いたライブラリを観察するために、テストの形で評価した内容を記述しておくという方法論は斬新だった。 まぁ、よく考えてみると、自分も新しいモジュールを理解したい場合はまずテストを眺めて、よく分からない場合は、対応する部分のソースコードを読んでふるまいを理解したりするので、結局そういったやりかたの形を変えて、積極的に観察とその記録を取っていく手法って考えればいいのかと思った。
28012012 javascript HTML5
HTML5ベースのスライドつくる場合はJadeみたいなインデントでブロックを表現するような形式のほうが見やすいし書きやすい。
html2jadeを使えば、逆にhtmlをjadeに変換して読みやすく出来るのでオススメです。
impress.jsのindex.htmlをjadeに変換してみた。読みやすい。
#bored.step.slide(data-x='-1000', data-y='-1500') q | Aren't you just b bored | with all those slides-based presentations? .step.slide(data-x='0', data-y='-1500') q | Don't you think that presentations given strong in modern browsers | shouldn't strong copy the limits | of 'classic' slide decks? .step.slide(data-x='1000', data-y='-1500') q | Would you like to strong impress your audience | with strong stunning visualization | of your talk? #title.step(data-x='0', data-y='0', data-scale='4') span.try then you should try h1 | impress.js sup * span.footnote sup * | no rhyme intended #its.step(data-x='850', data-y='3000', data-rotate='90', data-scale='5') p | It's a strong presentation tool br | inspired by the idea behind a(href='http://prezi.com') prezi.com br | and based on the strong power of CSS3 transforms and transitions | in modern browsers. #big.step(data-x='3500', data-y='2100', data-rotate='180', data-scale='6') p | visualize your b big span.thoughts thoughts #tiny.step(data-x='2825', data-y='2325', data-z='-3000', data-rotate='300', data-scale='1') p | and b tiny | ideas