Programming

autoconf & automake

autoscan で configure.ac の雛型ファイル configure.scan を生成してくれる。 autoscan mv configure.scan configure.acconfigure.ac を編集する AC_INIT(PACKAGE-NAME, VERSION, BUG-REPORT) AC_INIT(target, 0.1, xx@yy.zz.jp)とか。 AM_INIT_AUTOMAKE au…

MapReduce

http://www.fixstars.com/Grid/pukiwiki/index.php?MapReduce 遅延するノードが少量というのがキーポイントなのかな?

boost 1.34.0

新機能 Foreach ... FOREACH マクロ Statechart ... "UML to Boost.Statechart mapping summary" と書いてある TR1 ... 実装じゃなくてラッパーなんだって Typeof ... 名前の通りだと思うんけど、Turotrial の後半がよくわからんなぁ Xpressive ... 正規表現…

boost::shared_ptr

boost::shared_ptr<std::FILE> fd(rfd, std::fclose); いやー、いいよねこれ。良いと思わない?</std::file>

fusefs

FUSE: Filesystem in Userspace これ面白そう!楽しそう!!

Digital Mars DMD

正式リリースしてたのね。D Runtime Library

boost idioms

Boost C++ Idioms Boost Base-from-Member idiom Boost Safe bool idiom Boost Named External Argument idiom Boost Non-member get() idiom Boost Meta-function wrapper idiom 別に boost じゃないだろうにとは思うが、まぁ、有用なので。

Ruby も覚えたい

Matzにっき(2007-04-23) が、scheme を先に覚えたい。 どうも作りたい具体的なモノがないと、手を付けられないのよね。

Transaction

class TransactionBase { public: void DoIt() { DoItImpl(); if (TransactionBase* pNext = GetNext()) { pNext->DoIt(); } } };

Google AJAX Feed API

http://journal.mycom.co.jp/articles/2007/04/19/gfeed/index.html

テスト

結局、機能要求と非機能要求を満たさなければならないわけで...

大事

アクターモデル - Wikipedia

C++0xx のコンセプト

http://video.google.com/videoplay?docid=-1790714981047186825 いや、しかし、寂しい会場だな!観衆がいないぞ!>後半は人が増えてるが よーは、これgeneric-programming.org。 type system の上に concept system を載せる感じかな。C++0x のまとめはこ…

tr1 on wikipedia

掲載されてたのね、知らんかった。 C++ Technical Report 1 - Wikipedia

argv クラス

こんな感じがいいかなと。 namespace { struct Appliee : public Nevil::CmdOpt::ApplieeBase { void Help(const std::string&) { /* 値を伴わないオプションでは引数なしで呼び出したいところだが... */ std::cout << "help\n"; } void Config(const std::s…

argv クラス

argv にかまけてたせいで、本筋を忘れてしまった。どこまでやってたっけ?

for_each とメンバ関数呼び出し(引数あり)

すぐに忘れる。っていうか boost だよなーと。 struct Object { int DoIt(int); }; std::vector<Object*> v; std::for_each(v.begin(), v.end(), std::bind2nd(std::mem_fun(&Object::DoIt), 0));</object*>

argv クラス

が欲しいが、じゃぁ、具体的には?と考えるとあいまいだ。 boost::program_options はちょっとちがうような気がする。 int main(int argc, char* argv[]) { Nevil::LaunchArguments args(argc, argv); /* LaunchArguments は trivial container なので標準ア…

mmap クラス

Boostの正規表現クラスを使う - bkブログ の記事を見て、こりゃいいやと。 class MemoryMappedFile : private Ash::Nonconstructible , private Ash::Noncopyable , private Ash::Nonassignable { int mFileDesc; const char* mpFirst; std::size_t mByteCou…

実況

IsIteratorCategory::value が falseになるってなんで? IteratorCategoryWithTraversal クラステンプレートの第1引数か。 FacadeIteratorCategoryImpl クラステンプレートの引数から導出した IteratorFacadeDefaultCategory::Type が Category になってる…

boost::iterator_adaptor

強力。こりゃいいわという事でヘッダを覗く。loki でも実現できるなーと思ったり。

loki 0.1.6

Andrei ぜんぜん commit してねーな。

loki::Functor and boost::bind

loki::Functor に boost::bind を食わせる事ができる。はず… struct Point { int x, y; Point(int ax, int ay) : x(ax), y(ay) {} void Add(const Point& rhs) { x += rhs.x; y += rhs.y; } }; Point pt(4, 5); loki::Functor<void, LOKI_TYPELIST_2<Point&, const Point&> adder = boost::bind(&Point::A</void,>…

Command/State pattern, Functor/Variant

4つどもえの戦い。それぞれのパーツはいい感じで出来上がってると思われ。 Command pattern ... generic な実装はあまり意味が無い事がわかった State pattern ... これも同様 Functor ... MC++D 勉強がてら書いたのがあるので追加なし Variant ... boost や…

Command pattern

構成要素 Command クラス オペレーションを実行するためのインターフェイスを宣言する。 ConcreteCommand クラス(PasteCommand クラスとか) Receiver オブジェクトとアクションの間の継りを定義する Receiver オブジェクトに対して該当するオペレーションの…

clone alone

http://www.two-sdg.demon.co.uk/curbralan/papers/accu/CloneAlone.pdf なるほどねぇ。 template <typename Derived, typename Base> Cloner : public Base { public: virtual Base* Clone() const { return new Derived(static_cast<Derived&>(*this)); } }; class Rectangle : public Cloner<Rectangle, Graphic> { public:</rectangle,></derived&></typename>…

clone alone

http://www.two-sdg.demon.co.uk/curbralan/papers/accu/CloneAlone.pdf なるほどねぇ。

Command pattern

http://en.wikipedia.org/wiki/Command_pattern やっぱり、こういうスタイルの方がいいのかなぁ... namespace EditorCommand { class Base { public: virtual void Execute(TextEditor& target) = 0; virtual ~Base() { } }; /** Cut Command */ class Cut :…

command pattern

なんだかよくわからないけれど、いつもしっくりこないパターン。 例えば PowerPlant だとコマンドは LCommander で表現され、LCommander の派生クラスはコマンドチェーンに継れる。 コマンドチェーンはカレントを管理する。例えばウィンドウがフォーカスされ…

make null pointer

http://d.hatena.ne.jp/mb2sync/20070110#p1 なるほど template <typename T> inline T* make_null_pointer() { return 0; }</typename>