« 2007年10月 | トップページ | 2007年12月 »

2007/11/27

[ Office / WebApp ] ZOHO work online

ZOHO work online なるものを教えていただいた。

MS-Word, Excel, PowerPoint 互換の Web アプリらしい。
他に Wiki とかプロジェクトマネージメント、スケジューラのようなものまである。

Google gears を使うことでオフラインでも使用可能らしい。
すばらしいサービスだ。

| | コメント (0) | トラックバック (0)

[備忘録 / C++] C++ の map は Python の辞書オブジェクトに近い

A map is a container that stores pairs of keys and values. Looking up keys, inserting keys, and deleting keys can all be performed in logarithmic or better time. Maps support bidirectional iterators (no random access). In other languages and libraries, maps are also called dictionaries and associative arrays.

( C++ in a Nutshell, Oreilly & Associates Inc )

とあるように、C++ の map は「他の言語では辞書とか連想配列と呼ばれている」ものらしい。
こう説明されているとすっきり理解できるね。比喩は偉大だ。

で、multimap はというと

The multimap class template represents a map container that can store duplicate keys.

( C++ in a Nutshell, Oreilly & Associates Inc )

ということで、key の重複が許される map らしい。key の重複が許される点が Python の辞書と異なる。map も multimap も key に直接変更を加えることはできず、変更するときはいったん削除 ( erase ) してから変更したものを挿入 ( insert ) する必要がある。

A map's iterators are bidirectional. They return value_type references; use the first member to access the key or second to access the associated object.

( C++ in a Nutshell, Oreilly & Associates Inc )

map オブジェクトのそれぞれの要素の key にアクセスするには、それぞれの要素へのイテレータを取得してそのイテレータの first メンバ変数を使う。values にアクセスするには second メンバ変数を使うらしい。イテレータは find メソッドとかの戻り値として取得できる。

ところで何ゆえにわたしは C++ なんぞやっているんだろう。
他にやりたいことがたくさんあるのに。

最後に一言言わせてもらうとだ、「グローバル書き換えまくりプログラミングは最悪だ」。

| | コメント (0) | トラックバック (0)

2007/11/24

[備忘録 / .NET] Programming with PLINQ

Parallel LINQ: Running Queries On Multi-Core Processors

使い道は DB にクエリ投げるだけじゃなくて、他にもあるかもしれないなと思って。

そのうち実験してみよう。

| | コメント (0) | トラックバック (0)

2007/11/20

[.NET / VS2008] .NET3.5 正式版 、VisualStudio2008 正式版公開

.NET Framework 3.5 正式版と VisualStudio2008 ( コードネーム Orcas ) 正式版が公開されました。

.NET Framework 3.5 Runtime ( つまり実行環境 ) の方は こちら からダウンロードできます。

.NET Framework 3.5 SDK と Orcas は MSDN サブスクリプションからのダウンロード提供のみにとどまっているようで、まだ一般ユーザはダウンロードできないようです。

Reference
.NET Framework 3.5 ダウンロードページ
MSDN Subscriptions Download
MSDN .NET Framework Developer Center

| | コメント (0) | トラックバック (0)

2007/11/13

[ニッキ] おいおい・・・

ここ数日、悪い意味でとってもすごいコードを読んでいる ( バグ修正のため ) わけですが

まさか実務で i1 とか i2 っていう変数名をつけられているコードを読むことになるとは思いませんでしたよ。

変数名からはなにやっているんだかさっぱり想像がつきません。

現代でこんなコードを書く人は人生考え直したほうがいいと思う。

| | コメント (0) | トラックバック (0)

[備忘録] ファイルシステム比較表

ファイルシステムの機能をまとめたページが Wikipedia にあった。

Comparison of file systems

まとまっていて便利。FAT と NTFS で混沌としていた Win2k 登場初期にこのページがあったら大活躍だったろうなぁ。今でもかなり役に立つけど。

| | コメント (0) | トラックバック (0)

2007/11/12

[ニッキ] コメントは自分のための覚書じゃない


少なくとも、業務で、チームの一員として書いたコードでは。


業務で、チームの一員として書いたコードのコメントってのは、メンバーのために書くものだと思う。


デバッグのための役に立つ情報かもしれないし、あまり知られていないアルゴリズムを解説するものかもしれない。


「いいコメント」の例は Python の DocString だろう。Python の標準モジュールの DocString は自分のためではなく、Python を使う開発者 ( つまりユーザ ) のために書かれている。そのメソッドの引数は何か、何をするのか、戻り値として何を返すのかといった自分以外の開発者にとって有益なことが書かれている。


少なくとも、


int hoge = 32; // 数値に意味はない

なんてのはコメントのうちに入らない ( 数値に意味がないならなんで代入してるんだ? ) し、


// XXX
void functionname( args ){
....( 以下略 )

なんてのは論外だ ( XXX って何だよ?これみて何を理解しろってんだ? )


個人で趣味で書いたコードならどう書いてもいいと思うけどね。


わたしは Python の DocString のようなコメントを心がけて行こう。


2007.11.14 追記

なんか誤解されていたので追記。

XXX って書いてあること自体は悪いことじゃない。

悪いのは XXX だけ しか書いていないことだ。


# XXX ( 確かめなきゃいけないこととか )

↑みたいに「何をしなければならないのか」とか「なにが不確かなのか」といったメッセージが書かれているのならばそれでいいと思う。

| | コメント (0) | トラックバック (0)

2007/11/04

[備忘録 / .NET] アプリにタブを実装する・いじくる

C/C++ だとこんなのがあるらしい
Automatic Tab Bar for MDI programs ( CodeGuru )

.NET だともっと楽になる。WindowsForms の TabControl をつかう。
TabControl コントロール (Windows フォーム) ( MSDN ライブラリ )

| | コメント (0) | トラックバック (0)

« 2007年10月 | トップページ | 2007年12月 »