Douglas Bowman at StopDesign recently shared how his site visitors break down in terms of browser use. As a hero of the web standards movement (sort of like our Hercules or Michael Jordan,) Douglas admits that his stats are skewed toward tech-savvy folks. I decided it would be interesting to look into stats from a more general audience. I develop a lot of real estate websites at work, so that seemed like a natural place to look. I surveyed several of our more heavily-trafficked sites and I’ve made the following observations (which I have also posted at Douglas’ site:)
- Internet Explorer users account for between 65% and 85% of all visits
- Firefox and Safari account for almost all the rest of the traffic, and Firefox tends to have 2-3 times the share of Safari.
- 70% of IE users are browsing these sites with IE7. There was very little variation here, even though the percentage of IE users in general varied by 20% across sites.
(Observations are based on the last month of data, across a sampling of sites based around the United States. Visitors were primarily from the US.)
It’s unfortunate to see how dominant Internet Explorer is sector, but progress is evident. It’s a relief to see that IE7–a fairly capable browser in its own right–has seen increased adoption recently.
Posted in Web on February 7th, 2009 | No Comments »
I’ve decided I’m leaving the 140 Club. 2 months and about 70 tweets later, I’ve had my fun and indulged my obsessive nature for long enough.
Posted in General on January 30th, 2009 | No Comments »
I was reading a local news story and in the sidebar I noticed what appeared to be an ad banner for Barack Obama in the sidebar. It turns out it was actually a link to the news site’s section of Obama-related stories. What struck me about the banner was the wording: “President-Elect Barack Obama Click Here.” Apparently they are targeting the extremely small niche of web users that are President-Elect Barack Obama, and imploring them to click on a mysterious banner (and for those counting along at home, that’s a niche of one.)
Just a little mid-week levity. The moral of the story: think carefully about your calls to action. You need to make it clear to your readers what you want them to do and why they should want to do it. Give them a reason to click your banner or sign-up button. And if something isn’t an advertisement, make sure that it doesn’t look like one. This banner looks like a paid ad for who knows what and I never would have clicked on it if I weren’t planning to write this post poking fun at it. It doesn’t represent a compelling call to action for me. At face value, I can’t tell what I’ll find once I click, or even if I’m supposed to. After all, I’m not President-Elect Barack Obama. That’s some other guy.
Posted in Web on December 31st, 2008 | No Comments »
Quick tip: Search engines are designed to work for people, not the other way around. They’re designed to pick results that are likely to be what the searcher is looking for, and for a blog the post title is an important part of that. If you want people to find your blog post in a search engine and click through, do the following:
- Think about what you would type into Google if you were looking for whatever information you’re about to post. Make it specific.
- Put that in the title. You can add some more detail to make the title more “punchy,” but make sure your search phrase is in there.
- There is no step 3.
If a searcher sees exactly what she typed in the title of a search result she’s going to click. The trick is that your content has to support the title you picked. Otherwise, even if you trick the search engine, your site visitor will take one look and hit the back button.
Posted in SEO, Tutorials, Web on December 30th, 2008 | 1 Comment »
I recently launched a just-for-fun project called The 140 Club. As the site mentions, “The 140 Club is a group of Twitter users loosely committed to writing tweets of no more and no less than 140 characters.” I’d like to say that it’s an artistic experiment in creating something in a constrained environment, but it’s really just for fun. After finding that I had a knack for writing updates that were close to 140 characters (the maximum on twitter,) I decided I would start rewording my updates to be exactly 140 characters. I announced my plan with the following tweet:
Also my new thing is writing updates of exactly 140 characters. The one before last only made it because I put an extra word in by mistake.
Shortly thereafter, Sean Bossie, a client of the company I work for and all around cool guy replied:
@scottnelle That cracks me up Scott…I am now joining The 140 Club. So the thing is: Can you end with incomplete words or must be dead on??
Sensing an opportunity to get a chuckle out of Sean, I bought a domain, cracked open Photoshop, and got to work over my lunch break. An hour later I had designed, built, and launched the140club.com. Talk about agile. :-) The 140 Club is currently accepting new members, so why not join up?
Posted in Projects, Web on December 13th, 2008 | No Comments »
Drew McLellan has posted the first article in this year’s 24 Ways To Impress You Friends, the advent calendar for web geeks. The site will have a new article about web design or development each day from now until December 24. Over the past few years it’s become a great holiday season tradition, and the only one that doesn’t seem to start earlier every year.
Posted in Web on November 30th, 2008 | No Comments »
Just a quick post to keep my CodeIgniter unique field validation extension up to date. When EllisLab released CodeIgniter 1.7.0, they included a new form validation class which is meant to replace the old validation class. The old class still exists in the code for now but it’s been deprecated, so developers are urged to use the new form validation class instead. Only very minor updates are needed to my validation extension in order to make it work with the new code. These were suggested to me by commenter libre before I even had a chance to look at implementing them myself. (Thanks libre!) For everyone’s benefit, here’s the updated version of the library (and remember, use this if you’re running CodeIgniter 1.7.0 or later:)
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
/**
* MY_Form_validation Class
*
* Extends Form_Validation library
*
* Adds one validation rule, "unique" and accepts a
* parameter, the name of the table and column that
* you are checking, specified in the forum table.column
*
* Note that this update should be used with the
* form_validation library introduced in CI 1.7.0
*/
class MY_Form_validation extends CI_Form_validation {
function My_Form_validation()
{
parent::CI_Form_validation();
}
// --------------------------------------------------------------------
/**
* Unique
*
* @access public
* @param string
* @param field
* @return bool
*/
function unique($str, $field)
{
$CI =& get_instance();
list($table, $column) = split("\.", $field, 2);
$CI->form_validation->set_message('unique', 'The %s that you requested is unavailable.');
$query = $CI->db->query("SELECT COUNT(*) dupe FROM $table WHERE $column = '$str'");
$row = $query->row();
return ($row->dupe > 0) ? FALSE : TRUE;
}
}
?>
You’ll want to save this file as system/application/libraries/MY_Form_validation.php (instead of MY_Validation.php.)
When you load the library, don’t forget that it’s now called form_validation instead of just validation. There have also been some changes to the way you set your rules for the new form validation class. You can read all about this in the class documentation. Here’s the basic format, including usage of the “unique” rule from the extension:
$this->form_validation->set_rules('username','User Name','required|min_length[5]|unique[users.username]');
$this->form_validation->set_rules('emailaddress','Email Address','required|valid_email|unique[users.email]');
Posted in CodeIgniter, Tutorials on November 4th, 2008 | 4 Comments »
Updated November 4, 2008: This extension has been updated slightly to work with CI’s new form validation class, added with version 1.7.0. If you’re using an older version of CI you should still use the extension on this page. If you’re using 1.7.0 or later, you should check out the updated extension.
I’m working on small web application and I’m building it with CodeIgniter. Like most web applications, mine requires user registration and login. And like most login systems, mine is happiest if each user has a unique username. While the CodeIgniter validation library is pretty robust, it doesn’t come with a function for checking a value to see if it is unique or if it already exists in the database. Fortunately there are a couple of ways to remedy that.
The first way is outlined in the documentation for the validation library under the heading “Callbacks: Your own Validation Functions.” I tried this and it works well, but it requires you to write the functions in your controller or model. I thought that looked messy and I wanted something a little more streamlined, so I decided to extend the validation library with my own function. Extending CodeIgniter’s libraries is pretty easy. Here’s what I came up with–I’ll explain the important lines afterward:
Full Post and Comments »
Posted in CodeIgniter, Tutorials on September 11th, 2008 | 7 Comments »
I always find it interesting to see what software people are using to build websites. I’m always open to new applications that might make my job easier or less stressful. With that in mind, I’ve decided to start posting reviews and tips about some of the software that I use. Today I’ll be writing a mini-review of an application that I’ve started using to perform routine database maintenance tasks on my development box.
SQL Buddy is a web-based MySQL Administration tool that’s free, open-source, and easy on the eyes. I’ve installed it on my development machine and I’m loving it so far. Most web developers are probably familiar with PHPMyAdmin, and this does pretty much the same thing, but it does it while looking quite a bit nicer. It’s also got some tasteful interface enhancements (yes, that’s code for AJAX minus the abuse) to make the whole thing feel a bit faster. I haven’t done proper benchmarking, but it sure feels faster than PHPMyAdmin on my machine while managing my little databases. And the interface seems pretty well considered. It allows you to easily edit multiple records on a single screen.
It was REALLY painless to install. The download for the program is only 167KB zipped. To install it just unzip and drop it on the server. That’s it. Then point your browser to wherever you placed it and log in as one of your MySQL users. Easy.
I only have minor issues with SQL Buddy. The interface for browsing records in a database looks so much like a regular desktop application that I expected it to work like one, allowing me to click on rows and edit the data in place. Unfortunately it doesn’t work like that. You have to check a box and then hit the edit link to edit all selected rows on another page. It’s a minor issue but I’d like to see it changed. Due to the open-source nature of SQL Buddy I’m sure it’s only a matter of time before someone adds edit-in-place.
SQL Buddy is a nice, simple piece of software that allows you to easily edit your databases from the web browser. I don’t know if it will ever be more popular than the deeply-entrenched PHPMyAdmin as the de facto standard database editor for web hosts and developers, but it’s quickly become my favorite web-based editor. Highly recommended.
Posted in Links, Review, Software on August 20th, 2008 | 3 Comments »
Jeremy Keith is live-blogging An Event Apart San Fransisco 2008 over at his website. He has the uncanny ability to write up organized, well-written, and thoroughly-linked summaries of events in near-real-time. If you (like me) were unable to get to the conference Jeremy’s site is the place to get the scoop on all the presentations. Thank you, Jeremy.
Posted in Links, Web on August 18th, 2008 | No Comments »