C#

C#のvarとtry〜catchが糞すぎる

C#

C#3.0からはvarと書くと型を明示的に指定しなくても済む。 var hoge = new HogeClass(); しかし例外処理をするためにこれをtry〜catchで囲みたいとする。 try { var hoge = new HogeClass(); hoge.XXX(); } catch { if (hoge!=null) hoge.YYY(); } このプロ…

.NET FrameworkのWebBrowserの互換性の問題

C#

.NET Frameworkでちょっとしたhtmlファイルをレンダリングしようと思うとWebBrowserクラスを用いると思うのだけど、これに使われているIEのエンジンの正体は何だろう? 少なくともIE7、欲を言うならIE8であって欲しい。IE6のレンダリングエンジンはバグだら…

それmicrothreadで書くべきだよ

C#

C#でWebBrowserクラスというWebブラウザのclassがある。これが大変使いにくいclassで、何かするごとにwindow messageを処理しないといけない。 WebBrowser.Navigateを呼び出したあとApplication.DoEventsを呼び出しているコードをときどき見かける。古くはMi…

SQL Server Compact Edition 3.5の使い方

C#

Windowsアプリでもちょっとしたデータの格納のためデータベースを使えると便利である。従来は、SQLiteなんかを使っていたと思うのだが、SQL Server Compact Edition 3.5(以下SQLSCe)という便利なものがあるので、今回はこれの使い方を解説する。 主な利点は …

USB-IOに代わるもの

以前、USB-IOという製品を紹介した。(http://d.hatena.ne.jp/yaneurao/20041109) 私は長らく電子工作でUSB-IOを愛用していたのだが、1バイトずつデータを送信すると1秒間のスループットは200バイト/秒ぐらいしか出ない。1600bpsなので、通信としてはかなり遅…

ソースコードジェネレータ

C#

自由にメッセージボックスをレイアウトするツールのようなソースコードジェネレータの応用事例を探している。 コメント欄で教えてくれくれ!(`ω´)

C#お勧め本

近々VisualStudio2005β2がリリースされるので(β1はバグが多すぎてまともに使えなかった)、C#/.NETのおさらいでもしておこうかと積読状態になっていた本をざっと読んだので簡単なレビューを書いておく。 ★☆☆☆☆ 正直、この本はひどい。こんな内容なら@ITのほう…

Monoはモノではナイ!

C#で書いたプログラムをLinuxなりMacOSになり移植しようと思うと、Mono(http://www.go-mono.com/)のお世話になる。私はどちらかと言うと「Monoは、.NETのユーザーによる実装なのだ」という程度の低い認識だったのだけど、現場で作業する人たちはもっと意義深…

μsecの戦い

そんなわけで、FOMAをパソコンから操作するハードが完成したので次はソフトを書いていくのだが、こいつはC#で書く。PIC16F877をいま電力消費を抑えるために4MHzで動作させる。4MHzってことは、1秒間に1M回(100万回)命令を実行できるってことだ。(PICは4サイ…

Winny作者をめぐって(3)

昨日、いつものごとく、悪いクセで「がおーっ」と、また日記でほえてしまったので、どうなることかと内心ひやひやしながら状況を静観していたところ、http://d.hatena.ne.jp/NyaRuRu/20040518#p1 あーその開発者,私っす…… …… …… _| ̄|○ うーん,未踏ネタは…

Winny作者をめぐって(2)

IPAの話が出てきたので、IPAの採択基準がどれくらいひどいものか、少し知っておいたほうがいいだろう。これは、もう次の例を見てもらうだけでも十分だと思う。http://www.ipa.go.jp/NBP/14nendo/14mito/gaiyou/9-11.html これの結果が、これだ。 http://www.…

UML and DSLs Again(5)

前回までの内容を総括すれば、UMLもDSLsも、ビジュアルプログラミングのためのツールというよりは、他者にconceptを伝達するための手段というところのようだ。DSLsのほうは、厳密にコードへの対応が定義されているというだけで、DSLsだけでプログラミングが…

yaneuraoGameSDK.NET ロゴ完成

C#

大ニュース!大ニュース! ついに、yaneuraoGameSDK.NET(.NET対応ゲームライブラリ)のロゴが出来たんですよ!http://yanesdkdotnet.sourceforge.jp/を見ていただきたい。↑ これですよ、これ。 カクテル某のロゴとか、あきば通*1のロゴとかされている人に御願…

UML and DSLs Again(4)

そんなわけで、Keith Short氏による要約はこうだ。 我々はUMLとUMLベースのツールは以下の目的のために使うのをお勧めする。☆ スケッチ ☆ ホワイトボード ☆ ナプキン(に書くのに) ☆ ドキュメンテーションすなわち、コードには直接対応しない概念図である。 …

UML and DSLs Again(3)

昨日の続き。Visual Studioのアーキテクト(設計者)であるKeith Short氏のblogから続きを読んでいく。氏は、Whitehorse(VS2005に付属されることになっているモデリングツール)でUML2.0を採用しなかったことについて、以下のように述べている。 Since no natur…

UML and DSLs Again(2)

Visual Studioのアーキテクト(設計者)であるKeith Short氏のblogから前回の続きを読んでいこう。例によって翻訳はテキトーである。 我々は熱狂的なUML記法やUML図のサポーターである。私の近くの開発者の仕事場を見渡せば、UMLクラス図やシーケンス図が書き…

UML and DSLs Again(1)

Visual Studioのアーキテクト(設計者)であるKeith Short氏のblogから。・UML and DSLs Again http://blogs.msdn.com/keith_short/archive/2004/04/16/114960.aspx DSLsというのは、domain-specific languages。直訳すれば「特定領域言語」。ここではモデル化…

Borland Together体験記(3)

クラスの名前をファイル名とするファイルを作ったり、雛形を書いたりする作業は、普段のプログラムでも作業時間の1,2割を占めているだろう。まして、リファクタリング作業を行なうときなど、ほとんどがどこかのクラスのメソッドを別のクラスに移し変えるだと…

Borland Together体験記(2)

Togetherは体験版なので、適用できるパターンが限られているものの、クラスのメソッドをこちらのクラスからあちらのクラスに移動させたりするのはdrag & dropで行なうことが出来る。(体験版では出来ない?) クラスのテンプレートをUML図の上にマウスでドロッ…

ネットで講義を配信しちゃうぞ、と。

昨日、久しぶりに講義っぽいことをした。ホワイトボードの代わりにOffice One Noteを立ち上げ、タブレットで画面に殴り書きながら説明をするという方式を採用した。 これが意外とわかりやすいし、聞くほうがノートをとらなくとも電子的に記録が残せるのでな…

ゲームプログラムの教育

そんなわけで、たったひとりのためだけに教材を用意した。構想は以下のような感じだ。 いまどきのしとが、いつまで経ってもポインタあたりでつまずくのは、計算機アーキテクチャが理解できていないからだと勝手に決めつけ、アセンブラレベルから出発し、つぎ…

Borland Together体験記(1)

VS2005ではUMLによるモデリングは採用されないということで、BorlandのTogetherを導入してUMLを用いて設計していくべきか、VS2005が出て市場が落ち着くまで静観すべきなのか容易に結論が出せなくなってしまった。 そこで、Borland Togetherの体験版をインス…

MicrosoftはUMLを敬遠

昨日、いずれUMLを用いて開発していかなければなる、と書いたばかりだが、気になるニュースがあるので紹介したい。 「Whitehorse」は、Windowsソフトウェア開発に革命を起こすか? - CNET Japanhttp://japan.cnet.com/news/ent/story/0,2000047623,20064465,0…

UMLを用いたモデリング

世のなかUMLでの設計・開発がさかんに言われて来ている。やねうらおも、時代の趨勢には逆らえないので、いずれは否応なしにUMLを用いてモデリングを行なわなければならないと考えている。 UMLの表記自体は別段難しくはない。UMLの資格試験やら何やらがあるが…

yaneSDKdotNET始動!?

http://yanesdkdotnet.sourceforge.jp/それらしいページをsourceforgeに作ってみたが、まだ準備中である。*1 何せ、本格的に開発を開始するのは、ゴールデンウィーク明けからだ。いったん着手するとあとは早いので、すぐ出来る予感。<ほんまか *1:uploadの…

.NETのILの仕様(3)

おまけに、CILから.NETのライブラリやら何やら呼び出すことも簡単である。ふつう、言語を自作すると言語に付随するライブラリを作ったりする作業が出てくるが、そういった、言語とは本質的に関係のない(と思われる)作業に手間暇かける必要がない。誰でも気…

.NETのILの仕様(2)

コンパイラを自作ようと考えたことのある人ならばわかるだろうが、Pentiumのアセンブラですら、レジスタ割付はかなり難しい問題だ。まして、レジスタにほとんど直交性のないプロセッサや、パイプラインを考慮した最適化をコンパイラに行なわせるのは結構辛い…

.NETのILの仕様(1)

それでは、CIL(Common Intermediate Language:(.NETで使用する)共通中間言語)について見ていこう。CILの言語仕様は、CLI(Common Language Infrastructure:共通言語基盤)に含まれる。そこで、CLIの仕様を参照するとヨロシイ。 ECMA-335: http://www.ecma-inte…

yaneuraoGameSDK.NET構想

OneNote2003のテストがてらに適当に書いてみたyaneuraoGameSDK.NET構想。 http://yaneu.com/cgi/uploader/files/yaneSDK4DPlan20040415.mht 結構いいアイデアだと思ったので、炎羅君に見せたら「落書き読めナー」と言われて大ショック。読めないのか..私の…

.NETの威力

yaneSDK4DをC#に移植されているmeiさんが、VB(VisualBasic.NET)からyaneSDK4Cs(C#版yaneSDK)を呼び出すことに成功した。http://d.hatena.ne.jp/akiramei/20040412#p1 これは素直に喜んで良いのだろうか?それというのも.NETでのクロス言語開発はそう単純でも…