こちらは株式会社アスケイドでの社内における技術情報等を外部向けに抜粋して情報発信するサイトです。
株式会社アスケイドではソフトウェアエンジニアを募集しております! 詳細はこちらのCareer Files をご覧下さい。
Web Site:http://www.ascade.co.jp/
例えば、 C/C++ で開発を行っている現場であれば、 以下のようなマクロが1つや2つや3つや4つや N 個は有るのではないでしょうか。
#ifdef DEBUG
extern int debug_level;
/* 閾値以下のレベル値の場合に、式 exp を評価するマクロ */
#define AT_DEBUG(level, exp) \
if(level <= debug_level){ exp; }
#else
/* DEBUG マクロが定義されていない場合はコードを丸ごと除外 */
#define AT_DEBUG(level, exp) /* nop */
#endif
AT_DEBUG() の定義 (1)このマクロは、以下のようにして使用します。
技術評論社様の gihyo.jp サイトにて、 "Mercurialではじめる分散構成管理" と題して、 Mercurial の解説記事を連載させて頂くこととなりました。
BOS Book の目指している(と思われる) 「網羅性」とは別な切り口での解説となっていますが、 皆様の Mercurial 利用の際の一助になれば幸いです。
文字集合変換のエントリを書いた際に、 社内から:
string.replace()を
使うよりも、
辞書(マップ)+ループの方が計算量が少ないのでは?という指摘を受けました。
なるほど、
変換候補一覧のサイズ N、
変換対象文字列長を M とした場合、
string.replace() 方式なら O(N x M) ですが、
辞書+ループなら理論上は O(M) で済む筈です。
弊社は受託開発を主業務としていますので、 顧客の要望次第では、 あまり一般的ではない環境での開発も行います。
例えば:
- OpenSolaris
- SunStudio 11(最新は 12) 付属のコンパイラ
- GCC は無し
といった環境での開発だったりします。
今回は "6. Collaborating with other people" を読みます。
Mercurial には、 web 経由でのアクセスを提供するための、 スタンドアロン動作可能なサーバ機能が組み込まれています。
hg serve コマンドで簡単に起動できますから、
ちょっと触ってみるためだけに、
延々とウェブサーバの設定に付き合わされる心配はありません。
今回は "4. Behind the scenes" を読みます。
この章で述べられていることは、 Mercurial の設計方針といった事柄ですので、 構成管理を行う上では必ずしも必要の無い話ですが:
- 内情を知ることで Mercurial への理解が深まる
- 構成管理ツール選択の際の判断材料
- 自分で他のプログラムを設計する際の参考
といったメリットがあります。

