Selected Q/A from session with Rails Core Team

Posted by Kevin Mon, 26 Jun 2006 10:20:00 GMT

When’s rails 2.0 coming out?

We’ve got to clean some stuff up first. The API will break some old stuff, and rails will lose its backwards compatibility for the first time. We’re pretty focused on 1.2 for now. There’s no rush for 2.0.

What are the strengths and weaknesses of rails in the corporate environment?

Don’t change rails for the corporate environment; fix the corporate environment to work with rails.

Coke or Pepsi?

Coke.

Do you guys hate database fixtures as much as me?

Yes. (The guy from cd baby doesn’t use them)

These guys got a lot of love from the audience, gave a lot of love back back to the audience, and gave a lot of love to each other as well. It was a neat way to end the conference. And the standing ovation at the end: well-deserved.

Posted in  | no comments | no trackbacks

Deploying Rails Applications - James Duncan Davidson

Posted by Kevin Mon, 26 Jun 2006 10:12:00 GMT

“Much of what I was going to say has already been said.”

  • I’ve been presenting talks like these for ten years.
  • I did tomcat. How many people have used that? (almost everyone raises their hand)
  • When I wrote ant on an airplane, I didn’t really think it would be around for this long. It just goes to show that things need to be designed well up-front, because they just might end up hanging around even if they aren’t.
  • EJB’s came from vendors selling software that seemed like it should work. Rails was extracted from a hot application that already worked.

Deployment

  • You can do cool things like posting to an rss feed for each of your deployments.
  • You should control the whole environment to which you are deploying.

Deadly mines

  • Watch out for personal data in log files.
  • Think about open database sockets.
  • Guard file permissions

Yep

  • We need to use http as a pipe. It worked for unix.
  • Mongrel is pretty hot.

Posted in  | no comments | no trackbacks

Rails Takes on the Enterprise with SOA - Joe O'Brien

Posted by Kevin Mon, 26 Jun 2006 09:59:00 GMT

  • Have you read any books on Service Oriented Architectures (SOA). Yeah? Well forget everything…
  • Some applications really need to be big.
  • Just because rails allows you to do things ten times faster doesn’t mean you need to do ten times more. Do the important things better.
  • SOA is not a new idea, but our era of developers may have lost the art of making applications that communicate with each other.
  • SOA is about boundaries – discovering the logical separations between various parts of the business.
  • Must have well-defined interfaces.
  • XML is not the root of all evil.
  • Do not expose your privates (in reference to xml dtd’s of course)
  • Asyncronous messaging is certainly an option when trying to improve the user experience.

Posted in  | no comments | no trackbacks

Rails Acceptance Testing with Open Source Tools - Dave Hoover

Posted by Kevin Mon, 26 Jun 2006 09:56:00 GMT

Update: After wondering for a while why my stupid notes from railsconf were getting top results for google searches on “Selenium”, i realized that I had mispelled Selenium (yeah, some other folks apparently thought there was another “i” in there as well). Whew, lucky I spotted that – now notkeepingitreal.com can get back to its relative anonymity.

Now, back to your regularly scheduled post:

Acceptance testing seems to be all about verifying that you can manipulate the interface to provoke the expected behavior from your application.

Watir

  • Browser specific acceptance testing utility
  • Uses push mentality
  • Has IE and firefox browser compatibility, Firewater – nice name

Selenium

  • Works across pretty much all browsers
  • Uses pull mentality

Sahi

  • Smaller acceptance test utility
  • Tests are written in a variant of javascript. You start up a java virtual machine and hit the page in a browser through a proxy.

Things we want in an acceptance test utility

  • Watir-like API
  • Compatibility of Selinium
  • ActiveRecord integration

Thoughtworks has been working with Selinium and is in fact actively developing and hacking on Selinium to try to make it work better for their situation and for the community at large. Awesome, our quality assurance folks will appreciate.

Posted in  | no comments | no trackbacks

David Heinemeier Hansson Keynote

Posted by Kevin Mon, 26 Jun 2006 09:45:00 GMT

  • Dave Thomas’ suggestions were good, but not necessarily the tone of his message.
  • Sometimes people say that we should be operating more in the “real world”. But I’m pretty confident not living in the real world. That way we’re not subjected to the same constraints that people in the real world experience.
  • Rails has been doing quite well recently…
  • “But this talk is not really about gloating, it’s about CRUD.”
  • Not only does CRUD have a bad name, it also has a bad reputation.
  • Recently, there has been a bit of a renaissance in the http space – POST and GET are not good enough any more! We need the PUT and DELETE verbs as well.
  • So now we’ve got for_form(:person, :method => ‘put’) to do the update, and the URL looks like /person/1 (look ma, no /update!)
  • “Decisions are bad” – with conventions, we don’t need to waste valuable brain cycles on the silly stuff. Constraints are liberating.
  • has_many :though has given us the ability to give a name to an abstract thing that used to be just a cross table between a many to many relationship.
  • Model beyond “things.” We can have models and controllers for things we can’t touch, like subscriptions and memberships.

Man, there’s something really eerie about this guy wanting us to do everything his way…

  • If you’re building a new rails app and you want to use composite primary keys, you’re insane.
  • We’ve been so successful because we have been so opinionated.
  • But additionally, although rails will have many opinions, it is still possible to do things your way. It’s like ruby, where you can go right ahead and call private methods using .send(:some_method) if you know what you’re doing.
  • URL extensions are great? Sure! index.php isn’t great, because it exposes your implementation details for no reason. But index.rss…now that’s hot.
  • ActiveResource is not done yet and he’s been working on it for two days. Seems like a long time.
  • “As I’ve been messing around with these new verbs and this ActiveResource stuff, I’ve found that it’s just so easy; it’s not painful, it’s not like soap.”

Good talk dude. Over at his blog, you’ll find plenty more where that came from.

Posted in  | no comments | no trackbacks

Homesteading: A Thriver's Guide - Nathaniel Talbott

Posted by Kevin Mon, 26 Jun 2006 09:28:00 GMT

He talked about how at the last ruby conf, he glazed over this topic because it deserved a talk of its own. This is that talk. He seems to be talking about starting your own business/independent contracting firm

So there was this Homesteading Act: There were big swaths of landing in the Midwest, and if you went out there, you could stake out like 400 acres of land and either live there for 10 years or live there for six months and pay a minimal amount to become the rightful owner of the land. So you start small, and end up with something neat. You ought to do that with software (and your life).

Opportunity Cost: What is the value of the next best thing you could be doing? Is it better than what you’re doing?

The one important point to take away from this talk is: We are at risk. We can’t see into the future. Call out the risks in your life and look at them.

How do we stake out our space? Take what you know, and see how you could use those skills to get to where you want to be – to be doing what you love. See if you can make a jump to get a bit closer to where you want to be.

Back in the days of the Homesteading Act, land was limited. Today, “land” is limitless. There is plenty of mindshare and plenty of silicon.

Time management is tricky. The book “Getting Things Done” is a hot resource.

Community

  • The folks you work with are very important.
  • Your blood relatives are one of your most important supports: get your family involved with the business!
  • Neighbors: work with other homesteaders. They’re not enemies! There is a multiplicative effect – no subtraction involved.

Tools

  • You need a horse/ox to pull your cart.
  • These are multipliers (beg for them, buy them, or build them).

Sunday

  • We need rest. We need a change in activity from time to time.
  • If you don’t have time to change your activities, you’re doing something wrong.
  • Why are you working if you can’t stop and enjoy the fruits of your labor?

Love

  • You should be able to look back at what you’ve done and know that it is good.
  • People say “passion” because it’s more “proper” than love, but you should do what you love.
  • Never lose your love for people.
  • Never lose your love for learning and improving.

Weather

  • Bad weather provides the best opportunities and greatest risks.
  • We always make assumptions about the future – but we should always call them out and think about the “what ifs.”
  • If you have these homesteading skills, even in the worst of times, you’ll be able to adapt and create something new and useful.
  • Debt is really nasty since it makes it really difficult to adapt in the same way that you could have otherwise.

Death (Sorry, for the morbid ending)

  • What will it say on your tombstone?
  • Consider your exit plan when starting to homestead (when is the end of the thing I’m doing now).
  • How do you define success?
  • If you knew you were going to die in two weeks, what would you be doing right now?

Buy the Ticket! Code something I can use! Code something the person sitting next to you can use!

This guy is mad hot. Read his blog, possibly right now.

Posted in  | no comments | no trackbacks

Testing Rails Apps - Mike Clark

Posted by Kevin Mon, 26 Jun 2006 09:14:00 GMT

  • “I’ve been Java free for 15 months. It’s been a long time, but not long enough.”
  • Testing?! What’s in it for me? Testing won’t be as fun as working on the app, right? But…
  • Tests are, in part, the insurance for the app staying fun.
  • Law of Unintended Consequences: almost all human actions have at least one unintended consequence.
  • When difficulties with dependencies become an excuse for not testing…make a mock object.
  • Anything that sounds like a story is likely a good candidate for an integration test.
  • If you find yourself asking, “How am I going to test this?”, it might be an indication that the application isn’t particularly usable.
  • While testing can slow you down in the very short term, the irony of all of this is that testing can actually help you write better code…faster.

Yep, this guy’s right up Doug’s alley.

Posted in  | no comments | no trackbacks

Rails, Ajax and Universal Design - Jason Kunesh

Posted by Kevin Mon, 26 Jun 2006 09:10:00 GMT

Let’s chat accessibility, shall we…

  • For web design, big things are beautiful, and the center of the screen is the most important.
  • If you take one thing away from this talk: Every 20 minutes, you should look up from the monitor for at least 20 seconds.
  • The computing experience for the blind is mad different than we think. This guy told us that experienced users of screen readers often use playback speeds of 300 words per minute. He played us a sample of a screen reader at 100 wpm and it sounded ridiculously fast.
  • Screenreaders really tend to struggle with ajax.

Personas

  • When trying to figure out usability, use personas to smooth out the rough edges; individuals are quirky and don’t usually represent the masses.
  • You’ll figure out primary, secondary, and negative personas – the primary one is the loyal customer that you want to build for.

The Usability/Accessibility Conundrum

  • Accessibility is not necessarily usability (fat phones with fat buttons aren’t very usable for anyone).
  • Usability is not accessibility (car seats work for everyone except someone in a wheelchair).
  • But accessibility can certainly help with usability (easy grip kitchen utensils are hard to complain about).

Do your best

  • Think a little bit, follow web standards, and you’ll be a good part of way towards creating accessible sites.
  • Download a screen reader! See what it’s like!

Posted in  | no comments | no trackbacks

Rails Legacy DB Schemas with iBatis for Ruby - Badrinath Janakiraman

Posted by Kevin Mon, 26 Jun 2006 09:00:00 GMT

iBatis

  • Do not use this Object Relational Mapping (ORM) tool.
  • Okay, use this ORM tool if you absolutely cannot accomplish what you need to with ActiveRecord.
  • It allows/forces you to manually create the sql that you need to get the objects that fit into your domain model.

Yeah, I didn’t get too much out of this talk. I probably don’t really ever want to use iBatis all that much.

Posted in  | no comments | no trackbacks

Putting the BBC's Catalogue on Rails - Matt Biddulph

Posted by Kevin Mon, 26 Jun 2006 08:50:00 GMT

Yep, that’s a BBC accent.

  • We had to pull about seven million rows of legacy data over into our mysql database to get it rails-ready.
  • We went from the pipe delimited data file to a full-blown rails app in two months.
  • Luckily, the data model was completely redesigned in the 80’s when the data went from index cards to a library application (with a neat green screen), and the data model actually worked pretty well for the web.
  • One of the design concerns for the rails version of the catalogue was for the URL’s to be beautiful, and for each url to have a machine readable version (if there’s a page, it has an xml version)
  • One of the biggest issues (besides the sheer magnitude of data) was getting search to work well. We ended up using some of the built-in search features of mysql, which actually worked pretty well once some of the default mysql configurations were fixed.

Getting ready for the big launch

  • We knew the site was going to get a ridiculous number of hits.
  • Deployment was hardest part – BBC locked the process down, didn’t allow access to the deployment box, didn’t allow gems, had some problems with dispatches blowing up and the mysqld process getting stopped (whoops)
  • The site did launch, and it was pretty neat. Unfortunately, the site is currently offline for the standard review process that takes place for all new BBC features.

Q/A

Someone asked how long it took to do the initial import of the data from the legacy database to the new database. Answer: Two weeks of computer time. Cute.

Posted in  | no comments | no trackbacks

Older posts: 1 2