5月前半
どうでも良いメモ集.
てんぷれーと難しい
スクリプト言語による効率的ゲーム開発 C/C++へのLua組込み実践という本を読み始めた.Lua等のスクリプト言語に触ったことがなかったので何となく.それはそうと5章で「Luaヘルパークラス」というものが出てくる.これを使うとC/C++からLuaの関数を呼び出すのが楽になる(以下参照)
LuaHelper luah; luah.SetLua(L); LuaFuncParam params, results; params.String("left").Number(100).Number(200); if (!luah.CallFunc("on_mouse_click", &results, 2, ¶ms)) { printf("%s\n", luah.GetErr()); } else { bool result = results.GetBool(0); const char *mes = result.GetString(1); }
もうちょっと綺麗に書けないかな,と思ったので自分で何か書いてみた.可変長どころかテンプレート自体で何かを書いてみるのが始めてな気がする.むずい.せっかくなのでgistに置いた.以下利用例.
#include "luahelper.hpp" int main(int, char**) { auto L = std::shared_ptr<lua_State>(lua_open(), lua_close); luaL_openlibs(L.get()); luaL_dofile(L.get(), "sample.lua"); kichi::LuaHelper LH(L); bool success; double ret1; std::string ret2; /* > sample.lua function sample(a, b) return a+b, "Waha-" end */ std::tie(success, ret1, ret2) = LH.CallFunc<int, std::string>("sample")(1.0, 2); if (success) { std::cout << ret1 << ", " << ret2 << std::endl; } /* > fuga.lua return 1, "seikichi" */ std::tie(success, ret1, ret2) = LH.DoFile<int, std::string>("fuga.lua")(); if (success) { std::cout << ret1 << ", " << ret2 << std::endl; } return 0; }
例会講座
サークルの講座(15分で適当な話題を発表)が久々に回ってきたので言語モデルとか漢字変換の話をした.2回生の頭にバイト先で受けた研修(?)を圧縮しただけですよ(ゲフッ.書いたコードはこんなん.全体的に投げやり.もうちょっとマシな言語モデルを作ろうと思っていたのだけれど,説明が面倒+準備開始が当日深夜 だったので残念な出来に.まぁいいか.
自炊
ScanSnapで自炊→バーコード自動認識→amazonAPIでタイトル取得 の幸せな日々を送っていたのだが,白黒の縞模様のページがあるとzbarからの返事が帰ってこなくなる.仕方ないのでulimit(1).
tmp=tmp check=3 file="hoge.pdf" page=$(pdfinfo $file | grep -E '^Pages' | sed -e 's/^Pages:\s*//') pdfimages -j -l $check $file ${tmp}_h pdfimages -j -f $(expr $page - $check) $file ${tmp}_t for file in ${tmp}_*; do ulimit -t 10 && zbarimg -q $file \ | uniq \ | grep -E '^EAN-13:' \ | grep -v -E '^EAN-13:192' \ | grep -v -E '^EAN-13:191' \ | sed -e 's/^EAN-13://'; done rm ${tmp}_*
サークル
「今年は新入生と一緒にC++でゲーム作るかー!」と思って練習がてらに以前C#で書いたものを移植していた.普段Linux上で生活してるので,そっちでコード書けるのは快適.とは言えノートの方はWindowsなので,MinGWでごにょごにょしてたら時間がサクサク消えていった.ちなみにMinGW上でCMakeする場合は -G "MinGW Makefiles" としてやると良いらしい.何のこっちゃ.