This is definitely a step in the right direction. I was playing around with FOAF back in college, about 4 years ago. I’m amazed that it took this long to gain adoption.
Now, on to the big issue that Google is not addressing (yet): I don’t want my social graph to be public! Please, somebody come out with a service that lets me:
import my social graph from sites like Twitter, Facebook, MySpace, etc.
de-dupe and match
share my social graph with select sites (like OpenID does for authentication)
manage my social graph in one place
sync my social graph across sites
Is anybody working on something like that? If not, who wants to help me build this?
So, this is day 2 of The Rails Edge conference. Since my last post, there were sessions by Marcel Molina Jr on ActionPack, Justin Gehtland on AJAX, Mike Clark on whether Rails is the right tool for the job, and currently I’m listining to Marcel explain ActiveRecord. Very interesting and valuable sessions that go into a lot of detail.
I’m not going to go into a lot of detail on these sessions, suffice it to say that if you’re interested, I have a big binder with the slides of each presentation that I’d be happy to share (by letting you borrow the binder, of course…I don’t have a soft copy, and I’m sure that the speakers don’t want this posted).
Jim Weirich’s talk was about design patterns in Ruby. Overall, it was an informative talk, but I felt that it didn’t add much to my knowledge of design patterns from the Java world. He covered some of the GoF design patterns, and listed their Ruby equivalents (in many cases the equivalent was part of the language itself, or extremely easy to add).
Nevertheless, I am certain that many people found the talk very valuable, because being aware of design patterns is one of the things that makes a good programmer.
Google, Yahoo! and Microsoft have decided to standardize on the same protocol for the sitemap files that their crawlers use to navigate the sites they index. This is awesome, but it gets better: Google sitemaps are already compliant with the new standard, so if you already have such a sitemap, everything is dandy :)
Chad Fowler just finished his presentation on Rails Reflection, telling us how we can dynamically introspect and manipulate Rails objects and classes, such as ActiveRecord objects, routes, etc.
He also showed an app that Bruce and Chad and him developed, which basically allows them to build ActiveRecord models through a web interface (complete with on-the-fly database table generation). They ended up scrapping it because of certain problems with it (I’ll have to find out what those problems were).
One particularly interesting tip was using the Rails console for executing migration statements. It kinda goes likes this:
Bring up the rails console
Execute ‘irb ActiveRecord::Base.connection‘
Now you can call migration statements as you would in the up or down methods of a migration
Another good tip was routes reflection by using this in the console:
Stuart Halloway gave a talk on Ruby idioms for Rails. He started off his presentation by talking about implicit vs. explicit, and rewriting a Java Struts method to an equivalent RoR method. It was actually quite humorous, he was basically able to get rid of most of the statements in the Java method, and condense things down to just a few concise and easily understandable lines of code.
Bottom line: Rails has an implicit API, whereas Struts (for example) has an explicit API
He went on to discuss the dangers behind the immense power of Ruby, such as dynamically injecting new functionality to classes or aliasing methods. I wholeheartedly agree, as I’ve been bitten by things like that before, too.
Finally, he made a call for refactoring common Ruby/Rails idioms into more abstract ‘helper methods’ (not sure if that’s the right term), to improve readability, keep things DRY and make future changes easier.
Dave Thomas’ presentation on metaprogramming Ruby was pretty interesting. He tried to explain what makes Ruby such a great language, and how it is different from less dynamic languages like Java. The 4 main features of Ruby that make it such a powerful metaprogramming language are:
Classes are open
Definitions are active
All methods have a receiver
Classes are object
Dave illustrated these concepts through a series of examples in Textmate, which were quite helpful. I had no trouble following his talk, but was impressed at how much detail he was covering. I would imagine that somebody who is new to Ruby might have found some of the concepts a bit daunting.
Just got to the Marriot Denver Tech Center, where I’m attending The Rails Edge conference. The drive was much better than anticipated (I managed to avoid the parking lot on I-25), so now I’m sitting in a spacious conference room with about another 50 people, having breakfast and waiting for the conference to start.