grunt-bbbでtodoリストをつくってみた

Yeomanはちょっとデカすぎるなぁってことで、Yeomanよりは小さめな感じのgrunt-bbbをいじってみた。

todomvc用のスキャフォールドが用意されているので

bbb init; bbb init:todomvc

というコマンドが使えるんだけど、これは動かない

というわけでbbbのお作法の勉強も兼ねて自分で最初から書いてみた。

mkdir bbbtodos
cd bbbtodos
bbb init
bbb init:module todo

とかこんな感じで書いていけばいい。

bbbtodos

  • backbone-localstorages.jsをvendor/jam以下に置いてしまったがまぁいいかな。
  • 実際のコードはapp/modulesに置くのがお作法らしい。bbb init:moduleもあるしな。
  • bbb serverで127.0.0.1:8000でサーバーが立ち上がるので便利
  • main.jsではrouterの設定をしている
  • app.jsではLayoutの設定とか、useLayoutといった便利関数を追加しているだけ。
  • router.jsが頑張っている

grunt-bbbとは何か?

backbone.layoutmanagerを含んだbackbone.jsのボイラープレートのフレームワーク。

backbone.layoutmanagerはPhilosophyを読めば分かるようにBackbone.Viewを拡張したものでキャッシュ機構を入れたりテンプレートをよろしく管理してくれたりとかそんな感じ。

なので、Backbone.jsで開発している感をだしつつ、弱いところを補ってくれる感じのBackbone.js++って感じのツールかな。

MODERN WORKFLOWS FOR MODERN WEBAPPSなYeomanで利用されているパッケージを調べた

Yeomanはrobust and opinionated set of tools, libraries, and a workflowなので、使われているパッケージを調べることでjavascript界で今イケてるツールの情報をゲットできるわけだ。

というか、ざっと見たところgrunt.jsしかわからん。

grunt.js

makeのjavascript版みたいな位置付け。ほとんど使ったことがない。

BOWER

ブラウザサイドのパッケージマネージャ。プロキシ通らないなぁと思ったら、fixされていた

AMD関連

underscore.jsがAMD対応されていないので対応版としてlodashってのがあるらしい。他にrequire.jsの軽い版でalmond.jsがある。

PhantomJS

Headless Webkitというわけで、テストしたりスクレイピングできたりする。

ブラウザを使ったスクレイピングをやりたい時にはWWW::Mechanize::Firefoxを使っていたが、PhantomJSベースのCasperJSに乗り換えるかもしれない(WWW::Mechanize::FirefoxはFirefoxをインストールしないといけないのでちょっと面倒臭いので)。

Yeoman使うのか?

養鰻だけにShizuoka.jserは使うよね的なtweetしたけど、僕は使わないと思う。ツールの寄せ集めだと追随していくの大変だしねー。

自分の用途だとボイラープレートで十分なんじゃないかと思う。

Asynchronous Module Definition

今年はBackbone.jsとかCSS(Stylus)なんかを頑張ろうかなぁと思っている。

理解があいまいなAMD(Asynchronous Module Definition)について調べてみた。

underscore.jsではAMDのサポートが外されている。

Pythonで真偽値

Flaskのsessions.pyを読んでいたら真偽値を入れるところでboolを使っていて(32行目くらい)なるほどと思った。

def _set_permanent(self, value):
    self['_permanent'] = bool(value)

0,1は思った通り

>>> bool(0)
False
>>> bool(1)
True

文字列も直感通り

>>> bool("somthing")
True
>>> bool("")
False

でもこれはダメ

>>> bool("false")
True
>>> bool("true")
True

etagsを再帰的に使うにはeshellから**/*.pyとするだけだった

etagsに再帰的に探索するオプションがないので面倒くさかったんだが、eshellを使えば解決することが分かって快適になった。

例えばFlaskだったらM-x eshellでeshellを立ちあげて、flaskのディレクトリで

etags **/*.py

と打てばよい。

etags_emacs

eshellは常に一つ立ちあげておこうかな。

Traktorでtwitterにnow playingができるRADRが便利

pythonでicecastサーバーを立ててtwitterにポストすればいいかなーと思ってググっていたら、既にアプリになってた

実際使ってみるとMasterに移るタイミングでtweetするので快適すぎる。

日本酒好きのRichie Hawtinがかんでいるらしいので、日本酒を飲みながらTraktorをいじっている僕としては使わなあかんサービスだな。

芸術とはルールのあるゲームであり想像力をふくらませる商売である (芸術起業論)

芸術とはルールのあるゲームであり想像力をふくらませる商売であるとあるように、プログラミングもアートの一種と捉えた上で読めば面白く読める。違う視点から見たスタートアップの作り方みたいな本を読んでいるような感じで新鮮だった。

欧米の美術の歴史や文脈を知らないのは、スポーツのルールを知らずにその競技を見て「つまらない」とのたまうのと同じなんです。

まぁ確かにダブステップとかドラムステップがどう違うかとか文脈知らないとさっぱりだし、エポックメイキングな曲が出た背景とかそれに至る歴史を知らないとつまらんしな。

発掘されていない宝を手に入れるためには、

  1. 自分の興味のある表現分野を探し、その分野の歴史を徹底的に学ぶ
  2. その分野に興味を持ちはじめた理由を探す。
  3. 自分の興味のある表現分野を何度も検証し直す

そうすると見えてくるので、リソース(技術、資金)を揃えて航海。

ProductName 芸術起業論
村上 隆
幻冬舎 / 1680円 ( 2006-06 )


  • 価値観の違う人にも話しかけなければ、未来は変わらない
  • アーティストにとって作品同様に大切なのは独自のマネジメント哲学の構築なのです
  • 入り口を作った人こそが美術の世界で讃えられるものなのです
  • 才能よりも物語のほうが重要
  • ものを伝えることは娯楽だと割りきる

会社の外で稼ごうという啓蒙(3年くらいまえの)

大抵陳腐化するが、陳腐化しない部分を汲み取るのと、速読の題材として。アフィリエイトの話はバックリンクをばんばん作ってとかかなり黒に近い内容が書いてあった。これは持続性がないだろうな。

一見面白くないことを経験することがいい方向につながっていく現象を、私は「かかわったことは全部やりきる」と表現しています

会社の仕事を早くこなすコツ

  • 資料はひな形からつくる
  • すぐに決める
  • 極力会議に出ない

Nodeクックブックを予約した

LoLも気になっているが、Nodeクックブックを先に読むべきだなという結論になった(LoLは電子版が出たら買う)。

Nodeクックブックというタイトルだったので、Nodeの本はもういいやと思っていたが、目次を見たら実用Expressのほうがふさわしいんじゃないかと。

  • 1章 Webサーバを立てる
  • 2章 HTTPオブジェクトをより深く
  • 3章 データのシリアル化
  • 4章 データベース接続
  • 5章 Websocketを使ってAjaxを超える
  • 6章 Expressで開発をスピードアップ
  • 7章 セキュリティ、暗号化、認証
  • 8章 ネットワークサービスの実装
  • 9章 自分のNodeモジュールを作成する
  • 10章 本番環境に展開するために

というわけで買いですな。

ProductName Nodeクックブック
David Mark Clements
オライリージャパン / 3570円 ( 2013-02-23 )


Land of Lispを買うべきか?

ジャケ的には買わなければならない(激ヤバ マスト)なんだろうけど。

ProductName Land of Lisp
M.D. Conrad Barski
オライリージャパン / 3990円 ( 2013-02-23 )


とりあえずほしいものリストに入れておこうっと。