プログラミングの実験場

Haskell/Webアプリ/画像処理/可視化/ITによる生産性向上 など

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

D3.jsの基本パターン

D3.jsをいじっているが、最初に期待していたのよりも難しい。 公式サイトには資料が結構多くあるのだが、あまり整理されていない感じがある。 チュートリアル https://github.com/mbostock/d3/wiki/Tutorials API reference https://github.com/mbostock/d3/…

Halide事始め

MIT Halide(http://halide-lang.org/)というC++の高速画像処理ライブラリが去年リリースされた。C++内のDSLを使っていて、画像処理を、 計算のアルゴリズム アルゴリズム自体は副作用がなく、純粋関数的に定義される。 実装の詳細(「スケジュール」) スケ…

HaskellでASTからのコード生成(1) Writer+Stateモナドによる構造化

前のポストでGADTを使って型付きの抽象構文木(AST)を表現する方法について書いたが、ここではそのASTから他の言語のコード生成する方法について調査・検討した結果を記す。@keigoiさんの記事(http://d.hatena.ne.jp/keigoi/20111206/haskell_tagless_dsl…

GADTによるHaskellの型付きDSLの構築

GADTについて、この解説が分かりやすい(英語)。 http://en.wikibooks.org/wiki/Haskell/GADT 背景 Haskell(というか関数型言語一般)の素晴らしい機能の一つ、代数的データ型を使うと、抽象構文木(AST)をHaskellの枠組みの中で表現できる。 例えば、整数…

D3.jsを使ってブラウザ上で宣言的なデータ可視化

D3.jsというJavaScriptでのDOM操作・可視化ライブラリ http://d3js.org/ が面白そう。D3.jsはHTMLのDOM要素とSVGに対して宣言的にプログラミングすることで可視化が見通しよく書けるライブラリ。D3.jsで生成されるのは図形を含めてすべてDOM要素であるので、…

MIT Halideのインストール方法

C++(とOCaml)で書かれた高速画像処理ライブラリである MIT Halide の自分の環境(Mac OSX 10.8)でのインストール方法の覚書。ここからコンパイル済みのものがダウンロードできる。解説のスライドや論文へのリンクもここに載っている。 MIT Halide http://…

関数型言語による画像処理環境の追求 その2 Haskellで画像データを扱うためのアプローチ

Haskellで画像データを扱う際に、いろいろな手法がありうる。 Pure Haskell Hackageを見てみると、(denseな)行列を扱うpure Haskellの(=外部ライブラリに依存しない)ライブラリで有名なのは、これだろうか。並列化が自動でできるというのが売りのようだ…

関数型言語による画像処理環境の追求 その1 現状と背景

Haskellグループができたのを機にはてなブログを作ったので、せっかくなのでHaskellについてなにか書こうと、僕の専門分野で使う、Haskellをつかった生物画像処理の環境について今一度調べてみることにした。 生物研究での画像処理というのは主に、画像に対…