our blog

Our Blog

Introduction to the DNS and Nameservers

When you get ready to change web hosting companies or launch a new website, you may be asked to change your DNS settings to use the new host’s nameservers. Its a simple thing to do, but we thought you’d like to know what that means.

The following is a crash course on the Domain Name System, or DNS, which will help answer some of those questions. Its intended for those unfamiliar with the concepts, and does not contain any code.

(more…)

Twitter Gets Ads, Courtesy of Federated Media and Microsoft

Twitter Ads We've Seen So FarOver the last week you’ve probably noticed the “definitions” (read: ads) in the Twitter sidebar. Until today, they’ve been promoting Twitter’s in-house services, such as encouraging users to add a Twitter widget to their blog. But as of today we’ve started seeing three different offsite ads appearing in this space, pictured in the image to the left. Further investigation reveals that these ads represent the launch of a new monetization strategy for Twitter.

(more…)

Dead Simple Browser Testing With Xenocode’s Browser Sandbox

Cross-browser testing is one of the dreaded tasks of web development, largely because there’s no easy way to install multiple versions of each browser on the same machine. It can be forced, but having 3 versions of Internet Explorer, at least 2 versions of Firefox, Safari, Opera and Chrome all installed on the same computer is hardly appealing.

Microsoft’s SuperPreview, released as a beta last week, looked promising but in practice fell short in several key areas. The biggest problem is that although SuperPreview can snapshot a page in IE6 or any other browser, it’s just that: a snapshot. Layout bugs are just the beginning of IE6′s problems – it also falls short in both Javascript and CSS capabilities, which may not be evident in a screenshot. Furthermore, SuperPreview will eventually be a part of Expression Web 3, which is not free.

(more…)

Microsoft’s New Expression Web SuperPreview Makes Cross-browser Testing Painless

Microsoft has just unveiled the beta of a new product for web developers: Expression Web SuperPreview for Internet Explorer. If it delivers on its goals, it promises to change the lives of web developers as fundamentally as Firebug.

Expression Web SuperPreview lets you view your website in IE6, IE7, IE8 and any other web browser you have installed, and switch between them as you please. That means you can switch between viewing your website in Shiretoko (Firefox 3.5 beta), Internet Explorer 6, and the Safari 4 beta with the click of an icon. You can even compare them side by side. Perhaps the coolest feature is that you can overlay the different renderings on top of each other in an onion-skin mode, allowing you to fully appreciate the Cuil-like approach IE6 takes to rendering webpages.

(more…)

Write Your Own jQuery Selectors

jQuery has a powerful collection of selectors which make selecting a specific collection of elements much simpler. Among my favorites are :text, which matches one-line text inputs, and :checked, for determining what checkboxes in a group have been selected. But sometimes our filter criteria relies on domain specific information.

(more…)

Relative Offsets Are Handled Differently Between Versions of jQuery

This post highlights a difference between jQuery 1.2 and later in how relative values are handled, which I recently discovered when upgrading a site from jQuery 1.2 to the new 1.3. If you’re about to do the same, or have recently broken your site after upgrading and don’t know why, this post is for you. It will be easier to explain with an example, so here’s how the problem manifested for us:

On our main website we use jQuery to slide the pages into view when a user clicks on a navigation link. This is a variation of the “Coda Slider”, named because it mimics the website for Panic software’s Coda editor. In a nutshell, we have a div which acts as a viewport (we’ll call it #viewport), with another div inside which contains the pages (which we’ll call #slideContainer). #viewport has its position property set to relative, and its child, #slideContainer, has its position set to absolute. So when we increase or decrease the value of #slideContainer’s left property, it will slide right or left respectively to reveal new pages. Here’s an example:

(more…)

Exclude WordPress’ Admin URLs from your AWStats Reports

After upgrading a friend’s blog to WordPress 2.7 we started noticing his pageview numbers in AWStats going through the roof, without a corresponding increase in visitors. Here’s a screenshot:

Screenshot of AWStats seemingly overreporting pageviews

Google Analytics was showing normal pageview numbers, so we knew something was amiss. When we looked at the most viewed pages in awstats, it became obvious:

Screenshot of AWStats views per page, showing 2228 hits on WP's admin-ajax.php file

AWStats has always counted pageviews on the WordPress backend, but compared to the total pageviews the impact was negligible. However, now that WordPress 2.7 makes so many AJAX calls to admin-ajax.php (primarily for saving drafts), we must exclude these pageviews from our reports to leave meaningful data. Thankfully its very easy.

(more…)

10 Javascript Tricks for Better Forms

Nothing exposes the gap between web apps and desktop applications more than plain HTML forms. Fortunately, by leveraging Javascript we can start to close this gap while maintaining a consistent experience for users using screen readers and old browsers.

We’ve identified 10 ways in which normal HTML forms fall short, and dug up the Javascript and CSS code you’ll need to fix them. Although the best enhancements are so intuitive as to be unnoticed, rest assured your visitors would thank you if they knew.

Note: Many of the solutions in this list depend on jQuery, our javascript framework of choice.

(more…)