Mon 10 September, 2007

2. A delusion that one has become or assumed the characteristics of a wolf or other animal.
add to del.icio.us. look up in del.icio.us.
add to furl
add to del.icio.us. look up in del.icio.us.
add to furl
add to del.icio.us. look up in del.icio.us.
add to furl
Under no circumstances should you get involved with a site called Quechup. Delete mail invites that appears to have come from people you know. Most likely they did not approve it.
For more details, see http://www.boingboing.net/2007/09/04/quechup-is-rotten-do.html and http://webworkerdaily.com/2007/09/05/quechup-with-a-side-of-spam/
add to del.icio.us. look up in del.icio.us.
add to furl
一年前,yawl将自己用业余时间做了一年的项目开源了,这就是XRuby。
XRuby project is now hosted on Google Code
有人愿意做Ruby Compiler么?
我就是那时加入XRuby的,依然记得最初见到这个项目时的兴奋,转眼,一年过去了。从2007年1月29日0.1.0发布至今,我们一共发布了7个版本。XRuby正逐渐变得越来越有样子:代码越来越干净,功能越来越强大。
XRuby是我第一次真正全身心投入参与的一个开源项目:常常为自己漂亮的解决了一个问题而自豪,也时常为解决方案不够优雅而寝食难安。依然记得有几次,为了实现一个功能而熬夜;也有本来已经躺在床上,却难以抑制兴奋爬起来继续编码。这一年里,XRuby在成长,我也随着这个项目在成长,对Ruby语言的实现理解越来越深,从最开始的照搬C实现,到现在逐渐有了一些自己的想法在里面。在与大家合作的过程中,从其它人身上学到了许多足以让我受用终身的东西,尤其是yawl。相信其他深入参与XRuby的人与我有着类似的经历和感受吧!
其实,在这一年里,我也并非始终如一的对XRuby付出着。从项目最初开源到发布0.1.0之间有大约4个多月时间,完成了那个新runtime之后,很长一段时间,我并没有写太多代码。那段时间,应该是我参与XRuby过程,感觉最为黑暗的一段时间,因为确实看不到这个项目的方向,没有版本发布,漫无边际的代码等待着编写,而我写的新runtime又很难集成到XRuby里面。这个状态一直持续到0.1.0的发布,我似乎一下子看到了光明,尽管XRuby看起来那么不成熟,但我们的努力终于得到了一丝回报,于是,我兴奋的写下了《XRuby发布了!》 。
在我找回动力之后,XRuby也逐渐开始得到了越来越多的关注,项目成员也逐渐增多,XRuby也逐渐步入开发的正轨。每隔一个多月,我们就会发布新版本,每次新版本的发布,都增强着我们对XRuby的信心。XRuby的成员也通过各种途径向大家介绍着XRuby,也有人开始讨论XRuby。
做开源,最艰难的是什么?技术吗?似乎是,尤其像XRuby,仅仅一个“编译器”的名头,就足以让许多人望而却步了。其实不然,技术这东西,只有不愿意学的,少有难以学会的。参与XRuby并不需要一开始就掌握复杂的编译器技术,因为XRuby包括了许多部分,编译器只是其中的一个部分。时至今日,XRuby中的某些部分对我来说,依然是陌生的,但这并不影响我为XRuby编写代码。从个人的经历来看,builtin是一个很好的入手点,而那里并不多数情况下并不需要了解编译器,甚至几乎不需要了解Ruby内部实现。
在我看来,最难的是坚持。用业余时间,无偿为一个项目付出着。回报?除了知识和技能上的提升,其他都是不可预期的。在这种情况下,坚持着实是一件困难的事情。其实大家可以很清楚的看出来,这个世界上,开源项目不计其数,但真正能让人知道的少之又少,许多开源项目在开始后没多长时间便死去了。在国内论坛中,很多开源项目的发起者都在抱怨,开源环境很差,没有人参与他们的项目。当然,这其中也有项目本身吸引力的因素。其实,做开源是需要一些理想主义的,这样,才能在一条未知的路上前行。XRuby中也存在类似的问题,许多参与者一开始总是兴致勃勃的要求加入,好一些的,贡献了一些代码之后,便很长时间没有声音,有的则在加入之后,一行代码都没有写,便无声无息了。从加入开始一直比较稳定的贡献代码的人,屈指可数。不过,从另一个角度,这也说明了,当一个开源项目具备了一定的生命力之后,并不会因为某个人的不作为而死去。
不管一路上有多少阳光和风雨,XRuby走过了它的第一个生日,步入了第二个年头,大家已经开始尝试着进行Rails的支持,我们会努力让它走得更好。在班加罗尔讲XRuby时,有人问过我,现在XRuby面临的主要问题是什么,我说,我们没有足够的资源。其实,现在可以看到的很多问题对我们来说,并不是非常困难,但却需要投入大量时间来完成。这也是我们始终如一的欢迎有兴趣的人加入我们的原因。如果你愿意和XRuby一起成长,欢迎加入我们!
add to del.icio.us. look up in del.icio.us.
add to furl
add to del.icio.us. look up in del.icio.us.
add to furl
add to del.icio.us. look up in del.icio.us.
add to furl
After a short period of downtime following a massive spam attack, the Rails wiki is now back in business.
add to del.icio.us. look up in del.icio.us.
add to furlSun 09 September, 2007

add to del.icio.us. look up in del.icio.us.
add to furl
add to del.icio.us. look up in del.icio.us.
add to furl
add to del.icio.us. look up in del.icio.us.
add to furlSat 08 September, 2007

Float#mantissa
class Float def mantissa divmod(1).last end end 2.95424.mantissa # => 0.95424
add to del.icio.us. look up in del.icio.us.
add to furl
add to del.icio.us. look up in del.icio.us.
add to furl
add to del.icio.us. look up in del.icio.us.
add to furl
add to del.icio.us. look up in del.icio.us.
add to furl
Tip Add iPhone ringtones now
1. Duplicate and rename any AAC file (or convert other file types to AAC via iTunes)
2. In the Finder, select it and choose “Get Info” from the File menu
3. Change the file’s extension to .M4R
4. If it is already in your iTunes library, delete the original from your iTunes Library (re-import the original back to your library when you’re done)
5. Double-click your .M4R file to automatically add it to your iTunes library
6. Sync to add it to your your iPhone
add to del.icio.us. look up in del.icio.us.
add to furl
Last night I dined at my absolute favorite restaurant, Lavender Asian Bistro, where I had my usual meal of Thai spring rolls and unbelievably good Szechuan beef. After the meal, I cracked open my fortune cookie to find this
add to del.icio.us. look up in del.icio.us.
add to furl
IM
add to del.icio.us. look up in del.icio.us.
add to furl
“ If you love a word, use it! That makes it real. ”
Erin McKean
add to del.icio.us. look up in del.icio.us.
add to furl
2. To hang or droop laxly.
add to del.icio.us. look up in del.icio.us.
add to furl
A: Am I lost, Denny?
D: Depends what you're looking for.
A: Lori Colson thinks I'm lost.
D: Screw her.
D: Have you?
A: That's impolite talk, Denny.
A: Everything okay?
D: I'm the one that's lost, Alan.
A: How so?
D: Empty, I should say.
All my life, I wanted the Red sox to win the world series.
It was like a quest, you know?
Something burning inside.
And now the bastards have done it,
and I feel like...
I don't know, like my pilot light went out.
A: I know what you mean.
A: We've been comfortable aspiring to championship.
I don't know how comfortable we are as champions.
A: What do we do now?
D: I don't know.Must be awful rooting for the Yankees.


add to del.icio.us. look up in del.icio.us.
add to furl
add to del.icio.us. look up in del.icio.us.
add to furl
add to del.icio.us. look up in del.icio.us.
add to furl
add to del.icio.us. look up in del.icio.us.
add to furlFri 07 September, 2007

add to del.icio.us. look up in del.icio.us.
add to furl
The story so far (for the probably 99% of my readers who don’t read a lot of Smalltalk blogs): Avi and I had a discussion last year at OSCON about Ruby and Smalltalk, and Rails and Seaside. Avi was once a Ruby guy, but switched to Smalltalk (but he’s still friendly to the Ruby crowd). I’m currently a Ruby and Rails guy, but I’ve evangelized Seaside rather extensively.
During our discussion, we talked about the different tradeoffs that the two communities make.
I related that story to Neal Ford, which helped him to understand some things he’d been wondering about, which led to these blogs. In a vastly oversimplified nutshell: Ruby has some strengths that Smalltalk is missing, because it gives you a place to put all your stuff. (Please note that this does not imply that Smalltalk is fundamentally inferior to Ruby. I believe Smalltalk, in turn, has other strengths that Ruby is missing.)
James Robertson took issue with Neal’s blog, but gave no real evidence to back up his point. I was getting a bit frustrated with the "all heat and no light" nature of the discussion, until Avi saved the day by explaining the Smalltalk way of doing things.
I have to say that I think to some degree Avi confirms Neal’s and my point: Ruby provides a ready-made place for stuff like "has_many", whereas in Smalltalk, to provide similar functionality while preserving the "statement of intent" (as we’ve been calling it) the tool has to build a place for that statement. Which is fine, but it seems to me that "to make the generated code round-trippable," as Avi says, adds extra complexity to building such tools.
Again, this is not to say that the Ruby way is necessarily superior. These different approaches reflect different tradeoffs. That’s the conclusion Avi and I reached during our chat last year, and we were both happy to agree to disagree. Smalltalkers tend to prefer generating the methods directly, because that way they can get the most value out of their terrific toolset. And Alan Knight (in his comment on James’ blog) definitely prefers generating the methods in-place, so that the full API will be visible to developers. We Rubyists, on the other hand, having generally crappy tools, are free to do things in a way that even rdoc doesn’t understand, and I for one like the fact that all those boilerplate methods aren’t physically cluttering up my source code. You pays your money and you takes your choice.
My interest in discussions like this is not to have a language war, and especially not between Smalltalk and Ruby. (There’s brother against brother for you.) The point is to learn from each other and, through learning about the other, to understand more clearly the strengths of both approaches.
add to del.icio.us. look up in del.icio.us.
add to furl
add to del.icio.us. look up in del.icio.us.
add to furl
add to del.icio.us. look up in del.icio.us.
add to furl
add to del.icio.us. look up in del.icio.us.
add to furl
add to del.icio.us. look up in del.icio.us.
add to furl
add to del.icio.us. look up in del.icio.us.
add to furl
add to del.icio.us. look up in del.icio.us.
add to furl
RailsConf Europe is coming up fast and we’re happy to report that all the seats are now gone. We’ll have one packed show to put on. I can’t wait to hook up with everyone again. Go Berlin!
add to del.icio.us. look up in del.icio.us.
add to furl
“ Everyone is a moon, and has a dark side which he never shows to anybody. ”
Mark Twain
add to del.icio.us. look up in del.icio.us.
add to furlThu 06 September, 2007

add to del.icio.us. look up in del.icio.us.
add to furl
add to del.icio.us. look up in del.icio.us.
add to furl
The schedule of presentations for RubyConf 2007 is up.
A few things of note:
- The conference has the correct number keynotes (i.e., one)
- No Rails™ talks
On the downside, there are multiple tracks in the afternoon. Basically, two rooms each with a series of hour-long talks.
I’m curious how well this will work out. If one wants to see a mix of talks from both rooms, much location swapping is required.
Since there are two rooms, the scene could be much like a NYC subway car at rush hour.
On the other hand, Rubyist tend to be considerate of each other (at least in the past; the culture has changed a bit over the last few years, with an increased tolerance for coarse juvenility) so there’s reason to hope for polite coordination and laminar crowd flow.
Anyways, I hoping they’ll be videos available afterwards for all the talks.
add to del.icio.us. look up in del.icio.us.
add to furl
Fred Thompson is going on the Tonight Show with Jay Leno tonight to officially announce his candidacy for President. Tomorrow he will have some sort of 15 minute webcast about it, too. This editorial points out a few things. First, apparently Fred's supporters are being dubbed "Fredheads." OK, I guess I can live with that. But what's really exciting is this
Thompson is absolutely pro-life, period, no waffling about it. He is solidly pro-Second Amendment, period, no dithering. He's a gung-ho war on terror man, a no-nonsense border security man.Those are four amazingly important issues facing the country, and Fred is solid on all four.
As an aside, I have to say that I don't like the name "war on terror" since terrorism is a tactic, not an enemy. Our enemy is clearly defined: radical Islam. But, since the Bush administration has gone out of their way not to "offend" the ever-touchy Muslims in our midst, everyone is familiar with the term. Regardless, Fred is committed to prosecuting it, so that's a good thing.
add to del.icio.us. look up in del.icio.us.
add to furlWed 05 September, 2007

add to del.icio.us. look up in del.icio.us.
add to furl
add to del.icio.us. look up in del.icio.us.
add to furl
add to del.icio.us. look up in del.icio.us.
add to furl
add to del.icio.us. look up in del.icio.us.
add to furl
add to del.icio.us. look up in del.icio.us.
add to furl
add to del.icio.us. look up in del.icio.us.
add to furl
Pairing
add to del.icio.us. look up in del.icio.us.
add to furl
add to del.icio.us. look up in del.icio.us.
add to furl
add to del.icio.us. look up in del.icio.us.
add to furl
add to del.icio.us. look up in del.icio.us.
add to furl
add to del.icio.us. look up in del.icio.us.
add to furl
add to del.icio.us. look up in del.icio.us.
add to furl
add to del.icio.us. look up in del.icio.us.
add to furlTue 04 September, 2007

add to del.icio.us. look up in del.icio.us.
add to furl
The Refresh spirit has been really catching hold. Refocus Phoenix started (I think) over a year ago. But recently we’ve seen the arrival of Retune Phoenix and Refactor Phoenix.
- Refresh :: Web design and marketing
- Refocus :: Photography
- Retune :: Musicianship
- Refactor :: Software development
What else can we do?
add to del.icio.us. look up in del.icio.us.
add to furl