Rails
My Presentations on SlideShare
I regularly release all of my presentations on SlideShare.net. To date, my presentations have been viewed over 74,046 times. Today, I thought I'd share my Top 5 list with you.
Rails and the Apache SOLR Search Engine
My 2012 RubyNation conference talk about integrating the Apache SOLR search engine into Rails web sites is now online. Check it out!

Active Breadcrumbs Gem
Now available - the active_breadcrumbs gem. It's a light-weight utility gem for creating breadcrumbs, a standard navigational aid for web sites. Now available for downloading at RubyGems.org.

This gem makes it easy to generate breadcrumb trails in a Rails application. The emphasis is on "structural" breadcrumbs, where a breadcrumb trail reflects the logical structure of a web site (as opposed to a "dynamic" trail, which reflects where the user has been - for which I humbbly suggest the user take advantage of the browser's Back button). For more information, see the documentation on GitHub.
Rails Tips and Best Practices
This is an updated version of a presentation for Ruby newbies that I first gave in 2010 when I was invited to be one of the speakers at the 50th NovaRUG meeting.

Rails and SOLR: My RubyNation 2012 Talk
My talk, Rails and the Apache SOLR Search Engine is now available online, in PDF form or via Slideshare. I just presented it on March 24, 2012 at RubyNation 2012.

Rails Security
So, you think your web application is reasonably secure? Well, based on the statistics, you're probably wrong.

Rails and the Apache Solr Search Engine
Here's the official description of the talk I'll be giving at RubyNation 2012:
Rails and the Apache Solr Search Engine

What good is content if nobody can find it? Many information sites are like icebergs, with only a limited amount of content directly accessible to users and the rest, the "underwater" portion, only available through searches. This talk will show how Rails web sites can take advantage of the world-class Apache Solr search engine to provide sophisticated and customizable search features. We'll cover how to get started with Solr, integrating with Solr using the Sunspot gem, indexing (including both documents and data within a database), and both basic and advanced search techniques. Along the way, we'll also cover some best practices and some architectural recommendations.
Buidling Facebook Apps at At DevIgnition
My presentation from DevIgnition 2011, on SlideShare and PDF.

Ignoring Files With Git
When you're doing software development, not every file in your working directory tree is an end product that you'd like to check in with git. Git allows you to specify certain files to be ignored. Find out how to do this and, more importantly, learn what files should be ignored.
Recipe: Detecting Required Fields in Rails
It's a familiar problem. You're creating a form and you want to mark certain fields as required. You'd rather not hard-code which fields are required, because this might change over time. Plus, you've already got validations in your model that check for the presence of required fields. So, how can you tell whether a field associated with an ActiveRecord model is required? Find out how!
On Video: Leveraging Rails to Build Facebook Applications
My talk from SunnyConf 2010, an awesome single-day conference which was held in a re-purposed movie theater last September in Arizona, is now available online as a 32-minute video. The topic was "Leveraging Rails to Build Facebook Applications." Check it out!



Note that the video is 262 MB, so be prepared to wait for a few minutes while the video is downloaded (apparently it's not set up for streaming).
The Empty String Code Smell in Rails
Sometimes you look at some source code and it just doesn't look right. The code might seem inordinately complex for the simple task being accomplished. Or the developer might be performing certain actions repetitively, such as checking variables for nil values. This is what is known as a code smell.. Code smells should be corrected at the earliest possible opportunity. In this article, I'll talk about some real-world coding issues that my friend and co-developer, Robb Kidd, and I recently encountered.
MySQL and Rails 3 on a PC
Rails 3.0 is the new big thing, and deservedly so. But getting MySQL working with Rails 3 on a PC can be problematic. Here's some easy steps to make your life a whole lot easier if you're doing Rails and MySQL development on a PC.
Rails and the PC Convergence
Rails and Rails-related tools need to work on the PC. Due to a variety of circumstances, I have ended up functioning as a multi-OS developer, and I'm often appalled at the disregard accorded to PC-based Rails development. I will explain why I think it's not just important that the Rails community support the PC, I think it's vital.
Recipe: Page-Specific Content for the HTML Head Section
Rails layouts are a nice way to organize boiler-plate HTML content in a DRY ("Don't Repeat Yourself" in case you've been asleep for a while) fashion. But
your standard layout may not be sufficient to meet the needs of all web pages, particularly when it comes to including CSS style sheets or JavaScript files. This recipe illustrates a simple way to support page-specfic customizations.
My Code Coverage Talk for NovaRUG
I'll be the second speaker at the next NovaRUG meeting on February 23, 2011. My topic and abstract are shown below:

Cover Me: The Inside Scoop on Code Coverage Tools for Rails 2.3.x and Rails 3

You produce code. You create tests. But are you covering everything you need to cover? Code coverage tools like rcov and simplecov provide insight into how complete your tests really are. You may be surprised at some of the gaps in your tests, such as edge cases and failure conditions that aren't being tested. Find out how to analyze your codebase, whether it's a Rails 2.3.x legacy app or a bright and shiny Rails 3 app.
Best Practices for Processing Credit Cards in Rails
Handling privileged customer information, such as credit card data or medical records, is always a challenge. Discover some Rails best practices for ensuring the security of vital customer information, based on practical experience gained creating payment processing systems for multiple projects.
DevIgnition T-Shirt Designs
Here's a preview of the T-shirt designs for the DevIgnition Conference being held on December 3rd at the Oracle Theater in Reston, VA.

Another item of interest: We've obviously chosen a rocket motif for the conference. It's interesting that Nasa has also scheduled the launch of the space shuttle Discovery for the same day as the conference.
It's Time for Rails to Grow Up
This is a great, 5-minute presentation from Jeff Casimir, recorded at the Ignite RailsConf event in June of this year. What I really like about it is that it sums up how I feel about Rails. I think it's time for the Rails community to grow up.

Recipe: Parsing RSS and Atom Feeds
Sometimes it's desirable to be able to ingest a remote RSS or Atom feed in order to make content available within a Rails web application. The first thing that pops into the heads of developers when this kind of requirement comes up is the dawning realization that they may have to create some really ugly XML-parsing code. Fortunately, there's a simple solution. Find out more!
Default Ordering in Rails
Sometimes it's convenient to ensure that all rows in a database table are always retrieved in a specified order for consistency. It turns out that this is trivial to do in Rails. Find out how!
Leveraging Rails to Build Facebook Apps
David Keener at SunnyConfMy presentation on "Leveraging Rails to Build Facebook Apps," which I just gave at SunnyConf, is now available online. This presentation is a distillation of some of the practical tactics that my development team at MetroStar Systems has used to create highly successful FaceBook applications using Rails, including real-life systems like PollCast and Iran Voices. FaceBook is the world's largest social network, with over 500 million members.

Credit: Many thanks to Chris Matthieu for the very cool conference picture.
Recipe: Accessing Your Subversion Revision in Rails
Have you ever looked at a Rails web site and wanted to know precisely which code revisions were deployed? If you know that a certain fix was implemented in Revision 436, how can you verify whether that fix has been deployed to production? This recipe shows how to quickly and easily solve this problem.
Our First RubyNation Video is Live
Our first RubyNation video is now live. It features Jim Wierich and his well received "SOLID Ruby" talk. It's been a lot of work getting the RubyNation video production effort off the ground, so it's nice to finally see our first polished video (only 28 more conference sessions to go).

Quick Start: ActiveScaffold
Quick Start: ActiveScaffoldActiveScaffold is more than just a replacement for the default scaffold functionality built into the Rails framework. The ActiveScaffold plugin provides a simple way for developers to quickly and easily add sophisticated data maintenance and data display features to web sites. Find out more about ActiveScaffold from my ActiveScaffold presentation, which is finally available online in PDF form.
MetroStar Systems Sponsors RubyNation



MetroStar Systems, a 10-year-old Information Technology Provider and one of Inc's "America's Fastest Growing Companies," has agreed to be a Diamond sponsor for RubyNation 2010, which will be held April 9 - 10. MetroStar is headquartered in Reston, Virginia, and specializes in systems and software integration for government clients. It provides clients with agile, collaborative solutions designed to integrate people, processes, technology and learning across an organization.
Creating a Breadcrumb Trail in Rails, Part 2
In Part 1, we built the basic functionality for generating a breadcrumb trail for a Rails application, but we didn't worry about packaging the code for maximum reusability. Well, "cut-and-paste" is not a sustainable reusability paradigm. In this article, we'll further streamline the breadcrumbs code and also show how to package it up to enhance reusability.
ExchangesConnect Online Video Contest Site
The ExchangesConnect Online Video Contest site was launched on November 17, 2009. Here's a sceenshot of the web site, which looks pretty cool now that the community has uploaded a bunch of videos.

ExchangesConnect Online Video Contest

The purpose of the contest is to help drive up the membership for the Department of State's ExchangesConnect social network, which is focused on promoting cross-cultural understanding around the world. The social network and the contest have been done for the Bureau of Educational and Cultural Affairs.

Check out the contest now! There's plenty of room for more participants.

Secretary Hillary Clinton on My Online Video Contest
Secretary Hillary Clinton speaks about the impending launch of my new web project, the ExchangesConnect Online Video Contest:


The ExchangesConnect Video Contest launches on November 17, 2009. This is a project I've worked on with fellow Rubyists David McVicar and Kelly Gifford, so we're all pretty pleased.

Videotaping RubyNation 2010
I'm one of the founders of the annual RubyNation technical conference, which will be held for the third time on April 8 - 10, 2010. Each year that we've held the conference, we've tried to up the ante in producing a bigger, better conference.

One of the exciting developments for RubyNation 2010 is that we're planning to videotape the conference sessions this year. More than that, we're going to produce a documentary about what it takes to organize and run a conference. I will be functioning as the producer for this documentary, which currently has a working title of "The Road to RubyNation: The Making of a Conference". When completed, this documentary will be shown on public television and will be streamed online.
Pre-Launch Animated Montage
Johnny Nguyen put together another animated photo montage (with the help of Animoto.com) to illustrate my development team's run-up to the launch of our new contest site for the Department of State.

Online Video Contest Launches in Two Weeks
Since mid-August, I've been working as part of a team to create an online video contest for the Department of State's Bureau of Educational and Cultural Affairs. They operate an online social network called ExchangesConnect that promotes cross-cultural understanding across the world. This is the second year that my company, MetroStar Systems, has implemented and managed an online contest for this client.

Second Annual Exchanges Connect Video Contest
How To Create an Atom Feed in Rails
You've got a great web site with great content. Now you'd like to make it easy for people to discover your content. You also need help generating traffic for your site. One of the best ways to do publicize your web site is to add a feed to your site. This article illustrates how to add an Atom feed to a web site using Ruby on Rails.
David Keener at RubyNation 2009
Many thanks to Dave Bock and Don Anderson, who snapped some excellent photos of me speaking at the RubyNation 2009 Conference on June 12th. Click here to see the full set of photos from my talk.

David Keener at RubyNation 2009
Creating a RESTful Web Services API
API ArchitectureI just gave a presentation, Creating a World-Class RESTful Web Services API, at RubyNation 2009. The presentation is now available online in PDF form. It's about my practical experiences creating a RESTful API for Grab Networks, a major supplier of news videos to the online world. It covers what I think is a pretty interesting architecture, almost a mini-framework, for creating web services in Rails.
David Keener at RubyNation 2008
Many thanks to Gray Herter, who snapped some nice photos of me speaking at the RubyNation 2008 Conference in August. Click here to see the full set of photos from my talk.

David Keener at RubyNation 2008
Practical Tips for Rails Migrations
Migrations are one of the neatest features provided by the Rails framework. The thing to remember, though, is that migrations are still code. Even migrations can get out-of-control after a while, unless you follow some practical tips for keeping them useful and relevant.
Creating a Breadcrumb Trail in Rails, Part 1
Lots of web sites have breadcrumb trails to show users the hierarchy of pages through which a user has navigated to reach their current page. In this article, I provide a simple set of generic methods that can be used to easily add a breadcrumb trail to a Rails web site.
NovaRUG: Implementing OpenID for Your Social Networking Site
On March 19, 2008, I presented on OpenID and Rails to the NovaRUG. There are thousands of social networking sites, each with their own unique sign-on systems. How many user names and passwords do you really want to remember? Wouldn't it be nice if you could have a single sign-on that you could use on all of the sites that you frequent? OpenID is an open-source, decentralized sign-on technology that promises this and more. My PDF presentation on OpenID is available online.
Implementing OpenID for Your Social Networking Site
There are thousands of social networking sites, each with their own unique sign-on systems. How many user names and passwords do you really want to remember? Wouldn't it be nice if you could have a single sign-on that you could use on all of the sites that you frequent? OpenID is an open-source, decentralized sign-on technology that promises this and more. My PDF presentation on OpenID is now available online.
Java Developers Notice Rails
Ruby on Rails, as featured in the latest issue of the Java Developers JournalThe latest issue of the Java Developers Journal features an in-depth primer on Ruby on Rails. It's a nice article by Ryan Garver, and a solid introduction to Rails. I think the Java community is beginning to notice this new, upstart technology.



JRuby Speed Test
JRuby is an implementation of Ruby in Java. It's come a long way in the last two years, going from pipe dream to viable platform. In the latest speed tests, JRuby has proven to be even faster than the C-based Ruby implementation.
Quick Start: What Is Rails?
Here's a brief but useful presentation that I've successfully used to introduce the Ruby on Rails technology to folks with absolutely no knowledge of it. Suitable for non-technical manager types, as well.
Speaking On: Implementing OpenID for Your Social Networking Web Site
I will be presenting at the Washington DC Ruby on Rails User Group on December 13th, from 7:00 PM to 8:30 PM. The meeting will be held at George Washington University.
October 2007 Presentation
David Keener will be presenting for the Washington DC Ruby on Rails User Group. The topic will be: "Using Rails to Create an Enterprise App: A Real-Life Case Study." Find out more about this upcoming presentation, which will be given on Thursday, October 18th, at George Washington University.
Debugging Cross-Database Issues in Rails Migrations
It's pretty common in the Rails community to use migrations with multiple types of databases, e.g. - developers might use MySQL in their development environments while creating code targeted to run in production against an Oracle database. Learn about some of the pitfalls, and solutions, associated with using migrations in a cross-database manner.
Conditional Logic in Rails Migrations
Migrations are an awesome feature of Rails. Since they're implemented in Ruby, you can add conditional logic to perform database actions only if needed. Find out how!
Rails Date Manipulation
Date manipulation is the bane of existence for enterprise developers. It seems like manipulating dates should be so easy, but yet it's generally tedious, painful and basically not fun. However, in Rails, it's not so bad. Find out why.
DOM Popup Kit
The DOM Popup Kit is a nice JavaScript utility for adding in-page popup elements to your web pages. Find out more about this simple, but useful, JavaScript utility, including how to use it in a Ruby on Rails application.
Quick Start: Rails LiveTree
This short presentation from my brother, Steve Keener, provides a step-by-step roadmap for creating a dynamic tree feature for a web site using the LiveTree JavaScript code and the Rails "acts_as_tree" mechanism.
My Presentation for the DC Ruby on Rails Users Group
I gave a presentation on Ruby Vector Graphics (RVG) at the Washington DC Ruby on Rails Users Group on May 3rd. Find out how it went.
Multiple Form Buttons in Rails
Simple forms may be sufficient for most web solutions, but not all of them. Find out how to create forms in Ruby on Rails that contain multiple buttons.
Speaking at DC Ruby Users Group in May
I was asked by Dave Naffis, one of the founders of the Washington DC Ruby User Group, to give a talk at one of the upcoming meetings (the May 3rd meeting, as it turns out). Find out more about my upcoming talk.
On Being a Rails Expert
There's been a lot of hype lately about a new technology called Ruby on Rails. What does it really take to be a Rails expert?
Getting Started With Ruby on Rails
This article describes a few tools, such as InstantRails and RadRails, that will help new developers get started with Ruby on Rails.