2006年4月アーカイブ

最近、「○○成分分析」というのが流行っている。成分解析メイカーなるものまで出ているので、かなり種類が多いようだ。

その中に、私好みの成分分析があった。

TM NETWORK
http://seibun.nosv.org/maker.php/TMNETWORK/

英語が苦手な大人のDSトレーニング えいご漬け
英語が苦手な大人のDSトレーニング えいご漬け
任天堂 2006-01-26
売り上げランキング :

おすすめ平均 star
star敷居は高いかも。
star期待度満点!!
star文句なく買い

Amazonで詳しく見る
by G-Tools

RANK C

昨日は、MOTHER3のクリアーに手一杯でトレーニングできず。おかげでMOTHER3完遂!
いいストーリーだった。。。終わりは、確かにMOTHERだった。
8章(最終章)の終わりに、MOTHER1のフィールドの音楽が流れてきたときにはわくわくしてしまった。

MOTHER3
MOTHER3
任天堂 2006-04-20
売り上げランキング : 5,759

おすすめ平均 star
star泣きそう
starついに!
starMOTHERよ、お帰りなさい。

Amazonで詳しく見る
by G-Tools

「マサチューセッツ在住の政治活動家」と名乗る団体がExplorer Destroyerというツールを出しているらしい。

Explorer Destroyer - Switch to Firefox, Make money from Adsense Referral
http://www.explorerdestroyer.com/

Explorer Destroyerは、サイトに設置するもので、設置したサイトをFireFox以外のブラウザで閲覧しようとするとFireFoxのダウンロードを促す。
ついでに、GoogleAdsenseを使ってアフィリエイトもやっちゃおうというツールのようだ。

実際に、インストールしてみることにする。

Mikhail Arkhipov (MSFT)'s WebLog : Spell Checker for HTML and ASP.NET pages
http://blogs.msdn.com/mikhailarkhipov/archive/2006/04/17/577471.aspx

MicroSoft Office(Word)のスペルチェックの機能を、Visual Studio2005に組み込むツールがあった。

日頃、コーディングを行うとき、「この処理のパフォーマンスいいのか?」を気にするようにしている。
が、そういえばJavaScriptに関してはあまり気にしたことがない。

こんなサイトがあった。
JavaScript speed test
http://www.jorendorff.com/articles/javascript/speed-test.html

英語が苦手な大人のDSトレーニング えいご漬け
英語が苦手な大人のDSトレーニング えいご漬け
任天堂 2006-01-26
売り上げランキング :

おすすめ平均 star
star敷居は高いかも。
star期待度満点!!
star文句なく買い

Amazonで詳しく見る
by G-Tools

RANK C

レベル1-2を20問こなした。
ランクは上がらなかったが、I'll, I was, I is がやっと聞き取れるようになってきた。

最近、もっと英語のページをさらさらーっと読めるようになりたい。
少しぐらい、英語の歌の歌詞がわかるようになりたいと思って、いまさらながらこれを購入した↓

英語が苦手な大人のDSトレーニング えいご漬け
英語が苦手な大人のDSトレーニング えいご漬け
任天堂 2006-01-26
売り上げランキング :

おすすめ平均 star
star敷居は高いかも。
star期待度満点!!
star文句なく買い

Amazonで詳しく見る
by G-Tools

同じWebサービスだが、テストサーバーと運用サーバーと両方に置いてテストしたい機会があった。
そのとき、プログラムから動的にWeb参照を変えたい。
しかし、どうも簡単にWeb参照を切り替えられないようだ。

読書速度検定なるものが流行っていたようなので、やってみた。

読書速度検定

マイクロソフトがリリースした、Web上の共有ブックマークサービス「Windows Live Favorites」を使ってみた。

Windows Live Favorites

新しく登場した、WebベースRSSリーダーであるlivedoor readerを使ってみた。

livedoor reader

もうSQL Server 2005のService Packが登場していた。

ダウンロードの詳細 : SQL Server 2005 SP1
http://www.microsoft.com/downloads/details.aspx?FamilyID=cb6c71ea-d649-47ff-9176-e7cac58fd4bc&DisplayLang=ja

デフォルトでは「MSDN Online更新情報」が出てくるスタートページだが、自分のオリジナルコンテンツを指定することも可能なことを知った。

・Google Calendar

Google CalendarにはiCal形式でデータのインポート・エキスポートが可能だ。
せっかくなので、
「自分のoutlookの予定表もiCal形式でエキスポートしてGoogle Calendarにインポートしちゃえ」
と思ったが、ちょっと考えた。

セキュリティは大丈夫なのか?

・Google Calendar

ここ数ヶ月ぱっとしなかったGoogleが期待の新作「Google Calendar」を公開したので使ってみる。

feed meterのアイコンが変化していたので、クリックしてみたら「あとで読む」というツールが公開されていた。

あとで読む
あとで読む

Visual Studio2003ではあるクラスでインターフェイスを実装しようとすると、

といった表示が出て、Tabキーを押すと自動で実装してくれた。
しかし、Visual Studio2005ではそれが出てこない。

MSDNフォーラムに上がっていて知ったのだが、Visual Studio 2002/2003のプロジェクトファイルを2005に変換するための名前空間が存在する。

windowXPの標準のデスクトップ検索はかなり遅いので、非常に使い勝手が悪い。
ので、ファイルのインデックスを作って検索を高速化するため、GoogleDeskTopをインストールしているのだが、実は、XPにもファイルインデックス検索機能があった。(デフォルトは無効になっている)


1.スタートメニュー→「検索」


2.「設定を変更する」をクリック


3.「インデックスサービスを使う」を選択し、「はい」にする。


実際、今も無効にしているのでどれくらい早くなるかはわからない。
また、どれだけのファイルに対応しているかもわからないが(少なくともoutlookなどで受信したメールは検索できない)、GoogleDeskTopを入れるにはスペックが足らないマシンでは有効にする価値があるかもしれない。

例えば、自分でこんなジェネリッククラスを実装したとする。

public class MyGenericClass<T>{}
(こういうジェネリッククラスを英語では、「open generic type」というみたいだが日本語ではなんと訳するのだろう?)

この際型パラメータ<T>には、なんの型でも取ることができる。
例えば、
MyGenericClass<string> strMyGenericClass = new MyGenericClass<string>();
(こういうジェネリッククラスは「closed generic type」というらしい)


しかし、自分で実装したopen typeのジェネリックは型パラメータに制限を付けたい場合があると思う。
そういうときは、where句を用いる。

public class MyGenericClass<T> where T : IComparable { }//型パラメータTはIComparableを実装しなければならない

public class ClassA : IComparable{
  public int CompareTo(object obj) {
    return 0;//特に意味はない
  }
}

public class ClassB {}

public class MyTest {
  MyGenericClass<ClassA> myClassA = new MyGenericClass<ClassA>();
  MyGenericClass<ClassB> myClassB = new MyGenericClass<ClassB>(); //#1
}

上記のコードは、「#1」とコメントアウトした行でコンパイルエラーになる。
MyGenericClassはwhere句で「型パラメータはIComparableを実装しなければならない」と指定しているが、ClassBはIComparableを実装していないためだ。

ここでは、インターフェイス制約のみ説明したが、他にも基本クラス制約やコンストラクタ制約を行うこともできる。

【参考】
where (C#)
http://msdn2.microsoft.com/ja-jp/library/6b0scde8(VS.80).aspx

皇帝ペンギン プレミアム・エディション
皇帝ペンギン プレミアム・エディションドキュメンタリー映画 リュック・ジャケ

ジェネオン エンタテインメント 2005-12-16
売り上げランキング :

おすすめ平均 star
star「自然」にある種の神聖さを感じます。文句なしに感動
star心がほんわかするヒーリングストーリー
starココロがほんわかするヒーリングストーリー

Amazonで詳しく見る
by G-Tools


皇帝ペンギンの1年を追っていくドキュメンタリー。ペンギンの鳴き声とフランス語のナレーションのみしか音声はなく、ペンギンが「今日はおなかがすいたペン」と喋ったりするようなチープな映画ではない。

皇帝ペンギン達は、夏の終わりごろにそれぞれの海から、自分達が生まれた土地に戻ってくる。
そして、ある日の朝にその土地に全ペンギンが集合する。まるで魔法のようにぴったりに。

そこで、カップル探しが始まる。(この辺りは、さすがフランスだけあってペンギンなのに非常に艶に見える。)
その後、卵が返るのだが、卵はすぐにオスに渡される。メスはやがてかえる雛のために海まで魚を取りにいかないといけないからだ。

そのメスからオスに卵を渡すという共同作業だけで、ドラマがある。
極寒の南極では、卵は外気に数秒しか持たない。だからペンギンカップルの共同作業がうまくいかないと卵はすぐ死んでしまう。
それを見て僕は、「愛のキャッチボール」だなと思っていたが、ナレーションではその作業を「恋のステップ」と言っていた。さすがフランス。センスが違う。

その後も、「耐え忍ぶペンギン男達」「雛を取り合うペンギン女の戦い」などペンギン味あふれる内容となっている。
また一体、どうやって撮影したのだろうと思う程、撮影がすばらしい。


皇帝ペンギン 仔ペンギン ビーンズ S
皇帝ペンギン 仔ペンギン ビーンズ S
サンアロー
売り上げランキング :


Amazonで詳しく見る
by G-Tools

アディクテッド
アディクテッドスウィートボックス

エイベックス・マーケティング・コミュニケーションズ 2006-03-01
売り上げランキング :


Amazonで詳しく見る
by G-Tools

二代目ボーカルJadeになってから、すっかり日本でもメジャーになったsweetboxの5枚目のアルバム「Addicted」

アルバムのタイトルにもなっているAddictedは2曲目に入っているが、sweetboxらしさが十二分に出ていて非常に良い。
Addictedは ヴィヴァルディの『四季』より「冬」をカバーしている(TVドラマ:小早川伸木の恋にも流れていたね)

その他にも、浜崎あゆみに提供した「Pride」「body & delicious」「Ladies night」などが収録されており、特に「Pride」は原曲の方がはるかによい。
逆に、「body & delicious」は浜崎あゆみの方が、らしさがでていていい感じがする。

ちなみに、AddictedをExite翻訳すると「おぼれています。」と訳されるが、ここでは「(すべてに狂ってしまうぐらい)夢中☆」という感じだろか

(miss)understood (DVD付)
(miss)understood (DVD付)浜崎あゆみ ayumi hamasaki CMJK

エイベックス・マーケティング・コミュニケーションズ 2006-01-01
売り上げランキング :

おすすめ平均 star
star今度のアルバムどうかな?
star☆楽しみ☆
star買うしかないっ!

Amazonで詳しく見る
by G-Tools

構成ファイルをあるセクションを暗号化したい場合(例えば接続文字列とか)Aspnet_regiis.exeコマンドラインツールを使えばいいのだが、App.configではそれが使えないというドキュメントがあった。
そのドキュメントでは、コード上でやってくれとあったので試しに作ってみた。

{別途、参照設定にSystem.configuration.dllを追加する必要がある}

System.Configuration.Configuration config = System.Configuration.ConfigurationManager.OpenExeConfiguration(System.Configuration.ConfigurationUserLevel.None);

System.Configuration.ConnectionStringsSection section = config.ConnectionStrings;

section.SectionInformation.ProtectSection("RsaProtectedConfigurationProvider");

section.SectionInformation.ForceSave = true;

config.Save(System.Configuration.ConfigurationSaveMode.Full);


上記のようなコードで、connectionStringsセクションを暗号化しようとしたのだが、実行してもApp.config(実際はAppName.exe.config)は暗号化されない。
何でだろうと思っていたら、デバックモードであったことが原因。
Visual Studio 2005からは「VSホスト・プロセス」というプロセスでデバックは実行される。

VSホスト・プロセス(*.vshost.exe)とは何か?[VS 2005のみ、C#、VB] - @IT
http://www.atmarkit.co.jp/fdotnet/dotnettips/410vshost/vshost.html

で、VSホスト・プロセス(*.vshost.exe)が作成されるのだが、構成ファイルもVSホスト・プロセス用の構成ファイルが作成される
だから、デバック実行を行うと、VSホスト・プロセス用の構成ファイル(*.vshost.exe.config)が暗号化され、本来の構成ファイル(*.exe.config)は変更されない。
しかもデバックを停止すると、VSホスト・プロセス用の構成ファイルへの変更はなくなってしまう(本来の構成ファイルと同じになる)


【参考】
構成セクションの暗号化と複合化
http://msdn2.microsoft.com/ja-jp/library/zhhddkxy(VS.80).aspx

SectionInformation.ProtectSection メソッド (System.Configuration)
http://msdn2.microsoft.com/ja-JP/library/system.configuration.sectioninformation.protectsection(VS.80).aspx

ConnectionStringsSection クラス (System.Configuration)
http://msdn2.microsoft.com/ja-jp/library/system.configuration.connectionstringssection(VS.80).aspx

.NET FrameworkのEXE/DLLファイルの起動を高速化する「.NET R-Tune」というツールが公開されていた。

窓の杜 - 【NEWS】.NET Framework製のEXE/DLLファイルの起動を手軽に高速化「.NET R-Tune」
http://www.forest.impress.co.jp/article/2006/04/06/dotnetrtune.html

やっていることは単純で、ngen.exeでのコンパイルをGUIで行うことによって高速化する。

.NET Frameworkで作成されたツールが増えていけば、
コマンドラインツールをユーザーにわかりやすいGUIで行えるものが必要になってくるんだろう。

Firefox用Googleツールバーの新しいバージョンが公開されていた。

Firefox 用 Google ツールバー


今回のバージョンの特徴は、

・サジェスト(入力補完)機能
・フィッシング対策

の2つらしい。

フィッシング対策に関しては、Firefoxを使っているユーザーなら大丈夫のような気もするが、ツールバーでこういう対策ができるというのはおもしろいな。
あと、このツールバーをインストールしたら、デフォルトでGmailをメーラーとして使えるようになったが、これもバージョン2から?

配列を返すプロパティは作ってはいけないというドキュメントの中で、ついついポカミスをしてしまいそうだなと思ったので。。

こういうコードがあったとする。

public partial class Form1 : Form {
  private void button1_Click(object sender, EventArgs e) {
  Test test = new Test();
  string[] strAry = test.GetAry();
  strAry[1] = "d";
  string[] strAry2 = test.GetAry();
  }
}


public class Test {
  private string[] strAry;
  public Test(){
    strAry = new string[] {"a", "b", "c"};
  }
  public string[] GetAry(){
    return strAry;
  }
}

上記のコードで、strAry2には「a, d, c」が入っている。
理由は、もちろん配列が参照型だからである。

ということで、Testクラスの読み取り専用の配列を書き換えられないようにするには、

return strAry;

return (string[])strAry.Clone();

として、配列のコピーを渡してやればよい。

今まで結構やっていたような気がするが、bool型は初期値がfalseなので、コンストラクタでわざわざfalseを代入する必要はない。



public class MyClass {
  private bool _b;
  public MyClass {
    _b = false;
  }
}


上記のコードだと、「_b = false」の処理はいらない。
ここではコンストラクタだが、ASP.NETのPageLoadイベントなんかでも同じだと思う。

VisualStudio2005の「コード分析」は便利な機能だと思う。(.net framework1.1環境下ならFxCopを使えば同様なことができる)
しかし、デフォルト状態ではチェックが厳しすぎて警告だらけになってしまうのが欠点だ。

どれをチェックするかのルールをあらかじめ決めておかないといけないが、それとは別に「ここの部分はいけないのはわかっているが、とりあえず警告は出さないで欲しい」ということもあると思う。
そういう場合は、SuppressMessage属性を使うとよい。

・SuppressMessage 属性を使用した警告の抑制
http://msdn2.microsoft.com/ja-jp/library/ms182068(VS.80).aspx

この属性を使うと、モジュール・名前空間・リソース・型・メンバ・パラメータなどの単位でコード分析の抑制ができる。

(例){MSDNより}

[SuppressMessage("Microsoft.Performance", "CA1801:AvoidUnusedParameters", MessageId = "isChecked")]
[SuppressMessage("Microsoft.Performance", "CA1804:RemoveUnusedLocals", MessageId = "fileIdentifier")]
static void FileNode(string name, bool isChecked)
{
  string fileIdentifier = name;
  string fileName = name;
  string version = String.Empty;
}

ちなみに、この属性はSystem.Diagnostics.CodeAnalysis名前空間に属する。

【関連】
・セカンドノート: 【VS.NET】コード警察官FxCop

コードファイルを別にするには - MSDNフォーラムに記載されていたもの。

Webページを新規作成する際、「別ファイルにコードを書き込む」というチェックボックスがあり、それにチェックをいれて作成すると、コードビハインドモード(コードを分離した状態)でコーディングができる。

しかし、はじめにこのチェックを忘れて作成してしまうと、Visual Studioだけではコードビハインドにすることはできない。
そのやり方のページが上記フォーラムに掲載されていたが、英語のページだったのと、若干名前付けがあわないような気がしたので、まとめ。


【Visual Studio2005で「別ファイルにコードを書き込む」というチェックボックスをいれずに作成したDefault.aspxをコードビハインドモードにする】

1.Default.aspx.csというクラスを新規作成する

2.「ASP.NETアプリケーションにクラスを…。クラスを'App_Code'フォルダに配置しますか?」という警告は【いいえ】を選択する

3.新規作成したDefault.aspx.csのクラス宣言部分を以下のように変更する(コンストラクタが必要なら、コンストラクタ名も変更する)

public partial class _Default : Page
{
...
}


4.Default.aspxのページディレクティブを以下のように変更する

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

5.Default.aspxの<script runat="server">...</script>のステートメントを削除する

XMLHttpRequestを使って通信している場合、XMLファイルに使えるContent-Typeはブラウザによって異なることを知った。
「text/xml」なら、ケンチャナヨ(大丈夫)みたいだが、検証サイトがあった。

ajax - Content-Type: 許容判定
http://www.kawa.net/works/ajax/tips/mimetype/content-type.html

対応表を見る限り、「text/xml」か「application/xml」が使えるならそれいくのが無難

VisualStudio2003では、Webアプリケーションを作成すると、aspxファイルとbinフォルダ内にそのアセンブリが作成された。

しかし、VisualStudio2005でWebアプリケーションを作成してもこういった配置にならない。
アセンブリ(dll)がない。binフォルダもない↓





結局、aspxファイル(コードビハインドを用いている場合はcsやvbファイルも)を配置すれば動作するのだが、どうもコードを配置するのは気持ち悪い。

これが気持ち悪い時は、プリコンパイルを使うとVisualStudio2003と同様な配置ができる。
プリコンパイルを動作させるには、.NET Framework SDK 2.0のaspnet_compilerを用いるか、VisualStudio2005でプリコンパイルする方法がある。

VisualStudio2005では、プリコンパイル自体はデフォルトで有効になっているようだ。
プリコンパイルされたファイルを配置する場所は、プロジェクト毎に設定でき、プロジェクトのプロパティ→Webサイトの発行→ターゲットの場所で設定する。





また、「このプリコンパイルされたサイトを更新可能にする」というチェックをいれておくと、
生成されたaspxはHTMLも含まれていないダミーページになる。逆に言えば、チェックをはずせばほとんどVisualStudio2003と同じ構成になる。

このダミーページは
「これは、プリコンパイル ツールによって生成されたマーカー ファイルです。削除しないでください。」
としか書かれていないaspxなのだが、警告文通り消さない方がいいだろう。

私のお気に入り等が煩雑になってきたので、マイクロソフト限定でまとめてみる。
ほとんどは、.NET Framework2.0対応

プログラミング Tips
http://www.microsoft.com/japan/msdn/asp.net/tips/#UI

Coding 4 Fun
http://www.microsoft.com/japan/msdn/coding4fun/

プログラミング☆簡単レシピ(VS.NET2005は予告)
http://www.microsoft.com/japan/users/recipe/

「300 秒でズバリ !!」&「10 行でズバリ !!」シリーズ [Visual Studio 2005 対応版]
http://www.microsoft.com/japan/msdn/thisweek/300x10/

ステップ 7 ハンズオン
http://www.microsoft.com/japan/msdn/thisweek/step7/

スクリーンキャスト: Visual Studio 2005 セキュリティ機能
http://www.microsoft.com/japan/msdn/security/demo/

[を] Webページ上でサイコロを振るのだ!で紹介されていたブックマークレット。
まさに桃電チックのさいころが振れます。
確かに、なんとなく楽しい

・さいころを振る

リンク

やさしい時間の中で Oisix(おいしっくす)/Okasix(おかしっくす) ドミノ・ピザ【PC向けサイト】 楽天トラベル株式会社 ショップチャンネル ティーライフ