ラベル プログラミング の投稿を表示しています。 すべての投稿を表示
ラベル プログラミング の投稿を表示しています。 すべての投稿を表示

2008年10月28日火曜日

Colorsクラスの色見本

.NET Framework クラス ライブラリ
Colors クラス
http://msdn.microsoft.com/ja-jp/library/system.windows.media.colors.aspx

Webだと実際に近い色で見本が見れるので便利っす。

2008年10月17日金曜日

XMLコメントで推奨されるタグ

しょっちゅう忘れてしまうのでメモ。

ドキュメント コメント用の推奨タグ (C# プログラミング ガイド)
http://msdn.microsoft.com/ja-jp/library/5ast78ax(VS.80).aspx

…VS2005から改行できないなんてヒドス。

2008年10月10日金曜日

この辺とかも使えないかな。

ネットワークプログラミングは、ほぼ未経験なので苦労してまふ。
移動体通信端末パケットの解析とかはよくやってたんだけどねぇ…。
理屈だけ知っててもプログラミングできませんし。はぅ。

引き続き、IPv6の場合はどーするのよ?の関連で。

.NET Framework 2.0 コア機能解説
~ 第 8 回 ネットワーク機能の強化 ~
http://www.microsoft.com/japan/msdn/netframework/skillup/core/article8.aspx

NetworkInterfaceから情報を取る話。
.NET Framework 2.0 の情報なので、形式が古いかもしれないけど参考程度に。


10 行でズバリ !! モバイル向けリッチ クライアントの開発 (C#)
http://www.microsoft.com/japan/msdn/thisweek/10lines/vs2005/mobile_clientapp/cs.aspx

こっちは.NET Compact Frameworkの話。
Compact Frameworkの情報なので、.NET3.5では使えないかもしれないけど以下同文。


明日の午前中には何とか修正を終わらせて動くものを出さにゃ…。
がんばろ。

2008年10月9日木曜日

IPv6の場合はどーするのよ?

仕事で必要な情報を探してたら2chの過去ログしかなかった;
消えちゃうとイヤなのでメモ。

 VB.NET質問スレ(Part26) より

256 :デフォルトの名無しさん:2008/06/24(火) 09:55:50
.Net2005で、IPアドレスを取得するのに、
GetHostByAddressを使用しているのですが、
OSがXPだとIPv4のアドレスを返すのですが、
VISTAだとIPv6の形式?でアドレスを返してきます。

XPでもVISTAでもIPv4のアドレスを取得するには
どうすればよいのでしょゆか?

257 :デフォルトの名無しさん:2008/06/24(火) 10:17:23
GetHostEntry

258 :256:2008/06/24(火) 13:13:46
>>257
できないです・・・

プロパティが違うのでしょうか・・・?

259 :デフォルトの名無しさん:2008/06/24(火) 13:38:47
AddressListの中はIPv6のアドレスしか入ってないって事?

260 :256:2008/06/24(火) 14:05:53
>>259
ありました。。。

XPだとAddressList(0)に入ってて、
VISTAだとAddressList(2)にありました。

これは環境によって入ってる場所が
違うということでしょうか・・・?
とりあえず取得はできましたが、

まんどくさすぐるwww


一発で取得する方法は無いのでしょうか・・・?

261 : [―{}@{}@{}-] デフォルトの名無しさん:2008/06/24(火) 14:28:35
>>260
クラス化するとか
痒い所は自分で掻けよ

262 :256:2008/06/24(火) 15:11:48
素直にクラス化しますw
VISTAってだるいですな。

いろいろありがとうございました。

263 :デフォルトの名無しさん:2008/06/24(火) 15:59:51
XPだってIPv6インストールしてりゃ似たようなもんなのにな

264 :デフォルトの名無しさん:2008/06/24(火) 16:23:26
XP C:\>ipv6 install


これでよし。

なんだか場当たり的ではあるよなぁ…。本来の解決方法求ム。

2008年7月24日木曜日

codepad

codepad(http://codepad.org/)なるものを知りました。

試しに、
http://s-kic.blogspot.com/2007/05/fizzbuzz.html
にある、FizzBuzzのコードを入力。

実行結果は以下の通り。
http://codepad.org/GbaAf8vn

扱える言語も、C、C++、D、Haskell、PHP、Perl、Python、Ruby、Scheme、Tcl 等ありますので、ブログ内にコードを埋め込みたい場合などにヨサゲです。

因みに、D言語のstd.windows等、GUI依存の部分まではカバーしていないみたいです…。
残念。

VC++6.0 エディタのショートカットキー一覧

まだまだ業務では健在なVC++6.0…。
エディタ部分のショートカットは意外と使ってないですね。

テキスト操作のショートカット キー
(Visual C++ 6.0 の既定のショートカット オプション)
http://msdn.microsoft.com/ja-jp/library/s033ke41.aspx

上記はあくまでデフォルト設定の場合です。
カスタマイズしちゃうのが一番手っ取り早いのかもしれませんが;

2008年7月7日月曜日

hxsというヘルプファイルをVisualStudioから閲覧する

hxsというヘルプファイルを閲覧する方法を質問されたのでメモ。

拡張子 .HxC .hxt .hxk .hxs などのヘルプが見られない
http://moxi.jp/wiki/wiki.cgi?page=%B3%C8%C4%A5%BB%D2+.HxC+.hxt+.hxk+.hxs+%A4%CA%A4%C9%A4%CE%A5%D8%A5%EB%A5%D7%A4%AC%B8%AB%A4%E9%A4%EC%A4%CA%A4%A4

上記のWikiでは、VS2003 と VS2005での方法のみですが、VS2008の場合は、以下のURLで同様にVSCCの管理ページを開き、VSCCファイルの再構築をすることで、VisualStudio 2008からお望みのヘルプが閲覧できるようになります。

ms-help://MS.VSCC.v90/dv_vscccommon/local/CollectionManager.htm

2008年6月19日木曜日

VisualStudioでのデバッグ時に指定の条件のみでブレークする

忘れちゃいそうなのでメモ。

ブレークポイントに条件をつけることで、指定の条件のみでブレークができるというお話。

デバッグの基礎 : ブレークポイント
http://msdn.microsoft.com/ja-jp/library/4607yxb0(VS.80).aspx

今まで知らなんだ…。
ちゃんとMSDNを端から読まないといかんね。

2007年7月2日月曜日

ITSS調査をやってみた

今日のは備忘録的な物です。いつもか。

ITエンジニア・組込みエンジニア スキル調査2007
http://coin.nikkeibp.co.jp/coin/nc/isrf/07chousa/1/

とりあえず、以下の職種でやってみました。
携帯組み込みが長かったんで、ミドルウェア系のデベロッパでも良かったんですが、将来の指標にする為に、これから進みたいジャンルでの挑戦です。

結果は以下の通り。

職種 : アプリケーションスペシャリスト
専門分野 : 業務システム
あなたのスキルレベル : Lv.3.9

うがっ!低っ!!

職種別順位 : 818位相当(9,218人中)

職種・年代別順位 : 137位相当(4,065人中)

…とか思ったら、年齢別平均値は Lv.2.3 だそうな。
自分は短大卒で2年早く足を突っ込んでるから、経験年数からして平均的なんだろうなー、良かったー…とか思ってみたり。
下を見ちゃいけませんね。反省。

で、このテスト結果で示された、今の自分に足りないスキルは…
職種共通スキル
  • 業務分析
  • テクノロジ
  • デザイン
  • コンサルティング技法の活用
  • ネゴシエーション
専門分野固有スキル
  • 汎用業務システム構築(人事・会計・総務等)
うーん。思いっきり上流工程の経験が少ないのがバレバレです。

さらに、将来やりたい分野についての結果。無謀にも、
 将来希望職種 :プロジェクトマネジメント
 将来希望専門分野:システム開発
にしてみました。
・イノベイティブ・アクション
革新性と創造性をもって物事にあたり、周囲を巻き込みながら変革を実現する力

・リスクマネジメント
目標達成に向け計画を立て、不測の事態にも対応しながら、着実に実行する力

・ イノベイティブ・アクション(あなたの現状) → (アドバイス)
 充実度:高 … 継続して磨きをかけましょう
このスキルは「革新性と創造性をもって物事に取り組み周囲を巻き込みながら変革を成し遂げる」力や姿勢を意味します。あなたはこのスキル要素のひとつである「斬新なアイデアを分かりやすくまとめて説明する」力に優れ、周囲を主導できると思われます。
今後も“プロジェクトや組織全体の将来構想について、役員に意見を具申したり、提案する”などを実践し、現状に満足せず高いレベルを維持してください。

・ リスクマネジメント(あなたの現状) → (アドバイス)
 充実度:高…継続して磨きをかけましょう
このスキルは「目標達成に向け計画を立て、不測の事態に対応しながら、着実に実行する」力や姿勢を意味します。あなたはこのスキル要素のひとつである「周到に準備をし、問題発生時のリスク回避に備える」姿勢に優れ、周囲を主導できると思われます。
今後も“現時点でうまくいっているように見える時に、潜在するリスクをリーダーに進言する”などを実践し、現状に満足せず高いレベルを維持してください。

とりあえず、ウチの会社は将来ITSSを考査に入れると言ってますし(実現するかどうかはともかく)、どんな感じの基準かってことを知っておく意味でも、一度やってみておいた方がいいかもしれません…。
今なら期間限定で無料ですしね。

30分くらいで終わるので、皆様も暇な時間にどーぞ。

2007年6月7日木曜日

XPJUGユーザ会初参加

ちょっと前の話になってしまいますが、5月30日に講習の一環(?)として、初めてXPJUGのユーザ会に出てきました。
XPJUGユーザ会の内容は以下のような感じです(案内メールより抜粋)

第17回XPJUGユーザ会
~XP入門 - 朝会とペアプロではじめるXP~

第17回となる今回のユーザ会では、原点にふりかえって、XPの基本をもう一度おさえよう!・・・と言うことで、「朝会」と「ペアプログラミング」をテーマに開催します。

今回は、ワールドカフェ(*1)というディスカッションのスタイルを少しアレンジして、最初に講演があり、その後に、5~6人に分かれてのディスカッションという形で行います。

*1.ワールドカフェ
http://www.objectclub.jp/ml-arch/magazine/121.html


ワールドカフェでは、共用メモスペースとして、A2版くらいの紙と、ゲルマーカーを用意してくれていました。初めてゲルマーカを使ったのですが、緩いクレヨンみたいなタッチの虜です。あの「むにゅーん」という書き味がタマラナイ。

しかも、何も語らずとも、参加者各々から、自然にマインドマップが描かれていくのは感動モノでした。既にXPのプラクティスを実践していて、マインドマップをガシガシと描く人達ばかりとのワールドカフェは、物凄く楽しかったです。
#あ、なんか今、とっても共有してるーみたいな感じで(笑)

「朝会」の講演はリズミカルな音楽にのせたパワーポイントのスライドに、演者の主張を入り混ぜた形で行われ、飽きのこない構成でした。
『プレゼンテーションも、朝会も、大事なのは“リズム”』という主張が印象深く残っています。

「ペアプロ」の講演は劇団XP(ぺけぴー)の十八番である、コント風な寸劇を通して、ペアプログラミングにおけるポイントを学ぶものでした。
注意点とアンチパターン(駄目なケース)との比較をメインに進行するので、『良いところと悪いところの双方が楽しく学べる』という利点づくしの講演です。

一度参加してみると、講習会=退屈 …なーんて図式は吹っ飛びます。

本当は、ユーザ会の後に開催される懇親会にも出たかったのですが、翌日が出張のため断念…(T_T)

次回もタイミングが合えば、出席してきたいと思います。
『できるとこからXP』の精神でがんばるぞー。

2007年5月16日水曜日

FizzBuzzまとめ

さて、5月の連休明けあたりから、巷で話題だったFizzBuzz問題ですが、自分も例に漏れず参加しておりました。本日はそれらのマトメです。

「どこで参加してたんだよ!」とツッコミを入れたくなるほど、BLOGの更新が滞っていたわけですが、他所のBLOGにコメントしてたりはするんですよねぇ…。
責任の重さの違いってとこでしょうか(ぉぃ;

自分は、へっぽこSE雑談記さんのエントリ FizzBuzz
http://blog.goo.ne.jp/yamaryu1972/e/44e38f297324893b4f1271ad19870d41
のコメントで、何ともセンスの無いコードをさらしていますが、実はこれ、剰余使用版の元ネタがあったので、実質30秒強 という時間で作成できてます(^^;

まず、剰余を使用するバージョン。
一行で書くとすればこんな感じですか。

for(int i=1; i<=100; ++i)
printf( i%15==0 ? "FizzBuzz\n" : i%3==0 ? "Fizz\n" :
i%5==0 ? "Buzz\n" : "%d\n", i );

ただ、自分は、選択肢が3つ以上あり、これからも選択肢が増えることが懸念されるような場合、三項演算子は使わない主義を貫いております。

よって、瞬間的に頭に浮かぶコードは、必然的にこんな風に。

for(int cnt=1; cnt <=100; cnt++)
{
if(!(cnt%3==0 || cnt%5==5)) printf("%d", cnt);
if(cnt%3==0) printf("Fizz");
if(cnt%5==5) printf("Buzz");
printf("\n")
}

これをベースにすると「剰余を使用しないバージョン」を作る場合は…
…もう楽チンですよね。
次のような感じで、「剰余を使わずに、倍数を判定する方法」のみを考えればOKです。
  1. 各条件毎にカウンタを用意して、ループカウンタと同じタイミングでインクリメントする。

  2. 3の倍数はカウンタの数値が3つおきに出現するので、条件カウンタが3になった場合が3の倍数と判断する。条件にカウンタが合致した場合、"Fizz"を出力し、カウンタのクリア処理を行う。

  3. 5の倍数の場合も同様に判定するものとする。

  4. 剰余を使用するバージョンの条件式を上記の条件式と置き換え、条件カウンタのクリア処理をそれぞれ追加する。

そーすると、以下のようなコードになります。

int cnt=1, fizzCnt=1, buzzCnt=1;
for(; cnt <=100; cnt++, fizzCnt++, buzzCnt++)
{
if(!(fizzCnt==3 || buzzCnt==5)) printf("%d", cnt);
if(fizzCnt==3) printf("Fizz"), fizzCnt = 0;
if(buzzCnt==5) printf("Buzz"), buzzCnt = 0;
printf("\n")
}
とりあえず、処理速度軽視、可読性重視、センス無視ってことで(^^;

この手の問題は個人の好みやコーディングスタイルが反映されるので面白いですね。
はてなブックマークから辿ってみると、色々な言語やスタイルが見れて興味深いです。

2007年4月2日月曜日

エイプリルフールの楽しみ

さて、昨日はエイプリルフール。
今年もだまされることなく無事過ごせました。よかよか。

エイプリルフールの楽しみの一つは、毎年この日に発行されるRFCですね。
2001年のRFC3092『Etymology of "Foo"(「foo」の語源)』は秀逸でした

今年はRFC4824『The Transmission of IP Datagrams over the Semaphore Flag Signaling System (SFSS)』だそうです。つまり、『手旗信号によるIPデータグラムの送信』ですな。

早速、RFC4824の日本語訳が出ていました↓
ジョークRFC
http://www.imasy.or.jp/~yotti/rfc-joke.html

Figure 4: IP-SFS Control Signals. の Error 表記で爆笑してしまいました。完敗です。これをプログラムするとしたら、やっぱ手旗信号の画像解析からですか(^^;

組織でこういった事がやれるってのは、余裕があるってことですよね。
…イイですなぁ。エイプリルフール万歳(違)


真面目なRFCを探している方はこちらもどうぞ↓
RFC日本語版リスト
http://www5d.biglobe.ne.jp/~stssk/rfcjlist.html

2007年2月28日水曜日

インスタンス破棄の方法

今日(もう昨日か)、業務で既存のコードを改造してて、ちょっと現実装に疑問を持ったのでメモ。ちなみに言語はC++。

以下のようなSingltonパターンで実装されたクラスがあったとします。
#元ネタは私が設計したクラスじゃないので質疑は却下。

class SmplCls
{
public:
  virtual ~SmplCls();
  static SmplCls* instance ();
  static void release ();

protected:
  SmplCls();

private:
  SmplCls(const SmplCls &right);
  SmplCls & operator=(const SmplCls &right);
  static SmplCls* m_SmplCls;
}

// インスタンス生成
SmplCls* SmplCls::instance()
{
  if (m_SmplCls == 0)
  {
    m_SmplCls = new SmplCls();
  }
  return m_SmplCls;
}

// インスタンス破棄
void SmplCls::release()
{
  if (m_SmplCls != 0)
  {
    delete m_SmplCls;
    m_SmplCls = 0;
  }
}

他のクラスからインスタンスを取得したいときは

  SmplCls::instance();

で良いとして、インスタンス破棄の際に

  SmplCls::instance()->release();

ってゆーのはアリなんだろうか?
取得したインスタンスからコールしたメソッド内で、インスタンスを破棄って…
最悪エラーになったりしないの???
#自分はてっきり「SmplCls::release();」の様に使用されてると思ってました;

上記クラスをコールするよう実装したら、デバッグ中断でエラーログ吐きまくるんで、物凄く気になってます。

…誰か助言くださいまし。お願いします(T_T)

2007年2月9日金曜日

ポリモフィズムの解釈

とあるSNSの掲示板で、ポリモフィズム(多態性)の説明に、オーバーロード、オーバーライドの例を用いてることについて、どっちが正しいのか?的話題があったので、自分の考えをまとめてみることにしました。

掲示板のやり取りを見ている限りでは、ある投稿者のコメントにあった、「ポリモフィズムとオーバーロード、オーバライドを無理に絡めようとして考えるから混乱している」の説に一票! …に同意という感じの議論になってまして(どんなだ;)、個々の話している単語についての意味がかみ合ってないように感じます。


自分は、ポリモフィズムは「概念」、オーバーロード、オーバライドは、ポリモフィズムを実現する為の「手法」という認識で、元々違う次元のものだと思ってます。

 ポリモフィズムという概念を、各言語でどのように実現しているか?

ということを説明する例として、オーバーロード、オーバライドが、よく挙げられているだけのことじゃないかなぁ、と。

また、この手の話をする時は、ポリモフィズム の明確な定義を共通認識にしておく必要がありますね。
手っ取り早く、Wikipediaより ポリモーフィズムの項を抜粋すると…

主にオブジェクト指向プログラミングで、あるオブジェクトへの操作が呼び出し側(sender)ではなく、受け手のオブジェクト(receiver)によって定まる特性のこと。

とあります。
この↑説明だと、オーバーロードが、ポリモフィズムを実現しているかどうかは、微妙かもしれません。
各言語のオーバーロードの実装方法によるのかな?


何か自分も書いていて混乱してきました。
結局は、ポリモフィズム実装の例として、オーバーロードもオーバーライドも、両方説明しておくのが良いんじゃないかというのが私の結論です。

とりあえず、私自身、まだオブジェクト指向絡みの本を読んだことがないので(ぉぃ;) 憂鬱本でも読んだ後に、またポリモフィズムの考えについては纏めたいと思います(^^;;;

2007年1月24日水曜日

Mash up Award 2nd

リクルートとサン・マイクロシステムズが「マッシュアップ」のコンテストを開催
http://itpro.nikkeibp.co.jp/article/NEWS/20070123/259350/

どうやら2回目もやるようですね。
簡単に言うと、いろいろなAPIをマッシュアップ(混ぜ合わす)して、新たなWebサービスを作ろう!というコンテストです。サンとリクルートで共同開催されます。

ちなみに上のURLは日経BPの記事です。
本家のURLはこちら↓

サン・マイクロシステムズ:
 http://jp.sun.com/mashupaward/

リクルート:
 http://bic.recruit.co.jp/mashupaward/


折角だから、応募するしないは別として何か作ってみようかなぁ。
どれ、応募条件にある、面白そうなAPIは…

 ・RailGo
 ・ぽすたん
 ・PlaceEngine API(WinXP、W-ZERO3用のみ)
 ・ネットプリント・サービス連携インターフェイス
 ・じゃらんWebサービス
 ・ホットペッパー Webサービス

くらいか。

作るのは、携帯から使える、見知らぬ土地での食事処、宿、最寄り駅、帰り道検索の支援…とかが理想ですね。
#とゆーか、単に自分で使いたいサービスです。出張のお供とかに。

だけど、この手のサービスを携帯から使うときって、現在いる位置を簡単に取得できないと厳しいよねぇ。
何かいい方法はないのかな…。
PHSだと、位置情報サーチ機能が既にあるんで、それのみなら取れそうな気もするんだけど。

もう少し、ちゃんと考えてみる必要がありそうですな。

2007年1月16日火曜日

D言語 Lv. Hello, World.(改)

以下、書き直した動作確認用の簡易コードです。
昨日と同じくWindows XP Pro上で確認。

 import std.c.windows.windows;
 import std.windows.charset;
 void main()
 {    
    MessageBoxA( null,
     toMBSz("日本語の扱いは要注意!"),
     toMBSz("注意!!"),
     MB_ICONEXCLAMATION );
 }

とりあえずパッケージを置き換えてみただけです(^^;
ちゃんと推奨されているほうを使いましょう…ってことで。

D言語 toMBSzメソッド

昨日の宿題事項 std.file.toMBSz について調べてみました。

char* toMBSz(char[] s);
Win9x は "W" API をサポートしないため、まず文字列を
wchar に変換してから現在のコードページに従い
マルチバイト文字列に変換します。 (yaneuraoに感謝)

Deprecated:

変わりに std.windows.charset.toMBSz の仕様が
推奨されています

そっか…こっちは古い仕様だったのね。
で、std.windows.charset.toMBSz を見てみると…

char* toMBSz(char[] s, uint codePage = cast(uint)0);
UTF-8 文字列 s を null終端の Windows 8-bit 文字セットに
変換します。

Params:
char[] s 変換元の UTF-8 文字列
uint codePage 変換先のコードページ番号か、0 - ANSI, 1 - OEM, 2 - Mac

Authors:
yaneurao, Walter Bright, Stewart Gordon


…引数が追加されてる。コードページが指定できるのか。
ちなみに、上記関数の元となっている情報はコチラ↓

D言語研究室 文字コードにまつわるエトセトラ
http://www.sun-inet.or.jp/~yaneurao/dlang/Chapter-07.html

帰ったら早速、昨日のコードの書き直しじゃーっ。

…え、今?


仕事中ですが何か?(ぉぃ;

2007年1月15日月曜日

D言語 Lv. Hello, World.

本日は病み上がり最初の出勤でございました。
業務のほうは1週間空けた穴埋めをするので手一杯…まだまだ本調子じゃないですね;

最近、プライベートではD言語をいじり始めています。
習熟度はまだ「Hello, World」レベルですが(^^;

D言語で日本語を扱う時は、
 ・文字コードはUTF-8にする
…というところまでは調べていたので、今日は仕事の片手間に、『Windowsアプリで日本語を使う際の簡単な方法』を探して、Web上を検索してみました。
#タブブラウザ万歳。後ろから見たらバレバレだろうけど(^^;

以下のページがヒットしましたので、覚書として。

bbpink近況: D言語遊び2 より
http://sevensenses.oops.jp/bbpink/2006/05/d2.html
日本語を扱うキーワードは以下の2つ。
 ・std.file をimport
 ・std.fileパッケージのtoMBSzメソッドを使用

  (マルチバイト文字列変換メソッド?後で仕様書調べておくこと)


以下、動作確認用の簡易コードです。Windows XP Pro上で確認しました。

 import std.c.windows.windows;
 import std.file;
 void main()
 {    
    MessageBoxA( null,
     toMBSz("日本語の扱いは要注意!"),
     toMBSz("注意!!"),
     MB_ICONEXCLAMATION );
 }

実行結果は画像のとおり。


これでやっと「Hello, World」レベルから脱却できます。やれやれ。

2007年1月6日土曜日

D言語 ver.1.0 Release

待望(?)のD言語1.0が、1月2日(米国時間)にリリースされたそうです。

スラッシュドット ジャパン:
 D言語1.0リリース

MYCOMジャーナル:
 
プログラミング言語"D"、待望のバージョン1.0登場

※D言語って何よ?って人はコチラをドゾー。

ずっとベータ版だったので、存在をすっかり忘れてました(^^;
ちゃんと約束どおりに2007年正月リリースになりましたねー。流石だわ。

実は、正月休みは溜まってたゲーム三昧だったんで、PC入れ替えてからまだ何もコンパイラ入れてないんだよねぇ…。
# 似非とはいえ、それはプログラマとしてどうよ;

個人的には弄ってみたい言語なんで、ウチの会社でD言語同好会とか作れないかなぁ。
「純粋に趣味で弄り回したいっ」てのが何人か居ても良さそうなもんだと思うが。

今度の帰社時に声かけしてみるか~。