2006-01-01から1年間の記事一覧
始まるようです。 楽しみです。 WEB+DB PRESS で連載を開始
Haskellの勉強をしている方へ。Haskellの基本文法をマスターしてから、Pugsのような難しいコードを読めば良いということはないと思う。何となくHaskellの雰囲気がわかった時点で、難しいコードを読み始めるのをお勧めする。その方が絶対勉強になるし、上達の…
Readerモナドで定義されているlocal関数とasks関数の実験をしてみた。 local関数とasks関数を使うと、環境(データを記憶する領域のようなもの)を局所的に操作できることがわかった。 これらの関数をうまく利用すれば、プログラミング言語でおなじみの「スコ…
Pugs 6.0.5(リビジョン29)をビルドするためのパッチを作ってみた。 http://vaio.redirectme.net/pugs/patch/build_pugs6.0.5_r29.patch ただし、このパッチは完全じゃない。makeはできるけれども、make testが通らない。本当に単純なexpression、例えば「1+2…
最近、Pugsの初期のコードをよく読んでいる。コードを読んでいると、現在読んでいるコードとそれ以前のコードを比較したくなる時がある。そんな時は、Subversionのリポジトリからチェックアウトしてできたワーキングディレクトリで以下のようなコマンドを実…
自分用のメモなので、何をやっているのか気にしないで下さいw。Pugs 6.0.0におけるレクサとパーサの動作は、大よそわかった。 問題はパーサが出力したASTをevalするやり方。Pugs 6.0.2から変数とサブルーチンがサポートされた。それによってsrc/Eval.hsに新…
Google Maps APIのバージョンが2006年4月3日(昨日)にVersion 2になったようです。 Google Maps API Version 2 Documentation Google Maps API Version 2 Upgrade Guide Version 2の新しいfeatureは以下の通り。 Much smaller JavaScript download Two additi…
RType。 オープンソースマガジン2006年04月号の「ハッカー養成塾」で知りました。 RubyインタプリタをHaskellで実装されている方がおられるようです。 凄いです。 パーサにはPugsで使われているParsecではなく、Happyと呼ばれるまた違ったものを利用されてい…
YAPC::Asia 2006 Tokyoの2日目の午後からAudrey Tangさんの「Learning Haskell」のプレゼンテーションがありました。はてなから音声ファイルが公開されています。スライドも見られるようになりました。ありがとうございます。 Learning Haskell by Audrey Ta…
「Pugsが今熱い。」そう思ってPugsの最新版であるバージョン6.2.11のソースコードを読んでみると、そのソースコードの量に圧倒されます。とてもじゃないけど、ソースコードを理解するのは難しそうです。開発が進めばもっとPugsの規模が大きくなって、もう追…
今日はYAPCに参加するために東京に来ています。各プレゼンの詳しいことは京都に帰ってから書こうと思っています。今日は普段絶対にお会いできないスーパハカな方々を生で見られて大変満足しています。特にSix Apartの宮川さんやPugsの作者であるAndrey Tang…
完全ではないもののForthパーサが動作するようになったので、次にForthインタプリタの実装を行ってみました。Harrothチュートリアルの説明を読みながら実装すると、それほど大きな問題もなくインタプリタが動作するようになりました。ForthのコードをASTに変…
Pugsの勉強をしようと考えている方は、以下のリソースを読むと面白いかもしれません。 Harrothチュートリアル ソースコード Harrothチュートリアルでは、Forthというプログラミング言語のパーサをHaskellで実装しながら、パーサについての理解が深められるよ…
前のエントリで、Haskellで実装したミニコンパイラを紹介しました。今回はこのミニコンパイラの字句解析のパーツだけを取り出して動かしてみます。必要最小限なコードを切り出して動作させてみたかったので、今回対応する計算式は「自然数の足し算」のみです…
Haskellで実装された勉強用のコンパイラがないか探していたらありました。Haskellでコンパイラを書きたいと思っている方や、Pugsの実装に興味のある方は、今回紹介するミニコンパイラに興味を持ってもらえると思います。 Simple compiler example このコンパ…
最近Haskellをさわっていて、またコンパイラにちょっと興味が出てきました。実は、学部生の時にflexとyaccを使って電卓を作る実験の授業がありました。結構楽しかったです。それで、その実験のために、O'REILLYの「lex & yacc」という洋書を買いました。Hask…
Haskellの勉強をはじめて1ヶ月ほど経ちました(実際勉強したのは1週間くらいです)。途中までは順調でしたが、モナドがやっぱり難しい。mapとかfilterのような高階関数は割とすんなり理解できたのですが。。今日は久しぶりにHaskellをさわってみました。再帰と…
今まで、自分の中で何か物足りない感じがしていた。でもそれが何かよくわからなかった。 今日、本屋に行った。いつもなら足を運ばない、絵や写真のある書棚に行きたくなった。そこで、1冊の本と出合った。「廃墟漂流」だ。人がかつて利用していた建物などの…
以前、「Greasemonkeyでprototype.jsやscript.aculo.usを使う方法」を紹介しました。しかし、Greasemonkey内でprototype.jsが利用できるようになった恩恵を十分に受けられていませんでした。つまり、Greasemonkeyで提供されているGM_xmlhttpRequest()が可能…
Audrey Tangさんのblogを見ていると、"Papers I'm reading"の所で興味深い論文を見つけました。 On the Architecture of the Parrot virtual machine Parrotとは次世代のPerl、すなわちPerl6の仮想マシンです。ただし、Perl6だけでなく、その他の動的型付け…
2005年はAjaxが流行ました。AjaxによってWebアプリケーションの操作性が劇的によくなりました。しかしその一方で、Ajaxの登場によってWebアプリケーションのアーキテクチャに歪みが生じました。サーバーサイドのコードはMVCアーキテクチャによって綺麗に各層…
先日公開しました はてなブックマークを拡張するW!ボタンですが、想像していたよりも反響があり驚きました。ありがとうございました。さて、今回はそのW!ボタンの開発に利用したテクニックの一部と参考文献を紹介します。W!ボタンの開発には以下が役に立ちま…
気に入ったページをはてなブックマークでブックマークするのはとても簡単で便利です。しかし、せっかくブックマークしたページをあまり効率よく活用できていないと感じたことはありませんか?それはどんな時に感じるのでしょう?では、具体例で説明してみま…
Greasemonkeyではてなブックマークを改造中です。
去年の夏、prototype.js 1.3.1の英語ドキュメントが出て話題になりました。はてなでも多くのユーザーがブックマークしました。Developer Notes for prototype.js covers version 1.4.0そのドキュメントが1.4.0対応になりました。ご存知でしたでしょうか?久…
Greasemonkeyでprototype.jsやscript.aculo.usが使えたら便利だろうな、と考えたことのある開発者は少なくないのではないでしょうか。ちょっとそんなアイデアを試してみたことのある方ならわかると思うのですが、Greasemonkeyでそういった外部JavaScriptライ…
面白そうなブックマークアプリができそうな予感。 はてなブックマークではカバーできない領域を便利にする予定です。 アイデアは秘密。ちょっと作ってみたいと思います。
bashからzshにswitchしてからもう少しで2ヶ月になります。最近はzshに加えてscreenも利用するようになり、さらに快適な環境で作業ができるようになってきました。zshとscreenの組み合わせは本当に便利です。それで、昨日の夜、ふとこんなことを考えました。z…
はじめに Catalystで使える興味深いプラグインがリリースされました。そのプラグインとは、Catalyst::Plugin::StackTraceです。プラグインの名前から予想できるように、スタックトレースをデバッグスクリーンに表示してくれるというものです。待ってました!…