LINQ to SQLで子要素を並べ替えて取得する

LINQ to SQLでならべかえをするには、「OrderBy」や「OrderByDescending」で可能ですが、子要素やそのまた子要素を並べ変えた状態で取得する方法がわかりませんでした。

そのために、せっかくXAMLでシンプルなバインディング記述が出来るのに、親要素が変わる毎に、わざわざコードで子要素を並べ変えていました。

で、調べていると、「DataLoadOptions.AssociateWith メソッド」というものがあり、用途は「特定のリレーションシップについて取得するオブジェクトをフィルタ処理します。」ですが、ここで並べ替え条件を指定しておくと目的が果たせます。


   this.db = new SampleDataContext();
   DataLoadOptions options = new DataLoadOptions();
   options.AssociateWith<user>(u => u.Customer.OrderBy(c => c.CustomerName));
   this.db.LoadOptions = options;

iPhone 3G 電池持ち + モバイルバッテリー(FPS440)について

iphone01-thumb

昨日、往復移動が5時間程度の出張に出ましたので、その時のiPhone 3Gのバッテリー状況をお知らせします。

朝6時出発し、新幹線移動時に2時間程度Safariでブラウズし、その後は特に電話もせず待ち受けのままで夕方4時くらいに確認すると電池残量3分の1程度のため、PowerBank slim 2.0 FPS440で充電。
4分の3程度まで回復し、帰りの新幹線で2時間程度Safariでブラウズ。
帰るころに、ぎりぎりバッテリーメーターが赤になった。

やはり出張にはモバイルバッテリーが必須といったところでしょうか。

なんかUSBの出力が1A以上ないと充電しないとかみたいです。
私の持っているAC-USBのアダプタ(600mA)では充電しませんでしたので出力の小さいモバイルバッテリーは充電ができないかもしれません。

下記のバッテリーは充電することができました。

iPhone 3G購入でBluetoothヘッドセット Jabra BT500 再び

以前にFOMA M702iSを使っていた時のヘッドセット「Jabra BT500」をiPhone 3Gで接続してみました。

あっさり接続完了。

電話着信時と切断はヘッドセットのボタンで操作できて、まあ普通に使える感じです。
(肝心のメール通知はヘッドセットにはなんの通知もありませんが)

iphone02-thumb

海外の携帯の場合は、どれでも問題なく使えるのでしょうか。

あとはBluetooth待ち受け時の電池消費がどのようなものか。

バイブルサイズGTD用リフィルのダウンロード

前回までのエントリーで公開したリフィルをまとめました。画像をクリックするとPDFファイルで表示します。必要であれば保存して無地のリフィルに印刷して使ってください。

また、便利なリフィルのアイデアがあればお知らせください。
バーティカルタイプ カレンダー リフィル(2007年06月末まで)

 

calendar 

GTD INBOXリフィル

inbox 

GTD NextActionリフィル

nextaction 

GTD Projectリフィル

project 

GTD Somedayリフィル

someday 

GTD Wait forリフィル

waitfor 
ご意見ご感想をお聞かせください。

C#からExcel操作をしてて、「SaveAsメソッド」にはまる

C#でExcelを操作して保存をする処理を書いていたら、Excel2007とExcel2003ではファイルの拡張子が違うことに気づきました。
Excel2007で”*.xls”で保存すると、開くときに拡張子が違うメッセージが表示されます。

object[] parameters = new object[] { false };
objApp_Late.GetType().InvokeMember(”DisplayAlerts”,
BindingFlags.SetProperty, null, objApp_Late, parameters);

string path = @”C:\test.xls”;
parameters = new object[] { path };
objBook_Late.GetType().InvokeMember(”SaveAs”,
BindingFlags.InvokeMethod, null, objBook_Late, parameters);

なんか良い方法はないかと考えていましたが、なかなかスマートな方法がなく、ためしに拡張子なしで保存してみればと思い、ダメもとで
string path = @”C:\test”;
としてみたところ、ちゃんとtest.xlsxで保存されていました。勝手に拡張子を付けてくれるみたいです。Excel2003でも試してみてtest.xlsで保存されれば問題解決。

Vistaからsambaへの接続が出来ない場合の対処法

 

Windows Vistaのインストールが終わり、旧PCからバックアップしておいたファイルをLinuxのsambaから取得しようとしたらできませんでした。

この問題を以下のBlogを参考に解決しました。

VistaからMac mini(10.3.9)のsmb共有フォルダにログオンできない

コントロールパネル→システムとメンテナンス→管理ツール→ローカルセキュリティポリシー

で表示されたウインドウから

ローカルポリシー→セキュリティ オプション→ネットワーク セキュリティ:LAN Manager 認証レベル

をクリックし、”NTLMv2 応答のみ送信する”から”NTLM 応答のみ送信する”に変更する。

 

vista-thumb1

VisualStudio2005でDataGridViewを使う

 

VisualStudio2005のDataGridViewの使い方メモ

VisualStudio.NET2003のDataGridとは使い方が若干変わっています。

手動で行および値の追加をします。

            DataGridView dgd = new DataGridView();
            this.Controls.Add(dgd);
            dgd.Dock = DockStyle.Fill;
            DataGridViewTextBoxColumn col1 = new DataGridViewTextBoxColumn();
            col1.HeaderText = "列1";
            dgd.Columns.AddRange(new DataGridViewColumn[]{
                col1});
            dgd.Rows.Add();
            dgd.Rows.Add();
            dgd.Rows.Add();
            dgd.Rows.Add();
            dgd.Rows.Add();
            dgd.Rows[0].Cells[0].Value = "TEST";
            dgd.Rows[5].Cells[0].Value = "TEST";
datagridview
なんかVisualStudio2005のコントロールに関する書籍や解説が少ないような。。。

システム手帳でGTD(7):定期的にリストを確認する

そのシステムを信頼するためには・・・

gtd_step4

STEP4は「定期的にリストを確認する」です。

 

前回までで、すべての情報はシステム手帳のGTDリフィルもしくは、ファイルボックスに収まりました。
まず、何をどのタイミングで確認するかを考えます。
これは、人それぞれ生活スタイルが違いますから、確認のタイミングも様々です。
私の場合、朝一番にINBOXを確認します。STEP2で記述したように、スクリーニングします。すぐできるもの(2分以内)はその場でやってしまいますから、全体で1時間ぐらい掛かる場合もあります。
次に、カレンダーを確認します。今日に固定された予定を確認して把握しておきます。必要であれば、出発時間前に携帯のアラームなどをセットしておく場合もあります。そこまでしなくてもと思うかもしれませんが、作業中に次の予定の出発時間を気にすることで生産性を低下させるぐらいならやっておいたほうが良いです。
WaitForリフィルも朝、依頼した人に連絡がつく時間帯に確認します。期日が近いものなどがあれば、連絡して状況を確認するなどもこの時間帯にします。
次は、バーティカルリフィルの今日の予定うち、開いている時間帯におこなう最適なタスクをNextActionリフィルもしくはファイルボックスから選んで、実行していきます。このあたりはStep5で。
あとSomedayリフィルは、少し長いスパンで考えるタイミングに確認します。たとえば、長期の休みに入る前に、この休みに実行したいものがないかなどです。日々の忙しい中、休みにはあれをしたいと思っていても、いざ休みになると思い出せず平凡に過ごして、休みが終わるころに思い出すなんてことは避けたいですから。

私の確認タイミングはこんなものです。

 

過去のエントリーでも触れましたが、大事なことは、この定期的な確認作業が、このシステムを信頼できるものにするということです。
主婦が冷蔵庫にマグネットでメモを付けるのは、毎日そこを見るから、主婦にとっては一番信頼できる場所であるという理由です。
過去のエントリー

システム手帳でGTD(1)

システム手帳でGTD(2):全体フローとステップ

システム手帳でGTD(3):Inboxへ投げ込む

システム手帳でGTD(4):Inboxのスクリーニング

システム手帳でGTD(5):信頼できるシステムに記録する1

システム手帳でGTD(6):信頼できるシステムに記録する2

システム手帳でGTD(6):信頼できるシステムに記録する2

役割に応じた記録場所を使いましょう。

gtd_step3

STEP3は「信頼できるシステムに記録する」の続きです。
前回は「Trash、SomedayList、Reference、Project」を説明しました。今回は、「WaitForList、Calendar、NextAction」の記録について説明します。
WaitForList

その行動が、自分でやるべきでなく他の人に任せた場合には、WaitForListに記入します。その場合でも、相手からの返答を待っているだけではいけない場合がありますので、定期的なスクリーニング時には、このWaitForListを確認して期日が過ぎているものは、依頼先に確認をとるなどの行動が必要になります。

Wait For Listリフィルのダウンロード
Calendar

日時の決まっている行動は、カレンダーに記入します。出来れば時間軸のあるリフィルのほうが、「1日のうち、どこでどれくらいNextActionを消化できるか、どのNextActionが時間的に都合が良いか」などが目に見えて良いと思います。
館神blogさんの時間を「見える化」する手帳2007年の気になる手帳を使ってみるが参考になります。

手帳は用途に合わせて選べば良いと思います。カマタ式「手帳の選び方」

以前に自作したリフィルです。良ければ使ってください。バーティカルタイプのリフィル[2006年12月~2007年6月末]のダウンロード※12.8MB
NextAction

1つの行動単位まで絞り込んだらNextActionに記入します。時間が空いたり、前の行動が完了したときに目を通し、優先度や次の予定までの空き時間を考慮して実行する行動を選びます。

NextActionリフィルのダウンロード
ここでリフィルに記載した内容に関連する資料、たとえばA4の参考資料や、依頼資料などは、ReferenceやNextActionとラベルを貼ったファイルボックス(サンプル:キングジム Gボックス PP A4 10.0cm ネイビー 4633N)に入れてリフィルと同期しておくと便利です。 

過去のエントリー

システム手帳でGTD(1)

システム手帳でGTD(2):全体フローとステップ

システム手帳でGTD(3):Inboxへ投げ込む

システム手帳でGTD(4):Inboxのスクリーニング

システム手帳でGTD(5):信頼できるシステムに記録する1

 

 

手帳に関するリンク

カマタ式「手帳の選び方」

2007年、人気の手帳のポイントはコレ (1/2)

2007年の気になる手帳を使ってみる――能率手帳キャレルA6バーチカル (1/2)

システム手帳でGTD(5):信頼できるシステムに記録する1

役割に応じた記録場所を使いましょう。

gtd_step3

 

STEP3は「信頼できるシステムに記録する」です。

 

STEP2では、GTDのフローに応じてスクリーニングして分類する場所を特定しました。では、その分類先はどのようなものが適しているか順番に考えて見ます。

Trash

まずゴミ箱は、リフィルのInboxであれば、線を引くとかチェックを入れることで消してしまいましょう。ファイルボックスの中の資料の場合は、破り捨てましょう。

 

SomedayList

いつかやるつもりのSomedayListは、定期的に確認が出来るほうが良いので、リフィルで作っておきます。SomedayListリフィルのPDFファイルのダウンロードはこちら です。

 

Reference

資料としてとっておくもので、紙の資料になっている場合は、クリアファイルに入れてラベルを貼ってひと目で何かわかるようにしておきます。ラベルを貼ることは面倒なことですが、後から見るときにあるとないとでは大変な違いが出てきます。置いておいたはずの資料を探すのにストレスを感じていたら本末転倒ですから。GTDの発案者の本「仕事を成し遂げる技術」では、ラベルライターを身近に置いておき、すぐにラベルを作れるようにしておくということが記述されています。ちなみに私は、「KING JIM ラベルライター テプラ PRO SR330」を使用しています。JISキー配列のキーもついて価格もお手頃でしたので。
また、書き記すような内容であれば、無地のリフィル1枚に自由に書いて「Someday」というインデックスの中に収めるのがよいと思います。

 

Project

その項目が複数の動作を伴う場合は、項目名のプロジェクトを作って、その中に1つの動作にわけて記述しておきます。この1つ1つが次にするべき行動になります。またこの行動は、後記するNextActionに記述しても良いです。ProjectリフィルのPDFファイルのダウンロードはこちら です。

 

残りのWaitFor、Calendar、NexActionは次回にします。