Why is Statcounter.com the #1 blog in the Technorati Top 100?

October 10th, 2006

What is going on here? Technorati have listed www.statcounter.com as the #1 blog! Technorati was my source for blog rankings but how can I trust a source that lists a non-blog as #1!!

Update:

They appear to have resolved the issue. I’ll be interested to see what the explanation is…

DOM Scripting is brittle

September 28th, 2006

Is anyone else tempted to put an ID on every freakin HTML element so that they are easy to reference? As I write routines to locate my elements within the div an event fired on I wonder to myself - “Just what would happen if someone whacked some extra DIV tags in this template?”.

Most of our code is PHP and we put some effort into making stuff that wont fall over for our clients. I am not used to writing code which I know will break when inevitable changes are made. But what are the alternatives? Put IDs everywhere? I’d have to generate the IDs because most of my pages are dynamic. Should I attempt to write more forgiving routines that keeping searching until I find that img tag I am looking for? This brings in issues of performance and why the hell am I spending so much time writing routines to find elements on a page that I put there in the first place, just to frickin switch an image or fade some div!?

Awhile back I likened working with Javascript to an addiction. I think that is still apt and I am starting to see that the act is also fairly futile. Maybe I am just weary from a long project but maybe I am seeing the truth of this thing. I think maybe we are all blinded by the pretty moving, pulsating, bevelled corner DIVs and not being realistic about the disproportionate effort required to get a dubious gain in usability.

If you have some suggested reading for me which may ease my pain then drop me a comment and join the illustrious crowd of Dustin Diaz and some guy named John who have commented on my blog.

Detail versus Perspective

September 27th, 2006

A constant battle in my work is the balance between being attentive to detail and being proportionate when addressing issues in relation to the goals of the business. It is easy to spending alot of time ‘perfecting’ things whilst ignoring more pressing business issues. This is not a post advocating a lax approach to work - I pain over detail - but I acknowledge there is a line to draw.

It is easy to lose sight of what you as a member of a business unit is trying to achieve. I won’t spend any time in this post going into what a business unit’s goals should be - it will differ for every unit. What’s important is to know what the business motivations are and how your unit can impact the overall business the most.

I find its helpful to reconsider what my top priorities should be on a regular basis (let say weekly). This involves weighing the guidance you get from above, from stakeholders and those challenges that impact your work overall, your day-to-day performance and more longer term efficiencies.

Pressure to take the quick and nasty approach to tasks (often complete aesthetically and functionally but completely destructive in terms of maintenance for you and your co-workers) often looms from your own pragmatism as well as from those with a limited understanding of the challenges of development.

The real difficulty is in reconciling your own interpretation of this balance with that of others. The danger all workers is to believe that every issue that can be described is worthy of immediate attention. It is also to favour the small tasks over significant challenges that might require longer than a few hours of someone’s attention.

We’ve done some great things at my workplace over the years which has been testament to a dynamic approach to our work. I can’t say we’ve got it right everytime but I can say that we’ve embarked on some projects which have taken us out of the small-task cycle to instead expand our business to greater opportunities.

Yahoo’s YUI Drag and Drop Module

September 19th, 2006

We’ve been working with YUI recently. There is plenty that is good about it - we were originally drawn to it because of its obvious amounts of documentation, examples, blog and the backing of a big, big company in Yahoo! (and their suite of javascript luminaries).

Its been quietish on the YUI front, recently however, there was a point upgrade, but I do think we over-estimated Yahoo!’s ability to keep the library bubbling along. I think there is a difference between the priority Yahoo! places on YUI when compared to dedicated library development efforts (prototype, jquery, dojo all come to mind).

The documentation in use comes fairly short of acceptable. I will try to elucidate on why because I don’t really want this post to be anything other than constructive. Afterall, YUI did end up achieving what we were after however I felt we probably ended spending too much time trying to learn the library and the quirks of its construction.

As part of the documentation an overview or survey of the library would have been great - many features we found too late and spent time retrofitting onto code we had already written. This process helped fix browser compatibility issues but ideally we would never have come across these if the prefered ways for changing styles and retrieving elements were highlighted. Further browser compatibilty issues could have been prevented with some more defensive programming within the library - there is definitely wrong input that you can put into the API which will yield js errors from within the library.

Other frustrations included examples which appeared to have their own custom additions to the library with little or no explanation eg. the DDPlayer objects in the Drag and Drop modules.

I also found the DD module had a few too many assumptions when it came to its events.

Drag events can work in a simple point mode (ie. the target is wherever the mouse pointer is) and intersect mode (events such as DragEnter, DragOver and DragOut get an array of targets which you can use to determine which you want to interact with). Intersect mode is, I believe, a preferred method because the drag item becomes the mouse cursor. This means users will expect interactions to occur with the item rather than the mouse cursor.

The problem I found was that the library did not pass me the true list of items I was over. It appears that it was caching items already found by earlier events. This was frustrating because now I need to mirror this caching in my objects and am therefore needing to peer behind the curtain to see how the library works.

Early on we found a bizarre class notation which was used in some of the YUI modules. It puzzled as to why use this over the more standard javascript approaches to defining objects (a js strength/weakness is its flexibility). It appeared to be used where you might usually use a static class or the singleton pattern in other languages.

Thankfully, only an hour after a colleague and I puzzled over this Dustin Diaz posted an article which illuminated it fully for us. The exposure of many Yahoo! staff via their blogs continues to be a compelling part of the support network for this library (and our saviour twice now!).

I think that YUI needs the continued support of Yahoo! to continue the good base that has been established. The library has clearly facilitated some great developments for Yahoo! with some very impressive product releases of late. The gains are measureable but the potential future gains from continuing to support and improve the library are also very real. Don’t do it for us - do it for your own developers. And then put it out to us :)

Google Working On Prototype For Offline Spider

August 31st, 2006
Google’s Goal to index all of world’s information hampered by online constraints
Will soon be sending spider to a town near you
MOUNTAIN VIEW, Calif. - Septemberl 1, 2006 UTC - Amidst rampant media speculation, Google Inc. today announced it is testing a preview release of Gcrawler 2.0 aka the Daddy Long Legs update – a complete upgrade of the indexing service that powers Google’s world-leading search product. The spider adds a key capability: users can search for things that are not online.

The inspiration for this latest version of Gcrawler came from a Google user complaining about their regular inability to find the car keys. “Why can’t I Google for them, he said” , recalls Larry Page, Google co-founder and president of Google’s Product division.

The spiders will be constructed in various sizes in Google’s new nano-factory which is located in a secret location in Mountain View *.

Each spider will have one or more sensors for scanning the world’s information with onboard OCR, object recognition and GIS systems. The crawler’s will have full access to index the world’s information whether it be stored in books, movies, radio, cupboards, local hangouts or down the back of the couch.

Homeowner’s concerned with privacy issues will be free to place a ‘robotSpiders.txt’ doormat with details of what they do not want to be indexed and directions on how frequently. Applying meta information via post-it notes will assist Google in giving relevancy to the information it collects.


* Viewable by Google Maps, though.
Those interested in learning more about Gcrawler 2.0 can visit http://gcrawler2.google.com.

About Google Inc.
Google’s innovative search
technologies connect millions of people around the world with information every day. Founded in 1998 by Stanford Ph.D. students Larry Page and Sergey Brin, Google today is a top web property in all major global markets. Google’s targeted advertising program, which is the largest and fastest growing in the industry, provides businesses of all sizes with measurable results, while enhancing the overall web experience for users. Google is headquartered in Silicon Valley with offices throughout North America, Europe, and Asia. For more information, visit www.google.com.

###

Google is a trademark of Google Inc. All other company and product names may be trademarks of the respective companies with which they are associated.

** Image from TurboSquid

Ajax as optimisation

August 14th, 2006

It seems to run in cycles - the Ajax backlash - where seasoned developers can no longer bite their tongue on the Ajax issue. Alex Boswell lead the charge with Ajax Mistakes and followed a year later with the more meditative Rocky Shoals of Ajax Development

I think most tech blogs I read have gone there however most recently I caught Neil Mix’s Ajax as an Anti-Usability Pattern

I don’t want to cover old ground, anyone who sees Ajax as more than just another tool in their toolkit is kidding themselves, but I do think its worthwhile discussing what Ajax can actually be used for. Neil is right, it certainly doesn’t make things inherently more usable - in fact there are so many destructive elements of Ajax that have to be accounted for that to use it without the support of one of the major libraries can be a usability don’t or at very least a time-sink.

Ajax is only a usability enhancement insofar as any performance optimisation that improves perceived loading time is a usability enhancement.

I think that the most useful way to think of Ajax is as an optimisation. This will change your approach to web development in a number of ways however take these two tips and see how you go:

  • Build an application which can have Ajax layered on unobtrusively. There are plenty of articles on this topic so I won’t expand on this further, but suffice to say it leaves the door open for Ajax and you can stop thinking about it and get down to building your application.
  • When you have a functional version of your application and you are evaluating its performance both from the standpoint of raw metrics (total query time, total page load etc.) and percieved page load (ie. does the page or application just feel slow?); consider Ajax alongside all your other optimisation techniques.

My guess is that most times you are likely to opt for solutions other than Ajax. When confronted with a page with a number of distinct elements on it, you may elect to load each individually with Ajax if this decision-making is done at the head of a project. The danger is the buzz behind this technique has pushed it out of sequence, to the front of the decision making process. Ajax is not being evaluated alongside much longer established optimisation techniques because Ajax is being mistaken for an essential usability enhancement.

I find that when you put Ajax and server-side caching head-to-head in your first round of optimisations then you will get more bang-for-buck from the caching. This is because many web-applications are victim to the number of individual requests that make up a page - a problem that Ajax only exacerbates.

Once you’ve got your caching, your query optimisation, your initial client/stakeholder feedback you are now free to consider any further optimisation strategies which will potentially provide a more satisfying user experience. Who knows, you may even use Ajax!

MIFFed by MeccaMedialight

August 1st, 2006

Its the Melbourne International Film Festival and being a bit of a film buff I am quite excited. I am also a little overwhelmed - there are just so many movies. Naturally I hit the web to see what I could find that could influence my decision on which sessions to go see.

I am now three days into my quest, having made the decision last night to see Tideland, Terry Gilliam’s latest (and the description makes it sound like a filmic cousin of Fear and Loathing) so I am excited.

But I am also extremely frustrated. The MIFF site, for which MeccaMedialight take the credit, is, whilst dense in information, rates very poorly on the usability and quality scale.

First it took about 5 minutes of scanning and exploring their menus to find the list of films. Whilst

Navigating the list of movies (which for me was my initial task so I could choose something to go see) was a chore. Not knowing what you want to see is not helped when you are only presented with Title and Country of Origin.

A friend said I should check out Tideland - okay that gets around my navigatory issues but just getting to the page about that film required paging through 4 very long, slow loading pages. The pattern many sites use provides a set of links to important pages; ‘first’, various numbered pages (a subset if the list is long) and last page. It also tends to repeat these at the top and bottom of the table so scrolling isn’t required just to page.

Next was more hunting for the purchase button - make it big for !@#$ sake. A few more clicks and I am ready for purchase. There is a single useful looking button on the page saying purchase now - looks like exactly what I want, the page appears to be telling me about the two tickets I am about to get. Click.

No items in cart

What?! Hit back, tries again. Tries in another browser. IE yields Javascript errors!!  Page renders though;

No items in cart

I wasted about a half an hour on this until I spied that under each ticket listed it says ‘Sold Out’ in a small whimsical typeface. If its sold out make it obvious! And disable the purchase button!

Alright, I’ll fall back to phone order instead. Where is the Contact page? I surf around and notice it appears on some pages in the navigation but not others. And when you do click on it, 404!

Don’t worry, I found another session to go to and in the end got the purchase done online. What we can take away from this, though, is that the MIFF site:

  • Failed to address the goals of the user.
  • Did not guide me visually.
  • Had a broken construct - why did they have a separate listing for each ticket? Is it to handle the case of only having 1 ticket left to a show and me asking for two? If so this broke it severely for the majority of instances of a purchase attempt when the system would be either plentiful in available tickets to satisfy a request or sold out.
  • Overloaded the site with too much content and features but failed to deliver on its primary functions very well.

I think you should always identify a key set of goals (like one or two of them!) and then ensure you can satisfy them, regardless of what else the client is requesting. Not satisfying the true need of the end-user and the business need of your client is going to exclude your company for the next contract they may have.

Yahoo, Google, Microsoft

July 21st, 2006

Who reigns supreme?

They all rule the net in their own way. Google’s brand is strongest at the moment and most web searches are conducted there. Yahoo gets more visits overall and dominates most verticals outside search. Microsoft in the form of MSN is ever-present and can never be ignored.

Despite Steve Ballmer’s outbursts, I doubt MS are quite as fearful of Google’s sword-waving as everyone makes out. They are busy becoming a mature business, giving investor’s hard-earned back.

There are still interesting times ahead. What happens when Google’s growth slows? It must slow along with internet growth. That leaves only three options for Google:

  • More advertisements
  • More relevance and algo-tweaks
  • Portalisation

The last point is inevitable because as time moves on the ability for the first two points to keep the growth afloat is reduced. The paradox is that to undertake a true diversification of interests part of Google’s appeal might be reduced. Yahoo can consistently drive traffic from its verticals to new or updated properties. Google, in striving to keep its frontpage simple is hampered in this ability.

But they are putting their chips in line.

Hundreds of verticals with quality features (and slowly growing audiences) are being rolled out by Google. We know none of them are vertical leaders yet but with Google’s strong brand we wonder why? I’d wager the lack of both consistent links between the Google properties and a simple entry point into the key properties from google.com’s frontpage hinder it from sharing the Yahoo Network’s ability to hoist its younger properties into the position of vertical leader.

But Google could make some moves to change this. And they could execute fast. Simple APIs and a focus on scalable infrastructure means they could string their tools and content together in 1000’s of natural ways. Consistency would be almost impossible but if the links are contextual then traffic is likely to flow naturally through its properties.

There are plenty of examples of the cross-polination of Google properties to see - Gmail users seem to be a trial set, gaining access to GTalk and GCalendar with very little effort. But if its so easy for them then why haven’t they done more of this? Why dominate search when they could dominate the world?

Limiting the growth of Gmail and Google Analytics showed off some of the company’s qualities; restraint and focus. The net exploded with the realisation that Google don’t dominate everything. But I think most people missed the point (but then isn’t that always the case? Let’s call that wioota’s Law #1 :)). Google’s traffic is about 80% web search, 20% diversity from this core product. With competitors of the magnitude of Yahoo! and Microsoft, any true deviation from their core business represents more risk than risk aversion.

As the search companies are finding out though, search growth is slowing and soon Google will be forced to force the issue on its new verticals and start serving them up on either the results pages or the frontpage. Either move could achieve one or both of two outcomes:

  • Increase the polling of the Google verticals.
  • Decrease the usage of Google Search.

And none of this guarantees they could better acquire users or monetise them than Yahoo!

But Google have smart people!

Do you think that the other two multi-billion dollar corporations don’t?

The key to knowing what the game is is in knowing how these companies differ. For those who love to watch Google take on the big boys, think of it like a computer game where Yahoo! is the second end-of-level boss and Microsoft up a level again.

I think plenty of analysis on how Yahoo! builds its verticals into category killers could be done. I’d wager their email is the real key to leveraging the userbase. At just over 2% marketshare Gmail has a long way to go in that area.

All three have proven to be able to move boldy so the future is far from written but what is clear is that the market has a long way to go in understanding how these companies compete. The valuations would be vastly different I suspect.

Why doesn’t Digg let you aggregate duplicate stories?

July 16th, 2006

I have noticed some big memes being notably absent from the Digg front page (and relevant category pages). A search generally finds a plethora of duplicate submissions, all with a good start in terms of diggs but not enough to send them into the path of the main Digg audience.

Whilst Techmeme seems to faithfully pick up the conversations that are driving commentary (and traffic) Digg seems to be busy with stories that have ‘Digg’ or ‘Amazing’ in the headline. All of this makes me question the purpose of Digg? Much of the content doesn’t even seem to be current. The process seems more akin to rough waters kicking up silt from the sea floor. Sometimes treasure is revealed. But generally its just silt.

I wonder whether giving the Digg users the option of marking a story as being a dupe would at least take some of the chance out of whether memes make it or not.

I am a big fan of Digg - particularly the social tools they’ve provided - as it is now a conveniant way to share stories with friends. I do find however that the content on Techmeme does seem to be more relevant and less likely to be missing important conversations.

Naked?

July 6th, 2006

Ego surfing when I should have been sleeping I came across this little escapade of a namesake of mine :

“…Authorities say the officers opened the door, and Walters came running at them — naked.”