2008年1月アーカイブ

私が時折情報として当てにするサイトの一つに pinvoke.net があるこのサイトは所謂、wiki を利用したサイトで p/invoke の情報が書かれている。p/invoke は Platform Invoke のことであり、.NET Framework 上からネイティブの DLL を利用する手段である。恐らくは、Micorosft JVM 上の J/Direct が発祥となった技術だと思われるが p/invoke を利用することでネイティブのDLL を呼べるため、.NET Framework 上にラッパーなどの代替手段のない API を呼ぶ必要があるときによく用いられる。

p/invoke を用いるには、当然のことながら呼び出すべき DLL の呼び出し形式を把握し、その上で適切な定義を書く必要がある。単純な整数の引き渡しなどであれば簡単であるがそれをいちいち考えるのはそれなりに手間である。そういった、手順を集めたデータベースサイトが pinvoke.net である。例えば、pinvoke.net で imm32.dll 内の関数 ImmConfigureIME を探すと次のような記述が見つかる。

[DllImport("imm32.dll", SetLastError=true)]
public static extern bool ImmConfigureIME(IntPtr, hKL, IntPtr hWnd, UInt32 dwMode, IntPtr lpData);

こういった情報は、有用で使える。無論、ただカットアンドペーストするのではなく内容を理解した上で使いこなせればなおいい。事実、Windows Vista 上でゲーム等で日本語入力を実装する際、多くの事例ではまったのはサンプルコードのカットアンドペーストが発端なのだから。アンチパターン中にカットアンドペーストもあるが。

私自身、現在はホワイトプランですね。殆どの電話が家族との通話なのでホワイトプラン + 家族割引 で終わってしまうので。一応、携帯電話から Web を覘かないわけではなないのでパケットの準定額と組み合わせていますが。まあ、中身は既に既報の通りで公式サイトの記述通りです。問題があるとすればコンテンツ事業などにしてみればコンテンツをただで配られてはかなわんよなというところですね。また、状況次第では不当廉売で独占禁止法に抵触する懸念は否定できないかなと思います。今のところ、騒動にはなっていないですけどね。

まあ、私自身は既に卒業しているので学割そのものはどうでも良いと言えば良いですね。ただ、ソフトバンクの乱暴な商法は現ユーザとはいえあまり、好ましいと思っているわけではありません。先日の帯域の割り当てでも意識的に乱暴な言葉を使っているのは余りにも大人げないです。

羊質虎皮とはこういうことを言うのでしょう。ITmedia の記事 セレブ御用達の“プラチナ8000万円PC”発売 によれば、

PCショップ「ハーキュリーズ」を経営するグッドボックスはこのほど、プラチナ筐体採用の超高級デスクトップPC「ZEUS MODEL-Pt - JUPITER -」(以下“JUPITER”)およびゴールドモデル「ZEUS MODEL-Gd - MARS -」(以下“MARS”)の2製品を「ゼウス」ブランドとして発表、現在受注が開始されている。価格はJUPITERモデルが8000万円、MARSモデルが6000万円(双方税込み)。

しかし、ケース部が総プラチナ製などと気張った作りですが、内部は Core2 Duo E6850 に GeForce 7200 GS と拍子ぬけするスペックです。というか、せっかく Vista Ultimate を積んでも、GPU が DirectX 9 世代の GeForce 7200 GS ではお話しにならないかと。まさしく、外面は立派だが内面がそれに伴わない羊質虎皮です。中身はそれほど時間をかけることなく、時代遅れとなり果てるでしょう。セレブの方々が真の意味で所有欲を満足するに値する製品というよりもむしろ、お金をだまし取る品性下劣な製品と判断しますが。

いくらお金があったと仮定してもこういうしょうもない品にお金を投資する気にはなりませんね。お金をかけるのであれば CPU は Quad Core、GPU は GeForce 8800 GT 級が最低ラインだと思います。まあ、消費電力とパフォーマンスのバランスから 8600 とかにデチューンするのはありですが。7000 シリーズでもローエンドに当たる 7200GS は無い話ではないかと。しかも、キューブ系のケースですから拡張というわけにはいきませんし。ケースをアキュフェーズのオーディオ製品のようにシャンパンゴールドとかにするのは有りだと思います。でも、8000 万円も支払った挙句、短命に終わるのでは悲しいです。

アキュフェーズの製品のように具体的なオーバーホール価格を明示し、長期間の所有とメンテナンスに耐えられるようにするのならわかります。たとえば、新規のアーキテクチャが発表された場合でも可能な限り換装サービスを実施しますとかね。現状、マザーボードの規格はある程度保たれているのでやろうとすれば可能だろうと思います。そういうサービスを含めて高級ケースを採用すれば真の意味で所有欲を満足できるでしょう。たとえば、自動車のレクサスのそれが総合的なサービスの向上に努めるようにです。でも、これではただ下品なだけです。

Silverlight で遊び始めたので書いてみます。

まず、画面を定義する XAML です。

<Canvas
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="120"
Height="80" >
<Canvas.Background>
<LinearGradientBrush StartPoint="0,0.5"
EndPoint="1,0.5">
<LinearGradientBrush.GradientStops>
<GradientStop Color="#FF000000" Offset="0"/>
<GradientStop Color="#FFA09E9E" Offset="1"/>
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</Canvas.Background>
</Canvas>
List 1: test.xaml

ついで、全体のコンテナとなる HTML ファイルを示します。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Weather Map</title>
        <script type="text/javascript" src="Silverlight.js"></script>
    </head>
    <body>
        <div id="silverlight"></div>
        <script type="text/javascript" src="test.js">
        </script>
    </body>
</html>
List 2: test.html

そして、Silverlight のメインとなる ECMA Script ファイルを示します。

// Loading silverlight
var parentElement = document.getElementById("silverlight");

Silverlight.createObject(
    "test.xaml",
    parentElement,
    "sl00",
        {
            width: "120",
            height: "80",
            background: "#FFFFFF",
            version: "1.0"
        },
        {
            onError: null,
            onLoad: null
        },
        null,
    null
);

List 3: test.js

先日来、巷間を騒がせているように、Virus を作成した容疑で大学院生が逮捕された。この逮捕が著作権侵害という別件によってなされたことで、罪刑法定主義の観点から逮捕に及んだことの是非を問う向きがある。この件そのものについては本アーティクルでは触れない。しかし、なぜでは Virus を含む Malware の作成が法規制されないのかについては触れる価値がある。

問題は不正指令電磁的記録に関する罪の刑法改正案が共謀罪と抱き合わせになっているためである。言うまでもなく、共謀罪は賛否が鋭く対立している案件である。この是非そのもにも本アーティクルでは触れない。しかし、そのために賛否がそれほどくっきりとは分かれていない不正指令電磁的記録に関する罪も成立が困難になってしまっている。不正指令電磁的記録に関する罪だけであれば共謀罪よりも成立は困難ではないと考える。もちろん、不正指令電磁的記録に関する罪自体にも若干の問題点があることは承知している。これについては「ウイルス作成罪」はこうしてほしい / 国会提出刑法改正案の趣旨が詳しい。

結果的に、不作為の状態が放置されていると考える。これは落ち度という他ない。共謀罪の成立のめどが立たないから、必要性が高く、明確な反対者のいない不正指令電磁的記録に関する罪を分離提出しないのでは政府・与党の横暴ないし怠慢というしかない。かかる、不作為は是正される必要がある。

収録されているのは以下の7篇です。

  • 幸せなイチニチ
  • サトリ
  • ふたりの和麻
  • ブラック&ホワイト
  • 特別な男
  • ある愛のかたち、再び
  • 学園の風景

幸せなイチニチ

表題作の幸せなイチニチは「お化け屋敷でおびえる綾乃」が描きたかったそうで、そういう綾乃が見られます。あとがきに書かれているように綾乃が幸せなままで終わるのは珍しいですね。ほとんどの話ではキレるか、とんでもないことになるか (例 お小遣い停止) が多いですから。

サトリ

和麻の敵サイドから描いた話です。和麻のなんというか、非道っぷりが炸裂した話です。人の心を読むサトリすら欺く和麻の非道っぷりが魅力的な話です。

ふたりの和麻/ブラック&ホワイト

これは、前後編で偽和麻が出てきます。しかし、本物を黒、偽物を白と呼称するのがなかなかです。通常は偽物が黒いんですが…この場合は本物の方がより黒いですからね。和麻とルルーシュはどちらも黒すぎです。まあ、木原マサキにくらべればどっちもはるかにましですが。

特別な男

特別に幸運だと思っている特別に不幸な男の物語です。要は煉、綾乃、和麻に襲い掛かったばかりに、必要ない怪我まで負うことになった愚か者の男の話です。さらに、逮捕と見世物同然です。

ある愛のかたち、再び

Ignition 2 僕だけのマドンナ収録の『ある愛のかたち』につらなるバカップルのエピソードです。あとがきを読むまでもなく、最強のバカップルです。

学園の風景

聖陵学園を舞台にした学園エピソードですね。少々、説教臭いかなと思いますが。まあ、それなりには楽しめますね。

個人的には『サトリ』が一番おもしろかったかなと思います。唯一の一人称作品ですしね。まあ、主人公 和麻の非道っぷりが強調された素敵なエピソードです。退院されたのはよかったです。ただ、あと5年は安心できないのも事実ではありますが。

幸せなイチニチ (富士見ファンタジア文庫 118-11 風の聖痕Ignition 5) 幸せなイチニチ (富士見ファンタジア文庫 118-11 風の聖痕Ignition 5)
山門 敬弘

富士見書房 2007-12
売り上げランキング : 571

Amazonで詳しく見る
by G-Tools

Nyaruru の日記で面白そうなことが書かれています。『C# 3.0 と while(true) と Iterator』 です。俎上に上っているのはテキストファイルから複数行のテキストを一行づつ読み取る処理です。へぼろっぱぁの『少数派なのはわかっています』に反応してのものなんでしょうけど。元々のは while(継続条件) と for と、while(true) でループ内に脱出条件を仕込むパターンですが。当然ながら Nyaruru さんのは C# の yield を使ったものです。

yield というのは反復子を簡単に実装するためのキーワードで IEnumerable インタフェースの実装内で使えます。yield return は WisdomSoft の『yield キーワード』に見られるようにかなり独特のものです。列挙を処理する場合、手続き言語の哲学なら内部でカプセル化された動的な配列をバッファに返された値を保存し、そこからオブジェクトを生成するという形になろうかと思います。ところが C# のそれは内部でコルーチンになっているんですね。コルーチンというのはいったん処理を中断した後、続きから処理を再開できるものです。一般的なサブルーチンでは return で戻してしまえば処理は再開されません。ところがコルーチン化されているのでいったん値を返してもそこからまた処理を再開できるわけです。コルーチンを実装した言語は Wikipedia によれば Modula-2、Simula、Icon、Lua、C# です。この中で実用としてある程度大量に用いられている言語としては Lua と C# が残るでしょう。

そういう意味では、C# は恐らく、手続き言語・オブジェクト指向言語というくくりに関わらず便利そうであればどんどん取り込んでいる節があります。そして、その方向性は恐らく、実用志向です。実際、件のC# 3.0~のアーティクルでも最終的にはラムダ式などの LINQ のフィーチャーをふんだんに使った物になっています。ラムダ式は C# 3.0 で実装された特徴的な機能の一つです。例えばこういうものです。

x=>x*x

この場合だと、x を与えて x の2乗を返す式の参照が帰ることになります。この参照は他の関数に値として与えることができます。ただ、普通の匿名関数と違って、式木として扱えます。匿名関数の場合、内部的には IL にコンパイルされてしまうのでそういった柔軟性は期待できません。式木にできればこの辺は中でいろいろ使えます。この辺は『関数言語由来の新機能』が面白いかと。

Recent Tracks

gorn708's Profile Page

このアーカイブについて

このページには、2008年1月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2007年12月です。

次のアーカイブは2008年2月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Adwords