<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Erskine Labs feed</title><link>http://erskinelabs.com/feed/</link><description>Erskine Labs' latest entries</description><language>en-gb</language><lastBuildDate>Tue, 08 May 2012 17:25:00 +0100</lastBuildDate><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/erskinelabs" /><feedburner:info uri="erskinelabs" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><title>Calculating EMs with SCSS</title><link>http://feedproxy.google.com/~r/erskinelabs/~3/0HhFEshtxaQ/</link><description>&lt;p&gt;Earlier this year &lt;a href="http://erskinedesign.com/"&gt;Erskine&lt;/a&gt; made the switch to &lt;a href="http://sass-lang.com/"&gt;SCSS&lt;/a&gt; and I&amp;#8217;ve really loved what its done to our front-end workflow. One thing I&amp;#8217;m particularly fond of is how &lt;span class="caps"&gt;SCSS&lt;/span&gt; has improved how we&amp;#8217;re calculating EMs.&lt;/p&gt;

	&lt;p&gt;&lt;img src="http://erskinelabs.com/media/images/content/entries/ems_scss/EL55-hero.png" alt="" /&gt;&lt;br /&gt;h2. The olden days&lt;/p&gt;

	&lt;p&gt;Before &lt;span class="caps"&gt;SCSS&lt;/span&gt; we&amp;#8217;d simply make our EM calculation and leave a comment explaining where that number came from off to the side. This worked fine, but could be time consuming and was a nightmare when adjusting things like, say, our base-font.&lt;/p&gt;

	&lt;p&gt;Here&amp;#8217;s an example:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;h1 {
    font-size:1.875em; /* 30 / 14 */
}
&lt;/code&gt;&lt;/pre&gt;

	&lt;h2&gt;Using &lt;span class="caps"&gt;SCSS&lt;/span&gt; for calculations&lt;/h2&gt;

	&lt;p&gt;To calculate EMs with &lt;span class="caps"&gt;SCSS&lt;/span&gt; we have a few options; using the basic number operations or definining our own function, to name a few.&lt;/p&gt;

	&lt;h3&gt;Basic number operations&lt;/h3&gt;

	&lt;p&gt;Using basic number operations we can drop the commenting that is needed with standard &lt;code&gt;CSS&lt;/code&gt; and used the code as documentation. This is the technique we originally used when we switched to &lt;span class="caps"&gt;SCSS&lt;/span&gt;. This works, but we can do much better:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;h1 {
    font-size:(30 / 14) * 1em;
}
&lt;/code&gt;&lt;/pre&gt;

	&lt;h3&gt;Defining our own EM calculation function&lt;/h3&gt;

	&lt;p&gt;&lt;span class="caps"&gt;SCSS&lt;/span&gt; has tons of built in functions for common calculations, and we can even make our own. Here&amp;#8217;s a function we&amp;#8217;re using to calculate EMs, which is a modification of one we found in &lt;a href="http://thesassway.com/"&gt;The &lt;span class="caps"&gt;SASS&lt;/span&gt; Way&lt;/a&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;@function em($target, $context: 14) {
    @return ($target / $context) * 1em;
}
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;This function takes 2 variables, &lt;code&gt;$target&lt;/code&gt; and &lt;code&gt;$context&lt;/code&gt;. &lt;code&gt;$context&lt;/code&gt; is optional, as it defaults to &lt;code&gt;14&lt;/code&gt;, our base-font. Now lets rewite our example using our new function:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;h1 {
    font-size:em(30);
}
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;This is the same as saying &lt;code&gt;(30 / 14) * 1em&lt;/code&gt; but now we don&amp;#8217;t have to repeat ourselves all over the stylesheet.&lt;/p&gt;

	&lt;p&gt;But wait, this can be taken a step further.&lt;/p&gt;

	&lt;h3&gt;Adding variables to our EM calculation. Vuala!&lt;/h3&gt;

	&lt;p&gt;We can modularise this process more by defining default variables for our base-font size, heading sizes, etc. With these in place, tasks like &amp;#8220;adjusting the base-font&amp;#8221; can be done in a matter of seconds.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$basefont:14;
$baseh1:30;
&lt;/code&gt;
&lt;code&gt;@function em($target, $context: $basefont) {
    @return ($target / $context) * 1em;
}
&lt;/code&gt;
&lt;code&gt;h1 {
    font-size:em($baseh1);
}
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Beautiful. Checkout the &lt;a href="https://github.com/erskinedesign/ed.ultimate_package/blob/master/web/static/scss/_config.scss"&gt;&lt;span class="caps"&gt;SCSS&lt;/span&gt; config file in Erskine&amp;#8217;s Ultimate Package&lt;/a&gt; for more examples of how you can take advantage of default variables in &lt;span class="caps"&gt;SCSS&lt;/span&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/erskinelabs/~4/0HhFEshtxaQ" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Garrett Winder</dc:creator><pubDate>Tue, 08 May 2012 17:25:00 +0100</pubDate><guid isPermaLink="false">http://erskinelabs.com/calculating-ems-scss/</guid><feedburner:origLink>http://erskinelabs.com/calculating-ems-scss/</feedburner:origLink></item><item><title>Announcing erskinedesign.com v3</title><link>http://feedproxy.google.com/~r/erskinelabs/~3/ZSrilhuLi-8/</link><description>&lt;p&gt;This year marks Erskine&amp;rsquo;s seventh birthday. It&amp;rsquo;s also been three long years since we last &lt;a href="http://www.alistapart.com/articles/erskine-design-redesign/"&gt;refreshed the Erskine site&lt;/a&gt; and a lot has happened. Some of the faces have changed but our ethos remains the same: to build superlative websites with thoughtful design and ingenious technology.&lt;/p&gt;&lt;a href="http://erskinedesign.com"&gt;&lt;img src="http://erskinelabs.com/media/images/content/entries/ed3/1.png" width="520" height="378" alt="Erskine Design v3" /&gt;&lt;/a&gt;&lt;p&gt;As an agency we&amp;rsquo;ve grown and evolved, adding two outstanding brand and print designers (&lt;a href="http://erskinedesign.com/about/team/daren/#team"&gt;Daren&lt;/a&gt; and &lt;a href="http://erskinedesign.com/about/team/barry/#team"&gt;Barry&lt;/a&gt;), along with our new expert marketing strategist (&lt;a href="http://erskinedesign.com/about/team/iain/#team"&gt;Iain&lt;/a&gt;) to our web team, providing a comprehensive service. We needed our new site to reflect this growing maturity and better explain the range of work we can undertake.&lt;/p&gt;&lt;p&gt;The process hasn&amp;rsquo;t been easy. If you work at an agency, you&amp;rsquo;ll probably agree that developing a new site at the same time as delivering client projects is a challenge. Prototypes can languish for months before being ditched and the whole process re-started. Some agencies go to great lengths to get their new sites shipped. Recently we watched with interest as &lt;a href="http://happycog.com/"&gt;Happy Cog&lt;/a&gt; gathered their team together and built a new site in a week. &lt;/p&gt;&lt;p&gt;We gave the design and build of our new site the same priority as other commercial projects. How did that work out? Well, with mixed success. Deadlines inevitably got buffeted by client work, but we got there in the end.&lt;/p&gt;&lt;p&gt;We&amp;rsquo;ve tried to keep the site as direct as possible, both in its design and its content. The main objective was to create a site that clearly communicates our services and experience to potential clients and we&amp;rsquo;re pretty pleased with the way it&amp;rsquo;s turned out.&lt;/p&gt;&lt;h2&gt;A quick look under the hood&lt;/h2&gt;&lt;h3&gt;Responsive layout&lt;/h3&gt;&lt;a href="http://erskinedesign.com/portfolio/"&gt;&lt;img src="http://erskinelabs.com/media/images/content/entries/ed3/2.png" width="521" height="205" alt="" /&gt;&lt;/a&gt;&lt;small class="caption"&gt;Portfolio page layouts&lt;/small&gt;&lt;p&gt;We started with a completely fluid layout, adding &lt;abbr title="Cascading Style Sheets"&gt;CSS&lt;/abbr&gt; media queries on top in a &lt;a href="http://www.lukew.com/ff/entry.asp?933"&gt;mobile first&lt;/a&gt; approach. Older browsers such as &lt;abbr title="Internet Explorer 6"&gt;IE6&lt;/abbr&gt; get the fluid layout without media queries, but we add an extra rule applying a fixed width to the content wrapper. &lt;a href="http://blog.cloudfour.com/the-ems-have-it-proportional-media-queries-ftw/"&gt;EM-based media queries&lt;/a&gt; ensure that breakpoints are appropriate for the layout regardless of the font size.&lt;/p&gt;&lt;h3&gt;Homepage image tiles&lt;/h3&gt;&lt;img src="http://erskinelabs.com/media/images/content/entries/ed3/3.jpg" width="519" height="295" alt="Tiles at full-width" /&gt;&lt;small class="caption"&gt;Full-width layout&lt;/small&gt;&lt;img src="http://erskinelabs.com/media/images/content/entries/ed3/4.jpg" width="345" height="182" alt="Tiles at tablet width" /&gt;&lt;small class="caption"&gt;Tablet layout&lt;/small&gt;&lt;p&gt;The image tiles scale down eventually becoming a carousel at tablet width. The tile source images all have the same dimensions and are cropped, resized and positioned on the front-end.&lt;/p&gt;&lt;h3&gt;Scalable vector graphics&lt;/h3&gt;&lt;img src="http://erskinelabs.com/media/images/content/entries/ed3/5.png" width="519" height="255" alt="SVG and bitmap comparison" /&gt;&lt;small class="caption"&gt;Simple vector paths for icon on the left make this image ideal as an &lt;span class="caps"&gt;SVG&lt;/span&gt;. The bird on the right is better suited to a bitmap format due to its complexity.&lt;/small&gt;&lt;p&gt;We&amp;rsquo;ve used &lt;abbr title="Scalable Vector Graphics"&gt;&lt;a href="http://en.wikipedia.org/wiki/Scalable_Vector_Graphics"&gt;SVGs&lt;/a&gt;&lt;/abbr&gt; throughout the site for flat images such as icons. The file size of an &lt;span class="caps"&gt;SVG&lt;/span&gt; depends on how many points and curves the image has, so sometimes it makes more sense to use bitmaps instead. In order to get the icons as crisp as possible, they were created as vectors in Fireworks at their native size. They were then exported as SVGs using &lt;a href="http://fireworks.abeall.com/extensions/commands/Export/"&gt;Aaron Bell&amp;rsquo;s fantastic extension&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;We used &lt;a href="http://modernizr.com/"&gt;Modernizr&lt;/a&gt; to detect if the user&amp;rsquo;s browser supports &lt;span class="caps"&gt;SVG&lt;/span&gt; files, if not they are served a bitmap fallback.&lt;/p&gt;&lt;h3&gt;Bitmap image resolution&lt;/h3&gt;&lt;a href="http://erskinedesign.com/404"&gt;&lt;img src="http://erskinelabs.com/media/images/content/entries/ed3/6.png" width="520" height="255" alt="Image resolution detail" /&gt;&lt;/a&gt;&lt;small class="caption"&gt;Comparison of &lt;a href="http://erskinedesign.com/static/images/site/404/404-bg_1x.gif"&gt;1x&lt;/a&gt; and &lt;a href="http://erskinedesign.com/static/images/site/404/404-bg_2x.gif"&gt;2x images&lt;/a&gt;.&lt;/small&gt;&lt;p&gt;The new generation of high resolution displays has created a need for high fidelity web graphics, but there&amp;rsquo;s no consensus on the best way to do it. Even Apple&amp;rsquo;s approach is far from perfect. We&amp;rsquo;ve done some &lt;a href="http://dl.dropbox.com/u/19272573/crisp-logos/index.html"&gt;experimenting and testing&lt;/a&gt; and will refine our approach as new standards develop.&lt;/p&gt;&lt;p&gt;Our stop-gap solution uses &lt;a href="https://github.com/adamdbradley/foresight.js"&gt;Foresight.js&lt;/a&gt; to check if the user&amp;rsquo;s device is capable of viewing high-resolution images before the image has been requested from the server. JavaScript is also used to assess whether the user&amp;rsquo;s device has a fast enough network connection for high-resolution images, helping to serve the appropriate image for the webpage.&lt;/p&gt;&lt;h3&gt;Built on Django&lt;/h3&gt;&lt;img src="http://erskinelabs.com/media/images/content/entries/ed3/7.png" width="521" height="329" alt="Django admin panel" /&gt;&lt;small class="caption"&gt;The Django admin panel&lt;/small&gt;&lt;p&gt;The site is built on &lt;a href="https://www.djangoproject.com/"&gt;Django&lt;/a&gt;, a high-level &lt;a href="http://www.python.org/"&gt;Python&lt;/a&gt; framework. We&amp;rsquo;ve been using Django on more and more of our projects. We love the fact that every feature in Django exists because it solves a real world problem and the way it encourages rapid development and clean, pragmatic design.&lt;/p&gt;&lt;p&gt;Because Django was born from the world of ridiculously tight deadlines in the news industry it enables us to build large, complex sites far faster than we ever thought possible. Content is managed with the Django admin panel, which we&amp;rsquo;ve customised.&lt;/p&gt;&lt;p&gt;We&amp;rsquo;ve made judicious use of &lt;a href="https://github.com/defunkt/jquery-pjax"&gt;PJAX&lt;/a&gt; on the News and About pages to provide a fast, fluid experience for users without a lot of unnecessary &lt;abbr title="Hypertext Transfer Protocol"&gt;HTTP&lt;/abbr&gt; requests and repeated rendering of unchanged &lt;abbr title="HyperText Markup Language"&gt;HTML&lt;/abbr&gt;.&lt;/p&gt;&lt;p&gt;Check out the all new &lt;a href="http://erskinedesign.com"&gt;erskinedesign.com&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/erskinelabs/~4/ZSrilhuLi-8" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phil Swan</dc:creator><pubDate>Mon, 16 Apr 2012 12:37:27 +0100</pubDate><guid isPermaLink="false">http://erskinelabs.com/announcing-erskinedesign-v3/</guid><feedburner:origLink>http://erskinelabs.com/announcing-erskinedesign-v3/</feedburner:origLink></item><item><title>Responsive design: stories from the coalface</title><link>http://feedproxy.google.com/~r/erskinelabs/~3/5jAF6zkahMA/</link><description>&lt;p&gt;Lately, the web industry has been preoccupied with responsive design. Questions, approaches and opinions abound. &lt;/p&gt;

	&lt;p&gt;Last Saturday we added to this ongoing conversation at the excellent &lt;a href="http://standards-next.org/" title="standards&amp;#62;next, Manchester"&gt;standards&gt;next&lt;/a&gt; in Manchester. Our brief was to deliver a frontline report from the coalface of the web industry about the ways in which responsive design is applied in a commercial agency environment.&lt;/p&gt;

	&lt;p&gt;&lt;img src="http://erskinelabs.com/media/images/content/entries/responsive-design-stories-coalface/sam_wil_standards_next.jpg" title="Sam &amp; Wil talk responsible, Responsive web design" alt="Sam &amp; Wil talk responsible, Responsive web design" /&gt;&lt;/p&gt;

	&lt;p&gt;Through our work with clients we&amp;#8217;ve come to realise there is an increasingly wide gulf between esoteric industry rhetoric and mainstream understanding. There is also an inconvenient truth that designing responsively can take more time and cost more money. Our argument is that a pragmatic approach to responsive design can be used in even the most cost sensitive projects, but we need to bring our customers with us.&lt;/p&gt;

	&lt;p&gt;Five years ago a supermarket charging for plastic bags would have been seen as commercial suicide. In this environment Marks &amp; Spencer introduced Plan A, a strategic approach to responsible business that carefully outlined the benefits and rationale of this new direction. Their plan, led by former &lt;span class="caps"&gt;CEO&lt;/span&gt; Sir Stuart Rose, was to remain &amp;#8220;half a step ahead of customers&amp;#8221;, no further.&lt;/p&gt;

	&lt;p&gt;As we vie for projects in a competitive environment where tough economic times have squeezed budgets, the web industry faces a similar challenge. We too must explain to customers the benefits of a responsive approach and be able to back this up with proper, credible evidence.&lt;/p&gt;

	&lt;p&gt;We also bear a responsibility to improve and streamline our working practices to reduce costs. This is one of the main reasons we developed &lt;a href="http://gridpak.com/about/" title="Gridpak, the responsive grid generator"&gt;Gridpak&lt;/a&gt;, our tool for rapidly creating responsive grid systems. The more cost-efficient we can make responsive development, the quicker it will be accepted and adopted.&lt;/p&gt;

	&lt;p&gt;We know Gridpak is not a one-stop, cure-all panacea; it was never designed to be. Like all tools it has limitations, but we believe it is a useful part of the responsive designer&amp;#8217;s armoury. As the field evolves further we will undoubtedly see a proliferation of similar tools and approaches. People will ultimately choose the ones that work best and fit their workflows.&lt;/p&gt;

	&lt;p&gt;Since launch, we&amp;#8217;ve added important features to Gridpak like the ability to adjust gutter widths and column padding in percentages as well as pixels. With our next release we&amp;#8217;ll introduce a more flexible approach to allow the creation of a wider range of asymmetrical grids, but we can go much further.&lt;/p&gt;

	&lt;p&gt;That&amp;#8217;s why we&amp;#8217;ve open sourced the Gridpak codebase on &lt;a href="https://github.com/erskinedesign/ed.gridpak" title="Gridpak on Github"&gt;Github&lt;/a&gt;. We’d love to see it become a truly collaborative effort where people get into the code and make their own improvements.&lt;/p&gt;

	&lt;p&gt;It&amp;#8217;s great that responsive design has gained such momentum within the industry, but at times our discussions can be a touch isolated and introspective. We shouldn&amp;#8217;t assume that because we think this is important clients will automatically follow suit. There is much more to be done to bring them with us.&lt;/p&gt;

	&lt;p&gt;Our slides are now available on &lt;a href="http://speakerdeck.com/u/erskinedesign/p/responsive-web-design-stories-from-the-coalface" title="Responsive design: stories from the coalface"&gt;Speaker Deck&lt;/a&gt;, and the audio will shortly be available from standards&gt;next as a podcast.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/erskinelabs/~4/5jAF6zkahMA" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Iain Harper</dc:creator><pubDate>Tue, 06 Mar 2012 13:48:13 +0000</pubDate><guid isPermaLink="false">http://erskinelabs.com/responsive-design-stories-coalface/</guid><feedburner:origLink>http://erskinelabs.com/responsive-design-stories-coalface/</feedburner:origLink></item><item><title>Surviving a social media storm</title><link>http://feedproxy.google.com/~r/erskinelabs/~3/Xo2hV4X0lF8/</link><description>&lt;p&gt;Here at Erskine we’re finding that our clients are taking more active control of their social media channels and integrating them directly with their website strategy. In the space of two years, mainly due to convergence around Twitter and Facebook, social media has gone from being a reasonably niche activity to an essential marketing and customer service tool for almost all organisations. One of the reasons I’ve joined Erskine is to help clients understand and make the most of the potential these channels offer.&lt;/p&gt;

	&lt;p&gt;!http://erskinelabs.com/media/images/content/entries/sm-sandstorm/socialmediastorm.png!We are increasingly asked to develop web applications that can be delivered on a variety of channels and platforms across both web and social media. For example, we recently helped WorldSkills London 2011 deliver a series of highly successful &lt;a href="http://ed2.erskinedesign.com/projects/world-skills-london/"&gt;Facebook campaigns&lt;/a&gt; that helped attract 200,000 visitors. &lt;/p&gt;

	&lt;p&gt;Getting instantaneous access to a global audience would have been unthinkable five years ago, but now we almost take it for granted. Social media can deliver powerful and surprising results, even for experienced marketeers.&lt;/p&gt;

	&lt;p&gt;But this power can also pose threats – it’s easier than ever for consumers to publicly voice their complaints en masse. Blackberry and Netflix are just two companies that have been caught up in a maelstrom of negative social media coverage in recent times.&lt;/p&gt;

	&lt;p&gt;Being at the heart of a social media storm is a pretty scary place to be. Much like a real storm, a social media storm rages violently, but for a limited time. As in real life, the damage left behind can be serious and lasting.&lt;/p&gt;

	&lt;p&gt;Last year in a previous role, I experienced a social media storm at first hand. Although fairly small in the general scheme of things, it was still a chastening experience that taught me some valuable lessons.&lt;/p&gt;

	&lt;p&gt;Here’s what happened: our media team issued a release with a deliberately controversial title, specifically designed to tempt jaded and cynical news outlets into featuring our project.&lt;/p&gt;

	&lt;p&gt;From a news coverage point of view it was an outstanding success, attracting the attention of a wide range of mainstream news outlets and major online news sites like the Daily Mail online (with the usual range of barking mad comments beneath the article).&lt;/p&gt;

	&lt;p&gt;At first it seemed as if our news “hook” (the controversial headline) had succeeded in attracting coverage without drowning out our main message, the real meat of the story.&lt;/p&gt;

	&lt;p&gt;But as the day progressed it became apparent from our social media monitoring that a significant negative sentiment was building up against the headline. This originated amongst a small group of specialist sector commentators who picked up the headline and commented negatively on it via Twitter. We were fortunate that our social media storm was fairly “low category”, and didn’t spread to other social media channels like Facebook.&lt;/p&gt;

	&lt;p&gt;However, the Twitter ripple from these individuals spread rapidly and within hours we were receiving a large number of negative comments. The sheer volume of tweets and the ability to monitor them in real time was a first for many in our team and therefore a real source of alarm. There’s something morbidly compelling about being able to watch things unfold in real time, like watching live action footage from a battlefield.&lt;/p&gt;

	&lt;p&gt;Throughout the day there were surges of activity as people scanned their timelines and picked up the story (or rather the negative spin on the story) and retweeted. It became apparent that many of the people retweeting were not reading the original story as one of the “versions” being retweeted linked to a broken &lt;span class="caps"&gt;URL&lt;/span&gt;.&lt;/p&gt;

	&lt;p&gt;Just as things started to abate and we were breathing a sigh of relief, a new “version” of the story reared it’s head. The spin this time was critical of a government minister (the project was partially funded by the government) and this gave the story a whole new lease of life as this “version” was picked up by a new network of individuals. Needless to say the minister in question wasn’t particularly happy.&lt;/p&gt;

	&lt;p&gt;And then, after almost exactly 24 hours, the storm blew itself out and comments dropped to almost nothing, leaving us slightly shell-shocked. The experience re-inforced what many companies are finding out the hard way – that social media cuts both ways.&lt;/p&gt;

	&lt;p&gt;A social media storm is a new kind of crisis that traditional media teams are not always well equipped to handle. Classic crisis communication techniques do not always lend themselves to the immediacy of social media; although some established rules hold true.&lt;/p&gt;

	&lt;p&gt;However, there are a few simple principles that will help you prepare for and weather a social media storm. These apply mainly to Twitter but have relevance for social media in general.&lt;/p&gt;

	&lt;h2&gt;Five ways to survive the storm&lt;/h2&gt;

	&lt;h3&gt;1. Monitoring is important, but it needn’t be expensive&lt;/h3&gt;

	&lt;p&gt;A surprising number of organisations still engage tentatively with social media monitoring and are oblivious of what’s being said about them. An entire ecosystem has sprung up to help organisations analyse and manage social media channels. Enterprise level products like Alterian or Radian 6 come with a high price tag, but you can achieve a fairly comprehensive level of monitoring with free products like Hootsuite or Tweetdeck.&lt;/p&gt;

	&lt;h3&gt;2. Social media has a tiny attention span&lt;/h3&gt;

	&lt;p&gt;When a social media storm is raging, it feels never-ending and all encompassing. The reality is that the attention span of social media is particularly short and generally measured in hours rather than days. If you can hold your nerve and respond pro-actively, the conversation will quickly move on.&lt;/p&gt;

	&lt;h3&gt;3. Don’t take it personally&lt;/h3&gt;

	&lt;p&gt;Seeing the name of your brand, product or organisation dragged through the mud is a horrible experience. Social media is anarchic, and if you’re at the centre of a storm much of the commentary will be unfair, innacurate and downright abusive. The temptation is to wade in and defend your honour, to reason with people, to tell them how wrong they are. You’ll need to resist that temptation and develop a thick skin, constantly reminding yourself that most comments aren’t heartfelt, and may simply be retweets where the person hasn’t even looked at the source material. The volume of comments doesn’t necessarily correlate to deeply held sentiments.&lt;/p&gt;

	&lt;h3&gt;4. Silence is not golden&lt;/h3&gt;

	&lt;p&gt;As with all crisis communications it’s very important to explain your actions, here social media becomes an asset again. If you maintain radio silence, others will fill in the blanks on your behalf. Netflix is a case in point. When it split &lt;span class="caps"&gt;DVD&lt;/span&gt; services into a separate business called Qwikster, and changed its pricing structure, social media channels erupted in outrage. Rather than responding quickly and clearly to this criticism, Netflix maintained complete silence for 24 hours. This is an eternity in social media and users were quick to mock this flat footedness; an @NetflixGlobalPR parody account was set up producing sarcastic comments like, “Really hoping Hulu makes a bad public decision today”. Holding off on public statements, hoping to ride out the wave of criticism is no longer an option. The benefits of a pro-active approach to negative publicity have been exemplified by &lt;a href="http://www.wired.com/gadgetlab/2012/02/path-dave-morin-explains-data" title="Path CEO Dave Morin explains himself"&gt;Path &lt;span class="caps"&gt;CEO&lt;/span&gt; Dave Morin&lt;/a&gt; in recent days.&lt;/p&gt;

	&lt;h3&gt;5. There’s no such thing as too much information&lt;/h3&gt;

	&lt;p&gt;The Blackberry ‘outage’ last year was a classic example of how not to do social media crisis management. Whilst millions of users around the world whipped up a social media storm of discontent, Blackberry’s explanations were late and pitifully inadequate, lacking any real impact. Things will always go wrong, and how you respond in the era of social media hasn’t really changed the tried and tested formula of explaining in detail while fixing, apologising sincerely when fixed, then compensating fully and unstintingly. The only difference is that the “thinking time” has reduced to almost zero. Social media makes it easier to communicate in a crisis, but makes it all the more apparent when these communications are lacking.&lt;/p&gt;

	&lt;p&gt;None of the above principles are difficult or complex, but the pace at which social media moves makes it vital to keep up and educate the people at the sharp end in how best to respond.&lt;/p&gt;

	&lt;p&gt;To quote the novelist Louisa May Alcott, “I am not afraid of storms for I am learning how to sail my ship”.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/erskinelabs/~4/Xo2hV4X0lF8" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Iain Harper</dc:creator><pubDate>Tue, 07 Feb 2012 12:50:22 +0000</pubDate><guid isPermaLink="false">http://erskinelabs.com/surviving-social-media-storm/</guid><feedburner:origLink>http://erskinelabs.com/surviving-social-media-storm/</feedburner:origLink></item><item><title>Introducing Gridpak</title><link>http://feedproxy.google.com/~r/erskinelabs/~3/gbVZG3m4F1E/</link><description>&lt;p&gt;This week we quietly launched &lt;a href="http://gridpak.com"&gt;Gridpak&lt;/a&gt;, a tool that we hope will dramatically speed up the process of creating with Responsive Web Design layouts.&lt;/p&gt;

	&lt;p&gt;&lt;iframe src="http://player.vimeo.com/video/35256595?title=0&amp;amp;byline=0&amp;amp;portrait=0&amp;amp;color=ffffff" width="520" height="328" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen&gt;&lt;/iframe&gt;We were finding the process of creating grid systems quite laborious. Typically it involved creating three or four different grids by hand in Photoshop. &lt;/p&gt;

	&lt;p&gt;When we began to develop, we had to recreate the grids Responsively and add javascript to overlay them in the browser. &lt;/p&gt;

	&lt;p&gt;Then we would create all of the media queries and spend ages doing the maths to work out the relative widths and heights in the &lt;span class="caps"&gt;CSS&lt;/span&gt;.&lt;/p&gt;

	&lt;p&gt;Initially we looked around at frameworks and existing generators but nothing seemed to offer quite enough flexibility.&lt;/p&gt;

	&lt;p&gt;So Gridpak was born from a need to improve and speed up our own process when designing and building responsive websites. The aim of the interface is to make it quick and easy to visualise your Responsive grid system and output it in the formats you need to make a quick start to a project.&lt;/p&gt;

	&lt;p&gt;The main benefits are that Gridpak centralises the grid creation process and does all the heavy lifting of creating &lt;span class="caps"&gt;PNG&lt;/span&gt; versions of each of the grids, &lt;span class="caps"&gt;CSS&lt;/span&gt; with media queries, presentational classes and JavaScript overlay for the browser. &lt;/p&gt;

	&lt;p&gt;We wanted to make it easy to use and intuitive, more flexible than existing solutions. But designing manipulation software is hard to do well, especially when the model that the user directly manipulates is a relatively complex concept.&lt;/p&gt;

	&lt;p&gt;We needed to keep the interface as simple as possible, infusing lots of visual feedback without distracting the editor from the primary task of manipulating the layout. &lt;/p&gt;

	&lt;p&gt;The current version is still very firmly a beta product, with plans to add features incrementally over the coming months. We&amp;#8217;re already seeing requests for features like percentages for padding and gutters and the ability to move the markers that set the end and starting points of each grid.&lt;/p&gt;

	&lt;p&gt;Gridpak will grow and evolve over time, so we&amp;#8217;d really welcome your feedback and input. You can always send us feature requests at gridpak[at]erskinedesign.com or &lt;a href="http://twitter.com/gridpak/"&gt;@gridpak&lt;/a&gt;. We also have a &lt;a href="https://trello.com/board/gridpak/4ec2949a6f575b8735025392"&gt;Trello board&lt;/a&gt; where you can comment on and vote for features, or just keep an eye on what we’re currently working on.&lt;/p&gt;

	&lt;p&gt;Grid generators and frameworks are by their very nature limited in that they produce one type of grid. Gridpak shares these limitations (although we hope to improve it&amp;#8217;s flexibility with future releases) but we hope it will become a valuable tool to help you make a quick start to commercial projects. We know from our own experience that Gridpak saves huge amounts of time, particularly with the &lt;span class="caps"&gt;CSS&lt;/span&gt;, &lt;span class="caps"&gt;LESS&lt;/span&gt; and &lt;span class="caps"&gt;SCSS&lt;/span&gt; files.&lt;/p&gt;

	&lt;p&gt;We hope you enjoy using Gridpak and we&amp;#8217;ll be putting up another post soon with more details about how the site was built. Check it out at &lt;a href="http://gridpak.com/"&gt;http://gridpak.com/&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/erskinelabs/~4/gbVZG3m4F1E" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sam Quayle</dc:creator><pubDate>Fri, 20 Jan 2012 14:49:44 +0000</pubDate><guid isPermaLink="false">http://erskinelabs.com/introducing-gridpak/</guid><feedburner:origLink>http://erskinelabs.com/introducing-gridpak/</feedburner:origLink></item><item><title>Planning and documenting front-end components</title><link>http://feedproxy.google.com/~r/erskinelabs/~3/8MnHhVHEaVI/</link><description>&lt;p&gt;At Erskine it&amp;#8217;s more than just accepted, but it&amp;#8217;s encouraged to question the way things are done. If something isn&amp;#8217;t working, figure out another way and test it out with the team. We&amp;#8217;re always experimenting and our processes are constantly questioned. The way we&amp;#8217;re working now is ten times better than it was six months ago, and the same thing will happen in another six months. It&amp;#8217;s inevitable.&lt;/p&gt;

	&lt;p&gt;&lt;img src="http://erskinelabs.com/media/images/content/entries/fe-components/el50-illustration.png" alt="" /&gt;&lt;br /&gt;We recently finished a project where the deliverables were a bunch of flexible components that together built up 20+ very distinct front-end templates. We had to make this in a way that we weren&amp;#8217;t repeating ourselves, that was easy to manage and could easily be implemented by an external team. It was a daunting task.&lt;/p&gt;

	&lt;p&gt;When we got about halfway into the project it became clear that we needed a better way to document the components, naming conventions, and front-end implementation that made up the website. Another problem that comes up with projects like this is when you get further into the project, you&amp;#8217;ve got to refine previously made components more and more to work in harmony together. Houston, we have a problem.&lt;/p&gt;

	&lt;p&gt;After putting way too much thought into all of this, I broke the issues down into a few simple rules:&lt;/p&gt;

	&lt;ul&gt;
		&lt;li&gt;We need to build more reusable website components.&lt;/li&gt;
		&lt;li&gt;We need centralized front-end documentation from the start.&lt;/li&gt;
		&lt;li&gt;We need up-to-date access to a high level overview of the system as a whole.&lt;/li&gt;
	&lt;/ul&gt;

	&lt;h2&gt;Introducing the components table&lt;/h2&gt;

	&lt;p&gt;&lt;img src="http://erskinelabs.com/media/images/content/entries/fe-components/el50-table.png" alt="" /&gt;&lt;/p&gt;

	&lt;p&gt;The components table is a new way of developing websites that I&amp;#8217;m currently experimenting with. You name, define and markup your components within the [fluid] table instead of inside the constraints of a website. Thus, answering all the rules above in one fell swoop.&lt;/p&gt;

	&lt;h3&gt;We need to build more reusable website components&lt;/h3&gt;

	&lt;p&gt;A website is a skeleton made up of an assortment of individual components that can work individually, side-by-side, and sometimes integrated together. Components should be plug-and-play, and they should be location and dimension independent. They don&amp;#8217;t need to rely on an external source to be usable. Also, quality control should be built in at the component level. By breaking our websites down, and focusing on small elements at a time we can really dig into the details.&lt;/p&gt;

	&lt;h3&gt;We need centralized front-end documentation from the start&lt;/h3&gt;

	&lt;p&gt;When someone new jumps into a project, they need to be able to get up and running as quickly and efficiently as possible. They need an easy way to see how the pieces of the puzzle fit together. By it&amp;#8217;s very nature, the components table is centralized documentation.&lt;/p&gt;

	&lt;p&gt;Sometimes we hand over front-end templates to an external web team for integration with their own systems. Developing with the components table means little to no extra documentation on project hand over.&lt;/p&gt;

	&lt;h3&gt;We need up-to-date access to a high level overview of the system as a whole&lt;/h3&gt;

	&lt;p&gt;We need a way to easily spot components that can be refined and integrated with each other. Flaws in the system need to be spotted sooner rather than later. Nothing is worse, or more &lt;code&gt;!important&lt;/code&gt;, than an out of hand stylesheet. Also, when starting on a new phase of a project do we build feature X on top of existing code, or do we start fresh? What&amp;#8217;s the naming convention for the shopping basket? This can all be found in the components table.&lt;/p&gt;

	&lt;p&gt;Though it&amp;#8217;s just an experiment, the components table fixes a lot of the problems I&amp;#8217;ve had with front-end development. Anyone else out there trying to solve these problems? I&amp;#8217;d love to see what you&amp;#8217;ve come up with.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/erskinelabs/~4/8MnHhVHEaVI" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Garrett Winder</dc:creator><pubDate>Fri, 09 Sep 2011 14:00:00 +0100</pubDate><guid isPermaLink="false">http://erskinelabs.com/planning-and-documenting-front-end-components/</guid><feedburner:origLink>http://erskinelabs.com/planning-and-documenting-front-end-components/</feedburner:origLink></item><item><title>Geek in the pub</title><link>http://feedproxy.google.com/~r/erskinelabs/~3/yDccbMmdRvY/</link><description>&lt;p&gt;Recently, I was fortunate enough to be invited to speak in Leamington Spa at the regular &lt;a href="http://2011.geekinthepark.co.uk"&gt;Geek in the Park event.&lt;/a&gt; The event is split into a friendly picnic during the day, leading into an evening of talks on various web-related topics in a local pub.&lt;/p&gt;

	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/paulrobertlloyd/6050573078/" title="James Willock Presents by Paul Robert Lloyd, on Flickr"&gt;&lt;img src="http://farm7.static.flickr.com/6074/6050573078_95233998a4_z.jpg" width="512" height="640" alt="James Willock Presents"&gt;&lt;/a&gt;&lt;/p&gt;

	&lt;p&gt;Also leading discussions during the evening were freelancer &lt;a href="http://twitter.com/andrewdisley"&gt;Andrew Disley&lt;/a&gt;, Clearleft visual designer &lt;a href="http://twitter.com/paulrobertlloyd"&gt;Paul Robert-Lloyd&lt;/a&gt; and content strategist &lt;a href="http://twitter.com/rellyab"&gt;Relly Annette-Baker&lt;/a&gt;. Topics ranged from the blurring of the lines between web and native apps to the Large Hadron Collider.&lt;/p&gt;

	&lt;p&gt;My talk, entitled 'Brain science, not rocket surgery&amp;#8217; briefly spoke of some of my personal mantras when developing interfaces on the web. I spoke of designing good perceived affordances (citing in some detail Donald Norman&amp;#8217;s thoughts in &lt;i&gt;The Design of Everyday Things&lt;/i&gt;), crafting realistic user journeys and the benefits of sensory feedback.&lt;/p&gt;

	&lt;p&gt;I was very pleased to receive feedback from attendees who appreciated my perspective or believed that I articulated some of their feelings. Speaking publically is always a valuable experience, and I went away with plenty of ideas to implement for my next engagement.&lt;/p&gt;

	&lt;p&gt;Special thanks go to &lt;a href="http://www.twitter.com/trovster"&gt;Trevor Morris&lt;/a&gt; and &lt;a href="http://www.twitter.com/abitgone"&gt;Anthony Williams&lt;/a&gt; for organising a fantastic event and inviting me along.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/erskinelabs/~4/yDccbMmdRvY" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">James Willock</dc:creator><pubDate>Thu, 25 Aug 2011 17:31:25 +0100</pubDate><guid isPermaLink="false">http://erskinelabs.com/geek-pub/</guid><feedburner:origLink>http://erskinelabs.com/geek-pub/</feedburner:origLink></item><item><title>Bibliomania</title><link>http://feedproxy.google.com/~r/erskinelabs/~3/pDDlBnJ3ly4/</link><description>&lt;p&gt;There&amp;#8217;s seldom an afternoon goes by in the Erskine office that a solitary brown Amazon box fails to arrive, let alone numerous boxes. Our personal and office collections have become something of an obsession, and so, before &lt;a href="http://en.wikipedia.org/wiki/Bibliomania"&gt;bibliomania&lt;/a&gt; completely sets in, I thought this would be a great opportunity to ask around the team and share with you the books that we have been reading over the last few weeks. &lt;/p&gt;

	&lt;p&gt;&lt;img src="http://erskinelabs.com/media/images/content/entries/whatwearereading.png" title="what we have been reading" alt="what we have been reading" /&gt;&lt;/p&gt;

	&lt;h2&gt;Jamie:&lt;/h2&gt;

	&lt;h1&gt;&lt;a href="http://www.amazon.co.uk/Anything-You-Want-Derek-Sivers/dp/1936719118/ref=sr_1_1?s=books&amp;#38;ie=UTF8&amp;#38;qid=1313072762&amp;#38;sr=1-1"&gt;Anything You Want&lt;/a&gt;&lt;/h1&gt;

	&lt;h3&gt;by Derek Sivers&lt;/h3&gt;

	&lt;p&gt;An easy to read, no nonsense narrative account of Derek&amp;#8217;s successes and failures during his time creating CD Baby. My favourite quote so far: &lt;br /&gt;&amp;#8220;The real point of doing anything is to be happy, so do what makes you happy&amp;#8221;&lt;/p&gt;

	&lt;h1&gt;&lt;a href="http://www.amazon.co.uk/Mindfulness-English-Bhante-Henepola-Gunaratana/dp/0861713214/ref=sr_1_1?s=books&amp;#38;ie=UTF8&amp;#38;qid=1313072900&amp;#38;sr=1-1"&gt;Mindfulness in Plain English&lt;/a&gt;&lt;/h1&gt;

	&lt;h3&gt;by Bhante Henepola Gunaratana&lt;/h3&gt;

	&lt;p&gt;If you&amp;#8217;re ever interested in learning more about meditation or Buddhism, Henepola Gunaratana is your man. As the preface says, it&amp;#8217;s a very simple book written in ordinary language. My favourite quote: &amp;#8220;The process of becoming who you will be begins first with the total acceptance of who you are.&amp;#8221;&lt;/p&gt;

	&lt;h2&gt;James: &lt;/h2&gt;

	&lt;h1&gt;&lt;a href="http://www.amazon.co.uk/Design-Everyday-Things-Don-Norman/dp/0465067107/ref=sr_1_1?s=books&amp;#38;ie=UTF8&amp;#38;qid=1313072302&amp;#38;sr=1-1"&gt;The Design of Everyday Things&lt;/a&gt;&lt;/h1&gt;

	&lt;h3&gt;by Donald Norman&lt;/h3&gt;

	&lt;p&gt;At the moment I am reading The Design of Everyday Things, which is really a crash course in the psychology of interaction. It&amp;#8217;s a book with fantastic pedigree, having been refined over the course of two decades and written by Donald Norman of Nielsen Norman Group fame. I would thoroughly recommend it as a must-read for anyone involved in interface or interaction design.&lt;/p&gt;

	&lt;h1&gt;&lt;a href="http://www.amazon.co.uk/Thinking-Type-Second-Revised-Expanded/dp/1568989695/ref=sr_1_1?s=books&amp;#38;ie=UTF8&amp;#38;qid=1313072269&amp;#38;sr=1-1"&gt;Thinking With Type&lt;/a&gt;&lt;/h1&gt;

	&lt;h3&gt;by Ellen Lupton&lt;/h3&gt;

	&lt;p&gt;I&amp;#8217;ve just finished a seventh or eighth read-through of Thinking With Type by Ellen Lupton. The book is widely considered to be one of the best introductions to typography in print, and the 2nd edition adds a whole host of new sections and case studies. Again, an absolute must-read.&lt;/p&gt;

	&lt;h2&gt;Phil Howell:&lt;/h2&gt;

	&lt;h1&gt;&lt;a href="http://www.amazon.co.uk/MySQL-High-Availability-Building-Centers/dp/0596807309/ref=sr_1_1?s=books&amp;#38;ie=UTF8&amp;#38;qid=1313072250&amp;#38;sr=1-1"&gt;MySQL High Availability&lt;/a&gt;&lt;/h1&gt;

	&lt;h3&gt;By Charles Bell, Mats Kindahl, Lars Thalmann&lt;/h3&gt;

	&lt;p&gt;This has proven to be a very useful resource in establishing HA MySQL deployments for clients. There are three main topics discussed; various ways of establishing High Availability MySQL deployments, monitoring and disaster recovery of those deployments and finally, applying these techniques in various Cloud environments, with explicit information regarding Amazon&amp;#8217;s &lt;span class="caps"&gt;AWS&lt;/span&gt; and deploying MySQL Cluster.&lt;/p&gt;

	&lt;h1&gt;&lt;a href="http://www.amazon.co.uk/Mythical-Month-Essays-Software-Engineering/dp/0201835959/ref=sr_1_1?s=books&amp;#38;ie=UTF8&amp;#38;qid=1313072195&amp;#38;sr=1-1"&gt;The Mythical Man Month and Other Essays on Software Engineering&lt;/a&gt;&lt;/h1&gt;

	&lt;h3&gt;by Fred Brooks&lt;/h3&gt;

	&lt;p&gt;A renowned collection of essays on software engineering with thoughts on subjects including project estimation, management, documentation, communication and the second-system effect.&lt;/p&gt;

	&lt;h2&gt;Wil Linssen:&lt;/h2&gt;

	&lt;h1&gt;&lt;a href="http://www.amazon.co.uk/Getting-Things-Done-Stress-free-Productivity/dp/0749922648/ref=sr_1_1?ie=UTF8&amp;#38;qid=1313072167&amp;#38;sr=8-1"&gt;Getting Things Done&lt;/a&gt;&lt;/h1&gt;

	&lt;h3&gt;by David Allen&lt;/h3&gt;

	&lt;p&gt;I&amp;#8217;m sure a lot of people are familiar with the book or at least the title. It&amp;#8217;s one man&amp;#8217;s very good advice for dealing with workload and task management, and it resonates particularly well with the service industry.&lt;/p&gt;

	&lt;h1&gt;&lt;a href="http://symfony.com/doc/current/book/index.html"&gt;Symfony 2 Book&lt;/a&gt;&lt;/h1&gt;

	&lt;h3&gt;by The Symfony Community&lt;/h3&gt;

	&lt;p&gt;Technically not a book, but then what technically constitutes a book these days anyway. It&amp;#8217;s a great introduction to the recently stabilised version 2 &lt;span class="caps"&gt;PHP&lt;/span&gt; framework. There are a lot of really interesting new approaches in the Framework that are covered pretty succinctly herein.&lt;/p&gt;

	&lt;h1&gt;&lt;a href="http://www.amazon.co.uk/Dracula-Wordsworth-Classics-Bram-Stoker/dp/185326086X/ref=sr_1_2?s=books&amp;#38;ie=UTF8&amp;#38;qid=1313071989&amp;#38;sr=1-2"&gt;Dracula&lt;/a&gt;&lt;/h1&gt;

	&lt;h3&gt;by Bram Stoker&lt;/h3&gt;

	&lt;p&gt;Originally because it was free in the iBook shop, but I swiftly got swept up in it. I realise it&amp;#8217;s not a technical volume, but you&amp;#8217;d be surprised by how many of Van Helsing&amp;#8217;s nuggets of wisdom affect some aspect of your professional life. Forget vampire hunter, the man should be a life coach.&lt;/p&gt;

	&lt;h2&gt;Phil Swan:&lt;/h2&gt;

	&lt;h1&gt;&lt;a href="http://www.amazon.co.uk/Information-Architecture-World-Wide-Web/dp/0596527349/ref=sr_1_1?s=books&amp;#38;ie=UTF8&amp;#38;qid=1313071963&amp;#38;sr=1-1" title="O&amp;#39;Reilly"&gt;Information Architecture 3rd Edition&lt;/a&gt;&lt;/h1&gt;

	&lt;h3&gt;By Peter Morville &amp; Louis Rosenfeld&lt;/h3&gt;

	&lt;p&gt;This is pretty much essential reading if you&amp;#8217;re designing a large scale site. I&amp;#8217;ve dipped into this book quite a few times, but I&amp;#8217;m making it my mission to read the whole thing from start to finish. &lt;/p&gt;

	&lt;h1&gt;&lt;a href="http://www.amazon.co.uk/Practical-Guide-Designing-Data/dp/0956174086/ref=sr_1_1?s=books&amp;#38;ie=UTF8&amp;#38;qid=1313071855&amp;#38;sr=1-1"&gt;Designing With Data&lt;/a&gt;&lt;/h1&gt;

	&lt;h3&gt;By Brian Suda&lt;/h3&gt;

	&lt;p&gt;A book about how to do data visualisation right. It contains a great deal of practical advice on designing clear and useful infographics, charts and graphs.&lt;/p&gt;

	&lt;h2&gt;Sam Quayle:&lt;/h2&gt;

	&lt;h1&gt;&lt;a href="http://www.amazon.co.uk/Swiss-Graphic-Design-International-1920-1965/dp/1856694879/ref=sr_1_1?ie=UTF8&amp;#38;qid=1313067971&amp;#38;sr=8-1"&gt;Swiss Graphic Design: The Origins and Growth of an International Style 1920-1965&lt;/a&gt; &lt;/h1&gt;

	&lt;h3&gt;by Richard Hollis&lt;/h3&gt;

	&lt;p&gt;Not the most conspicuous book you could choose to read on your way in to work but an insightful choice nonetheless. The book provides an almost encyclopedic overview of one of the most influential design movements of the 20th century.&lt;/p&gt;

	&lt;h1&gt;&lt;a href="http://amzn.to/nG8IY6" title="Design Briefs"&gt;Visual Grammar&lt;/a&gt;  &lt;/h1&gt;

	&lt;h3&gt;by Christian Leborg  &lt;/h3&gt;

	&lt;p&gt;A welcomed spot of respite after slogging your way through 45 years of swiss graphic design history. Visual Grammar is a very concise, simple and beautifully presented reference guide that seeks to define and classify the basic elements, patterns, processes and relationships that form our visual language. &lt;/p&gt;

	&lt;p&gt;We&amp;#8217;d love to hear what you have been finding hard to put down recently.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/erskinelabs/~4/pDDlBnJ3ly4" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sam Quayle</dc:creator><pubDate>Thu, 11 Aug 2011 18:11:28 +0100</pubDate><guid isPermaLink="false">http://erskinelabs.com/bibliomania/</guid><feedburner:origLink>http://erskinelabs.com/bibliomania/</feedburner:origLink></item><item><title>Personal task management with Things.app</title><link>http://feedproxy.google.com/~r/erskinelabs/~3/du7M81OaQxk/</link><description>&lt;p&gt;Here at Erskine we use all the usual suspects to keep the day in order: The &lt;a href="http://37signals.com/suite"&gt;37signals Suite&lt;/a&gt; (mostly Basecamp and Campfire), &lt;a href="http://beanstalkapp.com/"&gt;Beanstalk&lt;/a&gt;, &lt;a href="http://www.getharvest.com/"&gt;Harvest&lt;/a&gt;, &lt;a href="http://www.redmine.org/"&gt;Redmine&lt;/a&gt;, the list goes on. All of these are great for a team or client overviews, but in my opinion are not enough to personally stay truly organized.I&amp;#8217;ve always had a pretty obsessive approach to organization and go quite overboard with it, actually. Constantly testing, tuning and refining my personal processes until I feel like I&amp;#8217;ve got the perfect way of doing something.&lt;/p&gt;

	&lt;p&gt;My work falls into a few different categories, and depending on the month, and phase of the moon, I&amp;#8217;m always doing more or less of one or the other. Right now my work ranges from front-end development to internal project cheerleading and client handling. My day can get very confusing, especially when we&amp;#8217;re busy.&lt;/p&gt;

	&lt;h2&gt;Bring on the Things&lt;/h2&gt;

	&lt;p&gt;For the past few years I&amp;#8217;ve been using &lt;a href="http://culturedcode.com/things/"&gt;Things.app&lt;/a&gt; for task management. I&amp;#8217;ve traded out for different applications here and there, but in the end I always come back to Things. This article is about why I use it, and how it fits into my work.&lt;/p&gt;

	&lt;h3&gt;Out of the box&lt;/h3&gt;

	&lt;p&gt;&lt;a href="http://erskinelabs.com/media/images/content/entries/task-management/things-before-big.jpg"&gt;&lt;img src="http://erskinelabs.com/media/images/content/entries/task-management/things-before-small.jpg" title="Things.app" alt="Things.app" /&gt;&lt;/a&gt;&lt;/p&gt;

	&lt;p&gt;This is a screenshot of Things the first time you open it. The software is extremely simple: To-dos organized by projects, people, time and tags. Exactly how I think.&lt;/p&gt;

	&lt;h3&gt;Tailored to your thought process&lt;/h3&gt;

	&lt;p&gt;&lt;a href="http://erskinelabs.com/media/images/content/entries/task-management/things-after-big.jpg"&gt;&lt;img src="http://erskinelabs.com/media/images/content/entries/task-management/things-after-small.jpg" title="Things.app" alt="Things.app" /&gt;&lt;/a&gt;&lt;/p&gt;

	&lt;p&gt;This is a screenshot of how I actually use Things. I use the 'Inbox&amp;#8217; randomly throughout the day to dump everything that comes into my mind so I can get back to work. I usually sift through my inbox once every morning &amp;#8211; organizing, tagging and giving due dates to items.&lt;/p&gt;

	&lt;p&gt;For Projects, I usually use the naming convention &lt;em&gt;Client name &amp;#8211; Project name&lt;/em&gt;. All to-do items for that particular project are filed away in there. I use 'Areas&amp;#8217; for an extra layer of organization and for those to-do items that don&amp;#8217;t exactly belong to a project, but they do belong to a client. Every client gets a 'General&amp;#8217; area, plus areas for major pieces of their business that Erskine work with on a regular basis.&lt;/p&gt;

	&lt;p&gt;If a task is out of my hands, but needs to be done in order for me to keep on keeping&amp;#8217; on, I use the 'People&amp;#8217; feature as you can see in the screenshot above. Lastly, tagging. For tagging I use a little of my own conventions plus most of the goodies found in &lt;a href="http://www.omnigroup.com/blog/entry/slay_the_leviathan_context/"&gt;this article from the Omni Focus blog&lt;/a&gt;.&lt;/p&gt;

	&lt;p&gt;&lt;img src="http://erskinelabs.com/media/images/content/entries/task-management/things-tags.jpg" title="Things.app" alt="Things.app" /&gt;&lt;/p&gt;

	&lt;p&gt;So, that&amp;#8217;s how I use Things. Hopefully you can take some of this and apply it to the way you work. This is something that I&amp;#8217;m really interested in and would love to see your thoughts, conventions, etc below.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/erskinelabs/~4/du7M81OaQxk" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Garrett Winder</dc:creator><pubDate>Thu, 04 Aug 2011 18:53:04 +0100</pubDate><guid isPermaLink="false">http://erskinelabs.com/personal-task-management-thingsapp/</guid><feedburner:origLink>http://erskinelabs.com/personal-task-management-thingsapp/</feedburner:origLink></item><item><title>How's your social capital?</title><link>http://feedproxy.google.com/~r/erskinelabs/~3/RST_aVkcML4/</link><description>&lt;p&gt;Here at Erskine Design we&amp;#8217;re a relatively small team of eleven awesome individuals. In actual fact though, this small team is made up of a number of micro-teams. We&amp;#8217;re mostly designers and developers but that can be broken down into visual and interaction designers, front- and back-end engineers and technical architects. On top of that we have responsibilities for client and team management, project and product management, marketing, sales, accounting, and personnel. The list goes on and should include customers, suppliers, external client teams and stakeholders. What all these people rely on and need from one another is trust.h2. Trust is hard to define &lt;/p&gt;

	&lt;p&gt;After reading up on the subject I&amp;#8217;ve found that sociologists refer to trust as social capital. They&amp;#8217;ve found that it&amp;#8217;s event driven and that small, frequent gestures or events enhance trust more than larger gestures made only occasionally.&lt;/p&gt;

	&lt;p&gt;The example I read used the scenario of what happens after you&amp;#8217;ve been on a date (let&amp;#8217;s stick to first base, OK?) You go on a date, have a great evening, and at the end of the night go your separate ways. In one version of this scenario you hear nothing from the other person for weeks. This leaves you with a feeling of uncertainty and confusion until one day a huge bunch of flowers or a similar grand gift lands on your doorstep from said person. In another version of this same post-date scenario, 10 minutes after you go your separate ways you get a text message telling you what an enjoyable night it had been and suggesting a repeat soon. Which version of events would leave you with the best feeling about, and therefore trust in, the other person?&lt;/p&gt;

	&lt;p&gt;The point of the story is small gestures cost nothing but they do build more trust than large, expensive gestures presented only occasionally.&lt;/p&gt;

	&lt;h2&gt;Building social capital through iterative delivery&lt;/h2&gt;

	&lt;p&gt;I&amp;#8217;m sure we can all relate this story to the work we do and our relationships with clients and colleagues. How many times have you put yourself under unnecessary pressure due to attempting to deliver a grand gesture because you think this is what&amp;#8217;s required to build trust and please the other person? This pressure often causes you to limit communication or &amp;#8220;go dark&amp;#8221; as we affectionately refer to it. Milestones are often missed because in your mind the gesture isn&amp;#8217;t quite grand enough or polished enough when the time comes to deliver. Worst of all, when your big bunch of flowers do finally land on the other person&amp;#8217;s doorstep, their blooming brilliance, whether a polished design, functioning product or detailed specification, is often diluted by the feelings of shear relief felt by everyone concerned. Inadvertently, the uncertainty and confusion you&amp;#8217;ve caused has done some damage to the trust the other person has in you.&lt;/p&gt;

	&lt;p&gt;I&amp;#8217;ll be honest with you and say we know we could be doing better at this. One of the things we&amp;#8217;re looking into as part of our process is how we can begin delivering smaller, more frequent, high quality releases on our projects rather than putting out larger releases less often. We all know there are numerous good reasons to do this but the one I&amp;#8217;m interested in is that it builds trust between the various micro-teams and stakeholders. &lt;/p&gt;

	&lt;h2&gt;Small, frequent gestures in communication&lt;/h2&gt;

	&lt;p&gt;Here&amp;#8217;s another little story for you. Earlier this year &lt;a href="/by/james-willock/"&gt;James&lt;/a&gt;, &lt;a href="/by/garrett-winder/"&gt;Garrett&lt;/a&gt; and I worked together creating a website for &lt;a href="http://music.simoncampbell.com/"&gt;Simon&amp;#8217;s musical adventures&lt;/a&gt;. James and I were in the UK but Garrett was still in Texas, with a time difference of 6 hours. Every morning I&amp;#8217;d fire up Basecamp and find an update message from Garrett. They weren&amp;#8217;t lengthy affairs and no one had asked him for them; they were just a few simple bullets points outlining what he&amp;#8217;d been working on the previous day. &lt;/p&gt;

	&lt;p&gt;I was having a catch-up with Simon via Skype and he mentioned Garrett&amp;#8217;s messages. &amp;#8220;They&amp;#8217;re fantastic!!!&amp;#8221;, he said in his standard excitable way. Garrett, knowingly or unknowingly, had created and distributed social capital among his colleagues and his boss (who doubled as the the client for the project he was working on) simply by writing and sending a few bullet points at the end of each day.  &lt;/p&gt;

	&lt;h2&gt;Trust makes everything easier&lt;/h2&gt;

	&lt;p&gt;No matter where you are in the value stream in your team or the position you hold, if the people upstream or downstream from you have complete trust in you, everything suddenly becomes easier. &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/erskinelabs/~4/RST_aVkcML4" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jamie Pittock</dc:creator><pubDate>Thu, 28 Jul 2011 17:10:22 +0100</pubDate><guid isPermaLink="false">http://erskinelabs.com/hows-your-social-capital/</guid><feedburner:origLink>http://erskinelabs.com/hows-your-social-capital/</feedburner:origLink></item><item><title>What should they know of PHP who only PHP know?</title><link>http://feedproxy.google.com/~r/erskinelabs/~3/FB6mGLvKd5U/</link><description>&lt;blockquote class="wide"&gt;&lt;p&gt;Winds of the World, give answer! They are whimpering to and fro —&lt;br /&gt;And what should they know of England who only England know? —&lt;br /&gt;The poor little street-bred people that vapour and fume and brag,&lt;br /&gt;They are lifting their heads in the stillness to yelp at the English Flag!&lt;/p&gt;
&lt;cite&gt;— &lt;a href="http://en.wikisource.org/wiki/The_English_Flag"&gt;Rudyard Kipling &amp;#8211; The English Flag&lt;/a&gt;&lt;/cite&gt;&lt;/blockquote&gt;

	&lt;p&gt;I like that stanza a lot, and (taken out of context) it rather suits an opinion I hold on the merits of learning of several programming languages. Most programmers have a core language, the one they are most able and comfortable with; I think we should expand the list of peripherals.h2. Knowing more than &lt;span class="caps"&gt;PHP&lt;/span&gt;&lt;/p&gt;

	&lt;p&gt;I suggest that by learning more than one programming language, you stand to learn even more about the one at the core of your skill. It&amp;#8217;s commonplace in the programming community to stick to one language, be it Ruby, &lt;span class="caps"&gt;PHP&lt;/span&gt;, C++ and so on; but I think if you do you&amp;#8217;re missing a trick. I&amp;#8217;ve titled &lt;span class="caps"&gt;PHP&lt;/span&gt; herein, because it&amp;#8217;s a language I&amp;#8217;m familiar with, but my own adventures in JavaScript and Python especially have been enormously rewarding and have helped me learn a lot about &lt;span class="caps"&gt;PHP&lt;/span&gt; actually.&lt;/p&gt;

	&lt;p&gt;So many languages share fundamental principles, and indeed many are even derived from the same concepts, but because they differ in their approach there&amp;#8217;s something new to understand in each. It&amp;#8217;s these differences that will frequently bolster your understanding of your primary language, or indeed of programming as a whole.&lt;/p&gt;

	&lt;h2&gt;Yelping at the &lt;span class="caps"&gt;PHP&lt;/span&gt; Flag!&lt;/h2&gt;

	&lt;p&gt;Another point succinctly raised is against the dogged 'vapouring, fuming and bragging&amp;#8217;. How often have you read a post titled &amp;#8217;243 reasons Programming Language X is shit and Programming Language Y is the King&amp;#8217;? Or more likely, how often have you scoffed at the title and ignored it, thinking 'what a jerk, Programming Language Z is obviously King&amp;#8217;?&lt;/p&gt;

	&lt;p&gt;There&amp;#8217;s no reason to attack another language just to validate your own investment in another &amp;#8211; it&amp;#8217;s crazy. It&amp;#8217;s when the communities come together and share their ideas: discussing improvements and drawing inspiration from one another that things get interesting.&lt;/p&gt;

	&lt;p&gt;Stop arguing about whether their language sucks and your language is great and start listening to the opinions of another discipline: I guarantee you&amp;#8217;ll get more out of it.&lt;/p&gt;

	&lt;h2&gt;So what are you waiting for?&lt;/h2&gt;

	&lt;p&gt;I realise it&amp;#8217;s a big investment to learn a new language from scratch, and I&amp;#8217;m not suggest that you necessarily do that. You could however easily complete a decent 'getting started&amp;#8217; tutorial: it&amp;#8217;s often the fundamentals that are most rewarding anyway. Frankly you don&amp;#8217;t even have to switch languages: if you&amp;#8217;re a &lt;span class="caps"&gt;PHP&lt;/span&gt; type who uses CakePHP, go and learn Symfony; if you&amp;#8217;re a Django type have a look at Pylons.&lt;/p&gt;

	&lt;p&gt;It&amp;#8217;s stepping outside of your comfort zone and engaging with the underlying concepts of the languages and tools you are using that will enable you to grow as a developer. As the &lt;a href="http://pragprog.com/book/ahptl/pragmatic-thinking-and-learning"&gt;Pragmatic Programmers&lt;/a&gt; have said before &amp;#8220;... consider the case of the developer who claims ten years of experience, but in reality it was one year of experience repeated nine times. That doesn’t count as experience.&amp;#8221; &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/erskinelabs/~4/FB6mGLvKd5U" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wil Linssen</dc:creator><pubDate>Thu, 07 Jul 2011 16:06:22 +0100</pubDate><guid isPermaLink="false">http://erskinelabs.com/what-should-they-know-php-who-only-php-know/</guid><feedburner:origLink>http://erskinelabs.com/what-should-they-know-php-who-only-php-know/</feedburner:origLink></item><item><title>Fireworks tips: convert to alpha</title><link>http://feedproxy.google.com/~r/erskinelabs/~3/eNsCTK2T6iU/</link><description>&lt;p&gt;I&amp;rsquo;m a big fan of &lt;a href="http://www.adobe.com/products/fireworks.html"&gt;Adobe Fireworks&lt;/a&gt;. It&amp;rsquo;s by no means perfect; but an arsenal of vector tools, bitmap editing capabilities, symbols (like Photoshop Smart Objects, but better) and layer filters make it a great piece of image manipulation software for the screen.&lt;/p&gt;

	&lt;p&gt;&lt;img src="/media/images/content/entries/fireworks_tutorial/1.gif" width="520" height="200" alt="Before and after"&gt;&lt;/p&gt;

	&lt;p&gt;One of my favourite features (and one that I use all the time) is the &amp;lsquo;Convert to Alpha&amp;rsquo; filter. This converts the colour of whatever is on that layer to the alpha equivalent; the lighter the colour, the more transparent it becomes. It&amp;rsquo;s a simple and very useful concept.&lt;br /&gt;I&amp;rsquo;ll demonstrate how this feature can be used in combination with some other layer filters to convert the first flat image to the second alpha-transparent image. This will all be done in a non-destructive way, so we won&amp;rsquo;t actually editing the original image.&lt;/p&gt;

	&lt;p&gt;To begin with we want to make this image black and white. We&amp;rsquo;ll start by converting it to greyscale by desaturating it.&lt;/p&gt;

	&lt;p&gt;&lt;img src="/media/images/content/entries/fireworks_tutorial/2.png" width="125" height="131" alt="Step 1" class="left"&gt;&lt;/p&gt;

	&lt;p&gt;Select the image by clicking on it. The options in the Properties panel will now change.&lt;/p&gt;

	&lt;p&gt;Add a new layer filter from the properties panel (by default this is at the bottom of the screen below the canvas).&lt;/p&gt;

	&lt;p&gt;&lt;img src="/media/images/content/entries/fireworks_tutorial/3.png" width="520" height="144" alt="Step 2"&gt;&lt;/p&gt;

	&lt;p&gt;Choose &amp;lsquo;&lt;strong&gt;Adjust Color &amp;rarr; Hue/Saturation&amp;hellip;&lt;/strong&gt;&amp;rsquo;&lt;/p&gt;

	&lt;p&gt;&lt;img src="/media/images/content/entries/fireworks_tutorial/4.png" width="520" height="241" alt="Step 3"&gt;&lt;/p&gt;

	&lt;p&gt;&lt;img src="/media/images/content/entries/fireworks_tutorial/5.png" width="320" height="145" alt="Step 4" class="left"&gt; &lt;/p&gt;

	&lt;p&gt;We&amp;rsquo;ll bring the saturation right down to &amp;lsquo;&lt;strong&gt;-100&lt;/strong&gt;&amp;rsquo;.&lt;br /&gt;&lt;div class="clear"&gt;&lt;/div&gt;&lt;/p&gt;

	&lt;p&gt;&lt;img src="/media/images/content/entries/fireworks_tutorial/6.png" width="164" height="164" alt="Step 5" class="right"&gt;&lt;/p&gt;

	&lt;p&gt;Now the image is two-shades of washed out grey. This is great as it means we can easily convert it to black and white by adjusting the levels.&lt;/p&gt;

	&lt;p&gt;To do this we&amp;rsquo;ll need to add another layer filter &amp;lsquo;&lt;strong&gt;Adjust Color &amp;rarr; Auto levels&lt;/strong&gt;&amp;rsquo;&lt;/p&gt;

	&lt;p&gt;&lt;img src="/media/images/content/entries/fireworks_tutorial/7.png" width="520" height="241" alt="Step 6"&gt;&lt;/p&gt;

	&lt;p&gt;We now have a black and white image.&lt;/p&gt;

	&lt;p&gt;Now it&amp;rsquo;s time for our special move. We can convert the image so it has an alpha transparency by adding the filter &amp;lsquo;&lt;strong&gt;Other &amp;rarr; Convert to Alpha&lt;/strong&gt;&amp;rsquo;&lt;/p&gt;

	&lt;p&gt;&lt;img src="/media/images/content/entries/fireworks_tutorial/8.png" width="116" height="115" alt="Step 7" class="left"&gt;&lt;/p&gt;

	&lt;p&gt;Almost there&amp;hellip;&lt;/p&gt;

	&lt;p&gt;&lt;img src="/media/images/content/entries/fireworks_tutorial/9.png" width="520" height="241" alt="Step 8"&gt;&lt;/p&gt;

	&lt;p&gt;We can now add our last filter &amp;lsquo;&lt;strong&gt;Adjust Color &amp;rarr; Color Fill&lt;/strong&gt;&amp;rsquo;&lt;/p&gt;

	&lt;p&gt;&lt;img src="/media/images/content/entries/fireworks_tutorial/10.png" width="116" height="115" alt="Step 9" class="left"&gt;&lt;/p&gt;

	&lt;p&gt;&lt;img src="/media/images/content/entries/fireworks_tutorial/11.png" width="520" height="180" alt="Step 10"&gt;&lt;/p&gt;

	&lt;p&gt;Choose the desired colour and we&amp;rsquo;re done!&lt;/p&gt;

	&lt;p&gt;&lt;img src="/media/images/content/entries/fireworks_tutorial/12.png" width="520" height="219" alt="Step 11"&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/erskinelabs/~4/eNsCTK2T6iU" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phil Swan</dc:creator><pubDate>Thu, 30 Jun 2011 14:55:54 +0100</pubDate><guid isPermaLink="false">http://erskinelabs.com/fireworks-tips-convert-alpha/</guid><feedburner:origLink>http://erskinelabs.com/fireworks-tips-convert-alpha/</feedburner:origLink></item><item><title>Business tips: spend wisely</title><link>http://feedproxy.google.com/~r/erskinelabs/~3/W3m12pqsuCU/</link><description>&lt;p&gt;Many people consider me to be a Jekyll and Hyde when it comes to spending company money. This is my short bit of advice to all you business owners out there!&lt;/p&gt;

	&lt;p&gt;Business is booming. You&amp;#8217;re booked up until January 2012, everyone&amp;#8217;s occupied and happy. Why not celebrate and go out for a beer with the guys, or better still book an all expenses paid weekend away for everyone? Lavish some love on your team.&lt;/p&gt;

	&lt;p&gt;When it comes to the tools you (or your team) use every day, go mad and buy the best available. When we get a new starter, they are asked what machine they&amp;#8217;d like (people usually go for a high spec MacBook pro and cinema display). This isn&amp;#8217;t cheap, but if you&amp;#8217;re hiring, business must be good and you shouldn’t be &lt;a href="http://erskinelabs.com/business-tips-cash-is-king/"&gt;short of cash&lt;/a&gt;!&lt;/p&gt;

	&lt;p&gt;Buy great coffee, comfy chairs, whatever books are necessary and copious amounts of fine tea. Encourage them to go on training courses and attend conferences. Never forget, your team is the company&amp;#8217;s most precious asset and making them feel loved and appreciated is the best money you can ever spend.&lt;/p&gt;

	&lt;p&gt;Hopefully, you&amp;#8217;re sat there agreeing with me and not thinking I&amp;#8217;m a madman, but there is another side to consider.h2. Business isn’t always booming&lt;/p&gt;

	&lt;p&gt;It is very easy to let expenses escalate out of control. It always makes me laugh when I hear about the &lt;span class="caps"&gt;NHS&lt;/span&gt; or Blue Chip companies slashing costs, tightening budgets and 'battening down the hatches&amp;#8217;. Surely this is good, ongoing business practice and not something to be done when there is a downturn! It’s ridiculous, but you see it happen time and time again.&lt;/p&gt;

	&lt;p&gt;Regardless of how good things are, I am particularly careful about 'commodities&amp;#8217;. Electricity, gas, telephone, stationary and the biggies, rent and rates. Yes, you need a cool, funky, warm office that makes your people happy, but must it be in an expensive location? Hell no!&lt;/p&gt;

	&lt;p&gt;In London you can pay monster rent and rates whilst simultaneously forcing your staff to put up with a murderous commute and brutal living costs. Of course to skirt around this, some agencies set up in more 'bohemian&amp;#8217; parts of the city, only to be forced out, having spent a fortune on refurbishment, by rising costs as the area becomes more and more gentrified.&lt;/p&gt;

	&lt;h2&gt;A Dirty Word.&lt;/h2&gt;

	&lt;p&gt;In lean times, it’s easy to see the cost of wages and consider cutting back on staff. This makes me feel uneasy and should be avoided at all costs. Good people are &lt;a href="http://erskinelabs.com/business-tips-create-great-team/"&gt;very difficult to come by&lt;/a&gt; and frankly losing them should be the very last resort. It can be painful, but when markets recover, the firms who have retained their talent will have a huge advantage over the staff slashing, short-term thinkers.&lt;/p&gt;

	&lt;p&gt;Blue Chip CEO’s attempt to keep shareholders and banks happy: short-termism is a very British thing and sucks like a Dyson. I say man up and ride the storm with a skilled, intact workforce.&lt;/p&gt;

	&lt;h2&gt;In Summary&lt;/h2&gt;

	&lt;ul&gt;
		&lt;li&gt;Create the best working environment possible.&lt;/li&gt;
		&lt;li&gt;Give your team the tools they need to kick ass.&lt;/li&gt;
		&lt;li&gt;Be ruthless with your fixed costs and suppliers – search for the best price for everything.&lt;/li&gt;
		&lt;li&gt;Choose a great location where rents are stable in the medium/long term.&lt;/li&gt;
		&lt;li&gt;Don’t be a short-term thinker: make redundancies a last resort.&lt;/li&gt;
	&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/erskinelabs/~4/W3m12pqsuCU" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Simon Campbell</dc:creator><pubDate>Tue, 14 Jun 2011 17:21:58 +0100</pubDate><guid isPermaLink="false">http://erskinelabs.com/business-tips-spend-wisely/</guid><feedburner:origLink>http://erskinelabs.com/business-tips-spend-wisely/</feedburner:origLink></item><item><title>Responsive Web Design: Review</title><link>http://feedproxy.google.com/~r/erskinelabs/~3/Qd0nbjDMxXQ/</link><description>&lt;p&gt;Up until I read Ethan&amp;#8217;s new book, &lt;a href="http://www.abookapart.com/products/responsive-web-design"&gt;Responsive Web Design&lt;/a&gt;, I wasn&amp;#8217;t very excited about the concept at all. I liked the idea behind it, but the way people were talking about &lt;acronym title="Responsive web design"&gt;RWD&lt;/acronym&gt; made it seem like child&amp;#8217;s play.&lt;/p&gt;

	&lt;p&gt;&amp;#8220;While y’all are off resizing your browsers and tweeting about your oohs and aahs, I’ll be making real websites&amp;#8221;, I’d chuckle to myself from the toilet seat. Laptop in hand.&lt;/p&gt;

	&lt;p&gt;&lt;img src="http://imgur.com/WhkWh.png" title="Responsive Web Design, the book" alt="Responsive Web Design, the book" /&gt;&lt;/p&gt;

	&lt;p&gt;Yesterday though, my mind was changed completely and this is something I&amp;#8217;m genuinely excited about. It&amp;#8217;s the first thing web-related thats really got me going since I &amp;#8220;made&amp;#8221; my first site in Dreamweaver. It&amp;#8217;s why I slept 4 hours last night. I&amp;#8217;ve completely jumped on board and I&amp;#8217;m having a boat party, y&amp;#8217;all.&lt;/p&gt;

	&lt;p&gt;This doesn&amp;#8217;t mean all the projects we build should be responsive, but the foundation can be laid by developing our websites more logically, with flexible fonts and layout baked in.&lt;/p&gt;

	&lt;p&gt;I believe there&amp;#8217;s still quite a way to go on the best way to implement &lt;acronym title="Responsive web design"&gt;RWD&lt;/acronym&gt;, and there&amp;#8217;s hundreds of use-cases we probably haven’t even uncovered yet&amp;mdash; but that&amp;#8217;s what I’m most excited about.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/erskinelabs/~4/Qd0nbjDMxXQ" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Garrett Winder</dc:creator><pubDate>Thu, 09 Jun 2011 16:00:00 +0100</pubDate><guid isPermaLink="false">http://erskinelabs.com/responsive-web-design-review/</guid><feedburner:origLink>http://erskinelabs.com/responsive-web-design-review/</feedburner:origLink></item><item><title>Cartography with Javascript</title><link>http://feedproxy.google.com/~r/erskinelabs/~3/xgq6bRBr5o8/</link><description>&lt;p&gt;I have a nickname in the Erskine office. Well, I have several. One of the less offensive ones is &amp;#8220;the maps guy&amp;#8221;, largely on account of how many map interfaces I&amp;#8217;ve worked on over the past few months. The nickname carries with it little weight of knowledge, just the certainty that if a client asks about map visualisations, Matt will say &amp;#8220;hey, aren&amp;#8217;t you the maps guy, mate?&amp;#8221;&lt;/p&gt;

	&lt;p&gt;It has, however, led to some interesting and enjoyable discoveries of late, two of which I will detail in this post.h2. Google Maps with &lt;span class="caps"&gt;KML&lt;/span&gt; (via geoxml3)&lt;/p&gt;

	&lt;p&gt;Phil Howell and I very recently planned, designed and developed a large data-driven application with an interface that mapped tabular and graphical data to geographical areas. Users are able to navigate between these areas on a Google Maps layer with all the expected overlays and interactions in a standard map interface. &lt;/p&gt;

	&lt;p&gt;The geographical data we were given to render was &lt;span class="caps"&gt;KML&lt;/span&gt;, which is an XML-formatted document primarily used with Google Earth. Initially, we were very happy with this, as version three of the Google Maps &lt;span class="caps"&gt;API&lt;/span&gt; has native support for rendering &lt;span class="caps"&gt;KML&lt;/span&gt; overlays. We soon discovered that the support is, in fact, immature at best. The &lt;span class="caps"&gt;API&lt;/span&gt; is capable of parsing the &lt;span class="caps"&gt;KML&lt;/span&gt; and rendering it as an overlay, but interfacing with the overlays in order to add event listeners and alter parameters or attributes (read: do anything useful, whatsoever) is basically impossible, since the &lt;span class="caps"&gt;API&lt;/span&gt; renders the &lt;span class="caps"&gt;KML&lt;/span&gt; as a single overlay and will only listen for &amp;#8220;click&amp;#8221; events. Additionally, the &lt;span class="caps"&gt;KML&lt;/span&gt; file you pass to the &lt;span class="caps"&gt;API&lt;/span&gt; must be web-facing and is cached heavily by Google, which makes prototyping and testing an absolute pain.&lt;/p&gt;

	&lt;p&gt;In order to overcome this and build a usable interface, we looked to see what extensions were available, and came across &lt;a href="http://code.google.com/p/geoxml3/"&gt;geoxml3&lt;/a&gt;, a client-side &lt;span class="caps"&gt;KML&lt;/span&gt; parser for Google Maps. What geoxml3 does, in a nutshell, is read the &lt;span class="caps"&gt;KML&lt;/span&gt; and render it as standard poly overlays which can accept all the standard events and parameters that are unavailable to the native &lt;span class="caps"&gt;KML&lt;/span&gt; rendering.&lt;/p&gt;

	&lt;p&gt;&lt;img src="http://i.imgur.com/fzrf0.png" title="geoxml3-driven map" alt="geoxml3-driven map" /&gt;&lt;/p&gt;

	&lt;p&gt;The implementation is quite simple, you need only to instantiate a geoxml3 object, pass it a few parameters, and call a parse method which accepts a single or array of local &lt;span class="caps"&gt;KML&lt;/span&gt; files. The real power, however, comes when you write a success callback which has access to all the rendered document&amp;#8217;s overlays. In there you can stick all your lovely event listeners for maximum interaction design.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;var geoxml_parser = new geoXML3.parser({
    map: map_interface, // Google Maps object
    zoom: true, // Zoom in on KML boundaries on render
    singleInfoWindow: true, // Display only one infowindow
    processStyles: true, // Honour KML styles
    afterParse: interactions // Callback for interactions
});
&lt;/code&gt;
&lt;code&gt;// Callback function
function interactions(doc) {
&lt;/code&gt;
&lt;code&gt;    // Loop through each polygon
    $.each(doc[0].gpolygons, function(index, value) { 
&lt;/code&gt;
&lt;code&gt;        // Add listener
        google.maps.event.addListener(this, &amp;#34;mouseover&amp;#34;, function() {
            // Change some attributes of this layer
            this.setOptions({fillOpacity: 0.75, strokeColor: &amp;#34;#FFFFFF&amp;#34;, zIndex: 1});
        });
&lt;/code&gt;
&lt;code&gt;    });
&lt;/code&gt;
&lt;code&gt;}
&lt;/code&gt;
&lt;code&gt;geoxml_parser.parse(&amp;#34;/static/kml/states.kml&amp;#34;); // Parse KML
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;And so your dull, flat map suddenly turns into something more familiar to your users. Hooray!&lt;/p&gt;

	&lt;h2&gt;Backwards-compatible SVGs (via svgweb)&lt;/h2&gt;

	&lt;p&gt;A much higher-profile project is the &lt;a href="http://code.google.com/p/svgweb/"&gt;svgweb library&lt;/a&gt;, which adds support for &lt;span class="caps"&gt;SVG&lt;/span&gt; for almost all major desktop browsers (hell, even IE6) by rendering the &lt;span class="caps"&gt;SVG&lt;/span&gt; as Flash for non-compatible user agents. In this case, we had to provide an interactive map interface showing a high-level overview of the United States. We decided to use a freely available &lt;span class="caps"&gt;SVG&lt;/span&gt; document and overlay data and interactions on it via Javascript. The advantage of this over a custom Google Maps interface is speed of both client-side rendering and development.&lt;/p&gt;

	&lt;p&gt;With the &lt;span class="caps"&gt;SVG&lt;/span&gt; properly embedded using the library (using conditionals to target incompatible browsers), you merely write your listeners and interactions inside an &lt;code&gt;SVGLoad&lt;/code&gt; window event. One caveat of working with &lt;span class="caps"&gt;SVG&lt;/span&gt; documents at present is that the jQuery library does not currently support traversal of the &lt;span class="caps"&gt;SVG&lt;/span&gt; &lt;span class="caps"&gt;DOM&lt;/span&gt;, which means cracking out some vanilla Javascript, which isn&amp;#8217;t a problem since the library includes backports of some features missing in non-compliant browsers (including support of &lt;code&gt;addEventListener&lt;/code&gt;). There&amp;#8217;s always &lt;a href="https://developer.mozilla.org/en/JavaScript"&gt;the MDN&lt;/a&gt; if you need a refresher, anyway.&lt;/p&gt;

	&lt;p&gt;&lt;img src="http://i.imgur.com/75Uk3.png" title="Native KML-based map" alt="Native KML-based map" /&gt;&lt;/p&gt;

	&lt;p&gt;The crazy thing is you haven&amp;#8217;t written any hacks or browser sniffing code (other than the conditional in your document to embed in the correct fashion), and your &lt;span class="caps"&gt;SVG&lt;/span&gt; will just work in every browser, complete with all your Javascript interactions. It&amp;#8217;s pure black magic. And this is before you even press zoom in your browser eighteen times to inspect your razor-sharp vector. Fantastic.&lt;/p&gt;

	&lt;p&gt;I thoroughly recommend having a look through the various demos in the &lt;a href="http://code.google.com/p/svgweb/"&gt;svgweb documentation&lt;/a&gt;, if only just to see how simple but powerful it  is.&lt;/p&gt;

	&lt;p&gt;So those are just two of the things we&amp;#8217;ve discovered recently that have made our working lives much easier. Have you come across any similar libraries, frameworks or plugins for simplifying the development of map interfaces?&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/erskinelabs/~4/xgq6bRBr5o8" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">James Willock</dc:creator><pubDate>Mon, 09 May 2011 11:54:17 +0100</pubDate><guid isPermaLink="false">http://erskinelabs.com/cartography-javascript/</guid><feedburner:origLink>http://erskinelabs.com/cartography-javascript/</feedburner:origLink></item><item><title>EE2 language switcher extension</title><link>http://feedproxy.google.com/~r/erskinelabs/~3/7e_BZ3ZvFes/</link><description>&lt;p&gt;We&amp;#8217;re in the process of building a multi-lingual online magazine site powered by ExpressionEngine and over last weekend I searched around for an add-on that I could use to implement the language switching part. After a quick search on &lt;a href="http://devot-ee.com"&gt;Devot-ee&lt;/a&gt; I found a couple of potential candidates but in the end decided to roll my own. While it may be quite specific to our own needs, I thought I&amp;#8217;d stick it up on &lt;a href="https://github.com/erskinedesign/ed.language_switcher.ee_addon"&gt;Github&lt;/a&gt; and write it up here.h3. Requirements&lt;/p&gt;

	&lt;p&gt;I&amp;#8217;m definitely not in the same class as our developers but I can find my way around creating basic extensions and plugins for ExpressionEngine. My first job was to outline my requirements. A bulleted list on my notebook looked a little something like this:&lt;/p&gt;

	&lt;ol&gt;
		&lt;li&gt;Site owners should be able to set a default language.&lt;/li&gt;
		&lt;li&gt;The extension must limit the allowed languages to a list set by the site owners.&lt;/li&gt;
		&lt;li&gt;Users must be able to select a preferred language that will be honoured on future visits.&lt;/li&gt;
		&lt;li&gt;Template developers should have a template tag to use that outputs the default or user selected language so that the correct content can be conditionally displayed.&lt;/li&gt;
	&lt;/ol&gt;

	&lt;p&gt;That&amp;#8217;s pretty much it really. As I say, you can find the extension on &lt;a href="https://github.com/erskinedesign/ed.language_switcher.ee_addon"&gt;Github&lt;/a&gt; and it should be self-explanitory. Here&amp;#8217;s a quick walk-through anyway though:&lt;/p&gt;

	&lt;h3&gt;Site owners should be able to set a default language&lt;/h3&gt;

	&lt;p&gt;The first thing we do is create a global variable in &lt;code&gt;index.php&lt;/code&gt; which stores the default language for the site.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$global_vars = array();
$global_vars[&amp;#39;default_language&amp;#39;] = &amp;#34;de&amp;#34;;
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;That&amp;#8217;s one requirement down.&lt;/p&gt;

	&lt;p&gt;We activate the extension by inserting a query with the hook we&amp;#8217;ll be using (in our case &lt;a href="http://expressionengine.com/developers/extension_hooks/sessions_end/"&gt;sessions_end&lt;/a&gt;) and the name of the class method we&amp;#8217;ll be writing that we&amp;#8217;d like called. Again in our case we&amp;#8217;ve called this &lt;em&gt;'sessions_end&amp;#8217;&lt;/em&gt; but we could have called it anything we liked.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;public function activate_extension()
{
    $default_settings = serialize( $this-&amp;#62;default_settings() );
&lt;/code&gt;
&lt;code&gt;    $this-&amp;#62;EE-&amp;#62;db-&amp;#62;insert(
		&amp;#39;extensions&amp;#39;,
		array(
			&amp;#39;class&amp;#39; =&amp;#62; __CLASS__,
			&amp;#39;method&amp;#39; =&amp;#62; &amp;#39;sessions_end&amp;#39;,
			&amp;#39;hook&amp;#39; =&amp;#62; &amp;#39;sessions_end&amp;#39;,
			&amp;#39;settings&amp;#39; =&amp;#62; $default_settings,
			&amp;#39;priority&amp;#39; =&amp;#62; 10,
			&amp;#39;version&amp;#39; =&amp;#62; $this-&amp;#62;version,
			&amp;#39;enabled&amp;#39; =&amp;#62; &amp;#39;y&amp;#39;
		)
	);
}
&lt;/code&gt;&lt;/pre&gt;

	&lt;h3&gt;The extension must limit the allowed languages to a list set by the site owners&lt;/h3&gt;

	&lt;p&gt;We give the extension the ability have settings. We want a settings form with just one field giving the site owners the ability to enter the allowed languages.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;public function settings()
{
    $settings = array();
&lt;/code&gt;
&lt;code&gt;    $settings[&amp;#39;allowed_languages&amp;#39;] = &amp;#39;&amp;#39;;
&lt;/code&gt;
&lt;code&gt;    return $settings;
}
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;These allowed languages should be entered as a piped list of two character country codes, i.e. en|de|fr. That kind of thing.&lt;/p&gt;

	&lt;p&gt;We now create a private function within our extension class that allows us to check whether the inputs (either from the user or a set cookie) match one of the allowed languages.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;private function is_allowed_language($value)
{
    $langs = explode(&amp;#34;|&amp;#34;, $this-&amp;#62;settings[&amp;#39;allowed_languages&amp;#39;]);
&lt;/code&gt;
&lt;code&gt;    if(in_array($value, $langs))
    {
	return TRUE;
    }
}
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;That&amp;#8217;s another requirement done.&lt;/p&gt;

	&lt;p&gt;So now we&amp;#8217;re all set to write the actual method that will be called by the extension hook we&amp;#8217;ve specified. This starts off with:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;public function sessions_end()
{
    $user_language = ( $this-&amp;#62;EE-&amp;#62;config-&amp;#62;_global_vars[&amp;#39;default_language&amp;#39;] != &amp;#34;&amp;#34; ) ? $this-&amp;#62;EE-&amp;#62;config-&amp;#62;_global_vars[&amp;#39;default_language&amp;#39;] : &amp;#34;en&amp;#34;;
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Here we&amp;#8217;re setting the value of a &lt;code&gt;$user_language&lt;/code&gt; variable to equal that of the global variable we defined in &lt;code&gt;index.php&lt;/code&gt;. It there isn&amp;#8217;t one we&amp;#8217;re going to default to English. &lt;/p&gt;

	&lt;h3&gt;Users must be able to select a preferred language that will be honoured on future visits&lt;/h3&gt;

	&lt;p&gt;Next we check to see if there&amp;#8217;s a cookie on the user&amp;#8217;s machine called &lt;em&gt;'user_language&amp;#8217;&lt;/em&gt;, and if there is, we also check whether it&amp;#8217;s value is one of our allowed languages. This cookie is set later on in this method when a user selects a preferred language.&lt;/p&gt;

	&lt;p&gt;If the cookie does exist we set it&amp;#8217;s value as the new value of our &lt;code&gt;$user_language&lt;/code&gt; variable.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;if ( $this-&amp;#62;EE-&amp;#62;input-&amp;#62;cookie(&amp;#39;user_language&amp;#39;) AND $this-&amp;#62;is_allowed_language($this-&amp;#62;EE-&amp;#62;input-&amp;#62;cookie(&amp;#39;user_language&amp;#39;)) ) {
&lt;/code&gt;
&lt;code&gt;    $user_language = $this-&amp;#62;EE-&amp;#62;input-&amp;#62;cookie(&amp;#39;user_language&amp;#39;);
}
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;We now do another check to see whether the user has chosen to select a preferred language. When they do this a &lt;code&gt;$_GET&lt;/code&gt; variable called &lt;em&gt;'lang&amp;#8217;&lt;/em&gt; is added to the site&amp;#8217;s &lt;span class="caps"&gt;URL&lt;/span&gt; with the chosen language as it&amp;#8217;s value. So we check to see if this &lt;code&gt;$_GET&lt;/code&gt; variable exists, and again check to see if it&amp;#8217;s value is in our allowed languages list. If it is we set it as the new value of our &lt;code&gt;$user_language&lt;/code&gt; variable. At this point we also create a cookie called &lt;em&gt;'user_language&amp;#8217;&lt;/em&gt; and set it&amp;#8217;s value to using the same &lt;code&gt;$user_language&lt;/code&gt; variable.&lt;/p&gt;

	&lt;p&gt;So now the user can select a preferred language by either clicking a link or using a form select that would result in a &lt;code&gt;$_GET&lt;/code&gt; variable being added to the &lt;span class="caps"&gt;URL&lt;/span&gt;. Their selection is stored as a cookie meaning the can revisit the site later and their preferred language choice will be used by default next time. Another requirement done.&lt;/p&gt;

	&lt;p&gt;All that&amp;#8217;s left to do is create a global variable that can be used within your templates to conditionally display the correct content. &lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$this-&amp;#62;EE-&amp;#62;config-&amp;#62;_global_vars[&amp;#39;user_language&amp;#39;] = $user_language;
&lt;/code&gt;&lt;/pre&gt;

	&lt;h3&gt;Template developers should have a template tag to use that outputs the default or user selected language&lt;/h3&gt;

	&lt;p&gt;Add the template tag &lt;code&gt;{user_language}&lt;/code&gt; to any of your templates and you should see the correct country code outputted. Add a &lt;code&gt;$_GET&lt;/code&gt; variable called &lt;em&gt;'lang&amp;#8217;&lt;/em&gt; with a value that&amp;#8217;s been includes in your allowed languages setting and you should see the value of &lt;code&gt;{user_language}&lt;/code&gt; change. Close and restart your session on the site and you should also see your chosen language honoured (by way of the cookie) rather than the default language set in &lt;code&gt;index.php&lt;/code&gt;.&lt;/p&gt;

	&lt;p&gt;You can change any of the variable names to suit your needs. We&amp;#8217;re using Newism&amp;#8217;s &lt;a href="https://github.com/newism/nsm.multi_language.ee_addon/"&gt;nsm.multi_language.ee_addon&lt;/a&gt; to actually store some of the translations. That add-on requires a global variable called &lt;em&gt;'nsm_lang&amp;#8217;&lt;/em&gt;. Rather than using that as our template tag we&amp;#8217;ve simply added a further line to our extension.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$this-&amp;#62;EE-&amp;#62;config-&amp;#62;_global_vars[&amp;#39;nsm_lang&amp;#39;] = $user_language;
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;And that&amp;#8217;s it.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/erskinelabs/~4/7e_BZ3ZvFes" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jamie Pittock</dc:creator><pubDate>Wed, 20 Apr 2011 23:04:07 +0100</pubDate><guid isPermaLink="false">http://erskinelabs.com/ee2-language-switcher-extension/</guid><feedburner:origLink>http://erskinelabs.com/ee2-language-switcher-extension/</feedburner:origLink></item><item><title>Business tips: steer 030 magnetic</title><link>http://feedproxy.google.com/~r/erskinelabs/~3/fgmZ7RaRLwc/</link><description>&lt;p&gt;It may be an age thing, but over the past few years with the advent of instant communication such as email, Basecamp and Skype, people are ceasing to acknowledge their receipt of messages and tasks. This is frustrating and it can lead to all sorts of problems.Among many other things, I am a Commercial Skipper. Part of the training and subsequent examination is based on the ability to navigate a vessel ‘blind’ to simulate fog; the most feared of all maritime weather conditions!&lt;/p&gt;

	&lt;p&gt;So, there you are sat below deck, with all the blinds closed, armed only with your tide tables, almanac, chart, dividers, pencil and stopwatch. The helmsman is at the wheel with the instructor/examiner looking over his shoulder to make sure you don’t collide with someone or something. You set off from a known position with the task of navigating, using only these simple tools, to another position defined by the instructor without any visual reference.&lt;/p&gt;

	&lt;p&gt;For this to work, you need to give clear instructions to the helmsman: &amp;#8220;Steer 030 degrees Magnetic at a speed of 8 Knots; I&amp;#8217;ll count down when you need to change course and speed&amp;#8221;.&lt;/p&gt;

	&lt;p&gt;The helmsman will always repeat the instruction back to you; that way you know they&amp;#8217;ve heard you correctly. Once they&amp;#8217;re on the correct course and travelling at the correct speed they&amp;#8217;ll confirm again. The reason for all these confirmations is obvious &amp;#8211; so that you know, as the navigator, that they&amp;#8217;re doing exactly as instructed. In a real world situation both the ship and the lives of the crew depend on it!&lt;/p&gt;

	&lt;p&gt;In business, the consequences are not quite as dramatic, but they&amp;#8217;re still troublesome and they inevitably end up costing you money. &lt;/p&gt;

	&lt;p&gt;Say you send an email to ‘Fred’ in the development team to change a &lt;span class="caps"&gt;DNS&lt;/span&gt; record for a client and he doesn’t respond. You then have the mental overhead of wondering whether its been done or not. If the client calls, what do you say?&lt;/p&gt;

	&lt;p&gt;At Erskine, we do it like this.&lt;/p&gt;

	&lt;blockquote&gt;
		&lt;p&gt;&lt;strong&gt;Simon&lt;/strong&gt;: &amp;#8220;Fred can you change the &lt;span class="caps"&gt;DNS&lt;/span&gt; record for client x to 123.456.789.100&amp;#8221;&lt;br /&gt;&lt;strong&gt;Fred&lt;/strong&gt;: &amp;#8220;I&amp;#8217;m busy right now, when do you need it done?&amp;#8221;&lt;br /&gt;&lt;strong&gt;Simon&lt;/strong&gt;: &amp;#8220;1400 tomorrow&amp;#8221;&lt;br /&gt;&lt;strong&gt;Fred&lt;/strong&gt;: &amp;#8220;Cool&amp;#8221;&lt;/p&gt;
	&lt;/blockquote&gt;

	&lt;p&gt;It doesn&amp;#8217;t need thinking about again, Fred has it in his ‘to do’ list and you know it!&lt;/p&gt;

	&lt;p&gt;Next day at 10:00 &amp;#8211; &lt;/p&gt;

	&lt;blockquote&gt;
		&lt;p&gt;&lt;strong&gt;Fred&lt;/strong&gt;: &amp;#8220;Hey Simon”&lt;br /&gt;&lt;strong&gt;Simon&lt;/strong&gt;: &amp;#8220;Hey&amp;#8221;&lt;br /&gt;&lt;strong&gt;Fred&lt;/strong&gt;: &amp;#8220;&lt;span class="caps"&gt;DNS&lt;/span&gt; has been changed to 123.456.789.100, but it&amp;#8217;ll take a few hours to propagate&amp;#8221;&lt;br /&gt;&lt;strong&gt;Simon&lt;/strong&gt;: &amp;#8220;Excellent work, I&amp;#8217;ll wang an email off to the client&amp;#8221;&lt;/p&gt;
	&lt;/blockquote&gt;

	&lt;p&gt;Lovely&amp;#8230;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/erskinelabs/~4/fgmZ7RaRLwc" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Simon Campbell</dc:creator><pubDate>Wed, 30 Mar 2011 17:09:19 +0100</pubDate><guid isPermaLink="false">http://erskinelabs.com/business-tips-steer-030-magnetic/</guid><feedburner:origLink>http://erskinelabs.com/business-tips-steer-030-magnetic/</feedburner:origLink></item><item><title>Manchester Design Symposium</title><link>http://feedproxy.google.com/~r/erskinelabs/~3/6FxQ4rt_8xg/</link><description>&lt;p&gt;A couple of days ago James and I headed up north for the &lt;a href="http://www.manchesterdesignsymposium.com/"&gt;Manchester Design Symposium&lt;/a&gt;. The lineup was pretty diverse; including talks from John Walters (&lt;a href="http://blog.eyemagazine.com"&gt;Eye Magazine&lt;/a&gt;), Bruno Maag (&lt;a href="http://www.daltonmaag.com/"&gt;Dalton Maag&lt;/a&gt;) and Johnathan Barnbrook (&lt;a href="http://barnbrook.net"&gt;Barnbrook&lt;/a&gt;). The best thing about the event for me, was listening to the sometimes opposing views of very different designers on the value of their craft. It also left me feeling a bit nostalgic about my days as a student.&lt;/p&gt;

	&lt;p&gt;Hopefully it&amp;rsquo;s the first of many similar events.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/erskinelabs/~4/6FxQ4rt_8xg" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phil Swan</dc:creator><pubDate>Fri, 25 Mar 2011 17:07:29 +0000</pubDate><guid isPermaLink="false">http://erskinelabs.com/manchester-design-symposium/</guid><feedburner:origLink>http://erskinelabs.com/manchester-design-symposium/</feedburner:origLink></item><item><title>Three Men and a Bike</title><link>http://feedproxy.google.com/~r/erskinelabs/~3/cv7n3nb_804/</link><description>&lt;p&gt;&lt;img src="http://erskinelabs.com/media/images/content/galleries/5552797565_b6af54d59e_b.jpeg" alt="Three Men and a Bike" /&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/erskinelabs/~4/cv7n3nb_804" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt Smith</dc:creator><pubDate>Wed, 23 Mar 2011 16:44:27 +0000</pubDate><guid isPermaLink="false">http://erskinelabs.com/three-men-and-bike/</guid><feedburner:origLink>http://erskinelabs.com/three-men-and-bike/</feedburner:origLink></item><item><title>Tweet Your Wisdom</title><link>http://feedproxy.google.com/~r/erskinelabs/~3/fvPCwLMvnJ4/</link><description>&lt;p&gt;I guess you could call this a marketing exercise, but it certainly didn&amp;#8217;t feel like one. In January of this year we screen-printed 120 posters featuring wise Tweets we&amp;#8217;d collected through our &lt;a href="http://tweetyourwisdom.com"&gt;Tweet Your Wisdom&lt;/a&gt; website. These posters were given to attendees of the &lt;a href="http://naconf.com"&gt;New Adventures in Web Design&lt;/a&gt; conference, which took place in Nottingham in January.&lt;/p&gt;

	&lt;p&gt;&lt;img src="http://media.erskinelabs.com/images/content/entries/tyw_1.jpg" title="One of our Tweet Your Wisdom posters" alt="One of our Tweet Your Wisdom posters" /&gt;&lt;/p&gt;

	&lt;p&gt;Over 200 Twitter users tweeted their apparent wisdom, and through an internal, anonymous voting process, we selected the following six Tweets to print, all of which subscribed to the ethos of the project.&lt;/p&gt;

	&lt;p&gt;&lt;em&gt;&amp;#8220;It will all be okay in the end. If its not okay, its not the end.&amp;#8221;&lt;/em&gt;&lt;br /&gt;–&lt;a href="http://twitter.com/robeam"&gt;@robeam&lt;/a&gt;&lt;/p&gt;

	&lt;p&gt;&lt;em&gt;&amp;#8220;Sometimes the best plan is not to have one.&amp;#8221;&lt;/em&gt;&lt;br /&gt;–&lt;a href="http://twitter.com/mattberridge"&gt;@mattberridge&lt;/a&gt;&lt;/p&gt;

	&lt;p&gt;&lt;em&gt;&amp;#8220;Never wrestle a client. You both get dirty and the client likes it.&amp;#8221;&lt;/em&gt;&lt;br /&gt;–&lt;a href="http://twitter.com/replete"&gt;@replete&lt;/a&gt;&lt;/p&gt;

	&lt;p&gt;&lt;em&gt;&amp;#8220;The person who never made a mistake never made anything.&amp;#8221;&lt;/em&gt;&lt;br /&gt;–&lt;a href="http://twitter.com/andyharris"&gt;@andyharris&lt;/a&gt;&lt;/p&gt;

	&lt;p&gt;&lt;em&gt;&amp;#8220;Do something you&amp;#8217;ve never done before.&amp;#8221;&lt;/em&gt;&lt;br /&gt;–&lt;a href="http://twitter.com/gregwood"&gt;@gregwood&lt;/a&gt;&lt;/p&gt;

	&lt;p&gt;&lt;em&gt;&amp;#8220;I went to naconf and all I got was this awesome poster.&amp;#8221;&lt;/em&gt;&lt;br /&gt;–&lt;a href="http://twitter.com/greenboyroy"&gt;@greenboyroy&lt;/a&gt;&lt;/p&gt;

	&lt;p&gt;These Tweets were then set in Akzidenz-Grotesk, and handed over to Norm &amp; Alex at &lt;a href="http://www.wastestudio.com/"&gt;Waste Studio&lt;/a&gt; down the road from us. They did a great job of helping us select appropriate inks and paper stock, not to mention actually printing the posters for us. They&amp;#8217;re a talented graphic design team as well, so do check them out. Thanks guys!&lt;/p&gt;

	&lt;p&gt;The end result was 120 prints that felt, smelt and most importantly looked great. I really hope they&amp;#8217;re all in nice frames above desks somewhere, so if you&amp;#8217;re having a bad day you can look up and be comforted, motivated or maybe just amused.&lt;/p&gt;

	&lt;p&gt;&lt;img src="http://media.erskinelabs.com/images/content/entries/tyw_2.jpg" title="Type &amp; texture detail." alt="Type &amp; texture detail." /&gt;&lt;/p&gt;

	&lt;p&gt;&lt;img src="http://media.erskinelabs.com/images/content/entries/tyw_3.jpg" title="Sometimes the best plan is not to have one." alt="Sometimes the best plan is not to have one." /&gt;&lt;/p&gt;

	&lt;p&gt;&lt;img src="http://media.erskinelabs.com/images/content/entries/tyw_4.jpg" title="It will all be okay in the end. If it's not okay, it's not the end." alt="It will all be okay in the end. If it's not okay, it's not the end." /&gt;&lt;/p&gt;

	&lt;p&gt;&lt;img src="http://media.erskinelabs.com/images/content/entries/tyw_5.jpg" title="I went to @naconf and all I got was this awesome poster" alt="I went to @naconf and all I got was this awesome poster" /&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/erskinelabs/~4/fvPCwLMvnJ4" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Greg Wood</dc:creator><pubDate>Thu, 03 Mar 2011 15:52:04 +0000</pubDate><guid isPermaLink="false">http://erskinelabs.com/tweet-your-wisdom/</guid><feedburner:origLink>http://erskinelabs.com/tweet-your-wisdom/</feedburner:origLink></item></channel></rss>

