DLR-Dynamic型がC#4.0/VB10 から導入されました。IronPythonやIronRuby との連携が話題になっていて,動的言語連携向けだと思って、あまり調べてませんでした。
それだけではないのですね。既存の資産との相性もよさそうです。
動的メンバ-/メソッドの追加・更新も、トリッキーさがなく実装できるので、スクリプト言語並みに使いやすそうです。
リフレクション経由でメソッドを操作することが多いのですが、それが簡略できます。それだけでも Dynamic型の恩恵は大です。
いままでは、
var bf = BindingFlags.Public | BindingFlags.Instance | BindingFlags.InvokeMethod;
var inst = Activator.CreateInstance(型);
inst.GetType().InvokeMember("メソッド", bf, null, instance, new[] { 引数,,, });
のように記述していましたが、
dynamic inst= Activator.CreateInstance(型);
inst.メソッド();
これでOK。普通のメソッドCallの感覚です。
C#だとインスタンス.xxx の Dot以後の部分は、インテリセンスが働き、アーリーバインドされます。VBでStrict ONだと同様です。
でも、Dynamic型の場合は、存在チェックが動作せず、遅延バインドになります。
この区別はよくできています。
ところが、VBで Dynamic型を使うには、 Option Strict をOffにする必要があります。これが不満。
Linqで使う動的クラスなどでも Strict offにする局面がありました。
厳密な型定義は、潜在バグ回避に有効な手段なので、Strict ONを徹底させています。旧VBの Strict off文化が薄らいできたのに、Off文化が復活するのは嫌。
C#並みにDynamic型のみ遅延バイディング対象にし、Dynamic型以外は、事前バインド必須にすることができなかったのだろうか。
C#ができているのだから方策はあったと思うのだが。
2010/07/31
2010/07/29
携帯カメラ1000万画素時代
下手なデジカメより画素数が多い。
レンズ等の要因でデジカメと対比するのは無意味なんですが、「そこまでするか」という感じ。
携帯で写真を撮らない人にとっては、まったく無意味な機能なんです。
カメラなしの携帯はを見つけるほうが難しいし、あっても他の機能も貧弱だったりするので、宝の持ち腐れ状態になります。
一頃の「0円携帯」ができなくなったせいか、高機能携帯が幅をきかせているようです。単機能で安価なものを見つけにくい時代。
フィルムカメラは画素数では表現できないのですが、強いて換算すれば、2000~3000万画素だそうです。
画素数だけで言えば、デジカメはスティールカメラと同格になったと言えるのしょうね。
「デジカメは玩具だ。本物のカメラとは表現力が違う」といわれたようですが、500万画素を超えた製品からは、言っている本人が区別できないようです。
何時の世も、台頭する製品は、旧製品愛好家から非難されます。しかし非難していた人が霧散していくのが世の常です。
・PCが登場したときも、「PCは玩具だ。」
・カセットテープが登場した時も「オープンテープの足元にも及ばない。」
・オートマチック車が登場した時も「車はミッション車が本物だ。」
権威者ほど超え高々に叫んでましたが、牙城が崩れたのは周知の事実。
古い技術に固執すると取り残されてしまう厳しい現実があるのでしょうね。
デジカメが実用に耐えているし、要件をみたしているので、フィルムカメラは、オープンデッキ同様にマニアの物になるのでしょうね。
量販されないので、ますます高くなるのかも。マミヤ645とかハッセルのように給料数か月分でも買えない....orz;
でも私には、携帯にカメラやテレビは要らないんだがなぁ。
レンズ等の要因でデジカメと対比するのは無意味なんですが、「そこまでするか」という感じ。
携帯で写真を撮らない人にとっては、まったく無意味な機能なんです。
カメラなしの携帯はを見つけるほうが難しいし、あっても他の機能も貧弱だったりするので、宝の持ち腐れ状態になります。
一頃の「0円携帯」ができなくなったせいか、高機能携帯が幅をきかせているようです。単機能で安価なものを見つけにくい時代。
フィルムカメラは画素数では表現できないのですが、強いて換算すれば、2000~3000万画素だそうです。
画素数だけで言えば、デジカメはスティールカメラと同格になったと言えるのしょうね。
「デジカメは玩具だ。本物のカメラとは表現力が違う」といわれたようですが、500万画素を超えた製品からは、言っている本人が区別できないようです。
何時の世も、台頭する製品は、旧製品愛好家から非難されます。しかし非難していた人が霧散していくのが世の常です。
・PCが登場したときも、「PCは玩具だ。」
・カセットテープが登場した時も「オープンテープの足元にも及ばない。」
・オートマチック車が登場した時も「車はミッション車が本物だ。」
権威者ほど超え高々に叫んでましたが、牙城が崩れたのは周知の事実。
古い技術に固執すると取り残されてしまう厳しい現実があるのでしょうね。
デジカメが実用に耐えているし、要件をみたしているので、フィルムカメラは、オープンデッキ同様にマニアの物になるのでしょうね。
量販されないので、ますます高くなるのかも。マミヤ645とかハッセルのように給料数か月分でも買えない....orz;
でも私には、携帯にカメラやテレビは要らないんだがなぁ。
2010/07/28
パソコンショップも厳しいそう
神戸市内の、パソコンショップが消えていく。
数年前にツートップが閉店し、今年4月にドスパラが閉店しました。
残っている、ショップはパソコン工房くらいでしょうか。
ヤマダ電機などの量販店は、ショップ印象が薄く親近感が湧きません。
ソフマップも最近は量販店的になって遠ざかっています。
パソコンショップだと結構無茶な組み合わせを言っても検証してくれるので助かっていました。
閉店されると残念です。
Windows3.1全盛のころ、DOS/Vショップが雨後の竹の子のように彼方此方に出来てましたか、どうなったのでしょうね。
先日、職場の開発機が不調になり、代替えすることになったので、新調してくれるのかと期待したら、
「数年持てば、良いし、業務開発に支障のない性能で十分」ということで、「中古機」(Pentium4 3.2G?) を調達することになりました。
「えー、いまどきPen4?」と思ったのは内緒です。
でも、使ってみると、結構使えるし、事務アプリの開発には、全然差しさわりがないし、ストレスも感じません。これが結構格安。経理の人は、「開発機は消耗品で十分。クラウドで構築するより、中古機を消耗品購入するほうが安い」とまで言ってました。
妙に納得。
6コアや、4コア*HyperThreadに目が行きますが、冷静になって考えたら、チト反省。゜
「事務アプリの開発」という分野では、今のPCはオーバースペック状態なのかもしれまんね。
とはいうものの、 4コアでHyper-V を走らせたいな....と思っている私。
数年前にツートップが閉店し、今年4月にドスパラが閉店しました。
残っている、ショップはパソコン工房くらいでしょうか。
ヤマダ電機などの量販店は、ショップ印象が薄く親近感が湧きません。
ソフマップも最近は量販店的になって遠ざかっています。
パソコンショップだと結構無茶な組み合わせを言っても検証してくれるので助かっていました。
閉店されると残念です。
Windows3.1全盛のころ、DOS/Vショップが雨後の竹の子のように彼方此方に出来てましたか、どうなったのでしょうね。
先日、職場の開発機が不調になり、代替えすることになったので、新調してくれるのかと期待したら、
「数年持てば、良いし、業務開発に支障のない性能で十分」ということで、「中古機」(Pentium4 3.2G?) を調達することになりました。
「えー、いまどきPen4?」と思ったのは内緒です。
でも、使ってみると、結構使えるし、事務アプリの開発には、全然差しさわりがないし、ストレスも感じません。これが結構格安。経理の人は、「開発機は消耗品で十分。クラウドで構築するより、中古機を消耗品購入するほうが安い」とまで言ってました。
妙に納得。
6コアや、4コア*HyperThreadに目が行きますが、冷静になって考えたら、チト反省。゜
「事務アプリの開発」という分野では、今のPCはオーバースペック状態なのかもしれまんね。
とはいうものの、 4コアでHyper-V を走らせたいな....と思っている私。
2010/07/26
公園のごみ箱
都心部公園の現象かもしれませんが、ごみ箱がない公園が結構あります。
ごみ箱を設置すると、家庭ごみを捨てる人がいるらしいです。
家庭ごみの廃棄は、コンビニや駅でも問題になるほど深刻らしいですね。
住民のモラルが低下したのかどうかは分かりません。一説によると、分別ゴミ方式にしてから増加したらしい。
分別してゴミ出しするのが面倒で、駅に捨てる輩もいるとか。
飲料水の自販機の横には缶やペットボトルのごみ箱を併設していますが、そこに一般ごみを突っ込む輩もいるとか。
「モラルが低下した」という意見もありますが、ごみの分別という制約が敬遠された結果かも知れません。
ごみ回収が有料化になれば、もっと公共の場所に捨てる人が増えるのは想像できます。
ごみ処分場で適切に自動分別できる仕組みを構築したほうが、よいように思えます。
「欧米では徹底している」と言われますが、実状は日本と似ていて、ルール違反者に悩んでいるようです。
分別しなくて処理できる仕組みや、ごみ自体を少なくする流通材(トレイや袋類)を検討するのが大事だと思うのです。
以前の市場では、なんでも新聞紙に包んで売買してました。とくに弊害はなかったです。新聞紙に包むスーパーがあってもよさそうな。
ごみ箱を設置すると、家庭ごみを捨てる人がいるらしいです。
家庭ごみの廃棄は、コンビニや駅でも問題になるほど深刻らしいですね。
住民のモラルが低下したのかどうかは分かりません。一説によると、分別ゴミ方式にしてから増加したらしい。
分別してゴミ出しするのが面倒で、駅に捨てる輩もいるとか。
飲料水の自販機の横には缶やペットボトルのごみ箱を併設していますが、そこに一般ごみを突っ込む輩もいるとか。
「モラルが低下した」という意見もありますが、ごみの分別という制約が敬遠された結果かも知れません。
ごみ回収が有料化になれば、もっと公共の場所に捨てる人が増えるのは想像できます。
ごみ処分場で適切に自動分別できる仕組みを構築したほうが、よいように思えます。
「欧米では徹底している」と言われますが、実状は日本と似ていて、ルール違反者に悩んでいるようです。
分別しなくて処理できる仕組みや、ごみ自体を少なくする流通材(トレイや袋類)を検討するのが大事だと思うのです。
以前の市場では、なんでも新聞紙に包んで売買してました。とくに弊害はなかったです。新聞紙に包むスーパーがあってもよさそうな。
2010/07/24
SetCompatibleTextRenderingDefaultとApplication.EnableVisualStyles()
最近は、GDI+自体が話題になりませんが、Winodws(Desktop)アプリを作成するとき、IDEが勝手に生成してくれます。
Program.csの中を覗くと書かれています。
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
「なんのこと」と質問がありました。
おまじないのように扱われることが多いのですか、理由があっての記述です。
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.application.setcompatibletextrenderingdefault.aspx
FrameWork 1.x時代にGDI+が注目され、コントロールのテキスト描画もGDI+で実装されていましだ、パフォーマンスとロケールの問題で不利になり、GDIで描画するために (False) にすることにした経緯があります。
当時のパフォーマンス差を測定したとき、差があったかどうか忘却したので、再度検証してみました。
(*)記憶に残ってないのは、差がなかったからだと思う。
public partial class Form1 : Form
{
string z = "kkkkkkkkkkkk....................kkkkkkkk";
int Max = 20000;
Stopwatch sw = new Stopwatch();
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
sw.Reset();
sw.Start();
for (int i = 0; i < Max; i++)
{
label1.Text = z;
}
sw.Stop();
label2.Text="所要時間["+ sw.ElapsedMilliseconds.ToString() + "]";
}
}
Application.SetCompatibleTextRenderingDefault(false); //GDIモード
と
Application.SetCompatibleTextRenderingDefault(true); //GDI+モード
で測定したところ、殆ど同じでした。
巷に転がっている情報では「text描画のパフォーマンス向上のため TRUEにする。」となっています。
でも、最近のグラフィック回りが進んだのか、差がでません。なんか説得力に欠けます。
速度以外にどんな不具合があったのが、資料が見つからないので不明ですが、どんな不具合だったのでしょうね。
これと、同時に生成される、
Application.EnableVisualStyles();
も、「Windows XPスタイルの外観に変更する」ためと説明されてますが、XP自体が過去の物になりつつある昨今では、説明力に欠けます。
「XPスタイルの外観」云々自体に意味がなくなりつつありますし、外してみても差を感じませんでした。
この二つの行は、過去の名残として、おまじない扱いとして残り続けるのでしょうか。
Program.csの中を覗くと書かれています。
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
「なんのこと」と質問がありました。
おまじないのように扱われることが多いのですか、理由があっての記述です。
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.application.setcompatibletextrenderingdefault.aspx
FrameWork 1.x時代にGDI+が注目され、コントロールのテキスト描画もGDI+で実装されていましだ、パフォーマンスとロケールの問題で不利になり、GDIで描画するために (False) にすることにした経緯があります。
当時のパフォーマンス差を測定したとき、差があったかどうか忘却したので、再度検証してみました。
(*)記憶に残ってないのは、差がなかったからだと思う。
public partial class Form1 : Form
{
string z = "kkkkkkkkkkkk....................kkkkkkkk";
int Max = 20000;
Stopwatch sw = new Stopwatch();
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
sw.Reset();
sw.Start();
for (int i = 0; i < Max; i++)
{
label1.Text = z;
}
sw.Stop();
label2.Text="所要時間["+ sw.ElapsedMilliseconds.ToString() + "]";
}
}
Application.SetCompatibleTextRenderingDefault(false); //GDIモード
と
Application.SetCompatibleTextRenderingDefault(true); //GDI+モード
で測定したところ、殆ど同じでした。
巷に転がっている情報では「text描画のパフォーマンス向上のため TRUEにする。」となっています。
でも、最近のグラフィック回りが進んだのか、差がでません。なんか説得力に欠けます。
速度以外にどんな不具合があったのが、資料が見つからないので不明ですが、どんな不具合だったのでしょうね。
これと、同時に生成される、
Application.EnableVisualStyles();
も、「Windows XPスタイルの外観に変更する」ためと説明されてますが、XP自体が過去の物になりつつある昨今では、説明力に欠けます。
「XPスタイルの外観」云々自体に意味がなくなりつつありますし、外してみても差を感じませんでした。
この二つの行は、過去の名残として、おまじない扱いとして残り続けるのでしょうか。
2010/07/23
甲類と乙類
徴兵検査では、甲種合格、乙種合格等があって、甲乙丙..は序列語でした。
通知簿も昔は、甲乙丙でした。
以前の酒には、特級酒、一級酒、二級酒がありした。でも、これは品質ではなく、アルコール度数での分類なので、品質と一致していない実態がありました。とは言うものの、階級的に扱われていました。
現在、焼酎に、甲類、乙類という分類があります。
http://www.glico.co.jp/osake/osake_skind01.htm
甲類は 連続式蒸留且つアルコール度数36度未満
乙類は 単式蒸留且つアルコール度数45度以下
の分類です。
36度未満と、45度以下のように、未満と以下の両方が登場するのが、解せないのです。
連続式蒸留で度数40度や、単式蒸留で50度の焼酎は当てはまらないの? なと疑問が残る基準です。
さらに加えて、乙類焼酎のみ「本格焼酎」を名乗ることが許されています。
甲類、乙類は等級ではない。と言いますか「本格」と名乗ることで暗に等級を意識させるキャッチコピーに感じます。
「甲類より劣るものでない」という意味で「本格」を名乗らせているようですが、それが逆に等級を意識させている気がします。
意識の問題でしょうが、序列を意識させない区分名って、見当たらないものですね。
通知簿も昔は、甲乙丙でした。
以前の酒には、特級酒、一級酒、二級酒がありした。でも、これは品質ではなく、アルコール度数での分類なので、品質と一致していない実態がありました。とは言うものの、階級的に扱われていました。
現在、焼酎に、甲類、乙類という分類があります。
http://www.glico.co.jp/osake/osake_skind01.htm
甲類は 連続式蒸留且つアルコール度数36度未満
乙類は 単式蒸留且つアルコール度数45度以下
の分類です。
36度未満と、45度以下のように、未満と以下の両方が登場するのが、解せないのです。
連続式蒸留で度数40度や、単式蒸留で50度の焼酎は当てはまらないの? なと疑問が残る基準です。
さらに加えて、乙類焼酎のみ「本格焼酎」を名乗ることが許されています。
甲類、乙類は等級ではない。と言いますか「本格」と名乗ることで暗に等級を意識させるキャッチコピーに感じます。
「甲類より劣るものでない」という意味で「本格」を名乗らせているようですが、それが逆に等級を意識させている気がします。
意識の問題でしょうが、序列を意識させない区分名って、見当たらないものですね。
2010/07/22
小さすぎて不便
SDカードはMicroSDカードが主流になりました。MSD専用USBアダプターはコネクター部分だけのサイズになってます。
2Gカード + アダプターでも2k\以内で揃います。
安価で手軽なんですが、小さすぎて不便です。。MicroSDカード自体に字を書き込む領域がないので、複数枚のカードを使い分けるとき識別できない。
持ち運ぶとき、小さすぎて、紛失してしまう。何度が紛失しました。
MicroSDカードにストラップを付けることができないです。コネクタ型のUSBアダプターにストラップを付けるとかさばってしまう。
結局、通常のUSBメモリーを持ち運ぶほうが楽だと思ってます。
携帯などで複数のMSDカードを使い分けている人を見ると、どのように識別しているのか興味津々です。(聞けないけれど)
電卓なども、一時、カード型電卓が流行りましたが実用面から、ある程度の大きさをもったサイズが売れているようです。
携帯電話も技術的には、もっと小さくできるのでしょうが、これ以上小さくすると、ボタンが押せなくなるでしようね、
携帯用のミニ人生ゲームやミニ碁盤もありますが、使用感はよくないです。
MP3フレーやーは多々ありますが、小さい機種はどうも使いにくい。一つのボタンに複数の機能をもたせすぎて、操作順序が理解しきれない。
IPod/IPhoneなどのApple製品はよくできていると思うのですよ。この操作性を生み出す力量の差ってどこからくるのでしょうね。「ユーザーの立場に立て」と言うけでは無理でしょう。経験の蓄積の差なんでしょうか。
Appleアプリは作って地獄、使って天国といわれましたが、最近はどうなんでしょうね。
2Gカード + アダプターでも2k\以内で揃います。
安価で手軽なんですが、小さすぎて不便です。。MicroSDカード自体に字を書き込む領域がないので、複数枚のカードを使い分けるとき識別できない。
持ち運ぶとき、小さすぎて、紛失してしまう。何度が紛失しました。
MicroSDカードにストラップを付けることができないです。コネクタ型のUSBアダプターにストラップを付けるとかさばってしまう。
結局、通常のUSBメモリーを持ち運ぶほうが楽だと思ってます。
携帯などで複数のMSDカードを使い分けている人を見ると、どのように識別しているのか興味津々です。(聞けないけれど)
電卓なども、一時、カード型電卓が流行りましたが実用面から、ある程度の大きさをもったサイズが売れているようです。
携帯電話も技術的には、もっと小さくできるのでしょうが、これ以上小さくすると、ボタンが押せなくなるでしようね、
携帯用のミニ人生ゲームやミニ碁盤もありますが、使用感はよくないです。
MP3フレーやーは多々ありますが、小さい機種はどうも使いにくい。一つのボタンに複数の機能をもたせすぎて、操作順序が理解しきれない。
IPod/IPhoneなどのApple製品はよくできていると思うのですよ。この操作性を生み出す力量の差ってどこからくるのでしょうね。「ユーザーの立場に立て」と言うけでは無理でしょう。経験の蓄積の差なんでしょうか。
Appleアプリは作って地獄、使って天国といわれましたが、最近はどうなんでしょうね。
登録:
投稿 (Atom)