apressのcocos2d本を読む - 第4章のメモ

apressの"Learn iPhone and iPad cocos2d Game Development"を読みながらcocos2dを勉強していくメモ。今日は第4章。この章は、加速度センサーを使ってプレーヤーを動かし上から落ちてくるクモを避けるというゲームを作っていきながら、cocos2dプロジェクトで…

apressのcocos2d本を読む - 第3章のメモ

apressの"Learn iPhone and iPad cocos2d Game Development"という本を読んでいる。ざっと眺めた感じでは、cocos2dのサイトにあるドキュメントよりは包括的で、ずっと良い参考資料だなという印象がある。apressのサイトからサンプルコードもダウンロードでき…

cocos2dプロジェクトにテストを追加する

cocos2dのテンプレートから生成したばかりのプロジェクトのTargetにはテストが追加されていない。Xcode4でこれを追加する方法のメモ。アプリケーション名はMyAppとします。 Add Targetsで"Cocoa Touch Unit Testing Bundle"を選択 ターゲット名は通常、「(ア…

OCMockをApplication Testで使う

最初この記事を見てstatic libraryではなく、OCMock.frameworkを使う方法を試していたのだが、この方法ではApplication Testではうまくいかない。 http://iamthewalr.us/blog/2008/11/ocmock-and-the-iphone/ OCMockのWebサイトに書かれている通り、static l…

続cocos2d事始 - Menuを作る

Layerを作る 前回作ったところまでで、最小限のSceneを作ってゲームに必要な要素を追加していく準備ができた。SceneにはLayer, Menu, SpriteといったCocosNodeのサブクラスを追加していくことになるが、まずは一番基本的なLayerクラスを使って、背景を追加す…

続cocos2d事始

大型連休前にPython版cocos2dを触ってみて、予想通りインストールしてサンプルをちょっと動かしただけで飽きたわけだが、ここ数日iPhone版のcocos2dも少しいじっていて、「基本的な概念が同じならばPythonでやった方がプロトタイピングにはいいかも」と思い…

Cのプリプロセッサを使ってJavaScriptの前処理を行う

『ハイパフォーマンスJavaScript』を読んだ。ハイパフォーマンスJavaScript作者: Nicholas C. Zakas,水野貴明出版社/メーカー: オライリージャパン発売日: 2011/03/20メディア: 大型本購入: 9人 クリック: 1,176回この商品を含むブログ (31件) を見る全体と…

@font-faceが便利

CSS

けっこう昔からある技術なのかもしれないが、@font-faceでローカルにインストールされていないフォントを指定してHTMLを描画することができることを知った。 @font-face - MDC Docs MSDN Microsoft library の @font-face CSS3 module: Web Fonts/W3C Workin…

MP3をOgg Vorbisに変換する

Ogg

HTML5 Audioで使うために、MP3をOgg Vorbisに変換したい。最初、 $ ffmpeg -i audio.mp3 -y audio.ogg のようにffmpegを使って変換を行っていたが、やたらファイルサイズが大きくなるし、Chromeでは再生できても、Firefoxで再生できない。もしかしたらffmpeg…

cocos2d事始

インストール cocos2dといってもiPhone版じゃなくてPython版の方。ここに書いてあるとおりにやれば環境は作れる。 http://cocos2d.org/doc/programming_guide/installation.html が、実際はpygletもcocos2dもPyPIに登録されていて、依存関係もきちんと定義さ…

CanvasのfillStyleにcanvas/SVGを指定する

チラシの裏。canvasのfillStyleにcreatePatternを使って生成したCanvasPatternオブジェクトを指定する場合、createPatternにはcanvasやSVGを指定できるのか試してみた。canvasはChrome安定版やFirefox4.0だけでなく、iPhone4やAndroid端末(SC-02B)でも表示さ…

auの一部の端末のFlash Playerは9ストップ以上のグラデーションを表示できない

久しぶりにブログを更新したと思ったら、Flash/FlashLiteのような死滅しつつある技術について書いていてすみません。完全にチラシの裏です。auの一部のFlashLite Playerには9ストップ以上のグラデーションを表示できないという制限があるようです。僕はW43H…

チラシの裏

PHPのMemcache::deleteがなぜかfalseを返す・・・と思って調べていたのだが、 http://jp2.php.net/manual/ja/memcache.delete.php これか・・・・!? the Memcache::delete(key) function is broken on several combinations of memcached+pecl-memcache co…

yaml拡張の奇妙なバグ?

【追記】バグではなく、YAMLの「落とし穴」らしいという結論に達しつつあります。PECLのyaml拡張はナウでヤングなPHPerが腐りきったSpycやSyck拡張のかわりに使うらしいYAMLライブラリ。が、 int(12) [1]=> int(1) }のような出力結果になる。 CentOS 5.5 PH…

全俺が泣いた - チラシの裏

『【GDC2011】ジンガが振り返る『FarmVille』から『CityVille』で得た教訓』という記事が面白いです。 『CityVille』は昨年8月頃に開発が始まったものの、明確なビジョンが定まらないままかなりの迷走があったそうです。一時は買収したオースティンのChallen…

Flash-AssetsでJavaScript/CSSを管理する

オフィシャルドキュメントに書いてあることで十分だけど、練習をかねてチラシの裏に書いてみる。 http://elsdoerfer.name/docs/flask-assets/ インストール。 $ pip install Flask-Assets 単純なFlaskアプリケーションで試してみる。 # -*- coding: utf-8 -*…

Closure Compilerのアノテーションが便利

Closure Compilerは言わずと知れたGoogle製のJavaScript最適化ツール。 http://code.google.com/intl/ja/closure/compiler/ 昨日のYUI CompressorとかUglifyJSの話の続きで、この系統のツールを調査していたのだが、Closure Compilerはまた別の魅力があるよ…

UglifyJSがよさげ

https://github.com/mishoo/UglifyJS UglifyJSは、node.jsで書かれたJavaScriptの圧縮ライブラリ。 Additionally with this switch we’ve moved to using UglifyJS from the Google Closure Compiler. We’ve seen some solid file size improvements while u…

webassetsがよさげ

webassetsはWebアプリケーションのJavaScript/CSSの管理ユーティリティライブラリ。もっとわかり易く言うと、複数のJavaScriptファイルをまとめたり、圧縮してくれたり、URLに変更日時のタイムスタンプを付けてくれたりする便利ライブラリ。 PyPI http://pyp…

FitNesseが本当にソフトウェアテストの未来を示しているかが分からない - チラシの裏

FitNesseはAcceptance TestingをWikiフォーマットで記述するためのフレームワーク・ライブラリ。 http://fitnesse.org/ 『実践アジャイルテスト』や『ビューティフルテスティング』で肯定的に紹介されているプロダクトだから、ちょっと気にしているのだが、…

Facebookのコードレビューツール

WHAT IS ARCANIST?Arcanist is the CLI for Facebook's code review tool, Differential. Since Differential isn't released yet, it may not be terribly useful on its own. https://github.com/facebook/arcanist ということなので、ArcanistはFacebook…

Symfony\Component\Process\Process - チラシの裏

$process->getOutput()で外部コマンド実行結果を取得。 run(); $content = $process->getOutput(); var_dump($content); $process->run($func)にCallback関数を渡して外部プロセ…

グローバル変数の保存や復元

PHPUnitのアノテーションのドキュメントを読んでいて知ったが、PHPUnitには各テストケースの実行前後にグローバル変数を保存・復元してくれる機能があるらしい。 PHPUnit Manual - Fixtures - グローバルな状態 PHPUnit Manual - 付録B アノテーション - @ba…

Python3.2はUnicode 6.0に対応した

Python has been updated to Unicode 6.0.0. The update to the standard adds over 2,000 new characters including emoji symbols which are important for mobile phones.In addition, the updated standard has altered the character properties for tw…

cacheのKEY_PREFIX, VERSION, KEY_FUNCTION

Django 1.3ではcacheにKEY_PREFIX, VERSION, KEY_FUNCTIONというオプションが追加されていた。 http://docs.djangoproject.com/en/dev/topics/cache/#cache-arguments # settings.py from django.utils.encoding import smart_str def my_make_key(key, key_…

Django 1.3では複数のキャッシュの設定ができる

ふとDjango 1.3 beta1を触ってみたら、今までのCACHE_BACKENDという設定に変わって、CACHESという設定が可能になった。これを使うと複数のキャッシュを指定できる。 # settings.py CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.memcache…

TwistedでThriftのクライアント/サーバーを書く

TwistedでThriftのクライアント/サーバーを書くには"--gen py:twisted"オプションをつけてモジュールを生成する必要がある。PyPIに上がっているのは大抵"--gen py:new_style"のようなオプションで生成したモジュールだから知らないとハマる。scribeのインタ…

HandlerSocket練習帳 - チラシの裏

PythonでHandlerSocket経由でMySQLにアクセスする。今回はpyhsを使ってみた。 https://bitbucket.org/excieve/pyhs データベース名はsandboxで、テーブルは、 Create Table: CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varcha…

diskstoreなるものが導入されるらしい

何気なくtwitterを見ていたら、Redisの将来のリリースで導入されるdiskstoreというオプションを知った。masterブランチにはすでにコードがあるので、cloneしてビルドすれば試してみることができる。diskstoreが登場した背景はGoogle Groupのこのスレッドに詳…

post-commitを利用して自動的にレビューリクエストを作成する

Subversionのpost-commitフックを利用してReview Boardのレビューリクエストを自動的に作成する。 #!/bin/sh # /var/lib/svn/myrepository/hooks/post-commit export LANG="en_US.UTF-8" REPOS="$1" REV="$2" REVPREV=`expr $REV - 1` svnauthor=`svnlook au…