SXSW 2006 Recap

SXSW was awesome and I can’t imagine it being any better, which exceptions noted below…

I didn’t bother with day-to-day updates. There are plenty of those to go around. While I do have some pics, you’ll find a whole lot of those on Flickr.

For me, it was about getting the chance to meet and hang out with a lot of people I’ve followed for a while online and have a great deal of admiration for. If you are in web design or web development at all, you should attempt to make it next year.

The key to having the best time at SXSW is to be social. While there are a few great panels, most could be better. It’s at the parties and social events and bars where you’ll get the most out of the entire experience.

The exception mentioned above was my night out with Garrett Dimon, Dan Rubin and Matthew Oliphant who’s evening just went from about as good as it could get, to almost as bad as it could. Check out his recap of the evening.

Regardless, it was an incredible time. I’m now energized to get back to work and looking forward to SXSW 2007 already.

Departing for my first SXSW

Later today, I’ll be headed down for SXSW Interactive. From what I hear I expect it to be a blast. I hope to see a lot of people, learn a lot of things, drink a lot of beer and mostly have fun.

Yahoo! releases their UI Library

I’m just beginning to dive into this, but it’s got me excited. They’ve got two versions of each source file, a build one with all the comments and a src which is already compressed for you.

Having worked for a while with Prototype and I’m curious to see how they compare. Seems like provides a lot of whiz bang effects the Yahoo library doesn’t have, but you do have all of these:

  • animation
  • calendar (not sure if there’s a dropdown version)
  • connection (ajax stuff)
  • dom
  • dragdrop
  • event
  • slider
  • treeview (particularly cool)

My biggest issue about it so far is that you’d have to type the namespace of YAHOO about a zillion times. Typing

is a lot more typing than prototype’s terse

Four things…

I’ve been tagged by Stephen P. Anderson so here it goes…

Four jobs I’ve had in my life:

  • Lawn mower
  • Comic book writer
  • Co-owner of Necronomi-Concepts (model kits)
  • Programmer

Four movies I can watch over and over:

Four places I have lived:

  • Longview, TX
  • Amarillo, TX
  • Wayne, PA
  • Frisco, TX

Four TV shows I love to watch:

Four places I have been on vacation:

  • New York, NY
  • Tokyo, Japan
  • London, England
  • Hawaii

Four websites I visit daily:

Four of my favorite foods:

  • Sour cream chicken enchiladas
  • Mac & cheese
  • Ramen noodles
  • Guiness

Four places I would rather be right now:

  • A beach on a tropical island
  • Drinking with friends
  • Playing video games
  • Enjoying life

End of the tag line:

Questions Ruby on Rails skeptics ask

[UPDATE: My example for the issue of Rails generating too much database traffic was actually incorrect for Rails v1.0. Luckily, v1.1 introduced bottomless eager loading, which addresses it. I’ve revised the example below.]

If you have been following anything related to web development at all, you have at least heard of Ruby On Rails. If you’re like me, it makes you want to take a flying leap into developing with it. For personal projects there’s nothing to hold you back. However, if you decide to recommend using Rails with a team that doesn’t know much about it, you may run into some questions. If you don’t have some ready answers, the idea will most likely be shot down quickly and left in the dust.

I don’t like using ‘id’ as my primary key name.

Rails is written to expect the field ‘id’ as the primary key to any typical table. Therefore, ‘id’ in a users table would refer to a user id just as ‘id’ in a product table would refer to a product id.

The important thing to know in order to combat this issue is to that while ‘id’ is highly recommended as a primary key, it’s definitely not required. Here’s an example of creating a User model in rails, but telling it that the primary id is UserID instead of ‘id’.

class User < ActiveRecord::Base
  set_primary_key "UserID"

In addition, by naming your own primary key, you need to assign it a unique value prior to saving anything new to the database. Rails can’t assume your new field is auto-generating or not, so it leaves it up to you to set.

My legacy data doesn’t use that naming scheme.

While you are free to use any naming scheme you want, Rails is definitely built to work with its preferred naming scheme. The main thing to keep in mind, in addition to dealing with how Rails works with your primary keys, is you may have to add code to inform your objects how they are related to each other via the database. You could also lose out on automated functionality like Rails ability to automatically take care of fields like created_at.

Rails generates too much database server traffic.

Some people are quick to say Rails makes way too many database calls when you have a number of objects related to each other in one-to-many or many-to-many relationships. This is because Rails does not load data into objects until they are referenced.

For example, if you have an Order and LineItem object where an Order can have many LineItems which in turn are linked to Products you could have something similar to the following code.

for order in Order.find(:all)
  puts "Item ordered: #{order.line_item.product_id}
  puts "Description: #{order.line_item.product.description}

In this example, there would be one database call for the main order, then two calls to retrieve the line item information then the product description. Here’s a much better approach.

for order in Order.find(:all, :include => {:line_items => {:product}})
  puts "Item ordered: #{order.line_item.product_id}
  puts "Description: #{order.line_item.product.description}

Very similar code, but in the latter version the :include attribute tells Rails to preload the line items and products, so it loads up everything in one database call rather than multiple ones. You also have the option of using the find_by_sql function to specify your own custom call.

It’s difficult to find hosting

Finding a host isn’t much of an issue if you have your own server, but if you’re looking for a shared host, not every host offers it. The number grows steadily, though. TextDrive is a leader in Ruby on Rails hosting, but you can find a growing number of hosts on the Ruby on Rails website.

What about performance

Another frequest concern about Rails is about it’s performance and ability to scale. While some think it may be good for small and possibly mid-sized projects, it doesn’t have what it takes for large scale applications. A lot of this is just knee-jerk reaction. The great thing about the Rails community is that there is constant work on making things better.

RailsExpress is one website that is focused on Rails performance. In addition to a lot of benchmarks, it also includes a lot of tips for making Rails apps perform better.

TextDrive also has a weblog which has some of their experiences being a host for Rails apps. Optimizing Rails Resource Usage is one and I’m sure they’ll post more.

Just as you’d expect with any framework and language, the better the code you write, the more efficient it will run.

Have other questions?

There’s a number of great places to find more information on how Rails works. A number can be found on the Rails webpage for documentation. The Ruby on Rails API documentation is the most up-to-date resource since it is actually generated from the code itself although it’s more like looking up things in a dictionary.

For a more hands-on, descriptive resource you should really have the book Agile Web Development with Rails. I have to warn you that the first part of the book will get you ready to tear into your first application, but the juiciest information is in the latter part which goes into more details about the underlying Rails framework.

More Articles

Page 8 of 10 » ‹ First  < 6 7 8 9 10 >