カドルドエグ 的个人资料たま(ご)の記録照片日志列表更多 工具 帮助

たま(ご)の記録

とある個人のニューススクラップ集と成長(?)の記録。

カドルドエグ

职业
地点
兴趣
社会人歴 = プログラマー歴 = C#歴。
2009年4月で4年目に突入。未だ下っ端です。
元々はグラフィックデザインを学んでました。

HNの意味→coddled egg = 半熟卵。
自分でもつづり間違えるのでカタカナ表記。
本来の発音は「こどるど」の方が近いけど個人的感覚で敢えて「かどる」で。
因みに「半熟卵」は「soft boiled egg」の方がメジャーらしい。「こどるど」の発音だと「抱く」を意味する言葉と似ちゃうそうな。

自定义 HTML

Silverlight デベロッパーセンター
MSDN オンライン
.NET Framework デベロッパーセンター
ライトニング トーク登壇者募集

ライトニングトークは、聞くのも楽しいですが発表はもっと楽しいですよ^^

11月19日

ベータ祭り

[速報]Internet Explorer 9初披露、HTML5対応、DirectXで描画。Silverlight 4は今日からβ公開
http://www.publickey.jp/blog/09/internet_explorer_9html5directxsilverlight_4.html

Silverlight 4 Beta Information
http://silverlight.net/getstarted/silverlight-4-beta/

【かるあのメモ】Silverlight 4すげーー
http://karua.at.webry.info/200911/article_1.html

PDCを皮切りにSilverlight4関連がいろいろ出てきました。
3もなかなかインパクトが強かったですが4はさらにそれを超える勢い…?

ついでにAIR2も出てますw
Adobe,次期「AIR 2」「Flash Player」のベータ版をリリース
http://itpro.nikkeibp.co.jp/article/NEWS/20091118/340682/

…なんかフォントいじると調子悪いな…>Live

11月18日

Web Application Toolkit for IE8のサンプルをいじる時の注意

諸事情でいじりちゅうw
そしてもしかしたら私だけかもしれないけど備忘録がてら。

IE8では、下記の新機能が追加され、後述するToolkitを使って実装できる。
・検索候補の表示
・アクセラレータ
・Webスライス

でも今回言いたいことはそれらについてではないので詳細はMSDNでw
http://msdn.microsoft.com/ja-jp/ie/default.aspx

んで。
それらを実装できるToolkitはここでサンプルコードごとダウンロード可能。
http://code.msdn.microsoft.com/WebAppToolkitIE8

ダウンロードすると、デフォルトだとCドライブ直下に
「WebAppToolkitIE8」
というフォルダができ、その中にVB版とC#版のソリューションおよびReadMeなドキュメントが入ってる。

基本、ドキュメント(但し全文英語)を見ながら環境を整えてすすめていけばよいのだけど、一つ注意が。

新機能の一つであるWebスライスを使うと、対象のWebページの一部をきりとり、ブックマークバーで更新情報をチェックできるようになる。
今回のサンプルは、チェック表示にSilverlightを使ってるのだけど、なんと「C#版では」それが動かない!

原因は2つ。まあ、どっちか一方をどうにかすればよいのだけど…。

まず1つめはAuctionItems.ascx.cs(AuctionSample.Webプロジェクト下のUserControlsフォルダ内)の
GetWebSlideTitleメソッド。ちなみに戻り値にString。

C#が
 return HttpUtility.HtmlEncode(
                string.Format(
                CultureInfo.InvariantCulture,
                "{0} ({1})",
                auctionTitle,
                auctionPrice));
とあるのに対し、
VBでは
 Return String.Format(CultureInfo.InvariantCulture, "{0} ({1})", auctionTitle, auctionPrice)


吐き出すStringの違いは以下のとおり。

C#:Nanette Lepore for Keds Women's Shoes Size 9 NEW $75 x (¥4)
VB:Nanette Lepore for Keds Women's Shoes Size 9 NEW $75 x (¥4)

つまり、「¥」に余計なことがされている(笑)ので、情報の不一致が起きてしまう。
なので、HttpUtility.HtmlEncodeメソッドを外し、単純にString.Formatメソッドの結果を返してやれば
きちんと切り取れるようになります。

もうひとつはCalculateCurrentPriceメソッド。ファイルの場所は同じ。
GetWebSlideTitleメソッドの下の方にある。
見方によっては、ここが大本の原因といえるかも。

ここでreturn時に「CultureInfo.CurrentUICulture」とあるところを
 CultureInfo info = new CultureInfo("en-US");
というように別途ドル対応のカルチャの変数を放り込めばOK。


なんでHTMLエンコード以外はVBも同じなのにちゃんと処理してくれてるのかは私はまだ知りません;
どなたかそのあたり詳しい方教えてくれると幸いです;;
11月10日

ビデオでBlend3を学ぶ

 
今回は「ビデオプレイヤーを作る」がテーマのようです。
 
ほかにも、いろいろとチュートリアル系の記事がいっぱい投稿されてますな。
しかも動画だから見るだけで結構覚えられる。

同じ時計でもこんなのはいかが?

Blog: Time to reflectSilverlight Flip Clock
 
よく、SilverlightやWPFといったリッチ系なものの練習として時計が取り上げられる。
たいていはあのアナログスタイルのだけど、同じ
「x秒に一度動作をする」
でもいろんな表現があるわけで。
 
RIAって動きも含めた「表現」が大事だと思う。
てなわけで(←無理やり)「時計」をテーマにいろんなタイプの時計を作って(作らせて)
みるのも面白いやも。
11月6日

知らなかったーー

 
モバイル版があったこと自体知らなかった……。。
11月4日

もっと上位になるようにしてもいいんじゃないの?

Expression Blend 3の目玉機能である「Sketchflow」。
MSの技術に関してはヘルプと、そしてMSDNを調べるのが基本。
というわけでこれの作り方・使い方も例外ではなく、
調べるときは、ほぼ必ずネットでの検索を行うと思うのだけど……。
 
因みに今回参考になる(少なくとも私は参考にしている)ページはこちら
では、このページはどうやったら見つけられるだろう?
 
 
とりあえずまずは「sketchflow」でだけ検索。
Googleで検索してみた結果↓
 
 
ちょっとスクロールさせてようやくMSDNのチュートリアルページ発見。
もっと上位にヒットさせるようにした方がいいんじゃないかな…。
1ページ目にある分だけマシだけどさ。
 
Bingで検索↓

TechFieldersのコラムが上に来てるのは特に悪くないと思うんだけど、
問題は、後述のように検索単語を変えて(増やして)いっても、
結局BingではMSDNのページが(通常検索行為を行う範囲内:個人差あるけどだいたい3ページ以内に)なかったこと。。。
MSの技術なのにMSの検索エンジンでひっかからないってどうなの。。。
そりゃ後発だしまだまだ問題はあるけど、自社のページくらい優先的にヒットさせようよ。。(´・ω・`)

以下検索に使った単語と組み合わせ
・sketchflow
・sketchflow MSDN
・MSDN sketchflow
・MSDN sketchflow プロトタイプ
・MSDN sketchflow プロトタイプ作成

もしかしたらもっと別な単語や組み合わせ等々でヒットするのかもしれないけど、
汎用的な単語及び組み合わせでヒットするようにしないと意味がないような。
因みに、このプチ実験は2009年11月4日14時に行いました。

もちろん、個人のブログ上にある情報が悪いというわけじゃない。
でも、本家がしっかりしてないと普及するものもしないんじゃないかなと。

10月29日

何を以て

時間があるとひどくどうでもいいことについて考えるもので。
 
 
Twitterにて、
洗い物.do
というつぶやきを発見。
 
その後すぐ思いついたのは
家事.洗い物();
 
でもこれって、
 
家事.洗う(食器);
家事.洗う(衣類);
 
と表現するのもありなんじゃないかと思ったり。
 
ただ、わざわざメソッドを一つにまとめて引数で使い分けすることに
どんなときに一体何のメリットがあるのかにもよるんだけど。。。
 
てかそもそも「家事(クラス)」に何を実装させるか(= どんな類を家事とするか)という話になるんだけれども。
 
…以上どうでもいい話でした。

イノベーションセンターでのLINQセミナーに参加してきました

 
昨日未明にたまたまキャンセル待ちで入ることができたので急遽参加。
ちょうど、LINQについての知識がほとんど皆無だったので非常にためになりました。
 
一応、正式に.NETに組み込まれたときから存在だけは知っているし本もちょこっと持ってはいるものの、
積読しっぱなしだわ聞きっぱなしだわで。。。
今回はハンズオンもあり、基本の部分を少しだけではあるけど書けるようにはなりました^^;
 
以下、知ってる人からすればあまりにも「今更」なメモ。。。。
----------------------------------------------------------------------------
・LINQは、「全て一つで事足りる」ことに依存せず、「操作」について共通利用する。
 「構造」について平準化するものではないことに注意。
 
・LINQといえば必ず紹介されるこういう↓スタイル(クエリ構文
 IEnumerable<string> result = from p in places
                                                    where p.Legth == 2
                                                    order by p
                                                    select p.Substring(0,1);
 は、以下の表現を簡素化したものである。
 IEnumerable<string> result = places.Where(p => p.Length == 2).OrderBy(p => p).Select(p => p.Substring(0,1));
 →これを「糖衣構文(シンタックスシュガー)」と呼ぶ。
 
・LINQはコンパイルされると最終的に拡張メソッドに変換される
 →クエリ構文ではLINQの全機能を使うことはできない(クエリ構文でカバーされてないものが多々ある)
 
・LINQというか拡張メソッドのイメージ(前述のメソッド構文を例にした場合)
 places:元のコレクション > Where:データの絞り込み > OrderBy:データの並び変え > Select:データを加工し新しいコレクションとして返す
 左から右へ値が引き渡され、フィルタリングされているイメージ:パイプライン処理
 
・前述で書いたようなLINQ処理は、その場で行われて(今回の場合)resultに格納されてはいない。
 この後で、foreachなどでresultが使用されるときにはじめて動作する
 結果セットをインメモリで保持しないので別途保存(ToArray()など)が必要。
 
・C#及びVB:手続き型プログラミング = 問題の解法を記述
 →LINQは、そこに宣言的プログラミング(= 問題そのもの、必要とする結果を表現)を持ち込んだものである。
  問題の抽出方法はLINQの実装側が考えること。
 
・従来との対比
 <<LINQなし>>
 List<String> companyNames = new List<String>();
 List<String> result = new List<String>();
 
 foreach(string c in companeNames)
 {
   if(c ==  "Microsoft")
  {
   result.Add(c);
  }
 }
 
 <<LINQあり>>
 List<String> companeNames = new List<String>();
 
 return from c in companeNames
              where c == "Microsoft"
              select c;
 
 やってることは同じでも表現がとてもすっきりしている
 
・C#内でのLINQは、C#2.0~3.0にかけての新しい技術で成立している。
 →デリゲートや匿名メソッド、拡張メソッド、ラムダ式など
 
・クエリ構文で使用される「句」はメソッド構文にしたときの「演算子」に相当。
 ※一部除く。詳細はMSDN等を見てください
 
・クエリ結果は、RangeやAll、Anyといったメソッドで活用させることができる。
 ※詳細はMSDN等で。
 
・よくあるLINQプロバイダ…
        LINQ to Object:配列やListなど
                          LINQ to SQL:SQLServerへのアクセスをサポート。
                                          対象は2000~2008及びCompact 3.5。
                                          DataContextがポイント。
                                          ストアドの呼び出しも可。但しどんどん遅延していくので注意。
                          LINQ to XML:3.5から加わったSystem.Xml.Linq名前空間内のクラスを使用。より直感的に扱えるようになった。
                                          Xmlをインメモリで取り扱う。
                                          VBではXMLリテラルなどの機能で直にコード内にXMLが書けるが……。
                                          LINQ to Objectにあった標準的なクエリ拡張メソッドの他、XML用のも用意されている。(System.Xml.Linq.Extentionクラスで定義)
 
10月27日

HTML5概要

 
こうやって見ると、
より「開発言語」としての側面を強めた感じ。
 
確かにプラグインなしでも~、というのは魅力の一つだと思うけど、
最終的には使い分けになるような気がするなぁ。

Windows 7 開発秘話?

 
MSだけじゃなく、Windowsを入れるメーカー側とも協力し合って作り上げたのかー。
なんだかそういうのを知ると、別に自分が関わったわけじゃないのに特別な思いが入るようなww
 
…というか今まで完全自社オンリーだったいうのがあまりにイメージ通りすぎて驚き。。