
備忘録
コードが設計書
内部DSLをフル活用して、宣言的なコードが実行できて、かつ宣言的な部分が仕様書になる。
論理レベルではUIも自動生成できて、動きを確認できるとよい。ViewModelはその後の実装や自動テストにも使う。
少なくとも、言語組み込みデータ型は使わないことが必須。くっそくだらない範囲チェックとかそういうのをコードから全廃する。
サンプルとしては家計簿アプリがいいかも。
北限の海女ゲーム
早い者勝ち!
海女の斜め方向をタップして泳がせる。海底にはウニがいるが、距離が一定以内でスピードが一定速度以下でないと採れない。
海底や障害物などにぶつかると酸素が減る。酸素がなくなる前に海面で息をしないといけない。お客さんを待たせすぎるとゲームオーバー。
ボーナスキャラで南部ダイバーや影武者が出現。影武者はグラディウスのオプションみたいな感じでついてくる。泳ぐスピードが速くてもウニを採ってくれる。
麻雀
思考ルーチンを募集してみんなで競いあう。
IronRubyやIronPythonで書けたら面白いと思う。
マルチタッチ写真破りアプリ
おばかアプリのネタ。元恋人との写真をマルチタッチで破ったり、燃やしたり、ナイフをさしたり。
――似たようなのがあった。
VB6のfrmからXAMLへのコンバータ
VB6を捨てるには。
短縮アドレス
http://別名で.jp/短縮アドレスを生成
http://別名は.jp/というサイトを作ってはみた。最初は短縮アドレス部分も日本語にしてたのだが、twitterに張り付けてもリンクとして有効にならなかった。
そうこうしてる間にtwitterが公式にURL短縮機能を取り込んだのであまり便利じゃなくなった。
TODO: GitHubでソース公開
HTMLテンプレートエンジン
プレーンなHTMLでWeb Applicationのビューを定義できるテンプレートエンジン。 Javaで言えば、Apache Wicket、Apache Tapestry、Seasar Mayaaあたりが実装している。 (ただし、Wicketはwicket:id、Tapestryはjwcidという、HTMLにない属性を使う。Mayaaはm:idを使うこともできるが、HTMLのid属性を使うこともできる。)
もし.NETで実装するのであれば。以下メモ。
- 新たな拡張子(例:astx)を決める
- System.Web.Compilation.BuildProviderから派生したカスタムBuildProviderクラスを作る
- foobar.astxとfoobar.htmlをパーズして、foobar.astx.csで定義されたIHttpHandler実装クラスの派生クラスをCodeDOMで生成する
- IHttpHandlerFactory実装クラスを作る
- *.astxへ要求が来た時にBuildManager経由でカスタムBuildProviderを呼び出して、IHttpHandler実装クラスのインスタンスをもらってくる
そうすると、以下のあたりが時間がかかるけど面白そう。
- astxの仕様
- IHttpHandlerを実装する抽象クラスの仕様
- カスタムBuildProviderの実装 (ILと友達になりたくはないが)
びょーんすぽっすぽっゲーム
パチンコから球を2つ同時に打ち出して、2箇所に開いている穴に玉を入れる。
ゴムを引く力、打ち出し方向、2つの球の角度を調整しないと玉が穴に入らない。