Blogs

View all Blogs >>

In the Spotlight - Justin Gehtland

Justin Gehtland

Founder of Relevance, co-author of Better, Faster, Lighter Java

Justin is the co-founder of Relevance, a consulting/training/research organization located in the Research Triangle of North Carolina. Justin has been developing applications with static and dynamic languages since 1992. He has written code with Java, .NET, C#, Visual Basic, Perl, Python and Ruby. He loves to talk, especially in front of people, but all by himself in the corner if he must. Justin is currently focused on: Rails (because its the law), Spring (because Java isn't going anywhere) and security (because paranoia is your friend).























Presentations by Justin Gehtland

Scriptaculous

Script.aculo.us is the engine that drives many of the visual effects in Ajax applications. This talk will delve into the inner workings of Script.aculo.us effects, including the core components and common options you can specify."

Advanced Prototype: Ajax and JavaScript++

Building on the in-depth examination of the Prototype library from Prototype: Ajax and JavaScript ++, this session delves into the corners of Prototype that modify the DOM API and JavaScript's built-in types. We'll examine the way JavaScript extends the DOM Element class, and provides wrappers around forms for easy manipulation. "

Prototype: Ajax and JavaScript++

Learn to simplify Ajax development with Prototype through a series of real-world examples. Along the way, learn to code in Prototype's modern JavaScript style, taking advantage of Prototype's extensions to JavaScript's object model

"








Relevance - Relevance Weblog


Justin Gehtland's complete blog can be found at: http://blog.thinkrelevance.com/

Wednesday, June 18, 2008

I was talking to Tim the other day about auditing Rails projects, and how we see a lot of Rails projects that reinvent the wheel instead of using plugins. The obvious follow-up question, of course, is "What plugins (or gems) should we be using?" Below I list ten plugins that we use regularly, and a brief reason why you might want to, too.

  • fixture_replacement2: fixtures are difficult to maintain. There is no "one size fits all solution," but we have found this to be a big help.
  • tarantula: A single test can find a lot of bugs, if that single test visits every link in your app, tries to submit bad data, and polices your output HTML.
  • test_spec_on_rails: specs are better than tests.
  • permalink_fu: meaningful URLs for your objects.
  • safe_erb: don't trust external data!
  • unit_record: get the database out of your unit tests. 1000s of tests can run in seconds.
  • restful_authentication: clean, simple authn.
  • multi-rails: test your code against multiple versions of Rails in a single rake task.
  • attachment_fu: most apps need attachments eventually.
  • exception_notification: find out by email when things go wrong.

Many of these plugins have alternatives (e.g., you could use rspec instead of test_spec, or nulldb instead of unit_record). Regardless of which plugin you pick, make sure you think about the features provided by the plugins above, and don't reinvent the wheel.

Notice that most of these plugins are already in git, so forking them is easy. If you see something that needs improvement, jump in and do it! While reinventing the wheel is bad, improving the wheel is most welcome.

[6/18/2008: updated to include github url for fixture_replacement]


Monday, June 16, 2008

This actually happened to me today. I got on the elevator to head up to Relevance World Headquarters, wearing my dress-up clothes (it included long pants). I was also wearing my hard shell backpack, protecting, as it always does, my precih^hhhHlaptop. The elevator stopped at the second floor and let on a silver-haired gentleman of about 60 years, wearing a quite fly three-piece suit. I nodded, said ??????morning???, and he returned the salute.

We stopped at the fourth floor (RWHQ, as previously mentioned) and my companion was on his way to the fifth floor. As I exited, I uttered the standard ???have a good day???. As I rounded the corner, and the elevator doors were closing, his ringing, stentorian voice carried into the hallway: ???Nerd,??? he said. ???What a nerd.???

I was, quite literally, too stunned to even respond. The doors closed on my elevating friend and I couldn???t even muster enough clear thought to rush the stairs and meet him on the fifth floor. I suppose its possible the poor man had Tourette syndrome. Or, maybe he was wearing an Obadiah Stane inviso-earpiece and was talking to somebody else. But, most likely, I got called a ???nerd??? by a dude in a suit in my own elevator.

As my daughter would say, ???for real???.


Friday, June 6, 2008

Get the updated code sample here. It turns out that my MacBook Pro somehow compressed a cached version of the samples that were missing several key directories. I���m not sure how that worked, but here is the updated, full version.