だめな子

だめな子ですが頑張って成長してゆくのです。

拡張現実感(AR: Augmented Reality)

つい最近ニコニコでARToolkitでグリグリ動くミク動画とかが話題になってたりしたけど、なんかもっとスゴいのもあるらしい
ARToolkitみたく、二次元バーコードみたいな”マーク”がなくても3Dマップ作れるんだってさ
で、ひょんなことからこげなページを発見
この技術をざっくりと言いますと、『カメラの入力から特徴点を取得・追跡をすることで3D空間のマップ作りを行い、それに基づいて3Dディジタル情報を書き込み提示する』という技術です。っていうことらしい
要するに動画から3Dマップを作れるよ!その上にキャラとかおけるよ!ダースベーダーとかかわいいよ!!
ってことなんだろうなぁ 特徴点追跡うんぬんとか書いてあるから静止画から3Dマップを起こせるわけじゃないのかな?
これで遊べるライブラリのソースコードは公開されるんだかなんなんだか微妙らしいです
まぁ公開されても俺のレベルじゃ遊び方わかんないだろうけどな!
研究者の人が面白いモノをガリガリアピールしてくれると民間のヤツらは遊ぶものが増えてとてもうれしいのぅ

Read the rest of 拡張現実感(AR: Augmented Reality)

Emacs仕込む

Emacsを使ってみよう!の会
RubyのFlymakeでやってみた
ruby-modeが入ってない予感がしたのでaptでruby-elispもらってきてM-x flymake-modeでFlymakeできるようになったよ!
C-cdでエラーの原因表示させるようにすると便利やわー
カレント行のエラー原因を自動でミニバッファに表示させれないのかしら?
とりあえずわくわくしながらプログラムかけるようになったのでこれでOK

Read the rest of Emacs仕込む

VirtualBox 1.5.6 + Ubuntu 7.10

Linux環境が欲しかったので、用意することにした
SakuraEditorでプログラム書くのはいい加減だるくなってきたのでEmacs使いたかったの
Meadowとかでもよかったのかもしれないけどなんとなく
で、現在冬眠中のPC2台は不調の原因が定かではないので、仮想PCでてっとりばやく済ませることにした
VirtualBoxとUbuntoで
最近はUbuntoとかFedoraとか、仮想PC用のディスクイメージも配布してるらしいネ
便利な世の中になったもんだ
で、VirtaulBox用イメージをもらってきて起動
最初からネットも繋がってるし画面もXで立ち上がるしすげーなって感じ
さらにWindowsUpdateみたく黙っててもアップデートのお知らせとかくるのなー便利ー
画面解像度が1280×1024にできなかったのでぐぐったら
http://forum.ubuntulinux.jp/viewtopic.php?pid=6256
http://forum.ubuntulinux.jp/viewtopic.php?pid=6421
これでイケるらしいのでやってみたらイケた
あとLinuxだとCapsLockをControl代わりに使う癖がついちゃってるので
http://blog.livedoor.jp/leaf_hiro/archives/51034535.html
ここみてCapsLockとControlを入れ替えた
ついでにShift+Spaceで日本語入力ONになるようにしとくと”6 + 4″って入力したときについ日本語入力ONになっちゃってイライラするので半角/全角のみで切り替えるように変更
システム→設定→SCIM入力メソッドの設定あたりかな?と思ったらそのとーりだった
なんとなくで設定できるとかUbuntuすげーな
でも端末上で日本語入力しようとするとひでーことになるようになった
SCIMの設定で”全てのアプリケーションで同一入力メソッドを利用”のチェック外したら改善されるらしい 改善された と思いきや別のとこで同じ症状発生 ぬーん
とりあえずaptでemacsとgaucheとrubyとrubygemsとirb入れといた
しばらく使ってみよう
あと、フルスクリーンモードにしてみたらウィンドウモードに戻れなくて困った
ホストキー+Homeキーで戻れるらしい ホストキーは右Ctrlに設定してたので右Ctrl+Homeでメニュー出せて無事戻れた
また忘れてまた困るに違いないからメモしておくのです
ホストOSとのフォルダ共有はVirtualBoxの共有フォルダの設定でどっか適当に設定しといて
Ubuntu(ゲストOS側)から”mount -t vboxsf share mount_point“らしい
“sudo mount -t vboxsf share /mnt/windows”でぉーできたできた 読込も書込も可能だーすげーNTFSなのにー
日本語入力周りがおかしすぎる…
どうすりゃいいんだ
Ctrl+Space形式と全角/半角形式で日本語入力に入るようにするとだめっぽいなー…?
ストレスたまりそうだけどShift+Space形式で対応することにしとこう
【追記】
なんとなくgnome-terminalの落ち方がCtrl+D押したときの落ち方に似てる気がした
原因はUbuntu側だと思い込んでたけどVirtualBox側という線もあるなぁ
とりあえずCapsLockとCtrl入れ替えたのをやめてみる

Read the rest of VirtualBox 1.5.6 + Ubuntu 7.10

SICP その3

今日はちょっとだけ
問題 1.11
PLAIN TEXT
SCHEME:

(define (func1 n)

    (if (<n 3) n

        (+  (func1 (- n 1))

            (* 2 (func1 (- n 2)))

            (* 3 (func1 (- n 3))))))

 

(define (func2 n)

    (define (iter x a b c); x = counter, a = 1個前, [...]

Read the rest of SICP その3

SICP その2

くるらと二人で勉強会をするというイベントが発生したので勉強したよ
1.1.7 Newton法による平方根
平方根を求めるのにも再帰は有効である
問題 1.6
正常にif文と同じように処理されるように見える…
実際やってみたら処理が帰ってこなかった
特殊手続きじゃないnew-ifは、trueの時の式もfalseの時の式も両方簡約してから評価しようとする?
そうすると条件式がtrueになるときは、falseの式はいわばイリーガルな値を渡そうとしてしまうはずなので無限ループになる?
sqrt-iter1.2.3を用意してみた
1 = if
2 = new-if
3 = new-ifと等価なcond
結果、1,3は正常に計算できるけど2は計算できない。
ifもcondも特殊手続きで、true-clauseとfalse-clauseとどちらか片方しか簡約されないからではないか?
new-ifは特殊手続きではないので、condへ展開するときにtrueでもfalseでも両方が簡約されようとしてしまうから計算を正常に終了することができない?
PLAIN TEXT
SCHEME:

(define (square x) (* x x))

 

(define (good-enough? guess x)

    (<(abs (- (square guess) x)) 0.001))

 

(define (average x y)

    (/ (+ x y) 2))

 

(define (improve guess x)

    (average guess (/ x guess)))

 

(define (new-if predicate then-clause else-clause)

    (cond (predicate then-clause)

        (else [...]

Read the rest of SICP その2

SICP その1

1 手続きによる抽象の構築
プロセス(手続き)とデータLispではプロセスの手続き(プロシージャ)もデータとして表現
1.1 プログラムの要素
基本式(それ以上簡約できない式のこと?)
組み合わせ法(関数や手続きの合成のこと)
抽象化法(手続きに名前をつけて便利に扱えるといったようなこと 変数に束縛すること)
1.1.1 式
演算子と被演算子(演算子と数字とか)
Lispは前置記法(演算子=関数だと捕らえると別に違和感はない)
前置記法は自然な拡張として組み合わせのネストを許す
1.1.2 名前と環境
環境というものが処理系に用意される(スコープに近い?)
環境は、名前とデータや名前と手続きの束縛を保持しといてくれてる
1.1.3 組み合わせの評価
部分式を評価→繰り返す→最終的に合成された手続きの評価が得られる
評価の規則は本質的に再帰的(recursive リカーシブ)である
defineは特殊形式の手続き (define a 3)は、aと3両方のデータに何かを作用させるわけではない。aを3に束縛する
関数の定義は(define (square x) (* x x))の形式で定義できる
1.1.4 合成手続き
関数の定義は基本式だけからなる定義でも、組み合わせされた手続きでもなんでもいい
1.1.5 手続き作用の置換えモデル
作用的順序と正規順序の2種類の置換えモデルが存在する
作用的順序の評価はeagerで、正規順序の評価はlazyに行われるイメージだと解釈した
1.1.6 条件式と述語
elsifが存在するif文を使いたいような場合のときのためにcondがある
condは最後にelseつけれる else = #t のわかりやすい表現なんじゃないか (define else #t)
if else だけで表現できる(分岐1回だけ)if文はifを使う
論理式の合成にand, or、否定にnotが使える
問題 1.1
上から
10
8
3
6
a
b
19
#f
4
16
6
16
問題 1.2
分子(+ 5 4 (- 1 (- 3 (+ 6 (/ 4 5)))))
分母(* 3 (- 6 2) (- 2 7))
あわせて(/ (+ 5 4 (- 1 (- [...]

Read the rest of SICP その1

SICP読むです!

大学時代勉強してなかったけど、関数型言語のエッセンスを内に取り込みたいので勉強するよ!
Haskellはモナドわかんなくて挫折したからなぁ…
お約束

ちゃんと全部読む
問題は全部ちゃんとやる
でも数学の問題は別にやらなくてもいい
わかんなかったら答え見てもよし
何が嬉しいかわからなくても、何故そうなるかはちゃんと理解する
挫折禁止

読むSICPは日本語書籍の第二版のヤツです
使う処理系はとりあえずGauche使っとくことにする

Read the rest of SICP読むです!

たまに動くFEZSNSのエージェント的なもの

だらだら作ってたヤツ、作るの飽きたので中途半端だけどとりあえず晒しておく
FEZSNS Exe版 20080214
FEZSNS Ruby版 20080214
Exerbで作った実行ファイル配布するにはなんかあるらしいのでとりあえず公開停止
間違ってRuby版を公開停止にしてExerb版を公開のままにしてた
で、collect.rbかcollect.exeかどっちか実行してください
なんかDLL足りないって言われたらこの辺り漁るか自分でぐぐるかしてください
sqlite3.dllは公式サイトのDOWNLOAD→sqlitedll-3_5_6.zipとかに入ってた気がする
実行するとIDとパスとキャラ名聞かれるので教えてあげてください
運が良ければ(SNSが重くなければ)FEZSNS.dbっちぅデータベースファイルができるので、TkSQLiteとかで中身見てみてください
SQL分かる人なら遊べるはず。わからない人なら表が見れるはず。
SNS重いとたまに例外吐いてそのまま死ぬんだけどもうとりあえず気にしないでいいや

Read the rest of たまに動くFEZSNSのエージェント的なもの

TkSQLite

素晴らしい…素晴らしすぎる…
TkSQLite
日本語使えるし分かりやすいしにゅるにゅる動くしSQLiteのフロントエンドはこれがあれば超OKじゃなかろか
CSVとかでのインポートエクスポートもできるっぽいしね…!
全然関係ないけど
太ったDBファイルのダイエットもあるらしい
結構多機能だなー?

Read the rest of TkSQLite