WindowsにおけるRailsアプリの開発環境を改善するWSHスクリプト

RailsをベースにしたアプリケーションをWindowsで開発していて、いつも不便に感じていたことがあります。それは、Railsのテストサーバを起動したりジェネレータを実行したりする度に、コマンドプロンプトを立ち上げてはcdコマンドでアプリがあるディレクトリ…

Building Scalable Web Sites

Amazonで予約していた本が届きました。数ヶ月前に注文した本なので、存在を忘れかけていました。。。 さらっと目を通してみましたが、この本は買って正解でした。 Flickrの技術者が経験して得られた貴重なノウハウが満載で、大変勉強になります。 Webアプリ…

Google Notebookに先をやられました

ついに公開されました。 早速試してみました。FirefoxでGoogle Notebookのページを見に行ってログインすると、Firefoxのエクステンションをダウンロードするページが表示されました。Mac OS Xでは動かないかもしれないという注意書きがありましたが、インス…

「UI as Commons」という発想を図にしてみました

naoyaさんとmiyagawaさんが面白い議論をされていたので、僕もちょっと考えてみました。 バックエンドアプリケーションの API インタフェースを規定するフロントエンド特化型アプリケーション API, UI as Commons お二人の議論を参考に図にしてみると、こんな…

「これだけは知っておけ! vim 勉強会」勉強になりました

secondlifeさんの講義、勉強になりました。 物理的行移動(gj、gk)、知りませんでした。便利そうですね。 あと、:h も知りませんでした。help重要ですね。メモメモ。今度は、vimのカスタマイズなんかを講義してもらえるとうれしいですw これだけは知っておけ!…

zsh: 直前にうったコマンドをクリップボードに(Mac OS X限定)

シェルで打った直前のコマンドをクリップボードにショートカットでコピーとかできたら作業メモとかとるのにえらいベンリだと思った。.zsh-hitory をうまく使ってとかでも。誰か作ってそう。 naoyaの日記より このネタで、初めてのzshカスタマイズプログラミ…

svnじゃなくてsvkでバージョン管理しよう

MacBook Proを買った初日にsvkがインストールできるかどうか試してみたら、DarwinPortsからあっさりインストールできました。今までsvnを使っていましたが、svkに乗り換えた方が良さそうです。 svkを使っていて便利だなと思ったことは、以下の通りです。 イ…

キーのリピート速度の設定は変えた方が良い

vimでスクロールするのにjとkをよく使いますが、MacBook Proのデフォルトのキーのリピートの速度の設定では、viでのスクロールが遅くてストレスがたまります。設定の変更は簡単です。Mac OS Xだと、「システム環境設定」-> 「キーボードとマウス」-> 「キー…

New weapon: MacBook Pro

買ってしまいました。 生まれてはじめてMacを使いました。良いですねMac。特にGUIが気に入りました。今までMacにはあまり興味が無かったのですが、YAPCとかで使っている人を見て、興味を持つようになりました。とりあえず設定は一通り終わって、RailsやCatal…

HACKING: THE ART OF EXPLOITATION

結構前に買った本なのですが、ネットワークの勉強も兼ねて、読み直し中です。セキュリティーに興味がある方にはおすすめの一冊です。システムをhacking(悪い方の意味)する方法について実践的な説明がされています。例えば、バッファオーバーフローの脆弱性が…

はじめての英会話 with パキスタン人

久しぶりにちょっと長め文章のエントリ。就職活動で東京に日帰りで行ってきました。それでその帰りにあった出来事についてちょっと書いてみました。東京から京都に帰る新幹線で、面白い出来事がありました。東京駅から乗車して最初は隣の席には誰もいなかっ…

TAPL: 純粋なλ計算では関数がすべて

TAPLでλ計算を勉強していて、チャーチ数という面白い数(関数)を知りました。今まで「数字」というのは、数字でしか表現できないと思っていましたが、実はそうではなくて、λ計算の世界においては関数で数字が表現できてしまうのです。不思議ですね。興味を持…

Types and Programming Languages

Audrey Tangさんに刺激されてAmazonで買ってしまいました。 Types and Programming Languagesを勉強することで、これまでとは違った物の考え方ができるようになればなぁと思っています。実際に読み始めると、自分の数学の理解力が壁になりそうな感じがしまし…

Haskell: QuickCheckの意外な使い方

QuickCheckは想像以上にパワフルなツールだ。単にテストをしてくれるだけのツールじゃない。以下の文書を読むと、QuickCheckの意外な使い方が書いてあった。Haskell以外のプログラマーも目を通すことをおすすめする。 QuickCheck as a test set generator こ…

WEB+DB PRESSでSix Apartの宮川さんの連載が

始まるようです。 楽しみです。 WEB+DB PRESS で連載を開始

Haskell: ハイレベルになる勉強方法

Haskellの勉強をしている方へ。Haskellの基本文法をマスターしてから、Pugsのような難しいコードを読めば良いということはないと思う。何となくHaskellの雰囲気がわかった時点で、難しいコードを読み始めるのをお勧めする。その方が絶対勉強になるし、上達の…

Haskell: Readerモナドの実験

Readerモナドで定義されているlocal関数とasks関数の実験をしてみた。 local関数とasks関数を使うと、環境(データを記憶する領域のようなもの)を局所的に操作できることがわかった。 これらの関数をうまく利用すれば、プログラミング言語でおなじみの「スコ…

Haskell: Pugs 6.0.5をビルドするためのパッチ

Pugs 6.0.5(リビジョン29)をビルドするためのパッチを作ってみた。 http://vaio.redirectme.net/pugs/patch/build_pugs6.0.5_r29.patch ただし、このパッチは完全じゃない。makeはできるけれども、make testが通らない。本当に単純なexpression、例えば「1+2…

Subversion: svn diffした時にコミットのログも一緒に表示するスクリプト

最近、Pugsの初期のコードをよく読んでいる。コードを読んでいると、現在読んでいるコードとそれ以前のコードを比較したくなる時がある。そんな時は、Subversionのリポジトリからチェックアウトしてできたワーキングディレクトリで以下のようなコマンドを実…

Haskell: Pugs 6.0.2の評価関数に関するメモ

自分用のメモなので、何をやっているのか気にしないで下さいw。Pugs 6.0.0におけるレクサとパーサの動作は、大よそわかった。 問題はパーサが出力したASTをevalするやり方。Pugs 6.0.2から変数とサブルーチンがサポートされた。それによってsrc/Eval.hsに新…

Google Maps APIがVersion 2に

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…

Haskell: RubyインタプリタをHaskellで実装したRType

RType。 オープンソースマガジン2006年04月号の「ハッカー養成塾」で知りました。 RubyインタプリタをHaskellで実装されている方がおられるようです。 凄いです。 パーサにはPugsで使われているParsecではなく、Happyと呼ばれるまた違ったものを利用されてい…

YAPC::Asia 2006 Tokyo: Learning Haskell by Audrey Tang

YAPC::Asia 2006 Tokyoの2日目の午後からAudrey Tangさんの「Learning Haskell」のプレゼンテーションがありました。はてなから音声ファイルが公開されています。スライドも見られるようになりました。ありがとうございます。 Learning Haskell by Audrey Ta…

Haskell: 初期リリースのPugs 6.0.0をビルドしてみよう

「Pugsが今熱い。」そう思ってPugsの最新版であるバージョン6.2.11のソースコードを読んでみると、そのソースコードの量に圧倒されます。とてもじゃないけど、ソースコードを理解するのは難しそうです。開発が進めばもっとPugsの規模が大きくなって、もう追…

YAPC::Asia 2006 Tokyo

今日はYAPCに参加するために東京に来ています。各プレゼンの詳しいことは京都に帰ってから書こうと思っています。今日は普段絶対にお会いできないスーパハカな方々を生で見られて大変満足しています。特にSix Apartの宮川さんやPugsの作者であるAndrey Tang…

Haskell: Forthインタプリタの実装

完全ではないもののForthパーサが動作するようになったので、次にForthインタプリタの実装を行ってみました。Harrothチュートリアルの説明を読みながら実装すると、それほど大きな問題もなくインタプリタが動作するようになりました。ForthのコードをASTに変…

Haskell: Harrothチュートリアルを読みながら実装したForthパーサ

Pugsの勉強をしようと考えている方は、以下のリソースを読むと面白いかもしれません。 Harrothチュートリアル ソースコード Harrothチュートリアルでは、Forthというプログラミング言語のパーサをHaskellで実装しながら、パーサについての理解が深められるよ…

Haskell: ミニコンパイラの解体

前のエントリで、Haskellで実装したミニコンパイラを紹介しました。今回はこのミニコンパイラの字句解析のパーツだけを取り出して動かしてみます。必要最小限なコードを切り出して動作させてみたかったので、今回対応する計算式は「自然数の足し算」のみです…

Haskell: ミニコンパイラを試す

Haskellで実装された勉強用のコンパイラがないか探していたらありました。Haskellでコンパイラを書きたいと思っている方や、Pugsの実装に興味のある方は、今回紹介するミニコンパイラに興味を持ってもらえると思います。 Simple compiler example このコンパ…

希望

最近Haskellをさわっていて、またコンパイラにちょっと興味が出てきました。実は、学部生の時にflexとyaccを使って電卓を作る実験の授業がありました。結構楽しかったです。それで、その実験のために、O'REILLYの「lex & yacc」という洋書を買いました。Hask…