You are here: Home Blog Hackfest Winner Interviews: Manfred Stienstra

Our popular series of Hackfest winner interviews continues, this time with Rails core contributor Manfred Stienstra

Manfred Stienstra

Editors note: Manfred is best known for his work with localization and unicode in Rails.
Continue reading to find out more.

Q: What is your connection to Ruby on Rails?

It all started with a long time friend Thijs van der Vossen. We met at a web development firm in Amsterdam where he was my project manager. When he left the company to work for himself we stayed in touch and not long after that I started freelancing for him. Eventually he started a small company called Fingertips. One day, after a few years of PHP and Python development work, he found out about this new framework called Ruby on Rails. He told me about it and I wrote some toy applications using Rails. After my studies I joined Fingertips where I work fulltime on Rails projects.

Q: What Rails projects are you working on right now?

At Fingertips I'm currently working on projects for two large psychological test publishing companies, these applications are mostly CRUD and bookkeeping. The biggest challenge here is to come up with a user interface and workflow that older nursing personnel can work with but is still powerful enough to alleviate the strain of filling out tests every day. We're also working on activism and community tools for Greenpeace International, these applications have to work all over the world so they introduce a lot of localization and encoding challenges.

Q: How did you first get involved contributing to the Rails source?

I think contributing to open source projects is a real natural thing to do, when you're passionate about software you want it to be the best it can be. So when I started using Rails I also started sending in patches. I think my first contribution was ticket #379, which was basically a patch to change the shebang line in all the generated scripts.

Q: Tell us about the sort of contribution you made during the contest.

When the contest started I saw it as a good opportunity to clean up the enormous amount of tickets lying around, basically I just started at the top and tried to close as many tickets as I could. Dan Manges, Jarkko Laine and Scott Meade proved to be much better at that than me, because they closed a bazillion tickets. They're real ticket closing heroes.

Most of my patches were small bugfixes, in the end I think only two or three got committed.

Q: If you worked on the Rails source before the contest what kind of contributions have you made?

My most prominent contribution is working on ActiveSupport::Multibyte. In the beginning of 2006 we noticed some encoding problems popping up in our Rails applications. We met Julian Tarkhanov who had just started the “unicode hacks” plugin, which looked like a good solution. Thijs and I offered to help with development because Julian was starting to get snowed under by work on his studies. Our ultimate goal was to develop a simple API that would help application developers and the core team keep Rails multibyte safe. Julian came up with the brilliant chars proxy idea and had identified most of the problem areas in Rails. In order to get the plugin ready for inclusion we needed to do a lot of refactoring and create a pure ruby implementation of a number of Unicode algorithms. I did most of the refactoring and wrote the pure ruby implementation. Thijs kept an eye on the API to make sure it stayed as simple as possible.

I really like working on ActiveSupport because it contains a lot of smart solutions for common problems.

Q: Tell us a bit about your development environment

At the office I work on a Mac Mini with a 23" Cinema Display running OSX. I type on a Happy Hacking keyboard and point at things with my Wacom Intuos 3 tablet. I think it's really important to create a good working environment for yourself and you shouldn't hesitate to spend some money buying good equipment. Your environment really defines how efficient you can work. Screen size is really important. I run OSX mostly for Textmate and the fact that most things just work out of the box.

At home I use a Debian Linux box with a Happy Hacking keyboard and Wacom tablet. I keep a really sober workspace with WMII, uxterm, vim and Firefox. I would really like to see a clean KHTML browser without all the KDE dependencies.

When I'm working on patches I usually have a clean Rails tree and a clean Rails project called “sandbox”. I symlink the Rails tree from the vendor directory in the sandbox project. If I'm working on a bug report I usually reconstruct the problem in the sandbox project. After that I write a test to prove the bug or test the new functionality, then that I hack up a solution to makes the tests run. Once that is in place and I'm confident the problem can be solved I usually stop to think about a better solution and sometimes hack on it for a while to create a more streamlined solution. If I was working on a bug report I check the sandbox project to see if the problem was solved in an actual project just to be sure.

My favorite tools are terminals and text editors with good Unicode support. Because of these requirements OSX and Textmate are just a little bit better to work on than Vim on Linux. It takes some work to get Unicode support all through your software stack in Linux.

Q: What is the best part about contributing to the Rails source?

The web development community is still very young and even though we can borrow certain principles from computer science it brings it's own challenges. I get a kick out of discovering new ways to solve problems and share them with the community, some of the best minds in the industry work with Rails so it's really exciting being part of that community.

Q: With 1.2 released we are now looking forward to 2.0. What kind of features and functionality do you think we are likely to see in this release?

I think flexibility and simplicity will continue to be very important. A framework doesn't have to solve every problem you might encounter, but it should be flexible enough to add new functionality for application specific needs. A good example of this simplicity is the renaissance of HTTP in the form of CRUD, ReST and embracing the Accept header. I would be really happy if Rails would loose some of it's insulation to the HTTP protocol and make the HTTP environment more accessible to the application programmer.

More tangible, there are two things that are currently bothering me in Rails. I think options hashes should be made uniform across the various render types. I also think we should take a second look at the Mime implementation in ActionPack.

Q: Closing words

I would like to thank everyone who made Hackfest possible, especially Jeremy Kemper for his efforts to wade trough the big stream of patches created during Hackfest.

We're currently working on getting some of our internal plugins out to the public, keep an eye out for that at http://fngtps.com.

Hope to see you all at RailsConf.

Enjoy the article? Digg It and help promote Rails.

Sorry, comments are closed for this article.