All Articles
SiteMeter is Now Dodgy
My web site recently started periodically interrupting navigation by redirecting users to advertising pages hosted by Needless to say, I was not pleased. is a notorious example of the "advertising spam" category of malware. Generally, it infects people's browsers by installing its own browser extension.

However, in the particular case, I traced it to the SiteMeter widget that I've been using since 2010. It's clearly been compromised in some way, so I've removed it from the web site.
More Than 100K Views
Every once in a while, I toddle on over to SlideShare, where I post most of my presentations, and just check to see how many views my presentations have had.

This time, I was gratified to see that I've crossed one of those significant boundaries. My presentations have been viewed more than one hundred thousand times.

Come see what my all-time Top Ten presentations are...
My Love/Hate Relationship with Static Code Analysis Tools
I have a love/hate relationship with static code analysis tools. On the one hand, they're great at helping teams eliminate substandard code practices, especially those that may potentially result in security problems. On the other hand, they're widely misunderstood and misused, as well, and often by management.

Find out more...
In the Slideshare Top 5% for 2014
I've got twenty of my presentations up on Slideshare. My most popular presentation of the year was Social Networking: The Next Weapon Against Bad Actors, which is about how social networking technologies can be leveraged to assist in cyber security. I first presented this at the government's GFIRST Cyber Security Conference.

My second most popular presentation was 21st Century Writer. This one discusses changes in the publishing industry brought on by the advent of electronic books.
Speaking at DevIgnition

My friend and fellow conference organizer, Gray Herter, just sent me a picture he took of me speaking at the DevIgnition Conference at Booz Allen Hamilton’s Newman Auditorium in McLean, VA. This is another of the 37 plus places that I’ve spoken at, although it was a very, very nice venue. There were roughly 150 attendees present at the event.
Interesting Email Chain
An interesting email chain from work (with the names changed to protect the innocent), into which I just HAD to slip an esoteric movie reference...
RubyNation 2014 Logo Preview
Here's a preview of the new RubyNation 2014 logo. This year's challenge was to integrate an iconic Washington DC landmark with the ubiquitous ruby gemstone motif that's so prevalent in the Ruby language community.

A more line-oriented version of this logo is going to look awesome on the conference T-shirts next week.
In the SlideShare Top 2% for 2013
I was just notified that I was one of the Top 2% Most Viewed for 2013 on SlideShare. I have a total of 19 presentations posted online, and they've been generating some great traffic all year.

About the Target Attack
For those who might be interested in what really happened during the recent Target retail attack, where information about 40 million credit cards was stolen (including mine), here’s a really interesting article from Security Week:

In a nutshell, the attackers used a RAM scraper to pull credit card information that was stored “in the clear” within memory.

And yes, I was issued a new card because of this whole fiasco.
Domain Names Made Easy for Non-Techies
One of my non-technical friends, a writer and motivational speaker, bought a new domain name recently, then asked me how to get it pointed to her soon-to-be-rebranded website. The ensuing discussion revealed that she, like most non-techies, knew next to nothing about domain names, other than that "she needed one."

Since I suspect there are many other people around just like her, I thought it might be a good idea to demystify domain names. So, let's go on a tour through the wild, wild badlands of the Internet.
The Magic Incantation
If you're a system administrator, please don't read this article. It contains highly sensitive and technical information of general use only to software engineers. Also, please note that when I say "software engineer," I mean individuals who actually develop software.

Um, and by "developing software," I mean individuals who actually write code. So, basically, this article is for the roughly 10% of software engineers and system engineers that actually build things (I'm not actually being snarky; this is the rough percentage that I'm seeing in government consulting).

If you're still with me, read on...
Using Social Networking to Fight Bad Actors
Check out my cyber security presentation from GFIRST 2012...

GFIRST was a 1500-person conference hosted by the Department of Homeland Security. I conducted this presentation in round-robin fashion with my two partners in crime, Dave Roberts and Jonathan Quigg.

My Presentations on SlideShare
I regularly release all of my presentations on To date, my presentations have been viewed over 74,046 times. Today, I thought I'd share my Top 5 list with you.
NationJS Speakers Selected
The speakers for NationJS, a new regional JavaScript conference, have been selected. I was part of the Selection Committee that met last night to consider all of the proposed talks that we received from our Call for Papers.

There were a lot of great proposals from speakers across the country. This was gratifying because it's always a challenge starting up a new regional conference. We were pleased to discover that so many top-notch speakers were interested in head-lining our event.

It's going to be a one-day, double-track event. It will be held at the Silver Spring Civic Center, where we last hosted RubyNation 2013.

We're expecting quite a few attendees, as well. I hope to see you there...

Domain Name Validator
I just released the domain_name_validator gem, which is a simple Ruby gem that provides the capability to validate domain names. There are a number of other gems that provide features for dealing with domain names, but none of them provided, in an easy-to-use form, the particular capability that I needed.

Put simply, I needed to know for any given domain name, whether that domain name was valid. I work with clients who often pass around extensive lists of domain names encountered while anlayzing malware. I needed to be able to process a list of domain names, and tell my clients which ones were valid, and which were not.

Accordingly, the scope of this gem is deliberately focused on validating domain names. It simply answers the question: "Is this a real domain name?"

Find out more about this new gem or check it out at GitHub.
Everything That's Wrong With Java
Here's everything that's wrong with Java, embodied in one class...

Yes, that is indeed a link to the AbstractSingletonProxyFactoryBean class of Java's Spring framework. I couldn't even begin to tell you what this class does, but I think it scares me.
Thoughts on the GFIRST 2013 Cancellation
GFIRST 2013 - 9th Annual Cyber Security Conference

Citing sequestration and the need for financial tightening, the Department of Homeland Security (DHS) just canceled GFIRST 2013, a major cyber security conference that I was scheduled to speak at. Frankly, DHS may also have had some concerns about the scrutiny to which the IRS is currently being subjected for it's expenditures.

You see, DHS hosts GFIRST for free. As someone who runs and organizes events myself, this boggles my mind.

Find out more about GFIRST...
Thoughts on RubyNation 2013
RubyNation 2013 at the Silver Spring Civic Center

We changed things up a little bit for RubyNation 2013, the 6th year that we've organized and run this conference. For the first time ever, we held it in Maryland, more specifically in the Silver Spring Civic Center in downtown Silver Spring.

There were some reasons that we did this. We weren't sure how well it was going to go over with our audience of Rubyists, so we were extremely gratified that there was almost unanimous praise for the new venue.

Find out more about my thoughts on RubyNation 2013...
Programmer Mafia
The IT field isn't known as a hotbed of gangster activity. But if there were Programmer Mafia, I bet you they'd look like this:

Programmer Mafia: David Keener, Dave Roberts, and Jonathan Quigg

From left to right: David Keener, Dave Roberts, and Jonathan Quigg, on the occasion of Dave Roberts leaving General Dynamics Advanced Information Systems. This photo was shot on his last day with the company.

RubyNation 2013 Badge Preview
Here's a preview of what the RubyNation badges are going to look like for this year's conference. By the way, this is our sixth annual conference, and it's being hosted for the first time in Silver Spring, MD, at a metro-accessible location.

RubyNation 2013 Badge Preview
You Can Never Have Too Many Daves
This is what happens when: 1) you have multiple Dave's on your software development team, 2) you're punchy because you just successfully finished a major software release, and 3) you have a couple of spare pairs of 3D movie theater glasses running around.

Daves, with attitude...

This is me with fellow software developer, Dave Roberts, at General Dynamics.

Heck, this could be the start of a whole new style in web developer gear. What do you think?
Yahoo Mail Problems
Dear Yahoo,

Yahoo has been my front-end email client for 12 years. Is it time to change?

I use Yahoo as the front-end to manage my email. I have 12 years of history stored in folders within that client. But my email has been down for four days now. Even the Mail Options page won't load most of the time.

I can get my email through other means (my hosting service has a web-based client), so I'm only inconvenienced, not crippled. But seriously, this is supposed to be a professional service.

Your ads aren't broken, but my email is. Nothing on my end has changed. Nothing at my hosting service has changed.

Fix it, or lose a dedicated customer. Oh, and this blog entry will stay up as a permanent ad against your service.

   -- The Management --
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!

MySQL: A Grab Bag of Useful Bits
Database management tools are nice to have, but they're not essential (I'm talking about you, MySQL Workbench). When the tools aren't working, for whatever reason, you can always go back to basics and create the objects you need from the simple, mysql command-line utility. Here's a grab bag of things you can do...
DevIgnition 3 Bigger Than Ever
DevIgnition 2012, now in it's 3rd year, was a smashing success! It's grown into a one-day, double-track conference with 170+ attendees. Many thanks to SAIC for helping us host this awesome event!
It's Good to Have Choices
When you do government contracting work, every once in a while you can run into problems with contract extensions, re-competes, protests, etc. It's always good to have a fallback plan, which is why I really appreciated getting an email containing the image shown below. It's good to know that there are opportunities out there for me, no matter what happens.

Trucker Job
Agile Spaghetti
I recently had the opportunity to take the Agile Project Management class with Brian Watson from VersionOne. This was a prep class for the PMI-Agile Test.

During the class, one of the exercises was to build a freestanding structure using only spaghetti, Marshmallows, string and some blue tape. My team's end product appears below:

All About the GFIRST 2012 Conference
I'm at GFIRST 2012, the 8th Annual Cyber Security Conference hosted by the Department of Homeland Security. I spoke on Wednesday, August 22nd, with co-presenters David Roberts (General Dynamics) and Jonathan Quigg (Data Tactics), on the subject of "Social Networking: The Next Weapon Against Bad Actors."

The slides for the presentation will be online later. Meanwhile, I'd like to tell what the conference was like, how it differed from my expectations, and provide some thoughts about future directions for the conference.
RSA Biker Party
Yes, RSA knows how to throw a party.

The company is known for their extravagant parties at government conferences, but I'd never actually had a chance to attend one before. Awesome food, unlimited drinks and a live concert with Collective Soul.

Find out more about their August 22nd party at the GFIRST 2012 Conference in Atlanta, GA.

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

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.
Speaking at GFIRST 2012
I will be speaking at the GFIRST (Government Forum of Incident Response and Security Teams) 2012 Conference, which is hosted by the Department of Homeland Security. The conference brings together speakers, vendors and more than 1500 attendees from the cyber security arena for a week-long event featuring industry-related presentations, product demonstrations and training.

RubyNation Poster
Here's a stark, cool and unused RubyNation poster...

Viewing Aging Git Branches
This really simple shell script from my friend, Robb Kidd, system administrator extraordinaire, shows local git branches in order from most recently used to least. You'd be surprised how useful this script is.
Do Your Commit Messages Suck?
This is a reprise of one of Ryan McGeary's best lightning talks from RubyNation 2011 (the second of the 6 lightning talks that made up his 40-minute "One-Man Lightning Talks" session). It's a great lightning talk, which I'm also using to test out the features of Vimeo.

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.

RubyNation 2012, Day 1 - Dinner
Day 1 of RubyNation 2012 was awesome! Corey Haines snapped this photo of a bunch of us techies having a late dinner at Chili's...

On the left side, Charles Calvert is 2nd from the front, I'm fourth and Robb Kidd is fifth.

Elevator Up, Please!
Space travel is dangerous and expensive, but it doesn’t have to be. Find out about an alternative way to reach orbit that is rapidly becoming feasible and may eventually change how we view our world.

RubyNation 2012 Logo Graphic
Our graphic artist, Don Anderson, came up with an awesome Mayan-themed graphic logo for RubyNation 2012. Here's a sample below:

RubyNation 2012 Shirt Design Preview
Since this is 2012, the end of the Mayan calendar, we went with a Mayan theme for our RubyNation Conference shirts this year. Here's the logo for this year shirts, compliments of Don Anderson, our illustrious graphic artist.

According to Don: "The glyphs are the Mayan date for March 23rd — 2 Chik'chan, 13 Kumk'u 2012."

And for the really curious: "Dots represent 1 and bars 5, the shell is zero. Mayan is base 20 and from right to left, 12 (1's) + 0x20 + 5x400 = 2012. Yes I know this isn't the real Mayan Year, but if I did the long count I wouldn't have enough room. 2012 makes more sense."

Toastmasters 2012 International Speech Contest
I've found Toastmasters to be an excellent organization for helping me to improve my speaking skills, as well as my leadership skills. I was proud to participate today in the Toastmasters 2012 International Speech Contest for my area (District 29, Division D, Area 45).

Edmond Joe, who is a Distinguished Toastmaster (DTM) and an awesome speaker, was kind enough to take some photos of my talk:

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.
Featured Slideshare Presentation
I was fortunate to receive the following email from SlideShare:

Interplanetary Hunter - by Arthur K. BarnesHey dkeener,

Your presentation, "Killer Business Models," has been featured on SlideShare's homepage.

Kudos from our editorial team for your effort. Your presentation was chosen from thousands uploaded to SlideShare everyday from across the world.

— The SlideShare Team
Buidling Facebook Apps at At DevIgnition
My presentation from DevIgnition 2011, on SlideShare and PDF.

DevIgnition Podium Graphic
Don Anderson, graphic artist extraordinaire, put together a nifty podium graphic for DevIgnition 2011. Check it out below:

Science Fiction and the Real World
Interplanetary Hunter - by Arthur K. BarnesIt's clear that there's not a lot of respect for science fiction.

Despite the fact that 9 of the top 10 movies at the worldwide box office are science-fiction; and 18 out of the top 20; and 26 out of the top 30 movies. And despite the fact that science-fiction-related books appear regularly on the New York Times best seller list.

Well, I think that's wrong...

Killer Business Models
My talk on "Killer Business Models" from RubyNation 2011 is now available online. Check it out!

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).
Changing the Domain of a WordPress Site
You've got a WordPress site, and you've had to change the domain name where it's hosted. Suddenly none of the links on the site work. How do you fix it?
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.
The Most Interesting Man in the World...
I don't know who gets the original credit for this one, but Jessie Link is the person who brought it to my attention.

Scheduling Talks for a Conference
I've been a co-founder of two successful and profitable conferences, RubyNation and DevIgnition, now heading into their 5th and 2nd years respectively. In this time, I've learned a little bit about scheduling talks at a conference. Come find out the logic behind those conference agendas!
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.
RubyNation Main Room Videos
I've solved most of the workflow problems with the RubyNation 2011 video content from the main room, the footage that was shot with the awesome Sony EX1 camera that we borrowed from Near Infinity. In the video realm, "workflow is a fancy word for getting video from the camera into a format that you can use for editing with all elements intact. It's backed up by Dave's Video Corollary - "no matter where you get video from, it will never be in the format that you need."
RubyNation 2011 Podium Graphic
Each year, we create various accessory graphics for RubyNation. I thought I'd share the graphic we created for this year's podiums, i.e. - the 22-inch by 18-inch graphic that appeared on the front of the podiums where the speakers were giving their talks. By the way, I thought the graphic looked MUCH better on video than the "Sheraton Hotel" image that is present by default - the Sheraton can do their own advertising.

Graphic by Don Anderson
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.
RubyNation 2011 Photo
Many thanks to the incomparable Don Anderson for snapping this photo of me at RubyNation 2011. I was giving my "Killer Business Models" talk.

Slides for Killer Business Models
Killer Business Models PresentationThe slides for my RubyNation 2011 talk, "Killer Business Models," is now available online. For this year's conference, I decided to venture off the beaten path and do a "big picure" talk. There's enough Ruby/Rails developers either working for startups or contemplating creating their own startups, that I felt a general business talk would be of interest to a solid sub-set of conference attendees.
Some Thoughts on the Internet
Last Wednesday, my Verizon FIOS Internet connection went down for the entire day. What was amazing to me was how much this impacted me. High-speed Internet access is ubiquitous nowadays; we don't even really think about it unless it's absent. When it's not available, you begin to realize just how much the Internet has pervaded every aspect of our lives.
My Favorite RubyNation Ad
In the first three years of running the RubyNation conference, Code Sherpas, a local consulting firm, is responsible for creating my favorite advertisement. This appeared in the 2010 Conference Program.

The Ruby code that appears in the ad is hilarious in a "We just saw District 9 and we really liked it" way. If the graphic above is too small for you to make out the code, check out the full article to view the sample code...
My RubyNation 2011 Talk
Here's the official description for the talk I'll be giving at RubyNation 2011:

Creating Killer Business Models

You've created some really great software, but is it sufficient to form the basis of a viable business? What's your business model? How can you describe your business model and effectively communicate your vision to others? How can other people evaluate your business model and determine whether your vision and business strategies have merit? In this talk, I'll provide a conceptual basis for defining, documenting and evaluating business models. I'll also use real-world examples to show how these concepts can be effectively applied to help build actual businesses.
Iran Voices Now Available
The Iran Voices Facebook application was re-launched today. It was originally created in 2009 during the tumultuous Iran election. I updated the application this week because of the current unrest in the Middle East. The application allows Iranians, both current citizens and former citizens living abroad, to voice their opinions regarding the issues that will shape the future of Iran.

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.
AirBanking Web Site Launches
I've been working on an innovative banking web site called AirBanking. The site just launched today, and features online tools, built-in social networking features, an online blog and some serious video production. Check it out!

Introduction to Git
Git is a source code management (SCM) utility that has come into widespread use within the open source community and is now expanding rapidly into the corporate realm. It offers some unique advantages over other SCM systems, particularly Subversion, which it is quickly supplanting. Find out more about this new tool.
"Brace Your Smile" Contest Launches
This is another online photo contest that we've just fielded using the Votridea contest platform. This is the software platform for which I'm the technical architect and development team lead.

Recording Events With the Sony EX1 Video Camera
This is my new toy, the Sony PMW EX1R video camera. Well, it's not really mine, but Near Infinity was kind enough to loan it to us so we could videotape the DevIgnition conference. It's hard to say enough great things about this video camera. For DevIgnition, the camera produced great footage even with mediocre lighting. And for practicality, nothing beat recording to its two hot-swappable memory cards. When one card fills up, simply eject it, download the files to a laptop (with a big external hard drive) and then pop the card back into the camera.
DevIgnition Launches in Grand Style
The DevIgnition Conference debuted on December 3rd in the Oracle Theater at Oracle's facility in Reston VA. As one of the founders, I'm pleased to report that the conference was a terrific success, with a roster of excellent speakers, a nice collection of sponsors and a sold-out crowd.

This multi-technology conference included talks on Java, JavaScript (not related to Java at all), Clojure, JRuby and NetBeans. Now, we just need to start planning for DevIgnition 2011. Photo by Arun Gupta, Oracle's Glassfish evangelist.
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.
Chad Fowler Jams at RailsConf
Here's a photo that I've been meaning to upload for a while. I captured a nice shot of well-known Rubyist Chad Fowler jamming with the band on June 9th at RailsConf 2010. That's Chad with the sax.

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.
Happy Ryan Reynolds Day
Today I managed to catch up with Theresa Kattula on her self-proclaimed mission to promote today as "Ryan Reynolds Day" — since he was just selected by People magazine as the sexiest man alive. To celebrate, Theresa created Ryan Reynolds paper dolls for some of the women in the office, with clip-on attachments for abs, a power tie, a Green Lantern uniform, etc. Here's Theresa, hard at work:

Considerations for Contest Rating Systems
I've recorded some thoughts on what it takes to create a contest rating system that accurately reflects the voting of thoughtful users, and which discounts the effects of bad behavior on the voting process. Drawn from my real-life experiences in helping to craft a rating system for a contest platform.
All About Monsters

I had a chance to see "Monsters" today, a great new indie science fiction film written and directed by Gareth Edwards and produced on a shoestring budget. I came away extremely impressed with the film, not just as a good first film or a good low-budget indie effort, but rather, as a good film period. Find out more!
Animated Planets
My friend, Don Anderson, created some really nice animations for his personal web site. On his site, roll your mouse over the animation to see the controls. According to Don: "I wanted to create a simple interface with some interactive elements while using 3D animation - so I worked in Flash with Away3D - a class package/framework that uses Flash's internal 3D engine."

Here's a screen shot of one of his animations.

Don continued "It's all done with code and dynamically generated."
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.

New Photo Contest Goes Live
A new photo contest, entitled "A Single Drop of Water," has just launched using the new Votridea Contest Platform that I helped create. The contest is sponsored by Statement Arts, a New York charity that promotes education in the arts for disadvantaged youths. Check out the contest now. They're offering real cash prizes!

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!
DevIgnition 2010 Poster
Here's the poster for DevIgnition. We'll print a few of these posters for display at the conference, plus this design will be featured on the conference T-shirts. Well, actually, the DevIgnition logo will appear on the front, and the white-on-black rocket and text will appear on the back.

Final DevIgnition Logo
Tickets for the DevIgnition Conference on December 3, 2010 are selling briskly, so get yours now. Meanwhile, here's a look at the final version of the conference logo, compliments of Don Anderson. Note that color has been added for impact, and the rocket looks a little bit less like a lawn dart.

DevIgnition Logo
The DevIgnition Conference will be held on December 3, 2010 at the Oracle building in Reston, VA. Here's a draft version of the conference's logo, from the incomparable Don Anderson:

AppsAtState Announcement Site Goes Live
The new Apps@State initiative was announced on October 14, 2010 at the US Department of State’s Conference for all global Public Affairs Officers (PAOs). The goal of the initiative is to empower the nation's public affairs officers by providing them with simple yet powerful tools to make their messages informative and impactful to viewers in their respective countries.

The Apps@State Project Is Announced

I was very pleased to have become involved with this project, both for the initial announcement web site and for the far larger project that is following on its heels. It's time create some real online tools to facilitate 21st century statecraft.
Announcing Apps@State
I'm working on a project called Apps@State. Here's a video produced by Talbot Digital that describes the vision for the project. Also check out the new brochure site at Apps@State.

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.
Tags, Categories and Taxonomies in WordPress
Wordpress 3.0.1 provides features such as tags, categories and taxonomies to classify content within a WordPress site. Find out how these features work!
XKCD on Period English

For more amusing content, check out the XKCD web site.
Evolving Web Projects Into Online Products
There's a difference between a software project and a product. I've been helping clients create innovative projects on the web for a long time. Lately, I've been responsible for evolving, or planning to evolve, several projects into online products. It's harder than you might think. Discover some tactics for accomplishing this difficult transition.
Organizing and Running a Conference
For the last three years, I've been fortunate enough to work with a great team of people to run a successful and profitable technical conference called RubyNation. This conference is an annual event, part education and part entertainment, that promotes the Ruby programming language. As you might expect, I've learned a few things about how to organize and run a conference over the last three years. I'm going to share some practical tips and suggestions about how to organize and run a relatively large-scale public event like a conference., the SEO Powerhouse
My company, MetroStar Systems, just launched Votridea, an Online Contest Platform. Of course, the various search engines take a little time to properly rank such a new site. I'm tickled pink that I've been able to tease MetroStar's management with the fact that my Votridea-related blog entries on have been more effective at "getting the news out" than Facebook, Twitter and even MetroStar Systems' web site. In fact, the only site that beat KeenerTech, according to Google, was PrNewsWire.

Votridea Search Using Google
Votridea Contest Platform Launches
Votridea is an easy-to-use online Contest Platform that fosters innovation by building communities around ideas and challenges. Votridea is an all-in-one, customizable suite of contest and community management tools that makes the complex process of building online multimedia contests simple. It's also the project that I've been working on for many months now, so I'm very pleased that we've just launched this dynamic product.

The Votridea Online Contest Platform Launches!
In Baltimore Inner Harbor
I was just in Baltimore engaging in business development activities for Votridea, our new online contest platform. Afterwards, we hung out in Inner Harbor, where there's plenty of nice restaurants, bars and shops. Hey, did I mention the bars? This is a picture of me, with Johnny Nguyen, Vice President of MetroStar's New Media Group, and Winifred Tse, our illustrious project coordinator.

Baltimore Inner Harbor: Johnny Nguyen, David Keener, Winifred Tse
Photo Credit: Dave McVicar
At the Crossroads
It came to me a while ago that I had come to a crossroads in my career. This isn't the first time that this has happened. Like everybody else, sometimes you reach a point in your career where you need to decide what direction you want to go next. Read further, and gain some perspectives on what you might do when you next find yourself ... at the crossroads.
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).

How to Get Your Conference Proposal Accepted
I've been part of a team running a technical conference called RubyNation for the past three years. It's been a successful conference all three years, both in terms of profitability and its reception by conference attendees. This wasn't entirely an accident. We worked hard to make sure we had high-quality speakers with the kind of content that would be attractive to our intended audience, as well as making sure other conference aspects were addressed - e.g. - venue, food, equipment, etc.

This experience has given me some insight into what it takes for an individual to secure a speaking engagement at a conference. I'll provide tips on how you can making your speaking proposal more attractive to conference planners, thereby increasing your odds of getting accepted as a speaker.
Filming at RubyNation 2010 External Link
It's been crazy lately, first with the run-up to RubyNation 2010, and then getting the video production effort in full swing after the conference was over. We finally managed to get some of the photos from the conference online.

Filming at RubyNation 2010
Multi-Shots: The Web's Newest Craze
My friend, Don Anderson, is a talented graphic artist and photographer. He recently started a side business called Clonimation doing custom photo shoots to produce what's generally referred to as a "multi-shot." An example multi-shot featuring my 135-pound Lab-Rottweiler, Bentley, is shown below:

A Multi-Shot of Bentley Keener
RubyNation Tape Inventory
I finished the inventory of tapes for RubyNation. We have 34 DVCAM tapes, which are the large tapes from the professional-caliber cameras that we borrowed from Arlington Independent Media (AIM). They'll have to be ingested into digital form IN REAL TIME at AIM's ingestion facility. We have 32 MiniDV tapes, which are the tapes from the small consumer video cameras.

Of these, 32 DVCAM tapes and 24 MiniDV tapes are from the conference sessions (56 tapes total). The remaining 10 tapes are extra footage, including conference interviews, footage at the RuBy-B-Q, footage of org meetings, the pre-production walk-through at the hotel, footage from the cherry blossoms festival, the Jeremy McAnally interview, etc.

All in all, I'm estimating it at about 45 hours of footage.
Anatomy of an April Fools Joke
I'm one of the founders of the RubyNation conference, which is scheduled for April 9 - 10 this year. Since the conference date was so close to April 1st, and since so many people were actively viewing the site during the run-up to the conference, well, we couldn't resist throwing in an April Fools joke. Surprisingly, it worked extremely well.

RubyNation Web Stats

We got a major traffic spike when Matz, the creator of the Ruby programming language, re-tweeted about our April Fool's joke. Find out more about our online joke on the the Ruby community.
Shooting the Cherry Blossom Festival
Where was I at a ridiculous time in the morning on April 1st? I was at the tidal basin in Washington DC with Don Anderson shooting pictures and video for the RubyNation documentary that we're doing for Arlington Independent Media. I've lived in this area since 1987, but in all that time, I'd never been to see the cherry blossoms. I have to say that the cherry blossoms were a pretty impressive sight and that I can see why they've become a tourist attraction.

David Keener at the Cherry Blossom Festival
Video Production Volunteers Needed
RubyNation 2010 is just around the corner. The conference is April 9 - 10. We've just released a "Volunteers Needed" flyer for experienced video production volunteers in the Washington DC area. We have video production activities that will be taking place on April 8 - 11. See the flyer for further details.

Video Production Volunteers Needed for RubyNation 2010
Chad Fowler at RubyNation 2010
Just saw this tweet from Chad Fowler, who was last year's keynote speaker for RubyNation. He'll be at the conference this year as an attendee. How cool is that?

Chad Fowler Attending RubyNation 2010
Oracle and the Future of Java
Oracle purchased Sun, the company behind the widely-used Java programming language. Naturally, developers have been worried about what this means for the future of Java, and rumors have been swirling. So, Oracle has created a series of video advertisements to address these rumors....

Puzzle Solving and Corporate Culture
There's a new tradition at MetroStar Systems. It started when someone left a 1000-piece Christmas puzzle in the lunch room at MetroStar's headquarters in Reston, VA. It quickly became a collaborative effort with many employees participating in solving the puzzle. Now, it's simply become expected that when one puzzle is solved, a new one will soon magically appear in the lunch room.

Collaborative Puzzle Solving
New Version of RubyNation Site Released
A new version of the RubyNation web site was just released today. The new graphics were created by Don Anderson, while the new look-and-feel, including CSS, was assembled by me. The new look highlights the fact that RubyNation 2010 is being held April 9 - 10, which overlaps with Washington's Cherry Blossom Festival. This is the first major change to the site's design since its initial launch in mid-2008.

RubyNation - The Nation's Ruby Conference
Nine Days
Find out what a Java guru can do in 9 days if he's really pressed.
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.
Playing With Microsoft Surface
Microsoft Surface is a new, horizontally-positioned multi-touch computer first introduced in 2007. Through a combination of software and hardware, it features gesture recognition capabilities that allow multiple people to use it at the same time. I had a chance to play with a Microsoft Surface at work, and I have to admit that it was pretty cool.

Microsoft Surface
RubyNation 2010 Graphic Preview
Here's a preview of the new graphic "theme" for RubyNation 2010. The design was created by Don Anderson, graphic artist extraordinaire. Since this year's conference, scheduled for April 9 - 10, will overlap Washington's annual Cherry Blossom Festival, we decided to incorporate cherry blossoms into the theme. Interestingly enough, the cherry blossoms were originally a gift from Japan; likewise, the Ruby programming language was created in Japan.

Come to RubyNation 2010

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.
Is Hulu Just a Glorified Tivo?
There's a paradigm shift that's impacting the entertainment industry, and it's already changing how, when and where we watch television shows and movies. For example, I watch most of my movies and television shows on my Mac laptop, either via a download from my Tivo, a show on, a DVD or a downloaded video. Despite this, I don't think the entertainment industry is evolving fast enough, and I think they run the risk of alienating customers (me being one of them, of course).
New Version of Released
Just released a new version of This is a major release for this blog about motorcycle racing that I created years ago for my brother, Steve Keener. This release jettisons .NET in favor of a WordPress, i.e. - the site was created using the open source WordPress blogging software, with a custom theme. The new platform has a few other advantages — it can be hosted more cheaply on Linux rather than on a Windows server, and it also uses MySQL, an open source database server (as opposed to Microsoft SQL Server). - Motorcycle Racing ...with attitude
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.
Social Networking With Jive's Social Business Software
Jive's Social Business SoftwareJive's Social Business Software (SBS) platform provides an integrated suite of social networking tools that can be applied effectively within a business environment. Learn more about this highly functional software platform.
RubyNation 2010 Interviews
I was in the studio at Arlington Independent Media a few weeks ago taping some interviews for the upcoming documentary, "The Road to RubyNation: The Making of a Conference." Here's a teaser picture of me interviewing Gray Herter, Chief Organizer of the RubyNation Conference. The shot was taken from the studio control room, so Camera #1 (of 3) can be seen in the background on the left.

RubyNation 2010 Interview With Gray Herter
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 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
A Costly Calculation
I find myself singularly unimpressed by the technical competence of the world's financial market. I recently purchased plane tickets for an international flight and was surprised to see a $50 "transaction fee" on my bill from British Airways. Admittedly, I live in the United States and I was buying tickets from a British carrier, but still, a $50 charge for an automated electronic calculation that converts dollars to pounds? I understand that credit card companies are now doing the same thing. The problem that I have with this is that there's no intrinsic cost associated with the transaction — no time involved, no physical goods changing hands, no people involved. It's just plain and simple digital robbery.
ExchangesConnect Introductory Video
Here's the introductory video about the 2nd Annual ExchangesConnect Video Contest. This is the contest site that I've been working on with Dave McVicar and Kelly Gifford. Our awesome marketing specialist, Jenny Hubacher, took the lead in producing this video.

A Little Inspiration
I'm always designing things, mostly software programs in one of a couple different languages. When you spend a lot of time doing the same things, it's easy to slip into a rut without realizing it. Something that I find useful to combat this is to look at interesting designs in other totally unrelated fields.

House on the Ocean, a unique design
The Online Office
My team at MetroStar systems is trying to do something a little different. We're trying to do everything digital. Everything that the team does should be sharable online. Find out more about our experiment in team collaboration.
Ruby Magic, Compliments of External Link
Here's a short video called "Ruby Magic" that Johnny Nguyen put together to highlight the Ruby development team (me, Dave McVicar and Kelly Gifford) for MetroStar System's New Media Group.

Built using, a new site that focuses on automatically creating killer videos from uploaded image sets.
Maven Introductory Presentation Available Online
My presentation, Maven: Managing Software Projects for Repeatable Results, is now available online. Find out how to leverage this sophisticated build tool to automate key tasks for your next Java project.
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.
Web Site Survey Released as Open Source
Web Site SurveyOver the years, numerous people have approached me to do small to medium-sized web sites. I've always used a Web Site Survey to help these people refine the requirements for their web sites. Since it's been so beneficial to me, I thought I'd release the Web Site Survey via a Creative Commons license. It's available online in both PDF and Microsoft Word formats from the Downloads page.
Happy July 4th, 2009!
Somebody sent me an email with this picture. I thought it summed up the meaning of July 4th by juxtaposing celebratory fireworks with the graves of the many soldiers who made our freedoms and way of life possible.

July 4th, 2009 - Fireworks over Arlington National Cemetery
Radical Career Success in a Down Economy
Authors Chad Fowler and Andy Lester just had a free webcast sponsored online by O'Reilly. The topic was "Radical Career Success in a Down Economy." It was a pretty good talk. O'Reilly says the recording of the talk will be online soon, so I'll post a link when it becomes available. In the meantime, here are some of my thoughts on the talk.
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
Using the Subversion Revision Number in Your Application
Many applications incorporate the latest revision number into a release when it's built. One common example is showing the revision number in the About window of a Java application. This article shows how to do this very effectively for a Java application being built by an Ant script.
New Version of KeenerTech is Now Live
A new version of, designated as Version 3, is now live! is now a Rails 2.2.2 site, replacing the previous version which was an ASP.NET site. Additionally, the site is now hosted with WebFaction on a Linux system instead of being hosted on a Windows-based system. Most of the differences are internal, where the web site functions much more smoothly than before, with content management facilities far in advance of what the old version had. Visually, the biggest difference is that the web pages are wider, allowing more scope for the content.

It's all functioning pretty well, although I'll probably still be working out a few kinks for the next few days.

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.
RubyNation 2009 Design Preview
RubyNation 2009 is just around the corner, and I've been working diligently with Don Anderson, graphic artist extraordinaire, to come up with a suitable design for this year's conference hand-outs, such as the T-shirts and badges. So here's a preview of the design we came up with.

About the Site Meter Widget
Site Meter is a company that provides a web site widget that tracks visitors and page views for web sites. I've used their widget on and a few other web sites now. I think I've used it enough to provide a solid review of their widget.
Site Meter: A widget for tracking web site traffic

Kabob Kwest 2009
A number of the folks on the Ruby and Flash technical teams at Grab Networks have a passion for kabobs. Out of this passion was born the idea of a quest to find the best kabob restaurant in our kingdom, er, area. After all, King Arthur and his knights had their quest for the Holy Grail. Why can't we have our own "kwest" for the ultimate kabob? Naturally, this inspired Don Anderson, our resident graphic artist, to come up with a suitable emblem for our great and noble cause.

Kabob Kwest 2009 - The Search for the Ultimate Kabob
Pop Quiz: Why Does Verizon Suck?
The graphic below shows my download and upload speeds in megabytes per second from Verizon FIOS. Can anybody guess why I think Verizon's FIOS service sucks? At least for me, anyway. Hint: I'm paying for the 20/5 plan, which means I should get 20 Mbps download speed and 5 Mbps for the upload speed.

My personal Verizon download speeds
Traffic Report 2008
One of the topics I've been blogging about on this site concerns my efforts to increase the traffic numbers for the web site. In this article, I discuss the traffic numbers for 2008, and I include a chart, generated with Google Charts, that illustrates the traffic numbers.
Some HTML IS All Right External Link
User-entered HTML is always problematic for web projects. You'd like your site to have social features that allow users to enter content that will eventually appear online in a nice format, and HTML is a natural fit for formatting. On the other hand, the full complement of HTML tags puts a little too much power in the hands of certain users who might not have your best interests at heart. This external article that I found provides a simple solution for allowing users to enter a limited subset of tags within their content.
Managing Database Dumps Using MySQL
On every project, I find myself creating a development version of the project database. The easiest way to get a database with real data in it for testing purposes is to make a dump of an existing database and load it wherever it's needed. Here's some simple instructions on how to create a database dump of a MySQL database and how to subsequently load that database dump.
A Primer on RESTful Web Services
Everyone is talking about the RESTful (Representational State Transfer) approach for building web services, and how this approach is better than traditional SOAP-oriented web service architectures. Even Amazon, which supported both SOAP and REST for its AWS service (which provides access to product-related information), recently shut down its SOAP interface in favor of the RESTful one. This article provides a simple primer about RESTful web services, highlighting some of the key differences between RESTful architectures and more traditional, SOAP-oriented architectures.
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
VMWare Fusion
VMWare Fusion: Making life easier with virtual machines.I've become a fan of VMWare, particularly VMWare Fusion for the Mac. I was a little skeptical of the idea of virtual machines at first, but not anymore. Let me show you how virtual machines have made my life easier.
Removing Browser Default CSS Styles
There's too many browsers to count nowadays and each browser subjects web pages to its own default CSS styles. These defaults make it painful to implement web pages that look consistent across the numerous available browsers. Wouldn't it be nice if you could just sweep away those default CSS styles and start with a clean slate?
Introduction to RubyGems
RubyGems is a package manager for Ruby code, where each package is referred to as a "gem." All of the Ruby books show users how to install gems, but almost nobody explains how to use the many other features of RubyGems.
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.
If You Can't Find the Oracle
The Matrix is everywhere.So, my friend, Jake Vanus, was trying to get Oracle running on a Windows laptop. After several installation/configuration cycles, he had to drop the task for a while. When he came back to it, he couldn't remember whether Oracle was still installed or not, so he asked me where to find the Oracle startup scripts. To which I responded gravely, "If you can't find the Oracle, you will have to seek out the Merovingean."

It's always helpful to slip in a Matrix joke when a buddy is having technical issues.
Mac Office 2008 Product Key Issue Solved
There have been numerous reports on the web of installation issues with Office 2008 for the Mac. Most of the issues seemed to center around Office 2008 not recognizing the proper product key during a re-installation. As far as I can tell from my Internet research, nobody had come up with a solution for the problem. However, I was able to solve the problem when I encountered it.
NovaJUG: Creating Dynamic Charts With JFreeChart
On April 9th, 2008, I presented on the topic of JFreeChart to the Northern Virginia Ruby Users Group (NovaJUG). JFreeChart is an open source charting library implemented in Java. It provides the capability to dynamically create sophisticated charts and incorporate them into Java applications. This in-depth presentation illustrates how to effectively use JFreeChart to enhance your web sites.
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.
Graphic Designs for a Regional Ruby Conference
The Northern Virginia Ruby Users Group is planning to organize a new regional Ruby conference. They've asked for some ideas on graphic designs to promote this new conference. So here are some promotional concepts that I've come up with.
Survival Tips for Technical Job Seekers
Looking for a new job is always a lot of work. Here are some survival tips to help technical professionals find a new job in today's volatile job market.
Dilbert on Agile Programming
"Agile Programming" has become one those popular buzzwords. Fortunately, we have Dilbert cartoons to put things like this into their proper prespective.
Embedding a Jelly Scripting Capability in Your Java Application
Jelly is an XML-based scripting language that was created under the umbrella of the Apache Commons initiative. Jelly has been successfully integrated into entreprise applications in order to make scripting capabilities available to users. Find out how to embed a Jelly scripting capability into your next Java application.
Tips for Web Services
Working with web services is often more painful than it needs to be. Here are some tips for crafting high-quality web services, based on real-life experiences. These tips are useful regardless of whether the web services are being developed using Java, .NET, Ruby on Rails or some other technology.
Traffic Report 2007
In this blog entry, I publish and then analyze real traffic statistics for I look at traffic trends to determine how well my strategies for promoting the site have worked, and then use the information to fine-tune my future strategies for raising the profile of the site.
Principles of OpenID
OpenID is an open-source digital identity technology that allows web users to use a single sign-in for all OpenID-enabled web sites. Find out about the underlying principles behind this up-and-coming technology.
XKCD Web Comics
XKCD Web ComicsOnce in a while, a friend sends me a link to a site that's so funny I just have to share it with others. XKCD is a web comic that comes with its own inimitable warning label: "Warning: this comic occasionally contains strong language (which may be unsuitable for children), unusual humor (which may be unsuitable for adults), and advanced mathematics (which may be unsuitable for liberal-arts majors)." My favorite is a comic that actually manages to include some SQL. Dilbert, watch out!.
Reading a Resource From a Jar File
The easiest way to ensure that a Java class has the static resources that it needs is to bundle them within the same jar file as the compiled class. Once you've embedded your resources in a jar file, though, how can you access them from your code? Find out how easy it is to access embedded resources.
Santa Clause Traditions
Santa Rumored to prefer Scottish Traditions....My wife, Sally, is Scottish. I mentioned to her in passing one day that, when I was a kid, my parents would leave milk and cookies out on the kitchen table so Santa could have a snack when he showed up. She looked at me with a horrified expression, then exclaimed, "Milk and cookies! That's terrible!" She shuddered. "Santa's a man, not a boy! In Scotland, we leave whiskey out for the poor fellow 'cause he needs something to warm him up on his journey."
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.
Microsoft Screen Cleaner
Have you ever noticed how your screen somehow seems less clear after several years of use? Find out how to fix your screen and protect your vision using an innovative new product from Microsoft.
Creating Self-Documenting Java Code Using Javadocs
Javadocs is great tool for generating useful documentation for Java code from embedded comment blocks. Find out out how to use this tool to make your Java source code more maintainable. You'll find that Javadocs is so easy to use that it's almost unprofessional not to use it.
Improvised Public Comedy External Link
Improv Everywhere, a group that stages comic events for the unsuspecting public.The Improv Everywhere group is known for staging comical events for the unsuspecting public. Some of the events are hilarious, including one of my favorites, in which some 60 volunteers dressed like Best Buy employees showed up at a Best Buy location in New York. Check out their site if you're looking for a good laugh.
Evolution of a Graphic Design Concept
This is a case study of the iterative development of the graphic design for, a highly successful niche career site focused on the accounting field. This case study lifts the veil on an important element of web design that isn't usually shown to outsiders. Come take a look!
2007 Web Design Survey
The prominent web design site, A List Apart just published their 2007 survey of web design professionals. Find out more about their results.
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!
The Importance of External Input on Site Design
One of the best ways to "tune" a site is to ask a knowledgable person what they think of the web site. Here's an annotated discussion of and its various features.
Traffic Generation Progress Report, 2006 - 2007
In this article, we do some analysis of the web logs to figure out how well traffic has been building for More importantly, we''re going to use this information to develop strategies for improving traffic in the future.
Content As a Prerequisite for Traffic-Building
People visit web sites for the content, whether the content consists of articles, blogs, catalogs, etc. Content is what will bring them back again and again, if you can provide what they're looking for. So, let's analyze the content of the web site.
Downloads With Tivo
Find out how to download shows from your Tivo box so you can watch them when ... and where ... you want.
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.
Glasgow Airport SUV Crash
It's eerie watching TV and seeing today's terrorist SUV crash at Glasgow Airport. I've spent a lot of time at Glasgow Airport, and the scene was instantly recognizable to me. In fact I was there just a little over a month ago.
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.
JFreeChart Presentation
JFreeChart is an open source charting library implemented in Java. It provides the capability to dynamically create sophisticated charts and incorporate them into Java applications. This in-depth presentation illustrates how to effectively use JFreeChart to enhance your web sites.
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.
Secrets of the Great Pyramid Revealed
An architect reveals his theories regarding the construction of the Great Pyramid of Khufu via a 3-D animated presentation on the web. Very cool stuff!
Tivo and Your Home Network
Connecting your Tivo box to your home network opens up a raft of new capabilities that can change how, and where, you experience your television programs.
A Random Element for Your Web Pages
Nobody likes a boring web page. Find out how to add interesting random elements to your web pages.
What Is an Expert?
What does it mean to be an expert in a technological field such as web development?
Creating a Pull-Quote Effect With CSS
From a page-layout perspective, online articles are boring compared to their printed counterparts. Discover a simple technique to make online content more effective.
KeenerTech Submitted to Numerous Search Engines has now been submitted to a whole bunch of search engines using the promotional services provided by AccuWebHosting, the hosting company for the web site.
Creating Dynamic Charts With JFreeChart
JFreeChart is a Java-based, open source charting library. Find out how to use JFreeChart to dynamically generate sophisticated charts and seamlessly embed them within web pages.
Using the Yahoo Site Explorer Tool
Discover how to use Yahoo's Site Explorer feature to find out how well your web site has been indexed. Then use their online tools to improve the indexing of your site.
Reverse Searches with Google
Find out which sites are linking to your web site by using Google''s reverse search feature. Even better, use this technique to discover who''s linking to your competitors, so you can get them to link to your site.
Bringing Mathematical Journals to the Web
This in-depth article describes the creation of the sophisticated and highly successful E-Resources publishing initiative for the National Council of Teachers of Mathematics. This project involved the creation of a searchable, access-controlled online repository of PDF and HTML journal articles, with significant ecommerce features.
Why I Launched This Web Site
In this blog entry, I share some of the reasons that I created I also include some stats on how traffic has been building for the site.
Dog in AOL T-Shirt
Yes, that IS a dog ... and he's wearing the famous "You've Got Mail" T-shirt from AOL.
How to Have a Web Site Outage
Sometimes, no matter what kind of backup plans and recovery plans you come up with, you still end up with an unexpected outage. Here's one lovely scenario that I recently encountered.
URL Rewriting in ASP.NET
URL rewriting is a technique in which a request for a web resource is intercepted and an alternate resource is substituted for the response. This is sometimes done, particularly in content management systems, to create simple, easy-to-remember URLs for web-accessible content. Find out how this technique can be accomplished in ASP.NET.
Getting the Most Out of Tivo
Tivo is the gold standard when it comes to personal Digital Video Recorders (DVRs). It also offers some interesting features for the technically-oriented.
Introduction to Java Servlets
The Java Servlet API (Application Programming Interface) allows developers to create Java classes that dynamically construct and return web pages. Discover how to create highly functional servlets.

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.
Banner Display in the ASP.NET Ad Rotator Control
The enhanced Ad Rotator control provided by ASP.NET provides numerous advantages over the Ad Rotator component provided in so-called Classic ASP. Find out how easily banners can be handled in ASP.NET.

Generating Dynamic Graphics in ASP.NET Applications
Find out how GDI+, ASP.Net's wrapper for Microsoft's Graphics Device Interface, can be used to dynamically create images such as charts and graphs within the context of a web application.
Harnessing the Power of XML For Your Business
There's a lot of hype about the usefulness of XML. This article cuts through the hype and explains some of the major advantages that XML offers for businesses.
Simulating IDENTITY Columns in Oracle
Microsoft SQL Server supports IDENTITY columns that can be used to generate unqiue primary key values. Unfortunately, Oracle does not support this useful feature. Find out how this feature can be simulated in Oracle.
Understanding How Oracle Triggers are Executed
Oracle's triggers provide a powerful way to implement complex business rules within the database itself. Take a whirlwind tour of the features that make Oracle triggers so powerful. Find out about a useful convention for naming triggers that provides better support future maintenance activities.
Overly Secure?
Security is a good thing...usually. But sometimes you can take security too far.
Software Testing: A Forgotten Art
Solid testing is one of the hidden ingredients of successful web sites. This article on software testing as it applies to web sites and web-based applications was created for a small web consulting company.
My Favorite ASP.NET Conversion Error
Find out about an easy solution for one of ASP.NET's most common errors.
Web 2.0 Hype Generator
Inspired by Wired Magazine, the Web 2.0 Hype Generator helps aspiring entrepreneurs figure out how to advertise their new Web 2.0 ventures. Check it out today!
Let's Go Orbital
Learn about a new class of web site that's sure to change our understanding of real estate, satellite imagery and privacy.
Extreme Short Stories
The November 2006 issue of Wired Magazine includes an interesting feature on extremely short stories. Specifically, they asked a bunch of writers to come up with striking "stories" in only 6 words. Well, this sounded like a fun exercise, so I decided to try my hand at it.
The Horatio Factor
A different perspective on the controversy surrounding the Horatio Alger Street Fair in Marlborough, Massachusetts. Horatio Alger Jr. was the prolific 19th-century author whose "rags to riches" stories helped popularize the American Dream.
Handling Credit Card Transactions Using CyberCash
Implementing a solution for handling credit card payments is one of the defining hurdles that has to be overcome by many online businesses. Find out how credit card processing works in the online world, plus learn how this task can easily be accomplished using the ColdFusion language. Originally published in the ColdFusion Developer''s Journal.
Simple Banner Rotation Using Active Server Pages
Using the ASP programming language (now generally referred to as Classic ASP), Microsoft's widely available Ad Rotator component can easily be used to manage banners for a web site.
Tracking Software Issues
The almost universal accessibility of the web makes it an ideal platform for fielding collaborative applications. In this article, originally published in the ColdFusion Developer''s Journal, a simple web-based system for tracking and managing software issues is described.
Using Cron to Schedule UNIX Activities
The freely available cron program is an extremely useful utility for scheduling the automatic execution of tasks. Find out how to use this useful UNIX utility.
Generating Traffic for Your Web Site
All online businesses face the struggle to get visitors to come to their web site. Here are some inexpensive but highly effective ways to generate traffic for your web site.
Top 10 Best Practices for Creating Web Sites
Designing effective commercial web sites is a difficult task, with numerous potential pitfalls. Discover some best practices that will help you make your web site dvelopment effort a successful one.
Competing With the Monster
This article describes how niche career sites can compete effectively with large career sites like, and others.
Taxonomy of Career Sites
There are literally thousands of career-related web sites. This article provides a useful guide for categorizing them, with an emphasis on then using the categories to determine which web sites might be most effective for a job search.
Privacy and the Online Job Hunt
Privacy is one of the major concerns for job seekers when it comes to using online career sites. This article discusses the various privacy features offered by the major career sites.
The Most Glamorous Job in Accounting
Every year, a team of accountants is responsible for tabulating the votes for the Oscars. These accountants have the most glamorous job in the accounting field. — Originally published by