Archive

Archive for the ‘RailsConf’ Category

Rails Studio Quotes

December 10th, 2006 1 comment

So, people that know me realize I have a thing for quotes (see those from RailsConf as well as NFJS local edition). While there weren’t a ton of memorable quips from my recent experience at Pragmatic Studio (see Day 0, Day 1, Day 2 and Day 3) there were a couple that I had to share. Again these are largely paraphrases but I think I’ve captured the gist.

This exchange occurred when I asked Mike how he was “hiding” his Keynote deck while in play mode (i.e., switching back to the desktop without hitting escape):

Mike: “Just hit H – one of the things Dave taught me.”

me: “The list would be long”

Mike: “The things I learned from Dave… ”

Dave: “A through H – that was H.”

After trying app.methods in script console… Mike said:

“Try app.taguri..oh wait, that’s just missing the underscore, should be tag_uri, I thought that was something to do with Sushi, never mind.”

That’s not to say there weren’t other interesting moments during the class ;) …but those were the ones I felt like sharing!

Categories: Development, Rails, RailsConf, Software Tags:

Entropy

November 5th, 2006 No comments

I began my collegiate career as a Chemistry major – the shinny new chem center combined with the fact that a degree in Computer Science required more than a minor in math got me thinking that mixing known carcinogens was as good a way as any to spend four years. But then I hit O chem and the powers that be reduced the math content significantly so off I went to the land of compilers. Needless to say, I took a rather, ahh unique, path through the major and while the finer points of circuit design have been lost to the ether, bits of my chemistry training still stick. For some reason, I still remember when the concepts of entropy and enthalpy were introduced during that first year chem class…

Needless to say, I was taken in by Neal Ford‘s Entropic Software post. Neal uses an interesting example to discuss the similarities between the technical definitions of entropy and information to support his central tenant that “software breeds entropy”. He continues by comparing the design of Unix and it’s history of “mini languages” to Windows and its (I’ll say it – clunky) approach to interoperating (I couldn’t help but think of Martin Fowler’s keynote from RailsConf along with his discussion of DSLs). The moral of the story? Keep it simple…ah you know the rest.

The nature of the universe is towards disorder (told you I remembered something from that chem class) and I have to agree with Neal that software tends towards complexity. Some of this is our fault – for whatever reason people in this line of work reallllly like complexity (often for it’s own sake) but the ephemeral nature of software doesn’t help (c’mon how many of us have added just “one more feature” since it wouldn’t be _that_ hard). Though he doesn’t explicitly mention it (until the comments) part of why Rails rocks is that it adheres so strongly to the principle of simplicity.

While I certainly don’t know *what* technology will be the king in five years (even if I did I’d keep it quiet until I was able to write the definitive book on the subject) it is clear that Rails has had a major impact on how we write software. As I mentioned in my JavaOne recap, everyone is trying to “prove” that their approach is just as easy as Rails (or they try point out how it isn’t enterprisey enough). Neal’s dead right – software wants to be complex and it takes a concentrated effort by engaged developers to do that. Let’s hope more of us are inspired by the diligence of the Rails team towards this end.

Categories: Development, Rails, RailsConf, Rants, Software Tags:

Quick and Clean

July 11th, 2006 2 comments

We’ve all been there. You get that frantic call from a customer – somehow a bug got through your intensive suite of automated tests and your kick butt QA team (must have been that dang intern). Of course the problem has to be fixed RIGHT NOW so they can get that much needed report to that ever so important vice president allowing him to make *very big* decisions. You dutifully dig in and, despite that queasy feeling, you put in a quick and dirty little fix. I know, you’re going to go back in and fix it just as soon as you can…but then the next day, just as you’re sitting down to put in the proper patch, wham, the project manager ambushes you from behind the plastic ficus tree. Can you say “cat like quickness?”

The PM has an urgent request (aren’t they all?) – someone very important is going to be in the office tomorrow and needs a demo of that snazzy new feature she promised you’d add to the system (you know, the one you said was nearly impossible to do). Don’t worry about implementation, just make it *look* like it works! If you’re like most of the people I’ve worked with, you swallow hard and get to it pounding out something that functions…mostly. Sure, you had to cut some corners, but it made the PM happy and, well, it is for an important customer. Tomorrow though, you’re going to refactor the quick fix and get the new feature squared away.

Alas the next day brings yet another crisis and your best laid plans are cast asunder. Day after day, we are often asked to put in quick and dirty fixes. Can it be any different? I mean we can’t possibly do quick and clean could we? Well, Obie Fernandez thinks there’s a way: Ruby and its close personal friend Rails. In a recent post about enterprise adoption (essentially expanding on his talk at RailsConf) Obie offers some great advice on how to pitch Rails to the enterprise. He hits it on the head when he says:

The biggest challenge, in my opinion, is that lots of teams doing J2EE have people are used to thinking that quick == dirty. Martin’s keynote had tons of good information for anyone wanting to evangelize Ruby as enabling quick and clean solutions, and well-written Rails applications are all about quick and clean.

Amen. I’ve seen a ton of quick and dirty code in my day and much as it makes my stomach turn, I can empathize with the developer that did it (well, to a point). But it doesn’t have to be that way! As Dave Thomas said, it’s sure slick when you work with glue that doesn’t set! Much as I’d like to think this would be a compelling enough argument to woo even the crustiest of developers, I think Obie nails the underlying problem:

I think the hardest thing about convincing hardcore J2EE devs would be that a lot of those programmers actually get off on the complexity and building of framework upon framework. Most people I know doing Java are not application developers! They are programmers and they like working on plumbing!

There’s not much in the way of plumbing code in a Rails app; it feels to me like virtually every line of code is about delivering business value. There aren’t any little black boxes where people can invent massive subsystems that are little more than their personal playpen. With the rapid feedback loops, it’s darn hard to venture off on some neat little complexity hunt just to soothe your need to utilize that new library. Or put more succinctly:

J2EE teams tend to be larger, due to the extra complexity. Big projects usually give individual members freedom to perform below their abilities and/or skate by working on pet projects and miscellaneous bullshit that does not add business value.

It’s from these folks that Rails backers will hear things like “Rails doesn’t scale” or “Rails isn’t ready for the enterprise” or even “Rails is inappropriate“.

Maybe Rails will never truly be enterprise – perhaps that’s a good thing. The contrarian nature of Rails is one of its greatest strengths and I hope it never loses that. Rails isn’t right for every application (of course we don’t really know the boundaries yet) but it sure fits a big niche. Observant organizations will hop on board, change their thinking and create some amazing applications. Those that are dominated by a certain type of developer will invent reasons why Rails won’t work and wallow in the complexity of their chosen path. Chances are, they’ll never get to quick and clean.

Categories: Development, Rails, RailsConf, Rants, Software Tags:

RailsConf Keynotes

July 9th, 2006 No comments

Just wanted to point out that the RailsConf keynotes are starting to appear on ScribeMedia. So far it’s just Dave Thomas and Martin Fowler but I suspect the others will follow along shortly. All the talks were great but regardless of your interest in Rails I recommend you listen to Martin, Paul Graham, and Nathaniel Talbott. I first saw this on Fowler’s blog.

Update: DHH’s keynote is now available.

Update: Paul Graham’s keynote is now available – go listen…right now.

Update: The Rails Core panel is now available.

Categories: Development, Rails, RailsConf, Software, Talks Tags:

RailsConf Quotes

July 2nd, 2006 No comments

By now, my humble readers (pretty sure I’m up to five or six now) should know I have a thing for quotes and as you might expect, RailsConf provided it’s share of notable quips! I should point out that I’m not a reporter and I didn’t record any of the sessions so I’m mostly paraphrasing (if I’ve misquoted someone, I’ll happily change it, just let me know). Anyway, here are my favorite lines from the weekend.

When discussing REST vs. SOAP and also the buzz behind Rails itself Dave Thomas said:

“There’s a move afoot in our industry to throw away all of the crap.”

When discussing Ajax, Dave defined it as “making browsers suck less” following with:

“The browser is just a 3270 terminal that can display porn.”

Paul Graham is one of my favorite writers – when he posts something new, I pretty much drop everything, print it out, and read it. The following all belong to him. Before diving into his keynote, Paul prepared us for what was about to come:

“I’m going to contradict both the Old Testament and Yoda.”

His talk itself provided quite a number of quotable lines including…

“Better to say something obliquely, then the people that would be offended won’t understand it.”

and

“Don’t learn things from people that are bad at them.”

Paul was followed up by Why the Luck Stiff and anyone that has seen him live knows how entertaining he is. While I can’t do justice to nearly anything he said during his show, I loved this line (if i recall properly, this caused a standing O from Glenn Vanderburg):

“Put your best practices away.”

Obviously, there were other memorable lines, but these were the ones I actually caught in my notes…

Categories: Development, Rails, RailsConf, Software Tags:

The Power of the Marginal

July 2nd, 2006 No comments

Paul Graham‘s keynote from RailsConf is now online. While it loses a little something when it’s not presented by the man himself, it is well worth the read!

Categories: Rails, RailsConf, Software Tags:

RailsConf Day 3

June 25th, 2006 No comments

In my experience with conferences, the last day things start to get a little more sane. People slow down – they’re usually exhausted from several hours of drinking from the firehouse (of course some of that ain’t just learning water either…) and at least a few people have already travelled home (wi fi is almost usable!) so the numbers start to drop. Today is no different – I didn’t need to arrive at my first session 20 minutes early just to get a decent seat, in fact, after a great chat with ThoughtWorker Joe O’Brien (thanks for the tip on the backpack and the girls are adorable!) I was able to saunter up to the front of the room about a minute to 9.

My first session was on open source testing tools in Rails by Dave Hoover. Dave covered Watir and Selenium with a shout out to Sahi. Over the years, I’ve tried various UI level testing tools and have always been left disappointed. Most are just too brittle – change something innocuous like today’s date and all of a sudden you have failing tests all over the place. Many used proprietary scripting languages further raising the barrier of entry but worse, you typically had to plunk down some serious change on licenses. Lucklily, the open source world is coming to the rescue and while both of the tools Dave demoed have their issues (Watir is basically Windows only and Selenium has an odd syntax) it’s certainly good that we have options.

I’ve read a bit of what Phil Windley has said about identity but I’ve never really worried too much about it – after all, I’ve spent so much of my time developing corporate solutions where it was handled by others. Sure, I’ve been annoyed at the volume of logins I need and it concerns me how much of that data is spread all around the web but after seeing Matt Pelletier of Eastmedia talk about Open ID (in a talk related to one I attended on Friday) it sure makes me want to explore that solution. While there are still issues to be worked out (and features to add such as reputation services and attribute verification) it feels like there is a lot of promise in this space. Based on the questions the audience asked, people have clearly thought through some of the ramifications of identity and privacy (more so than many large companies apparently).

If you’re read any of my other posts on RailsConf (day 1 and day 2) you may sense a theme: metaprogramming. I’m really interested in this topic (partially due to my upcoming teaching assignment…more on that later) so I had to attend Stuart Halloway‘s talk (besides, I knew what a great speaker he is so I probably would have gone to anything by him). Stu went through a number of tricks in Ruby such as to_proc, indifferent access, and whiny nil. One thing I’ve really noticed about the Ruby/Rails community – they get the Pareto principle, they really understand that 80%, that good enough, is well, good enough. I’m not sure what it is, but on so many of the Java projects I’ve worked on, we’ve really gotten bogged down worrying about that edge case, that thing that happens once in a while, we seem to focus too much on the what if. For whatever reason, that doesn’t seem to be a problem in Rails land. While certainly some of that is language related (Java forces you to work in certain ways) but a lot of that is just attitudinal.

After showing of some cool Ruby-fu, Stu went on to describe how certain things are done in Rails including class reloading, ActiveRecord accessor generation, transactions, and (my personal favorite) how data gets from the controllers to the views. If I count up all the time I’ve spent pushing data into and out of forms on a web page…and the pain that has caused (hmm, is that int value really 0 or has it just not been entered yet?) it makes me want to cry. Rails makes so much of this cruft just go away and I love that! A great talk by a fantastic speaker.

After lunch mister Tomcat/ant himself, the chief photographer for all things O’Reilly, James Duncan Davidson did a talk on deploying Rails apps (I’ve never seen James live before – he has quite an interesting background!) As I mentioned in an earlier post, I’m actually quite surprised at how *hard* deploying Rails apps can be. Dave challenged the community on Friday to fix it and I expect things will quickly improve, but for such opinionated software, for a framework that makes so many things so darn easy, deployment is really a weak link. James gave some good tips (of course every app is different so it’s hard to arrive at “this is what will work for you” type advice) and also pointed out some of the real land mines out there. With the brain power in this space, I know the problem will improve, it’s just a matter of when.

The event wrapped up with Q and A of the Rails core team (well, 3/4 of it anyway). Most of the questions were actually fairly technical in nature but the 80% answer came out on more than one occasion. I think the adherence to this mantra is the core strength of Rails – I really wish *that* would infect other languages and frameworks.

Anyway, I’m quite tired – been some long days here but tonight my wife and I will venture out for some classic Chicago pizza! All in all, I have to say I had a great weekend and I’m even more jazzed to further my work with Rails. I have mixed feelings about the news that next year the event will be cosponsored with O’Reilly, I suspect they will allow thousands in and probably triple the price and of course the event is moved to the West coast (Portland to be exact.) While I would like to go, we’ll see… Other than the spotty wi fi (which is now, btw, extremely snappy), the hotel was fine (well, my wife would have preferred for the pool to be open) and the dining options near by were, ahh, limited (surprisingly, the constant airplanes – like every 1-2 minutes – wasn’t too distracting). Still, it was great to meet some new people (though I understand where the cult label comes from), folks that have really been inspirational. Thanks to everyone that made this event all that it was!

Categories: Development, Rails, RailsConf, Software Tags:

RailsConf Day 2

June 24th, 2006 No comments

Well, I think more than a few folks spent much of last night in or around the bar because this morning it was quite a bit quieter at breakfast (let’s just say most folks wandered in closer to 9). As you might expect at a conference with 500 or so developers (nearly everyone with a laptop) the wi fi is, at best, spotty, still it’s quite something to see a bushel full of Macs at every table! Seriously, there can’t be more than 10-20 Windows boxes running around and from what I’ve seen a fair portion of those are actually running some flavor of Linux. Anyway, I started me day listening to Obie Fernandez of ThoughtWorks talk about the projects he’s been involved with over the last year or so. Clearly there is a lot of interest in Ruby and Rails at ThoughtWorks and considering how “enterprisey” they are, that bodes well for wider adoption of this “niche” technology.

While there were lots of details he couldn’t reveal, it was quite something to see just how many projects they’ve done (and the variety, from standard web apps to touch screen kiosks) – and more importantly, how interested customers (big customers at that) are in Rails. Regarding the “data center issue” (i.e., the excuse that we can’t use Rails because it’s not supported) Obie relayed a story where, when finally asked, the manager at the data center didn’t have any problem letting them do what they needed to do. This is the first time I’ve ever seen Obie live – but I get the feeling he had a long night ;) he seemed a tad tuckered, perhaps even a bit hung over, I’m not sure. All in all, it was very encouraging to hear his experiences – if ThoughtWorks is doing this much work in the space, I suspect they’ll have some influence on those that still think Rails isn’t ready for the enterprise.

The next two talks I hit were on DSLs/metaprogramming. One of the things I find so interesting about Ruby is the ease with which you can create a DSL thanks to open classes and the “missing method” hook. The first talk was by Steven Hammond and he discussed his experience building a DSL for a game he’s working on. Steven focussed more on the background material – what a DSL is, when you need one and what the pitfalls are.

While Steven’s talk was more focussed on more philosophical issues Brian Katz did a deep dive on an authorization/identity DSL that he put together for one of his projects. I have to admit, much of his talk was above my Ruby-fu (and I don’t think I was alone based on some of the chuckles from the audience when he asked the audience if we understood some less than trivial Ruby) but I still found it pretty useful. He answered lots of questions about why he made certain decisions and he also explored the “meta-classes” which was pretty helpful. While I’ve understood the concept ever since reading about language workbenches, it was always pretty nebulous how’d you actually create one. I might not be ready to actually sit down and write my own DSL, but I feel like I know where to start!

The argument I hear over and over regarding Rails is that it isn’t “enterprisey” enough. While not nearly as widespread as Java or .Net, Rails is indeed being used to power something more than “yet another social tagging site” and that’s what Rick Bradely and Charles Johnson of Centerstone discussed in their talk on Rails and the Enterprise. Centerstone started out writing the prototypical Java EE application using JBoss, Hibernate et al but after getting started they quickly moved to Rails where they saw a significant decrease in the amount of code they produced (on the order of less code than the XML in their Java EE approach…) You might recognize this from Rick’s blog Following the Rewrite – while I wish he and his team were writing a tad more, it’s still a great example of yet another enterprise application that is being written in Rails.

Rick relayed a quote from his CIO which basically was: “A year ago, no one knew what Rails was, now they say no one uses Rails.” How many more applications have to be built before people realize how wrong that last line is? Obviously, there is a class of application for which Rails is clearly the wrong answer – but the variety of solutions that can be built with Rails is much larger than many enterprisey folks want to believe. But hey, as Paul Graham said yesterday, the value is in the margins so maybe I should just look at this as a huge opportunity.

Dealing directly with web/app servers is relatively new to me – at least as done in the Rails world. While I’ve worked with Apache, Tomcat, WAS, etc, I’ve never dealt directly with configuring them. Considering how key things like lighty and FCGI are to a Rails app, I figured I better attend at least one session on the topic hence why I went to Jan Kneschke‘s Accelerating Rails with Lighty. All I have to say is I have a *ton* to learn in this space and frankly I think it’s one of the things that the Rails world needs to overcome. At the end of the day, I’m a developer – I don’t want to have to deal (much) with issues like what mod I need to install and which app server works best with which web server. I think it’s interesting that for a framework that “just works” and is so opinionated, the deployment issues are the real hang-up. I’m not sure whether most Rails developers *should* concern themselves so deeply with the inner workings of lighty or FCGI. Again, some things were a tad over my head but there was a lot of material in this talk – enough that Jan went about 20 minutes over his scheduled time (no real sense of urgency in his talk…even when he knew he was running long, he didn’t really speed up his cadence).

Next up the indefatigable Mike Clark on testing! When you see how freaking easy Rails makes testing…well, it makes me want to cry actually. The functional and integration tests are fantastic, especially with the new named routes feature but the support for fixtures makes unit testing a snap too. I’ve written Java systems with thousands of tests but there were lots of areas we just couldn’t get to – with Rails, we wouldn’t have the normal excuses. Mike walked us through the essentials including why we as developers should care about testing, the basic asserts in Test::Unit, what Rails adds to the mix, and how straightforward integration tests actually are.

When you first look at a Rails app, one thing you might notice is the gentle reminders (or is that just good old fashioned midwestern guilt?) about the importance of testing. After all, you’ve got directories that are just sitting there begging to be populated! Testing is just part of the culture, part of the community. Rails itself has a slew of tests, running rake causes all the tests to run and rake stats lets you know how much test code you’ve written. It doesn’t hurt that Ruby and Rails makes testing so much easier than it is in other languages; creating a little testing DSL is a snap thanks to Ruby. Want to mock out a class? No problem – just put a class of the same name in your mocks directory and stub out whatever method you want! We use mocking libraries on my projects, but they aren’t even close to that easy.

I think the emphasis on testing speaks highly of the Rails/Ruby community. After three days here (and I’ll admit, this is a pretty self selecting group) I can’t help but think there are a lot of really top notch professionals in this space – people that feel a responsibility to produce good, working code. I’m not saying these types don’t exist in Java or .Net, but it just seems to be part of the DNA of these individuals. I’m not sure what the cause and effect is here (are more adept developers just drawn to this or does Ruby/Rails just make it so natural?) but it really is something. I have to say, I wish my Java apps were this easy to test… Honestly, you would think the test infected nature of Rails would make it an easier sell at the enterprise level.

The last talk of the day was by Nathaniel Talbott (what a great first name!), creator of the aforementioned Test::Unit. Nathaniel spoke on Homesteading; basically, he was challenging us to do what we love, to “buy the ticket” and get out there and build something. We’ve got so many opportunities available to us, so many ways to create our own little businesses – we just have to execute. We are all at risk, whether we realize it or not, however we have to assess that risk and expose our assumptions. Anyway, there were so many great thoughts in his talk that I don’t think I can do it justice in this post but let’s just say between listening to him and Paul Graham, I’m really tempted to take the proverbial plunge. Nathaniel’s talk really was a call to action and I’m interested to see how many people take him up on that.

After dinner, we were regaled by the creator himself, DHH. David’s talk was more tutorial than inspirational but it was quite interesting to see where he is taking Rails. I can see where the arrogant label comes from but it’s also clear he has a real passion about software – and many of this opinions are rooted in sound thinking. A key theme was using the HTTP verbs to indicate the action on a controller instead of imbedding it in the URL. He also spent a great deal of time talking about intersection entities between many to many associations and RESTful web services. All in all, a pretty interesting talk – and I’m sure others will do it more justice than me!

Categories: Development, Rails, RailsConf, Software Tags:

RailsConf Day 1

June 23rd, 2006 2 comments

Clearly I got up too late this morning – by the time I got down for breakfast, the ballroom was *packed*: to the point where there weren’t three seats at a single table for the other Minnesota lads I hooked up with! After some intro material from the Ruby Central gang, Dave Thomas presented his keynote where he challenged the community to:

  • Improve data integration
  • Come up with a better solution to real world CRUD
  • Fix deployment

Frankly, Rails has to answer a few key questions if it wants to grow beyond the alpha geek stage – of course whether the community ever wants to be mainstream is a very good question. Dave challenged the attendees to meet the proverbial “average Java programmer” half way – otherwise, Rails will just remain a niche. Obviously Rails will continue to mature (heck, someday it might even be enterprise) and I think a lot of the things that Dave talked about will get fixed (probably soon). But the community is going to have to do it – the core team only has so much time. The message I took away is oddly similar to the mantra at JavaOne – participate, participate, participate.

My first session of the day was Mike Clark on Capistrano (apparently Jamis Buck had a passport issue so Mike pitch hit). Having only just toyed around with apps on my machine and having read other people’s accounts of deployment heck, I left thinking Capistrno is pretty much the cat’s meow. And it isn’t just for Rails dangit! Pretty much anytime you need to move some files around, cap can help. Obviously we didn’t get too deep into deployment (heck the Prag guys have a whole seminar devoted to) but it sure seems like it’s one of the rough spots that needs buffing (luckily there is a lot of energy in that space so I expect it’ll only get better – but don’t just take my word for it).

I choose poorly on my second talk; it was pretty disappointing. While there were a few nuggets in there about discovering what users need vs. want, I was really left wondering how this applied in any way, shape, or form to Rails – I mean seriously, how did that abstract get past the organizers? OK, so it wasn’t really that bad but had the room not been packed to point where the fire marshal would have disapproved, I just stuck it out. Luckily, the rest of the day more than made up one little blip.

As a certified “enterprise” developer, I’ve never really had to deal with authentication issues (there was always a group for that) so I figured I better take a look at the session on identity and rails. Kiran Dandekar of VeriSign gave a fantastic overview of identity (reminiscent of Dick Hardt’s Identity 2.0 talk at OSCON 2005). Kiran and Mike (I think!) talked quite a bit about their Personal Identity Provider (based on OpenID). Considering what it allowed you to do (imagine never creating another login again – and selectively choosing what information was given to each site) I am very interested in pursuing this for my login needs. VERY cool stuff.

Next up was a session from Amy “slash7.com” Hoy on how to overcoming scaffolding addiction. While Dave argued for better scaffolding, Amy was advocating running in the opposite direction. Her talk walked us through the basics in an effort to prove we don’t really need the generated code. Sure, it might look cool, but at the end of the day, the only way to learn is to jump in.

The evening was jam packed – keynotes from none other than Martin Fowler and Paul Graham plus a command performance from Why the Lucky Stiff. Fowler’s talk was fantastic! He talked about the drive towards simplicity and the significant influence that Rails has had on software (something that was quite evident at JavaOne). He also said something that really stuck for me: quick doesn’t have to be dirty. Languages like Ruby, frameworks like Rails allow us to be quick and clean, something that is very powerful.

He also talked about the need for a conversational relationship with customers instead of one where we simple write down a stream of “this is what I want”. He emphasized the need for rapid feedback allowing us to converge on a solution based on mutual exploration. He quoted the tracer bullets method from Prag Programmer emphasizing that if the bullets are cheap enough, fire-aim, fire-aim, fire-aim is a heck of a lot more efficient than aim-aim-aim-aim-aim-aim-aim-fire! Of course rapid feedback is also likely to mean a more engaged customer which naturally leads to a better solution.

After talking about what happens when we are freed from worrying about plumbing code (we can focus on solving actual business problems) he talked about post modern software development. Basically, the idea is that rather than creating these perfect (modern) structures where everything is the same, we essentially just hack things together. Take UNIX – it’s one of the stablest operating systems out there and it is mostly just a hodgepodge glued together…but it works! Funny, isn’t that the story in nature? He challenged us to change the way we think and to focus on gluing scraps together, to just deal with the complexity and the inconsistencies. His parting words really rang true though – at the end of the day, it’s about the community. We’re what matters, we’re what make a difference.

After grabbing a bite to eat, I was very excited to hear Paul Graham live. I’ve read plenty of his stuff and listened to the odd pod cast here and there but I’ll admit, I bought my ticket based largely on the keynotes (how can you go wrong with this crew?) As expected, Paul did not disappoint (he was hilarious!) and I can’t wait to read the online version of his talk… Of course there were lots of memorable lines (I’m working on a quote post for later) but his main point was “look to the margins.” He preached the values of being an outsider discussing the freedom that comes with being small and obscure. Successful companies are often victims of their very success – they can’t cannibalize themselves. They often overlook certain opportunities because they lack prestige or aren’t large enough (or enterprise enough!) If you’re not sure what to do, Paul advised that you just make something. Seriously, after listening to this guy, a startup just sounds like a good idea!

OK, at this point, I’m twelve hours into a day devoted to a technology I don’t even get to use in anger (I’m amazed at just how many people are making money on this stuff) but we’re not done yet! Oh no, it’s time for Why to regal us with his music and humor. You know, I’ve heard the buzz before and I think I even listened to a podcast from SxSW or something but I’ve got to tell you, if you haven’t heard him live…well, something is clearly lost in translation. Maybe Paul was just a great warmup act (I mean no disrespect), but Why was ridiculously funny! The whole Koala bear thing was great but the, ahh, interesting Ruby hacks were right up there too. I’m sure I only caught half the jokes but let me say – if you ever get a chance to see Why live, do *not* miss it.

Well, that’s enough for now – my wife is already snoring and tomorrow is another long day!

Categories: Development, Rails, RailsConf, Software Tags:

Rails Guidebook

June 22nd, 2006 5 comments

And so it begins! I’ve had the pleasure of seeing Dave Thomas in the past and as I expected he’s on top of his game today. Funny and articulate, I think I’d sit and listen to Dave explain actuary tables, discuss a hot new time share investment, heck, even just read the phone book. I’ve never heard Mike Clark live but he’s top notch! The only complaint I can make at this point – the ~100 or so of us are overwhelming this little wireless network. Apparently an “industrial grade” installation is coming this afternoon (thank god – otherwise this could get ugly).

The morning section has largely been a Ruby overview – a level set as they say. While I’ve read through Pick Axe, it never hurts to hear another twist on the material (especially blocks and symbols). So far I’ve taken a ton of notes and I’m (surprise) even more interested in finding new ways to “sneak” Ruby into my daily work.

The section on meta programming was particularly interesting. The beauty of Rails is, to a large degree, thanks to the amazing capabilities of the Ruby language itself – all calls have receivers (though you can warp your mind a bit when it comes to class of Class…), definitions are active (the code can change on the fly) and classes are open (so you’re always free to add or modify methods on *any* class). I’ll admit, as a recovering Java addict, my first thought when I encounter open classes is not a positive one. While the thought of the proverbial chim chim adding to (or changing) one of *my* classes makes my skin crawl, in the hands of competent developers it’s a darn powerful feature. Luckily Dave shared an inside tip on how to fix the situation where a lesser mortal mucks up a class they shouldn’t (lets just say it involves a trip to Home Depot)… Still, the whole meta programming concept really appeals to me – I want that power! Of course it means we have a greater level of responsibility but then we are professionals right? Heck, carpenters don’t use “safety saws” to build a house, why do developers deliberately hamstring themselves?

Frankly, I think this is a numbers game. The average Java application requires significantly more developers than the average Rails app so the chances that you’ll have a couple of, shall we say, less than excellent developers is much higher in the Java space. So, if you’re one of the silver backs, you want your language to make it harder for the feces hurler one cube over to, well, screw things up too badly. Personally, I think I’ll take the more expressive power over the safety…

Lunch was a blast! We (Ben from Minnie, Gary from California, John from DC but thinking of moving to Minnie!) wandered over to Chipotle (mmm, burritos) where we engaged in a far ranging conversation on billable rates, why Ruby and Rails rocks, thoughts on An Inconvenient Truth, whether the greater level of transparency afforded by the blogosphere has contributed to the level of cynicism in modern politics…for a while there I thought I was at a model UN meeting or something. It was good times!

The afternoon was Rails in a blur – basically, Mike and Dave wanted to introduce us to the key concepts, places to avoid, and topics we should perhaps focus on over the course of the long weekend. Of course they did the standard MVC lecturelet but they had an interesting twist: think of the controller as the CEO, involved in strategy but not the details – which are carried out by the admins (in other words the model) while the outside view is handled by marketing (the view component). Good analogy!

There was a very interesting conversation about code in the view and whether or not web designers can “handle” that. Mike was pretty adamant that most web designers were more than capable saying that while we as server side guys dabble in web stuff, the view folks want to dip their toes into our waters as well. In other words, don’t sell the front end guys short – they’re probably sharper than you think ;) Again Dave had sage advice for dealing with designers that can’t stand a little code – get rid of them.

The advice from the scaffolding section was pretty spot on too. While great for showing off and exploring, as of now, it’s just not up to par for production code. But don’t forget, when you use scaffolding to build a structure, eventually the scaffolding comes down… After learning where not to go (components, engines, XML-RPC/SOAP), Dave and Mike pounded through a number of topics including testing, routes (however you pronounce it), REST, Simply Restful, plugins, and deployment.

All in all, a great session (participants raised over $8,000 for charities) and I’m even more interested in attending a Pragmatic Studio session (not sure which one though…) One interesting note – sure am seeing a large number of Macs (shocker) as I wander around! And my wife made this comment when I got back to the room “there sure are an awful lot of geeks here”. Yes dear, there really are!

Categories: Development, Rails, RailsConf, Software Tags:

google