2009年12月26日土曜日

  • スキルはかけた時間の分しか身につかない

効率化?作業は効率化できるが、「考える時間」は効率化できない。
あなたにないスキルがその人にあると言うことは、その分野でその人が時間をかけて努力したからに他ならない。

  • すべてのことはトレードオフ

新しい技術とか、新しい開発手法とかで、今までの悩みがすべて解決し、万事うまくいく。
とかいう記事とかうたい文句は信じない。まず疑いの目を持ってみよう。

2009年12月22日火曜日

ADO.NET Entity Framework Sample Provider

以前より、Linqを利用しMDBファイルにアクセスする方法をもさくしている。

いろいろ検索しているうちに、ADO.NET Entity Frameworkにて、独自のProviderを実装する方法を紹介しているページを発見。
http://blogs.msdn.com/adonet/archive/2007/03/16/ado-net-orcas-sample-provider.aspx
#だが英語

MSDNのCode Gallery内で、サンプルとOracle版は公開されているようだ。
http://code.msdn.microsoft.com/EFSampleProvider
http://code.msdn.microsoft.com/EFOracleProvider
これを参考にOleDBをWrappeingするProviderを作ればいいのか?
誰か作っててもいいのに…

2009年12月21日月曜日

Linq to SQL

世間では.NET4.0がリリースされようとしている昨今。今更ながらLinq to SQL の勉強です。
Linq to SQLは、ADO.NET Entity Frameworkに取って代わられるとか言われてますが、気にしない。

(参考リンク)
http://msdn.microsoft.com/ja-jp/library/bb425822.aspx

上記ページでどうしても納得いかない箇所が…。DataContextにTable<T>を定義して、それに対してLinqでクエリを投げている箇所。

public partial class Northwind : DataContext
{
public Table<Customer> Customers;
public Table<Order> Orders;
public Northwind(string connection): base(connection) {}
}
Northwind db = new Northwind("c:\\northwind\\northwnd.mdf");
var q =
from c in db.Customers
where c.City == "London"
select c;
foreach (var cust in q)
Console.WriteLine("id = {0}, City = {1}",cust.CustomerID, cust.City);

DataContextにTable<Customer>をフィールドとして定義しているだけで、いつの間にか値が代入されている。おそらく、コンストラクタ内でリフレクションを使用して代入しているのだろうが、わかりにくい。

2009年12月20日日曜日

本を買った

久しぶりに技術書をまとめ買い。

  • More Joel on Software
  • More Effective C#

どちらも、「More」じゃない方は持ってないのだが・・・

  • プロダクティブ・プログラマ -プログラマのための生産性向上術
  • アート・オブ・アジャイル デベロップメント ―組織を成功に導くエクストリームプログラミング

感想はまたの機会に。

2009年12月19日土曜日

Windows7のショートカット

Windows7を使い始めて、もう何ヶ月もたった今日、今更ながら多くのショートカットが追加されていることに気づきました。

その中で、便利と感じたものをいくつか紹介します。。

  • Windows + 数字キー(1-0)

タスクバーに含まれるショートカットプログラムを起動。左から1,2,3…と割り振られています。

image

#実は、Vistaでもできたらしい。

  • Windows + +,-キー

拡大鏡による、拡大縮小が行われます。+が拡大、-が縮小です。

image

  • Windows + ↑→↓←キー

↑は、最大化。↓は最小化。→は右半分に配置。←は左半分に配置。

  • Windows + Shift + ↑キー

縦方向にのみ最大化

 

(参照)

2009年9月23日水曜日

Silverlightを試す

前々からずっと気になっていたんですが、なかなか試す機会がなかったで連休を利用してチャレンジです。

用意したもの

始める

VisualStudio1
上記をインストールすると、VisualStudioにSilverlight用のプロジェクトテンプレートが追加されていました。
とりあえず、Silverlightナビゲーションアプリケーションを選択(サンプルプロジェクトぽかったので)。

Dialog
するとダイアログが出てきて、何かを尋ねます。意味がわかってないので、デフォルトで。

IE
作成されたプロジェクトを、そのまま実行した結果。をを、うごいてますな。

Blend
画面レイアウトはBlendで編集するとのことなので、先ほどVisualStudioで作成されたプロジェクトをBlendで開いてみる。
そうすると、なぜがMainPage.xamlがエラーをはいています。なぜ?

キャプチャ
原因は、XAMLに書かれた日本語が文字化けして、"(ダブルクォーテーション)が消えてることでした。
文字コードが違うみたい。どこかで文字コードを設定する箇所があるのでしょうか?

で、ここで詰まってます。先は長い。

(追記)

image 
Blend上でファイルを右クリック→外部で編集。メモ帳でファイルが開くので、そのまま上書き保存。

image
そうすると、Blend側で上記ダイアログが表示され、ファイルの再読み込みを促される。
はいをクリックすると、エラーが解決する。一度解決したファイルは次からは正しく表示される。
XAMLファイルの数だけ上書き作業を行うとOK?なのかも。

なぜでしょうね。

2009年9月19日土曜日

フィボナッチ数列

Linqから使用しやすい数列を作成する勉強第1弾。
今更ながらなLinqなのですが、.NET Framework3.5はまだ仕事で使えない(※)ので、まだまだ詳しくありません。
ちょっとずつ勉強予定です。

public static IEnumerable<decimal> Fibonacci()
{
    decimal previous = 0M;
    decimal current = 1M;
    while (true)
    {
        yield return current;
        current += previous;
        previous = current - previous;
    }
}

として、

var fs = from f in EnumerableUtil.Fibonacci()
        where f % 3 == 0
        select f;
    foreach (var item in fs)
    {
        Console.WriteLine(item);
    }

こんな感じかね。

※Windows2000上で、.NET Framework3.5が動かないからなぁ。