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

友人が…

vim

Vimに興味を持ちだしてきた。 いかにして洗脳しよう。以前、他の友人が興味を持ち始めたときは洗脳に失敗したので、今回は慎重にいかねば。

c#的Singleton

c#

下記のようにすればOKらしい。 class Singleton{ Singleton instance = new Singleton(); private Singleton(){ System.Console.Write("constructor."); } public Singleton getInstance(){ return instance; } }

[c++][boost] Boost C++ Libraries プログラミング 第2版 ちょっと前に、第一版を買ったのだけど、どうやら第2版が最近出てた模様。 ショック! http://www.shuwasystem.co.jp/cgi-bin/detail.cgi?isbn=978-4-7980-1704-4

formの位置を変える方法

最近、趣味でC#を書いてます。 MyForm f = new MyForm(); f.Left = 100; f.Top = 100; などというようにすれば良いとネットで見かけたんだけど、どうもうまくいかない。 いろいろ調べると、どうやらStartPositionというプロパティを変更しなくてはならないら…

VimでIDEっぽい、ソースツリーを作ることができるプラグインproject.vimを使ってみた。苦手な英語のマニュアルを見て、四苦八苦しながら。 まだ、あまり使ってないけど、これは便利そう。エディタ論争時に、peggy使いと出会った時にも有効w

コードを、Vimで編集してるときの見た目のまんまhtmlに

vim

:TOhtmlだけでOK。こんな便利機能知らんかったー! びっくりした! はてなDiaryにコード載っけるときはいいんだけど、それ以外の時になんかいいのないかなーっと思っていたんで、非常に嬉しいです。最近、友人と、秀丸 VS Vim、どっちが便利か対決をしてい…

文字数をカウントするには?

vim

範囲指定して、 :'s/./&/g すると、文字数をみることができます。 けど、これだとマッチングしたところ(つまり全ての文字)がハイライトされるのがうざいなぁ。

右クリック「送る」に登録するには

C:\Documents and Settings\(ユーザー名)\SendTo にショートカットなどを置けばOK。 やっと「30日でできる!OS自作入門」3日目を読んだ。 いつ読み終わるんだorz

「30日でできる!OS自作入門」2日目を読む

1日目で作ったhelloosを、もっと見やすいコードにしたり、Makefileを用意したり。 あとは、レジスタの説明とか。 それにしてもこの本、すごい丁寧。あと、著者の腰の低さが好印象。あまり深い説明はないのですが、レジスタとかMakefileとか、よく知らなかっ…

Ctrl + h

Ctrl + hでBS代わりになるとは、知らなんだ!手がちいさくてBSまで小指を伸ばそうとすると手がつりそうになる僕としては、これは便利!あとESCも遠いからCtrl + [ にしようかなぁ。日本語キーボードだと、[とESCの距離あんま変わらんけど。

「30日でできる!OS自作入門」読み始め

自分は、プログラマーとしての基礎が全然なってない! ↓ んじゃー、まずは、コンピューターのことを知ろう! ↓ それには、自分でOSを作ってみるのが一番だ! ↓ っていうか、なにより「30日でできる!OS自作入門」買ったけど読んでなかった。というわけで「3…

テンプレート引数、typenameとclassの違いはある?

「Modern C++ Design」によると、基本的に違いはないらしい。ただ、規約では(何の規約かはよくわからないが…)、typenameは、intのようなプリミティブ型が渡されると期待されるものに対して使い、classはユーザ定義型が渡されると期待されるものに対して使わ…

ポリシークラスってなんぞや?〜その6〜

というわけで、ざっくりまとめると、多重継承とテンプレートを組み合わせることによって、とてつもない柔軟性をもったライブラリを作ることが可能なんだと。それの構成要素としてポリシーってものを定義する。 ってことなんだと思います。続きの1章1.5節…

ポリシークラスってなんぞや?〜その5〜

1章1.4節 テンプレートが希望の光を投げる(残り) ここで、多重継承の欠点と、テンプレートの欠点を見直すと、お互い相補的な関係にあることがわかる(らしい)。 多重継承にはメカニズムがないが、テンプレートには豊富なメカニズムがある 多重継承では、…

ポリシークラスってなんぞや?〜その5〜

1章1.4節 テンプレートが希望の光を投げる(後半) というわけで、テンプレートを使った際の問題点ですが、 構造を特殊化することはできません。 メンバ関数の特殊化はスケーラビリティがありません。 ライブラリの開発者は複数のデフォルト値を提供できま…

ポリシークラスってなんぞや?〜その4〜

テンプレートが希望の光を投げる んでは、テンプレートを使ったらどうか? テンプレートは、ユーザが提供した型に基づいて、コンパイル時点でコードを生成するため、 組み合わせによる様々な動作に対応するための良い素材となります。うんうん。たしかに、テ…

ポリシークラスってなんぞや?〜その3〜

1章 1.3 多重継承で解決できるのか? 多重継承によって、選択の組み合わせの爆発的な増加に対応するという手が考えられます。 例えば、Temporaryクラスと、Secretaryクラスを継承してTemporarySecretaryを作ったり、BaseSmartPtrと、RefCountedと、MultiThre…

ポリシークラスってなんぞや?〜その2〜

1章 1.2 何でもやっちゃえインターフェースの失敗(後半) 異なった設計ごとに小さなクラスを用意してみたら?の失敗 例えば、スマートポインタの場合、SingleThreadSmartPtr、MultiThreadedSmartPtr、RefCountedSmartPtr、RefLinkedSmartPtrといって一連の…

ポリシークラスってなんぞや?〜その1〜

「Modern C++ Design」を、わからないなりにとりあえずガーッと読んだ。 けど、ほんと分からん。 とりあえず、ポリシークラスの考えが、わかったようで分かってないので、1つ1つ確認してみることに。 1章 1.2 何でもやっちゃえインターフェースの失敗 クラ…

部分配列で、その和が最大になるものを求める〜その4〜

最後に、走査アルゴリズムというのを実装してみました。 例によって詳細は「珠玉のプログラミング」に載っているのですが、簡単に説明すると、x[0...n]までの部分配列の最大和は、x[0...n-1]の部分配列の最大和か、x[n]から左方向に伸びた配列の和のいずれか…

部分配列で、その和が最大になるものを求める〜その2その3〜

昨日のアルゴリズムからループ一つ減らしたもの。 #include <iostream> #include <boost/random.hpp> #include "autoStopWatch.h" using namespace std; using namespace boost; const int ARRAY_LENGTH = 10000; float x[ARRAY_LENGTH]; //部分和を総当たりで調べて、和の最大を求める関</boost/random.hpp></iostream>…

部分配列で、その和が最大になるものを求める〜その1〜

珠玉のプログラミングで取り上げられていた問題を、実際に解いてみる。問題: 1次元のパターン認識の問題。n要素の浮動小数点の配列xを入力とし、配列xの連続した要素(部分配列)でその和が最大になるものを見つけて、その和を出力する。たとえば、 2,-3…

Hoge* a, b, c;って書いちゃ駄目

c c++

これだとaのみポインタになってしまう。この歳になっても、意外と、やってしまう。a,b,c全てをポインタとして扱いたい場合は、Hoge *a, *b, *c;

二分探索

c c++

二分探索は意外と難しいと『珠玉のプログラミング』に書いていたので、実際書いてみました。 #include <iostream> using namespace std; int sorted_array[10] = { //テスト用に適当なソート済みデータをでっちあげ -1,0,1,2,3,4,5,6,7,8 }; struct BinarySearchError{</iostream>…

gccで最適化したくない時

gcc

-O0オプションでOK。

アジア・太平洋のIPを割り振っている団体はどこ?

たぶんAPNICという非営利団体。

IPv6は何bit?

IPv4が32bitだから、IPv6は48bitと思われがち(僕だけ?)だけど、実はIPv6は128bitです。 単純計算だと、3.4 × 100000000000000000000000000000000000000 個のアドレスが割り当て可能です。ちなみに、128bitだと表記するのも大変なので16bitごとに16進数で …

IPv4の枯渇問題について

IPv4の枯渇問題について調べてみた。どうやら、ネットを徘徊して調べた結果、枯渇すると行っているものの、実は全世界のホスト数は現在4億程度らしい。 IPv4は32ビットだから、429496729。つまりだいたい全世界で42億ホストまではIPv4で運用できる。実は、ま…

自分的、HappyHackingLite2JP、キーマップ変換仕様(レジストリ値書き換え)

キーボードは、いろいろな変遷を経て、今はHappyHackingLite2JPを使ってます。 ただ、全角/半角の位置と、windowsキーがFnキーを押しながらでないと押せないのが気にくわないのでレジストリ値をいじってキーは位置を変えることに。んで、こんな↓ |

-Iオプションでヘッダーパス指定

いまさら感満載ですが、gccでは、-Iオプションでヘッダーパスを指定できます。例えば、cygwinで、boostをincludeしたいときだったら、 g++ -I C:/cygwin/usr/include/boost-1_33 main.cppとか。 また、C:/cygwinは省略しても良いらしく g++ -I/usr/include/b…