Posted by Tim / March 31, 2009, 10:53 am
Making great websites is all about consistency of experience for the majority. Graceful degradation is an important process that should influence all stages of a project.
One little-understood variable with design and online image publishing is colour profiling. Every screen uses a colour profile so it is an important aspect to understand. I have read many confused discussions online this week about images being filtered and ‘washed out’ by Photoshop’s ‘Save For Web’ function. This is not voodoo nor a bug.. In this post I will try to clean a path to the holy grail: Mastering your colour profiles. Designers and image-cutter-outers take note!
1) Before discussing Photoshop, we need to set our computer’s colour profile correctly. This is to achieve a profile which is on average with the majority of computer users – a standard. In System Prefs/Displays/Color, calibrate a new profile, setting the gamma to 2.2 (macs default at 1.8) and the white point to D65.
2) Now open Photoshop, and a new document. In the dialogue box, click Advanced and change the colour profile to “sRGB IEC61966-2.1″. This is the most common colour profile used by PC displays (and unfortunately lacks colour information compared to others such as Apple’s or Adobe’s RGB.)

3) Design!
4) When happy, cut out and File / ‘Save For Web & Devices’ – I’m presuming we’re saving out as a JPG. It shouldn’t make a difference if ‘Convert to sRGB’ is checked (as your document is already), but I usually just leave it ticked. ‘Embed Color Profile’ is used for colour managed applications, which although is not common currently, it is being added to more modern browsers (as an option in Firefox 3 and used in Safari 4). There are good reasons not to use it though, as currently no browsers embed ICC profiles into code. Any coloured html borders will not match ‘identical’ coloured images. It also adds a few kilobytes to each file, which on image-driven sites may choke dial-up users, and add up to extra hosting costs on popular sites.
- If you are sending your PSDs to someone else to cut-out/tweak, make sure your document colour profile is embedded (in save as box) and a smiley email asking that they do not override your sRGB setting (possibly with a link to this post). In my experience the majority are blissfully ignorant to this knowledge and use the default, usually Adobe RGB.
Lots of cool extra reading and demos at: http://www.gballard.net/psd/cmstheory.html
No Tags
Posted by Mark / , 10:32 am

Mousey
This morning we found this little guy running around our office. After a chase under the desks, I managed to retrieve it with a DVD bundle case. Not wanting to be cruel, I decided to take it down the stairs and let it run free, and that’s when it all went wrong. 30 seconds into its freedom, the little one (baptised Mousey) went into the first hole it could find — the gutter drain. I could see his little body trying to swim back in vain, so I put my hand in the mucky water and found his tail to bring it back to safety, Mousey was going mad, slowly trying to walk and falling over on it’s back. Not knowing mouth to mouse first aid, I helped him get upright and left him still breathing in a safe place. Sadly it wasn’t to be and when I came back Mousey was dead. He’s now buried in a shallow grave in a flower pot.
A sad story that makes you realise you should be happy to be eating your cheese tonight.
No Tags
Posted by Mark / March 25, 2009, 5:56 pm
I spent most of last week in Austin, Texas for SxSW: Interactive, where I was lucky enough to sit in on a panel with some pretty bright dudes from The Barbarian Group, Preloaded, The Secret Location and Stitch Media. The panel was called “The Future Of Visual Storytelling Is Interactive… Or Is It?” and contained some pretty cogent thinking about exactly what the future holds for non-linear narrative, filmmakers, storytellers, and the web. I was all prepared to come back here and do a bit of a post-mortem for those who missed it, but then I saw this:

… which does a better job summing things up than I ever could.
The sketch was done by the awesome Austin Kleon. Check out his Flickr stream for more SxSW summaries.
No Tags
Posted by Marcel / , 5:39 pm
As part of a current project, I’ve implemented a Synonym Filter for our Zend Search Lucene build. I based it on Kenny Katzgrau’s really good Stemming code, which explained in this post on his blog and available here.
The idea is simple: if you want to search for ‘kylie minogue‘, but you mistakenly type in ‘kykie‘, your search query won’t match the tokens in the search index, and you won’t get any results. If you have a Synonym filter, and if someone’s gone to the trouble of entering a piece of information to the effect that ‘kykie‘ should be read as ‘kylie‘, then your search will return results after all.
I’ve made my code available here as the latest version, here as version 0.1 (currently the same thing) as a zip archive, and included Kenny’s code – mostly because it’s really useful.
I think I might have been a bit oversimplistic, but I started out trying to write a new tokenizer method in a custom Analyzer, so that all the synonyms would be tokenized in the same way.
It then occurred to me that a much simpler way to achieve the same result would be to pre-process the search queries, adjusting any synonyms before running the rest of the query, and so that’s what my code does. It’s written as a Token Filter so that it can easily be added into the queue of filters used when the index is being built, but I’m not sure that’s even necessary.
Current limitations I’ll be working to improve are that the synonyms need to be entered into the class itself rather than being imported from another source (which would be easier to update), and that there is no automatic guessing for synonyms (like an algorithm to figure out that the term is not in a dictionary but is only 1 letter away).
Let me know if you find this of any use, or if you have any feedback!
Posted by Marcel / , 1:06 pm
As a technical and (I like to think) fairly responsible web user, it pains me to see the amount of effort spyware manufacturers put into getting their Warez downloaded. I’m sure it’s nothing new, but while searching for help on a (what turn out to be a Flash Player for Safari) bug, I noticed all the paid search advertising for the first time.

AdSense's dodgy content
On this screenshot it’s only down the right hand column but I noticed it on my first search because it was front and centre in the featured ads slot. Notice that any search with ‘Error’ is likely to bring up a host of these ads, and that they promise to ‘Repair Error XXXX Instantly! Free Download. 100% Guaranteed’.
My first reaction was to click a link reporting the ad to Google – but there wasn’t one. Why not? Google AdSense had T&Cs and a code of conduct that I’m reasonably sure these guys would be in breach of; so why is there no crowdsourced verification of suitability?
No Tags
Posted by Marcel / March 24, 2009, 12:56 pm
I’ve been playing with the new beta of Apple’s iPhone software after being wowed by the announcement. I’ve previously posted on my personal blog about all the features the iPhone developers annoyingly managed to miss out on – none of these were game changers certainly, but for me they were no-brainer opportunities to give the iPhone features that every other phone on the market has as a matter of course.
The new OS seemed to address about 70% of those annoyances and give a lot more (and the new APIs are certainly exciting from a developer point of view; we’re going to be seeing some great new apps that’ll cleverly get a load more money out of us) – so I downloaded it as soon as I could.
My initial impressions are slightly disappointing. I’m so used to living with the lacking features that I haven’t really noticed some of them being back in place; and others are still missing.
Something that is really noticeable is the extra load it’s placed on the hardware – my phone has visibly slowed (sometimes to such a crawl that I have to keep restarting the app in question as I can’t tell if it’s crashed or not) – and the extra hit my battery life has taken.
It’s hard to measure battery life properly, and it may just be down to my most recent addiction (Eliss), but it certainly feels like a day is at the outer limits of battery, whereas I could usually squeeze two days out of it before if my usage was low.
I’ve also found a couple of really small bugs (this is a beta after all) but let’s hope the performance gets a massive boost before launch in the summer….
No Tags
Posted by Mark / March 12, 2009, 11:44 am
This is not the first time I’ve banged on about how we as advertisers should be looking at the game industry more closely than ever.
A couple nights ago, the BAFTA announced its 2009 winners. Most of the games were either about Storytelling (Fable II, Dead Space) Casual Games (Boom Blox, Rock Band) or combination of both (Super Mario Galaxy, Layton). My definition of a great advert, meanwhile, is good storytelling for a casual audience — see what I’m getting at? Why don’t we see any more crossover between the ad industry and the video game industry? I am more than aware that the type of storytelling and the audiences are different — I’ve worked on both sides — but there are skills people in both camps have that could bring a lot to each other. The gaming community could bring their technology to create great interactive content and break new ground (I’m not talking about Burger King) while the ad people could bring their knowledge about how to captivate an audience in a short space of time, so that gamers wouldn’t have to spend hours watching Metal Gear Solid cutscenes.
Anybody up for a pub meeting of the minds?
No Tags
Posted by Vincent / , 11:37 am
Having been invited repeatedly to renew a domain name I own and manage at networksolutions.com, I finally succumbed and moved to actually make the renewal. The emails from Netsol themselves are fine: no thrills, and provide the requisite information, but they mask the reality of the actual renewal process itself.
To my mind, the act of turning a renewal / checkout process from one step into four or five is pretty devious. And when you provide buttons that add products to the final total when the “no thanks” option is merely a small text link to the right or below the button, that’s even more questionable. For me, it’s nothing more than plain annoying to have to navigate this veritable assault course of unnecessary web pages, but for a non-technical person the completely unnecessary step-by-step process could really hit them where it hurts, in their pocket, inadvertently buying useless WHOIS advertising, transferring web hosts and whatever other crafty schemes Network Solutions can use to juice you. As if it wasn’t bad enough that their year renewal fees are about three times too expensive!
When designing a process, you should aim to make it as streamlined as possible, reduce the number of steps and the number of required fields, reduce the hurdles as much as possible, and create a clean, concise and uncluttered interface. Web users thrive on low input, non-intrusive forms that ask for nothing more than the bare minimum, and that quickly and easily answer the questions in their mind when they’re stuck. Use the conventions that people are used to with forms. With web 2.0 and the surge of web applications such as blogs, content management systems and business applications, there is plenty of fodder out there in terms of best practices to draw on. Reinventing the wheel for every project needn’t and shouldn’t be an option.
And if inviting a user to checkout, simply put, let them do it.