gtest/gmock1.6.0をmake installする

gtestとgmockが1.6.0からmake installできなくなってしまいました。今回は開発者からしたら不本意でしょうが、make installを有効化する方法を説明します。 その前に とりあえず背景から。先日リリースされたgmockの1.6.0をインストールしようとしたところ、…

google-gtest: value parameterized testのCombineを使う

テスト用のフレームワークを使ってユニットテストより粒度の荒いテスト(コンポーネントテストなど)を書こうとすると、1つのテストケースが複数のパラメタに依存してきます。例えばDecoratorパターンで、DecoratorAとDecoratorBをつなげてテストすることを考…

MessagePack(-RPC) for Luaをちょろちょろ改造中

スローペースで開発してます。サーセン。今週は折角の休暇だったので仕事コードにはあえて一切触れず趣味プロに走りました。あんまりプログラミングの時間をとれませんでしたが、癒されました。 MessagePack for Lua (mplua) 0.2.0 http://github.com/nobu-k…

googlegtestのType Parameterized Testsも便利すぎる件

前回のValue Parameterized Testsに続き、今回はType Parameterized Testsというのを紹介したいと思います。コードがコンパイルできなかったらタイポしてるので本家の方を見てね。 Type Parameterized Testsとは Type Parameterized Tests(勝手にTPTと略しま…

google-gtestのValue-Parameterized Testsが便利過ぎる件

google-gtestにいつの間にかValue-Parameterized Tests(VPTと勝手に略します)という機能が追加されていました。以前のgtestでは、実行される度に特定の値を変更しながらテストすることが面倒でした。例えば、boolのフラグを持っており、それがtrueかfalseか…

Ubuntu 10.04 で Xinerama を有効にした状態でデュアルディスプレイにする際の注意点

最近Ubuntuをアップグレードするたびにこの手のエントリを書き続けている気がする・・・!Ubuntu 10.04 で Xinerama 周りにバグが入ったようです。症状としては、画面をまたいでマウスを移動するといきなりピクピク分身し出して、その後もしつこくマウスを動…

64bit Windows7 上の Visual Studio 2008 で BandObjects2.0 をビルドする

BandObjects とは IE のツールバーを簡単に開発するためのなにかです。ぐぐるといろいろと情報が出てきますが、古い情報が多すぎます。しかし、これは古い情報が悪いんじゃなくて、MS製品の仕様変更が激しすぎるのが原因なので、情報を提供してくれている人…

MessagePack for Lua を公開しました

Lua

先週から少しずつ書いていた MessagePack for Lua が動くようになったので一旦公開しようと思います。 MessagePack とは MessagePack とは 古橋くん(id:viver, @frsyuki)が開発した、高速なバイナリシリアライズ形式です。「速くてコンパクトなJSON」と言わ…

Twitter Streaming API を gardenhose レベルで利用する

id:awakia に教えて貰いました。Twitter Streaming API の sample を使うと、正確に確認したわけではありませんが、全発言の1/20を取得できます。やってみると分かりますが、この1/20というのは結構シビアで、全然自分の発言が拾われません。秘宝伝の高確で…

C++で作ったwxWindowに、Luaで作ったコントロールを設置する(wxWidgets 2.8.10を使用)

wxLua を使うと Lua から wxWidgets を簡単に使うことができる。もちろん、フレームから何から全部 Lua で書けてしまうので、そうしても構わないのだけど、コアはやっぱり C++ で書きたい! GUI も大枠は C++ で書いて、局所的に Lua で拡張したい!! そし…

Amazon EC2のアカウントを作成してみた

クラウドAMAZON EC2/S3のすべて (ITpro BOOKs)作者: 並河祐貴,安達輝雄,ITpro/日経SYSTEMS出版社/メーカー: 日経BP社発売日: 2009/11/05メディア: 単行本購入: 4人 クリック: 372回この商品を含むブログ (18件) を見るこの本を参考にアカウントを作成してみ…

runtime.GOMAXPROCS で CPU をフル活用

Go

CPU使用率が100%を越えなくて悩んでたら id:kzk が発見してくれました!やたー! import "runtime" func main() { runtime.GOMAXPROCS(コア数); }という感じにすると本気を出してくれます!が、下のソートはコア数1のときが一番速かった・・・。まあチャンネ…

Go で無駄にチャンネルを使ってクイックソートのようなものを書いてみた

Go

-1がEOF的な用途で使われている感じ。Core i7でCPU100%までしか食わないんだけど、書き方が悪いのかそういうものなのか。チュートリアルのsieveで興奮して適当に書いただけなので、明日もう少しドキュメント読んでみよー。 package main import "fmt" import…

Go での簡単な Makefile の書き方

Go

include $(GOROOT)/src/Make.$(GOARCH) TARG=コマンド名 GOFILES=\ file1.go\ file2.go\ ... include $(GOROOT)/src/Make.cmdこんな感じのを用意するだけでいいらしい。最後の Make.cmd を Make.pkg にすると .a を作ってくれる。らくちん!

Ubuntu9.10, nVidiaなカード:症状別xorg.confの直し方

apt-get remove python したらいろんなものが消えてしまって大変なことになったのでOSを再インストール。そしたらまた画面設定でハマったのでメモ・・・。基本的にはこの間のエントリの加筆。今回は参考文献なしなので間違ってるかもしれない。注意。ちなみ…

Ubuntu 9.04 で縦置き+横置きのデュアルディスプレイ環境を構築 with nVidiaなカード

相当はまったのでメモ。 手順 念のため xorg.conf をバックアップ nvidia-settings で雛形となる xorg.conf を生成 生成された xorg.conf をちょこっと書き替えて完成 xorg.conf をバックアップ /etc/X11/xorg.confをどこか適当なところにバックアップする。…

Waseda.Lに参加してきました(本番)

疲れて全然日記を書く気力が起こらない。そんな自分を癒してくれるTwitterのせいで更に日記を書く気力が減ったり。しかし久々に何もすることがなくぼーっとしている日が出来たので、休みがてらWaseda.L参加報告でも書こうかと思います。 発表内容 研究用途の…

Waseda.Lに参加してきました

Waseda.Lに参加する前に言っておくッ! おれは今Waseda.Lをほんのちょっぴりだが体験した い…いや…体験したというよりはまったく理解を超えていたのだが…… ,. -‐'''''""¨¨¨ヽ (.___,,,... -ァァフ| あ…ありのまま 今 起こった事を話すぜ! |i i| }! }} //| …

ICFPCに参加中@記念撮影

3027.6412 Purely Functional Infrastructure 13 2595.2057 jabber.ru 12 2551.7364 Side Effects May Include... 12 2544.5674 Intercaml 12 2539.3044 Error 404 12きたー!俺、なんもしてないけどね!!id:tanakh 神!!

libhdfs: 使用上の注意

hdfsOpenはディレクトリも書き込みモードで開けます。というか、ファイルを消して、そこに新たにファイルを作ります。なのでcp的なものを作ろうとして、誤ってディレクトリに対してhdfsWriteしてしまうと…/(^o^)\ 追記 他の関数も調べてみました。 hdfsCop…

libhdfsを使う

libhdfsのAPIは$(HADOOP_HOME)/libhdfs/docs/apiに詳しいドキュメントがあるので、そこを見ながらやると簡単です。サンプルが必要ないくらいに色々書いてあります。ただちょっと良く分からなかった点があったので、いくつかメモを残しておきます。 Connect, …

libhdfsを使う(その0)

コンパイルから実行までに1時間くらいかかったわけですが、95%はCLASSPATHの効率的な指定方法を調査していた時間ですw 以下、pathは適当に自分の環境に合うように置き換えて読んでください。libhdfsを使ったソースファイルは以下のようにコンパイルします。…

libhdfsのビルド仕方@64bit環境(hadoo-0.18.3)

libhdfsはC言語からHDFSへアクセスするためのライブラリです。が、ちょっとコンパイルでハマったのでメモしておきます。32bit環境だと問題なくビルドできるかも知れませんが、実験はしていません。また、これは0.18.3(現時点でのstable release)での話で、最…

お手軽(?)かつ合法的にプログラムからglogの挙動を制御する

C++

google-glogは便利なロギングライブラリです。便利なんですが、困った事に、ドキュメントを見る限りだとコマンドライン引数からしか挙動を制御する事ができません。例えばログの出力先を指定したい場合は、-log_dirというオプションを渡して起動する必要があ…

Transactional Information Systems 3章 3.1〜3.6まで

先週は全然読めなかった。。3章が長めで、3.7はちょっと重そうなので、前半をまとめてみる。3章はPage model(read/write model)のトランザクションに対して、トランザクションを並列実行したときの「正しさ」を定義することを目標にしている。トランザクショ…

iPod nano + Nikeplusの罠

Nikeの例の奴を使って初めてiTunesに接続したときにnikeplusのアカウントを登録するようなダイアログがでる「はず」だったらしいんだけど、出なかった。iTunesでは、iPod nanoの(nikeplus使用後の?)初回接続時にしかnikeplusのアカウント情報を登録できない…

g++ 4.2.3のバグ?std::mapやstd::pairをメンバ関数のデフォルト引数に書くと怒られる件

C++

http://groups.google.co.jp/group/gnu.g++.bug/browse_thread/thread/09f52263bb8562a6 これと同じ。 #include <iostream> #include <map> using namespace std; void f(const map<int, int>& m = map<int, int>()) { } class A { public: A(const map<int, int>& m = map<int, int>()) {} void f(const map<int, int>& m = map</int,></int,></int,></int,></int,></map></iostream>…

Transactional Information Systems 2章

現在読んでるところ。6月末に読み終わるのを目標に頑張ってます。2章はこれからの議論の基本となる2つのモデル、page modelとobject modelの説明。Page modelではそれ以上分割できないreadとwriteのシーケンスを考える。この時、トランザクションはそれ以上…

gtest: SetUpTestCase, TearDownTestCase

gtestではテストケース毎に、テストケース全体で共有するリソースを初期化(確保)・解放する仕組みを提供している*1。これは、SetUpTestCaseとTearDownTestCaseを使用することで実現できる。 サンプルコード class TestCase : public testing::Test { protect…

こ、これは、ひど…くない

C++

void f(bool b) { ... } vector<bool>* v; // 諸事情でポインタ ... for (...) f(v); // (*v)[i]書き忘れ/(^o^)\テストのおかげですぐ気付けたから良かった…。TDDは偉大。</bool>