123
 123

Sun 12 August, 2007

Click here to bookmark this link.Channel Image01:18 Rails开放课程计划» LetRails
Rails开放课程计划是一个专门针对RoR初学者的开放式培训计划,活动不定期举行,不过目前仅限于北京地区。 根据发起人的设想,为了提高讲师参与的积极性,以及培训的质量,活动可能会收...
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image00:20 patina: A change in appeara...» Projectionist
pa•t•ina
[pat-n-uh ]noun
A change in appearance produced by long-standing behavior, practice, or use.

add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl

Sat 11 August, 2007

Click here to bookmark this link.Channel Image21:46 足球又回来了» Ruby 语言
第一场是拜仁,还好,德甲还能在cctv5上看。有了托尼,克洛泽,里贝里的拜仁,今年会有什么样的成绩呢? 刚说到这克洛泽一个助攻,托尼进球了,太棒了。 比赛结束了,3:0,克洛泽一个助攻两个进球,里贝里,拉姆,卢西奥,也都很兴奋那。 英超和意甲都被天盛买了,好比赛都看不了了。 今天开始,各大联赛就要陆续开始了,又可以为生活添点乐趣了。 不光是看,从现在开始,还要尽量找到地方去踢球,才叫爽。上次踢球,还是去年10月8号,大概,快一年了,真是憋得难受。 想起来都脚痒。
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image18:54 Ruby Hoedown, Day 1» Lovable Lyle
It’s about 11:15 a.m. and I’m walking up the sidewalk to Red Hat Headquarters when someone coming out of the building sees my Seaside t-shirt and asks, “Hey! Is that Seaside the framework… or Seaside the town?” You know you’re around your own kind when you get a question like that.Today was the first day [...]
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image18:42 もってけ! 仕様書» 青木日記
http://alfalfa.livedoor.biz/archives/51085066.html 曖昧要求、それ死ねってことかい?ちょ! (19:23)
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image17:46 has_many_polymorphs:简化多对多映射» LetRails
简介 假设我们要开发一个教学系统,那么老师和学生必然是系统不可缺少的两个model,要建立他们之间的映射,我们的数据库可能看起来是下面这个样子: 但是随着系统的开发,我们发现还需...
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image11:59 Tweets on 2007-08-10» halostatue
bloody headache won’t go away # headache starting to go. finally. # going camping. back online on Sunday. # Powered by Twitter Tools.
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image09:18 exonym: A name by which one...» Projectionist
ex•o•nym
[ek-soh-nim]noun
A name by which one people or social group refers to another and by which the group so named does not refer to itself.

add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image08:09 用批处理(bat)文件切换ip地址» Ruby 语言
因为要连好几个server,因为各种原因,每个server都是在分离的网络中,不能互相访问,必须切换不同的hub,换ip 从网络属性用鼠标来改比较麻烦,所以写个bat文件来执行,只需要双击就行了。 @echo off set eth="本地连接1"   set ip=192.168.1.3 set gw=192.168.1.1 set netmasks=255.255.255.248 echo change ip to %ip%   netsh interface ip set address %eth% static %ip% %netmasks% %gw% 1   rem netsh interface ip set address %eth% source=dhcp pause close netsh interface ip 命令跟ifconfig类似。
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image08:04 推荐个diff工具» Ruby 语言
WinMerge,非常好用,最基本的能比较两个文件或者两个文件夹,随便选中两个文件点右键就可以比较。 界面也非常好看,diff出来不同的一行,改变的和没变的用不同的颜色表示。 当然从名字来看,它还是一个merge工具。 去看看吧http://winmerge.org/
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image08:00 REST有什么好的» Ruby 语言
REST(Representational State Transfer )在Rails里已经被支持了,但是始终搞不清它到底好在哪里。以下均为个人理解,如果不对的地方请指正。 REST以资源为中心,在典型的oltp系统里这个资源就是一个数据库记录,分析层上是一个业务对象。 rest把资源放到URL里,而对资源的CRUD操作则放在http的header里。(因为现在的浏览器还只支持get和post,而delete和put则需要格外处理,rails里是用了input hidden控件) 对于对象的操作,不像以往那样表现在URL上,比如/blog/delete/1表示删除id为1的blog项目,在rest里,只需要/blog/1至于是删除,还是更新,在URL里是看不出来的(这样会不会有问题?比如用户从URL看以为当前是show,F5刷新了一下,结果实际上是delete)。 REST真的把URL变得简单了?如果只是长度小了的话可以算是。也许REST的好处就是使得URL的数量变小。 当然,以上看法只是对使用浏览器来操作web应用的场合,至于web service的话,不需要用户了解多少url等内容,也许会确实变得简单。 这里有一个简单的介绍教程,REST的
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image07:52 横浜» Matzにっき
明日の一便で移動するつもりだったが、 台風が近づいていて、早々に結構になってしまったので、 今日のうちに移動。なんか今週は出張ばかり。
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image07:52 先達の業界に学ぶプロジェクトマネジメント 第1回 20年は遅れているITプロマネ:ITpro» Matzにっき
IT業界のプロジェクトマネジメントが「遅れている」という点について 否定するつもりはないけれど、 それがソフトウェアが人類の経験したことない複雑さを持つことを軽視できないと思うんだけど。 連載が進むにつれ、そういう点も言及されるのかな。
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image07:52 ウェブキャリアでWebエンジニアとしてのキャリアを磨こう 株式会社ウェブキャリア» Matzにっき
増井さんのインタビュー。 こだわりが垣間見えて面白い。 そういえば、私は椅子や(物理的な)キーボードにはこだわらないなあ。 キー配列や使うソフトウェアには(必要以上に)こだわるのに。
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image07:52 Shoes, a Tiny Toolkit for Making Browser-like Things» Matzにっき
新しいwhyプロダクト、ShoesはGUIツールキット。 サンプルはこんな感じ。 Shoes.app do button "Press Me" do alert "You pressed me" end end こういうAPIは好みだ。 GUI記述はコンパクトな方がよい。GUIに限らないけど。
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image07:52 Download Hadoop at OSCON (Yahoo! Developer Network blog)» Matzにっき
今年のOSCONにおけるHadoopのプレゼンビデオ。 HadoopはGoogleのMap-Reduce相当の 分散コンピューティング環境。Javaで実装されている。 それそのものも興味深いソフトウェアであるが、 シークは遅いと強調している点が印象的であった。 データ量が大きくなってくると全体の挙動が小さいスケールとは 異なってくるというのは、物理と同じだ。っていうか、ディスクのシークってのは 物理的問題か。
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image04:16 A New Pragmatic Studio» { | one, step, back | }

Joe O’Brien and I will be hosting the Test-Driven Developement in Rails Pragmatic Studio in Columbus.

Test Driven Developement in Rails

Mark your calendars. It is official! Joe O’Brien and I will be teaching a new Pragmatic Studio: Test Driven Development in Rails. The first offering of this studio will be in Columbus on October 17th through the 19th.

To quote from the web site:

In this Studio, you’ll learn how to do test-driven development by actually doing it. We’ll teach you how to get started with a solid foundation of testing practices, and then quickly build on those with advanced techniques and tools. You’ll experience a powerful synergy between testing and design that helps you write better software, faster!

If you ever wanted to improve your testing skills in Ruby and Rails, then this wil be the place for you. I’m really excited about this opportunity. I hope to see a lot of you there.


add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl

Fri 10 August, 2007

Click here to bookmark this link.Channel Image23:48 連載:C# 2.0入門 第3回 新しい繰り返しのスタイル − yield return文とForEachメソッド − @IT» Matzにっき
C# 2.0のyield文の解説。 ここでRubyを説明の例に出したのは、Rubyが優秀な言語であり、C#は努力によってRubyに近づくことができる……という主張を行うためではない。 Rubyは面白い言語ではあるが、本来の能力から見ると、最近の社会的な評価は過剰に高すぎるという印象がある。逆に、C#は本来の能力から見ると、社会的な評価が過剰に低すぎる感がある。筆者の漠然とした印象からいえば、個別の機能ではなく総合力で見ればRubyよりもC# 2.0の方がはるかに強力であり、実用性は高いと感じる。 この記事の作者が「本来の能力」とか、「実用..
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image23:48 福岡へ移動» Matzにっき
出雲から夕方の飛行機で福岡へ。 一度自宅に帰るつもりだったのに、会社での作業が長引いて 時間がなくなったので、空港へ直行。 おかげで着替えを取ってこれなかった。 仕方がないので、福岡で着替えを購入しようと思ったが、 土地勘がないので、買い物する場所を探すのに不自由する。 ネットできるケータイを持ってると、こういう時には便利かもしれない。 かなりさまよったあげく、天神でいくつか買い物と食事。 スタッフに予約してもらったホテル(ハイアットレジデンシャルスイート)が めっちゃ豪華であせる。台所があるってどういう..
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image23:48 世界に“コンピュータ”は5つあれば足りる − @IT» Matzにっき
「世界に“コンピュータ”は5つあれば足りる」というのは、 IBMのワトソンが語ったとされる有名な言葉だが、 実は本当にワトソンがそのように行ったと言う証拠はないそうだ。 で、その時とは違う文脈で「5つあれば足りる」という話。 つまり、少数の「コンピューティングファーム」が計算能力を提供し、 普通の人は「端末」からそのパワーを利用するという中央集権モデルが 現実になりつつある。 これまでの「分散」の流れはなんだったの、という気にもさせるモデルだが、 コンピューティングの歴史では集中と分散は振り子のように繰り返..
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image23:48 Three years with Ruby on Rails» Matzにっき
Railsが世に出てちょうど3年、という話。 たった3年なのか。 Railsは世界を変えてしまった。 特に私の周りの世界を。 もうちょっと地味に行くつもりだったんだけど、 冷静に思い返してみれば、私以外の人にとっては、今の方が幸せな世界ではないかと思う。 Railsが呼び水になって、動的言語(やLispっぽい言語)の認知度が高まっているし、 技術者の幸せをともなう生産性の高さが「普通の人たち」の間で 語られるというのはソフトウェア業界はじまって以来のことではないだろうか。 これからも世界は変わりつづける。 その中心に近いところ..
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image23:48 Rubyビジネス・コモンズ: 設立総会» Matzにっき
設立総会。超地味なRuby Associationとは違って、 この設立総会は立派なものだ。 福岡県知事も来たりするし。 出席者も300人以上いたんじゃないかな。 で、「Rubyの未来」と題した講演を行う。 まあ、これまでの技術的動向の変化の方向と 現在のRubyの立ち位置から、Rubyの未来を(無責任に)予想する というような内容。 しかし、こんなに多くの人がRubyに注目してもらえるというのは、 ありがたいことでもあり、はずかしいことでもあり。 本物の「Rubyバブル」が来ていることを実感する。 今はイメージ先行で中身の薄い風船に、 これから..
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image23:48 37 Reasons to Love Haskell (playing off the Ruby article)» Matzにっき
Rubyについて古典的な記事『Thirty-seven Reasons I Love Ruby』(2000年)の「37の理由」はHaskellでも成立する、という話。 となると、Rubyが好きな人は(少なくともこの基準に従う限り)Haskellも愛さねばならない ということになるが、実際はそうとも限らない。少なくとも私は(現時点では) Haskellを愛せない。 では、38番目の理由があるはずだが、それはなにかと考えると、 Haskellみたいな言語だと宣言的なスタイルが思いつかないと とたんにどうしたらいいのかわからなくなる。 ということは、つまり....手続き型脳の恐怖?
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image13:18 overflow: scroll» Ruby Object Oriented
<style> #comment{  background: url(http://www.matrix67.com/blog/Plugins/GuestBook/face/face1.gif) no-repeat center; }   #test{  overflow: scroll;  border: solid 1px #000;  height: 150px;  width: 400px; } </style>   <script src="prototype.js"></script>   <script>   function a(){    new Ajax.Updater('test',"prototype.js");   } </script>   <A HREF="#" onclick="a()">get it</A> <div id="test"></div>   <FORM METHOD=POST ACTION="">     <TEXTAREA NAME="" ROWS="10" COLS="60" id="comment"></TEXTAREA> </FORM> ?> 相关资料: http://wf66.com/page/20069/2206001711.htm
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image11:59 Tweets on 2007-08-09» halostatue
at l:work waiting on builds to finish. # Powered by Twitter Tools.
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image07:58 選挙結果» Matzにっき
結果として自民大敗ということらしい。 まあ、その辺は流動的なものだから、どうでもいいんだけど。 人気商売は大変だなあ。 で、政治方面には疎くて理解できないことが沢山あるんだけど、 今回、一番理解できないのは、選挙に大敗したから 総理は責任をとって辞任、総選挙で国民に信を問うべきだ、 という意見が自民党から出る、という点。 現在、与党は自民・公明合わせて衆院の2/3を占める圧倒的有利な状態である。 まあ、以前の小泉人気のおかげだけど。 で、参院選挙に大敗して過半数を割り込むような状態で 選挙に望めば、またもや..
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image07:58 選挙» Matzにっき
参院選挙。 私と妻は、期日前投票をすませておいたのだが、 どうも予想外の動きになりそうだ。 しかし、郵政民営化以外の点で自民党と政策的違いはほとんどなさそうな 国民新党の候補を応援してしまう民主党のポリシーはよくわからない。 将来、所属政党が自民党と合流するようなことになれば(郵政問題で妥協が行われれば可能性は十分にある)、 結果的に民主党と対立することになると思うんだけど。 敵の敵は味方、ということか。
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image07:58 イエス・キリストを信じる信仰» Matzにっき
司会。 日曜学校は福音の第一原則のひとつ、 イエス・キリストを信じる信仰について。 あるいは、信仰という言葉が局面ごとに持つさまざまな側面について。 っていうか、聖書は技術書じゃないんで、 同じ単語が文脈ごとに違う意味を持ったり、 あるいは一つの概念の違う側面が強調されてたりして、 それも理解を妨げる要因のひとつだったりする。 まあ、公称数千年かけて書かれた書物だから。
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image07:58 Tiresome, Tedious Bullshit (on Rails)» Matzにっき
システムの規模が大きくなるにつれて、 Rubyによって向上する生産性よりも、低下する保守性の方が問題になるのではないか、 という話。 私自身はそのような規模のソフトウェアを開発したことがないのでなんとも言えない。 が、周りから聞くことから推測するに、ある程度以上の規模のソフトウェアを開発することは それがどんなツールであっても大変である。ので、 分割してしまって小さなシステムの集合にしてしまう 開発プロセスを厳密に定義し、開発要員に徹底する のいずれか、または両方が必要なのではないだろうか。 また、そのよう..
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image05:39 Cibelle – Green Grass» Projectionist

Thu 09 August, 2007

Click here to bookmark this link.Channel Image15:38 表达式的语法解析树» Ruby Object Oriented
制造这样简单而复杂的语法解析树,一直就是我的梦想,今天终于得道入门!说不出的喜悦啊,哈哈! def parse(exp)   exp=exp.scan(/./)   tree=[]   while c=exp.shift     if c!=')'       tree.push c     else       sub_tree=[]       until (cc=tree.pop)=='('         sub_tree.unshift cc       end       tree.push sub_tree     end    end   return tree end    exp ="a-(b+(c/d))" exp = "(3+4)-(1+2)"  p parse(exp)
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image12:21 euthenics: The study of the...» Projectionist
eu•then•ics
[yoo-then-iks]noun
The study of the improvement of human functioning and well-being by improvement of living conditions.

add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image11:59 Tweets on 2007-08-08» halostatue
why doesn’t twitteriffic show the time since tweets were posted? When I first get my tweets after sleep, I don’t know when anyone tweeted # hating InstallShield and the like # trying to implement Inbox Zero. It’s harder when you have three inboxes to zero. # loving "unspecified error" from COM interfaces. The problem? A duplicate key [...]
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image01:50 Mapping Programming Language IRC Channels» chris blogs

I enjoy lurking in obscure IRC channels and often have been amazed how many people I met there I already knew from some other channel. Today, this happened again, so I just had to map all language channels I could find on Freenode and make a diagram of their relationships.

I tried to find all language-specific general channels, and came up with these: #perl, ##c, #python, ##c++, #ruby-lang, #haskell, #bash, #lisp, ##java ###javascript, #perl6, #scheme, #erlang, #ruby, #latex, #lua, #d, #asm, #zsh ##tcl, #ocaml, #fpc, #io, #awk, #sed, #forth, #scala, #ada, #dylan, #sml, and #!/bin/sh.

I also added #rubyonrails, #concatenative, #esoteric, #oasis, #haskell-blah, #ruby-de, #camping, and #rack, which are not really general language channels but interesting to see.

After frustration with R (I first wanted to make a kind-of heatmap), I decided to use GraphViz’s fdp. Here’s the preview of the map (click for fullsize, beware: 1833x2084px):

IRC Map of Programming Language Related Channels

If you want to print it, there also is a PostScript version.

The font-sizes are logarithmic, legend for the edges:

  • If 45% of the smaller channel are in the other channel, there is a bold line.
  • If 25% of the smaller channel are in the other channel, there is a solid line.
  • If 10% of the smaller channel are in the other channel, there is a dotted line.

Enjoy.

NP: Jeff Buckley—Lilac Wine


add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl

Wed 08 August, 2007

Click here to bookmark this link.Channel Image19:24 XRuby0.3.0——奥运倒计时一周年纪念版» 梦想风暴
XRuby0.3.0发布了!恰好今天是奥运倒计时一周年,所以,这个版本顺理成章的成了纪念版。

在这个版本中,除了让更多单元测试通过之外,最大的变化是在Annotation的应用上。关于Annotation的工作,我已经在自己的blog上讨论过一些,这里再整理一下。

Ruby的方法总要有一个对应的底层语言实现。在C Ruby中,这个对应就是一个C的函数,而定义的时候,直接使用函数指针去做这个关联。而在Java中,因为没有函数指针,作为替代方案,我们可以使用一个对象。在XRuby的实现中,RubyMethod的存在就是为了这个目的。所以,在XRuby中对应到Ruby的方法都源自RubyMethod,比如下面这段代码:

public class String_to_f extends RubyNoArgMethod {
   protected RubyValue run(RubyValue receiver, RubyBlock block) {
       return ((RubyString)receiver).to_f();
   }
}

从上面展示的代码中,我们可以看到,为了实现这段方法,最终需要访问receiver的内容,而且,在事实的开发中,我们经常发现一个两难的抉择:究竟把方法的具体实现放在RubyMethod中还是放在Java的方法中。

有了对应的实现,我们还需要将它注册到系统中:
StringClass.defineMethod(“to_f”, new String_to_f());

这段虽然不复杂,重复编写也不是一件让人愉快的事情。

通过Annotation,我们可以更好的解决这个问题,下面便是对应于上面实现的代码:

@RubyLevelClass(name="String")
public class RubyString {
    @RubyLevelMethod(name="to_f")
    public RubyFloat to_f() {
        ...
    }
}

在这里,我们使用RubyLevelMethod将一个Java的方法和Ruby的方法绑定在一起,这个Annotation表示,一方面会生成一个对应于这个方法的RubyMethod实现满足调用规则,另一方面会在Ruby的类中定义出这个方法,减少了一些重复编码的工作量。使用Annotaion避免了前面提及的那种两难,所有的方法都实现在Java方法中即可,这样,便可以有效的减少设计上的迷惑。再有,这个Annotation可以让Java方法和Ruby方法的关联一目了然。

一如既往的欢迎对XRuby有兴趣的人加入到XRuby的开发中来,在这里,总是有一些有趣的问题可以解决。
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image16:13 Kanye West & Daft Punk ...» Projectionist

Kanye West & Daft Punk — Stronger


add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image15:20 Perhaps this book will be u...» Projectionist
Perhaps this book will be understood only by someone who has himself already had the thoughts that are expressed in it.

From preface to Tractatus Logico-Philosophicus


add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image15:20 Polaroids on the dashboard» Projectionist
Click here to bookmark this link.Channel Image15:20 Debate» Projectionist

Debate

Marcel - "50 Cent has accepted an offer to debate Kanye West on live television"
Patrick - my money's on fiddy actually
Patrick - even if they DO make them go through metal detectors

add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image15:19 paralanguage: The set of no...» Projectionist
par•a•lan•guage
[par-uh-lang-gwij]noun
The set of nonphonemic properties of speech, such as speaking tempo, vocal pitch, and intonational contours, that can be used to communicate attitudes or other shades of meaning.

add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image11:59 Tweets on 2007-08-07» halostatue
wondering why InstallShield is still a viable software product. # ah, the vagaries of CruiseControl.NET, MSBuild, Perforce, and InstallShield. # Powered by Twitter Tools.
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image10:48 无题» Ruby Object Oriented
callcc do |c|     (1..100).each do |x|      (1..100).each do |y|         (1..100).each do |z|           if x*x+y*y==z*z             p [x,y,z]             c.call           end         end       end    end    end
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image06:56 What's James Listening To?» James Britt - Code, Content, Caffiene

Someone asked me what music I listen to. For some reason, I drew a blank. I was listening to Kraftwerk earlier that day, but I knew there was some other stuff that had grabbed my interest lately.

So I thought I would write some of them down here.

And right now I have Yo La Tengo ’s I Am Not Afraid of You and I Will Beat Your Ass playing.


add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image03:15 Taste is a microscope of ju...» Projectionist
Taste is a microscope of judgment.

Jean-Jacques Rousseau


add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image01:40 sMoney.EU» Riding Rails - home

The Czech Rails shop Skvělý.CZ has just announced the release of sMoney.EU, a free expense tracking application written in (of course) Ruby on Rails. It sports translations for several languages, too, and joins the growing ranks of Rails applications with localized interfaces. Great job, Robert and team!


add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl

Tue 07 August, 2007

Click here to bookmark this link.Channel Image23:32 Test coverage & elegance» Projectionist

Test coverage & elegance

Chad - Code LOC: 554 Test LOC: 545 Code to Test Ratio: 1:0.98
Chad - LAME
Chad - it would be 100% if not for stupid rcov not understanding my elegance

add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image23:32 Lisa and Christina at brunch» Projectionist
Lisa-and-christina-at-brunch

Lisa and Christina at brunch


add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image23:19 I have become an aerial vie...» Projectionist
I have become an aerial view of a coastal town you once knew.

Fionn Regan in Be Good or Be Gone


add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image17:06 与Annotation打交道» 梦想风暴
因为给XRuby做代码标记的原因,最近一直在Annotation和打交道。在我看来,Annotation是Java 5所有新语言特性中,唯一很难一下子看清楚的特性。其它的特性只要用JAD反编译一下生成的字节码,就一目了然了。我手头的JAD只能处理1.4的字节码,所以,Annotation的某些特性并不能直接反编译出来,比如缺省值。从现实的情况来看,Annotation已经开始有一些不错的应用,比如EJB 3.0,比如JUnit 4。

从为XRuby写代码的经验来看,Annotation真的是一个不错的东西,应用了Annotation之后,代码变得更加干净,XRuby的代码因此就变得清爽了不少。XRuby通过Annotation做了许多代码生成的工作,如果采用手工编码的方式,这些代码没有难度,只有复杂度。重复的代码写起来,只会让人感到繁琐。

XRuby中运用Annotation的方式本质上相当于在做编译器的工作。对Annotation的解析,相当于parser解析源代码,当然,相对于parser来说,解析Annotation要简单得多。之后的过程就是类似的过程,根据前面解析的结果对应着进行代码生成。

在实现XRuby Annotation的过程中,还有一些有趣的工作。比如如何设计Annotation。最初的设计中,RubyLevelMethod有一个type属性,用以标识方法的类型,主要是为了满足XRuby一些优化手段,比如对于无参数和一个参数的方法调用,会做一些特殊处理提高性能。不过,这样的方法通常会有一些特别的签名,这样的签名完全是可以检测出的,所以,实际上这个type属性并不需要,而且,偶尔的误操作(比如无参数方法的type写成了一个参数),还会抛出异常。所以,最终type这个属性被去掉了,当然,这么做需要额外付出一些努力,不过,相对而言,这种努力是值得的。这个问题实际上类似于语言设计一样,哪些东西设计到语言里,哪些部分是隐含可以得到的。

Annotation可以给我们一些提示,通过诸如代码生成等工作,从而把一些操作从原来的硬编码的方式中转移出去,比如事务,AOP等等。我相信,这样会带来一些设计思路的转变,从而更好的进行设计上的划分。更进一步,设计中完全可以加入更多的业务特性,也就会让代码更有DSL的味道。

对比于Java中常见的XML方式,我更喜欢Annotation。首先,它和代码结合的更紧密,这样,在阅读的时候,可以更直观的去理解一些东西,而XML的方式中,秘密都在另外的地方。其次,IDE工具可以很好的联系源码,做一些查找引用某些类的情况就会简单得多。当然,有个问题,每次修改可能都需要重新编译代码,这个问题在开发XRuby Annotation的过程中经常遇到。

InfoQ的Floyd前不久在BEA User Group的活动中谈及企业级Java前景时,提到了他认为几个重要的趋势,包括POJO、IoC(DI),再有就是Annotation。在对Annotation有了更多的了解之后,我认为Annotation是个好东西,只是不知道它的出现是不是有些晚。
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image14:45 双节棍C语言版» Ruby Object Oriented
软考室的烟味弥漫 坐满了程序员 室里面的监考官 系分 已三年 出上午试题的老师 练cpu 耍单片机 硬件功夫最擅长 还会逻辑门三极管 他们学生我习惯 从小就耳濡目染 什么软件跟网络我都耍的有摸有样 什么语言最喜欢 c++面向对象 想要去英伦美帝 学图灵诺伊曼 怎么编 怎么编 离散数学是关键 怎么编 怎么编 数值分析也较难 怎么编 怎么编 数据结构最重要 算法不学莫后悔 死的难看 一段代码写好 一个左子树 右子树 一句不会递归有危险 不停调用 一个优秀的库函 一用好多年 拷贝好带身边 怎么编 怎么编 我学会动态规划 怎么编怎么编 分支限界的难关 怎么编怎么编 已被我一脚踢开 哼 快使用c语言 哼哼哈兮 快使用c语言 哼哼哈兮 编程之人切记 np无敌 是谁在练汇编 背指令集 快使用c语言 哼哼哈兮 快使用c语言 哼哼哈兮 如果我会分治 快速解题 熟用堆栈队列 系统分析 快使用c语言 哼 我用vb描述 哼 万能的回溯法
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image12:06 hypnopompic: Of or relating...» Projectionist
hyp•no•pom•pic
[hip-nuh-pom-pik]adjective
Of or relating to the partially conscious state that precedes complete awakening from sleep.

add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image12:05 Whosoever knows the folds a...» Projectionist
Whosoever knows the folds and complexities of his own mother’s body, he shall never die.

First line of Purple America


add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image11:59 Tweets on 2007-08-06» halostatue
tennis at ten. that’ll be nice. # @ntalbott no, it isn’t. I’ll be upgrading my MBP later this year because of the 2Gb limit. # going through entirely too many tabs in NNW that I’ve been letting build up. # Powered by Twitter Tools.
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image10:01 孤独的素数» Ruby Object Oriented
素数是自尊心强而孤单的数字 除了1和他自己就没有别的约数 要是有一天1都走了,他该怎么办? http://post.baidu.com/f?kz=203864745
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image09:06 大脑算法?» Ruby Object Oriented
给定数字序列{1,2,3,100},指出其中最大的数字. 问题:大脑是如何在眼睛一瞥的情况下,就得出最大数字为100的结论的?
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image05:11 技术信息:Ruby语言和JRuby语言的构建系统AntWrap» 道喜技术日记

技术信息:Ruby语言和JRuby语言的构建系统AntWrap


add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image00:14 WordPress Upgrade» Lovable Lyle
Just upgraded from WordPress 2.1.2 to 2.2.2. Please let me know if you notice anything weird.
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl

Mon 06 August, 2007

Click here to bookmark this link.Channel Image14:50 本を読んでない» 青木日記
最近、(真面目な) 本を読んでないなあ。 では何をしているかというと…… かというと…… 酒? (01:29)
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image14:50 リファレンスマニュアル進捗 (5)» 青木日記
詳細版 ARGF 7/ 28 ( 25.00%) ArgumentError 0/ 0 ( 0.00%) Array 0/ 66 ( 0.00%) Bignum 0/ 0 ( 0.00%) Binding 0/ 1 ( 0.00%) Class 0/ 6 ( 0.00%) Comparable 0/ 6 ( 0.00%) constants 0/ 18 ( 0.00%) Continuation 0/ 1 ( 0.00%) Data 0/ 0 ( 0.00%) Dir 3/ 19 ( 15.79%) Enumerable 0/ 26 ( 0.00%) Enumerable__Enumerator 0/ 4 ( 0.00%) ENV 28/ 29 ( 96.55%) EOFError 0/ 0 ( 0.00%) Exception 0/ 5 ( 0.00%) FalseClass 3/ 3 (100.00%) fatal 0/ 0 ( 0.00%) File 0/ 66 ( 0.00%) File__Constants 0/ 21 ( 0.00%) File__Stat 0/ 42..
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image14:50 リファレンスマニュアルの進捗確認 (4)» 青木日記
驚きの結果が出ました。 ~/c/bitclust % ruby -I./lib tools/stattodo.rb ../rubydoc/refm/api/src/_builtin.rd 73 / 1104 (6.61%) ろく……ぱーせんと……ッ! こ れ は ヤ バ い (02:50)
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image14:50 LL 魂……だった» 青木日記
LL 魂なんてみんなのブログで見るまで存在すら忘れてたよウワァァアン (00:19)
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image14:50 NY77 - The Coolest Year in Hell» James Britt - Code, Content, Caffiene

What’s now commonly called “punk rock” arguably started in New York City around 1974, when bands such as The Ramones and Television took up residence at CBGB’s. However, it was still pretty far underground, and t wasn’t until a few years later that the NYC music scene hit its stride (sparking similar eruptions of audio angst across the States and in the U.K.).

VH1 (oddly enough) is scheduled to show a documentary of those times, NY77:The Coolest Year in Hell

I’m stoked to see this, partly because I was there at the time (so I’m waxing nostalgic), but mostly because my good friend Patty has some film footage included.

This two-part, two-hour documentary tells the story of one of the most astonishing pop culture years in American history. New York City had fallen in decay and chaos. There were not enough jobs, not enough money, not enough police, not enough schools, and not enough social services. There was a city wide black out with major looting, there was a serial killer on the loose, and the Bronx was burning.

Yet out of the chaos, emerged one of the most creative times any city has ever encountered. Hip Hop was emerging from the South Bronx, punk music was emerging from the Lower Eastside, and disco was emerging from Queens and midtown Manhattan. Elaborate, finely crafted graffiti art decorated the subway cars. Break-dancers danced in the streets. There was a huge sexual liberation with sex clubs and a burgeoning porn industry. In the beginning of the year, the world was not paying attention, and most of this activity existed in its own underground bubble. Yet by the end of 1977 all of this artistic expression was about to become part of mainstream America and would remain popular for generations to come. Maybe it would never again be this independent expression, not invented for money or fame, but the need to rebel against the mayhem around them. Maybe it would go on to be commercialized and sterilized for massive consumption. Maybe it would never again be this unique.

I’m trying to be optimistic that it won’t suck too much, and hopefully it will capture the spirit of the day and get the story straight.


add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image11:59 Tweets on 2007-08-05» halostatue
I need to follow Lesson #5, just like @ntalbott did. # @ntalbott I did it once before, sort of, when Francis took over Net::LDAP and wrote all the code. still, it’s beyond time. # Powered by Twitter Tools.
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image10:55 Prolog» Ruby Object Oriented
link(1,2). link(2,3). path(X,Z):-link(X,Z);link(X,Y),link(Y,Z). 下载 Prolog SWI-Prolog/XPCE for MS-Windows
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image10:51 Rails Hackfest:Rails核心贡献竞赛» LetRails
为了鼓励更多的开发者参与到Rails的开发中来,Rails核心团队通过WorkingWithRails举办了一个Rails核心贡献竞赛(Rails Hackfest),对那些为Rails核心开发作出突出贡献的开发者进行奖励,竞赛每月举行...
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image09:07 嵌套量词» Ruby Object Oriented
class Array  def all?    each do |n|     unless  yield(n)       return false     end    end    return true   end    def any?    !all?{|n|!yield(n)}  end  end    A=[1,2,0] B=[3,4]   p A.all?{|x| B.all?{|y| x+y>0 } } p A.all?{|x| B.all?{|y| x-y>0 } } p A.all?{|x| B.any?{|y| x+y>0 } } p A.all?{|x| B.any?{|y| y-x>1 } } p A.any?{|x| B.all?{|y| x+y==y } } p A.any?{|x| B.all?{|y| x+y>=6 } } p A.any?{|x| B.any?{|y| x+y==6 } }
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl

Sun 05 August, 2007

Click here to bookmark this link.Channel Image21:05 リファレンスマニュアルの進捗確認 (2)» 青木日記
…… tools/ を見たらすでに書いてあった。頼りになるな過去の俺。 でもこれじゃ全体の To Do 比率しかわからないな。 さすがに未来は予見できなかったか過去の俺。 まあ、とりあえず組み込みに限定するってのが決まったのは 6月だからしかたない (このスクリプトを書いたのはたぶん 3 月)。 (18:45)
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image21:05 リファレンスマニュアルの進捗状況確認 (3)» 青木日記
うーん、プリプロセッサがからむと本来の #@todo の数を数えるのが異様に大変だ。 このへんはプリプロセッサを使う場合の弱点だよな。 でもプリプロセッサ方式でないと処理系が異様に大変になるしなあ。 よし、力押しで解決しよう。 あらかじめライブラリ (クラス) ごとのエントリ総数を数えておき、リストとして持っておく。 でもって現存する #@todo を毎日数えて、全体に対する割合を計算する。 どうせ #@todo の数のヒストリは取っとかないといけないんだから、 そのヒストリの最初のエントリを全体と考えればよかろう。 それにしても..
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image21:05 リファレンスの進捗確認 (1)» 青木日記
って、最近ルータのトラブルのことしか書いてないので別のことも書こうと思う。 放置ぎみのリファレンスマニュアルについて。 よくよく思い出すと「とりあえず 8 月にリリースね」 とかそんなことを言った記憶がある。 これはマズイ。非常にマズイ。 そもそもどれくらいマズイのかどうかわかってないよ俺。 そんなわけで、まずどれくらいマズイのか確認するために ツールを書くことにしよう。 (18:22)
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image21:05 もう OMRON のルータなんて買わねえよウァーン» 青木日記
いまのところルータは快調のようだ。 早く代えればよかったな。 しかし、とあるところから HTTP な Subversion につないだら REPORT が通らなかったんだよなあ。 でもリファレンスにコミットできている人がたくさんいるから、 こっちのファイアウォールで止められてるわけじゃなさそうだ。 向こうで止められてるのか……。ちっ。 (18:09)
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image15:39 A Big Dev House Thanks to Derek» James Britt - Code, Content, Caffiene

I want to thank Derek Neighbors and Integrum for yesterday’s Phoenix Super Happy Dev House . It was a blast.

I also want to thank those who attended; I’m know it was a bit of a drive for many (40 miles for me. Each away. :) ) but supporting these kinds of gatherings is important in bolstering the local developer community.

The demos were outstanding, as were the ad hoc discussions and hacking sessions. I especially want to thank Brian Shaler (yes, THE Brian Shaler) for showing off his Google Gears work and helping me sort out a Gears + Greasemonkey issue I had.


add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image11:59 Tweets on 2007-08-04» halostatue
watching StarGate (the movie); liking that the BOSE system is finally fully configured. Sounds good. # took the car in for service; biked home (~4km). feels good. it’ll be too hot to bike back to pick it up, though. :/ # done with tennis. need to get the car back; can’t be fixed for a couple [...]
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image10:26 Beyond time» halostatue
In Twitteriffic today, I hit the wrong button on a message sent by Nathaniel Talbott and it took me to his blog, which had his entry about handing off test/unit to Ryan Davis. It has taken me a long time to reach this point, but it has to happen: I no longer have time [...]
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Click here to bookmark this link.Channel Image07:34 图灵机» Ruby Object Oriented
http://baike.baidu.com/view/117065.htm
add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl

Sat 04 August, 2007

Click here to bookmark this link.Channel Image21:43 WG Abi 2007 auf SuprGlu» chris blogs

In der Stufe haben wir ja einige recht aktive Blogger, und man kommt kaum nach mit lesen. Statt alles in mein NetNewsWire zu importieren suchte ich nach einem öffentlichen Feedaggregator und bin dann bei SuprGlu gelandet.

Sämtliche Blogs der Stufe kann man jetzt also gesammelt auf

http://wgabi2007.suprglu.com/

lesen.

Wer noch andere stufenrelevante Blogs hat, bitte bei mir melden.

NP: Bob Dylan—Let Me Die in My Footsteps


add to del.icio.us add to del.icio.us. look up in del.icio.us.   add to furl.net add to furl
Sources