Go言語で手動オブジェクト指向

仮想関数をインターフェースに書き出して、Self経由で呼び出す方式。手順は、 構造体とインターフェースを対にして作る それぞれに埋め込みで継承していく コンストラクタ関数で、Selfを伝搬させていく こんなダサくて効率の悪いことは普通やらないが、GUIフ…

mingw版ruby(64bit)にcurbとrmagickのgemをインストール

RubyInstaller(x64) での場合 rmagickのインストール ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ から、ImageMagick-6.9.5-Q16-x64-dll.exeをダウンロード、インストール (ImageMagick-7.0.3-0はダメだったので) ※パスを通して、開発用のファイル…

KyotoCabinetのruby拡張をmingwでビルド(2)

RubyInstaller(x64)のRubyでkyotocabinetの拡張を使うためにビルドしようとしたが、なかなかうまくいかなかった。 結局、かなり滅茶苦茶なやり方でビルドしたので、自分以外の役には立たないかもしれない。 1.準備 MSYS2をインストール msys2-x86_64-2016020…

window message

適当に抜き出しただけ 0 WM_NULL 1 WM_CREATE 2 WM_DESTROY 3 WM_MOVE 5 WM_SIZE 6 WM_ACTIVATE 7 WM_SETFOCUS 8 WM_KILLFOCUS 10 WM_ENABLE 11 WM_SETREDRAW 12 WM_SETTEXT 13 WM_GETTEXT 14 WM_GETTEXTLENGTH 15 WM_PAINT 16 WM_CLOSE 17 WM_QUERYENDSESSI…

OpenMP

C++

ExpressバージョンのVCでも、Windows SDKから omp.h、ompassem.h、vcomp.lib、vcompd.lib を取ってくれば、OpenMPが使えるというのでやってみた。 #include <iostream> #include <omp.h> using namespace std; int main() { #pragma omp parallel cout << "Hello OpenMP!" << </omp.h></iostream>…

inf

C++

※VCの場合はfloat.hに_finiteがあることがわかった。 #include <iostream> #include <cmath> using namespace std; int main() { cout << log10(0) << endl; // -inf cout << isinf(log10(0)) << endl; // 1 cout << isfinite(log10(0)) << endl; // 0 cout << (int)log10(0) <</cmath></iostream>…

引数テスト

function funcA(a, b) { Services.console.logStringMessage([(typeof a), (typeof b)]); } var h = {}; funcA(1, 2); //=> number,number funcA(3); //=> number,undefined funcA(4, h['x']); //=> number,undefined funcA(h['x'], 5); //=> undefined,numb…

祝 ruby1.9.3

Windowsで、ユニコードに対応したコンソール出力ができるようになった。 文字列をUTF-16LE(ワイド文字)に変換してからWriteConsoleWで出力してくれる。

今さらferret

WEBサイトをクロールして集めたデータの検索にgroonga(rroonga)を使っていたが、32bitのWindowsという、推奨されない環境のため、何万件もデータ突っ込んだら、エラーでどうにもならなくなったので、代わりに使えそうなferretを試してみた。solr-rubyにはそ…

KyotoCabinetをrubyで使う (キーをたどる)

require 'kyotocabinet' db_hash = KyotoCabinet::DB.new db_hash.open("*") db_hash["apple"] = "りんご" db_hash["lemon"] = "檸檬" db_hash["orange"] = "オレンジ" db_hash["grape"] = "ぶどう" # 全ての項目を辿る each each_pair each_key each_value …

KyotoCabinetをrubyで使う(基本)

require 'kyotocabinet' db = KyotoCabinet::DB.new db.open("*") # オンメモリハッシュDB # 項目の設定 set db.set("apple", "りんご") db["banana"] = "ばなーな" # 項目の取得 get p db["apple"] #=> "りんご" p db.get("banana") #=> "ばなーな" p db["g…

KyotoCabinetをrubyで使う前に

まずはKyotoCabinetのデータベースを知らねば。 参照 mixi Engineers' Blog » 京都収納棚紅玉束縛: Rubyで簡単、DBプログラミング http://alpha.mixi.co.jp/blog/?p=1795 データベースの種類 - prototype hash database + prototype tree database : stash …

KyotoCabinetのruby拡張をmingwでビルド

ちょっと試してみたかっただけなのに、わからないことばかりで苦労した。速攻で忘れるだろうから、書き残しておく。 参考サイト blog.k11i.biz: [メモ]MinGW/MSYS 環境で Kyoto Cabinet Core & Java バインディングをビルドする http://blog.k11i.biz/2010/1…

あいうえお

柿九毛子