More nuggets:
Advanced RESTful Rails by Ben Scofield (Viget Labs)
Pick out the nouns from your app to determine the resources
Decide what methods to expose to those resources
Ajax actions generally use middle man which is a join model
Fast, Sexy, and Svelte: Our Kind of Rails Testing Dan Manges (ThoughtWorks), Zak Tamsen (ThoughtWorks)
Unit Test
Functional Testing Speed
Integration Tests
Acceptance tests
Integration Testing with RSpec's Story Runner by David Chelimsky (Articulated Man, Inc)
Integration Testing:
Webrat Ruby gem (http://github.com/brynary/webrat)
Selenium RC (lets you test JavaScript/AJAX & you can watch it!)
The Great Test Framework Dance-off by Josh Susser (Pivotal Labs)
Judging by Josh Catone's post and its comments
There is No Web 3.0, There is No Web 2.0 - There is Just the Web, people really don't like the terms "Web 2.0", "Web 3.0", and the like. But I'm not sure I fully understand why.
If it's because people have a natural aversion to labeling anything, I can somewhat agree with that. Determining the definitive characteristics and exact point of inception of a fluid event like the evolution of the Web into "Web 2.0" is difficult. Being hesitant about focusing too much on nomenclature and not enough on application is also somewhat valid. The more time spent arguing about what the web is, the less time building applications for it.
But ironically in avoiding or vehemently opposing labels such as "Web 2.0" in order to focus one's effort on producing real output, one may become less efficient and effective because he or she has unwittingly denied that there wasn't a drastic shift with the internet as we know it. And by not recognizing pertinent aspects of the current web and its shift from previous incarnations, one is less apt to deal with the next major shift. And there is definitely going to be another big change in the internet and its use, most likely pretty soon - that has to be taken as a given at this point. And by studying the web today, which I think can be correctly named "Web 2.0", and its variance from the initial incarnation of the web, there are some key lessons to be learned.
First, increased bandwidth opens doors. When we were all using dialup, static html pages were all we could handle. I can definitely recall visiting huge pages on my family's 500 series Mac via AOL dialup and completely crashing my Netscape browser. The kind of interactivity available today just wasn't possible with yesterday's internet. Today around 3/4 of the country has broadband internet access so sites are able to deliver that much more data to the user and not have it take 3 hours. This completely changed the UI philosophy of the web and today the intricacy of the average user experience is exponentially greater. Now with that in mind, if the average internet speed jumped from 1MB/s to 10MB/s, what would that mean for the actually look and feel of the internet? Something pretty drastic right? Imagine an experience like the one seen in this recent TED talk.
Secondly, massive amounts of data have completely changed the way we consume information. I haven't opened an encyclopedia since College (ordering OED Compact Edition soon however). Web 2.0, despite a few niche mashups, is mostly about the quantity of information. And now that the amount is there, I definitely think Web 3.0 will be about integrating these stores of data even more intricately. Not just simple mashups, but gigantic, intelligent search engines and maybe even *gasps* the beginnings of true artificial intelligence.
Finally, there's a (somewhat shocking) move towards openness going on. In the first iteration of the web personal outlets were somewhat minimal. We had chat rooms and personal web pages - mine was on Tripod and was a Gators fan site. Web 2.0 has brought us, of course, social networks and the importance of building "networks". I think Web 3.0 will involve the creation of complete online personas, distributable everywhere. This ties in to the sharing of information touched on in point 2, but on a more personal level. It will involve sharing personal information, social data, favorite pieces of web content - basically everything you do that involves the web - on all the sites you visit. Clearly this'll bring up questions of privacy, safety, etc. but it seems to be the way the web is moving.
Obviously there will be other changes than the ones listed here, but I think these will be drastic enough that the web will look totally different from the web of today. And when something evolves out of something else, taking on different characteristics and unique features, we generally label it as something other than the former. In this case, the label will be "Web 3.0"
In Conclusion,
I CAN'T WAIT!
Let's talk about the nuggets. Quick note though - I heard the complaint that the talks weren't technical enough. I don't particularly agree with that criticism. There's only so much you can cover in 45 minutes or whatever it is so I think the real purpose of most of these talks was to show us what's out there and it's up to us to dig further. My two cents. Anyways, the nuggets:
"Multi-core Hysteria": FUD about CRUD? by Andrea O.K. Wright (Chariot Solutions)-
Learned Mongrel mechanism for handling concurrent threads
def initialize(dir, meme_map = {}{
@guard = Mutex .new
}
Mutex Doc
Got this little forking snippet:
walking = fork do
100.times do
puts “walking”
sleep 1
end
end
chewing = fork do
100.times do
puts”chewing”
sleep 1
end
end
Surviving the Big Rewrite: MOVING YELLOWPAGES.COM to Rails by John Straw (YELLOWPAGES.COM) -
(This talk was awesome for me personally as it dealt with moving a large, established Web site to Rails)
Why the move? Absolute control of URLs (of utmost importance for their site), stateless HTTP, being agile & writing less code
His team and their development process which was pretty cool: ~20 people (5 core developers), sat together, 3 week (approx.) cycles - 1 week wireframe development, 1 week UI design, 1 week+ development
Web Service performance issues they tackled:
Also, they debated about other technologies (Java/EJB3, Django) but eventually chose Rails because, well, it's the bomb.
CRUD Doesn't Have an 'S' in It: Managing Complex Searching in Rails by Stephen Midgley (Hutz.com)
4 architectural steps (in order):
I loved this: For clean URLs use POSTs. Make sure your URLs are distinct for core search options. If your URLs aren’t clean, you’re doing it wrong!!!
You want to store your SQL in an object so that you can pass it around
SQL Tools
Alright so that's what I got for Friday. Saturday and Sunday coming soon...
**Please see my follow-ups on individual days: Friday, Saturday, Sunday**
RailsConf 2008, two words: passionate and fascinating.
I met so many people over the past 3 days who are absolutely in love with the work they're doing. I met pod/screencasters Gregg Pollack (Rails Envy Podcast), Ryan Bates (Railscasts), Chistopher Haupt and Michael Slater (Learning Rails), and Geoffrey Grosenbach (Peepcode & Ruby on Rails Podcast). Everyone's familiar with their work I'm sure, but needless to say their depth of knowledge and eagerness to help out and get others involved was amazing. I've got a whole list of tips & tools for podcasting and screencasting now and several friendly contacts to help me along the way. I met Evan Phoenix, Brian Ford, and Wilson Bilkovich from Engine Yard who are the lead developers of Rubinius. Their presentation was great and I feel like I have a much better understanding of why Rubinius is important and useful. And I'm actually itching now to get commit rights (it doesn't take much!) I also met David Chelimsky, fellow sports fanatic and RSpec guru. We had a really interesting 5 minute chat about the new story runner feature in 1.1 and I'm really excited to explore ways to integrate it into my development process. And that's just the tip of the iceberg! There are about 20 other people I had conversations with, learning about their projects, what tools they use, what they like (love) about developing with Rails, what they don't, etc etc.
And all of the talks were so interesting! There was a nugget or two (or six) of programming goodness in literally every talk I attended. I'll expand on the talks I attended in more depth coming up, but needless to say there wasn't a single striking disappointment among the bunch. They were all fascinating, which of course is a direct by-product of having so many people doing something they're so invested in and that's so much fun to do.
In Conclusion,
Can't wait for RailsConf 2009!