2008年12月24日水曜日

忘年クリスマス会

新柏のミウラ夫妻の家に招待された。

地元の珍味などを持ってきて欲しいとのことだったので、熊本県のアンテナショップである銀座熊本館に行く。
購入したのは:
文蔵梅酒 720ml (球磨焼酎で漬けた梅酒)

からし蓮根 (蓮根の穴にからし味噌を詰め、ウコンを混ぜた衣で揚げたもの)

〆蒲 (〆鯖と蒲鉾が合わさったもの)


それとは別に、プレゼント交換をするとのことだったので、選んだプレゼントは:
手のひらポカタン (使い捨てカイロのカバー)

ポプラ文庫クラシック 少年探偵シリーズ (最近、昔ながらの表紙で文庫化された)


プレゼントが2種類あるのは、妻も参加するからなのだが、妻は新国立劇場でバレエ『シンデレラ』のマチネを観てから来ることになっている。

まあそんなこんなで新柏に向かう。
富山出身のキタくんは満寿泉(ますいずみ)の大吟醸と、かぶら寿司と、ひらめの昆布〆と、いかの黒づくりを持ってきていた。すばらしい。日本酒と梅酒をちびちびぐびぐび。つまみにはスパムもあったな。
ヒガシさんは三元豚をたくさん。豚しゃぶでいただく。これがまたうまい。
甘いものは、ケーキとブッシュドノエル(なぜか、きのこの山が挿してあった)とサーターアンダーギー。ごちそうさまでした。

2008年12月15日月曜日

Webサイトを分けます

技術ねたははてなダイアリーと個人サイト(準備中、Wikiがいいのだけれど)に書こうと思います。
猫は……どうするかな。

2008年12月12日金曜日

2008年12月8日月曜日

三題噺: 脳、スクリーンセーバー、twitter

普段からしょうもないことばっかり言ってるので妻にあきれられる。 「頭のムダ使いはやめて、もっとまともなことに脳みそを使ったら。」 そんなときはいつもこう答える。 「いいじゃん、今は脳みそ空いてるんだから。スクリーンセーバーみたいなもんだよ。」 スクリーンセーバーにしたってSETI@homeのように有意義なものもあるのだが、それは無視。 普段の垂れ流しがどの程度しょうもないのかは、このブログでもわかる(右上のフォームで「こういうことばっかり考えています」と検索すると出てくる)が、twitterのログを見るともっとよくわかる。 これはひどい。駄洒落ばっかり。 えーと、仕事してないときはこういうことばっかり考えています。

2008年12月7日日曜日

猫が湯たんぽ

東京はさほど寒くないとはいえ12月。猫が布団を占領する。
左のウナの方が年上なのだが……
ウナとネネ1

ネネに甘えていることも多い。兄ちゃんしっかりせんかい。
ウナとネネ2

2008年12月5日金曜日

北あかりでポテトグラタン作って食べた

写真はないよ。
ポテトグラタン
北あかり 3個電子レンジで加熱皮をむいて 適当に切る混ぜるグラタン 皿に盛るチーズを 乗せるオーブン で焼く
玉ねぎ 小1個くし型に切る炒める
ハム 3枚小さく切る
小麦粉 大さじ1炒める火を止めて 少しずつ混ぜ、 滑らかになったら 再加熱し とろみをつける
バター 大さじ2
固形スープの素 1個細かく砕く
牛乳 300cc
スライスチーズ 2枚

2008年11月30日日曜日

Silverlight+LINQでトランプ

岩永さんの「C#で大富豪」からパクったインスパイヤされた。



このコンテンツの再生にはSilverlight2が必要です。下の画像をクリックしてください。
Microsoft Silverlight を取得



ソースコードはここ。

練習を兼ねて、ListBoxにバインドしてみた。
Page.xamlはこう。

<UserControl x:Class="Millionaire.Page"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:my="clr-namespace:Millionaire"
Width="108" Height="412"
Loaded="UserControl_Loaded">
<UserControl.Resources>
<my:CardImageConverter x:Key="cardImageConverter" />
<Style x:Key="CardPreview" TargetType="Image">
<Setter Property="Margin" Value="1,1,1,1"/>
<Setter Property="Width" Value="43"/>
<Setter Property="Height" Value="60"/>
</Style>
</UserControl.Resources>
<Grid x:Name="LayoutRoot" Background="White">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="55"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<ListBox x:Name="CardList" Background="LightGray"
Grid.Row="0" Grid.Column="0">
<ListBox.ItemTemplate>
<DataTemplate>
<Image
Source
="{Binding Converter={StaticResource cardImageConverter}}"
Style
="{StaticResource CardPreview}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<Button x:Name="ShuffleButton" Grid.Row="0" Grid.Column="1"
Content="Shuffle" Click="ShuffleButton_Click" />
</Grid>
</UserControl>



型コンバーターはこう。

using System;
using System.Globalization;
using System.Windows.Data;
using System.Windows.Media;
using System.Windows.Media.Imaging;

namespace Millionaire
{
public class CardImageConverter : IValueConverter
{
public object Convert(object value, Type targetType,
object parameter, CultureInfo culture)
{
if (targetType != typeof(ImageSource))
return null;
Card c = value as Card;
if (c == null)
return null;
string name = (c.Suit == Suit.Joker)
? "joker"
: string.Format("{0}{1:00}", "cdhs"[(int)c.Suit], c.Number);
return new BitmapImage(
new Uri(string.Format("Images/{0}.png", name),
UriKind.Relative));
}

public object ConvertBack(object value, Type targetType,
object parameter, CultureInfo culture)
{
return null;
}
}
}



あとはバインドするだけ。

private void Shuffle()
{
Random random = new Random();
IEnumerable<Card> cards = Enumerable.Range(0, 53)
.OrderBy(x => random.Next())
.Select(x => new Card(x))
.Take(6)
.OrderBy(x => x.Rank)
.ThenBy(x => x.Suit);
CardList.ItemsSource = cards;
}

やってみて思ったけど、ListBoxそのままだと縦長だし複数選択はできないし、こりゃないわー。

2008年11月23日日曜日

Fleverlight勉強会 vol.2 行ってきた

はてなダイアリーへ移動しました

円高だし海外通販で靴買ったまとめ

新しい革靴が欲しいなと思い、円高なので海外通販を利用してみた。
試し履きせずに靴を買うのはリスキーだったが、いいや履いてみて合わなければヤフオクに出そう!と決めてポチっと。

Loakeの靴

使ったのはPediwear。イギリスの靴通販サイトで、日本でも有名だ。
値段は英ポンドで、税込価格と税抜き価格が両方表記されている。日本から買う場合はイギリスの税金はかからないが、その代わり関税がかかる(日本の税関から通知が来る)。1足4000~6000円ぐらいは見込んでおくこと。
また、配送料はPediwearの場合1足あたり18ポンドだ。
今回は2足買って、配送料込みで226.55ポンドだった。11月23日現在の為替レート(Yahoo! ファイナンス調べ)だと、226.55 [GBP] * 143.3 [JPY/GBP] = 32,465円。これに関税がかかる。

今回の購入から受け取りまでのタイムラインを書いておくと……

11/08
オンラインで注文確定。注文内容の確認メールが届く。

11/10
受注処理完了。10~12営業日で届くだろうと書かれたメールが届く。

11/18
発送開始。Parcel Forceの荷物追跡番号が記載されたメールが届く。

11/18
リーズで集荷。

11/19
国際ハブに到着。税関を通過し、国際発送。

11/20
日本に到着。

11/21
日本郵便が東京の自宅に配達。不在。

11/23
再配達。荷物受け取り。


ということで、EMSで速攻届いた。船便かなと思っていたけど違った。

2008年11月19日水曜日

深入り.NETプログラミング

NyaRuRuさんが@ITで連載を始めた。
第1回目は、インライン・メソッド・キャッシュによる動的ディスパッチ高速化
さまざまな文献を参照しながら動的型の実装例を解き明かしていく。

NyaRuRuさんは日本でも3本の指に入る.NET Hackerだと思う。来年もいろいろ書いてほしいものだ。

2008年11月16日日曜日

わんくま勉強会#26 LT大集合に行ってきた

わんくま同盟 東京勉強会 #26に行ってしゃべってきた。
最初はSilverlightの話をしようと思っていたのだが、仕込が間に合わず断念。なので、結局冗談半分で言っていた「解題:私がJavaからC#に乗り換えた10の理由」にした。



このトークでは、「C#はWindowsの現実を踏まえたごった煮言語なんだよ」というのを言いたかったので、それが伝わってれば幸い。ま、今時「C#?Micro$oftの劣化版Javaでしょ?」みたいな、うすらばか認識の人はいないと思うのだが。

ただただしPの感想を読んだ。そうだよなあと思う。
自分も今回わんくま勉強会に初めて参加した。.NET技術者なのでコミュニティ自体はしばらく前から知っていたのだけれど、仲が良すぎるというか、悪く言えば内輪感があると感じていた。そういう所に心理的障壁があって、これまでの勉強会に参加しようとは思わなかった。今回はライトニングトーク大会だったから気軽に参加できたのだ。(念のため。わんくま勉強会が排他的だとかなあなあだとか言ってるわけじゃないのに注意。わんくまは健全なコミュニティだと思っている。)そういう意味では、1000Speakersを意識した、という高萩さんの話(懇親会で聞いたと思った。でも酔ってたから記憶があいまいだ)は納得がいった。(追記:どうも違ったみたいなので取り消し)でも内輪感は一体感と表裏の関係なところもあるんで、悩ましいよなあ。java-jaなんかはその辺どう捉えてるんだろう。

で、それはそれとして、MS技術系のブログやコミュニティがスルーされている現実もある。これはわんくまに限らず。いろいろ要因はありそうだ。
例えば、MS技術の情報はMS自体が大量に発信しているし、しばらく待ってれば日本語に翻訳もされるし、エッジなところはお仕事開発では求められていないしで、やっぱりウケミンなところがある。いきおい、「××を使ってみた」系の情報があふれるので、関心がない人の興味を引かない。zioさんとも話したんだが、「○○を作ってみた」が少ないんだよね。Google CodeやCodeReposやCodePlexを活用しようぜ。(自戒をこめて)
あと、"Micro$oft sucks!"なFOSSの人が多いのかもしれない。でもねえ。みんながみんなSoftware Designばかり読んでるわけじゃないしねえ……ごめん、おもんない冗談。ナンダカンダ言ってもマイクロソフトは死んだみたいだし……
でもデブサミなんかを観てても、Javaピープルと.NETピープルとLLピープルは互いに全然関心がないようだし、MS技術側だけの問題じゃないのかもね。そういった意味でも、SilverlightコミュニティとFlexコミュニティの合同勉強会にはすごく興味がある。
MS系のコミュニティ活動というと、Microsoft MVPアウォードの受賞者を抜きに語れないのだけど、その中にはインターコミュニティな凄い人もいるわけだ。artonさん、Fujiwoさん、TAKESAKOさん、wakatonoさんあたりが思い浮かぶ。そもそも彼らレジェンズの主軸がMS系にとどまるものじゃないのだけど。


話がハッサンしているが、最後に各トークの一行感想をまとめておく。
しっかし、小休憩を挟みながらとはいえ5時間連続とかありえないなー。面白かったんだけど聴くだけでへとへとになったよ。

13:00 ~ 13:50 オレンジタイム



なか

D90で撮った野鳥の話。俺も今年D50を入手したのだが、デジイチって楽しいね。

たっく

Google Mapで紹介するアニメ聖地巡礼。会場「東北は少ないんだね」たっく「かんなぎがあるよ」。

鈴木 宏昌

Windowsフォームの配色の話。スライドの差し替えミスではらはらした。

Kei1

exeファイルのファイルバージョンを取得する手法について。

なか-chan@最愛のiMac

Silverlight2でボタンをカスタマイズ。ボタンのテンプレートがわんくまロゴに。ExpressionBlendでの実演まで盛り込むのは、さすがに5分では厳しい。

ZOETROPE

Silverlight2とRuby。サーバはRoRで、クライアントはXAMLとIronRubyで。

アキラ

FC++ (Functional Programming in C++) の紹介。「非常に直感的なコード」ww

猪股 健太郎

上に書いたとおり。

zio3

以前作ったと言うVSアドイン "Property Matrix"のデモ。ポトペタUI開発に便利な、気が利いているツール。

とっちゃん

インストーラの概説。誰でもわかりやすい説明。


14:00 ~ 14:50 レッドタイム



taka

シガーの概説。我が友達の由井くんとシガーバーに行ったことを思い出した。シガーの喫い方か、シガーの“味”について、もっとたくさん話してほしかったな。

高見知英

コミュニティイベント参加の奨め。そう、ITコミュニティに限らず、いろんなコミュニティがあるよね。

片桐継

観賞魚(アカヒレ)の飼育環境を整える話……から、わんくま温泉イベント?の紹介へ。わんくまの人たちはウケていた。

chY

人文諸科学。固定IDとDBの問題を人文科学の観点から。「パノプティコン」が言えずカミカミだったのはネタ?

やじゅ

OOとは?を北斗の拳で語る。が、語れていない(苦笑)。会場に「おまえはもう死んでいる」を言わせて終了……のはずが10秒以上余ってしまい、若干気まずい(苦笑)。

出水

RSAの話。分かりやすかったが、modのことを知ってる人でないと難しいかな。

takeshik

C# 4.0の動的型について。今日1人目のC# 4.0。

IIJIMAS

C# 4.0の新機能概説。動的型以外も説明。今日2人目のC# 4.0。

こくぶんまさひろ

C#で遊んでみた……というタイトルで音階のC#の説明。その後鍵盤アプリのデモ。ちゃんとMIDIメッセージを投げられる。初音ミクに歌わせていた。

ひよひよ

HDD監視ソフトウェア。Googleのレポートを参照しながら。USBHDDに対応するためにたくさんHDDを買い、合計6TBになったという。


15:00 ~ 15:50 グリーンタイム



あんどちん

キャッシュ(CPUキャッシュとディスクキャッシュ)の話。整合性を保つことの難しさ。だよねえ。

matsuzaki

MSKKの中の人。Tech Fieldersという新しいイベントの紹介。

okamura

結婚にまつわる諸手続き。内容はごくまじめなもの。次回は妊娠・出産にまつわる諸手続きだそうで。おめでとうございます。

yamasa

スマートフォン1台でストリーミング配信するには。qikやkyteといったサービスの紹介。デモあり。感心した!

昇日

リフレクションを使って、アセンブリ(dllやexe)の循環参照を無くした話。DIコンテナも検討したが、今回はリフレクションで実装したとのこと。次はDIの話も聞きたい。

mxb

ASP.NETと標準化。エンタープライズな開発では重要なテーマだ。Javaの人たちもこういうことを考えているはず。

割と普通

.NETとJavaでそれぞれマッシュアップWebアプリを実装してみた話。やっぱりLLの方が楽というオチは笑った。でもJavaではJBoss SeamとEJBとetcみたいな構成だったので、フレームワークを選べばまた違うだろうね。

fnya

派生開発プロセスXDDPの説明。興味深い。

ちゃっぴ

セキュリティ対策、インフラ設定編。たとえば権限を最小限にするなど。ちなみにWindowsのセキュリティモデルは馬鹿にしたもんじゃないよ。

R・田中一郎

WCF(Windows CommunicationFoundation)の概説。WCFはSOA実現のためのフレームワークだとあえて言い切り、直後に「SOAは、そこそこ大げさなアーキテクチャのことです」には笑った。


16:00 ~ 16:50 ブルータイム



初音玲

Oracle EnterpriseManagerでリカバリーする手順。コスプレ(参加者100人超えたらコスプレすると約束してたそうだ)とエンタープライズのミスマッチ感が半端ない。

YukiYukki

もやしもんに学ぶ風邪対策。本人が風邪でダウンしたとのこと。もやしもん読んだことない代役の方の発表。わんくまの人たちはウケていた。

匠 宏治

フリーランスの実際。いろいろ修羅場だった話。面白い。(笑い話として聞いていいんだよね?)

skylab13

天文学について。観測と理論と機器開発の3つがあるという話。

ぶらっく

クラスター(MSCSかな?)を組んでいるサーバーのリブートを制御するプログラムを作った話。こういうインフラ運用系の人たちももっと脚光を浴びてしかるべきなんだ。

SAN_Morishi

クリームについて。普通に生クリームの話。フリーダム!

カドルドエグ

Expression製品を全部使ってWebサイトを作ってみた話。やはりExpressionMediaは不要だったみたいで。

LuXiON

iPhoneアプリケーションを開発するための諸手続き。アメリカの法律的なことも関係するんだな。

凪瀬

JSPでウイルス的自己複製。そんなJSPを仕込めるってことはサーバーがクラックされているということなので、真面目なふりをしたネタだww

mihochannel

オフラインでセキュリティパッチを当てる方法。会場からMBSAの質問が出てたけど、「続きは懇親会で」。しまった懇親会でこの話の続きを聞きそびれた。


17:00 ~ 17:50 ブラックタイム



guicheng

日本の固体ロケット開発の歴史と日産自動車。知らなかったよ。勉強になった。

かずさのすけ

車載動画の奨め。どこかで聞いたことある話だ……と思ったらただのにっきだった。やっぱXactiかな。

まーる

RAIDの概説。RAID0, 1, 5, 1+0を5分で全部説明するのはチャレンジングだ。

++C++; 管理人

C# 4.0のコードをコンパイルして逆コンパイルしてみた。今日3人目のC#4.0。そう、C#はシンタックスシュガーの塊なので、こういうことを知っておく必要があるのだ。

goyoki

開発言語のマネジメント。Cをどう使って安全な開発をするか。MISRA-Cの紹介。勉強になった。

ymon

WPFにはメモリーリークがいろいろあるよという話。むむ……。

長月葵

パース(透視図法)の話……だがスライドに図が載っていなくて苦しい発表だった。

TAKESAKO

BinaryHacks。HTMLとしてもGIFとしてもJSとしても(ELFとしても)動くファイルを作ってみたという、スラドに載せてた話なんだが、聴衆がついていけていない感あり。さりげなく(?)にぽDAN画像が入っていたが聴衆は反応なし。ま、これは仕方ないよな。

花子

OCamlと友達になろう!ということで少し触ってみたよという話。VS2010にはF#が載ってくるので、こういうアクションは大事だと思う。

ぽぴ王子

タイマープログラムを作ってみた話……なんだが機材トラブルなどで無念の時間切れ。画面の横からにゅるっと「あと2分」といった通知が出るところとか、観るべきところは多かったのだけれど。どうも王子はネタ担当みたいな空気があった。わんくまの人たちは大ウケ。

2008年11月13日木曜日

出会えない2人のRelation

IdWhenWhereActionFeelingFriends
少女A部屋鏡に話しかけてる泣きながらNULL
少年B路上ポケットにナイフしのばせて唇かみ締めるいつものいらだちNULL
SELECT * FROM humansystem AS girl, humansystem AS boy
WHERE girl.When = boy.When AND girl.Where = boy.Where
=>0件 RelationshipとRelationは違うよ!ぜんぜん違うよ! えーと、仕事してないときはこういうことばっかり考えています。

2008年11月11日火曜日

抱っこ猫

猫は抱っこされると嫌がるのか、検証。

ネネは抵抗なかった。楽勝。
ネネ抱っこ

ウナも意外とあっさり陥落。
ウナ抱っこ

でも目つきが怪しくなったと思ったら……
ウナ抱っこ2

もがき始めた。
ウナ抱っこ3

2008年11月1日土曜日

LTのネタどうしようかなあ……

こんどわんくま勉強会のLT大会に出ることになっているのですが、まだネタが決まらなくて困っている。
「解題:私がJavaからC#に乗り換えた10の理由」でもやろうかな。尾島さんはベトナムに行ってていないし、勝手にやっても問題なかろう。
でも、いまさらかなあ。いまさらだよね。

猫カテゴリ追加

アクセスアップを狙って、猫カテゴリを作ることにしました。
猫グッズの紹介などもできれば……

Una & Nene

上にいるのがウナ(オス1歳)、下にいるのがネネ(メス6ヶ月)です。よろしくお願いします。

2008年10月24日金曜日

Silverlightに3Dゲーム"Quake"を移植中

QuakeLight, the Silverlight port of Quake, is coming...

ほほう。
しかし、Flashみたいに環境が整備されているわけじゃないので、ハードルは高そうだ。
ちなみにFlashの環境の話は、「C 言語で書かれたソフトウェアが Flash で動くようになるかもしれない | METAREAL」とか、LL Future 「古い言語、新しい言語」におけるalohakunの発表資料(ppt)とかを参照のこと。

ソフトウェア開発の学派

ソフトウェア開発の学派をやっつけた。

「ソフトウェアのOOPSLA派(OOPSLA学派)」角谷さんが書いているので、"school"の訳語は「学派」にしておいた。


“OOPSLA school”は、「OOPSLA派」がいいじゃろうか
それとも「OOPSLA学派」がいいじゃろうか


わしは「OOPSLA流」も好きじゃ


「OOPSLA式だよ派」はふざけすぎじゃの


じゃあの。


平々毎々 (Hey hey, My my) | 明日まで暇じゃ。

2008年10月18日土曜日

GLEEでExpression Treeを視覚化

ソースはこちら(GraphAppSolution.zip, 1.94MB)

Expression Tree Visualizer を自作/改良してみようという人で,見た目をどうしようか悩んだときは,Mathematica 6.0 の TreeForm あたりが参考になるかも.

Visual Studio 2008 Add-Ins - NyaRuRuの日記
気が向いたので、Microsoft版GraphVizとも言えるGLEEを使って、Expression Treeを視覚化してみた。
試してみたExpressionはこちら。

結果はこのようになった。
Expression Tree Visualizer
  • 最初はリフレクションを使っていたが、見た目を良くしようと思うとif文が多くなってしまったのでやめた。
  • 拡張メソッドを使用してVisitorパターンっぽく書いてみた。
  • ところが、拡張メソッドではダブルディスパッチにならないので、結局のところif文の羅列になっている。

2008年10月16日木曜日

Silverlight 2 RTW対応した

今までブログにあげていた、Silverlight2 Beta用コンテンツをRC0および正式版で動くようにした。 Silverlightの起動パラメータに
<param name="minRuntimeVersion" value="2.0.30930.0">
<param name="autoUpgrade" value="true">
と書いておくと、RC0と正式版以外ではこんなダイアログが出る。 Silverlight Update 1 "Remind me later"をクリックすると、こんな表示になる。 Silverlight Update 2 正式版を強制するのなら、minRuntimeVersionの値を"2.0.31005.0"にすればいい。 なお、対応したコンテンツは だ。

2008年10月15日水曜日

Silverlight 2.0 RTW

Silverlight 2.0 RTW
出ましたね。

インストールされてるSilverlightのバージョンを知るJS

こんな記事を書いても4人ぐらいしか読まないのでは……
Silverlight 2.0のインストール用ページに含まれているJSをざっと読んだ。 ポイントは、
  • ActiveXコントロールの場合はIsVersionSupported()で細かく問い合わせていくしかない
  • Mozillaプラグイン(Netscapeプラグイン)にはdescriptionプロパティがあるのでそこを見ればいい
  • ところがMacOSのMozillaプラグインだとdescriptionプロパティは"major.minor. build" までしか返してくれないので、revisionを知りたければやっぱりIsVersionSupported()で細かく問い合わせていくしかない
ということのようだ。

http://www.microsoft.com/silverlight/scripts/General.jsより抜粋

http://www.microsoft.com/silverlight/scripts/Install.jsより抜粋

http://www.microsoft.com/silverlight/scripts/silverlight/General.jsより抜粋

(追記)2.0RTWになって少し修正された。

2008年10月10日金曜日

JavaScriptでMVPパターン(jQuery編)

昨日の「JavaScriptでMVPパターン(ぷよぷよ編)」ではアニメーションできてないのが嫌だったので、今日はアニメーションを書いてみた。
jQueryでアニメーションしながらMVPパターン
jQueryでアニメーションしながらMVPパターン

モデルはこんな感じ。start()で開始。next()で状態遷移し、オブザーバーに通知。


ビューはこんな感じ。jQueryを使っている。update()の中でアニメーションを開始し、コールバック関数はプレゼンターを呼び出すようにしている。


プレゼンターはすごく短い。こんなのでもプレゼンターと言うのか?


MVPパターンを何か勘違いしてるだろうか?

2008年10月9日木曜日

JavaScriptでMVPパターン(ぷよぷよ編)

せっかくUIパターンについて3つも記事を書いた(UIパターン その1UIパターン その2UIパターン その3)ので、自分でもコードを書いて試してみようと思った。

連鎖シミュレーションツール
ぷよぷよ連鎖シミュレーションツールの画面キャプチャ


JavaScriptのコードはこれ(puyopuyo.js)
オブジェクト図(全体)

モデルは2つ。fieldModel (6x12のフィールド)と、nextModel (次ぷよ)。observersフィールドにビューを追加しておくと、適宜update()関数をキックしてくれる。
fieldModelを書いたときにはgetter/setterをつけてみたのだが、まどろっこしかったのでnextModelではフィールドを直接公開してみた。
オブジェクト図(Model)

ビューも2つ。fieldViewと、nextView。どちらもupdate()関数を持つ。ビューを組み立てるときにはHTML DOMのノードコレクションを渡すようにしている。
オブジェクト図(View)

プレゼンターは1つ。といってもあまりやることがない。
オブジェクト図(Presenter)

作ってみて気がついたが、Observerパターンを単純に実装すると困る。何が困るかって、アニメーションだ。
ぷよの落下と消滅はアニメーションするように作らないと、一瞬で終わってしまって何のことやらわからん。
ところが、JavaScriptでアニメーションするときって、完了後の処理はコールバック関数として渡さないといけないわけだ。
今回は手を抜いて、画面を更新するたびにダイアログを表示することにした。結果は情けないことになっているが、本来の目的はMVPのサンプル実装なので、大目に見てくれ。

ちなみに、なぜ「ぷよぷよ連鎖シミュレーション」にしたかというと、ぷよぷよが下手で連鎖を組めないからだ。これでじっくり研究できるぞ。

2008年10月8日水曜日

ボウリングといえば、例のXPエピソード


最近会社の部署内で、ボーリングのスコア計算のプログラムを作るということがPGのネタのお題にあがっている。


[Other]最近は - かずきのBlog

ボウリングと聞いて思い出すのが、エクストリームプログラミング エピソード(関西弁バージョンもある)。

たまにKent Beckが出てきて、「私は、いつでも見ているぞー。」とか言うのが愉快。

2008年10月7日火曜日

Sudden Death Source

お台場のデックスに入ってたD&Beeで発見。
Sudden Death Source
……や、買わなかったけど。
俺はCoCo壱の10辛をたまに食べる程度で充分。
(蒙古タンメン中本は、量が多すぎるのでツライ)

2008年10月3日金曜日

駄洒落

「ovenで炙んの?」
「なんでそんな英語っぽい発音なの?」

2008年10月2日木曜日

今夜わかるVBファミリー アップロードした

JavaとC#ならわかるという人向けに、カジュアルにVB6/VBA/VBScriptを説明する資料を作っている。でも俺もぜんぜん詳しくないんだけどな。

download pdf file

2008年9月30日火曜日

UIパターン その3

ブログだとまとめて読むのが大変なので、別サイト(matarillo.com)の方にまとめなおした。そっちを読んでね。


matarillo.com: UIパターン

2008年9月27日土曜日

北海道その5

この日は札幌観光。
2008.9.26 札幌 (Picasa)

まずは朝から中央卸売市場の辺りへ。青果館でじゃがいもやとうもろこしを物色。その後場外市場へ。いろいろ調べて、評判のよい「寿し処 平野屋」で朝食。これが安くて美味かった。すばらしい。

朝食後はレンタサイクルを借りて北大へ向かう。いやー、広いね。自転車でのんびり巡るのが楽しい。ただ、途中で雨が降ってきたのには参った。いつまでも止む気配がないので、自転車を返そうと北大を出たころにやっと止んだ。
























その後、北海道庁と札幌時計台を見てから自転車を返す。





最後に、地下鉄とバスを乗り継いで羊ヶ丘展望台へ。ここには有名なクラーク像があるのだ。






日が暮れてきたので観光終了。札幌駅そばの回転寿司で夕食。これも美味しかった。