この接頭辞+は省略もできるようですが、個人的には残しておいたほうが制御ブロックであることが見た目で分かりやすくてよいと思いました。ifも独自実装しているようです。シンタックスシュガーとして。helperというのが載っています。0みたいなことが書けるようになるそうです。これはとても実装されて欲しい機能です。これだけのためにhelperを書くのは手間でしょう。以上、Meteorでjadeがすんなり使えるというお話でした。ついでに、jade系で気になるツールを紹介します。https://github.com/donpark/html2jadeHTMLをjadeに戻せるようです。過去に書いたHTMLをjade化したくなります。編集して、再度HTMLに戻すということもできるかもしれません。余談ですが、html2jadeを検索していたら、https://github.com/vidalab/meteor-html2jadeを見つけました。何かと思ったら、html2jadeをwebで使えるようにしたMeteorアプリのようです。dai-shi最近、Angular以外も試そうと思って、2012年春にオープンソースになったときから気になっていたMeteorを使うことにしました。当時は、FirefoxかChromeかどちらかでしか動かず、動かない方で見ると、背景画像しか見えないというすさまじいものでした。そのコンセプトはとても共感できて、social-cms-backendを自分で開発したときも同じではないものの似た問題意識でした。Meteorのサイトは、http://meteor.com/です。いいドメイン持ってますね。Meteorの発音は「ミーティア」です。T.M.Revolutionの歌にありましたね。よし、それを聞きながらコーディングしよう。Meteorの基本的な説明は他に任せるとして、今回はちょっと変わった使い方をしようと思います。そもそも、普通のWebアプリを作るなら慣れたAngularの方が早いのですが、canvasベースのアプリを作りたいと思ったのがきっかけでした。canvasベースのアプリだとAngularの恩恵があまり得られないので、Angular以外を試してみようと。細かい経緯は省きますが、下記のサイトを見てやってみようと思いました。http://www.html5gamedevs.com/topic/4886-how-to-use-phaser-with-meteor/Phaserというのはhttp://phaser.io/で、WebGL/Canvasでゲームを作るフレームワークです。Phaserの説明も他に任せます。上記の記事はちょっと古くて、今では、https://atmospherejs.com/robertlowe/meteor-phaserが使えます。MeteorのパッケージがAtmosphereというのは、かっこいいですが、慣れるまでは戸惑いそうですね。お題は1bitコミュニケーションツールを考えています。夏の暑いときに作った「暑さをみんなでふっとばせ!」というアプリを移植してみようと思います。このアプリについては、下記を参照。1bitで使い捨てで匿名のコミュニケーションツールを作ってみたFamo.us/AngularのサンプルアプリをGitHubに置きましたこれは、Famo.us/Angularで作りました。お手軽だったのですが、ちょっとゲームのようなものに使うにはパフォーマンスに難がありました。そこで今回は同じものをMeteor/Phaserで作ってみようと思います。この記事を書きながらコーディングするのでうまく行くか分かりません。読みにくくなってしまうかもしれませんがご了承ください。Meteorをインストールします。https://www.meteor.com/installに従います。このチュートリアルはよくできてますね。sh1.0.1になってroot権限も要求しなくなりました。1.0のときも、sudoのパスワードを入れなければ同じだったのですが、これはシンプルでよいです。冬なのでアプリは「寒さをみんなでふっとばせ!」にします。ふっとばすというのは合わないかもしれませんが。アプリ名はsamufutにします。samufutチュートリアル通りです。ここで、phaserのライブラリを入れてしまいます。robertlowe:meteor-phaserこれができるようになったのは最近のようですね。&で起動して準備完了です。Phaserを使ったコードを書くところで時間がかかっています。これはあまりMeteorは関係ないところです。一つだけ気になったこととして、本体のjsを編集すると毎回パッケージのアップデートをしようとして遅いので、Phaserのコードはclient配下に移動しました。この場合はrefreshするだけなので比較的早いです。Meteorの話が出てくるのは明日になりそうなので、本記事はとりあえず一時保存します。その後、Phaserのコードはほぼ完成し、次に通信部分のコードに着手します。Meteorは既にsockjsを使って通信を行う仕組みになっているのですが、それをアプリからも使えるとよいです。調べたところ、http://arunoda.github.io/meteor-streams/というのがありました。パッケージはこちらですね。lepozepo:streamsでインストールします。サンプルコードもそのまま貼り付けます。});}直感的ですね。これで実装してみましょう。今回はinsecureは入れたままにします。コードは237行でした。それでは、デプロイしてみます。samufut.meteor.comできました。メールアドレスが要求されました。pagesやherokuと同じように問題になるのではないでしょうか。そのうち、*.meteorapp.comとかになるかもしれませんね。デプロイされたサイトは、http://samufut.meteor.com/です。使い方は書きませんでしたので、暑さをみんなでふっとばせ!の方を参照してください。試した範囲だと、環境によっては通信がうまく行かないケースがあるようです。遅延というか、反映されないのです。ソースコードは下記にアップしました。https://github.com/dai-shi/samufut当初は、もっとMeteorのことを書こうと思っていたのですが、苦労したのはPhaserまわりだったのであまり書くことがなくなってしまいました。やったことないですが、insecureを外してまじめに実装するといろいろコード量が増えて、結局大変っていうことにならないか心配です。それでも、プロトタイプが手軽に作れるのは利点だと思います。気になったことを一つ思い出しました。普段非同期処理で書くことが多く、比較的好んでいるのですが、Meteorのクライアント側のmongoは同期的なので戸惑いました。キャッシュされているからなせるわざなのでしょうか。事前にpublishできないようなデータの場合どうなるかなど気になります。勉強しなければいけません。それでは、Meteorの今後に期待します。sudoがいらないと思ったのは勘違いでした。その時の環境が/usr/local/binにwrite権限があったため。