A wonderful, awful idea: ruby in the browser (and oh by the way it actually works!) by Christopher Nelson
Two ideas that didn’t work out:
JRuby - the java security manager stopped him from doing just about anything
Silverlight wasn’t available for his operating system when he started the project
The translation is, of course, not without some changes:
Strings become Immutable strings
Procs become Functions
Hashes becomes custom hash object
You can do Class level meta programming. You can even do method_missing (which resource intensive) in Rubyjs.
He wrote a rails plugin so you can do this in your views:
<%= rubyjs “my_class”, “my_method” %>
Microunit is his port of Miniunit so that he can test his rubyjs code.
The Ruby Code Review. A Play in One Act by Jim Weirich and Chris Nelson
So this was a dramatization of a meeting between a consultant and client. Chris played an employee of MyTwitterFaceSpaceBook, who has brought in a consultant, Jim, to do a code review.
So they run the tests:
Chris - “We run the new_features_test rake task”
Jim explained the broken windows theory. Chris then explained that they’ve been having problems with their fixtures. They use fixtures to test validations by having invalid fixtures. Which leads to problems with other tests when invalid data blows things up.
Jim put valid_options (which returns a valid option hash) right on the model – interesting. He says you can it somewhere else if you like. I would.
Jim recommends Continuous Integration like CC.rb. How do you cover the uncovered? Jim recommends doing it a little bit at a time. He comments out the whole untested method, then only uncomments enough to make the test pass.
While reviewing the code, they found some interesting metaprogramming – If a user has a friend named Bob Jones, then that user gets a methods called bobjones, which returns the Bob Jones object. Awesome. Unfortunately there’s a user named “Des Troy” that overwrites the Rails destroy method.
Chris and Jim had a great chemistry. Chris’ “But dude, it’s awesome ‘cause it’s metaprogramming” performance was funny and a little too real.
Seattle.rb Rocks! by Seattle Ruby Brigade
This presentation was sort of a lightning talk just for the Seattle Ruby brigade. Why do they get their own lightning talk session? ‘Cause they have 90 unique gems and over 400 gem releases between them. You can check out their many projects at http://rubyforge.org/projects/seattlerb/
Eric Hodel UPnP
Eric wanted to watch movies on his Playstation three through his laptop or maybe it was the opposite – he talked fast. So turning the PS3 into a media server? Or is the computer the media server? Anyway it looked cool.
Extended the Rad DSL to talk to the little circuit board that everyone loves: The Arduino. He made it do lots of stuff. Here’s a video of it linked to some servos hitting wine glasses with tiny hammers:
Here’s a cool LED tower controlled with resistive strips
(My buddy Josh Cronemeyer has also been messing around with the Arduino:
Phil Hagelberg Bus Scheme
What is Bus Scheme? It’s Scheme implemented in Ruby while riding on the bus to work. I usually just listen to podcasts.
Confessions of a Ruby Sadist - the short version:
- I like to hurt code
- People will press charges if you hurt them
- But code won’t
- Make your code your bitch
He’s written a few projects that he uses to keep his code in line:
Autotest runs your tests behind the scenes while you code - you get notifications when you break stuff right away.
Heckle mutates your code and runs the tests again. Mutated code better not pass the tests.
Flog measures the complexity of your code.
Flay finds structural similarities in code that are ripe for DRYing up.
He wrote Nokogiri - Which is basically a lot like Hpricot but faster. And then _why the lucky stiff heard about this speed boost and re-wrote Hprocot to be faster than Nokogiri:
Oh, it is ON.