2008年 7月 24(木曜日)The door won't open
「意思の will」にはなかなか気付けないので修業が足りない。
"will"で未来を念じているのは、人です。だから"will"は未来形であると同時に、「意志」という意味があります。 タイトルくらいわかりやすいと良いんですが、流れの中でポッと出てくると戸惑ってしまう。 極々個人的な経験で言うと、「意思の will」特に「頑なに〜しようとしない」の「won't」は個人よりも物体であるとかちょっとした集団のポリシーに使われてるケースに出会う。"PS3 won't work!"とか"We won't do that ~"とか。 いわゆる未来の will も中学くらいでは「be going to と同じだよ」という教わり方をした(よね?)わけですけど、実は細かい違いがある。という事は予備校で知った。 で、ここでアサマシです。 大学受験で散々ブッコんだ英語知識も大学生になってからと言うもの、ボロボロと抜け落ちてしまった。それをある程度戻すのに役立ったのがこの本。「if の省略形仮定法」とか久々に思い出せた。 中学レベルから高校レベルまでの文法をザラっとすくっている内容。4色刷り。そして安い。各章が文法の形の解説で、基本→理解→応用のパターンがメイン。イラストをちょいちょい使ってるので、それも理解を助けてくれます。 ただ、しょーもない例文が多い。変にカッチョよくしてるのよか分かり易くて良いのかも知れないけど、ちょっと不満。あと大学に入った直後に出てるのも許せない。これが受験時期にあったら手元の文法リファレンスにしてた。ロイヤル英文法使ってました。懐かしい。 英文ブログとか読むには文法理解よりも語彙力が重要かなー。全然足りてない。 たまに堅めのコラムスタイルなブログを読む時には文法と英文解釈は必要に思える。 「英会話は単語だよ、単語!」みたいな事を言う人をみると「こやつめ、ははは」とか思ってたんですが、実際それは間違いなかった。 日本に来て半年のアメリカ人ゲームプログラマとゴールデン街で飲んだ事があって 俺「most Japanese が play する game は their friends が play してるヤツなんだよ」 彼「ah...モンハン?」 全然通じる。 2008年 7月 8(火曜日)PHPフツウ
PHPサイキョウ
「rocks」でやった結果。
なるほど。 他はどうか。
Ruby 圧倒的過ぎるだろ。 その他。
C++ と Java が大体同じくらいで Python より多い。意外。 ついでに「rules」でもやってみた。
すげえ!これは期待出来る!
Ruby 強すぎ。 おまけ。
2008年 6月 23(月曜日)PHPMock を触ってみた
『次世代 Mock Object フレームワークの雄』として一部から熱く注目されている(と思いたい) PHPMock ですが、ちょろっとテストコード読んだくらいで触った事が無かったのでトライ。
ちなみに PHPMock のテストコードは PHPSpec で書かれている。個人的には残念な書き味というか、読みやすくない。PHPUnit バンザイ。 ただ PHPUnit の Mock はもうちょっと融通利かせてもらえると有難い。という所で PHPMock はどうか。 Let’s do this. PHPMock にはまともなドキュメントが一切無い。tgz 玉もないので Google Code からチェックアウトするしかない。specs ディレクトリにテストコードがあるのでこいつを見れば大体の使い方はわかる。test as document を地で行く感じだ。メソッド名は RSpec の mock/stub に似ているというか似せてある。 テストコードはこんな感じ。ダウンロードはこちら。 ■ test/ProductServiceTest.php <?php
define(DEMO_ROOT, dirname(dirname(_FILE_)));
require_once DEMO_ROOT . '/phpmock/src/PHPMock.php';
require_once DEMO_ROOT . "/lib/ProductService.php";
require_once DEMO_ROOT . '/lib/IDBConnection.php';
require_once DEMO_ROOT . '/lib/Publisher.php';
class ProductServiceTest extends PHPUnit_Framework_TestCase
{
const PRODUCT_ID = 1234;
public function test_プロダクトを全件取得する ()
{
$mockDb = PHPMock::mock('DBConnection');
$mockDb->shouldReceive('execute')
->withAnyArgs()
->once()
->andReturn(
array('name' => 'NINJA GAIDEN 2')
);
$this->service->setDBConnection($mockDb);
$this->assertNotNull($this->service->getAll());
}
public function test_プロダクトIDからパブリッシャの名前を取得する()
{
$mockPublisher =
$this->createPublisherMock(self::PRODUCT_ID);
$this->service->setPublisher($mockPublisher);
$publisher = $this->service->
getPublisherByProductId(self::PRODUCT_ID);
$this->assertEquals('Activision', $publisher['name']);
}
public function test_クイックモックでfindAllしてみる()
{
$mockPublisher = PHPMock::mock('Publisher',
array('findAll' => array()));
$mockPublisher->findAll();
$this->assertTrue($mockPublisher->verify());
}
public function test_引数がマッチしなければ例外を投げる()
{
$mockPublisher =
$this->createPublisherMock(self::PRODUCT_ID);
try {
$mockPublisher->findByProductId(9999);
} catch (Exception $e) {
return;
}
$this->fail("An expected exception has not been raised.");
}
public function test_PHPUnitのMockObjectはこんな感じ()
{
$mock = $this->getMock('DBConnection',
array('execute', 'preparedStatement'));
$mock->expects($this->once())
->method('execute')
->will($this->returnValue('aaaa'));
$this->assertEquals('aaaa', $mock->execute("sql statement"));
}
public function createPublisherMock ($productId)
{
$mock = PHPMock::mock('Publisher');
$mock->shouldReceive('findByProductId')
->with($productId)
->andReturn(
array('name' => 'Activision')
);
return $mock;
}
public function setUp ()
{
$this->service = new ProductService;
}
public function tearDown ()
{
}
}で、このコードは実行すると「test_引数がマッチしなければ例外を投げる」でコケる。 PHPMock_Expectation#matchArgs に問題があって ■ phpmock/src/PHPMock/Expectation/Expectation.php public function matchArgs(array $args) { if (empty($args) && empty($this->_expectedArgs) && is_array($this->_expectedArgs)) { return true; } elseif ($args == $this->_expectedArgs) { return true; } elseif ($this->_expectedArgs == true) { return true; } elseif ($this->_expectedArgs == false && empty($args)) { return true; } return false; } 「$this->_expectedArgs == true」これだと $this->_expectedArgs に値が入ってれば true になっちゃうという良く話題になるアレです。正解は「$this->_expectedArgs === true」これですな。 上のコードで使っている DBConnection はインターフェースで Publisher は空っぽのクラス。 インターフェースに定義されているメソッドは PHPMock#_generateDefForMethods がよしなに実装してくれるので安心。PHPUnit の Mock Object だと定義したメソッドをイチイチ配列で全部ツッコまないといけない。 いわゆるスタブは無くて shouldReceive 一本になると思われる。 PHPMock#mock の第二引数に array($methodName => $returnValue) を与える事で簡単にモックが作れるのは好感。 ■ まとめ
2008年 6月 19(木曜日)[RSpec] xit を知らなかった俺涙目
RSpec 使って開発してて、ちょっと一手戻りたい時に it 節というか example をバコっとコメントアウトしてたんですけど。
■example_group_methods.rb # Use this to temporarily disable an example. def xit(description=nil, opts={}, &block) Kernel.warn("Example disabled: #{description}") end alias_method :xspecify, :xit とびてー。 2008年 5月 6(火曜日)炎上必至のフレームワーク2008年 4月 13(日曜日)The New Gamer JP
先日 twitter で The New Gamer というブログの存在を知る。
単純なゲームレビューサイトはちょっと風味が違う。 ゲームを題材にパースペクティヴを効かせたエッセイが多い。更新頻度はそんなに高くない。 ヘッドライターが1人とサポートライターが2人くらいで運営しているようだ。 サポートライターはレビュー中心。 ヘッドライターの書くエントリは構成がきれいで、言い回しもカッコいい。 それでいて文章から滲み出ているキチガイっぷりがたまらない。大好きだ。 The New Gamer JP 2008年 3月 4(火曜日)[参加してます] NO MORE HEROES リミックスサントラ DARK SIDE
NO MORE HEROES のリミックスサントラが 3/14 に発売になります!
今回は、おそらくghm史上、最高にカオスな一枚に仕上がっていると笑顔で断言します! ゲーム作家・飯田和敏率いる「THE RIOT-怒りの10代-」のギターとして本作品に参加してますので、どうぞご贔屓に!! ![]() ---
2008年 2月 14(木曜日)[俺メモ] Safari のショートカットキーを変更する
Safari のタブ選択ショートカットキーはデフォルトが「⌘{ / ⌘}」なんですが、Dvorak-Qwerty⌘ の環境だとイマイチ動いてくれない。
で、これを変更する方法をたまに忘れるので例によって俺メモ。 Safari に限った事ではなくて Mac OS X のアプリケーション全体で使えます。
これだけ。すげーカンタン。 Firefox と同等にしました。 TextMate のタブ切り替えもこれなのでコンテキストスイッチする必要が無くて安心。 SafariStand を入れておくと更に「カンマ / ピリオド」でもいけるようになる。 2008年 2月 5(火曜日)しょーもないPHPプログラマにありがちな40の兆候
ザラッと訳してみる
元々がちょっと変な所は手を入れてます。なんだか良く判らんのは原文残してます。添削してつかあさい。 40 signs you really are a lousy PHP programmer
PHP に直接関係無い項目もありますね。 素直に納得出来る項目もあれば、場面ってのも。 場面ってのはそれが有効に作用するケースもあるだろう事を知っていないといかんのですけど。 2008年 2月 4(月曜日)CoD4 のオレオレカスタムクラス
CoD4 では装備セッティングを「カスタムクラス」として 5 つ作成できます。
で、俺チャンが使っているセッティングを公開してみたいと思った次第。 Maps は使用頻度の高さ程度。実際は場面。 最近は Headquarters しかやってないんですけど Team Deathmatch, Domination でも同じセッティングでやってます。 これ書いてる時点で Lv.34 (Prestige Lv.1) なので P90 とか Frag x 3 とかナシ。 中距離 3 発フィニッシュ系
beta 時はフルオートだった M16 ですが、あまりにも強過ぎたせいか 3 点バーストに変更。 それでも強い!バランスが良過ぎる。Stopping Power 付きだと上半身に 3 発ヒットでおk。ただ 3 点バースト故、近距離 2v1 だと撃ち負ける事が多いので Martyrdom (aka ウンコ) で巻き添え狙い。 近距離〜中距離タカタカ系
銃声は一番好き。 beta 時も含めてちゃんと使った事が無かった。Prestige 入りしてから使ってみたらビックリ。 レートこそ低いんですが、その分リコイルも少ないし何より集弾率が高い!Stopping Power で威力増すれば全然使えます。一番ビックリなのが中距離戦も結構行けちゃう点。 裏取り専用ステルス系
GPS 映らない Perk 設定で敵の裏取り。Bandlier で所持弾数を増やしておかないと困った事になりがちでした。Lv.40 以降ならば P90 にサイレンサーで Perk3 は Steady Aim に。 裏取りはその名の通り敵のバックエンドにダッシュ!捲り一発!で Kill していくんですが、「裏取りするヤツがいる」事にイラっとさせてプレイを粗くさせる目的もあります。いわゆる『裏の裏』になるケースもあるのでハマると気持ちいい。 裏取り 5 Kill -> AirStrike -> "Friendly Helicopter Inbound" がキマると脳汁ドバドバ出ます。 アンチヘリ専用
ヘリが来たら使います。正確にはヘリに殺されたら。 Grip 付けると化ける。かなりリコイルが抑えられます。 アイアンサイトでも十分狙いやすいので普段使いも出来るっちゃ出来るんですが、あまり使わない。一時 Shipment で使ってたんですが MP5 のが扱い易い事が判ってからアンチヘリ専用に。 近接もたまにあるけど基本は中距離系
ゲームスタート時に選択する事はありませんが、相手が近距離に持ち込むタイプの時はこっちに切り替えます。フルオートなので遠目の 2v1 でもそこそこいける。気がする。Stopping Power より Double Tap のがいいのではと思う事もありますが、そもそもあまり使わないので研究機会が無い。 Lv.41 以降は RPG が Frag x 3 になってます。 あと Shipment の時だけ Perk2 を SonicBoom にするのもアリ。 それにしても最近はヘリがソッコーで撃墜されてしまう。 6 Kill で止めて(つまり死んで)リスポン後に AirStrike → 6 Kill 止め、のループのが良いのかなー。特に Shipment とか。 【補足】 実はこの草稿を用意した時の話で、今はちょうど一周回った Lv.35 (Prestige Lv.2) です。クラスのセットアップはちょっと違います(AK-74 / AK-74u)が「同じ装備使っててもつまらん」という理由なので上記のクラスが自分的にはベーシックパターンです。 コール オブ デューティ4 モダン・ウォーフェア posted with amazlet on 08.02.04 アクティビジョン (2007/12/27) 売り上げランキング: 66 2008年 1月 21(月曜日)livedoor Reader の使い方を間違っていた
livedoor Reader と言えば視点移動の少ない UI のおかけで楽にフィード閲覧が出来る、ピン機能、Greasemonkey でイジりまわせる等々。
ただどうもここ最近使っている俺のテンポが悪い。ピンがすぐ埋まってしまう。 登録フィード数は5000件ちょいくらい。 フローはこんな感じ 1. ピンを立てる 2. 記事を読みにいく 3. 内容次第では Yojimbo にブックマークあるいはアーカイブ ピンは100件までなので溜まりきったら読んで空きを確保するわけですが、この作業が頻発する。 そのせいか「ピンを立ててもいいんだが空きが少ないから止めておこう」という非常に宜しくない事を考えるようになってしまった。 ピンを同時に別の何か、SBM 的なモノに投げるようなグリモンでも書こう。でもわざわざそんなことせんでも「一発クリップ」があるなー、という段階でピンの使い方を間違っていた事にようやく気付いた。重要度の高い(であろう)記事は一発クリップ、ニュースや中身の薄そうな記事はピン、という使い方が良いんじゃないか。 一昨日くらいからこのスタイルにしてみたんですが、これが結構いい具合。ピンの溜まるスピードがかなり落ちる。ピンに立ててある記事は比較的どうでもいいものがほとんどなので開いて斜め読みして閉じていく事で LDR にすぐ戻れる。意外と良ければ Yojimbo に投げる。 livedoor Clip は LDRize でバツバツ読めるし、自分の clip したフィードを Vienna に食わせておくようにもしている。タブで元記事表示が出来るので悪くない。Vienna 単体で RSS リーダーとして使うには複数台環境で厄介になるが、フィード1件ならどうでもいい。Vienna から Yojimbo にブックマークやアーカイブする AppleScript を書けばより幸せになれる。 購読数が7000や8000になるとまた読み方が変わってくるとは思いますが、今の所はこれで機能しそうです。 2008年 1月 2(水曜日)競艇場のお抱え実況アナが面白すぎる
競艇場にはお抱えのアナウンサーがいて、彼らがレースの実況をするそうだ。
なかには独特の節回しでファンを獲得している様子。 YouTube に数点ありました。 ■ 平和島競艇・ベイ吉こと松永良一アナ 「まさに」「XXXとお伝えしておきます」「捲りぅいっっぱつ!」「XXと呼んで頂けたらと思います」 テキトーなニックネーミングと耳に残るフレージングが素敵すぎる。 「お伝えしておきます」はちょっと使いたくなる。 ■ 蒲郡競艇場の名物アナ、高橋貴隆氏の実況ハイライト2007Ver. すっごいツボ。 通常時と気合いの入った擬音表現のギャップがヤバい。 お二方とも普段からこのスタイルでは無くて、大きいレースの時だけらしい。 おまけ。ギャオン。 ■ 飯塚オート実況(・∀・)ギャオ 本年も宜しくおたのもうします。 2007年 12月 20(木曜日)RSpec本が出る Part.2 : Pragmatic Bookshelf から
ここまでの流れ
RSpec 本を発見する ↓ 秒殺 1Click 予約 ↓ エントリ書く ↓ 何故かはてブされている ↓ 「なんだこの ↓ るびまの RubyConf2007 レポートを読む ↓ Pragmatic Bookshelf から出る事を知る ↓ オウフww大丈夫ww大丈夫ですww ← イマココ 「月初に Wii 買ったんですよ。で、ヌンチャク入ってないもんだと思って一緒に別個に買ったんですわ。そしたらバンドルされてましてね。イヤー、参った参った」リターンズ -- 爆速で読めませんし、懐も痛くはあるんですが買ってみることにしますよー。 Pragmatic Bookshelf の方はいつか誰かに借ります。 せっかくだから俺はこn(ry 2007年 12月 18(火曜日)RSpec本が出る : Foundations of RSpec
アツすぎる。秒殺で 1Click 完了。
全然中身不明だけど 1.1.0 対応だろうか。 いくらなんでも攻めすぎだ、とも思うけどタイミング的には悪くないのか? テスティングライブラリ1本でガッツリ本を出せるだけの勢いがあるっちゅー事だもんね。 逆に書籍が出る事でファッション化を進めちゃうケースもあるんだろうけど、RSpec は大丈夫。盤石になると思います。 Foundations of Rspec: Behavior-driven Development With Ruby and Rails (Foundations) posted with amazlet on 07.12.18 Chad Humphries Ken Barker Apress (2008/02/11) 売り上げランキング: 16880 2007年 12月 17(月曜日)S2Base.PHP5-2.0.0RC2 出てます
でますた。
http://s2base.php5.sandbox.seasar.org/ 主な変更点 ・goya コマンドを service & dao に変更 ・with Symfony の追加 ・with Zf に functional test を追加 ・Symfony のプラグインとしてインストールする sfS2BasePlugin を新規追加 Zf の functional test はもうちょいどうにかしたいと思いつつも、今のところ大して不便もしてない事実。 mock/stub のセットアップがちょっと面倒なくらいか。 あれはなんとかしたい。 フィードバックお待ちしてます。
(ページ 1/8, 合計 119 エントリー)
» 次のページ
|
クイックサーチABOUTARTICLES最近のエントリ
TUMBLRカテゴリ管理 |


![ブラスト公論 誰もが豪邸に住みたがってるわけじゃない[増補新装版]](http://ecx.images-amazon.com/images/I/51h9eEJxWeL._SL160_.jpg)
