2010-01-01から1年間の記事一覧

Lua処理系コード読み(13) luaL_newstate

luaL_newstateは先のlua_newstateにLuaが提供するシンプルなアロケータ(とエラー発生時呼び出す関数)を指定して呼び出す関数。 LUALIB_API lua_State *luaL_newstate (void) { lua_State *L = lua_newstate(l_alloc, NULL); if (L) lua_atpanic(L, &panic)…

Lua処理系コード読み(12) lua_newstate

lua_newstateは一個のlua_Stateとglobal_Stateからなるメインスレッド(ネイティブスレッドではなくいわゆるグリーンスレッド)を初期化する関数。基本的には領域とってきて値を設定してるだけです。 LUA_API lua_State *lua_newstate (lua_Alloc f, void *u…

Lua処理系コード読み(11) global_State

Lua VM一個にglobal_Stateが一個。VMが保持しておくべきアロケータへのポインタとかGCの状態とかを保持しておく。全てのlua_Stateはこのglobal_Stateへの参照を保持する。 /* ** `global state', shared by all threads of this state */ typedef struct glo…

OpenCV tracに投げたPythonバインディングAPI cv.KMeans2の修正パッチが取り込まれた。

https://code.ros.org/trac/opencv/ticket/414 で投げたOpenCV Pythonバインディングのcv.KMeans2の修正パッチが取り込まれました。 https://code.ros.org/trac/opencv/changeset/4140 パッチが割とそのまま取り込まれてるのでけっこう嬉しい。以前OpenCVは…

北京色々

id:MKnkgwがMSRA (Microsoft Research Asia)にインターンに行っているのでちょっと北京に行ってきました。「まあどうとでもなるだろ」と思ってほぼ全く調べずに行ったんですけどまあどうにかなりました。 Air China 羽田13:50発の飛行機が機材トラブルで飛ば…

北京首都国際空港

AIRPORT_WiFi_Freeにつなぐ。なんかどっかその辺にアカウント発行する端末があるのでパスポートをスキャンするとユーザ名とパスワードが印刷される。たぶん人がいるのでどうとでもなる。

北京スタバ

wifiあっていいなー。Twitterとかそのままじゃ繋がらないけど。

ニコニコ動画にfacebookの「いいね!」をつけるユーザスクリプト (Greasemonkey)

id:amachangの主催したフェイスブック同時オン会とかでfacebook、というか「いいね!」おもしれーなーと思ったのでつけてみました。Google ChromeとFirefox(Greasemonkey)で動作を確認。スクリプトをインストール スクリーンショットについて 濡れるッ! - …

[VM][JIT]Brainf*ckで学ぶスクリプト言語処理系高速化。インタプリタ→VMインタプリタ→JITコンパイラ。

スクリプト言語処理系を高速化したくてしたくてたまらない少年少女に届け。表題の通りスクリプト言語処理系の高速化について書きます。対象言語はBrainf*ckにします。Brainf*ckというのは Brainf*ck Brainfuck - Wikipedia というような言語です。要は処理系…

LLVMをCMakeを使ってビルドする。あとexampleのbrainfuck実装を動かしてみる。

Building LLVM with CMake — LLVM 7 documentationを読めばできると思います。 ~ $ wget http://llvm.org/releases/2.7/llvm-2.7.tgz ~ $ tar zxf llvm-2.7.tgz ~ $ cd llvm-2.7 ~/llvm-2.7 $ mkdir build ~/llvm-2.7 $ cd build ~/llvm-2.7 $ cmake .. -i W…

入力したXPathの指す要素を表示点滅させるブックマークレット(一つだけ)

javascript:function b(){if(e.b){e.b=null;e.style.background=e.o}else{e.b=true;if(e.style){e.o=e.style.background;e.style.background="rgba(255,0,0,0.5)"}else{e.o="none"};setTimeout(b,1000)}}function s(d,p){b(e=d.evaluate(p,d,null,XPathResul…

XPathを取得するブックマークレット

javascript:function x(e){if(e.nodeType==9){return""}if(e.hasAttribute("id")){return'id("'+e.getAttribute("id")+'")'}var p=e.parentNode;var t=x(p)+"/"+e.tagName.toLowerCase();var c=p.childNodes;var g=0;var s;for(var i=0,n=c.length;i

android.widget.RatingBarがあんまり使い心地良くないので改変したStarBar

ratingBar.setColor(color)とかしたかったのでそういうことができるように改変してみた。onDrawだけ自前適当実装。android.graphics.Pathで星の形を描いたんだけど、sinとcosのどっちがどっちかしばらく思い出せなくて数学とか頑張ってた時期は遥か遠くだな…

一定時間後にこの処理を実行、などとしたい時はandroid.os.HandlerからpostDelay

一定時間後にこの処理を実行、などということをJavaでやるにはTimerTaskとTimerなどを使う。Androidでもそれはできるけど、TimerでやるとGUIを動かしてるメインスレッドと別のスレッドで動くことになるから結局Handler経由で操作しなきゃいけないし、毎回Tim…

android.widget.Toast便利

ステータスを表示するときなんかに使う。 public class AndroidTest extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Toast.makeText(this, "Show Te…

CUDA memo (3) aobenchをCUDAで実装。

aobenchという上記画像を吐くプログラムがあります。オリジナルのC言語ソースコードは http://code.google.com/p/aobenchcl/source/browse/#svn/trunk/ao/c_reference などに。で、このプログラムが色々な言語で実装したりして速度を競うのが流行った時期が…

CUDA memo (2)

まずCで左側から右側に向かって黒から白にグラデーションしてるPFM画像*1を吐くプログラムを記述。 #include <stdio.h> #include <stdlib.h> #define WIDTH (256) #define HEIGHT (256) #define SCALE (1.0) #define ENDIAN (-1) void writeppm(FILE *output, const size_t size</stdlib.h></stdio.h>…

Ubuntu 10.04 on USBメモリで CUDA 2.3 memo

CUDAでちょっとあれこれする必要があったのだけれど、CUDAで使えるGPU積んだ自分マシン無かったのでUbuntu 10.04をUSBメモリに積んでインストール。*1 参考: https://wiki.ubuntulinux.jp/UbuntuTips/UsbInstall/InstalltoUSBStorage Ubuntu 10.04 にCUDA2.3…

OpenCVは「Pythonバインディングを公式サポートしてます!」と言ってるけどイマイチちゃんと動いてなかった。

[追記] SVN HEADで修正されました。 「Python版のSnakeImageバグってるよ!」と書いて以下のpatchを本家のtracに投げたら素早く修正されました。 https://code.ros.org/trac/opencv/ticket/393 Pythonバインディングに結構まだ粗があるのは確かだけど、公式…

NDS上で動くプログラムの開発

DS開発環境とかほげ DSLua おそらく0.6、0.7ともにビルドにはPAlib070717が必要。PAlib070717に対応するdevkitARM r20は公式サイトでは現在配布終了。またlibndsなどのバージョンも対応させる必要もありそうで自前ビルドは面倒。DSLuaを用いてLuaスクリプト…

test