Useful stuff #2

I had intended these to be far more regular than this, must try harder. A mixture of tips/tools/reviews/articles that you’ll hopefully find useful, I did.

Content is king

I have pulled this post out from the archives of my personal blog, I originally wrote it towards the end of 2009 (I think), I believe it still holds true:

“‘Content is king’, how many times have you heard that? Well when it comes to the web, in my experience, it is pretty much a universal truth. The worrying thing is how few businesses seem to realise this, and even if they claim to, how many of them act on it?

This follows on, in some respect, from my earlier post about “design for design’s sake“. There I mused about the appropriateness of design vs what the client/designer ‘thought was best’. The idea of having good, strong, useful and appropriate content follows on from that. Too many businesses seem to think that their web presence starts and ends with simply having a web site or twitter account or facebook page or blog. But this simply isn’t enough, in fact I’d go so far as to argue that having a presence on these platforms (or indeed any presence on the web) and then not using them is worse, and more damaging to your brand, that not having one at all.

People need to realise that having any one of the presences i’ve mentioned above (and all the others I haven’t) requires a commitment in time and thought. Simply registering a facebook fan page for your company, filling it with little or useless information, inviting all your friends to become a fan and then promptly never updating it displays a lack of understanding of the medium and has little or no positive outcome. Content is king, and never updating your content renders it useful to practically no-one.

I’ve encountered this a couple of times recently, with clients enthusiastically asking for bespoke blogging solutions and help with their facebook presence. I am all in favour of this, if done right. Whenever a client asks me about social media I provide them with a bit of a ‘how-to’ guide for each of the main channels/platforms, this outlines the type of content that would be appropriate (and some examples), how much time the particular platform requires (e.g. twitter=at least daily), how these platforms can be managed, examples of the types of interactions that can take place and an idea of the likely outcomes for their business.

All too often you see people painfully trying to shoehorn completely unsuitable content into an equally unsuitable platform. You need to, as mentioned in the post linked to above, consider your audience, consider what they want to find out and why they came to you via whatever platform you’re addressing them on. You must produce useful, regular, engaging content or quite simply – don’t bother”

White label app development

Someone sent me a link to the Royal Opera House’s app the other day (http://itunes.apple.com/gb/app/royal-opera-house/id449056230?mt=8), interesting – does all the things an app should do i.e. presents content, listings, allows you to buy tickets (to a degree).

I then did a bit of research into the app developer, CloudTix, it would seem they have developed very similar (the same) app for a number of arts organisations. Further research confirmed my hunch that this is a white-label product, specifically for organisations using the Tessitura ticketing system – details here http://cloudtix.com/.

This chimed with a thought I had the other day (quite possibly whilst at the AMA Conference). Why can’t this approach by picked up more widely? Ultimately the requirements for many arts organisations are, when it comes to an app, whilst not identical, very similar in function at least e.g. sell a ticket, display event listings, deliver content, allow user to share/engage. When it comes to the slightly more complex issue of selling a ticket there are only a certain number of ticketing systems that are widely used – develop something that does the basics well, can connect with the ‘main’ ticketing systems and is developed for platforms other than just bloody Apple devices (Android’s market share is almost 39% at the last check compared to 18% for the iPhone).

Surely a project like this, funded by the Arts Council, would remove a lot of the fear-factor for arts organisations when it comes to developments such as this. Apps are expensive, they are easy to get wrong and to do them properly you need to develop for multiple platforms (i would say at least Android and iOS). A properly, carefully developed white-label solution could be relatively easily rolled out throughout the sector and allow organisations to properly consider, or at least start to consider, the explosion in the mobile web. Even better – make it a true open source project, properly engage with the digital community and get something that starts by doing the basics well and gets better and better without turning into a black hole for funding.

I still don’t believe that apps are the be all and end all, it’s just as (probably more) important to consider how your digital offering (i.e. website) is delivered to mobile devices. There needs to be a recognition that you cannot just deliver the same site to a desktop size screen as you do to a smartphone, the same content – sure – but not the same design and probably not with the same information hierarchy. My preferred route is carefully considered responsive design.

Thoughts, as ever, welcomed.

QR codes

People in the UK seem to be getting more and more excited about QR codes. When I say ‘people’ I really mean ‘companies and brands’, I’m convinced that for ‘people’ the use of QR codes at present is either baffling, goes unnoticed or is mildly irritating.

If you do want to mess around with QR codes a really (REALLY) easy way to generate them for specific urls can be found by simply following this url: http://chart.apis.google.com/chart?chs=200×200&cht=qr&chl=XXXX where I’ve put the XXXX you simply need to type the url you want to create a QR code for.

Anyway, back to why I’m unconvinced by the way QR codes are currently used.

History

To start, here is a brief (probably inaccurate) history of the QR code, they were first used widely in Japan in the early 90′s where I’m lead to believe that they are now fairly ubiquitous and widely used in campaigns, they spread to South Korea and (apparently) the only inroads they’ve made into Europe has been in the Netherlands. QR (Quick Response) codes are basically a form of barcode, capable of representing up to 4,000(ish) alphanumeric characters or about 3,000(ish) bytes of binary data. Typically the information represented will be a specific URL or small pieces of information – a message or similar.

Apparently they were first used to track parts in vehicle manufacture (thanks Wikipedia!).

When done well, they work

When they’re used creatively they can be an interesting and engaging way to connect physical materials with a digital facet of a campaign, e.g. http://mashable.com/2011/07/23/creative-qr-codes/ but more often than not they are simply plonked on a brochure or leaflet instead of an explicit url. When used in this way I can see absolutely no reason for using QR codes instead of a url. QR codes are not human-readable, urls are.

Seb Chan demonstrated a number of properly integrated ways of using QR codes in his keynote at the AMA Conference last week, specifically use in exhibitions as a way to access more, related content to extend the museum experience. He showed that when the displaying of QR codes is considered as a part of the exhibition design then the codes can fit in without looking like weird, ugly stickers. He also emphasised that they did have to explicitly say how to engage with the codes.

When done badly, they suck…a lot

However, the application of QR codes in this sort of careful, considered and integrated way is rare (in my experience). Too often you see a code incongruously placed at the bottom of an advert or on a billboard with absolutely no explanation as to how to use the code or what it’s going to show you. Although this technology is commonplace in some parts of the world in the UK most people have absolutely no idea what they are or how to use them. They aren’t going to automatically understand that they need to scan the code and they will then be shown something relevant or interesting on the device they’ve scanned the code with, in fact most of them probably don’t even know that they can scan the codes with their phone.

And that brings me onto another point, phones. The vast, vast majority of people who do scan your QR codes will do so via a mobile device (i.e. their phone), have you considered that when designing where the code will take them or what it’ll show them? Are you trying to take them to a the url of a page that hasn’t been designed with mobiles in mind or are you trying to show them some content that just isn’t suitable to be delivered to a phone?

Be careful and considerate and it might just work

However, although as ever I’m sure I sound slightly grumpy about the whole thing, I do think that QR codes can be useful. If you consider how and where you’re going to display them, how you are going to encourage people to engage with them (and explain what they are) and carefully consider how and why you’re using QR codes to connect the audience with a specific part of your digital activity then I think that they are probably the best tool for the job.

Where can I see them being used effectively? Programmes/brochures/exhibitions – any situation when you can sensibly enhance the users experience by connecting them to the digital world – if it isn’t going to benefit the user then don’t do it, if it’s just going to link them from an advert to yet more advertising then forget it, you’re not doing anyone any favours.

Tips

If you want your QR code to be as readable as possible for a specific url then use a url shortener (e.g. bit.ly or tinyurl.com) as this will result less characters to represent which equals bigger ‘blocks’ in the code which means that whatever reader you’re using will ‘lock’ to the code more quickly. Also in print the code needs to be a certain size to be readable, below about 15mmx15mm some readers have trouble ‘locking on’ to a code, on posters the code needs to be much larger than this (hopefully this is obvious!). I’d recommend you test, test and test again.

Think about where you’re sending them (I can’t stress this enough) – e.g. if you’re sending the user to a video, is it accessible to devices that don’t support Flash, is it HD video – if so then most people probably won’t thank you for using their entire month’s worth of data allowance. If you’re sending them to a site then how does this look/work on a mobile device? What’s the user experience like?

Also, last but by no means least – think about when people will be seeing the QR code. On the tube? Yeah, they will have no signal then. On a plane? Yep, no phones will be turned on there either.

As always it’d be great to hear your thoughts, do you love/hate QR codes, have you seen any amazing/awful examples of their use? I’m really interested in how people respond to them, the vast majority of my (fairly tech-literate) friends either hate them or don’t understand them.

Stating the obvious

I realise this site is currently in a state of half-finished, basic, stripped back horribleness. It’s on my list of things to fix – I’ve wireframed a proper, new,  ‘finished’ version but haven’t found the time required to bring it to life. Hopefully in the next week or so this can change. Let’s say August will be the month of new things.

Useful links #1

Right, I’ve realised that I spend a lot of time reading ‘interesting stuff’ and thought it might be useful if I share some of the best things here on a semi-regular basis.

To start off with are some useful CSS things;

  • Nth-child CSS selector: http://css-tricks.com/useful-nth-child-recipies/
  • Check to see if things like nth-child CSS selectors are supported in a particular browser: http://caniuse.com/
  • Provides feedback on your CSS code: http://csslint.net/

Simplepie and integrating/parsing RSS feeds

Wow, how’s that for a snappy blog title!

Ok, I realise it sounds slightly dull but utilising RSS feeds can be a useful and relatively straight-forward way to include dynamic information within a site.

I’ve searched far and wide for various RSS integration tools and my favourite is by far and away a RSS parsing class written in php called Simplepie (http://simplepie.org/). Although this hasn’t been developed since version 1.2 was released in 2009 it remains the most straightforward and robust solution I’ve found.

Once you’ve downloaded and included the simplepie.inc file it’s so simple (excuse the pun) to use (here is a very good tutorial on how to set up a simple page featuring one feed). If you want to include multiple feeds there is some helpful info here.

But this is the best solution I’ve found to this particular problem – if you’ve got other solutions then please recommend!

Contracts, admin and all that jazz

I’ve recently been looking at all of the admin side of things, a boring but necessary task.

We have all had those jobs that have started to spiral out of control with new and completely ridiculous demands being placed on you left, right and centre or clients who have taken months and months to pay for work completed.

Good admin makes the fun parts of your job (designing and coding) far more straightforward and effective.

I’ve found a number of great articles that outline things far better than me:

I hope you found those of use, feel free to post your own suggestions.

Does your site take too long to load? Probably. So, how to speed it up?

“There is more to life than simply increasing its speed” (Gandhi)

Last week I was doing some speed tests on what I was expecting to be a relatively slow-load site that I’m working on, the results, whilst not completely shocking, were still surprising. The site was taking up to 8 seconds to load fully over a decent speed connection (and would’ve been much much longer over dial-up). This had been an issue that had been nagging away at me more generally for a while now so I thought it was probably time to look into how to address it.

“Delays under half a second impact business metrics”

I have been reading up on the tests that Google had conducted to see how long the average user would wait for a site to load before giving up and moving on (Bing also conducted similar tests). Their findings? Simple, if your site takes too long to load then you will lose traffic and damage the user experience. And by ‘too long’ we are talking in terms of milliseconds. When Bing and Google increased a server-side delay from 1000ms to 2000ms there was a 2.2% drop in user satisfaction (not too bad you’d say) but the ‘time to click’ increased from 1900ms to 3100ms. This second stat is probably the most pertinent as it would indicate that a 1000ms slow down in server-response times results in the user becoming disproportionately unengaged with the site.

http://radar.oreilly.com/2009/06/bing-and-google-agree-slow-pag.html

I think something else to bear in mind is that if the user does decide to stick with your site, and this level of site-reponse is repeated page after page (or even more slowly) then it would not be too much of a leap to assume that the user satisfaction would start to drop even faster as their frustratingly slow experience exacerbates things.

You’ve lost their attention, how do you get it back?

So, we’ve decided that a slow-loading site is a bad thing? Cool. There seems to be a consensus that the quickest way to get your site to load quicker is to get the file size of the site’s assets down, which may seem obvious but it would seem that not enough people do it, and even those that do (of which I thought I was one) probably aren’t getting things as compressed as they could be.

Efficient (and small) CSS

I’ve never been a huge fan of massively compressing my CSS files. I find the process of stripping out all the white space (line breaks etc) irritating as, in my opinion, it renders my CSS almost unreadable if I ever want to go back and edit it.

To assuage my guilt about never really super-compressing my CSS I read several articles about making my CSS more efficient. It made interesting reading and has changed my coding practices. Perhaps the two most useful things that I learnt about making CSS render efficiently were:

  • CSS reads right-to-left. e.g. with #nav li a – a is the “key selector” i.e. the element being selected, then li, then the id #nav
  • “There are four kinds of key selectors: ID, class, tag, and universal. It is that same order in how efficient they are.”
    • #main-navigation {   }      /* ID (Fastest) */
    • body.home #page-wrap {   }  /* ID */
    • .main-navigation {   }      /* Class */
    • ul li a.current {   }       /* Class *
    • ul {   }                    /* Tag */
    • ul li a {  }                /* Tag */
    • * {   }                     /* Universal (Slowest) */
    • #content [title='home']     /* Universal */

There is more on this subject in this excellent article http://css-tricks.com/efficiently-rendering-css/. However I would say that the two points I’ve highlighted above are the basis to making your CSS render as efficiently as possible.

An important point to remember, as the article states, is “So we know that ID’s are the most efficient selectors. If you wanted to make the most efficiently rendering page possible, you would literally give every single element on the page a unique ID, then apply styling with single ID selectors. That would be super fast, and also super ridiculous. It would probably be extremely non-semantic and extremely difficult to maintain. You don’t see this approach even on hardcore performance based sites. I think the lesson here is not to sacrifice semantics or maintainability for efficient CSS.As with every ‘best practise’ you also have to use a modicom of common sense, there is no point in taking a good way of working and applying it in a ridiculous way (sorry if this seems like stating the obvious but I think it is an important point to remember).

Compress that CSS

Now it is an unanswerable argument that compressed CSS is smaller. I outlined above why I’m not a huge fan of this method but it is unavoidable if you want to seriously address your site’s load time. There are, as always, a huge amount of ways you can go about compressing your CSS.

There are a number of online tools that’ll do it for you:

You can look into gzipping your CSS file:

There is an article here about using gzipping on the whole site to speed things up: http://betterexplained.com/articles/how-to-optimize-your-site-with-gzip-compression/

Last but not least there seem to be a few ways to compress your CSS file using PHP:

Images, beautiful but deadly

Images make your site look better right? They allow you to use cool fonts as headers (although there are better ways of doing this, here’s one http://www.font-face.com/), they often form the basis of swanky looking navigation and layout elements and more and more often large imagery is used to provide a visual impact that wouldn’t be achieveable with another type of element (http://webdesignledger.com/tips/web-design-trends-for-2010).

The trouble is, images take up space and they take up even more, unnecessary space if you’re using the wrong file format.

Image file formats. What? Where? When? Why?

The three most commonly used, and widely supported, image file formats on the web are .jpg, .png and .gif. You should be using all 3 of these file formats in your designs, they each have a reason for being there. If you use the right format for the correct purpose then you will have a more efficient site.

  • GIF – 8-bit, lossless but limited to 256 colours so are bad for photos. However they do allow single-bit transparency so you can make 1 of the 256 colours that it does render transparent. GIFs are great for block-colour elements such as logos and navigational elements.
  • JPG – 16-bit, capable of millions of colours and designed specifically for photos. However lacks some of the capabilities of GIFs such as transparency and animation. Can be compressed but the compression is lossy and once over about 50% results in noticeably reduced image quality. Should really only ever be used for photos.
  • PNG – comes in 8-, 24- and 32-bit formats designed with the web in mind. The 8-bit format is very similar to GIF in that it supports 256 colours and 1-bit transparency, in addition file sizes are likely to be slightly smaller than GIF equivalents as PNG saves it’s colour data more efficiently. The 32-bit version (named, unsurprisingly PNG-32) allows a similar range of colours to JPG but also offers alpha-channel transparency. Rather than only being able to specify one colour as transparent or not PNG-32 allows you to specify the transparency of every pixel on a sliding scale (from 0-255)…the only drawback being…IE6 doesn’t support alpha transparency (surprise, surprise). I wouldn’t recommend using PNG for photos as the file size is likely to be fairly huge in comparison with a JPG equaivalent (due to the PNG being 32-bit and being a lossless format).

So, to summarise, what should you be using and when?
JPG – to be used for photos, be aware that if you try to reduce the file size by upping the compression then anything beyond 50% compression results in noticeable reduced image quality.
GIF – can be used for simple elements, logos and navigation – although remember that PNG-8 could be an alternative.
PNG – comes in 8, 24 and 32 bit formats (and the file sizes increase with each). 8-bit could be used as an alternative to GIF. 32-bit offers alpha channel transparency which could be useful for design or navigational elements where more sophisticated transparency is required. However always bear in mind that the 32-bit version is the largest file format mentioned here and consider whether or not a GIF or 8-bit PNG could be used if less sophisticated (e.g. one-colour) transparency is required.

As I mentioned previously these guidelines should be considered as just that, guidelines. Don’t take them as hard and fast rules that should be applied as rote to every situation. However I do think that being aware of what each file format was designed for allows you to make more informed choices.

Image optimisation

My final word on images, if you are using an editing package such as Photoshop or Fireworks, make sure that you always export your images (whatever format they’re in) as optimised for the web. This process strips out all of the completely unnecessary meta-data that these programs include as standard and noticeably reduces your image file size.

HTTP requests, and how to reduce them

Every time you include an element that isn’t hard-coded into your page file (e.g. by linking to include an external file) you are introducing a new http request to your server. Whether this is linking to a css or js file or including an image.

If you are including 5 js files in your file then this is 5 http requests, add into this however many images your file includes, at least 1 css file and you’ve probably got at least 10 http requests per page. Unsurprisingly the more http requests you have, the slower your page will load. So, how do you reduce them? Simple, combine elements. Whether this is combining your multiple css or js files into one master file (and then ensuring that is written efficiently and compressed) or combining your images by using sprites (info on sprites here http://css-tricks.com/css-sprites/ and here http://www.fiftyfoureleven.com/weblog/web-development/css/css-sprites-images-optimization)

And finally

I hope the methods I’ve outlined above prove to be useful to you, if anyone else has any other thoughts on how to optimise your website for faster loading then please comment!

I think that all of the methods outlined here are relatively straight-forward and could be easily incorporated into your processes. Things like writing efficient CSS and javascript and then optimising those files, using the appropriate image formats and reducing http requests are all quite easy things to do and will have a noticeable impact on the file size and speed of your sites.

I am aware there are even more methods that you can utilise to optimise your site, and would be interested to hear if anyone thinks they should’ve been mentioned here. I aimed to provide a good and manageable starting point and I hope I’ve done that.

Thanks to the following articles (all of which are worth a read)

Back, if not in black then at least with tanlines

I have returned from my little driving trip across Europe following some cyclists (www.istanbultoleeds.co.uk).

And I’m straight back into things, working towards getting the final signoff on Will Soden and Pickles and Potter’s sites.

I’m also in the final phase of populating the new site for Run For All. The new site will see a complete redesign and markedly increased functionality, I’m very excited.

So, back to work, a more useful blog will follow in the next week or so.