• 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

OpenCLのエラーコードのメモです。

   1  // Error Codes
   2  #define CL_SUCCESS                                  0
   3  #define CL_DEVICE_NOT_FOUND                         -1
   4  #define CL_DEVICE_NOT_AVAILABLE                     -2
   5  #define CL_COMPILER_NOT_AVAILABLE                   -3
   6  #define CL_MEM_OBJECT_ALLOCATION_FAILURE            -4
   7  #define CL_OUT_OF_RESOURCES                         -5
   8  #define CL_OUT_OF_HOST_MEMORY                       -6
   9  #define CL_PROFILING_INFO_NOT_AVAILABLE             -7
  10  #define CL_MEM_COPY_OVERLAP                         -8
  11  #define CL_IMAGE_FORMAT_MISMATCH                    -9
  12  #define CL_IMAGE_FORMAT_NOT_SUPPORTED               -10
  13  #define CL_BUILD_PROGRAM_FAILURE                    -11
  14  #define CL_MAP_FAILURE                              -12
  15  
  16  #define CL_INVALID_VALUE                            -30
  17  #define CL_INVALID_DEVICE_TYPE                      -31
  18  #define CL_INVALID_PLATFORM                         -32
  19  #define CL_INVALID_DEVICE                           -33
  20  #define CL_INVALID_CONTEXT                          -34
  21  #define CL_INVALID_QUEUE_PROPERTIES                 -35
  22  #define CL_INVALID_COMMAND_QUEUE                    -36
  23  #define CL_INVALID_HOST_PTR                         -37
  24  #define CL_INVALID_MEM_OBJECT                       -38
  25  #define CL_INVALID_IMAGE_FORMAT_DESCRIPTOR          -39
  26  #define CL_INVALID_IMAGE_SIZE                       -40
  27  #define CL_INVALID_SAMPLER                          -41
  28  #define CL_INVALID_BINARY                           -42
  29  #define CL_INVALID_BUILD_OPTIONS                    -43
  30  #define CL_INVALID_PROGRAM                          -44
  31  #define CL_INVALID_PROGRAM_EXECUTABLE               -45
  32  #define CL_INVALID_KERNEL_NAME                      -46
  33  #define CL_INVALID_KERNEL_DEFINITION                -47
  34  #define CL_INVALID_KERNEL                           -48
  35  #define CL_INVALID_ARG_INDEX                        -49
  36  #define CL_INVALID_ARG_VALUE                        -50
  37  #define CL_INVALID_ARG_SIZE                         -51
  38  #define CL_INVALID_KERNEL_ARGS                      -52
  39  #define CL_INVALID_WORK_DIMENSION                   -53
  40  #define CL_INVALID_WORK_GROUP_SIZE                  -54
  41  #define CL_INVALID_WORK_ITEM_SIZE                   -55
  42  #define CL_INVALID_GLOBAL_OFFSET                    -56
  43  #define CL_INVALID_EVENT_WAIT_LIST                  -57
  44  #define CL_INVALID_EVENT                            -58
  45  #define CL_INVALID_OPERATION                        -59
  46  #define CL_INVALID_GL_OBJECT                        -60
  47  #define CL_INVALID_BUFFER_SIZE                      -61
  48  #define CL_INVALID_MIP_LEVEL                        -62
  49  #define CL_INVALID_GLOBAL_WORK_SIZE                 -63

posted by Png genki on Sat 24 Oct 2009 at 15:54

しばらくGemを作ってなかったので気がつかなかったのですが、 Gem作りを取り巻く環境が結構変わっているようですね。

まず、newgemやcutagem, hoeのようにgemのひな形を作ってくれる jeweler というtoolが結構使われているようです。これはgithubにインテグレートされていて非常に便利です。

githubはちょっと前からgemをホストするgemリポジトリサービスをやめてしまったようで、代わりに Gemcutterを使うようになっています。 jewelerを使う事で、gemcutterやrubyforgeにgemをpushする事ができます。

posted by Png genki on Sat 17 Oct 2009 at 10:20

もともとSinatraではRack::Reloaderが上手く機能しないのでshotgunを使おうという流れだったのですが、諸般の事情でshotgunを使えない状況になったため、本腰を入れてRack::Reloaderを使えるようにする方法を調べました。

結論として、以下のようにすれば使えました。

config.ru

   1  configure :development do
   2    class Sinatra::Reloader < Rack::Reloader
   3      def safe_load(file, mtime, stderr = $stderr)
   4        ::Sinatra::Application.reset!
   5        use_in_file_templates! file
   6        stderr.puts "#{self.class}: reseting routes"
   7        super
   8      end
   9    end
  10    use Sinatra::Reloader
  11  end

reset!を呼び出した後use_in_file_templates!を呼ぶ事で、in-fileテンプレートをもう一度読み込んでいます。

posted by Png genki on Mon 12 Oct 2009 at 02:30

Sinatraを使ってRack::Auth::OpenID等を使う場合、 shotgunを使って開発をしていると、check_authentication関係のエラーが出てくる事があるようです。

rackupを利用すれば問題は起きないのですが、Sessionがらみの問題でしょうか。shotgunが無いとリロードが結構面倒なので、はやく回避策が見つかると良いです。

See Also

posted by Png genki on Sun 11 Oct 2009 at 20:50

たまにRubyforgeが落ちていてgem installする事ができなくなっている場合がありますが、そんな場合には以下のミラーサーバが利用できるかもしれません。

ローカルにダウンロードしてから sudo gem install します。

posted by Png genki on Sat 10 Oct 2009 at 20:03

Railsにおけるrestful_authenticationやMerbのビルトイン認証機構に比べると、Sinatraには「とりあえずこれを使っておけ」というような認証ライブラリが無いような気がします。強いて言えばRack::Auth::Basicかな。ちょっと機能不足のように感じます。 という事で、Sinatraで使える認証用ライブラリをリストアップ。

その他、関連する面白そうなもの。

posted by Png genki on Sat 10 Oct 2009 at 18:18

「天才エンジニア」でIT業界は変わらない

残念なことに、技術者がその技術だけで名前を上げることが出来るシステムは、世界中探してもない。つーか、世の中ってそんなものなのだ。

いまであれば、そんな事は無いと言えると思う。

ウィニー開発者に逆転無罪

金子勇さん、おめでとうございます。

技術だけで名を挙げるには、冒険家である必要があるのかもしれない。 本当に先鋭的で革新的な技術は、社会を不可逆的に大きく変更してしまうので、強い反発や抵抗もあるだろうから。

posted by Png genki on Fri 9 Oct 2009 at 02:15

お待たせいたしました。

アップデート申請が通り、本日よりiTunesストアにて地価2009バージョン1.1の配信が開始しました。

今回のアップデート内容は以下の通りです。

  • 土地取引データの増強と刷新
  • iPod touchに対応
  • 地価表示単位の切り替え(平米単価/坪単価)
  • Twitter投稿機能
  • UIの改善

土地取引データについては、従来の3倍に増強し、都市部以外での地価推定精度を向上させました。また、都市部での取引データについても新しい情報に更新しました(全体的に値下がり傾向となっています)

See Also

posted by Png genki on Fri 2 Oct 2009 at 23:42

FLTKをSnow Leopardでソースからインストールする方法をメモしておきます。

FLTK-1.1.9を本家からダウンロードしてきて、以下のconfigureオプションでmakeします。

   1  % ./configure CC=/Developer/usr/bin/gcc-4.0 CXX=/Developer/usr/bin/g++-4.0 CFLAGS="-arch i386 -arch ppc -mmacosx-version-min=10.4 -O3" CXXFLAGS="-arch i386 -arch ppc -mmacosx-version-min=10.4 -O3" --enable-threads --enable-localjpeg --enable-localzlib --enable-localpng --enable-quartz --enable-gl=no

x86_64はまだうまくいかないみたいですね。

See Also

posted by Png genki on Fri 2 Oct 2009 at 04:35