GoogleRreaderでfirefoxが落ちる
Googleリーダー
↓
登録フィードの管理
↓
フィードの絞込みにフォーカス
↓
Googleリーダーに戻る
↓
落ちる
firefoxのバージョンは2
アドオンの影響なの?
やっぱりデブサミは行くもんだ^^
最近、仕事が忙しくてブログ書く暇も勉強する時間もないです><
でも、デブサミだけは強行して行きました。(そのせいで徹夜ですがorz)
僕のベスト3
1.ネット・コミュニケーション2.0
いろんな方がいて、ただ興奮しましたw
あぁー、○○さんだーと思いつつ、近くにいても挨拶する勇気もなく、
amachangいないかなーとキョロキョロしてましたw
[MVP & .NET Ladies Lightning Talks Session]も見ましたが、
スピーカーの方も見てる方も、何となく雰囲気って違うんですね。
僕はこっち(ネットコミュニケーション2.0)の空気(?)みたいなのが好きみたいです。
そこにいるとモチベーションが高くなってくるようなセッションっていいですね^^
2.言語の現在・過去・未来を語る
これはおもしろかった!!
最近、言語に興味が強くなったので、楽しかったーー^^
このセッションで完全に波村さんのファンになりました!
本題、素晴らしい体験!
本題と言うのも変ですが、個人的に本当に嬉しい嬉しいことがありました。
Ask the speakerで波村さんとMVPの方々とお話することができました!!
(そーいうとこだからと突っ込まれちゃいますが、、いや、嬉しくて)
そして!
あのid:NyaRuRuさんが
僕だけの為に、ノートPCを開いてコードの説明をしてくれました><
これは泣けるぐらい嬉しかったです><
NyaRuRuさん本当にありがとうございました!
内容は勉強してからブログに書かなければ!!
出会いもありました
と言うことで、高田純次botのid:toriaezuさんにお会いすることができました><
でも話しかけるまで、1分ぐらい迷ってましたけどw
「え?誰?」
って言われたら、目も当てられない状況に、、とか思ってました。
次期C#は動的名前解決をサポート!?
ついにC#が動的名前解決!?
Future Focus I: Dynamic Lookup – Charlie Calvert's Community Blog
※僕は英語が読めません。自動翻訳と原文を超斜め読みして、そうなのかなーと個人的に解釈しただけですので
おそらく、C#で動的名前解決の方法を今開発してるよーって内容だと思う。
詳しい条件や環境などは、対して書いてないように思うけど、読めてないだけかも。
僕はめっちゃ欲しかったので大歓迎!
動的名前解決が使いたい場面は確かにある!
昔、使いたいと思うことがよくあって、「静的壊していいのかい」の問いに
unsafeだってあるし、キーワードブロックで解決するのが一番無難じゃん、てかそれで解決できないのかなー
と思ってました。
Syntaxについての説明
まだSyntaxは決まってないよー。でもなんたらかんたら、、、えーと、適当に書きます。
チームでこんな風に考えてるよー、って言うのを見せるよ。
dynamicってキーワード使ってブロックにするのが良いんじゃないかなーって今のところ考えてるよ。
的なことを書いてるのかな?
以下に紹介されてるコードを抜粋↓
static void Main(string[] args)
{
dynamic
{
object myDynamicObject = GetDynamicObject();
myDynamicObject.SomeMethod(); // call a method myDynamicObject.someString = "value"; // Set a field
myDynamicObject[0] = 25; // Access an indexer }
}
おー、やっぱりじゃん!
うは!これは楽しみすぐる!^^
でも、これはかなり議論になりそう^^;
わんくま同盟勉強会
初めて、勉強会に参加してみました
ずっとブログで勉強させて頂いてる、わんくま同盟さんの勉強会に参加させて頂きました。
まず自分の結果
とりあえず名前だけ知ってた方々にお会いできたのは良かった。
でも次回はもっと積極的に話さないとなー、と反省です。
セッション内容の感想
中さんのWPFの話はちょっと凹みました
いろんなターゲットにいろんな視点からセッションするから、いろんなレベルや切り口があるのは当然だけど、
WPFって、まだまだ全然なんだなー、、、と感じました。
みんなが基礎を知って、こんなんやってみたよ!こういう使い方どう!?カラクリはこの機能だよ!
なんてWPFのセッションが流行るのは当分先なのかなー
囚人さんがとにかくラブ
話が面白い!内容もちょっと変わってて面白い!
やっべー便利!って内容とはほど遠いけどw
普段読まない面白い読み物を読んだときの満足感^^
東京は今回初上陸のようでしたが、毎回来てくれないかなー!
是非お願いします囚人さん!><
ひどりさんの画像処理 ※スピーカ紹介にリンクがない(?)からリンク自重します
配列かunsafeか、パフォーマンスコストか実装コストか、
皆さんいろいろ考えるんだなーと思いました。
僕は基本的には超富豪的プログラミング派ですが、たまにはカリカリ系やんないとできなくなっちゃうかな^^;
わんくま同盟様、スピーカーの皆様ありがとうございました!
楽しく参加できました^^ 次回を楽しみにしています!
初めて参加してみて勉強会、コミュニティについて思ったこと
勉強会ってすごい!わくわくする!見るだけじゃなくてもっと参加したくなる!!
もっといろんなコミュニティに参加してみたい!
そしていつか絶対、スピーカーやってみたい!(とは言え、死ぬほど緊張するからムリかも
あと、幅の広いコミュだけじゃなくて、狭いコミュもいいのかなーなんて思いました。
僕の参加してみたいコミュニティを想像してみる
- C#バカのコミュニティ
C#の話ばっかしてみたい
- .NET関連の新しいことに注目するコミュニティ
- C#3.0, F#, IronXX
- Visual Studio 2008, .NET 3.5
- Windows Server 2008、SQL Server 2008
- 若手.NETエンジニアで勉強しながらコーディング大会(?)みたいなの
って想像したものの、そう自分に都合良くはないと思うのでw
とりあえずは、いろいろ見てみる!
ないなら作る!ぐらいじゃないとダメかも!
もっともっといろんな人に出会ってチャンスを見つけよう^^
Y Combinatorが凄すぎる!
って言いたかったけど、難しくて理解できません><
ラムダの話をしてたら会社の人が、Recursive lambda expressions – The Mellow Musings of Dr. Tの説明をしてくれました。
去年の秋にブクマで見たときは難しそうだからスルーしたけど、、今回は理解しようと頑張って見てみます。
やっぱり理解はできないorz
でも、ここで諦めたら負けなので、とりあえず触ってみました。
昔、書いてみたフィボナッチ数列で試してみる
public static void Main()
{
foreach (var item in Math.Fib(10))
Console.WriteLine(item);
}
static public class Math
{
static public IEnumerable<int> Fib(int count)
{
Func<int, int> f = null;
f = i => (i < 2) ? 1 : f(i - 1) + f(i - 2);
foreach (int i in Enumerable.Range(0, count))
yield return f(i);
}
}
ここの部分↓
Func<int, int> f = null;
この初期化と同時に入れられないのが、悔しいなーで終わってたんですが、、
どうも、Y Combinatorってやつはそれを解消できるらしい!!
これがY Combinatorらしいです
static Func<T, T> Fix<T>(Func<Func<T, T>, Func<T, T>> F)
{
return t => F(Fix(F))(t);
}
で、こうなりました。
static public IEnumerable<int> Fib(int count)
{
foreach (int ii in Enumerable.Range(0, count))
yield return Fix((Func<Func<int, int>, Func<int, int>>)(ff => i => ((i < 2) ? 1 : ff(i - 1) + ff(i - 2))))(ii);
}
これすっっげぇ・・(゜゜
で、でも使い方あってんのかわかんない;
キャスト長いけど、どっか別のところに入れたら推論できないのかな・・・
初投稿してみました。ライフゲーム。
どう書く?.orgとは?
このサイトは出されたお題をいかに解くか競い合う、プログラマのためのコロシアムです。
らしいです。
でもTopCoderほど競う雰囲気は強くなくて、
俺ならこう書くよー!
へー、他の言語ならこう書くんだー!
って雰囲気から入っていける印象です。
実質、他の投稿サイトの一番の違いは「○○ってどう作るんですか」って教えて君のための
サイトじゃないことかなーと思います。
まぁ、特別難しいことやれってお題じゃないし、やってみる
言語はもちろんC#
自分的ポリシーを整理
- パフォーマンスなんて知らない
- ショートコードに魅力も感じない
- 富豪的プログラミング万歳
- 読みやすさは一応大事。バランス。でも特別気にしない。
- 命名はわかり易く(でも英語わからないから厳密には気にしない)
- C#で遊ぶ。楽しむ
- LINQ最高♪
- 拡張メソッドも気楽に使う。
- 問題視されてるvarも気にせず使う。(もちろん使うとわかり辛いと自分で思う数値とかには使わない)
- Visual Studio前提のコードで良い(テキストエディタで見たときの見やすさはVisual C#使いの自分的にはどうでもいいと思ってる)
こんなところ。
完成
さっそく初投稿です。ドキドキ><oO(ボケ!へたくそって言われたら凹むなぁー)
http://ja.doukaku.org/comment/5427/
で、内容は?
orz
"間引き"ってやつができませんでした。
やってるつもりですが、実行すればするほど、狂ってると実感(もう投稿しちゃったよーorz
あといろいろ試行錯誤しながら書いたから、大分、見づらいコードになったかなー・・・
最近は、全体の見やすさよりも、とりあえずリファクタリングして
メソッドを分けまくる主義なので、書いた本人以外、パッと見は見づらいと感じると思う。
でもIDEを活用して構築すること前提だから、それほど間違ってはないと思ってやってるからいいやw
(何と言う、負け惜しみw
varより拡張メソッドのほうが問題児な気がするのだけど
varの件
R・田中一郎さんのところで議論になってたvar
暗黙的型付け(その4)
C#を使うようになってから、こういうのあまり気にしなくなってたので、
改めてみんないろいろ考えるんだなー、と勉強になりました。
僕はルールなんてねぇ!バンバン使っちゃえ!派なのですが…
と言うより、開発の規模でも基準なんて変わると思う。
問題だと思ったたびに、メンバーで話し合えばいいじゃん。
と思ってます(varに関しては)
で、本題ですが。拡張メソッドは大問題だと思うのですが!?
もしこんな拡張メソッドを作ったとしたら
static public string NullToEmpty(this string value)
{
return value ?? string.Empty;
}
もちろん普通に呼び出せます。
static void Main(string[] args)
{
string a = null;
string b = a.NullToEmpty();
}
これどうなの?
拡張メソッド自体は最高だと思ってます。
ただ、使い方次第で、ソースレビューする人を大混乱させるようなことが可能だと思うので、
拡張メソッドについては、バンバン使っちゃえ!の姿勢に変わりはないのですが、
varと違って、Visual Studio使っても、ソースの中みないと判断できないことは問題な気がします。*1
で、それより、もっと気になることがあるのですが
そもそも、その設計ってどうなの?
インスタンスのメソッドのように見せる能力なのに、その変数がnullの場合の処理を作るための
メソッドを拡張メソッドで用意していいの?
個人的には、String.IsNullOrEmptyも、拡張にしたほうが便利だと思えばしちゃっていいじゃん。
とも思ってるのですが・・・何か気持ち悪さが
ガイドラインないのかな?
ダメダメ、インスタンスにアクセスしないなら拡張にしないでねー
インターフェースの拡張メソッドでかなり無茶なこともできちゃいますし、
仕事でもむちゃくちゃに使いまくったら、便利!すげえ!、、と思いつつ
あれ?え?設計間違ってるかも?となりました。
まぁ、浮かれて勝手に設計間違えただけなのですが、
設計ミスできる要因が増えたことに違いはないと思うので、
『拡張メソッドはそのインスタンスを利用する事(nullは利用できないと考える)を前提とする』
と言うガイドラインがあってもおかしくないかな?と思いました。
*1:Visual Studioで開発してる時は、拡張メソッドはインテリセンスのマークで区別できるので拡張メソッドかどうかの判断はできます。