JavaScript Good Parts

JavaScript Good Partsという本を読んでます。JavaScriptを無免許運転してきた僕には、かなり勉強になってます。Javaのような静的型付け言語から来ると、目から鱗っぽいです。第四章FunctionsのModuleの説明に、こんなサンプルコードが出てきます。 1 var se…

アジャイルで新しいプロジェクト

新しいプロジェクトが始まった。また、同じチームでアジャイルで開発。先週、先々週、僕のいない間に、エピックと呼ばれるストーリーに落とす前段階のとても大雑把な要件を洗った。その場に居なかったのでわからないけど、契約やセールスの過程を通じて明ら…

Authlogicを使ってみた

久しぶりにRailsで遊んでます。以前はrestful-authenticationを使ってたのですが、今回はAuthlogicをユーザー認証に使ってみました。Railscastで簡単にセットアップ完了。しばらく、functionalテストの中でどうやって使えば良いのか迷ったけど、AuthlogicのR…

mongrelが動かない

Mongrel::Gems.require 'fastthread'で死んでるので、fastthreadのバージョンをチェックしたら1.0.1。gem install fastthreadで、1.0.7にアップデートしたら直りました。

rdebugがsnow leopardで動かない

OSX Snow Leopardでrdebugを起動すると、"no matching architecture in universal wrapper"とかいうメッセージで動かない。 gem uninstall ruby-debug-base; gem install ruby-debug-base linecacheで直りました。

読みにくいコード

ある天才君の書いたコードを使ったり、必要に応じて手を入れたりしてます。よくある話かもしれませんが、その人の書いたコードで実現されている機能は凄いです。でも、ソースコードは人が読むことを拒絶してます。例えば、よく規則のわからないハンガリアン…

金曜日

金曜日は、イタレーションの終了する日で3時頃からレトロスペクティブをやって、4時から皆でQuakeとかをやって遊ぶというのが、僕の働いてる慣例です。今週は、うまくイタレーションが推移し、壁に貼ってあるポスト・イットが殆ど終了していました。週の始…

アジャイルの心得

InfoQに出てた記事Agile's "One Essential Ingredient"で、アジャイルにおいて一番大事なのは、Humility(謙虚さ)のカルチャーだみたいなことが書かれているが、うーむと思ってしまう。この記事ではマインドセットとかカルチャーという言葉が使われている。ま…

GMLの勉強

今度仕事で、GMLっていうのを使いそうなのでお勉強中。GMLは、簡単に言うと地図のための情報をXMLで表現するもの。フィーチャー・ドリブンとどこかに書いてあったけどGMLでは。 『橋がある』「その幅は3m』『長さは12m』、それから『場所はxxx, yyy』 と…

アジャイルでのテスト

今回のプロジェクトは、僕にとって初めての本格的なアジャイルでの開発です。ぼちぼちと、気がついたことを書いて自分の考えを整理できたらと思って書きます。まず、テストのこと。ユニットテストは、当然デベロッパーが各クラス毎に書いています。使ってい…

Erlangでリストの処理

Erlangで、リストをイテレートして結果をリストで返す時の、定石のやりかた。リストの先頭と、それ以降を[H|T]でアクセスしたり、パターンマッチングで実行するファンクションを決めたり、随分、Javaとかとは雰囲気が違って頭の体操になります。 map(P, L) -…

Erlangのガードエクスプレッション

なかなかErlangの文法に馴染めません。今日つまずいたのは、if文の中のガードにファンクションが使えないという点。case文を使ったものをif文で書き直そうとしたら駄目でした。なんかよくわからない。googleしたら、やっぱし駄目らしいことが書いてあったけ…

またまたドメインオブジェクト

以下に、僕の理解する所のドメインオブジェクトについて記します。間違ってたり、違うと思うところがあったら指摘してください。Wikipediaによると、ビジネス・オブジェクト(ドメインオブジェクト)とは以下のような定義だそうです。 Business objects are ob…

Erlangの修行

今日は、またErlangの本を読み直していた。IRCLiteを一応理解したつもりなのだけど、前に進む前に、もう一回ErlangのTail-Recursiveとか、spawnとか基本的な言語の要素を復習していた。わすれちゃったから。デバッガーを使ってみようと思ったらトラップ。こ…

デバッガー

僕がNZに来た頃に、最初に一緒に仕事をした開発リーダーの人は、全くデバッガーを使わずロギングだけでデバッグする人だった。もう10年近く前だし、その頃使ってたSunのEJBコンテナーiPlanetなんて当時のJBuilderの中で動かしても遅くて使う気にならなかっ…

XP関係の本

Kent BeckのExtreme Programming Explainedという本をオーダーした。 オーダーしてからAmazonのレビューを見るという間抜けなことをしたら、『説教ばかりで実際的なことを言ってない』とかいうレビューがいくつかあって、うーむ早まったかなぁという印象。ま…

ドメインオブジェクト

数日前に、Javaは長くやってきたのでオブジェクト指向は分る気がするとか大言壮語してしまった。今週、仕事でチームのメンバーと作ってるシステムのドメインオブジェクトについて議論することがあって、ドメインオブジェクトって物が分ってないことに気がつ…

Erlangのお勉強

ほんの単純なこと、例えば、文字列を特定の場所でスプリットしたりするのさえ、未だ、どこにライブラリーのリファレンスがあるのかとか、いったい、そういうのはライブラリーなのか言語の機能なのかとかわかりません。

VMWare Fusion3

VMWare Fusion3にアップデートした方が良いのかなぁ。あんまりWindows起動することもなくなってきたんだけど。

Functional Programmingって何?

一応、長いことJavaで仕事してるので、オブジェクト指向の要素とはどんなもんかは分ってるつもり(例えば、ポリモアフィズムとか、インターフェースとか)。オブジェクト指向的に美しく書けるかどうかは別として。Erlangで初めて、Functional Programming言語…

EASYBとかいろいろ

現在働いてるプロジェクトはアジャイルで開発している。朝は、スタンドアップ・ミーティングで始まり、毎週月曜にストーリー・ブレークダウンを行う。だもんで今日は、午前中、一時間弱ストーリー・ブレークダウン。テスターも加わってストーリーをタスクに…

Eclipseのキーバインディング

仕事でUbuntu、家でOSXなので、EclipseのキーバインディングをUbuntuに合わせたいなぁと思うんだけど。一気に変える方法が見つからない。ユーザーが設定したキーバインディングはExport/Importできるのだが。うーむ、一個一個、手で設定するのもアホくさいし…

Erlangのお勉強

暫く前から、Erlangを勉強してるのだが、ゼンゼン、難しくて前に進めない。Joe ArmstrongのProgramming ErlangのChapter11のIRCLiteの最後に出てる課題をやってるいる。ようやく、グループにログインしてる人の名前の表示と、グループ一覧の表示ができるよう…

ActiveMQ Session.createBrowser

仕事で、最近ApacheのActiveMQを使っている。普段は、SpringのJMS templateを使ってるので間違いも少ないのだけど、テストでQueueにメッセージが届いたかをチェックするのに、QueueBrowserを使う必要があった。ActiveMQのブラウザー画面から見ると、メッセー…

actionForLayer:forKey が動かない

actionForLayer:forKeyが、RubyCocoaから使うとExceptionを起こします。なんでかなぁ。2009-05-26 14:19:15.966 QuadTreeV1[1393:10b] BGView#awakeFromNib: RuntimeError: Ruby object `#' doesn't respond to the ObjC selector `actionForLayer:forKey:',…

RubyCocoaのここが好き

例えば、CocoaのAPIから返された配列をRubyのEnumeratorでアクセスして文字列を正規表現でいじくるとか、やっぱしRubyのほうが楽だぁ。でも、Objective-CのCategoryってRubyのクラスがいつでもオープンなのに似てる。もともとは、何の言語に由来する機能なん…

RubyCocoaで遊んだ

Cocoa、何年か前に遊んだことがあったのだけど、久しぶりに勉強し直すことに。ついでに、RubyCocoaも触ってみた。CocoaのAPIや仕組みを知ってることが前提だけど、凄い。良いかも。

jQueryを使う機会があったので、ちょっとJavaScriptの勉強をした。 jQueryのソースの頭のコードが、何をやってるのか分からなかったので、Firebugの中でコソコソと勉強してみた。 JavaScriptって、functionとクラスの定義の境界が、そこはかとなく曖昧で、ど…

特異クラス(Object Specific Class)を、初めて使ってみた。なんか、嬉しい。

特異クラスというのはあるクラスの特定のインスタンスをサブクラスすること if 僕の理解が正しければ?よくある例は、Stringクラスのto_sを書き換えてしまいましょうというやつ: a = "Hello" class <

これは何やってるんだ?

module ActionController #:nodoc: module Filters #:nodoc: def self.included(base) base.class_eval do extend ClassMethods include ActionController::Filters::InstanceMethods end end 今日は、before_filterを使った。で、ActionController::Filters…