The Dovetail Blog

I love great customer service

I own a rather extravagant corkscrew: the Screwpull LM 400.  It's beautiful because it works so well: with my background in mechanical engineering it appeals to me as a piece of "luxury engineering".

LM 400 corkscrew

Due to a recent mishap I needed a replacement screw for it.  I went to the Le Creuset website to find there were none in stock, but if I gave my email address I would be notified when they were available.  

When I tried to do so I found a bug on the site and it wouldn't accept my email address, so I emailed support to say what I was doing and what the error was.

Within hours, Catherince from Le Creuset phoned me.  She thanked me for my bug report, then told me that she had an emergency supply of spare screws and was sending one to me immediately, free of charge, to apologise for the inconvenience.

This is an example of one way great brands set themselves apart: by how they handle problems.  We relate to this in Dovetail, and aim to give customers the same warm feeling Le Creuset just gave me!


Delivering clean content

I will usually spend some time browsing UX blogs and I follow a number of design agencies that I feel contribute a lot to the UI/UI/WebApp community. They can be very inspiring and ideas for new techniques for enabling the end user can come from anywhere.

While reading the clearleft twitter feed, I notice they launched a new 'Channel 4 News' site, and I took a look at their portfolio page for more information. The portfolio page struck me as really simple, yet clear and the delivery of the content was bang on.

While there is a lot of text in the left column, it is seperated by paragraphs and different styles so the reader is not overwhelmed. This is a great way to deliver text content. By slowly bringing the user into the story. Content starts with a simple title, then quickly explains problem needing to be solved.

The core content is broken down with a bulleted list and a quote from a happy customer.

So all very nice, and it looks good, but what's under the hood? I presently surprised by the html code and how they achieved the quote and citation, as it looks really clean (and pretty).

Rather than the age old solution of using a few divs and slapping some spans in there for good measure, the guys went all semantic up in there!

<blockquote>
<p>The new site has given the whole newsroom at ITN a real lift and helped make the integration into a totally multi-media outlet work so much better.</p>
</blockquote>

<p> <cite class="vcard"> <span class="fn">Vicky Taylor</span>, <span class="role">Commissioning Editor News and Current Affairs</span> at <span class="org">Channel 4</span> </cite> </p>

They have used blockquote and cite to define the elements. So styles could be applied easily, and it also gives meaning to the content. This allows screenreaders (and search engines!) to make sense of the content and give it some context to it's eventual audience.

Even though we at dovetail are technologists, and spend more time editing code than content, it's important to know your audience and build for as many of them as possible.


AppPoolIdentity and Permissions in IIS7

One of the better features that came in IIS 7 was the automatic creation of separate application pools for each web site; this had to be done manually for each website in IIS 6. Furthermore, in IIS 7.5, the default application pool identity changed from NetworkService to AppPoolIdentity. Both of these changes were designed to improve process isolation by using separate user accounts for each application pool. It also meant that we do not have to manually create custom Windows user accounts for our application pools anymore.

All well and good. So how do we set folder permissions (ACLs) for these applications pools? This is done by setting folder permissions for the "IIS AppPool\[application pool name]" user, where [application pool name] is the name of the application pool in IIS.

SH_ 2011-09-27 14.5903

When in the Select Users or Groups dialog, ensure that machine name (Cabbage in my case) is selected for Locations and Built-in security principals is selected selected for Object Types, in order to find the application pool identity user.

SH_ 2011-09-27 14.5904


Boo to the Pedal-Powered iPhone Snatchers

Here in Dovetail we love cycling, and obviously we're all about mobile devices, but we are sad today to read about an unfortunate intersection of the two.

Conor Lally in the Irish Times writes today about GardaĆ­ dealing with a surge in gurriers stealing iPhones from their bicycles.  The recession must be driving the demand for hot luxury items.  Hopefully the increased use of GPS apps will help recovery rates.

Iphonebikesnatch


Spam as Gaeilge

Today I received spam written in Irish for the the first time.  It is for an Indian outsourcing development company (with some US contact details).  We get loads of these emails looking for strategic partnerships, but this one shows an unusual level of initiative. On the other hand it is naive to think the Irish version will be more successful than its English equivalent!

irish spam


HTTPS and remote content

The problem

About 90% of our customer applications use some form of payment system. This inevitably requires https in part or all of your application. We try to limit https traffic to forms requesting personal data.

We also try to use a CDN for jquery, web-fonts etc, as it improves download speed and allows for better script caching on the clients browser.

So by requesting an external script via HTTP on page delivered over HTTPS, the user is often presented with something like the following:

HTTPS error

The solution

By removing the protocol (http: or https:) from the referencing url, the browser will automatically using the same protocol as the page being requested. For example:

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.8.0/jquery-ui.min.js"></script>

Be sure that the CDN will deliver the content over both https and http. At times the CDN will use a different URL (https://ssl.), so you will need to implement some server side logic if that is the case.

Browser Compatability

Having only discovered this little trick recently, I would have assumed it was not adopted by all browers yet. It is, however, part of the web standards and should therefore be a valid url in all modern web browsers ( Stackoverflow Discussion).


The rise of Javascript

Way back when ASP.Net was first released, many web developers saw the postback as a replacement for JavaScript. Back then, it was easy to hate JavaScript, with its unfriendly DOM and its different behaviour in the various browsers. However, the launch of GMail demonstrated to internet users how a rich UI could be delivered over the web, and JavaScript was the essential component in most Web 2.0 applications.

With the growth of cloud computing, JavaScript powered web apps are becoming more common. Even Microsoft are introducing JavaScript+HTML5 apps in Windows 8. With transcompilers, developers can create JavaScript code using a different language, and with Node.Js, JavaScript is being used outside of its traditional web browser home.

JavaScript, it seems, is here to stay. Below are a few interesting JavaScript related links for further investigaton:

  • JQuery - Needs no introduction. Essential for web development
  • KnockoutJS - Dynamic JavaScript UIs using the MVVM (Model-View-View-Model) pattern
  • Node.js - Event driven IO server-side JavaScript environment
  • CoffeeScript - a little language that transcompiles into JavaScript
  • ClojureScript - Clojure to JavaScript transcompiler
  • Titanium Mobile - Create native IOS/Android apps in JavaScript