Merb News Nov-16-2008

I’ll try to keep the community posted on the latest merb news. Feel free to email me if you want me to feature your app, plugin, tool or blog post.

Quality time with Matz

The day after Ruby Conf, Yehuda Katz and myself (Matt Aimonetti) were hanging out in the lobby of the hotel. Obie, Rein, Desi, and others were hacking away/chilling. Matz was also there networking before taking off for the airport.

[caption id=”attachment_273” align=”alignleft” width=”300” caption=”wycats, matz, mattetti”]wycats, matz, mattetti[/caption]

Matz and I started talking about the fact that unlike what most people believe, Ruby for the web is fast, way faster than any PHP solution. We looked at different benchmarks, discussed the philosophical differences between Merb and Rails, his own view of web development and how Ruby was perceived in Japan. Yehuda joined us and we started talking about Ruby 1.9.

Koichi had a great presentation about YARV few days before and we spent few hours chatting with the JRuby guys and Laurent Sansonetti from MacRuby. We had some concerns about Ruby 1.9, Matz also asked us about Ruby 1.8.7. It was great to get a direct feedback about what’s going on in the Ruby team, their schedule, process etc… We also realized that we (the Merb team) need to communicate better with the Ruby team when we need something added the language. It was also very interesting to hear Matz’ opinion on Ruby Enterprise Edition.  As everybody knows Matz is a nice guy and that’s why Ruby people should be nice :)  I have to agree, Matz is a very kind and patient person.

Hack time with Aaron Patterson and Bryan Helmkamp

[caption id=”” align=”alignleft” width=”240” caption=”Yehuda (Merb), Charles (JRuby) and Laurent (MacRuby)”]Yehuda (Merb), Charles(JRuby) and Laurent(MacRuby)[/caption]

One of the reasons why RubyConf was awesome is that every other guy was the author/maintainer of a major Ruby library. As you know Merb plays well with a lot of various libraries and having some time to seat down with the maintenairs of these libraries make things way easier.

Nokogiri As already mentioned, we switched to nokogiri before 1.0. Nokogiri is based on libxml2 which is a fast and reliable XML parser. I won’t get into the hpricot vs nokogiri argument, but let’s just say that nokogiri was fitting our needs better. (Nokogiri is only used in the specs, and therefore is not needed to run Merb)

[caption id=”” align=”alignright” width=”240” caption=”David Chelimsky (RSpec), Matt Aimonetti (Merb)”]David Chelimsky(RSpec), Matt Aimonetti(Merb)[/caption]

Webrat is an awesome library that let you test your app by using a virtual browser or by integrating with Selenium. Webrat also switched to Nokogiri and we moved some of our matchers directly to webrat since webrat became a Merb development dependency. Thanks to webrat you can write tests that will fill up forms, follow links, select options… basically act as a user. What’s even better is that you can run these test directly in your browser thanks to Selenium!  Because we think Webrat is totally awesome, we decided to offer framework support so people wanting to use webrat functionalities could do it without struggling, it there out of the box.

I have to say that both Bryan and Aaron are great guys, even though they both had their girlfriends with them, they spent time with us working out some details and discussion options. Thanks a lot guys!

(p.s: both projects also work great with Rails)

Merb presentation at ORUG

Orlando Ruby Group meets once a month and this month I was invited to talk about Merb. Just before me, Thomas Meeks gave a great talk on Nanite. It was really nice to meet a lot of the local Merbists. Most of them went to RubyConf, but I didn’t get to meet everyone, so it was great to a sescond chance to network.

My slides are available on slideshare.net You might be interested in looking at the different Merb app formats (very_flat, flat, core and stack) examples starting slide 45.

Merb presentation at ORUG

RailsCamp Australia

[caption id=”attachment_275” align=”alignright” width=”150” caption=”Daniel giving a talk on Merb”]Daniel giving a talk on Merb[/caption]

RailsCamp Australia took place in Adelaide this year. Of course our Australian core team member couldn’t miss the event. Daniel Neighman aka hassox, the man being merb-auth made it to the event and talked about Merb. (RailsCamp is more of a RubyCamp than a Rails conf so nobody really complained, hassox got a lot of good feedbacks)

Rails Podcast

Geoffrey Grosenbach, one of the first merbists and very well known figure of the Ruby/Rails community recorded a podcast during RubyConf. Geoffrey interviewed me about Merb 1.0 as well as Blake from Sinatra and josh Peek from Rails.

Rails vs Merb drama

I already explained the whole story in a previous post. It seems that Yehuda and David agree on something: Ruby is awesome. David is still ignoring Merb, but is answering indirectly via an interesting series of Rails Myths. Over on Twitter, adzap suggests that Yehuda was just following DHH advise, and was trying to create a conflict because, according to 37signals conflict is good for business. I don’t think that’s what Yehuda had in mind when he replied to Jeremy, but that would explain why DHH ignores (¿on purprose?) the Merb community.

Documentation

Since 1.0 is out, our main focus has been documentation. However we can’t write all the documentation ourselves. So we focused on helping people on IRC/Mailing list so they can help us with the documentation. The Japanese merbists started their own wiki, the Chinese, French and Japanese merbists started their own mailing list. Here is an example of Japanese thread covering some of Merb basics.

The wiki is also growing, I personally added a glossary to the ”Rails to Merb guide”. Showing you the Merb equivalent of some of Rails idioms. I also posted a merb example app with sources available on github.  While this is not a full app, the example covers:

generating an application

generating a resource

specing/testing a model

adding model validation

specing/testing requests

modifying views and layouts

passing flash messages (messages passed from one action to another)

adding authenticated routes

testing authenticated requests

Feel free to fork the project, add more branches (one step per branch please, so people can look at the diffs) etc…

My goal in writing this example was to show people the basics to get started and especilly how to test a merb app. Note that this is NOT the only way, but I feel strong about TDD and by providing you with simple examples you might also give it a try ;)

My next victim will be a Merb slice, I’ll show you how to easily write and test a Merb slice to use, reuse and abuse your code.

Peepcode released an updated PDF covering Merb 1.0

I saw the draft of the upcoming Merb screencast, and once again, Geoffrey does an awesome job teaching you what you need to know.

(p.s: this blog is not sponsored by peepcode ;) )

Yehuda’s beta book on Merb also got updated to cover Merb 1.0.

The first chapter is available for free, the 3 other available chapters cover:

Getting started With Merb Using Merb with a database Automated testing

Since it’s a beta book, you receive update/new chapters automatically.

(print version available later on)

Merb contributor, Foy Savas told me he made a lot of progress on his book and he hopes to have a PDF version out before the end of the year.

You can meet Foy in person in Boston on November 17-20 at the Addison-Wesley Voices that Matter: Professional Ruby Conference.

(I can’t remember who is writing the third book on Merb, please contact me so I can update this section)

I also noticed a bunch of guys on IRC writing plugins and slices, I hope to see even more tutorials very soon.

Merb 1.0.1

Merb 1.0.1 is in the work and should be released in the next few days. It’s just a maintenance release, so nothing new but we expect to ship with the new upcoming version of DataMapper, optimized generator (you will be able to use spaces in between arguments if you follow the unix standard) and some bug fixes.

Qcon

Gregg Pollack from the RailsEnvy hall of fame, is organizing a Ruby track during Qcon, the infoQ conference taking place in SanFrancisco this week. Both Yehuda and I are scheduled to talk. My talk is on Merb for the Enterprise and Yehuda’s is on testing. If you are around, come say hi.

By Matt Aimonetti