Archive for the 'communication' Category

Could personalized search reduce spam?

Saturday, February 3rd, 2007

Google have extended further into personalized search results for those with ‘Search History’ turned on in their Google Account. Its likely to result in all sorts of conjecture which I’d like to sidestep and instead spend a few moments pondering out aloud.

Could personalized search – whether this implementation by Google or a future one (by any provider) help reduce spam results by affecting the potency of SERPs? Imagine a time where everyone’s results are personalized by numerous factors, whether by search history, demographic, geographic, psychographic or any-other-graphic. The concept of SERPs disolves as the results are further segmented into a myriad of micro-niches.

Spammers incentive (and indeed, maybe even legitmate SEO implementers) to occupy the top SERPs must be diminished in line with the diminished reward? Could the effort required to achieve positions across the almost infinite permutations of SERPs (the results for phrases multiplied by all possible personalizations) tip the effort required to achieve a return to un-economic level?

You could argue that the number of permutations could be quite low. Whilst only some keywords will have differing meaning and contexts, most could have a context which may yield a different result for almost any user. This might not be practical, however, as one wonders what logic or intelligence could be used to determine which factors to apply to which keywords. When to apply geographic information, say for searches relating to buying a car versus when not to, in the case of me searching for a solution to a javascript issue I was working on.

Whatever happens, this is an interesting area of development – for ideas covered here as well as the many concerns currently being raised in the blogosphere.

Danny Sullivan does an excellent write-up on this latest release from Google so I suggest heading there for more details.

A few thoughts on Enso

Monday, January 29th, 2007

Its hard to say whether Enso will go the way of my experimentation with browser gestures. Others I work with use the gestures fluently now making me envious of their reduced barriers to productivity. I do think I lose much time transitioning from pointer devices to the keyboard and back so I am inclined to think the people at Humanized have something.

For the uninitiated, what is it? I’d recommend watching the video they have placed on the frontpage of their site. The short rub is that Enso overloads your caps-lock – holding it down reveals the Enso dialog which hovers above your OS, transparently waiting for input. Its a command prompt for navigating your applications or for applying simple commands to your context; for instance some selected text.

It is clearly a polished product – I recognise a few elements from earlier memes they had successfully set loose into the sphere. Some elements such as their use of modal messages which appear in the user’s field of view are smart but maybe not as clever as they present them to be. But maybe they are – I am still training myself to look for the Enso interface in front of me rather than in the task bar.

I can’t help but wonder whether the task of testing this software out is somewhat of a catch-22. To test it properly requires one to learn a few keywords which drive the system and also to train themselves to use Enso rather than existing (slower?) ways of achieving goals. If you succeed at this then the system is probably working for you already and the ‘test’ is over before it has begun.

I guess it comes down to whether you believe this is a significant adjustment to the drag that ‘modern’ interfaces such as windows afford you. I personally think that windowing is working against you for most of the time. Fiddly dragging and resizing is time costly and doesn’t deliver much. If you need to fit two documents side by side then there should be a button or a command for it. Moving these things manually seems like pushing unnecessary work to the user.

Humanized present Enso as being grounded in the study of human computer interaction and they present a manifesto of how life using computers could be much easier. I don’t disagree, but is this product a step forward? Enso takes us back as much as it takes us forward. It reminds us of lessons many developers already know – of the effectiveness of the commandline. It consolidates what Google success has been teaching us – that typed text can lead to an infinite number of destinations and they have made even Googling a few clicks closer by having access always available from the keyboard alone.

Those with Google Desktop who have put up with its (in my experience) fairly regular crashes would be familiar with a similar capacity, in this case overloading the control key, a double-press brings up dialog Enso-esque but of course has in actuality beaten Enso to market to what appears Enso’s most interesting application thus far.

I do persist though as navigating many tabs and windows is my own personal goal and Enso may offer a path of lesser resistance to them. I will let you know how it goes.

One giant leap for Linux

Sunday, January 28th, 2007

I am a proponent of tackling tasks which represent the maximum reward for the minimum effort. Why spend months focusing on 11 different things when 2 of them could substantially improve your product or your business proposition or your team’s effectiveness.

A couple of recent releases which have just caught the attention of slashdot.org (and now me) in linux land have struck me as being not necessarily effortless developments but in the face of their potential impact on Linux adoption, releases that deserve applause.

First up (and currently slashdotted it seems) is a windows installer for Debian. The other is also a windows installer for the ubuntu linux distro.

What does this mean? It means that two key reasons you delayed installing linux on your laptop or desktop just evaporated.

  1. Partitions aren’t used apparently so risk of data loss for files already on your machine is greatly reduced.
  2. The time spent learning how to install a distro, configure it to your liking and get it to a productive state dramatically decreases.

Live cds were the first step in wider adoption however my experience of them was mixed. A live cd have saved us on a number of occasions when working with sick machines. For use as a trial OS however I have found them to be slow. This may have been due to an old dvd drive more than anything else.

I’ve run a few installs of debian and redhat for development machines at home but found the time administrating them became prohibitively expensive as I reduced the amount of time I spent developing (as I increased general administration and project management responsibilities). Linux desktops have been progressing impressively and I find that my frustrations with ineffeciencies on my windows machine demand I try something else.

I applaud those who have championed, evangelised, developed, tested these two projects. You may have just created an upward-shift in the Linux adoption. It is time now for the various window managers and applications on Linux to prove themselves with their new-found audiences. I do agree with recent posts that disparity between linux applications user experience is a challenge which continues to affect uptake however could unifying tools which change the way people use their OS minimise the impact of such disunity?

I will be trialling Enso over the next 30 days so more on this to come…

Update: I came across a similar project that has been around longer. I am surprised it has not caught my attention earlier? Maybe evangelism is truly what is needed?

Blurring the line between code and documentation

Wednesday, January 24th, 2007

The line between code and documentation is blurring with the introduction of regimented documentation standards. In PHP reflection (and likely other languages as well) you can use reflection to programmatically access documentation blocks meaning you *could* make code dependant on information in your doc comments! Scary!

More scary is that I discovered this via a colleague who was considering using this. You could argue it conforms to the DRY principle because we were looking to add more strict control of return types implemented in methods that are derived from an interface we defined. This would require us to redefine information already part of our doc comments should we proceed without the reflection API.

For now we have elected not to proceed because it violates the rule of least surprise. Developers do not expect edits to comments affecting code conditionals and thus our effort to enforce correct use of interfaces could backfire causing exceptions in classes implementing our defined interfaces.

At some later date when the trend has continued and there is no line between code and API documentation or at such point we are confident our unit testing will prevent deployment of exceptions due to incorrect documentation we may reconsider this approach.

Javascript: The Quickening

Sunday, January 21st, 2007

There have been philanthropists in javascript development since the language was concieved by Brendan Eich. A few that I can point to as having provided tools and inspiration along my path in web development: Mike Foster and his excellent x library (and it predecessor) which just worked and added some bling to projects of a few years ago; Brent Ashley and the jsrs library code and examples which opened my eyes to a new form of optimisation I could use in the web applications I built; PPK for the never-ending resource that is quirksmode… I am sure you all could name others that facilitated your own web application careers – feel free to add to this article in the comments.

In more recent “web 2.0″ times it was the success of Sam Stephenson’s Prototype, defined by its syntactic sugar which reminded the web development community at large of the dual functional and OOP natures of Javascript (invigorating in the face of the millions of custom procedural functions that previously ran the web). This has driven the current increase in client-side scripting interest. Of course Prototype was also helped in part to the libraries which built on it such as Thomas Fuchs’ Scriptaculous and Open Rico and also those influenced by such as MooTools. I would argue that all this activity (and other developments) was itself fueled by the natural return to ascendancy of web development that was always imminent after the tech crash’s over-correction.

With exploration of Prototype (and Javascript in general) we also learned. We learned that messing with the Object.prototype is verboten and that there were better ways to include functionality than inlining everything. Ben Nolan’s Behaviour library demonstrated this best (well then, anyways, these days I now just include separate files which use the various selector functions in combination with the cross-browser Event Handler implementations found in each major library).

Mid-way through last year we were evaluating libraries, namely Prototype, Jquery, Dojo and YUI. YUI won out for a number of reasons. Jquery looked great but it wasn’t at version 1 yet and seemed to be changing on a weekly basis (for the better, but that was too much flux for a project destined for our end users). Prototype I had used in some of my demos but the documentation was sketchy and every example relied on inline script tags scattered through-out our templates. I trialled out Behaviour which was quite handy but some examples were not easily recreated when combined with Behaviour. We were also concerned that Prototype would not play well with others. We wanted to leave the door open to continue using other third-party libraries in the future.

Dojo looked awesome but again was low on useful documentation (They have much improved – in fact all libraries have, in this regard). The Dojo events package looked very cool with its AOP-style approach but I had reservations that it might add too much ramp-up time to our tight schedule.

YUI had a combination of API and example-driven documentation as well as coverage on all the key features we needed. Its namespace implementation was simple, allowing us to get in and comprehend their code quickly. Once undertaking the project we did find that the documentation could still have been much better, but such are the joys of open-source libraries and their documentation, right (php is an exception – the comments on the API pages was a stroke of genius)?

The last twelve months have seen Dean Edwards and John Resig and others team together to provide a cross-browser solution to detecting when the DOM content had completely loaded (at a time before assets such as images have completed downloading).

This month has seen Jack Slocum weigh in with faster DOM search functions, setting a new benchmark in the area that John Resig had previously thrown down the gauntlet. This sort of collective innovation is for the good of the community and is providing an accelerated environment of innovation. I don’t fully subscribe to information singularity as while I do think acceleration can be hyperbolic it will more likely form an ogilve, flattening at some point rather than continuing to approach infinite (there are, afterall, limits to our ability to process information and effeciently distribute it amongst the hive-mind that is the community that forms around any topic of learning).

Philosophic analysis of the phenomena aside I do think it is valuable to recognise the progress that has been made and the factors contributing it and encouraging everyone to continue providing and contributing to the environment that has allowed us all to flourish.

Performancing.com ate my post

Sunday, January 14th, 2007

I’ve been using the mostly cool blogging firefox extension by performancing.com for at least 8 months now. There are a few irritations I have with the editor however for the most part these are issues I have with many formatted text editors out there (for instance when linking some text there is no obvious way to stop applying the link formatting – I always have to apply links last to get around this) so I am forgiving on these matters.

What I occured on Friday though was more than irritating, it cost me a detailed post. I was linking for somewhere to paste the links I was collecting for pasting on text once I finished drafting my post. I remembered a ‘Notes’ tab in the Performancing editor and thought I might be able to post it there. That would be conveniant. I saw two example “Notes” in there and clicked on one to see where it would let me input my Note. The text in the main editor was replaced with the text from the Note. Neat! I thought, I can switch between my draft and my notes right here in the editor! Now, how to switch back to my draft? 30 minutes of hunting around the interface and the forums brought me to the slow realisation that my work of earlier in the day was lost.

Why name something destructive with the innocuous title of “Notes”? Why not warn of non-obvious, destructive behaviour? The irony is that I am now using this feature to protect me from an event like this – I just have to remember to click ‘Save as Note’ first or suffer a similar event. I am, of course, now in the market for a good blog editor which will combine well with my web browser research on a single screen (for when I am using the laptop free of my second screen).

My silver lining is that events like these help create a stronger usability movement.

A new version of my original post is on its way – its taken a few days to build up to retyping it.

Now this is what I have been looking for…

Tuesday, October 31st, 2006

I have been signing up to all sorts of web2.0 tools looking for a way to leverage my list of feeds. Many tools come close but have yet to offer quite the functionality with the level of completeness I have been after.

Matt Cutts, on commenting about the new Google customised search features, had this insight to share…

When I played with the first version, I wanted to avoid the standard stuff
where you plug in 1-2 sites and get a custom search engine that isn’t
blood-pounding-ly exciting (”Oh, a search box, and it searches. Great.”). So
what I did was take my feeds (I was using Bloglines at the time) and exported it
as an OPML file. Running a command like
cat export.opml | grep "title="
| cut -d'"' -f6 | grep -v '^$' | sort | uniq

was enough to get the
blog urls that I was reading (not the feed urls), and I threw those urls into
the custom search engine.

And just like that, *BOOM* I had a search engine that
covered 70+ blogs in the search/SEO industry. If I searched for [bug], it would
return search engine bugs, not bugs in general. OPML-import was so much fun that
the Co-op folks promised to support it (I know that importing from Bloglines
works; importing from Google Reader might still need a tweak to the OPML
parsing). It’s nice that every blogger can have a custom search engine that is
centered around their interests.

Smart guy, cuts straight through the gloss to a key use of this functionality. Hopefully they support a regular OPML import/sync from a fixed url (say a public newsgator OPML file…) so I can keep an engine up to date based purely on my web development blogs.

Combine that with certain del.icio.us links and now I have a massive information resource minus the majority of noise (you see I am not in the habit of bookmarking splogs and the like…).

In the mean time my dummy spit over that post still has me looking at other engines… A suggestion from a commenter got me back looking at snap.com. I’ve gotta say – its actually a joy to use! A recommend giving it a shot, its got liberal use of web2.0 features but in ways that really aid usability. The best feature by far being keyboard support.

I wanna new search engine!

Thursday, October 26th, 2006

With the issues I am having with my Yahoo! account and the innanity of Google’s legal goons attempting to dictate the public’s use of language, I find myself wondering what my options are in regards to a new search provider. Of course, like most other web developers, I use Firefox predominantly (Firebug being a big part of the reason behind that) and therefore want to add a new default engine into the search dropdown it provides.

I wandered over to ask.com (they’ve always done a nifty thing here and there and might be able to provide the quality of searching i require). The URL is also nifty short in case I need to type it. The offer a pox looking toolbar that makes me think ‘Web Browser Helper Object’ (that is not good).

A quick wander through a few links on Ask I find this page

Its been updated for IE7 to guide you through setting Ask as the default engine but then goes on to give directions for… Netscape Friggin’ Communicator!?! No quick add link for the ‘Ask’ engine? Wikipedia.org, Dictionary.com and even our ticketing system at work has implemented one of these… Why not Ask?

Has anyone switched? Anything worth checking out and potentially switching to?

What are Yahoo! Account Services and Yahoo! Customer Care on?

Thursday, October 26th, 2006

I have been trying with some frustration and some amusement to regain access to the account I setup with Yahoo! about 10 years ago. I say ‘about’ because I really can’t remember exactly when but I do know that it was early days, well before the boom (and eventual bust). What I do know is I am the only person using the handle ‘wioota’ and I am the only person with a grasp of the full details of my life. I cannot remember what password I used back then (hence the problem) and I am not even sure which of a myriad of work email addresses I may have used.

What I do know is that none of my current email addresses were used as the alternate address for this account.

With all that in mind you would think I could get in contact with Yahoo! and set a new alternate email address (which in turn would allow them to send me my password). What has ensued over the past year (my first response from Yahoo! on the matter was on January 16th) has been 3 separate attempts, each involving about 7-8 exchanges between Yahoo! and myself.

And still with no resolution.

Some of the highlights include:

  • Yahoo!’s insistence that I supply both my Secret Question and my Secret Answer – I’d have found it a bit easier if they could supply me with the Question so I could respond with the Answer as I am sure that is how a challenge-response mechanism is supposed to work.
  • Yahoo!’s later (much later) admission that my account is so old that it doesn’t have a Secret Question or Answer attached to it.
  • Yahoo! then offering to let me add a Secret Question and Answer to my account for extra security and conveniance (no offer to help me identify myself and regain access to my account though).
  • Yahoo! requesting me to fax or snail mail California (during an exchange where I thought I was in contact with local – Australian – representatives).

So to Yahoo! – a company who I have felt were being unfairly ignored in the face of Google’s impressive brand equity – you are driving your loyal customers away! I would suggest taking an axe to your customer support departments (which have clearly become bureaucratic and over-automated) and start investing there. This time don’t turn to your geeks for the answers, don’t offshore it, get someone or some enterprise who know’s customer service and let them take over.

You are doing a great disservice to the excellent efforts of your talented engineers by allowing your customer service to remain this bad for this long.

Evangelizing Quality

Saturday, October 14th, 2006

Robert Nyman wrote recently about the difficulty to get buy-in for accessible web pages. His article speaks to a greater issue however of the difficulty for organisations to address the detail of generating quality. I define quality to mean not only those aspects of a products finish that benefit an end-user but also those that benefit those that support and maintain a product.

The strategic decision makers often talk to short-term benefits as reasons
for taking short-cuts on quality. Sometimes I think the Google Offline Spider’s Archive maybe handy in settling once and for all how the short term thinking had lead to issues such as poor stickiness or excessive bug reports or that high exit rate from page x.

I have had various QA tester and QA Manager roles in my past (it was even my entry into my current company!). From this vantage point it often feels like the last thing anyone wants outside QA is a quality product.

Things aren’t generally that bad – of course once you experience different roles around the workplace you do realise that quality is being achieved despite conflicting incentives. I’ve done in-the-trenches development (I continue to moonlight with this every once in awhile to satisfy my hobby interest and to make sure I maintain a reasonable understanding of the work at hand), content direction and production, marketing and various managerial roles as well.

Developers and content producers generally are striving for quality in the face of deadlines, distractions and the conservative decisions of their managers (spending time on both sides of the fence I acknowledge that sometimes those decisions represent excellent risk management and othertimes fear/laziness of disturbing the status quo). Managers deal with distraction, the competing needs of other managers, the goals of the organisation and that estimating accurately is HARD.

In my post detail versus perspective I had discussed the trap of fiddling with details whilst the truly valuable contribution to the success of your organisation languished. This is not in conflict with achieving quality in your work as often quality (attention to detail, usability, accessibility, reusability, literate code – whatever it is that provides ongoing benefit inside and out of your ogranisation) is that truly valuable contribution.

So how do we all ensure we contribute to an overall environment of quality? There is no way to guarantee it but you can certainly do more than ‘your little bit’. To understand and facilitate others in their efforts to contribute to the quality of the product of your workplace is important. If QA request consideration to their workload and throughput then give it. In fact support any of your domain experts when they are suffering friction from decision makers when trying to address issues within their domain. And evangelize the aspects of quality that are key to your own domain succeeding.