Meet up at RailsConf 2007

12 January 2007

I just launched a "ConferenceMeetup":http://www.conferencemeetup.com/ site for "RailsConf 2007":http://railsconf2007.conferencemeetup.com. As I wrote in my post "announcing ConferenceMeetup":http://www.bencurtis.com/archives/2006/11/connect-at-conferences-confabb-and-conferencemeetup/, this was an app inspired by what I wish I would have had when I attended RailsConf 2006 and RubyConf 2006, and I hope others attending RailsConf this year will find it useful.

If you're planning on attending RailsConf this year, you're welcome to create a page for yourself at the "RailsConf 2007 ConferenceMeetup site":http://railsconf2007.conferencemeetup.com. You'll need to enter the conference password to create your account. The password is "chunky bacon" (without the quotes). With the huge turnout that's expected to be at the conference, this may be the best way to "bump into" the people you'd like to meet while you're there.

If you have comments or suggestions about the site, I'd love to hear them. Feel free to "let me know":/contact what you think.



Connecting at Conferences

13 November 2006

I was a little surprised to read about Confabb this morning. I've been working on a similar type of application, ConferenceMeetup, in my spare time.

After going to a few conferences, I really wanted a tool that could help me connect with other people while at the conference, so I built one. The idea behind the app is to provide a private community site for conferences where their attendees can learn about each other, connect with each other, and provide feedback to conference organizers and presenters about the presentations.

It's been a fun project, partly because Rails makes it so easy to build these types of applications. I think that ConferenceMeetup would be useful to have at any conference. In fact, I appreciate the validation of having some smart people agree with me on the value of having such a service. :)

Update:

After reading Tim's comment for this blog post, I was reminded that I didn't mention Web Connections (which I had intended to do — sorry, Tim!), the app that he built that has the same sort of theme. I saw his app after building ConferenceMeetup and I really liked it. I agree with his comment that it really is about the community of people that are participating in the conference. Connecting with the people there makes the event much more enjoyable.



Add TextMate to make great blog juice

19 October 2006

This is fun. I recently discovered how to blog with TextMate, and I'm loving it. Now if I could just edit the slug, I'd be in blogging heaven.



Automated Test Case Reporting

28 August 2006

Over the weekend I added a feature to Tesly to allow the results of test cases to be reported via an API. Of course, the first testing environment to be supported is Rails (Test::Unit). :)

By installing the Tesly Reporter plugin, Rails developers can have the results of their automated tests be reported to Tesly so that other developers, managers, and clients on their projects can see at a glance what is being tested and what the latest results of those tests are. I also used the CSS progress bars from Tobi to make it extremely easy to see the health of the project according to the test results.

After creating a Tesly account (Personal plan or better) and installing and configuring the plugin, you can run your tests as usual (rake, rake test:units, etc.). After each test run, the results will be sent to Tesly and recorded in the database. Each test file becomes a test plan, and each test method becomes a test case. The project, test plans, and test cases will all be created on the fly if neccessary, or updated if not. You can then change the names of the test plans and test cases and the automated reporting will still work.

I've been looking forward to having this feature for a while now, and I'm excited to be able to use it. I hope you will take it for a spin.



Rails is growing up

15 August 2006
Rails is growing up, indeed. I'm hoping that last week's security incident with Rails will bring a few needed changes to the Rails world, some of which I'll detail here. Before I get started, though, rest assured that I'm a very happy Railser. Even before I was completely sold on Rails, I admired what it could do (back in the 0.10 days, even). Now that I have been completely sold on Rails (since 0.13), life just wouldn't be as good without it. 1.1.6 is a long way from 0.13, though, and now is as good a time as any to make some changes. I hope these thoughts can be be conversation starters for the Rails core team and those interested in the continuing success of the Ruby on Rails framework.

As we learned last week, people can get a little cranky when the framework on which they depend undergoes changes that disrupts their schedules. I myself was frustrated that so little information was initially released that I had to stop what I was doing to diff the subversion branches so I could find out what the problem was. Obviously, change happens, and it's definitely better to get bugs fixed than not, but there are some things that can be done to improve the Rails development process that should help Rails continue to grow and be the thriving environment we all want it to be. Here are my suggestions that will help people like me, who derive their livelihood from development with Rails, continue to be successful with Rails and continue to be able to recommend it to clients, bosses, and the like.

First, here are some things we need realize about where the Rails community is today, so that we can focus our energies on supporting that community.

1. There is a large and growing community of developers, projects, and businesses that are relying on this framework for their success. Gone are the days that we can just toss out a release and expect everyone to upgrade quickly (or even at all). The events of last week showed there is a significant number of people that either can not or will not upgrade at a moment's notice, either because their operating environment is too restrictive to move quickly without sufficient justification, or because they have made decisions (for whatever reason) to stick with a particular version of Rails. These people, who are often the champions of Rails in their organizations or among their peers, need to be considered when issues arise with or changes or made to the Rails framework.

2. Quite a community of code has grown up around Rails. There are now more than 300 plugins listed in the plugin directory, a few of which are very widely used, such as Acts as Authenticated and Rails Engines. Regardless of whether the core team uses or even likes the popular add-ons to Rails, the fact is that they are here to stay, and many people depend on them. If these add-ons are going to be broken by a release, we ought to know that before the release happens and have a plan for dealing with that breakage.

Now that we have a couple of ideas about the environment in which we find ourselves, here are my suggestions on how we can best support the Rails community as Rails continues to grow.

1. Have a QA team. This could start as a team of one, but I do feel the QA team needs to include people who are not core contributors, for two reasons. First, it always makes sense to have someone besides the developer verifying changes that are being made to the code. Of course unit testing is great, but you also need a fresh pair of eyes to catch things like a missing set of parentheses in a regular expression. Second, we don't want to take any of the core team away from their responsibilities of actually building the framework by having them dedicated to QA. Yes, the developers should be reviewing each others work, but we want them to primarily build, not inspect.

2. Have a test matrix. We saw the beginnings of this in #rails-security last week. Let's continue that good start by making the test matrix a permanent thing, with continuous integration regularly checking changes against various environments. The deployment scenarios should definitely include the plumbing variations like Apache/Mongel, Lighttpd/FastCGI, etc. The matrix should also include commonly-encountered environments, like applications dependent on the most popular plugins and Rails Engines.

3. Follow development best practices. As I mentioned, I was frustrated by having to resort to diff to get even a hint as to the nature of the security hole, but that frustration was compounded when I saw in that diff that additional features had been added to a bug fix release. I'm a big fan of the filter_logged_params plugin, and I'm glad it's now in core, but a bug fix release is not the time to add it to core. If you are going to make a critical bug fix release and then urge people to immediately install it, the changes in the should be as minimal as possible. No new functionality should be added.

4. Improve the bug/patch submission process. I hesitated to add this item to the list, since I'm not sure I have a good recommendation, but the patch submission / bug reporting process needs some help. Patches languish far too long in Trac, frustrating those who submit them, and the signal-to-noise ratio can be low, frustrating those who review them. Perhaps the new QA team can be the front line of people who review new Trac submissions, thus reducing the noise seen by the core and letting them more quickly get to and incorporate the quality tickets.

Again, let me say how much I enjoy using Rails and how much I appreciate the effort put in by all those who contribute code, documentation, support, etc. This is why I felt I had to write this, as the better Rails is, the happier I'll be. If these suggestions are followed, I know we'll be on the track to a more reliable and predictable development and release process for Rails, and that will only make life better for all of us who use it.