• 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
 

macportsでインストールしたパッケージのvariantsを後で変更したくなることがありますが、そのような場合には --enforce-variantsオプションが利用できます。

例)

   1  % sudo port upgrade --enforce-variants git-core +svn

posted by Png genki on Mon 29 Mar 2010 at 05:40

git submodule update を行ったときに

   1  fatal: reference is not a tree: dfae...

というようなエラーが出ることがありました。 これを解決する方法は、 submoduleのディレクトリに移動し、

   1  % git reset --hard

で親ディレクトリに戻り、コミット & push

あとは普通に git submodule update をすればok.

posted by Png genki on Sun 28 Mar 2010 at 18:48

Firefoxのセキュリティポリシーの変更によるものなのかと思いますが、MacOSのFirefoxでGoogle Waveを使っている時に、 外部からのペーストが出来なくなたようです。 Wave内でコピーしたテキストなどはペーストできます。

TerminalでコピーしたものをWaveに貼り付けたりすることが結構あったので、 非常に不便ですね。 一応ChromeやSafariでは、まだ外部からのペーストができるようです。

posted by Png genki on Tue 23 Mar 2010 at 01:39

CUDA kernelの引数で渡せるデータのサイズは sizeof(void*)*16 が上限で、それを超えるとエラー701(Launch exceeded resources)が発生します。

回避するためには、値渡しをしているものをメモリオブジェクト経由で渡すようにするか、そもそもメモリオブジェクトを17個以上使っている場合は、デバイスアドレスのポインタの構造体を用意し、その構造体をメモリオブジェクト経由で渡すと良いようです。

一方、OpenCLにはkernel引数のサイズに制約がないので使い易いです。 OpenCLのkernelで気を付けるべき点としては、kernel引数をfloat3* で受けると、cpuデバイスでは動くものが、gpuデバイスの場合おかしな挙動をするようになったりするので、避けた方が良さそうです。

posted by Png genki on Mon 22 Mar 2010 at 16:13

autotoolsによるパッケージのconfigure時に、ar (ARで指定できる) のオプションは、

   1  % ./configure AR_FLAGS={ar_options_go_here}

という感じに指定します。アンダースコアが入るのが紛らわしいですね。

posted by Png genki on Fri 19 Mar 2010 at 08:43

N x Mのグリッドがあったとします。 自明ですが、マス目の数は N*M 個です。

これを K 個の長方形に分割することを考えるとき、 K 個の長方形の面積の差が高々 min(N, M) であり、各々の長方形の周の長さの和が最小となるような分割を行うアルゴリズムを求める。

posted by Png genki on Thu 18 Mar 2010 at 06:45 with 1 comment

以下のサイトに手頃な文量で要点がまとまっているので参考になりました。

公式ドキュメントは以下にあります。

SCons本が欲しい今日この頃。 達人出版会 に期待したい。

posted by Png genki on Mon 15 Mar 2010 at 06:16

git svnを以下のような構成で使っていた時に、git svnのリモートトラッキングブランチのpointerがtrunkに代わってしまい、いつのまにかブランチにcommitしたつもりのものがtrunkにcommitされるという事があり、困りました。

ss

gitから.gitにpushしたものを git-svnからpullしたタイミングで発生するようです。 解決策としては、git-svnでgit pullをせずに、

   1  % git fetch remote-name
   2  % git merge --no-ff remote-name/branch-name
   3  % git svn dcommit

でok. アクシデンシャルなdcommitを防ぐには、--dry-runが便利です。

posted by Png genki on Fri 5 Mar 2010 at 11:23 with 1 comment

git-svnを使っていて、git svn dommitするときに、 掲題のようなエラーメッセージが出た場合、リモートリポジトリとローカルリポジトリのトラッキングブランチの同期が取れていない事が原因かもしれません。

例えば、SVNリポジトリ上で削除されているブランチが、ローカルのgitリポジトリに残ってしまっている場合、以下のようにリモートトラッキングブランチを削除する事で問題を解決できる可能性があります。

   1  % git branch -D -r <branch name>

posted by Png genki on Fri 5 Mar 2010 at 02:41

SConsを使ってscons testでテストを実行するには、 SConstructもしくはSConscriptで以下のように書く (Google Test仕様)

   1  import os, sys
   2  Import('env')
   3  env = env.Clone()
   4  
   5  test = env.Program('test', Glob('*.cpp'), LIBS='gtest')
   6  test_alias = Alias('test', [test], test[0].abspath)
   7  AlwaysBuild(test_alias)

See Also

posted by Png genki on Tue 2 Mar 2010 at 07:49