shdertoy

https://www.shadertoy.com/view/MllcDr

Ray Tracing in One Weekend ( https://www.amazon.co.jp/Tracing-Weekend-Minibooks-Book-English-ebook/dp/B01B5AODD8 )にあるサンプルコードを、GLSLで実装してみました。
元のC/C++コードをそのままGLSLで移植した感じです。
遅いはずなんですが、解像度によってはGeforde GTX 1080で普通に60FPS出たりします。最近のGPUすごい。

MacRuby

Cocoaとかを使ったアプリケーションを実装する必要があったので,MacRubyに手を出しました.
最初はObjective-Cでやろうと思ったのですが,C言語Smalltalkをごっちゃにした文法が好きになれなかったのでMacRubyにしました.


Ruby 1.9Objective-CだのガベコレだのMac OS Xの技術をフルに使って実装したものらしいです.
一番良い点は,CocoaをはじめObjective-Cで使われるAPIが大体使えることだと思います.
簡単にアプリケーションを作りたい時には向いていると思います.


でも,MacRubyのサンプルコードが少ないのが悲しいところ.
APIのリファレンスもありません.(あってもObjective-Cとほとんど同じになると思いますが)
そのため,XcodeとかについているObjective-Cデベロッパドキュメントを読む必要があるので,使いこなすにはObjective-Cが読める必要があります.
オライリーMacRuby: The Definitive Guideが執筆中みたいですね.
この本はだいぶ参考になりそうです.


増井さんはMacRubyを使ってIMEを実装したようです.https://github.com/masui/Gyaim

確率的言語モデル

言語と計算 (4) 確率的言語モデル

言語と計算 (4) 確率的言語モデル

一通り読んでみました.
言語モデルのお話です.
Nグラムモデル,隠れマルコフモデル,確率文法,最大エントロピーモデルなどが紹介されています.
証明は少なめで,どんなモデルがあるのかざっと理解するのに向いた本だと思います.
確率や統計の知識がある方にはオススメです.

初版が古いせいか,流行りのsvmに関するお話はほとんどありません.
その点はちょっと残念でした.

Macbook Pro

4月にMacに乗り換えました.
# 乗り換えた事情は結構複雑なので,省きます.

Apple MacBook Pro 2.7GHz 13.3インチ MC724J/A

Apple MacBook Pro 2.7GHz 13.3インチ MC724J/A

学割とか使えたので,ちょっとお安くなりました.
キャンペーン中でiPod touchももらえました.


とりあえずインストールしたアプリケーションの一覧
Homebrew (Macportsは遅いと聞いたのでこっちにした)
Office 2008 for Mac (WIndowsのと違って使いづらい)
Qt Ceator
Google Chrome
Microsoft Messenger for Mac 8 (これもWindowsのと違って使いづらい)
Xcode (付属のDVDに入ってた)
vlc media player (QuickTime Playerよりこっちのほうがいい)
TexShop
Carbon Emacs (これがないと始まらない)
Gyazo (スクリーンショットが簡単にとれて便利)
VirtualBox (vmware fusionがフリーではないのでこれにした)
Processing (諸事情によりいれたが,Processingは好きになれない)
Skype


RubyとかPerlが最初から入っていたのが嬉しい(ちょっと古い物だったけど).
gemとか使っていろいろ入れたり,Open CVとかいれました.
Windowsと違って,ターミナルやEmacsが楽に使えるのも嬉しい.


欠点としては,ハードウェアでしょうか.
重たい処理させると本体自体がすぐ熱くなってしまいます.

言語処理のための機会学習入門

言語処理のための機械学習入門 (自然言語処理シリーズ)

言語処理のための機械学習入門 (自然言語処理シリーズ)

ラグランジュの乗数法など,機械学習自然言語処理で基礎となるものから勉強することができます.
高校数学ぐらいの知識があれば,楽に読めると思います.
自然言語処理向きの機械学習だけでなく,一般的な機械学習の入門書としても最適だと思います.
一見難しそうな理論でも,簡単な例題を挙げて説明してくれるのでとてもわかりやすいです.

今年のまとめ

適当に今年をまとめてみた.

1-3月
 卒論でドタバタしていた.卒論発表終わったあとに,手が痙攣しながらPS3とかやってました.


4-7月
 授業やら,研究テーマ決めでドタバタ.あとバイトも始めたのでドタバタ.
 鬱度はこの時期が一番ひどかった気がする.
 まぁでもこの学期だけで必要な単位をほとんどとれたので良かったのかも?


7-9月
 それっぽい研究テーマがやっと思いついた.
 とあるプロジェクトの書類を書いたりしながら,ERATOのお手伝いをしたりした.
 Adaptive keyboardのプロジェクトにも参加してみた.


10-12月
 とあるプロジェクトのプレゼンの準備したり,研究の実装をはじめたりした.
 あとこの時期は学会参加もあったりしたので発表練習でドタバタしていた.
 でっ,来年3月終わりか4月初めに締切にある学会に向けて,研究の実装を進める.
 いや,これ間に合う気がしないんですが・・・ ←今ココ




今年1年で何が学べたのだろうか.
リスト化してみると
・英語の苦手意識が和らいできた(まだヘタクソだけど)
・論文読むのがちょっと速くなった.
Haskellがちょっと組めるようになった
・MPIとCudaのプログラム
・UIとCGの知識がちょっと増えた.


何か少ないな・・・
無駄に長時間寝た

UIST 2010 Student Innovation Contest

10月の最初はUIST 2010 Student Innovation Contestのためのプログラムをしていました.
国際学会のUISTで開催されているコンテストです.
コンテスト内容は,下の動画にあるような特殊なキーボードを使っておもしろいアプリケーションを作れというものです.


id:arc_at_dmzさんを中心として,研究室の人達でアイデアを出しあって何を作るか決めました.
キーボードのキーの配列を下からの階層と捉え,
キーを押すごとに対応する名前空間やクラスの定義のところにカーソルを移動するアプリケーションを作りました.
制作したアプリケーションの詳細はきっとid:arc_at_dmzさんが語ってくれると思うので割愛.

id:arc_at_dmzさんがUISTのポスター発表のついでに,制作したアプリも展示.
賞はとれなかったそうです.残念.


以下反省文
実質的に3日間で作ったので,やはり時間が足りなかったです・・・
自分ももっとこのプロジェクトに時間を割いて手伝うべきでした.