apple rant Uncategorized

The Death of iTunes Apps

By now everyone has heard of the iTunes commercials and the phrase “There’s an app for that”, but how much staying power does it really have?  Just yesterday Google released Google Voice as a standalone web application that can be used in the browser.  For some of us, it’s hard to imagine why this might be better or worse than the current system Apple uses.  But hear me out…

Typically when you want to buy or download an application for your iTouch or iPhone, you head over to the app store icon and browse around.  Once you find something, click ‘install’ or ‘buy’.  These apps are then placed on the main screen and can be opened whenever you’d like.  While this may sound super easy, it also causes problems.

Apple controls each application that is approved or disapproved.  Sometimes it takes them up to a month to approve an application.  Other times they deny applications because it might infringe on their built in phone features.  Such as the case with the Google Voice app.  However, the biggest problem is the fact that each phone brand needs to have their own framework for applications.  There is the Google Android, the Blackberry, and iPhone which require each application to be developed specifically for that phone.  To make matters even worse, there are rumors that the reason Apple does not have flash support on their phone is because they were afraid developers would use that instead of their SDK to develop applications.   There has to be a better way?

What we need is an open source way to develop applications to work on any mobile phone with a browser.  It turns out we already have that folks, and your using the protocol right now, HTTP.  There are a few developers out there who hate using Apple’s SDK to build an app when creating a mobile site will work just fine. Sean of GetClicky is one of them.  The truth is that websites create applications to work in the browser, then have to recode them to work for each cell phone SDK.  What was built for the web browser, should remain in the web browser!

There are plenty of examples of mobile sites that work across every single cell phone platform.  Why bother spending time learning Apple’s SDK to offer things that can be easily implemented with regular HTML?  Plus HTML5 coming up in the next few years to add an even richer interface experience.  Each cell brand should have their own unique call requests to gain access to the phone’s contact list, dialing, and anything else they might need.  If cell brands are concerned that they won’t make money this way, why not have developers pay to gain access to some areas of the phone?

In the end, the death of all mobile app stores are exactly what we need.


Chrome Ad Blockers: AdThwart Vs. AdBlock , Round 1

UPDATED: 1.25.2010 UPDATE #2

One of the most important aspects of a web browser today is how good it is at blocking ads.  Today Google announced that it has released a Windows version that has the ability to use extensions.  This means that extensions are ready for the masses.

Users thinking about switching to Chrome from Firefox NEED to have a reliable ad blocker.  The two best ad hidders are AdThwart and AdBlock.  I call them ad hidders because currently Chrome is unable to block ads the way we are accustomed to seeing with Firefox.  Until Chrome developers add this functionality, these two extensions are forced to simply edit the CSS on the fly.  They both support EasyList, but that doesn’t mean they are both equally effective and user friendly.  I decided to compare a vareity of categories that I look for in an ad blocker.

Have a look at my chart below which goes into detail about each extension

AdThwart vs AdBlock

The winner is AdThwart!

Both produce similar speed results, both are maintained and updated on a near daily basis, both have a wide user base, both hide most ads, both have friendly and bright developers working on them.

AdBlock has issues with it’s icon to show if a site is blocked or not.   The icon is actually a separate extension, so if you disable AdBlock, the icon remains.  That is a glaring issue for ease of use.  I also have no idea how to edit the custom filters I applied, what happens if I end up blocking all images by accident?  Those of you who care about open source, AdBlock is not entirely clear on the subject, whereas AdThwart is open source.

The issue of speed I want to touch on in more detail.  At first glance, the speed tests seem to be inconsistent when it comes to speed of a page with no extensions applied.  TechCrunch takes a lot longer to load when advertisements are present, but MSN is much quicker when ads are present.  How can this be you ask?  Well, it depends on the type of advertisements on the site.  MSN has ads that don’t require the browser to render them as much as TechCrunch, therefore when we add the added time it takes for the extensions to hide the ads. . . it actually takes longer to load.  However, I am pleased to see in testing that for the majority of websites, hiding ads does make load times faster.  The fact that AdThwart is a tiny bit faster may not mean much because it is probably not even noticeable.

I also want to mention that each page load could have different ads, sometimes it would include an image ad, other times an it would have a javascript ad.  Other times the sever may have a slower response time than the previous request.  Therefore the speed tests can vary greatly.  To combat that, I reloaded each page 5 times and took the average.  I’m looking to compare rendering speed and the response time for the server can screw that up.  Any time the server responded with a response time of over 500ms, I redid the test.  I performed each test using Chrome’s developer tools resource tracking (Ctrl+Shift+I).

So where does this test leave us?  AdBlock needs to go back to the drawing board for the icon implementation, provide more details on if the extension is open source or not, and revamp custom filters.  The majority of users should be more pleased with AdThwart’s ease of use and custom filter implementation.

chrome Google

Chrome: New “Press Tab to Search” Feature

Google Chrome, Developer version 4.0.302.2 includes a new way to easily search a website.  When typing a URL into the address bar, an option comes up to “Press Tab to search”.  Have a look below:

Press tab to search

The feature looks great to me.  My only question is how Chrome decides which sites are available to search and which ones to omit.  I have yet to see another site come up with this option other than Tomshardware.  Now let’s take a look at what happens when you press tab:

After Pressing Tab

Chrome maintains a smooth transition to the new search option and it is clearly visible within the url bar.  Now let’s try to search Tom’s Hardware for the Radeon 5770 card.  I search “5770”:

Google Finds Articles Related to 5770

It appears that those results coming in from the dropdown list are things that I have already visited.  It appears Google is searching my browser history, rather than Google search results.  While this is still useful, I’d look forward to an option to see live search results right from the dropdown box.

What do you guys think?

Google SEO

Google’s Rich Snippets Event Possibilities

Today Google announced another new feature of Rich Snippets called Events.  Of course it is a great idea to provide more markup to better track events of concerts, sporting events, movies, etc.  However, what if Rich Snippets could be used for a slightly different reason?  News updates on events or people.  Let me show you what I mean with a real world example. . .

As I’ve mentioned tons of times before, I run a site called FantasySP which is a news aggregator for fantasy player news.  What if for each player page, I add event data for each update?  That way, when someone Google’s “Tim Lincecum”, they can at a glance quickly see his 3 latest updates right within the Google search page!  I know this isn’t how Google intended it to be, but the results speak for themselves.  Have a look:

Snippets in action

Appearing right in the Google SERPS would be the 3 latest updates, including when they came in, giving the searcher a clear indication how fresh the content is.  I would love to hear everyone’s thoughts and comments on utilizing Rich Event Snippets in this manner.

browser wars

SunSpider Javascript test, Chrome Vs Firefox 3.6

Everyone must of heard the news that Firefox 3.6 has finally come out. There is a video mentioning all of the new changes in 3.6.  Mike Beltzner made mention of a benchmark called SunSpider and said that 3.6 had increased speed to 995 ms, down from 1188 ms.  I thought to myself, now that sounds like an interesting thing to put to the test to compare Chrome and Firefox.  Here are my own tests.

Firefox 3.6 with SunSpider:

873.8ms +/- 1.9%

Chrome Dev with SunSpider:

408.2ms +/- 1.5%

It turns out that I got a faster rating with Firefox.  However, Chrome is still more than twice as fast as Firefox.  So tell me, why are you still using Firefox as your primary browser?


Top Sports Websites Analyzed for Speed

Have you ever stopped to wonder how some of the biggest sports websites compare when it comes to speed and modern optimizations?  A lot of todays websites are using cutting edge features and embracing new technology, whether it be modern Javascript frameworks or a mesh of flash and embedded videos.  While it’s great to use these things to make each site appealing to visitors, it can also lead to increased load and rendering time.

For this post I will be analyzing top sports websites using Firefox’s YSlow 1.5 and PageSpeed extensions to figure out where each site stands in terms of performance to the end user.  Each site’s main homepage is loaded without being logged in and the browser cache will be empty.  For optimum load time for an end user, I will be using the Google Chrome browser Development builds because of it’s ability to load websites faster than other web browsers.

In terms of what I am looking for to make sure a website is properly optimized are things that every web developer should be looking at.  I am checking each website for gzip compression with javascript, css, and html.  I am checking each website for the caching of images, css, and javascript.  I am also checking to see if it uses ETags, the percentage of files cached, and the length of time each file stays cached.  I am also looking at how many HTTP requests per page load, end user page load time via Chrome, and size of the page upon first load / cached loads.

I will break up the listing of websites into two categories.

The first category of websites are the top tier major media outlet sites including: ESPNCBSSportsSports Illustrated, and FoxSports.

The second category of websites I will include at fantasy sports and social media websites including: RotoworldFanballRotowireKfflYardbarker,Bleacherreport, and FantasySP .  (This will be in its own follow up post)


As you may remember, ESPN is among the few websites that has undergone a complete overhaul within about a year.  This should result in better optimizations than the other sites.  It may also be the most visually appealing website in the entire bunch.

Page Size Cached Size HTTP Requests Server YSlow PageSpeed Chrome Load Time
473.7k 61.0k 54 /  13 Microsoft-IIS/6. 61 74 4.54

The overall size of the page is quite good at under 500k and the HTTP requests number is great at just over 50.  The lack of HTTP requests is a remarkable number considering what is going on with the page.  The fewer the requests, the faster the page load.  This is a great benchmark that the other sites in the category should strive to match or come close to.  In terms of website optimizations, ESPN hits just about every optimization that’s possible for the website. They support gzip compression on javascript, css, and html.  Their javascript and css is minified.  Their images, css, and images are all cached with the majority in a future date.

Overall ESPN has done a great job optimizing their website.  While it’s final load time says 4.54 seconds, its readable much sooner than that.  The speed at which it loads is phenomenal considering that the site is rich in video.

2. CBSSports

CBSSports has had their classic blue tinted website for years now. The question is if they have been able to update things behind the scenes to take advantage of modern browser optimizations.

Page Size Cached Size HTTP Requests Server YSlow PageSpeed Chrome Load Time
335.8k 174.5k 96 / 89 Apache 56 74 5.697

Page size for an initial load is an astoundingly small 335.8k, which is even better than ESPN.  Unfortunately this does not carry over to a primed cache, and the size is a little high at 174.5k with 89 requests.  CBSSports utilizes GZip compression for HTML, CSS, and Javascript.  They also minify CSS and Javascript, but they could have combined the Javascript into one file instead of several smaller files to reduce HTTP requests.  They also have quite a few images to load on every page load which accounts for an increased HTTP request count.  Some images have a cache time of today, while others have a cache time of 24hrs.  I would suggest changing all cached times to a date further into the future to reduce HTTP requests and decrease the size of a cached page load.

Overall I give CBSSports a very good rating, but could been great with a few minor tweaks.

3. FoxSports

Foxsports has a slightly different layout than the previous two sites because it has a much bigger flash app to showcase today’s top stories.

Page Size Cached Size HTTP Requests Server YSlow PageSpeed Chrome Load Time
906.8k 241.8k 91 / 89 Apache-Coyote/1.1 57 65 5.72

As you can see, the page size is the biggest yet at 906.8k, and the cached size is nearly 250k.  Any time page size is close to 1,000k for a news oriented site I consider that a bad job in optimizations unless they are offering a media rich experience that is far better than the other sites.  As we can see from the YSlow! chart, the majority of page size is taken up by CSS images, followed by regular images.  Weird huh?

It turns out that the majority of CSS Image size is due to the header image (at 62k) which can be reduced to 53k and the foxsports logo at 28.2k.  While the foxsports logo size can’t be reduced on my end, there are several pictures on the site that can be redused in size simply by using  The big image shown in the flash app weighs in at 230k, which can be shrunk to 218k with  Keep in mind there are 5 stories in rotation that need to be loaded.  The other 4 images aren’t factored into the initial page load time, but they still add up quick to people on slower connections.

When it comes to caching, the expiration dates for images, css, and js are today instead of far into the future.  As a result, cached page load requests are much higher than they should be.  It’s also important to note that they are using gizp compression.  They also decided to use ETags, which some say it’s better to omit them all together and just include far into the future expiration dates to lessen HTTP requests.  I agree with this mindset.

Overall I give foxsports a bad rating and they are in dire need for some optimizations.

4. Sports Illustrated

Sports Illustrated uses a similar style story spotlight app that Foxsports uses, but are they able to do a better job at the page size?

Page Size Cached Size HTTP Requests Server YSlow PageSpeed Chrome Load Time
887.8k 338.7k 108 / 59 Apache 57 65 5.72

Page load size is what I feared, just about on par with FoxSports at 887.8k.  On the bright side, SI was able to create pictures that are much smaller in size for their featured stories.  So where does all the pagesize go?  The majority are images and javascript files.  Oddly enough, their biggest javascript file at 108k is not gzipped!  Many of their images have expiration dates of today or tomorrow, which results in the large cached load size.  They do have gzip compression enabled for javascript, html, but NOT CSS.  Interesting.  They also have too many separate javascript files that are not cached far into the future and should be combined if at all possible.

Overall Sports Illustrated gets a below average rating because they have some glaring errors that need to be fixed.


As you can see, many of the websites have done a great job optimizing their sites.   ESPN and CBSSports get tops in this category, with ESPN holding the top spot.  This is likely due to the fact that it has gotten a recent redesign, and foruntately for us they’ve done an excellent job all around.  I suspect CBS won’t be far behind when their redesign launches.

SI and FoxSports are a distant 3rd and 4th in terms of optimizations. As I previously mentioned they have a few glaring problems which result in slowdowns for the end user.

Hopefully this post shed some light on how the top sports websites go about their optimizations.  I look forward to any criticism of my critiques or things I might have missed.


5 Reasons Why Mashable is a Bad Influence for the Web

Very recently Mashable created a post on their site indicating 5 more reasons why “Internet Explorer 6 Must Die“.  (Yeah, no shit!)  I was so inspired by their post that I decided to create 5 reasons Mashable is bad for the Web.  Mashable has so many bad habits incorporated into it’s site that I fear the rest of the web industry will think it’s okay to follow their footsteps.

It’s unfortunate that no industry leaders have stepped up to say how much their site blows the big ones. (Or perhaps I’ve missed them?) I implore everyone to post any site that rips on Mashable in the comments section below.

Now, onto my top 5 reasons . . .

1. It takes Over 30 Seconds to Load

For those of you unfortunate enough to have been linked to a Mashable story (my apologies), you’ll notice that it takes a LONG time to load.  Precisely 38.98 seconds according to Google Chrome’s developer tools.

Speed Kills. As in kill me now.

Keep in mind that I am using the fastest browser possible at rendering javascript and web pages in general.  Also keep in mind that my internet connection is Optimum Online Ultra, which is 101mbps and my CPU is a quad core.  If my computer has trouble rendering this website, then I fear for our little ones.

2. Mashable Loves Advertisements

In case you haven’t noticed, Mashable has 15 advertisements on their homepage.  I have never come across a website with more advertisements than this, and I hardly even leave my house folks.  I’ve tried!…(To find a similar banner ridden site.)  Basically what Mashable is telling people is that it’s perfectly fine to have this many advertisements and completely kill the end user’s experience.

According to their traffic numbers and apparent influence on the modern web, you don’t give a shit.

3.  They Report Funny Videos Too, LOLZ

If you thought all Mashable did was work hard to uncover stories about Google’s security breach in Gmail and the drama in China, then you are sadly mistaken.  Lucky for us all that they are able to uncover recent gems such as “Ninjas Perform Most Deadly Nexus One Unboxing Of All Time” or “Hilarious FarmVille Parody Ad Tells It Like It Is [VIDEO]” and, of course, “Nosy Boyfriend or Girlfriend? There’s an App for That“.

This is the hard hitting journalism we expect from a website that reports the latest trends and news from social networking and social media sites.

4. Digg, Tweet, And Facebook THAT ONE!

Just when you thought the advertisements on Mashable were the worst thing about, they totally redeem themselves by including a Tweet button, Digg button, and Facebook button.  Not those small crappy ones either, Ohhh no.  We are talking those oversized ones that take up way too much room than they should.  But just in case that didn’t get in your way, as a backup plan they have a “share” button and an “email” button just underneath.  And, JUST TO BE ON THE SAFE side, they included a “Become a fan of Mashable on facebook” widget and a “Google Connect widget” on the right column of their site.

Mashable, Just Trying to Spread their plague.

That’s Mashable for ya, going the extra mile every time.  All for us.

5.  Google is Happy, Internet Explorer is Sad

You may find yourself reading an article and all of a sudden you encounter some ridiculous smiley face.  It’s like when I mention things like Apple or Google these faces randomly appear so you know what your supposed to think about them.  What the fuck.  How did the faces start popping up here?!?!  Vista , iPhone , Mashable .

Though I have to admit, it totally works when I mentioned their site.


And please people, for the love of all that is holy.  If you absolutely HAVE to go to their site, use their mobile version instead.


Configuring the Linksys WRT610 Router for Dual Band

If you need a router with dual band support that is also gigabit, then the Linksys WRT610 is your best option. I have seen a lot of user reviews about dropped connections.  This was mostly due to a lousy firmware, but users were also at fault for improperly setting up dual band.  If you do not set up dual band support correctly, you will see connection dropouts.  I recommend NOT installing the Linksys software it comes with.  Please configure it manually with the following settings:

Set up Page

I have had this router for roughly 6 months or so and have never had a dropped connection using the configuration above.  I also have seen Wireless N speeds at 90mbps and wired speeds at 100mbps.  I am one of the few people fortunate to have Optimum Online Ultra, and I highly recommend to have it paired with the WRT610.

This router is as good as it gets folks, so don’t be discouraged by poor reviews by users from a year ago.

Google SEO

How Banner Advertisements Affect Google’s “Site Performance”

As you may have heard a while ago, Google decided to incorporate load time into where sites rank in terms of search results. The faster the load time, the more of a bonus they should get in SERPs. One of the things that slows down page loads more than anything are site advertisements. In this blog post we are going to look at what advertisements can do to load time, according to Google’s “Site Performance” chart in Webmaster tools.

For this analysis, we are going to look at FantasySP.  FantasySP is a fantasy sports news aggregator that makes managing a fantasy team and tracking player’s much easier.  I will show site performance when it had several ad networks compared to when it has just one ad network (Google Adsense).

Below you will see a chart of the performance of the site with about 3 to 4 different ad networks.  The more ad networks should result in worse performance.  The site load-time PRIOR to January of 2010 shows load-time with several ad networks.  After January, just one ad network is used: Google Adsense.

Google says: On average, pages in your site take 3.9 seconds to load (updated on Jan 10, 2010). This is slower than 63% of sites. These estimates are of medium accuracy (between 100 and 1000 data points)

Quite a dramatic improvement isn’t it?  The more ad networks, the worse your load time is, no surprise there.  But let’s take this a step further. . .should we disable ads  for Googlebot to artificially inflate load times in your favor? With no ads shown, FantasySP should load a lot faster.  But we’ll get back to this in a bit.

Next up, I’ll show site performance for the mobile FantasySP website, which is geared towards super fast load times.

Google says: “On average, pages in your site take 0.4 seconds to load (updated on Dec 7, 2009). This is faster than 97% of sites. These estimates are of low accuracy (less than 100 data points).”

The moral of the story is obvious, watch what ad networks you use for your website because it is killing your site’s load time.  Not only for Googlebot’s site performance numbers, but your actual real life visitors as well.  Why not offer a membership option for users to browse your site advertisement free, which is what FantasySP does.


As of 1/19/2010 I realized that the Site performance numbers are based on Google toolbar users load times.  This means that while removing banner ads and unnecessary code snippets for Googlebot may be good because it can crawl faster, it won’t benefit you in any way when it comes to Site Performance numbers.  Total bummer.

apache php

How to restart Apache with PHP

If you ever need to restart Apache via PHP, you’ll notice that the “passthru” command doesn’t quite work out like you thought it would. For those of you who have cpanel and WHM installed, this will be an easy solution.  cpanelmatt at the cpanel forums created an XML-API PHP class to be able to handle situations like this.

First download the XML-API PHP class.

Next, follow the code example below:


$ip = "";
$root_pass = "somepass";

$xmlapi = new xmlapi($ip);


print $xmlapi->restartsrv('httpd');