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

Rails by the Waypoints - Doug Fales

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

  • I went about integrating a GPS and a Digital Camera to create a new kind of website. It would combines pictures, GPS tracks and user notes. The result was walkingboss.
  • Mashup definition from wikipedia: A mashup is a website or web application that uses content from more than one source to create a completely new web application.
  • Maps are mad hot. People are enchanted by them. That’s why every second web developer has written a mashup involving the google maps api.
  • The impetus for the site was that I was going to run an ultra-marathon, and since I was pretty sure I wasn’t going to run a fricking ultra-marathon again, I wanted to preserve the memory somehow.

Mad simple steps to use the site

  • Go on a trek with your GPS
  • Snap some photos
  • Upload your GPS log and timestamped photos to the site and you’ve got an integrated track.

Lessons Learned

  • This web 2.0 isn’t all that bad after all
  • There’s mad free api’s out there: search, maps, photos, movies, music
  • Rails is a great glue for these things (and he claims to have written about glue before the linux journal article).
  • On an unrelated note: when dude arrived at the conference, he realized that the railsconf facebook didn’t have an api. He then informed us that apparently now it does. It’s pretty unreasonable to be able to throw that together in about a day. Rock on man.
  • Called out Paul Graham and nasty little problems, which are the ones that you don’t learn anything from. Luckily rails helps you avoid the nasty little problems and keep the momentum going.

Dude seems mad genuine. Much love.

Posted in  | no comments | no trackbacks

Internationalizing Rails - Jeremy Voorhis

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

I was sort of getting access to the internet for the first time of the conference during this talk, so I didn’t get much listening done.

  • A pseudo-standard has been established for the Spanish Latin American locale: es-419 (whereas usually locales look like: en-US)

That’s all I got. He was actually very knowledgeable, and when he ended his talk 20 minutes early with an awkward “err, thank you,” it was quite funny.

Posted in  | 1 comment | no trackbacks

Paul Graham Keynote

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

  • “The Power of the Marginal”
  • It’s cool if people have never heard of your programming language.
  • Many of the best companies started in garages.
  • Don’t major in what you like unless the thing you like happens to have a great teacher (and business classes typically don’t have good teachers, because most good businesspeople are too busy being good businesspeople to teach).
  • Big companies make bad people filter up to the top, since thoughtful people wouldn’t manage to play the politics as much as is necessary.
  • Outsiders have a big advantage in the extent to which they can take risks; if they fail, who cares.
  • Stupid ideas don’t make you stupid. Not risking enough to have stupid ideas probably means you’re not taking enough risks.
  • Eminent people just don’t have enough time to come up with earth-shattering ideas.
  • One way to make sure things are done right is to not delegate. Do everything yourself.
  • Since outsiders haven’t specialized and become known for one thing, they have the opportunity to work on a wider variety of things.
  • Eminent people refer to things they’re scared of as “not ready yet.” If someone refers to a programming language as “not ready yet,” jump on it.
  • Small projects have the potential to be perfect. They can have a personality. They can be done tonight!
  • Most people care more about the opinions of the ten people they care about most more than the rest put together.
  • If you end up being eminent, you may find that the best part is having an audience. (At this point he glances at the audience and smirks).
  • Since the marginal do have so much potential, people will try to dismiss you before you can get your act together: You’re on the right track if people say you’re 1. “Unqualified” or 2. “Inappropriate.” These are just other ways of saying, “we don’t like your type around here.” So if they say 1 or 2, keep rolling and they’re busted.

I definitely don’t like this guy less after having heard him speak. Check him out – his essays are all chilling.

Posted in  | no comments | no trackbacks

Martin Fowler Keynote

Posted by Kevin Sun, 25 Jun 2006 19:16:00 GMT

“The conference people must have thought I would be interesting. I don’t know where to begin to talk about what’s wrong with that.”

“I think rails has legs to carry it into the future. I actually thought smalltalk had legs, but hell, hopefully I can’t be wrong twice about the same thing.”

  • I’m really interested in enterprise design, even though enterprise is a pretty bad word in these circles.
  • I’ve never actually used rails. I would, but I just haven’t needed to build a database-backed web application.

But rails is certainly interesting. Why is that…

Opinionated

  • This is not software for everyone; it’s made for certain kinds of applications.
  • One object to one table. I never really thought it would work as well as it has. ActiveRecord is the best implementation of the active record pattern I’ve seen.
  • There isn’t one architecture that can be used to solve all problems.

Drive Towards Simplicity

  • Enterprise Javabeans (EJB’s) was a framework with enormous power that was difficult to use for practically any purpose.
  • There were backlashes against EJB’s in java (hibernate), and they went still further in ActiveRecord.
  • Ruby and Rails challenge the notion that to do something quickly, it must be a dirty, hackish, unmaintainable mess. Like smalltalk (nice plug), things can be quick and clean. And they can even have testing built in. Awesome! He had the ill English accent and would probably never actually say the world ‘awesome’.
  • Agile dude Kent Beck liked to talk of “Conversational Software Development”: get a feature request, do it in two hours, and talk about it with the customer again.
  • Is it good to fire first and aim later? Perhaps so, depending on how many bullets and how much time you have. If you release software and see how people use it, it’s a great way to gather requirements (despite the fact that the order seems totally backwards).
  • Rails keeps you out of the plumbing and allows you to work on the interesting business aspects of the software.

Ruby

  • My progression in terms of scripting languages I used was: Shell -> Perl -> Python -> Ruby.
  • A lot of what makes rails great is ruby.
  • Railsconf was a bit of a failure since it was necessary to have a conference at all. The best thing would have been if rails was so simple that it didn’t needed a conference at all.
  • He likes throwing stuff together, as long as it’s designed well, and ruby is a great glue language.
  • Smalltalk likes to put everything in a nice neat package, while ruby goes ahead and recognizes the complexities and works at dealing with them.

People in the Community

  • Interesting stuff tends to pop out of an interesting community of people. In fact, that’s why I got into ruby in the first place – Dave and Andy were so passionate about it.

Posted in  | no comments | no trackbacks

Older posts: 1 2 3 4 5