Web Design
SiteMeter is Now Dodgy
My web site recently started periodically interrupting navigation by redirecting users to advertising pages hosted by Go.goadvs.com. Needless to say, I was not pleased.

Go.goadvs.com 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.
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!

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:

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.
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.
New Version of MudDawg.com Released
Just released a new version of MudDawg.com. 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).

MudDawg.com - Motorcycle Racing ...with attitude
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
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.
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.

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.
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?
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.
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.
Evolution of a Graphic Design Concept
This is a case study of the iterative development of the graphic design for CareerBank.com, 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!
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 KeenerTech.com and its various features.
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.
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.
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.
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.
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.
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.