RailsConf Europe 2008: impressions and highlights

Filed Under (Conferences, Rails, Ruby) by Leonardo Borges on 09-09-2008

I’m back in Madrid again after the RailsConf and I think it’s time to say something about it. :)

First off, the infrastructure provided by the conference was really great. The rooms, WiFi connection, food…  Really well organized.

Now to the sessions, highlights:

Tutorials (Tuesday)
- Meta-programming Ruby for fun and profit (Neal Ford, Patrick Farley)
The old and good techniques that made Ruby so powerful. Here Neal and Patrick walked us through the main tricks to meta programming like open classes - and conditionally open them - , dynamically define methods, sending messages to objects and how Ruby can help test your Java code in a much easier way.

I’ve put the link to the slides but honestly I don’t think they’re too much useful without the talking.

Sessions (Wednessday)
- EC2, MapReduce and Distributed processing (Jonathan Dahl)
Jonathan explained the theory behind MapReduce using very simple ruby examples, providing the basics on how to distribute and paralelize tasks accross multiple machines.

He also introduced Hadoop, a platform built in Java that “lets one easily write and run applications that process vast amounts of data”. What I liked the most was the simplicity he explained this subject. As of today, his presentation is not available online. Stay tuned as I’m gonna update this post with the links, as soon as they’re available.

Sessions (Thursday)
- Debugging & Testing the Web Tier (Neal Ford)
If you’ve been concerned about testing your app’s web tier lately, this presentation would probably not show you anything new. Neal talks about the need to debug and test javascript behaviour accross multiple browsers, using tools like Firebug, JSUnit and Selenium. If you have no idea about what these tools are, please stop now and go evaluate them!

We are pretty concerned about testing on my actual job, but selenium tests can be a pain sometimes - a.k.a extremely slow. And what ends up happening is that they are forgotten. Developers only run the test suite if it’s not painful and it’s lightning fast. Here’s is where the highlight for this session comes: CrossCheck.

The idea is to be able to test your javascript code accross multiple browsers without the need to launch them. In fact, you don’t even need a browser installed. The negative point is that it’s kinda fallen behind because now you can only test older versions of browsers. But since the project is getting a lot of traction, I’m pretty sure this will be solved soon.

Conclusion

My overall impression of the other sessions I attended is that some speakers just didn’t have time to properly prepare themselves, what made me think this years’s RailsConf wasn’t all that I expected.

But I also met interesting people and after all one of the key points in a conference is networking. :)

Definitely worth it though. And that’s why I took the time to provide this highlights.

c u soon

RailsConf Europe 2008: heading to berlin!

Filed Under (Conferences, Rails, Ruby) by Leonardo Borges on 30-08-2008

Tagged Under : , ,

The title says it already.

On monday I’ll be going to Berlin to attend this year´s RailsConf.

This will be my first one and of course my expectations are pretty high!

As usual, after the conference I’ll try and give a summary of what happened there, providing as much content as I can.

Anyone else’s going??? :)

C u there!

The biggest Rails event in latin america

Filed Under (Conferences, Rails, Ruby) by Leonardo Borges on 04-08-2008

Tagged Under : , ,

Behold latin american railers!

This year we will have the Rails Summit Latin America on October, 15th and 16th, in São Paulo, Brazil.

It’s by far the biggest Rails event we’ve ever had, including many of the speakers that were present at RailsConf.

Fábio Akita is also one of the speakers and provides more details on his blog.

If you’re a assumed rails geek don’t miss the opportunity to hear from the big names and to know a beautiful country like Brazil.

Oh, btw, if you’re brazilian, like me, you have no excuse to miss this party!

Enjoy!!!


Rails Summit Latin America

Euruko 2008: Materials available

Filed Under (Conferences, Rails, Ruby) by Leonardo Borges on 14-05-2008

Tagged Under : , ,

As some of you know I went to the European Ruby Conf in Prague, this year.

The event was awesome and it’s good to know they finally made available the majority of the slides, here.

They also published Matz’s keynote, and more videos from the conference are being edited right now, so stay tuned to their home page!

Enjoy!

QCon 2008: slides available

Filed Under (Conferences, JRuby, Rails, Ruby) by Leonardo Borges on 04-04-2008

Tagged Under : , , ,

Most of last QCon’s presentations are available for download here.

Highlights to Ola Bini’s on JRuby(pdf) and Randy Shoup’s on eBay’s architectural principles(pdf).

And while we’re talking about JRuby, it’s impressive how it’s becoming a recurrent and big subject. Fast. It had its own small space at big event like QCon and in the last Euruko in Prague, we had a presentation by the JRuby Core Developers Charles Nutter and Thomas Enebo.

Big companies are sponsoring JRuby’s development indirectly or directly, like Sun. And other big companies are endorsing its production ready state, like Oracle, which has a publicly available website developed with JRuby On Rails.

It’s past the time to give it a serious try…

Euruko 2008: European RubyConf, Prague

Filed Under (Conferences, Rails, Ruby) by Leonardo Borges on 25-03-2008

Tagged Under : , ,

On friday I’ll be heading Prague for the European RubyConf.

Anyone is going? :)
Almost 300 attendees already registered for the event. And a few very interesting people will be speaking there like Matz and DHH (this one, through skype).

Besides that, the organization staff is scheduling 2 parties, friday and saturday, for the attendees.

Networking comes to mind, doesn’t it? I think it will be a great opportunity to meet interesting and bright people.

So, see u in Prague!

QCon 2008: Domain Specific Languages

Filed Under (Conferences, DSL, Java, Ruby) by Leonardo Borges on 10-03-2008

Tagged Under : , , ,

Today was the first day of the conference and it started with a tutorial about DSL’s with Martin Fowler, Neal Ford and Rebecca Parsons. We also had as attendants Ola Bini, core developer of JRuby, and others. My expectations were pretty high and the presentation didn’t let me down. I’ll try to put here toghether my impressions and some notes I took while I was there.

Marting Fowler started discussing what DSL’s are and giving some examples that many of us use in our day to day Job. Like the XML configuration files in the Java world. It is a kind of DSL, it has it’s own keywords and syntax in order to express some information that will be used , for instance, to configure an underlying framework.

The problem with XML is that it becomes hard to see the overall behavior behind it. It’s not very fluent to understand the purpose of an XML file just by looking at it for the first time. There is too much “noise”. Things that get into the way of the readability. - YAML files are an much more readable alternatives to XML.

The same happens with a standard framework api code. Let’s take for instance a sample API configuration code written in Java to tackle the domain of hotel reservations. A framework like this could have the following implementation:


HotelService hotelService = new HotelService();
PersonService personService = new HotelService();

Hotel hotel = hotelService.findById(1);
Person guest = personService.findById(10) ;

Reservation reservation = new Reservation() ;
reservation.setFrom(”2008-03-10″) ;
reservation.setTo(”2008-03-14″);
reservation.setGuests(new Person[]{guest});

hotelService.book(hotel, reservation);
Of course implementations of this simple example may vary but we can see here some of the readability problems. One approach we could use for that is to develop a Fluent Interface to wrap this API. This was one of the techniques explored during the tutorial and the actual fluent interface could now look somewhat similar with this:


new Hotel(1)
.book()
.forGuests({
person.find(10)
})
.rooms(1)
.from("2008-03-10")
.to("2008-03-10");

Much more readable, huh? One of the main benefits of using DSL’s they highlighted in the tutorial is the simplicity of code you can achieve. You can actually show this code to a business person and he can understand it. This is a kind of internal DSL.

But there is still a bit of noise in this code. The the parenthesis which are not always desirable, and the use of double quotes for dates. But, this is Java code, and Java doesn’t give too much room for you on the DSL subject. Here was when the speakers changed their focus a bit to Ruby. It’s dynamic nature and metaprogramming techniques provides a powerful flexibility that allows for a looser syntax.

So in ruby the previous interface could look like this now:


Hotel.find(1) .book(1.room).forGuests {
Person.find(10)
}.from(march.10.2008).to(march.10.2008)

We got rid of the double quotes and the code looks more fluent, like a normal english sentence. I doubt a business guy woudn’t understand what this code is doing. With this, we can get closer to the business guys, with a common vocabulary, and fill the gap between us.

This is just one of the ways we could have written this code and is not the actual example used in the tutorial. The syntax also really depends on how readable you wanna make your code. I’ll provide those later when they release the digital format of the presentation.

So one of the flows that the development of an internal DSL can get is to build a framework and define the DSL on top of it. But we should also keep in mind that DSL’s shouldn’t be general purpose programming languages. They should be created to tackle a specific kind of domain problem, so we would have a whole system made of small DSL’s.

Another interesting subject that was touched is testing. How do you test DSL’s?
The suggested approach, and that I think is quite reasonable, is to have separate tests for the underlying framework and another to test the DSL and its parser you can assure you have the expected behaviour of both parts.

This is really just a summary of my thoughts and of what happened there. I’m not going into too much details right now but if you found something too abstract - and it is! ;) - feel free to ask details. I’ll be more than happy to help.

This is definetly an interesting subject and now I’ll head to play more with all that. :)
PS; This is not the whole presentation, just the best of it from my stand point. Other subjects include External DSL’s which can actually involve you coding Lexers, Parsers and Compilers. It’s usually not worth the hassle. And it’s too complicated anyway, that’s why I left it out from this post.

QCon 2008: London

Filed Under (Conferences, World) by Leonardo Borges on 07-03-2008

Tagged Under : ,

Next week I’ll be at QCon, in London, so if any of you are going to the conference and would like meet up for a couple of beers and a tech talk, please don’t hesitate to drop a message.

For those of you who have never heard of QCon before, it is a really nice event to play along with some of the most popular names in the software engineering community. This year’s conference features people like Martin Fowler, Neal Ford, Erich Gamma and much more.

So stay tuned, the conference takes place during the whole week and I’ll try and keep you posted about what’s happening over there.

C u in London!