Hatena::ブログ(Diary)

やねうらお−ノーゲーム・ノーライフ このページをアンテナに追加 RSSフィード

GT-Rの買取ならここですわ。どこよりも高く買取ってもらえるはず。お勧め!GT-R 買取
電王戦出場記念! 書籍化されたで! 監修したで!(`ω´) 絶版なってしもた Kindle版で復活!! 記事書いたで!
解析魔法少女美咲ちゃん マジカル・オープン!

YaneuLabs / やねうら王公式 / やねうらおにメール / twitter / プロフィール

 | 

2009-06-28 データベースエキスパートへの道

[] データベースエキスパートへの道  データベースエキスパートへの道を含むブックマーク  データベースエキスパートへの道のブックマークコメント


ふしぎ先輩が教えるデータベースエキスパートへの道 ~実践的リレーショナルデータベース設計手法~ (Software Design Books)

ふしぎ先輩が教えるデータベースエキスパートへの道 ~実践的リレーショナルデータベース設計手法~ (Software Design Books)技術評論社編集の人から献本していただいた。ひなた先生(→ http://d.hatena.ne.jp/yaneurao/20081114 )の姉妹本らしい。


内容は、ER図によるモデリングがメイン。実戦的で、新人教育に使える本だと思う。


ただ、私は現場データベースに関してどのような教育が必要なのか、あまり明確なビジョンが無い。少なくとも私はデータベース設計のときにER図を書こうとは思わない。


私が通ってきた道はと言うと、SQLのことはプログラマのためのSQL 第2版データベース論理的側面は、データベース実践講義―エンジニアのためのリレーショナル理論 (THEORY/IN/PRACTICE)勉強した。この2冊はとても良い本だった。わかりやすいとは言い難いが、大学教科書だと思えば、まあ許せる気はする。


私はモデリングについては本で学んだことは無いけど、それで困った経験は、一度も無い。だからと言って勉強しなくていいのかどうかは、私自身よくわからない。cardinalityなんかは、普通OOP設計していても意識することだから、ひょっとすると、そういう(データベース関係以外での)プログラミング経験豊富にあるから、私はER図などを書かなくとも済んでいるのかも知れない。

そもそも、データベースに関して、世間で必要とされている技術要件がどのようなものなのか私にはよくわからない。ちょっとしたWebサイトを作るだけなら、SQLが少し使える程度でいいのだろうが、アクセスが増えてきて負荷対策をしようと思うと途端に話がややこしくなる。特定のデータだけメモリに置こうかだとか、データを一定時間おきに複数のマシンコピーして負荷分散を図ろうとか、そもそも既存のリレーショナルデータベースで事足りるのかという根本的な問題も浮上してくる。大規模なデータから短い時間で必要なデータを取り出すには、専用のデータ構造が必要になることが多々ある。その部分だけC/C++で書くことはざらにある。


かと言って、部分的にC/C++で書かなければならないようなWebサイトが世のなかにどれほどあるのかと問われると全体の1%にも満たないだろう。サーバーを何台もで運営しないといけないサイトも全体の1割にも満たないだろう。


結局、SQLをちょっと知っていれば、事足りるのが多いのが現状で、今後マシンマルチコア化が加速して、ストレージ高速化してくれば、ますます1台のサーバーの処理能力はあがるのだから、負荷分散なんてさらに考える機会は減るんじゃないかと思う。そもそも、LINQのような技術が台頭してくるとSQLを覚える必要すら無いだろう。開発環境進化すると普通のコンソールアプリの知識とわずかばかりの知識だけで小さなWebサイトプログラムは書ける。


数年後に「コンソールアプリ開発プログラマが2週間でWebプログラマになる本」とか書いたら売れる気がする。本の内容は、(書くことがなさ過ぎて)スカスカかも知れないが。

キャッチアンドリリースキャッチアンドリリース 2009/06/29 01:53 関係代数モデルを使うのは天から降ってわいたような検索条件
(あらかじめ予測し難いか、部分条件の組み合わせが天文学的個数になる)でもそつなく対応するためであって、
あらかじめ検索条件が絞れてれるならOOP的に専用のデータ構造を設計してチューンすれば
早くできるのは理の当然と言えるかも
ただ早くできるのと引き替えに、排他制御や高可用性の確保とかも(データベースエンジンに頼るのではなくて)
自力で面倒を見なくてはいけなくなってやりすぎると多分地獄を見る
(自力で面倒を見て無問題、と言い切るにはおそらくロールバックと同等の仕組みまで作り込まねばならないはず)
やはりRDBとOOPは長所と短所が相補的であってこれからも2者併存すると思うんですが

>データベースに関して、世間で必要とされている技術要件
インデックスの理屈と勘所を押さえつつ、現実のデータベースエンジンの扱い(バッドノウハウ込み)に通暁すること
いや知らんけど

yaneuraoyaneurao 2009/06/29 02:08 > やはりRDBとOOPは長所と短所が相補的であってこれからも2者併存すると思うんですが

ああ、なるほど。

まあ、マシンパワーが有り余るようになってくると、スタンドアロンなアプリでも、OOPでの設計は可能な限り「天から降ってわいたような」仕様変更に対応できるようにするために、RDBでの設計っぽくなるのかも知れませんね。

逆に、Web系も、サーバーのマシンパワーが有り余ってくれば、LISPのような言語でサーバーサイドを書くのがもう少し普及する気はします。

何にせよ、マシンパワーに余裕が出てくると速度的にはベストではなくとも柔軟に仕様変更に対応できるような設計を目指すことが出来そうです。

hiyahiya 2009/07/02 00:37 >コンソールアプリ開発プログラマが2週間でWebプログラマになる本
数年後と言わず、やねう様がちょいちょいと書いていただけると私は、うれしいです!

yaneuraoyaneurao 2009/07/02 00:48 いや、数年後なら、さらに書くことが無くて(IDEが進化してWebプログラミングが楽になっていて)すごくスカスカな本が出来るんじゃないかという皮肉のつもりだったのだけど。ははは。

マジレスすると、@ITの連載なんかでLINQとASP.NETだけ3日ぐらいで勉強しましたというような速習コースでもそれなりに何か作れるんじゃないの?と考えている俺ガイル…。

hiyahiya 2009/07/04 01:16
じゃあ、それで(笑)
最近、やね本パワー切れです...
なんぞ投下してホスィ

yaneuraoyaneurao 2009/07/04 02:14 ASP.NET関係の本は…気が向いたら書くよ(´ー`)
3年後ぐらいかも知れないが…。

トラックバック - http://d.hatena.ne.jp/yaneurao/20090628

2009-06-24 .NET FrameworkのWebBrowserの互換性の問題

[] .NET FrameworkのWebBrowserの互換性の問題  .NET FrameworkのWebBrowserの互換性の問題を含むブックマーク  .NET FrameworkのWebBrowserの互換性の問題のブックマークコメント


.NET Frameworkでちょっとしたhtmlファイルレンダリングしようと思うとWebBrowserクラスを用いると思うのだけど、これに使われているIEエンジンの正体は何だろう?


少なくともIE7、欲を言うならIE8であって欲しい。IE6レンダリングエンジンバグだらけなので、ようやくモダンブラウザの仲間入りした(?)IE8であることを期待したいのだが。


そんなわけで少し調査してみた。WebBrowserをFormに貼り付け、ダミーhtmlを表示し、そのhtmlファイルのなかでJavaScriptUAを取得して表示するという方法で調べた。この調査方法で正確なことがわかるのかどうかはよくわからないが。


テスト用のバイナリ

http://yaneu.com/yaneurao/hatena/webbrowser_test20090621.zip



■ Vista SP1 + IE8


Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; InfoPath.2; .NET CLR 3.5.21022; .NET CLR 3.5.30729; .NET CLR 3.0.30729)


■ Windows 2008(x64) + IE7


Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Win64; x64; .NET CLR 2.0.50727; SLCC1; .NET CLR 3.5.30729; .NET CLR 3.0.30729)


■ XP SP3 + IE8


Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; InfoPath.2; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 1.1.4322; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)


■ XP SP2 + IE6


Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)


■ XP SP2 + IE6IE8にupgrade(IE7インストールしていない)


Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729


結果、わかったことは、(いまのところ)IE8レンダリングエンジンは決して使われないということ(今日のコメント欄に補足あり)と、IE6レンダリングエンジンであり得るということだ。そして、IE7インストールされていればIE7になるであろうということだ。また、IE7インストールしていなくともIE8インストールすればIE7レンダリングエンジンが用いられるということだ。


どうせなら、.NET FrameworkインストールしたときにIE7レンダリングエンジンを強制的にインストールして欲しい気がするのだが、そうはなっていないようだ。


結論) 特定の環境でWebBrowserが正しくレンダリングしないなら、IE6しか入っていないことを疑うべき。

tnktnk 2009/06/24 15:00 使ってるコントロールはIE8だけど、IE7標準モードになってるということはないですかね?

IE8 の WebBrowser コントロールのレンダリング モード
http://msdn.microsoft.com/ja-jp/ie/cc787976.aspx

yaneuraoyaneurao 2009/06/24 15:07 ↑あー、それはそうだと思います。

yaneuraoyaneurao 2013/04/20 08:49 補足)

IE9,10でもIE7標準モードで動いている模様。
WebBrowserが生成される前にレジストリに値を書いておけばIE9,10標準モードで起動できるようなのですが…なかなか面倒なことになってますね。

トラックバック - http://d.hatena.ne.jp/yaneurao/20090624

2009-06-18 査読というお仕事

[] 査読というお仕事  査読というお仕事を含むブックマーク  査読というお仕事のブックマークコメント


ときどき私は書籍の監修をさせてもらうことがある。査読をさせてもらうことも結構ある。


査読のときは、私はお金はもらわないことにしているが、この手の原稿を書き慣れていない人の場合、1ページに5箇所ぐらいおかしいところがあるのが普通であって、300ページあれば、少なくとも1000箇所ぐらいは誤字やら脱字やら、説明の仕方がまずいところやら何やらがある。


下手すると自分で本を書く何倍もの時間がかかるのが普通なので、これがノーギャラというのは、本当に割に合わないが、まあ、それでいい本が世に出れば社会貢献につながると思うし、自分勉強にもなるので進んでやらせていただくことにしている。


私がどういう感じで査読をするか知ってもらうために、私が全く関わってもいない本ではあるが、C++テンプレートテクニックを例にとってみよう。


何故この本を選んだかと言うと、著者の方はお二人ともC++標準化委員会メンバーなのだから、ある程度C++的に見て正確を期していて然るべきであるというのがある。


そして、επιστημηおっちゃんは、もう何冊も本を書いているのだから、もっとご自分原稿に対してシビアな目で見て欲しいと思うし、もうひとりの著者である高橋さん(id:faith_and_braveさん)のほうは、前途有望そうな青年なので、たぶん将来、まだ何冊も本を出すだろうから、これを機にいろいろ考えて欲しいと思うのである。


私が今回選んだのは、pp.34-35。ここで私が気になったのは、以下の部分。C++のtemplateの仕様のなかでもtwo phase lookupは鬼門であり、私なんぞがC++標準化委員会の人に何か言うのはもちろん釈迦に説法だし、私は以下で結構間違ったことを言ってるかも知れない。でもそういう間違いを恐れていては査読は出来ないので、私は査読のときは「私はこう思う」というのを積極的に発言するようにしている。以下でもそういうスタンスで書いてみる。


f:id:yaneurao:20090618181838p:image



以下では、「中略」の代わりに"…"を用いる。


0. 「解釈(名前解決)」のように括弧をつけて何かを補足する場合、この括弧を消去しても意味が通らなければならない。この括弧を消去すると、「テンプレート解釈は、…」となるが、その後ろで名前の解決という説明が2度出てきているので、これだと、テンプレート解釈についての説明が途中でテンプレート名前解決の説明にすり替わっていることになってしまう。


よって、最初の文は、「テンプレート名前解決(テンプレート解釈)は」で始まるほうが適切だと思う。


1.「テンプレート定義された時点ではテンプレートパラメータに何が与えられるか決定されていないので」とあるが、「テンプレートパラメータ」という用語は、C++ARMに載っていない。いま調べたら、C++ Templates: The Complete Guideには載っていて、おそらく、C++的には厳密に定義されている用語だとは思うのだけど、詳しく知らない人から「void f(int x)のような関数にしても、xにどんな値が与えられるかはfが定義された時点では決定していないよ」なんて突っ込みが入らないようにするためにも、ここは「テンプレートパラメータとしてどんな型が与えられるか決定されていないので」と書いたほうが親切だと思う。


2.「テンプレート依存しない名前」と「テンプレートパラメータ依存する名前」となっているが、これでは2つが対等な(対照的な)関係になっていない。前者も「テンプレートパラメータ依存しない名前」と書くべきだと思う。また、依存名の説明がこれだけしかないというのは、すごく不親切。具体的な例を少しでも書けばもっとわかりやすいと思う。依存名としてT::resultとか、いくつかの例示があれば全然読みやすさが違うと思うのだが。


3.「コード解釈あいまいになる」の意味が不明。コンパイルエラーになるのか、コンパイラによって解釈が分かれるのか、どういうことを言いたいのかこれではわからない。


4. typenameキーワードの使い方をここで説明しているのに、typenameとclassとのキーワードの違いがこの説明ではわからない。typenameキーワードの説明をこの本で初めて説明しているのに、「classまたはtypenameをパラメータの前に付けますが」と文章を続けるのは疑問。「付けます」でいったん文章を終わり、その上で「typenameキーワードの場合には、classキーワードにはない用法があります。」と説明を続けるべき。


そうでないと、「typenameにはもうひとつ重要な用途があります。」と書いてあっても、それがtypenameにしかない用途なのか、classキーワードでもいい用途なのかがわからない。そもそも、その直前で書かれているのは、classでもtypenameでもどちらでも良い例だから、typenameキーワードclassキーワードで代替可能な用途であって、この説明を見る限り「重要な用途」ではない。だから、「typenameにはもうひとつ重要な用途があります」の「重要な用途」という表現には(この説明の流れだと)違和感がある。


4の下線部は「この例だけを見ればtypenameキーワードclassキーワードで代替可能なように見えますが、typenameキーワードにはtypenameキーワードにしか出来ない重要な用法があります。」ぐらいのほうが適切。


5.「int p」の部分、サンプルの書き方がよろしくない。この「int p」はずっと後の説明を読まないと意味不明


6.「pはグローバル変数です」とあるが、このサンプルリストではpは「int p」と「T::result* p;」の2箇所がある。だから「pはグローバル変数です」という説明は誤り。また「pはグローバル変数です」という説明は前後と何のつながりも無く、突発的に出てきて、読者は混乱する。何を説明したいのか、それすらわからない。



7.「引数にstruct Xが引き渡されると」は意味は伝わるが、やや表現がおかしい気がする。「X型の変数xに対して、g(x)のようにこのtemplateを実体化すると」ぐらいではどうだろうか。


8.「pはX::result(=int)へのポインタとなります」とあるが、6.で「pはグローバル変数です」と書いた直後なのに、突然ローカル変数のほうのpについて言及している。このように一つのシンボル言葉を異なる意味で使うのはなるべく避けたほうが良いと思う。


9. 「struct Y {…};」はYの定義であって、これを10.にあるように関数gに引き渡すことは出来ない。6.のところでも表現に違和感があったが、ここは明らかにおかしい。せめて、6.の表現に倣い、「struct Y {…};のように定義されたYが関数g()に引き渡されると、」と書くべきである。


11.「まったく異なる定義となり」とあるが、何が全く異なる「定義」になるのか?関数gの定義は、少なくともX,Yのどちらが与えられようが変わることは無い。これが変わったら定義ではない。ここは「まったく異なる意味になり」と書くほうが適切。ただ、それでも、templateで書かれているのだから与えられる型に応じて実体化され、それぞれの意味(実際に生成されるコード)が異なるのは当たり前だから、やはり何を表現したいのかあまり明確にはならない。この部分は全体的に書き直したほうが良いと思う。


12.「いずれもコンパイルエラーとはなりません」のところにきて、コンパイルエラーとならないのは、pをグローバル変数として宣言してあるためで、「5*p」のpがグローバル変数のpと解釈されるからであるとわかるのだが、この説明ではそれがきちんと伝わらないし、6.の「pはグローバル変数です」は、ここに入れるべき説明だと思う。


また、このようなグローバル変数コンパイルエラーとならないようにするためだけにサンプルコード上で意味なく定義して、ここで「コンパイルエラーとはなりません」と説明をするよりは、こんなグローバル変数は最初から宣言せずに、「5*pと解釈され、その結果、pという変数が宣言されていないので、コンパイルエラーになります。(ただし、pという変数グローバル変数として宣言されていた場合などは、コンパイルエラーになりません。)」と説明したほうが自然だと思う。


あと、「Y::result* p;」という宣言がコンパイルエラーとならないのは、私はよくは知らないがVC++の独自拡張ではなかろうか。「typename Y::result* p;」であるべきなのではなかろうか。このへん、説明をせずに「コンパイルエラーとはなりません」は、まずくないだろうか。


13.「T::resultはTの依存名であり、テンプレート定義時点ではあいまいなのです」とあるが、何が「あいまい」だと言いたいのかわからない。「テンプレート定義時点ではT::resultが型なのか数値なのかが曖昧」と書いたほうが紛れが少ない。


14.「依存名をテンプレート定義時点で解決するために」とあるが、2.の説明で「依存名の解決はインスタンス化時まで遅延されます」と書いてあるのだから、定義時点で依存名が解決されるのが本当だとしたら、この2.の説明と論理的に矛盾する。


そもそもtemplateの定義時点では、templateの関数の中身はコンパイラ的にはノーチェックであってもC++規約上は許されるはずで、typenameキーワードをつけたからと言って「依存名をテンプレート定義時点で解決」していると言うのは誤りだろう。C++の用語で「名前の解決」というのがどれくらい厳密に定められているのかは私は知らないけども、「依存名の解決」というのが、two phase lookupの核となる概念なのだから、2.のように説明なしに書くのはまずいし、まして、2.と14.とで説明が矛盾するのは論外だと思う。




とまあ、たった2ページではあるけども、私が見て気になる部分は結構ある。ただし、繰り返しになるが、上の私の意見がすべて正しいとは限らない。そういう風には思わないでいただきたい。査読(ブックレビューと言うべきか)とはこのように自分意見を著者にぶつけていく作業である。その結果、読みやすく、わかりやすい本が出来るのである。


私がコンピュータ書籍で、この人の本なら間違いなく安心して読めると思うのは、結城浩さんの本ぐらいで、この人の書く本の読みやすさは異常だと思う。どれほど厳しく自分原稿を見つめたらあれだけわかりやすい本が出来るのか、私にはいまだ想像すらつかない。


新版暗号技術入門 秘密の国のアリス増補改訂版Java言語で学ぶデザインパターン入門増補改訂版 Java言語で学ぶデザインパターン入門 マルチスレッド編プログラマの数学数学ガール数学ガール/フェルマーの最終定理



ところで、冒頭にも書いたように査読は原則的にノーギャラでさせてもらいます。仕事が忙しい時期は引き受けられませんが、私に見て欲しいという人はメールください。(あまりにも間違いが多そうな場合は、実際に私の事務所まで来ていただいてその場でなおしていただくという形になりますが、その覚悟があれば歓迎します。)


あと監修もさせてもらいます。監修はギャラをいただくことにしてます。翻訳本の監修なんかもやらせてもらいます。これも私に頼みたい人はメールください。これまた、私の仕事が忙しい時期は引き受けられませんが。

PSVPSV 2009/06/18 23:46 結城浩さんの本は、ホントに凄いです。

>この人の書く本の読みやすさは異常だと思う。

読みやすいかどうかは、また別で・・・。

結城浩さんの本は、内容も文章も素晴らしいです。
私も他の人に薦めるなら、間違いなく結城浩さんの本です。

でも、私にはキツイ本だったりします・・・。(´・ω・`)

>どれほど厳しく自分の原稿を見つめたらあれだけわかりやすい本
>が出来るのか、私にはいまだ想像すらつかない。

自分に厳し過ぎるというか・・・。
謙虚さが凄まじ過ぎるというか・・・。

結城浩さんの本は、著者のピュアさが読んでて伝わってくるので、
私のように心が汚れた人が読むとダメージを受けるのですよ。(つД`)

自分があまりにもダメ人間過ぎるので、真面目に命削って書いてる
ような人の本を読むと、自分のダメさ加減が浮き彫りになって、
精神的ダメージを受けて辛くなってくるという・・・。

読むのがシンドイ、シンドイ・・・。(;´Д`)>結城浩さんの本

やねうらおさんぐらいの毒が混じった文章の方が、私には、
丁度良いのですが・・・。
(毒成分を使い過ぎると、ホントに毒な有害書籍になってしまうので、
使い過ぎ注意ではありますが・・・。)

昔は、毒成分を入れつつも、技術レベルの高い文章を書いて
くれるライターさんが結構居たと思うのですが・・・、
最近の技術書って、真面目な文章書く人が多いよなぁ・・・と
思ったり・・・。

現実逃避厨現実逃避厨 2009/06/19 01:40 査読者の注釈を読んで初めて原文の意味がわかった漏れが通りますよ

>最初の文は、「テンプレートの名前解決(テンプレートの解釈)は」で始まるほうが適切
原文は「テンプレートの解釈を構成する処理ステップの一つであるテンプレートの名前解決は」
と書くべきところを長ったらしいから「テンプレートの解釈(名前解決)は」としたのだと思ういやそうとしか考えられない
だから<テンプレートの名前解決>=<テンプレートの解釈>であるかのごとく読める文への修正はイク(・A・)ナイ

>2.のように説明なしに書くのはまずいし、
例示されている見開きが初学者向けに書かれているとしたら、
最初のパラグラフでいきなり問題の詳細説明を始めるより前に、
そもそも問題が存在することをまず読者に印象づけねば話が始まらない。
だからそこはあえて<あいまいさ>の中身の詳細を省き、下線部12と13に回したのだとみまんた
(とわいえ全体として、その目論見が成功しているとはあまり思えないけど)

>まして、2.と14.とで説明が矛盾するのは論外だと思う。
14.はたぶん<テンプレートパラメータに依存する名前にまつわるあいまいさを定義時点で排除するために>と
書こうとして筆が滑ったのだと思う
(名前の前にtypenameをつけたからといってその名前のlookupのphaseは変わらないだろうから、
typenameで<依存名の解決>が行われるかのような原文下線部14は確かに変)

hyukihyuki 2009/06/21 15:48 やねうらおさん、すごくおほめいただき、恐縮です…。

c 2009/06/25 14:20 バグった文章の本は多いね
こいつ本当に日本人かよって、
だから嘘さえ書かれてなければいいや〜って自分は思うようにしてる

2009-06-15 いまごろアイマスのMASTER BOOKが増刷される

[] いまごろアイマスのMASTER BOOK増刷される  いまごろアイマスのMASTER BOOKが増刷されるを含むブックマーク  いまごろアイマスのMASTER BOOKが増刷されるのブックマークコメント


ニコニコ動画史上、最高のピアノ弾きと名高いピアニート氏。

そのアイマスの『蒼い鳥』の演奏に魅了された人は多いはずだ。


D


上の動画ピアニート氏が楽譜を公開されているので、挑戦してみようという人も数多くいたはずで*1、私もご多分に漏れず少し挑戦してみようと思い楽譜を見たのだけど、


f:id:yaneurao:20090615015249p:image


なんか五声あるんですけど…。どう見ても手が4本と脳が2つは必要です。本当に有り難う御座いました。(一瞬にして心が折れて終了!)


THE IDOLM@STER MASTER BOOK

もう少し簡単な楽譜に書き直せないものかと思い、それなら原曲の楽譜があったほうが良いなと思った。THE IDOLM@STER MASTER BOOK楽譜が掲載されていると聞いて、この本を買おうと思ったのだけど、アマゾンは品切れ状態で入手できない。アマゾンでは、定価が2,940円なのに、マーケットプレイスで4,500円ぐらいのものも売れているようだった。


他のインターネット書店を見ていると在庫ありになっているところがいくつかあった。よし、注文だ。XXXX円以上お買い上げで送料無料とか書いてあるので、どうせ定価より高くで売れるなら…と5冊買うことにした。

紀伊國屋書店BookWebでございます。

ご利用を頂きまして誠に有難うございます。

5/22付でご注文を頂きました、

X3QV6P01「アイドルマスターマスターブック」5冊 

でございますが、

出版社からのお取り寄せとなりまして手配を致しております。

商品は取次会社(問屋)を経由して入荷してまいりますが、

入荷、発送まで2週間程お待ち頂く事となります。

お待たせしておりまして申し訳ございません。

入荷予定日が確認され次第ご連絡申し上げます。

どうぞ宜しくお願い申し上げます。

在庫ありって書いてあったのに在庫ないじゃん…。そして、その6日後に来たメールがこれだ。

紀伊國屋書店BookWebでございます。

平素はご愛顧を頂きまして誠に有難うございます。

5/22付でご注文を頂きました、

X3QV6P01「アイドルマスターマスターブック」でございますが、

発注を致しておりました出版元から「品切れ」との連絡が

ございました。

BookWebの表示で在庫のご確認を頂き、ご注文を頂きましたにも拘らず、

この様なご連絡を差し上げる事となりまして申し訳ございません。

誠に恐縮でございますが、ご注文をキャンセルとさせて頂きたく、

何卒ご容赦の程お願い申し上げます。

アウルHON急便(ジュンク堂書店)というサイトでも頼んでみたところ、注文後、5日後にキャンセルの通知メールが来た。

この度は、ジュンク堂書店BookWebをご利用いただきましてありがとうございました。

ご注文頂きました商品につきまして下記内容で手配させていただきましたので、ご案内いたします。

XXXXXXXXXX ←お問い合わせは受注番号でお願いいたします。

下記書籍在庫がなく出版社におきましても「品切れ、重版未定」のため、不本意ではございますが、キャンセルさせていただきました。

受注日 書名 ISBN キャンセル

2009/05/28 アイドルマスターマスターブック 9784797346855(479734685X) 5  

代金の決済 代引

ここに来て、アマゾンのような大手以外のオンライン書店在庫表示はあてにならないのだということを思い知る。


ところが、2,3日前にアマゾンステータスが「一時的に在庫切れですが、入荷次第発送致します」に変わったのである。えっ?いまごろ増刷されるの?公式サイトにはアナウンスは無い。1年以上経ってから増刷するのかなぁと私は半信半疑。しかし、そのステータスを見てか、マーケットプレイスに出品していた人が一気に定価より安い価格に変更した。


えっ…。マジですか。増刷は何かの間違いかも知れないので私はマーケットプレイスで早速購入したのが5日ほど前。そして、今日Amazonステータス在庫ありに変わった。本当に増刷されたようだ。


増刷には2週間ぐらいかかるのが普通だから、たぶん私がジュンク堂で注文したのを受けて、出版社のほうが「なんか最近、注文多いなぁ。5冊とか10冊とか。これ増刷しといたほうがいいんじゃね?」となって増刷したのではないかと思われる。タイミング的に見てどうもそんな気がする。(だとしたら出版社の人、ごめん)


それで、このTHE IDOLM@STER MASTER BOOKに掲載されている楽譜なのだけど、公式のものではなく、XBOX360版からプロの人が採譜したもののようだ。


掲載されているのは、M@STER VERSIONではなく、演奏時間の短いバージョンである。印刷されている文字(音符)はとても小さくて見づらい。フルスコアなのに「蒼い鳥」は4ページしか無い。これだけ手間暇かけて入手したのに、たった4ページかよ!と思わなくもないが、まあ、参考になったから良しとしよう…。


もっと簡単なピアノアレンジとして私がお勧めなのは、Die棟梁氏の下のアレンジ。*2 こちらは原曲の良さをうまく引き出していてシンプルなのに素敵なアレンジだと思う。


D


この動画楽譜が長らくダウンロードできない状態になっていたのだけど、私がDie棟梁氏にリクエストしたところ、先日、再アップしてくださった。この場をお借りして御礼申し上げます。

*1楽譜は上の動画リンクがある。また、Zohar氏によって採譜されたものもある。→http://www.nicovideo.jp/watch/sm2331053 こちらのほうが弾きやすいかも知れない。
あと千早さんの歌に合わせてみたやつ→http://www.nicovideo.jp/watch/sm1796489

*2:関連記事→ http://dietouryou.seesaa.net/article/52963547.html#more

zxzx 2009/06/15 06:32 MASTER BOOK自分も興味会ったんだけど、楽譜の出来はどんなもんでしょ?

yaneuraoyaneurao 2009/06/15 07:02 XBOX360版から採譜したものなので、原曲に忠実で、アレンジ譜でもなく…フルスコアなので一人で演奏できるわけでもなく…可もなく不可もなく…。

まあ、耳コピする手間が省けるという程度で考えておいたほうが良いと思います。この譜面を元にDTMで打ち込んだり、ピアノ用にアレンジしたりするのはとても有意義だとは思いますけども。

zxzx 2009/06/15 07:03 原曲に忠実ならアナリーゼの参考用に買ってみるかなあ

トラックバック - http://d.hatena.ne.jp/yaneurao/20090615

2009-06-14 ウイルス対策ソフトは本当に必要なのか?

[] ウイルス対策ソフトは本当に必要なのか?  ウイルス対策ソフトは本当に必要なのか?を含むブックマーク  ウイルス対策ソフトは本当に必要なのか?のブックマークコメント

免疫をもつコンピュータ―生命に倣うネットワークセキュリティ (岩波科学ライブラリー)

いまどき、ウイルス対策ソフトは本当に必要なのか?


情報流出で社会問題にまで発展したWinnyウイルス(通称キンタマ)を例にあげて考えてみよう。


Winnyウイルスについては免疫をもつコンピュータ―生命に倣うネットワークセキュリティ (岩波科学ライブラリー)に詳しい。この本のタイトルは、電波系に思えるが、そうではない。免疫システムウイルスが防げないのかという真面目な研究のようで、それなりに成果も出ているようだ。


この本のなかには「免疫をもつコンピュータ」のその詳しい仕組みまでは書かれていないが、私の推測によると、おそらくファイルコピープロセス生成などのAPIhookしておいて、怪しい挙動をするものを検出して、二度目からは即座にシャットアウトするというもののようだ。まだ、その怪しい挙動をしたプログラムによって行なわれた変更をロールバックする機能を持っているようだ。

この本によるとWinnyウイルスの仕組みは次のようになっている。


1.「新しいフォルダ(2)」を実行するとその子プロセスとしてsvchost.exeおよびfile.exeが生成する。

2.file.exeは「(値の設定なし).exe」というファイルを実行し、その次にmjet.exeファイルを実行している。(このファイル名は変わりうるので、このファイル名をキーワードにして免疫システムで排除を行なうだけでは不十分。)

3.svchost.exeは、元のウイルスである「新しいフォルダ(2)」と同一のファイルであり、特定のフォルダ(C:\WINDOWS\system32\drivers)にコピーされた後に名前の変更が行なわれているだけ。また、このとき、コピーされたsvchostは、次回Windows起動時に自動的に実行するように設定。

4.「新しいフォルダ(2)」は実行を終了する。(タスクマネージャで見たときにユーザーが不審に思うのを回避するためか?) svchost.exeは動き続ける。

5.「(値の設定なし).exe」は、file.exeが自分自身を特定のフォルダ内にコピーして再実行し、さらにmjet.exeをまた別のフォルダに作成して実行を行なう。

(以下略)


結局、何故こんな単純な動作をするウイルスを防げないかというと、Windows


・あるプログラムによって変更されたファイルを調査する機能が無い。

ユーザー権限で実行ファイルを作れてしまう。(ファイル拡張子が".exe"のものは作れなくていいのに…。ファイルを解凍したときに困る気もするが、それなら実行権限が付与されるまでexeファイルを実行できなくていいような)

ユーザー権限で実行ファイルを書き換えることが出来る。(あるプログラムが他の実行ファイルを書き換えたいという動機はあまり無いと思う)

アイコン表示だと、実行ファイルなのかフォルダなのか、わかりにくい。


など、何かちょっとした機能があればもっと被害は減りそうな気はする。

ただ、ユーザー権限で実行してても、何かの脆弱性を利用して管理者権限に昇格できてしまうので、結局、


ユーザー権限でプログラムを実行できてしまう。(ユーザーは、管理者が許可した以外のプログラムは実行できなくていいのに…)

・あるプロラムによって変更されたファイルをまとめてロールバックする機能


などがあるといいのかも知れない。


スタートアップが書き換えられた場合、いつ、どのプログラムによって書き換えられたか追跡する機能。

・それぞれのプロセスが何をしているのかタスクマネージャで確認する機能(通信とかファイルの書き換えとかに関して)

プログラムが特定のフォルダアクセスしようとしたときに警告を出す機能。

プログラムはすべて仮想化環境で実行し、実行が終わればその仮想化環境を消滅させる。ファイルだけは(仮想化環境の外にある)ストレージに書き込むが、その書き込みはすべて監視されていて、どのファイルを書き換えたかが追跡でき、いつでも元の状態にロールバックできる。


うーん。これだけやれば被害は1/100ぐらいにはなるんだろうけども、ウイルスは100%防げるのかと言うと…そうでもない気もする。何か脆弱性を利用して管理者権限に昇格して、BIOSあたりにコピーされればそれまでだしなぁ…と思ったり。


そんなわけでコメント欄で「ぼくのかんがえたせきゅりてぃたいさく」の作文を募集

ななちななち 2009/06/14 01:13 ブラウザのファイルを保存する機能がいらないなぁ。これを無くせばユーザーが新たに実行ファイルを実行してしまう心配がない。

いまどき、ブラウザだけ動けば8割の人はそれで事足りるのだろうから。

gpuppurgpuppur 2009/06/14 01:59 セキュリティについてあれこれ考えていては本当にコンピュータでやりたい事に集中できなくなってしまう。
シンプルにネット用と作業用PC(ネットに繋げない)の2台を用意すると作業用PCは安全だけど不便そうです。

tsuyoshitsuyoshi 2009/06/14 02:00 >・ユーザー権限でプログラムを実行できてしまう。(ユーザーは、管理者が許可した以外のプログラムは実行できなくていいのに…)
についてはデフォルトの認証レベルが高いと警告でるようにできますよね(署名が正しいorブロック解除してないと警告)、ただウィルスが正式な署名してたらアウトですが、それでもIEとかみたいにダウンロードしたファイルにちゃんと属性つけてれば確実に警告されるんですが...ある時点から実行ファイルが生成されたら無条件で上記属性つける機能はあってもいいかも

免疫系モデル終了のお知らせ免疫系モデル終了のお知らせ 2009/06/14 12:12 自然界の免疫系は
 1. ウィルスは確率的に徐々にしか変化(突然変異)しない
 2. ウィルスの害の有無は容易に判別できる(正常細胞を破壊するか否か)
という2つの仮定の上にタンパク質ベースの類似度に基づく識別をベースとするしくみとして成立しているわけで、
どちらかの仮定が外れるケースについて有効なモデルたり得ないと思いまーす。
実際、エイズウィルスみたく自己改変を激しく繰り返すようなケースにうまく対応できていませんし
人間のプログラミング能力を鑑みるに、ソフトウェアとしてのウィルスはむしろ免疫系モデルに対するエイズウィルスと見なすべき。
(人間が直接改変してもいいし、全自動で激しく自己改変するプログラムも書こうと思えば書き得る。)

以下免疫系モデル以外の方策を模索してみるテスト。
真に問題なのはプログラムを単にプログラムと一般的にとらえる限り、
その振る舞いの範囲について有効な形式的証明を見いだすことが非常に困難(しばしば存在すらしない)ことと、
プログラムの動作目的に悪意があるか否か、プログラムコードやふるまいから精密に自動判別することが困難なことです。
これは、OSの脆弱性除去は別途行うとして、自己複製型やリソース消費(あるいは破壊)型ウィルス対策もとりあえず省略するとして、
情報放流型の振る舞いについては全てのプログラムについて
 1. 情報の移動元ドメインと移動先ドメイン
 2. 何の認証を得て移動を行うのか
 3. 一連の移動で使用するリソース
を仕様として事前申告させて、それから外れる振る舞いを動的にはじくこと、
および仕様ベースでウィルスか否か判別するパターンベースを流通させれば一挙に解決し得る。
たとえば、Winnyであれば
1. 特定のポートから情報を受け取り、キャッシュ領域に格納して、再び特定のポートから放出する。
2. その際データを改変せず、かつタイマの使用も厳密に外部事象依存である
  (プログラムの勝手な振る舞いとして、何らかの情報をタイミング等にコード化して外に出す余地が存在しない)
3. ユーザードメインにあるファイルをキャッシュに移動する際にはユーザーの認証を得るし、認証と対象ファイルの関係づけはOSがしくみを提供する
という仕様の下でそれに従って動くなら、その振る舞いは高い確率で正当なものでありウィルスとは峻別できます。
誤認識は、仕様を記述する語彙を増やしつつパターンベースの拡充を図ることで改善を図る。

yaneuraoyaneurao 2009/06/14 13:56 > ソフトウェアとしてのウィルスはむしろ免疫系モデルに対するエイズウィルスと見なすべき。

これは名言かも知れない…。

metanestmetanest 2009/06/18 21:33 やねさんとは微妙な因縁のあるあの人がその昔「エイズ型コンピュータウイルス」なんて本を書いてますなw

yaneuraoyaneurao 2009/06/18 21:58 あーほんとだ…。まあ、あの人はそんなに深い考えは断じて持っていないはずなので、たまたま…ということなのでしょうけど。

foxfox 2009/06/20 02:04 ヒューリスティックエンジンを売りにしている AntiVir
のフリーバージョンを最も敏感な状態にして使っている
のですが、先日なんてことない普通の(技術に関する)
ウェブサーフィン中に警告が出ました。

どうも何か仕込まれたページのキャッシュに反応した模
様(NoScript で信頼できるサイトも制限しているので
それ以上の被害はない…と思いたい)。

で、Winny 関連で過去色々漁った役に立ちそうな情報を。

WinnyのDownフォルダをインターネットゾーンにする
http://takagi-hiromitsu.jp/diary/20060302.html

Unicodeで拡張子を偽装された実行ファイルの防御方法
http://d.hatena.ne.jp/hasegawayosuke/20061222/p1

グループ・ポリシーでWinnyの実行を禁止する
http://www.atmarkit.co.jp/fwin2k/win2ktips/723stopwny/stopwny.html

実行させたくないアプリケーションを指定する
http://losttechnology.jp/Tips/disallowrun.html

トラックバック - http://d.hatena.ne.jp/yaneurao/20090614

2009-06-08 FM音源の可能性

[] FM音源の可能性  FM音源の可能性を含むブックマーク  FM音源の可能性のブックマークコメント


私自身は、FM音源パラメータを実際にいじったことは無いので、よく知らないのだけど、次のようなテクがあるらしい。


この音はストリングスなのだけど、OPNのアルゴリズム4で4と3のmultipleを並べることによって、5度の和音になっている。こういう音を作るのはそれほど難しくはないが、常に5度の和音が鳴るのでちょっと使いにくいが、1チャンネルエコーに回すだけで、つまり2チャンネルだけで、単音なら4音要求されてしまう音を実現できてしまう。彼らはこんな音まで平気で曲に入れ込んで使いこなしてしまう。


ファルコム音楽フリー宣言(ものがたり)

http://d.hatena.ne.jp/atsushieno/20090606/p1

1チャンネルだけでP5(完全5度)のintervalのある2音を鳴らすテクのようだ。


リソース環境でShort Codingのような技法でプログラムを極限まで縮めてメモリに詰め込むのはよく見かけるが、音源でもそこまでするのか…という感じではある。


しかし、P5が出来るなら、和音としてよく使う代表的なinterval(m3,M3,P4,P5,m6,M6,m7,M7)もひと通り用意しておいて、音色を1音ごとに切り替えれば、1チャンネルで2音分鳴っておいしいような気もする。綺麗な整数比であるP4,P5以外が、FM音源で実現できるのかどうかは知らないが…。


ところで、シンセで不用意にP5上の音やP4下の音が鳴っているということは結構ある。


坂本龍一が『Riot in Lagos』を別の音源レコーディングしなおそうとしたとき、どうもしっくり来ないので、よく聴き直したら、元の音源では4度下の音が入っていることに気づいたという話を雑誌インタビューで答えていたと思う。(以下に追記あり)


逆に言えば、『Riot in Lagos』の原曲では、常にP4下の音が同時に鳴っていたわけで、それなら、P5上の音が常に同時に鳴っているような音源があったとしても、それはそれで何かに使えなくはないんだろうなと腑に落ちたり…。


■ 追記


本文中で書いた、坂本龍一インタビューソースが見つかったので、以下に引用しておく。


f:id:yaneurao:20090609215048p:image

オフィシャル・スコアブック 坂本龍一「/04」 (Official Score Book)(これは、アマゾンで8万円という超プレミア価格になっている。)に書いてあった。


また、山下 邦彦の「坂本龍一の音楽」にも再録されていた。



「よく聴き直したら、4度下の音が入っていて…」


《(この曲のメロディーは全部、4度下の音がいっしょに平行で動いていますね。これは原曲のシンセも、そうなっていたんですか)》


 そう。これ、「4度下」がないと全然違う曲に聴こえるんだよね。この4度がすごく大事だったみたい。なぜか最初気がつかなくて、全然感じが違うから変だなと思って、よく聴き直したら4度下の音が入っていて。たぶんProphet-5上で2番目のオシレーター自動的に4度下にチューニングして、やってたと思うんですけど。ザヴィヌルもよく4度下で重ねていたでしょ。


(するとシンセの鍵盤上では弾いていないんですね。ピアノでは弾かないといけない。ただ、ピアノで、4度でこのスピードで弾くのは難しいですね。)


 そうですね……弾きながら……。4度で弾くのはちょっと難しいです。


(でも、ここを4度で弾かないと。)


 そうそう、あの良さが出ないんですよ。


(4度で弾くことによって、浮遊感が生まれるんですね。「ドミソ」というコードを、下に4度(音程)が来るように転回すると、「ソドミ」という、いわゆる四六の和音になりますが、この転回形のもっている浮遊感ともつながるんでしょうか。)


 ちなみに、西洋音楽歴史上初めて、その「ソドミ」という四六の和音の浮遊感を、そのトニックの機能から外して使ったのは、ドビッシューですよ。初めてですよ。それは革命的なことだったんです。


(その後の掛け合いの部分もまた絶妙ですね。移動ドで歌うと、「♪ミソラーソーミミソラ」と「♪ミラードーファミ」が2泊半ずれて絡むところです。最初のメロディーには、やはり「4度下」が鳴っていて、あとのメロディーには全体的に3度下の音が鳴っています。表面的には、関係性が弱い感じで、はかなくて、でもすごく強く結び合っているようなコール&レスポンスがカッコいいなあと思って。)

名無し名無し 2009/06/09 10:16 ギターのマルチエフェクタや、
一昔前のDTM音源にもプリセット音色で入ってたりします。>5度ハーモニックな音色
意外と使いでがあるのかも?
弦振動なんかでは一番大きく聞こえる倍音でもありますね。>5度

>綺麗な整数比であるP4,P5以外が、FM音源で実現できるのか
基本整数比で指定です。
オペレータごとにデチューンはかけられますが。

>和音としてよく使う代表的なintervalもひと通り用意して
>おいて、音色を1音ごとに切り替えれば
これはまずやっろうと思わない・・・w

igatoxinigatoxin 2009/06/09 11:44 ベーマガに投稿するときに、「一音コード」と称してよく使っていました。
2^{n/12}をnを変えて並べ、整数値に近い音を拾ってみます。
1:C0, 2:C1, 3:G1, 4:C2, 5:E2, 6:G2, 8:C3, 9:D3,
10:E3, 12:G3, 16:C4, 17:Des4, 18:D4, 19:Es4 20:E4
適切なintervalの2音を選んでやれば一音コードのできあがりです。

yaneuraoyaneurao 2009/06/09 17:18 > >おいて、音色を1音ごとに切り替えれば
> これはまずやっろうと思わない・・・w

まあ、そこは、自動化するスクリプトなり何なり書いてやればいいので…。

> 2^{n/12}をnを変えて並べ、整数値に近い音を拾ってみます。

そのとき、誤差がある程度発生すると思うのですが、聴いてみたときにどれくらい違和感があるのか/無いのかに興味があります。

すべての協和音程が、綺麗な整数比かと言えば、そうでもないので、P4,P5,P8以外は、比率がちょっとぐらい違っても、どうってことないような気もするのですが…実際に試したことはないので興味があります。

なるっちなるっち 2009/06/10 10:27 はじめまして、なるっちと申します。

基本的に4オペFM音源の「MUL(マルチプル)」というパラメータで指定できるのは整数倍のみですが、OPM(YM2151)に限っては非整数次倍音を使うための「DT2(デチューン2)」というパラメータもあります。
これは通常のデチューンとは異なり、MULの倍率そのものを変更するためのパラメータで、等倍/1.41倍/1.57倍/1.73倍の4段階で指定できます。
たとえば「MUL=3, DT2=1」ならば「3 * 1.41」、つまり4.23倍を指定したのと等価です。

そして、MDX方面で有名なhex125さんによって、この手法を和音に応用するための「Tone Doubler」というマクロが開発されています。
このマクロでは「MUL=4, DT2=0」を根音として半音単位でオクターブ上の完全5度までの音階が網羅されていますので、任意の間隔で2音を発音可能です(それこそ短2度でぶつけたり、9度や11度などのテンションノートも使えます)。

実際の出音は…半分宣伝のようになってしまって恐縮ですが、
http://nrtdrv.sakura.ne.jp/
↑こちらの「デモソング」のところにあるYMOの「Behind the Mask」を聴いていただけたら幸いです。MP3とMMLを公開しています。
これはTone Doublerを開発されたhex125さんご自身の手になる作品で、なんとイントロのディレイ効果も1チャンネルで実現しています。また、1分6秒あたりから鳴る白玉コードも、2チャンネルで4音鳴らしています。

yaneuraoyaneurao 2009/06/10 14:59 ↑うわ!それ凄い!!

なるっちなるっち 2009/06/13 11:57 うほ!反応ありがとうございます。hex125さんに変わってお礼申し上げます。ありがとうございます!

ご本人のアップしているニコニコ動画のURLも貼っておきますね。
http://www.nicovideo.jp/watch/sm5801932
8chのOPMひとつで、PCMも使わずにこれほど多種多様な音を鳴らせるんですよね。
FM音源、とりわけOPMは本当に多くの可能性を秘めたチップだと思います。

トラックバック - http://d.hatena.ne.jp/yaneurao/20090608

2009-06-04 実践デバッグ技法

[] 実践デバッグ技法  実践デバッグ技法を含むブックマーク  実践デバッグ技法のブックマークコメント


実践 デバッグ技法 ―GDB、DDD、Eclipseによるデバッギング6月8日に発売される。



ひなた先生が教えるデバッグが256倍速くなるテクニック」(→ http://d.hatena.ne.jp/yaneurao/20081114 )というデバッグ本を書いているよしみで、オライリー編集の人から献本していただいた。


f:id:yaneurao:20090604180555j:image


「打倒ひなた先生って思ってたのですが全く違うデバッグ本になってしまいました。(笑)」とのこと。


f:id:yaneurao:20090604194731j:image



帯を見ると吉岡弘隆さんがコメントを寄せている。(アマゾンでは残念なことに帯が確認できないのだが) また、この吉岡弘隆さんの著書であるDebug Hacks -デバッグを極めるテクニック&ツールの帯には、Rubyまつもとゆきひろさんの推薦の言葉が書いてある。これだけ見てもこの2冊の本の凄さがわかる。


この2冊( + ひなた先生)の内容の違いについてまとめると以下のようになる。

Debug Hacks -デバッグを極めるテクニック&ツール実践 デバッグ技法 ―GDB、DDD、Eclipseによるデバッギング

ひなた先生 → デバッグの一般的な方法論についていろいろ。バグを出しにくいコーディングについてもいろいろ。デバッグ環境としてはVisual Studioがメイン。あまりにも読みやすく、読んだらすぐに古本屋に売られやすい。


Debug Hacks → GDBの使い方からカーネルデバッグまで。カーネルデバッグが出来るようになることが最終的(?)な目標。かなり本格的かつ専門的。


・実践デバッグ技法 → GDBDDDEclipseによるデバッグデバイスドライバデバッグなどではなく、どちらかというとアプリケーションデバッグDebug Hacksよりは入門者向け。いままでWindowsでの開発を専門でやっていた人が、これからLinux環境で…なんてときには一読するといいと思う。

蚊取り線香とカメレオン蚊取り線香とカメレオン 2009/06/06 18:53 後者がカエルでなくてあえては虫類チョイスなのは
WizardとLizardを掛けているからのかどうなのか、

つかひなた先生を読んだ後は『デバッガの理論と実装』を読むのが正しいキャリアパス

yaneuraoyaneurao 2009/06/06 20:57 後者のLizardは、bugを捕食しそうではあるし、前者の蚊取り豚は、蚊(mosquito)もbugの一種だからかと思った。

yosapon65535yosapon65535 2009/06/12 01:22 この豚って蚊取り線香みたいなやつなのですね。
献本されるって凄いですね。というかうらやましいです。私はお昼ごはんを我慢して技術書買う人なので。。。

トラックバック - http://d.hatena.ne.jp/yaneurao/20090604
 | 

1900 | 01 |
2004 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2013 | 01 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2014 | 01 | 02 | 03 | 04 | 06 | 08 | 10 | 11 | 12 |
2015 | 01 | 02 |


Microsoft MVP
Microsoft MVP Visual C# 2006.07-2011.06
Connection: close