programming

Mesa

まだ、性懲りも泣く Mesa をいじっています。6.5.2 で make linux-dri-ppc で DRI_DIRS = fb として、dri のソフトウェアラスタライズ版をビルドしようとしたら driver.h がないとのエラー。ML 検索してみたら、6.5.2 の tar ball には含まれていないコード…

遅延評価による不確定性原理

関数型言語はよく知らないけど、LL Ring で、Haskell でデバッグするときに関数の現在の状態を観測してしまうと、観測によって評価順序が変化してしまうというので、不確定性原理ぽい話だなぁと思って妙に感心してしまった。評価順序ってのも副作用に入るの…

svk 使ってネットワーク断絶された PC で開発する

ネットワークに接続された Windows PC で svk を使ってローカルブランチを USB メモリ上に作成し、それをネットワーク断絶された Linux PC に接続して svn でコミットしたりできるかテスト。って svn+ssh でリポジトリアクセスできないじゃん。SVN_SSH も設…

gcc 4.0.0

MSVC で開発した template を使ったコードを gcc に食わせたら、たくさんエラーをはいてくれた。修正方法を調べなければ....。 template <typename T> class Hoge { public: typedef std::map<int id, int data> IntMap; IntMap& Map(); private: IntMap m_map; } template <typename T> Hoge<T>::IntMap& </t></typename></int></typename>…

バッチファイル

ユニットテスト用のバッチファイルを書いてみる。 @echo on UnitTest_1.exe @if errorlevel 1 goto err UnitTest_2.exe @if errorlevel 1 goto err @echo Test succeeded. @goto end :err @echo Test failed. :endecho on のときの @ の挙動の vice versa な…

Assert

http://www.radiumsoftware.com/0510.html#051007 assert の濫用が害悪というのには同意。まぁ、そこの記事はゲーム業界の話なのでかなりバックグラウンドが異なるという感じはする。自分は assert は条件チェックのため利用しない方がよいと思っている。条…

shared_ptr

boost::shared_ptr<void> pAnyPtr( (char*) new FooStructure_t );こんなことをすると、FooStructure_t は正しく delete されない。</void>

Javascript でカプセル化する方法

http://d.hatena.ne.jp/brazil/20050829/1125321936 http://www.crockford.com/javascript/private.html しかしJavaScriptのオブジェクトも、プライベート変数とプライベートメソッドを持てることが分かりました。もちろん、JavaScriptは世界で最も誤解され…

C Magazine 2005/09

今週の面白かった記事 スモールワールド〜現実のネットワークをひもとく鍵 複雑ネットワークとは何か 「マサチューセッツ州のある人にこの手紙を送って欲しい。ただし、ファーストネームで呼び合う相手にしかこの手紙を送ってはいけません。」という内容の手…

アルゴリズム

http://www.ipsj.or.jp/07editj/promenade/index.html 情報処理学会誌の連載。 http://www.ipsj.or.jp/07editj/promenade/4608.pdf memorize の話とかある..けど、Haskellで書いてある。

Test

mockpp http://mockpp.sourceforge.net/ 任意のオブジェクトを Expectation や ReturnObject に渡す方法 MOCKPP_ENABLE_DEFAULT_FORMATTER を Define する 渡したオブジェクトに bool operator==(const & T) const を用意する 構造体を渡したいときなどは、o…

コーディングルール

そのファイルで利用するライブラリの include はすべて列挙すること。include 先のファイルの include に依存しない。(依存して利用することを前提にしている場合を除く)というか、必要十分な include を調べてくれるツールが欲しいね。

configure でクロスコンパイル

つぎのようにする。target をターゲットの環境に読み替える。 $ ./configure --host=target \ CC=/target-gcc \ CPP=/target-g++これで上手くいかないときは気合で書き換えるべし。

Eclipse with CDT 3.0

CDT 3.0 の紹介記事 http://pcweb.mycom.co.jp/news/2005/08/24/010.html CDT 3.0のレポート これを読んで eclipse + CDT 3.0 環境をセットアップしてみることにしました。公式サイトから eclipse 3.1 と CDT 3.0 を入手。eclipse を起動して、Managed Make …

Google Code Jam 2005 Qualification Round

たっぷり睡眠を取ってから挑戦。 POINTS | TIME | SUMMARY --------+--------+------------------------------ 0.00 | 7:30 | Open 250 Problem 220.67 | 7:38 | Submitted 250-point problem 0.00 | 7:40 | Open 750 Problem 300.80 | 8:25 | Submitted 750…

スケジュール

忘れそうなのでメモはっとこ。Component Competition に参加してみたいけど、9月に10連休とるからそのときに挑戦してみるかなぁ。Design だけなら言語はそれほど関係ないけど、そっちはそっちで英語で要求書を記述しないといけないし、Development は Jav…

TopCoder Component Projects

参加するのは敷居が高いけど、ここのプロジェクトの要求仕様書や Use Case なんかを見ているのは勉強になるなぁ。 http://software.topcoder.com/catalog/c_showroom.jsp コンテストの成果がこうやってコンポーネントとして利用されているみたい。こういう風…

Single Ranking Match

練習にと Top Coder の Single Ranking Match の過去問題を解いてみた。Algorithm よりな問題のためか、工夫しないと入力値によっては2秒のリミットを越えてしまうような設問がみうけられる。そういう問題はテストを考えるのもおもしろい。

Top Coder

http://www.jshowalter.com/topcoder/ TopCoder の言語ごとのバグリストがある。gcc 3.2.2 なのか。というか、普通にしっておかなければまずそうなバグがいっぱいあるんですが。

Defrag

去年の1000点問題の Defrag を行う際の最小移動回数を求める問題をやった。投げ出した。ううむ、一気に難易度が..。

Google Code Jam Practice

Arena で去年の問題を使って練習できるので、500点の Router 問題を懲りずに C++ で解いた。今回も事前準備なし。うが、また文字列操作かよ...。 vector split(string str, string delimiter) を作成する。時間が無駄に消えて...Test Driven Development で …

Google Code Jam 2005

TopCoder,Inc. Practice Room で遊んでみたのだけれど、これ C++ を選んだ時点でかなり負けている気がしたんですが...。Java か C# あたりを選ぶ方がよいかな。言語の選択能力も実力のうちと。あ、プログラミング言語以前に英語の読解力という点でも負けてる…

deliciousAutoPager

deliciousAutoPager.user.js GoogleAutoPager が使いやすいので del.icio.us 用のものを作ってみました。document.body.scrollTop を window.pageYOffset に置き換えていたりするので、Firefox 以外では動かないかもしれません。javascript とか XMLHTTP を…

deliciousAutoPager

deliciousAutoPager.user.js GoogleAutoPager is very convenient. So I made a script to page of del.icio.us automatically. Demonstration

smart_pointer

shared_ptr だと、shared_ptr でスコープ管理されているオブジェクトのメソッドから自分自身の shared_ptr を提供できないので、そういうときは intrusive_ptr を利用するとよい。

シーケンステスト

ミドルウェアのシーケンステストに Ruby や python の C API を利用すれば、シーケンスの管理が割りと楽になるんではないかといまさらながらに気がつきました。CppUnit でテスト結果の管理をしていたけれど、それも RubyUnit で良いような気がしてきました。…