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

Haskellでのマルチメディアの取り扱い

(この記事はHaskell Advent Calendar 2010の25日目です)さてHaskell Advent Calendarもいよいよ最終日となりましたD*1とは違うんです。これまでとちょっと毛色の違う話題として、Hackageで画像・音声・動画のコーデックを調べてみました。コンテンツ編集ソフ…

HMDつくりました〜ハード編

前々から作っていたHMDがとりあえず形になったので報告します。いきなりですが、これがその写真です。 ごてごてしてますね。96.4g*1で、正面のカメラ二台で撮った映像をPCに送って、(加工した後)QVGAのディスプレイ二枚に表示できるといういかにもAR用な仕様…

FT2232Hの落とし穴

FT2232HのチャンネルAとBのMPSSEを同時に使おうとして嵌ったというお話。 環境 2.6.34.6-54.fc13.x86_64 libftd2xx.0.4.16 libftdi.1.17.0 本編 http://www.ftdichip.com/のチップはUSBシリアル変換によく使われますが、複数のチャンネルを同時に使う例はな…

MetaAlbum - twitpicからpicasaに写真をコピー

twitpicの経営状況が不安、twitpicは後から見返すには不便なインターフェースなので Picasaのアルバムにコピーできるサービスを作ってみました。 バックアップやまとめ等に利用できるかと思います。http://meta-album.appspot.com/

Haskellでjsonを楽に扱う方法

Haskellから、twitter APIなどJSONを使いたい場面でどう書くかという話。 よくある書き方 data Tweet=Tweet {text :: String ,user :: User ,id :: Int , ... } data User=User {screen_name :: String ,name :: String ,id :: Int , ... } jsonToTweet :: J…

DesignSpark+pcbcart

http://www.designspark.com/ で無料の回路図/PCBエディタが公開されたので、最近作っているHMDの基板をこれで設計してpcbcartに発注してみました。 DesignSparkの特徴 今のところ 無料で使える (要登録) ガーバー出力可能 Eagleからのインポートに対応(らし…

ファンクションジェネレータつくりました

かなり以前に0.5mmの壁として作り始めて放置していたファンクションジェネレータですが、ようやく完成したのでここにまとめておきます。 概略 前々から何かとファンクションジェネレータがあれば・・・と思う場面があって、機会があれば作ってみたいと思って…

3dプリンタのようなもの、を作っていた

(これは過去のプロジェクトを供養するためのエントリです) はじめに 最近世間では3dプリンタが個人レベルでも使えるようになってきて、arduinoなどのブームとともにちやほやされているようです。 そこで放棄してしまった3dプリンタプロジェクトを思い出した…

回路図の配線を機械に委ねる、という考えかた

(注: このエントリは個人が趣味として行うような小規模プロジェクトを想定して書いています。)さて突然ですがよくある回路図エディタで何か書こうと思った場合次のようなステップを踏むことが多いのではないでしょうか: 使う部品(主にIC)を作成する 大きな部…

3.3V版USBaspの製作

JTAGの無いAVRに書き込む必要があったのでUSBaspを作りました。 また、適当なツェナーダイオードを手持ちに無かったので3.3Vで動作するよう変更を加えてあります。 ファームウェアを書き込む http://www.fischl.de/usbasp/から最新版をダウンロードしてATmeg…

Hawitter - en

日本語が読める方はHawitter - jaをご覧ください。hawitter[hawɪtə] - A simple twitter client hackageDB: http://hackage.haskell.org/package/hawitter It is not hatwitter! 0.4 (beta) changes: added popup menu (post/quit) to tray icon. OAuth supp…

Hawitter - ja

If you don't read japanese, see Hawitter - en. hawitter(はうぃったー) - シンプルなtwitterクライアント hackageDB: http://hackage.haskell.org/package/hawitter 0.4 (beta) 変更点: トレイアイコン右クリックでメニュー(書き込み,終了) OAuth対応 TLM…

hs2bf - 0.5 - 終章?

最近hs2bf関連のエントリを上げていなかったのは、別のプロジェクトに取り組んで(いた|いる)ためです。実のところhs2bfへの興味が薄れたことが原因なので、このままになる可能性も高いです。とはいえ需要はあるかもなので、とりあえず現状のままで公開してお…

振動モータの中身

携帯電話によく使われている小型の振動モータを壊してしまったので分解してみました。 ロータはコアレスで中は空洞になっています。 ステータの磁石は小さい割には強力です。感覚的にはネオジム磁石ぐらいの強さです。 この中に穴が開いていてすべり軸受けが…

LED照明を作ってみた

作業台を照らしていた蛍光灯が切れたので手持ちのLEDで作ってみました。今回切れたのはFPL13EX-Nで13Wのものです。 たまたま手元にあったCREEのXLamp 7090XRを3つ直列で使います。 写真では分かりにくいですが両端のLEDは10度ほど外側に傾けてあります。 LED…

hs2bf - qsort

ようやく数値の計算ができるようになったので、クイックソートを実装してみます。

コーパスとしてのWikipedia

前のエントリでさりげなく"best"を使っていましたが、こういう単語(つまりソートに関して不変)は何個ぐらいあるのかWikipedia(英語版)から抽出した単語リストで調べてみました。

hs2bf - GC

ようやくGC(とλ-liftingとletrec)を実装しました。今回はその説明です。

hs2bf - Hello World?

case式の変換を実装したので、ようやくHello Worldできます。しかし・・・

自宅サーバー構築 - 設定

Arch Linuxのインストールと設定。

自宅サーバー構築 - きっかけ

はてなのファイルアップロード機能は有料なので、画像でないファイルを参照したいときには置き場所を確保する必要があります。 そこで以前からweb application(非公開)やWiki(個人使用)を動かしていた自宅サーバーを使っていました。 問題はそのサーバーが今…

hs2bf - 可視化

今度こそうまくいったので、成果と今後の方針について。

hs2bf - はじめてのぶれいんふぁっく

今回は初めてhs2bfでコンパイルが通るようになった(注:バグあり)ので現状の説明と合わせて報告します。

hs2bf - SAM

G-machine->Brainfuckの中間言語を考えてみます。

計算模型のはなし

hs2bfでBrainfuckの近くを考えているとちょっとした考えが浮かんだので書いてみます。 ここではBrainfuckを言語として見るのではなく、BFネイティブな機械を考えてみます。

hs2bf - 謎の型推論

そろそろCoreに変換するのですが、このあたりで型のアノテーションの方法(全ての部分式? 型変数の扱い?)をしっかり考えておかないと後で悲惨なことになりそうです。 そこで型推論のやりかたを調べてみます。

hs2bf - すっきり甘さ控えめ

今回は、糖衣構文の除去です。

hs2bf - Haskell段を考える(IO編)

ご存知のとおりBFのIOは getChar :: IO Char putChar :: Char -> IO () のふたつだけで表せます。しかしたったこれだけのためにIOモナドを実装するのは考え物です。 というか実のところIOをモナドでやろうというのがあまり好きではないんです。 そこで代替案…

hs2bf - 序章

さて、今更感もあるBrainfuckですが、 BF->機械語とかBFのインタプリタとかは沢山あるようですが、 高級言語->BFのトランスレータというかコンパイラはないようです。 そこで脳姦被害者の救済勉強も兼ねて Haskell(のサブセット)からbrainfuckへのコンパイラ…

ペンタブ購入

WacomのCTH-460を購入しました。入力部分がA6サイズでペン・タッチ両対応。 ・・・のはずなのですが、F12ではどうやらまだ対応していないようです(当然Windowsでは動きました)。 色々forumとかを見てると使われているプロトコル自体は過去のものと互換性があ…