閑古鳥

オールドプログラマの日記。プログラミングとか病気(透析)の話とか。

2007-01-01から1年間の記事一覧

複数の配列をひとつのループで処理したい

A, B, Cという配列があって、中に持っているオブジェクトの型が同じである時に、 foreach (HogeType h in A, B, C) { h.do() } みたいな感じで、Aの要素を全部走査したら次はBの要素に……という風にしたい。こういうのをサポートしている言語ってあるんでしょ…

CPenでペン作ろうとしたらコンパイルが通らない罠

黒いペン作ろうとしたらコンパイルエラーに。 CPen pen(PS_SOLID, 1, 0x000000); // オーバーロード関数の呼び出しを解決することができません。 CPenにはコンストラクタが2つあって、 CPen( int nPenStyle, int nWidth, const LOGBRUSH* pLogBrush, int nSt…

別プロセスの実行結果を逐次取得する

非同期でfindstrを実行する文字列検索ツールの作成:CodeZine別プロセス(findstr)の実効結果をリアルタイムにリストボックスに追加するためにデリゲートを使用していますが、これは大げさなような(例として使いやすかったから使っているだけでしょうが)。こ…

連結リストの要素を全て削除する

C++

連結リストを自前で実装したときに、デストラクタがあると要素を全て削除するのが楽でいいですね。 #include <iostream> using namespace std; struct list { char* name; list* next; list(char* name) : name(name), next(0) {} ~list() { cout << name << endl; del</iostream>…

久しぶりのアサマシ - PS3と忌火起草

PLAYSTATION 3(60GB)【メーカー生産終了】出版社/メーカー: ソニー・コンピュータエンタテインメント発売日: 2006/11/11メディア: Video Game クリック: 330回この商品を含むブログ (441件) を見るG:detail]前から気になっていた忌火起草が発売されたという…

FxCop

コーディングスタイルをチェックしてくれるツール。デフォルトではマイクロソフトのガイドラインに沿っていない部分に対して警告を表示してくれるらしい。コーディング規約が形骸化している状態ではこのようなツールの効果も若干落ちるけれど、使用されてい…

VCでSetWindowLongPtrを使用したときの警告の対処法

32ビット環境ではSetWindowLongPtrはSetWindowLongのエイリアスになります。それとは別に、VCのデフォルトでは /Wp64 オプションが有効になっています。これは64ビットOSへの移植性が損なわれる場合に警告を出すと言うもので、 void* p = &p; unsigned long …

C#でLoadLibraryを使用してアンマネージDLLを使用する

C#(.NET)でアンマネージDLLを使用するには、DllImport属性を使用するのが記述量も少なく、面倒なことを考えずに済むので一番楽だと思います。 [DllImport("user32.dll")] private static extern int MessageBox(IntPtr hWnd, string lpText, string lpCaptio…

Launchy

Launchyコマンド入力型のランチャ。見た目が綺麗。指定したフォルダ内にある任意の拡張子のファイルを呼び出せるようで(拡張子は設定で増やせる)、fenrirに近い感じ。fenrirは全てのフォルダ/ファイルのインデックスを作るという違いはありますが。あ、でも…

フィボナッチ数を求めるプログラム

SICP読み始めた記念にHaskellで書いてみました。久しぶりなので非常に苦労しました。 再帰 main = print $ fib 50 fib :: Integer -> Integer fib 0 = 0 fib 1 = 1 fib (n) = fib(n-2) + fib(n-1) 反復 main = print $ fib 50 fib :: Integer -> Integer fib…

フィボナッチ数を求めるプログラム

C++

C++版。g++ 4.0.1でコンパイル。 再帰 #include <iostream> using namespace std; template<int N> struct fib { enum { Value = fib<N-2>::Value + fib<N-1>::Value }; }; template<> struct fib<1> { enum { Value = 1 }; }; template<> struct fib<0> { enum { Value = 0 }; }; int m</n-1></n-2></int></iostream>…

HDDレコーダー購入

容量が尽きかけていていっぱいいっぱいだったので、新しいのを買ってみました。G:detail]実際使ってから気付いたのですが、どうやらアナxアナ(アナログ放送同士)のW録画ができないものらしく、時間が重複しがちな深夜アニメのお供にはちょっと心許ない仕様だ…

More C++ Idioms

C++

More C++ Idioms - Wikibooks, open books for an open world (via C++ Truths: New book on modern C++ idioms)C++のイディオムがまとめられています。Scope Guardとか聞いた事があるものもありますが、知らないのも結構あるっぽい。Named Parameterとかは…

for each

すげー怪っしい. #include <vector>int main() { std::vector<int> v; for (int i = 0; i < 10; i++) v.push_back(i); int sum = 0; for each (int x in v) sum += x; printf("sum=%d\n", sum); } http://homepage1.nifty.com/herumi/diary/0708.html なんだこれ、と思っ</int></vector>…

利用しているサービスまとめ

自分が利用しているWebサービスが増えてきたのでまとめてみる。ここの他にこんなのもやってます、ということで。 ベイダー日記 ここ ましまろ日記 - vaderグループ 元々ここで書いてた下らない内容の日記を分離したもの mixi こっちも適当に日記 はてなブッ…

はてなスターTシャツ欲しい!

はてなスターTシャツ欲しい!星は適当に付けてたと思うので応募条件は満たしているはず。

演算子の優先順位

if (hoge || foo && bar) { // ... } &&演算子の方が優先度が高いため、上記のコードは if (hoge || (foo && bar)) { // ... } と解釈されるが、自分の脳内ではなぜか if ((hoge || foo) && bar) { // ... } となっていたためにしょぼいバグを生んでいた。欝…

Skylight (Quicksilver ライクなランチャ)

Launch apps, documents, bookmarks - Skylight Launcher (via New Quicksilver for Windows app Skylight looks very promising)Mac にはQuicksilverという素晴らしいランチャがあるのですが、それに似たWindows用のランチャがLifehackerで紹介されていたの…

久々に技術書を買いました

Code Quality ~コードリーディングによる非機能特性の識別技法~作者: Diomidis Spinellis,平林俊一,まつもとゆきひろ,後藤正徳,鵜飼文敏,トップスタジオ出版社/メーカー: 毎日コミュニケーションズ発売日: 2007/05/22メディア: 単行本(ソフトカバー) クリ…

??演算子

C#

やばい今始めて知った。 return hoge != null ? hoge : foo; みたいなコードをResharperが強調していて、見ると「??演算子を使うといいよ」などと仰る。試しにQuick Fixしてみると以下のようなコードになった。 return hoge ?? foo; プログラミングMicrosoft…

コーディングスタイル

ブレース前後に改行を入れるとか入れないとか色々ありますが、最近はソースを30分くらい見ているとそれに慣れてしまって、その書き方が普通になってしまうのでコーディングスタイルが自分と違う人の書いたソースを読むのもあまり気にならなくなってきました…

あわせて読みたい

この日記を読んでいる人が他にどんな日記/ブログを読んでいるかを調べられるそうな。試しにやってみました。エントリに貼る形だとしばらくすると消えてしまいますが、こちらは最近更新頻度が落ちているのでしばらくは有効でしょう。

C++-0x

C++

Update on the C++-0x Language Standard - Visual C++ Team Blog - Site Home - MSDN Blogs なんか更新されたらしい。Variadic TemplatesとかSUGEEEEE! と思ったけど数ヶ月前から話題になってたんですね。最近C#ばかり触っていたので全然知りませんでした。…

開発の現場 Vol.006

開発の現場 vol.006作者: SE編集部出版社/メーカー: 翔泳社発売日: 2006/10/13メディア: 大型本 クリック: 12回この商品を含むブログ (10件) を見るWordに関する記事が面白かったです。スタイル機能は、存在は知っていたもののちゃんと意識して使ったことは…

Rainlendar2

Rainlendar (via. Download of the Day: Rainlendar (Windows/Linux)Windowsで動作するカレンダー。見た目がとても綺麗で、TODOやEventの管理ができる。Google Calenderなどと同期ができるということでフリー版をインストールしてみましたが、どうやら他のカ…

雨格子の館

雨格子の館出版社/メーカー: 日本一ソフトウェア発売日: 2007/03/08メディア: Video Game クリック: 12回この商品を含むブログ (50件) を見る FOGの新作が出てるらしいとのことで買ってみました。と言ってもFOGのゲームなんて数年ぶりですが。脱出不能の山奥…

redMineをインストールしてみました

RedirectionSVNをブラウザ上で見たりバグトラッキングなどができるようで、tracのようなIssue管理ツール。面白そうなので昼休みにインストールしてみました。 Ruby/Ruby on Railsのインストール 10分で作るRailsアプリ インストール編を参考にActive Script …

ReSharperの機能解説

ReSharperの機能をひとつひとつ解説しているブログ。結構知らない機能が多いなあ。難点は日本語版のVisual Studioだとショートカットキーが利かないらしく、書いてある通りに動かせないものがあるという点か。メニューから出せるものならいいんだけれど、Alt…

イミディエイト ウィンドウでログ出力

デバッグ中、イミディエイトウィンドウから他のメソッドを呼び出すことができるようです(まあ普通にできるか……)。これを見て、任意の値をファイルに出力させることができるんじゃないかと思って試してみました。まず、以下のようなメソッドを用意します。 pu…