2010年5月31日月曜日

WILLCOM 解約してきました


サポートがまったくつながらないのでカウンターに行ってきましたが、珍しく(?)店内は混雑していて店員の人は忙しそうでした。
学生に HONEY BEE が人気っぽい?端末代金が安いし、学生半額とかやってるので手ごろなんでしょうかね。

2010年5月23日日曜日

iPad が欲しくなってきた


最初は絶対にいらないとか思ってたんですが。こういうの見てたら実に良いように思えてくる。語りとか関係なしに。

ネットブックなんかどこが出しても値段と品質ぐらいしか変わらない訳で、おまけにスペックも値段も大差ないというかどんぐりの背比べ状態。OS が Windows という時点で UI にかなりの縛りがあるうえに唯一差をつけられるメーカーオリジナルソフトもどうでも良いどころか無いほうが良いものばかり。そして1台あればもういらない。

iPad がネットブックと同じことしかできない、それ以下のことしかできない、としても、ネットブックには無いオンリーワンを持っているわけで。日本でも売れるでしょうねぇ。

開発環境が Mac 必須なのに Mac 嫌いな上に、SoftBank も超がつくぐらい大嫌いなので、なんだかんだで私が買うことは無いでしょうが・・・

Windows SDK for Windows 7 and .NET Framework 4


ついに出ました。


ISO 
Web Setup


VS2010 をいれずに .NET 4 をインストールしてコンパイルするとMulti-targeting packをインストールしろだの警告が出ますが、Windows SDK 入れれば VS2010 入れなくても大丈夫かな?

2010年5月22日土曜日

ASP.NET の互換性


Windows Server 2003 で動いていたASP.NET で構築したシステムを Server 2008 にもってきたら一部動作しない(Stack Overflow が発生する)ページがあると泣きつかれて調査することに。

いろいろ調べてたら原因は OS というより、ASP.NET のバージョンでした。2003 のほうでは ASP.NET 1.1 で動作しており、2008 では ASP.NET 2.0 で動作させていたことが原因。
調べてたら結構、互換性に難有りのようですね(表示がくずれるとかではなく)。そんなのにひっかかるような作りも悪いんだろうけど・・・。2008 でも ASP.NET 1.1 に変更することで動作しました。

教訓:ASP.NET のバージョンは開発環境と同じものを使え。

ただし、2008 で ASP.NET 1.1 を動作させるにはいろいろ作業が必要で。以下、情報ソースが消えても大丈夫なように個人的なメモ。

①IIS の役割から「メタベース互換性」を追加。
②.NET Framework 1.1 追加
③IIS 管理コンソールのルートで「ISAPIとCGIなんちゃら」を開いて「ASP.NET 1.1」を「拒否」から「許可」に変更。
④Machine.config を開いて IgnoreSection を追加。
%windir%\Microsoft.NET\Framework\v1.1.4322\config\machine.config を開いて</configSections>の前に

<section name="system.webServer" type="System.Configuration.IgnoreSectionHandler,
    System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 

を追加。
⑤仮想ディレクトリのアプリケーションプールを開いて「ASP.NET 1.1」に変更。


2003 のころは仮想ディレクトリのASP.NETタブ開いてバージョン選ぶだけだったのに。IIS7 になってから手順やらクリック数が増えすぎ。

IMultiLanguage::DetectInputCodepage() が使えない・・・


IMultiLanguage2 でも 3 でも。


・UNICODE BOM に対応していない。
・BOM なし UTF-8 のテキストファイルを食わせると結構な頻度で西ヨーロッパ(Windows-1252)と誤判断。


後者はパラメータで何とかできるのかね?
Chrome つかってて日本語ページを西欧とか抜かすのはこれで文字コード判別してるから?
MS謹製というかIEで使用されているとのことなのでさぞかし立派なものと思ってたんですが・・。


結局、IMultiLanguage::DetectInputCodepage() だけで文字コード判断は辛いものがあり、DOBON.NET」さんの「文字コードを判別する」雅階凡の C# プログラミング」さんの「文字コードの判定」を参考に


①BOM有UTF-8, UTF-16(LE, BE) の判定
②JIS, UTF-16(LE, BE) の判定
③SJIS, EUC, UTF-8 のスコア判定
④IMultiLanguage3::DetectInputCodePage() の判定


としました。両者の考え方をマージした形で実装して良い感じに。


情報を公開してくださっている両氏には感謝。