Zombie.jsでtwitterに投稿する
最近タワーディフェンスのゲームを色々調べていてPLANTS vs ZOMBIESやARMY vs ZOMBIEさらにはSAMURAI vs ZOMBIESまであることを知ったんですが、皆ゾンビ大好きですね!それはさておき、Zombie.jsが便利です。Zombie.jsはCUIで実行できるブラウザエミュレータで、フォームの入力やクリックなどひと通りのブラウジングをJavaScriptで操作できます。Cookieやローカルストレージにも対応しているため、ログインしてああしてこうして〜ということもできます。サンプルとしてtwitterに投稿するコードを書きました。
これはこのページでログインボタンを押したあと
このページに移動してツイートボタンを押す状況を再現しています。
※一応本家の方でもいけると思うんですが、JavaScript周りでエラーが出て上手くいかなかったのでjsを切ってMobile Webでやりました。
リンク
Insanely fast, headless full-stack testing using Node.js
クライアントのテストはzombie.jsでいいんじゃないか - mizchi log
okame-log – Javascriptテストフレームワーク「Zombie.js」
特濃ゲーム開発塾2012でenchant.jsを使ったゲーム開発について喋りました
岩手でゲームを作ろう的な旨のセミナーで喋りました。
僕は初日の担当で、とりあえずゲームを一本作れるようになりましょう、というのが目標。初めは変数がどうだコールバックがどうだというお話を考えていたのですが、どうもプログラミングを話で教えるのは根本的に無理な気がしてきたので、座学ゼロでオール実技にしました。
各々が課題をこなしていくだけでは面白くないのでレース形式にしました。ルールはこんな感じです。
- 参加者は二人一組のチーム
- 用意された課題を順にこなしていく
- 課題ができたらgithubにpushする
- 正解するとポイントゲット
教室の前には各チームのポイントが表示されたスコアボードが表示されています。これはgithubへのpushを検知するnotifierにもなっていて、node.js + WebSocketで書いたサーバーをgithubのWebHookで叩いています。
チームごとにenchant.jsのキャラが割り当てられていて、ラップトップにアイコンが貼ってあります。
spaceチーム | knightチーム |
課題はこんな感じです
- Stage 1
- クマを表示させろ!
- 泣いてるクマを表示させろ!
- クリックされたら泣くクマを表示させろ!
- クリックした場所に移動するクマを表示させろ!
- ドラッグした場所に移動するクマを表示させろ!
- 勝手に移動するシロクマを表示させろ!
- 勝手に移動するシロクマ10体を表示させろ!
- ドラッグした場所に移動するクマと勝手に移動するシロクマ10体を表示させろ!
- Stage2
- クマをクリックする"ゲーム"を作れ!
- クマが10体のシロクマを避けるゲームを作れ!
- クマが次々に流れてくるシロクマを避けるゲームを作れ!
- 時間を表示させろ!
- BGM, 効果音を鳴らせ!
- Stage3
- クマから弾を発射させろ!
- 弾に当たったシロクマを消せ!
- 敵も弾を撃ってくるようにしろ!
- シューティングを作れ!
- Stage M
- もぐらたたきを作れ!
- Stage B
- ブロック崩しを作れ!
- Stage P
- Pongを作れ!
enchant.jsはもちろんのこと、JavaScriptも触ったことが無い人がほとんどだったので座学ゼロは不安だったんですが、最終的にはどのチームもそれなりに進みました。チーム作業にしたのと、事前課題としてcode.9leapやっといて下さいっていうのが効いたと思います。レース形式も思いのほか盛り上がって安心でした。
講義の様子はFacebookページにもアップされるのでこちらもよろしくお願いします。
Mac(lion)でhomebrewを使ってsshでリモートサーバーをマウントする環境を整える
MacFUSEとかOSXFuseとか色々あるみたいですがhomebrew経由でインストールしたソフトだけで環境を作りたかったのでメモ。
まずsshfsを確認します。
➜ ~ brew info sshfs sshfs 2.4.0 http://fuse.sourceforge.net/sshfs.html Depends on: pkg-config, fuse4x, glib, automake, automake, libtool Not installed https://github.com/mxcl/homebrew/commits/master/Library/Formula/sshfs.rb ==> Caveats Make sure to follow the directions given by `brew info fuse4x-kext` before trying to use a FUSE-based filesystem.
先にfuse4xを設定しろと言われるので従います。
➜ ~ brew info fuse4x-kext fuse4x-kext 0.9.0 http://fuse4x.org/ /usr/local/Cellar/fuse4x-kext/0.9.0 (5 files, 272K) * https://github.com/mxcl/homebrew/commits/master/Library/Formula/fuse4x-kext.rb ==> Caveats In order for FUSE-based filesystems to work, the fuse4x kernel extension must be installed by the root user: sudo cp -rfX /usr/local/Cellar/fuse4x-kext/0.9.0/Library/Extensions/fuse4x.kext /Library/Extensions sudo chmod +s /Library/Extensions/fuse4x.kext/Support/load_fuse4x If upgrading from a previous version of Fuse4x, the old kernel extension will need to be unloaded before performing the steps listed above. First, check that no FUSE-based filesystems are running: mount -t fuse4x Unmount all FUSE filesystems and then unload the kernel extension: sudo kextunload -b org.fuse4x.kext.fuse4x
言われた通りに進めます。
brew install fuse4x-kext sudo cp -rfX /usr/local/Cellar/fuse4x-kext/0.9.0/Library/Extensions/fuse4x.kext /Library/Extensions sudo chmod +s /Library/Extensions/fuse4x.kext/Support/load_fuse4x
念のためこの段階で再起動しておきます。
最後にsshfsを入れます。
brew install sshfs
あとは普通にいけます。
mkdir mnt sshfs username@host:path mnt
アンマウントはumount
umount mnt
モチベーション3.0
モチベーション3.0 持続する「やる気!」をいかに引き出すか
- 作者: ダニエル・ピンク,大前研一
- 出版社/メーカー: 講談社
- 発売日: 2010/07/07
- メディア: ハードカバー
- 購入: 94人 クリック: 5,251回
- この商品を含むブログ (139件) を見る
人のモチベーションを食欲や性欲などの生理的動機(1.0)アメとムチで制御される外発的動機(2.0)社会貢献や自己実現などの内発的動機(3.0)と分類して議論する話です。外発的動機より内発動機の方が良いですよ、ということは誰しも経験的にぼんやりと理解していると思いますが、この本の良いところはそれを証明するいくつもの実験が示されているところにあります。モチベーション3.0を導入すれば仕事がうまく行って家族や友人との関係が良好になって集中力も上がります、とまで言われるとやや進研ゼミが過ぎるように聞こえますが、参考になる点が多いのは確かでした。
本書では主に2.0や3.0について書かれていましたが、むしろ1.0つまり食欲や性欲に可能性があるように思いました。ので、次はこれを読みます。
性欲の科学 なぜ男は「素人」に興奮し、女は「男同士」に萌えるのか
- 作者: オギ・オーガス,サイ・ガダム,坂東智子
- 出版社/メーカー: 阪急コミュニケーションズ
- 発売日: 2012/02/10
- メディア: 単行本(ソフトカバー)
- クリック: 17回
- この商品を含むブログ (5件) を見る
enchant.jsを使って9分でゲームを作る動画
enchant.jsを使って9分でゲームを作る動画をアップしました。
9分でゲームを作る
コンソールを表示するのを忘れていたり、途中からファンの音がうるさかったり見直すと色々アレですが。
作ったゲーム(と見た目が同じもの)は9leapで公開されています。
http://9leap.net/games/1391