Fixing IE8 font aliasing when using fade effects

One of the joys of testing with IE8 is the added google time that I get to spend hunting down bugs and solutions. If you find something mesbehaving in Redmond’s browser, then the Internet knows about it and has a fix somewhere.

Todays culprit was caused by using jQuery’s fadeIn effect on a div containing text. The way that jQuery has to animate the opacity transition causes the font’s to not be anti-aliased, appearing all rough and blocky during the animation. It’s due to the use of the filter property to affect the opacity, There are a couple of fixes, including hooking into jQuery to alter how the fadeIn/fadeOut/fadeTo effects work, but the simplest solution is to give the element containing the text a background-color.

Although littering your CSS with redundant background-colors will be a pain when you redesign your site, I think its preferable to relying on a javascript solution.

Chrome extension helps you debug Goggle Analytics configuration

If you use Google Analytics to measure traffic and activity on your website, once you start customizing the tracker code, use the asynchronous tracker, or do more complicated tracking it can be hard to verify that your changes have worked.  The asynchronous tracker won’t necessarily emit any js errors and you can’t always waitio see any effect in the analytics dashboard.  

Anyway, wouldn’t you like to see exactly what data the beacon is sending to the mothership?  If you use Chrome, you’re in luck as Google has released an extension to do just that.  Grab the Google Analytics Tracking Code Debugger – Chrome Web Store, then enable the button it places to the right of the location bar.  Open up the javascript console and you should see a stream of the data the tracker sends.

Google using SPDY protocol

 Google’s approach to speeding up the web, explained by Kimsall below, is in stark contrast to Microsoft’s approach to trying to dominate the web 12 years ago. Google’s approach can cut  pageload times about in half, and can really help large and complicated sites that make a lot of requests.  There’s already a proof-of-concept SPDY module for Apache.  You can read the whitepaper on SPDY for details.

The interesting thing to me was the difference between when MS owned the client and server experience (for sites that mattered to me) and now that Google does (for sites that matter to me).  MS seemed to go for more lock-in – pushing ActiveX as a browser technology, pushing IIS as the server of choice, etc.  Google, on the other hand, investigates, tests, and promotes new technology to reduce load times and HTTP overhead for the whole internet.

Google Analytics provides faster asynchronous tag

If you use Google Analytics, Asynchronous Tracking is now available.  This is a faster way for pages to send data to the mother ship, and was announced at the end of last year.  The GA module for Drupal is working on supporting the new tag, in fact a patch is available if you want to run on the absolute bleeding edge.

We’re happy to announce that the asynchronous tracking tag, which came out of beta last week, is now available in your admin interface when you set up a new profile. This makes it easy for everyone to start off tracking new sites with this very fast, state-of-the-art tag.

Google Analytics Blog: It’s now easy to set up new sites with Asynchronous Tracking

Gmail Adds Nested Labels and Message Preview

Google can now render labels hierarchically.  I've been using a naming convention to get labels to sort the way I want, but this will further declutter my labels list.  You have to go to the Google Labs tab in settings to enable it for your account.

Nested Labels is just a cosmetic change that lets you create labels which are displayed hierarchically. If you enable this experiment and create a label like Mailing-Lists/Linux, you'll notice that Linux is displayed as a subfolder of Mailing-Lists. Unfortunately, all the other places that let you interact with labels show the label as Mailing-Lists/Linux

Gmail Adds Nested Labels and Message Preview

Duh – cheaper to outsoure email services.

Will we see more organizations outsourcing email services? Having run my own personal mail server for a few years, I’d be quite wary of purchasing and operating your own mail servers. Yes, if you own your mail servers, you can make them as secure and redudant as you want if price is no limit. But there’s always a budget, and it will always not be enough to provide the uptime, redundancy, and backups that someone like Google, Yahoo, or Microsoft can provide. Plus, you can’t really put a price on being able to sleep at night, free of worries that your server will be hacked, relay spam, or hard drive will fail.

If you are a non-profit, and even if you are not, Non-Profit Tech Blog wrote a three part series on setting up your organization with Google Apps for your Domain.

Have you outsourced email servers? What led to that decision? Any positive/negative feedback about email hosting providers?

Report: Gmail about one-third as expensive as hosted e-mail

Despite the confusion, a lot of companies realize that e-mail has become expensive for two simple reasons: spam and malware. Nearly half of those surveyed were evaluating off-site solutions because e-mail costs had risen, while another 30 percent were performing the evaluation as part of an upgrade or service consolidation process. Fully 85 percent of these companies were leaning towards moving some of the services off-site.

Cuil – is it any good?

Cuil is a new search engine on the block, trying to displace Google from the top of the search heap.  They  say their index is larger than Google’s, as if size is THAT important, and was launched by former Google employees.

Rather than trying to mimic Google’s method of ranking the quantity and quality of links to Web sites, Patterson says Cuil’s technology drills into the actual content of a page. And Cuil’s results will be presented in a more magazine-like format instead of just a vertical stack of Web links. Cuil’s results are displayed with more photos spread horizontally across the page and include sidebars that can be clicked on to learn more about topics related to the original search request.

So – is it any good?  Would I recommend you start using it.  Based on some preliminary searches, which I’ll outline below, I’ll have to give an unqualified no. 

First, let’s search for me – Oscar Merida, this blog comes up as the first result, and the first four links are pretty relevant web sites where I  write (and had my full first + last name displayed).  Let’s take a look at what Cuil returns for the same query.

Failed Cuil query for my name

You may be surprised to learn I am a woman.  I am just as suprised as you are.  Who is that?  Why is her picture next to my blog?  For this first search, although my blog comes up first, I’d have to save its a big fail.  Also notice that the blog post displayed with the search result is more than a month old!

I have a pretty popular Soccer Blogs website – how does it display on Cuil?

How disappoining – I’m not number #1, but even worse in my opinion, my very own soccer blogs badge is listed next to a site that can be though of as a competitor and is not even listed or linked to from my own site.  Looks like cuil is, stupidly, matching images to search results without checking if the two are at all related or linked in some way!

I think the search results for Soccer Blogs on Google speak for themselves.

Server Upgrade: OS basics

Debian AMD64 Setup

My Linux distribution of choice is Debian, although for the desktop I’d recommend Ubuntu. The server was first setup using the unofficial debian64 repositories. Since the amd64 architecture is now officially part of Debian, we moved to using an official repository. see Google groups. An unofficial repository contains /debian-amd64/ like so:

#deb sarge main contrib
#deb-src sarge main contrib

Since packages make it to stable at a fairly slow pace, we also want to use the testing branch. This is fairly straightforward, first update your /etc/apt/sources.list to use etch/testing by removing (or commenting out) other repositories and adding the following lines. If you are outside the USA, replace the .us. part with your country code.

deb testing main contrib
deb-src testing main contrib

Next, run apt-get to update the system, first clean the system, then update, and upgrade.

apt-get clean
apt-get update
apt-get dist-upgrade

Follow the onscreen instructions, when in doubt pick the default option or swithc to google and read up. If apt installs a new kernel, you’ll have to restart your server. Finally, to get up to date LAMP packages, you can use the dotdeb repositories by adding the following lines to your sources.list. We will need these later to install Apache2, MySQL, and PHP5.

deb stable all
deb-src stable all

Kernel Parameters

Since our last server crashed because of a very low max open files limit, its worth checking that this setting is not too low on the new server.

cat /proc/sys/fs/file-max

Currently this returns 100905, which should be more than enough open files for our expected traffic. See Debian kernel tuning for more info.

Enabling Hyperthreading

Finally, because the CPU is an Intel P4 with hyperthreading, you can try using an SMP kernel to enable the 2 “virtual” processors. While there seems to be some debate on the benefits of Intel’s hyperthreading, IBM produced some benchmarks on the 2.6.15 kernel which show some gains. You can install a new kernel with:

apt-get install linux-image-2.6.16-2-em64t-p4-smp

Make sure you install the correct one for your CPU, since there are a generic 64-bit kernel, AMD specific kernels, Intel specific kernels, as well as single and multi-processor versions for each.

That’s it for this part, if you restart you should still have a working server (I do). Still to do: basic system security and setting up a LAMP environment

Google Calendar Launches

Google Calendar has launched if you want to check it out. There is also an overview of the features available. Will this be a compelling calendaring solution? After looking it over and checking out the website, I think it might be for me. I’ve setup DAV on apache before so that I can have a portable read/write calendar available online but it hasn’t become critical for me. Of course, I was also the kind of person all through school and college that kept track of due dates pretty much in my head (and that’s why professors also give you a syllabus). This might just stick, at least I’ll try it out and report on if it does in the near future. This summer is full of travel and events so its as good a time as any.

Some observations on the funcitonality

  • Drag in grid to create events (ala outlook)
  • You can subscribe to any public ical/ics file (doesn’t handle stuff behind a password protection)
  • You can invite friends to view your calendar (even if it is not public)
  • You can search through other public calendars
  • You can invite people to events in your calendar, but I don’t see an option for scheduling the time/date conflicts
  • Event reminders via email or sms(to cell phone)
  • Can import a calendar from iCal or csv export from MS Outlook
  • Integrates with gmail
  • You can invite people via email to an event and they can reply if they will attend or not, ala evite but without the spam
  • You can subscribe to your calendar to view it via Mozilla’s Calendar app or Apple’s iCalendar.
  • Event organizers can embed a little button on their own pages to prompt users to add an event to the user’s own google calendar ()

Som things Google did not find essential, for this release and possible any other:


  • Scheduling free/busy for an event across all participants
  • Synchronizing calendars with other devices. Of course, if you have iCalendar on apple, iSync should take care of synchronizing with your cell phone or PDA.