<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>front-end-development &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/front-end-development/</link>
	<description>Feed of posts on WordPress.com tagged "front-end-development"</description>
	<pubDate>Thu, 23 May 2013 17:43:51 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Digging into twitter bootstrap]]></title>
<link>http://rachelmdonovan.wordpress.com/2011/12/22/digging-into-twitter-bootstrap/</link>
<pubDate>Thu, 22 Dec 2011 16:33:34 +0000</pubDate>
<dc:creator>rachel</dc:creator>
<guid>http://rachelmdonovan.wordpress.com/2011/12/22/digging-into-twitter-bootstrap/</guid>
<description><![CDATA[I dove headfirst into twitter bootstrap a few weeks ago, here are some of my notes / findings. How I]]></description>
<content:encoded><![CDATA[<p>I dove headfirst into twitter bootstrap a few weeks ago, here are some of my notes / findings.</p>
<p>How I use it &#8211; as part of a Rails 3.1 app, with SASS and Compass</p>
<p><strong>Setup &#8211; pure CSS vs Less vs Sass</strong></p>
<p><a href="http://rubysource.com/twitter-bootstrap-less-and-sass-understanding-your-options-for-rails-3-1/">Twitter Bootstrap, Less, and Sass: Understanding Your Options for Rails 3.1</a></p>
<p>In my case we went with the <a href="https://github.com/seyhunak/twitter-bootstrap-rails">twitter-bootstrap-rails gem</a> &#8211; this lets us set variables in the bootstrap.less file and then we call another file that includes all of our sass. I spent a little time getting my custom variables in the bootstrap.less file to show up and then was a little disappointed with the amount of things you can do with the variables. A lot of the colors are hard coded in the source, even really obvious ones I suspect people would want to change, like filler color. In my opinion its almost so little, its a waste of time to get less up and running, might as well just overwrite static styles until better variables are available. Also from reading their response to issues on github improving the variable flexibility isn&#8217;t a high priority for them. (if you are already using less in your projects, then using some of the mixins may be helpful &#8211; I wanted to keep my project sass though, and found it easier to just create mixins on that side). All a matter of preference, I guess.</p>
<p>Note &#8211; if you are transitioning from using blueprint with compass make sure blueprint is really gone, I had some hidden places it was getting included and it does not play nice with Twitter Bootstrap.</p>
<p><strong>Customizing the Look</strong></p>
<p>For the most part this is self explanatory.</p>
<p>I did get tripped up in my attempt to overwrite the header and buttons in ie. The <a href="http://compass-style.org/reference/compass/css3/gradient/">Compass mixin</a> I used in my custom styles didn&#8217;t include the ie filter code which caused ie to fall back to the twitter bootstrap colors instead of just the background-color.  I added this mixin, <a href="http://hungrysquirrel.posterous.com/sass-mixin-for-ie-linear-gradient-filter">sass mixin for ie linear gradient filter</a>, and used it in addition to the compass gradient mixin.</p>
<p>So for exmaple:</p>
<pre class="brush: css; title: ; notranslate" title="">
.topbar-inner {
@include linear-gradient(color-stops($color_gray2, $color_gray));
@include ie-linear-gradient($color_gray2, $color_gray);
}
</pre>
<p>another way to handle it is to write a mixin that just kills the filter</p>
<pre class="brush: css; title: ; notranslate" title="">
@mixin kill-filter() {
 filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
 -ms-filter: none;
 }
</pre>
<p><strong>Modals Baby</strong></p>
<p>Pretty modals were one of the reasons we are making the switch to twitter bootstrap.</p>
<p>Great intro &#8211; <a href="http://paynedigital.com/2011/11/bootbox-js-alert-confirm-dialogs-for-twitter-bootstrap">http://paynedigital.com/2011/11/bootbox-js-alert-confirm-dialogs-for-twitter-bootstrap</a></p>
<p>I&#8217;d stay away from using .fade with the modals as it breaks links and buttons in chrome (<a href="https://github.com/twitter/bootstrap/issues/706">discussion of the issue</a>)</p>
<p>You can add the close modal x, just adding &#60;a href=&#8221;#&#8221; class=&#8221;close&#8221;&#62;x&#60;/a&#62; in the modal header, it styles and just works, magic!</p>
<p><strong>Get the Gist</strong></p>
<p>I pulled together some of the styles and mixins I found helpful getting Twitter Bootstrap and Compass to be a full solution for me. Still a work in progress, add / comment on <a href="https://gist.github.com/1470503">twitter_bootstrap_addons.scss</a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Front End Developer – £30K – Central London ]]></title>
<link>http://barrattjames.wordpress.com/2011/11/29/front-end-developer-30k-central-london/</link>
<pubDate>Tue, 29 Nov 2011 17:13:32 +0000</pubDate>
<dc:creator>barrattjames</dc:creator>
<guid>http://barrattjames.wordpress.com/2011/11/29/front-end-developer-30k-central-london/</guid>
<description><![CDATA[Job Title: Front End Developer Role Sector: Digital Agency Skills: HTML, XHTML, CSS, JQuery, AJAX, H]]></description>
<content:encoded><![CDATA[<p>Job Title: Front End Developer Role<br />
Sector: Digital Agency<br />
Skills: HTML, XHTML, CSS, JQuery, AJAX, HTML5, CSS3<br />
Salary: £30k<br />
Location: Central London</p>
<p><strong>The Role</strong>:<br />
Digital agency requiring a full time web developer to work on a flagship project, as well as supporting the services and products offered into their strong client portfolio.</p>
<p>This is a front end developer role which means the primary responsibilities will focus around producing the customer facing portion of the site experience. In addition to this an understanding of the development lifecycle and any agency experience would highly beneficial.</p>
<p><strong>A strong working knowledge of the following skills is essential:</strong></p>
<p>•           HTML/XHTML and CSS</p>
<p>•           being able to hand code entire sites from scratch in any given editor, in a well-organised and scalable manner.</p>
<p>•           JavaScript and an understanding of JavaScript frameworks, especially JQuery.</p>
<p>•           Ability to proficiently code sites in AJAX.</p>
<p>•           Ability to work with designers on cross browser functionality</p>
<p>•           Experience with developing sites with mobile and tablet functionality</p>
<p>•           Experience of HTML5 and CSS3</p>
<p>•           Knowledge &#38; experience of SVN or VSS</p>
<p>•           Knowledge &#38; experience of Quality Assurance processes and methodologies.</p>
<p><strong>Any of the following would be beneficial: </strong></p>
<p>•           Client facing experience</p>
<p>•           An agency background</p>
<p>•           Experience of Google Analytics, WebTrends or Omniture</p>
<p>•           Some back-end experience e.g. PHP + MySQL</p>
<p>•           Knowledge of Social Media or API development e.g. Facebook Apps</p>
<p>Note: Portfolio’s or previous URLs worked on will be required along with submission of any CV</p>
<p><strong>Company:</strong><br />
This is a full service digital agency. This agency covers creative planning to design, development, content creation and social marketing. This therefore will offer the successful candidate the opportunity to work a variety of different projects across a number of different clients with diverse and different needs.<br />
If you are interested or for more information please contact James Barratt at Xcede Recruitment Solutions on: 0207 886 0717or <a href="mailto:jamesb@xcedesolutions.com">jamesb@xcedesolutions.com</a>.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Senior Flash Developer Role - up to £45K - Central London]]></title>
<link>http://barrattjames.wordpress.com/2011/11/29/senior-flash-developer-role-up-to-45k-central-london/</link>
<pubDate>Tue, 29 Nov 2011 17:12:43 +0000</pubDate>
<dc:creator>barrattjames</dc:creator>
<guid>http://barrattjames.wordpress.com/2011/11/29/senior-flash-developer-role-up-to-45k-central-london/</guid>
<description><![CDATA[Job Title: Senior Flash Developer Role Sector: Digital Agency Skills: Flash, ActionScript, OOP, AS3,]]></description>
<content:encoded><![CDATA[<p><strong>Job Title: </strong>Senior Flash Developer Role</p>
<p><strong>Sector: </strong>Digital Agency</p>
<p><strong>Skills: </strong>Flash, ActionScript, OOP, AS3, HTML, CSS, JavaScript, iOS, DoubleClick, PureMVC, API</p>
<p><strong>Salary: </strong>up to £45k</p>
<p><strong>Location: </strong>Central London</p>
<p><strong> </strong></p>
<p><strong>The Role: </strong></p>
<p><strong>  </strong></p>
<p>We’re looking for someone with senior-level programming skills in AS3, who can handle pretty much any challenge. The main part of the role is building elegant, scalable Flash applications, scoping and architecting projects, contributing to concepting and building rapid prototypes. That’s not say that you won’t be occasionally asked to fix a banner, but at least it will be a break from concentrating on the complex architecture of your latest application.</p>
<p>As you will know, the role of a Flash developer is quickly diversifying and we our reshaping our Flash team to match. The majority of the work we do in the Flash team is still Flash, but we are training and exploring; Flash for iOS and Andrioid, HTML5, Processing, Open Frameworks, interactive installations etc.</p>
<p><strong>  </strong></p>
<p><strong>Key skills for this role are:</strong></p>
<p>-Robotlegs &#38; PureMVC</p>
<p>-Eclipse-based IDE</p>
<p>-Consistent and extendable coding style</p>
<p>-Solid knowledge of design patterns</p>
<p>-Can pick up new technologies/APIs quickly</p>
<p>-Passionate about technology</p>
<p>-Version control</p>
<p>-Excellent time management</p>
<p>-Excellent communication skills</p>
<p><strong>Nice to haves:</strong></p>
<p>-Flex</p>
<p>-Other programming languages (PHP, JavaScript, ect)</p>
<p><strong> </strong></p>
<p><strong>Company: </strong></p>
<p><strong> </strong></p>
<p>This is a digital agency with a diverse portfolio and a number of different clients. They are well known throughout the industry and a company that delivers on quality and never shies away from a complicated technical project.</p>
<p>If you are interested or for more information please contact James Barratt at Xcede Recruitment Solutions on: 0207 886 0717 or jamesb@xcedesolutions.com.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Technical Lead – up to £60K – Central London]]></title>
<link>http://barrattjames.wordpress.com/2011/11/29/technical-lead-up-to-60k-central-london/</link>
<pubDate>Tue, 29 Nov 2011 17:10:11 +0000</pubDate>
<dc:creator>barrattjames</dc:creator>
<guid>http://barrattjames.wordpress.com/2011/11/29/technical-lead-up-to-60k-central-london/</guid>
<description><![CDATA[Job Title: Technical Lead Sector: Digital Agency Skills: HTML, JavaScript, AJAX, JQuery, PHP, Action]]></description>
<content:encoded><![CDATA[<p>Job Title: Technical Lead</p>
<p>Sector: Digital Agency<br />
Skills: HTML, JavaScript, AJAX, JQuery, PHP, ActionScript, Flash, SEO, CRM, QA, Java, J2EE<br />
Salary: up to £60k<br />
Location: Central London</p>
<p><strong>The Company </strong></p>
<p>Welcome to the future. We may not have hover boards, but we think it’s a pretty exciting place to be. It’s a tough place too. How we communicate in the 21<sup>st</sup> century is different to the 20<sup>th</sup> century. We need to understand how digital ecosystems work within &#38; alongside established channels. We need to create brands and ideas that can spread &#38; evolve. We need to work with people as much as with publishers.</p>
<p>We make ideas that can live anywhere &#38; stop nowhere. We’re digital natives but communications nomads, comfortable in whichever channels brands need us to work. We know how to work with communities and individuals to make ideas move further.</p>
<p>We’re working with brands that want a brilliant future. Not everyone has entered the 21st century yet. But if you’re here, we should talk.</p>
<p><strong>The Role </strong></p>
<p>As Technical Director you’ll have the opportunity to assume responsibility and strategic direction for the technical component of all deliverables to our clients, ensuring that projects are optimally specified and trafficked through the agency – and adhering to the chosen process methodology.</p>
<p>This role would suit a current Technical Architect or Senior Technical Lead with prior consultancy experience from an Agency or Technology Consultancy, with excellent personal communication and presentation skills – and who would be comfortable dealing with clients and “techies” alike.</p>
<p><strong> </strong></p>
<p><strong>Required Experience </strong></p>
<p><strong> </strong></p>
<p><strong>General</strong></p>
<p><strong> </strong></p>
<ul>
<li>Bachelor’s degree required, preferably a Bachelor’s of Science in a Technology, Engineering  or Computer related discipline</li>
<li>Good broad technology consulting experience including experience in CRM / Content Management technologies and cross-channel applications (e.g. direct mail, web, call centre), presentation-layer, back-end &#38; database technologies</li>
<li>Strong technology implementation experience either as a technology manager or technical project manager and experience implementing web / online projects</li>
<li>Experience through the development lifecycle &#8211; requirements gathering, technical architecture design, scoping &#38; estimation, specification, management of the development process, QA planning, deployment &#38; maintenance</li>
<li>Reporting &#8211; experience in understanding reporting requirements and transforming business data into meaningful business metrics</li>
</ul>
<p><strong>Client Facing Skills</strong></p>
<ul>
<li>Client facing experience, in Business and IT contexts.</li>
</ul>
<p>-       Able to work strategically and tactically with the senior business &#38; IT personnel in client organisations as a trusted partner</p>
<p>-       Able to communicate project goals to different constituencies in authoritative yet friendly &#38; consultative manner</p>
<p>-       Work with multiple business units with varying business objectives</p>
<ul>
<li>Able to effectively and accurately delegate responsibilities</li>
<li>Able to be flexible and tolerate ambiguity while still operating effectively</li>
</ul>
<p><strong>Technical Skills</strong></p>
<p><strong> </strong></p>
<ul>
<li>W3C Compliant HTML / CSS and JavaScript programming.</li>
<li>Experience in back-end technologies such as PHP or J2EE</li>
<li>Experience of SOA model projects involving REST or SOAP web services and API calls would be an advantage</li>
<li>Good experience of enterprise-level and/or open source CMS platforms</li>
<li>Able to understand and develop business processes and enable Technology solutions to support client’s business</li>
<li>System Integration &#8211; knowledge of SI as it relates to marketing and reporting databases; ability to trace data through systems and understand transformation points</li>
<li>Experience in assessing infrastructure gaps and enablement roadmaps/plans development</li>
<li>Ability to formulate business requirements</li>
<li>Experience in defining system requirements and system interactions</li>
<li>Solid understanding of software development lifecycle</li>
<li>Data Validation &#8211; solid grasp of test plans, create test cases, and scripts needed to evaluate success database loads from source systems (quality assurance); review code</li>
</ul>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Using Polyfill to cover up the cracks in HTML5]]></title>
<link>http://dharmeshmistry.wordpress.com/2011/10/23/using-polyfill-to-cover-up-the-cracks-in-html5/</link>
<pubDate>Sun, 23 Oct 2011 08:00:58 +0000</pubDate>
<dc:creator>dharmeshmistry</dc:creator>
<guid>http://dharmeshmistry.wordpress.com/2011/10/23/using-polyfill-to-cover-up-the-cracks-in-html5/</guid>
<description><![CDATA[Long gone are the days when Internet Explorer had 95% of the browser market. We have lived in multi-]]></description>
<content:encoded><![CDATA[Long gone are the days when Internet Explorer had 95% of the browser market. We have lived in multi-]]></content:encoded>
</item>
<item>
<title><![CDATA[HTML5 The proprietary standard]]></title>
<link>http://dharmeshmistry.wordpress.com/2011/10/16/html5-the-proprietary-standard/</link>
<pubDate>Sun, 16 Oct 2011 08:00:39 +0000</pubDate>
<dc:creator>dharmeshmistry</dc:creator>
<guid>http://dharmeshmistry.wordpress.com/2011/10/16/html5-the-proprietary-standard/</guid>
<description><![CDATA[The good thing about standards is that they are uniform across different vendor implementation. Well]]></description>
<content:encoded><![CDATA[The good thing about standards is that they are uniform across different vendor implementation. Well]]></content:encoded>
</item>
<item>
<title><![CDATA[Who wouldn&#039;t want to work at Google?]]></title>
<link>http://porcupiny.wordpress.com/2011/10/15/who-wouldnt-want-to-work-at-google/</link>
<pubDate>Sun, 16 Oct 2011 06:58:35 +0000</pubDate>
<dc:creator>porcupiny</dc:creator>
<guid>http://porcupiny.wordpress.com/2011/10/15/who-wouldnt-want-to-work-at-google/</guid>
<description><![CDATA[I was just reading a fascinating blog post about what it takes to get a job at Google and an even mo]]></description>
<content:encoded><![CDATA[I was just reading a fascinating blog post about what it takes to get a job at Google and an even mo]]></content:encoded>
</item>
<item>
<title><![CDATA[Mobile Application Developer - Perm (40-50K) or Contract (250 pd - 350 pd)]]></title>
<link>http://danpudsey.wordpress.com/2011/10/12/mobile-application-developer-perm-40-50k-or-contract-250-pd-350-pd/</link>
<pubDate>Wed, 12 Oct 2011 14:14:45 +0000</pubDate>
<dc:creator>danpudsey</dc:creator>
<guid>http://danpudsey.wordpress.com/2011/10/12/mobile-application-developer-perm-40-50k-or-contract-250-pd-350-pd/</guid>
<description><![CDATA[My client are a huge global media entertainment and experience provider. You will need to be a self-]]></description>
<content:encoded><![CDATA[<p>My client are a huge global media entertainment and experience provider.</p>
<p>You will need to be a self-sufficient candidate with end to end skills in mobile development from concept design to a realised mobile product.</p>
<p>The successful candidate will be able to develop solutions that enable my client&#8217;s multiple brands meet their objectives.</p>
<p>The technical background for the position requires OO design and programming in Objective-C along with the SDK &#8211; UIKit, Cocoa touch etc. My client are looking for somebody who has also support skills for Android, so J2EE or J2ME and a familiarity with the Android SDK.</p>
<p>The ideal candidate would have come from a front end development background, CSS, HTML, JQuery and PHP a strong benefit.</p>
<p>This is an exciting position with a well known media organisation and the opportunity to work across a range of their successful brands products.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[The BBC does a U turn on HTML5]]></title>
<link>http://dharmeshmistry.wordpress.com/2011/10/12/the-bbc-does-a-u-turn-on-html5/</link>
<pubDate>Wed, 12 Oct 2011 08:00:35 +0000</pubDate>
<dc:creator>dharmeshmistry</dc:creator>
<guid>http://dharmeshmistry.wordpress.com/2011/10/12/the-bbc-does-a-u-turn-on-html5/</guid>
<description><![CDATA[Rewind to August 13th 2010 and Erik Huggers Director of BBC Future and Technology blogged that the t]]></description>
<content:encoded><![CDATA[Rewind to August 13th 2010 and Erik Huggers Director of BBC Future and Technology blogged that the t]]></content:encoded>
</item>
<item>
<title><![CDATA[Thinking in Responsive Design]]></title>
<link>http://logicalfriday.com/2011/09/23/thinking-in-responsive-design/</link>
<pubDate>Fri, 23 Sep 2011 20:26:55 +0000</pubDate>
<dc:creator>Shoshi Roberts</dc:creator>
<guid>http://logicalfriday.com/2011/09/23/thinking-in-responsive-design/</guid>
<description><![CDATA[The days of clinging to pixel values are petering out slowly, while the rise of percentages is haile]]></description>
<content:encoded><![CDATA[<p>The days of clinging to pixel values are petering out slowly, while the rise of percentages is hailed by the masses. With all of this hubbub about the technology, we also have to start shifting our mindsets to build our platforms in a new way. Though changing pixel values to percentages is a start, it doesn’t teach us to handle the more complex problem of making sure the experience of our websites is pleasurable on all devices. It’s like encountering a puzzle where the pieces change shape every hour. Luckily, the puzzle is fun to solve and the result is highly rewarding.</p>
<p><!--more--></p>
<p>In shifting our brain space, let us first consider that the “mobile first” and “responsive design” approaches are a brilliant new way of having us re-examine our User Experience and then build platforms for today’s users. This is not about what screen size you’re designing for, though of course that matters, it’s about cutting out all the content that your users don’t care about and keeping only the gold. Call it, a unified approach to making people happy on the internet. (Note: happy users = happy customers that bring more customers.) So, let’s start building the house from the foundation up.</p>
<p><strong>1. Examine your constraints.</strong><br />
We’re designing for all screen sizes, connection speeds, and hardware load outs. I find it helpful to assume that the Javascript and custom fonts may not load for awhile, and the images will load slowly. This means your user may be staring at just your HTML and CSS for the first 10 seconds. Your content has to be enticing, or your window will be closed. A concept that has been around for centuries and only becomes increasingly applicable. If you could only have 3 things on your page, what would they be?</p>
<p><strong>2. Consider your page one area at a time.</strong><br />
There are many approaches here. Once your main goals are set, I like to start at the top and work downward. For instance, say the top of the page is the navigation. What will it contain, and how will it look on all screen sizes? How can we make our links clickable if they are small and still tempting when they are large. In the body, do we have a sidebar? What’s going to happen to it if the user is on a small screen? If your sidebar is just going to end up at the bottom, perhaps your user might not get there or may get bored. Is that content necessary to include? For the footer, small screen users like to see the navigation again here, particularly on longer pages. Is there any way we can make this fun on a larger screen? Designers and developers need to work together closely on this process.</p>
<p><strong>3. Build it!</strong><br />
Have a calculator handy and use percentages to your heart&#8217;s content! Remember that you can still use pixels and ems for vertical layout, just not horizontal. Pay attention to sneaky borders in pixels. Try making a container of the border color with a width of 100% and an inner box that’s 99%. Alternatively, use CSS3’s new flexible box layout properties. Fortuitously, smart phone browsers tend to play nice with CSS3, so it can often be safely used in place of images. Use media queries to deliver the right CSS for a user’s screen size. Use user-agent strings, feature detection, or conditionals in your JS to ensure that more processor-intensive code only gets delivered to devices that can handle it. As always, test it over and over. Look at it on different screens and devices. By using the site yourself, you’ll “feel the pain” and know what needs work. As an added bonus you get to have fun resizing your browser window for hours on end!</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Front End Developer–£35K – Central London ]]></title>
<link>http://barrattjames.wordpress.com/2011/09/23/front-end-developer%e2%80%9335k-%e2%80%93-central-london/</link>
<pubDate>Fri, 23 Sep 2011 13:26:11 +0000</pubDate>
<dc:creator>barrattjames</dc:creator>
<guid>http://barrattjames.wordpress.com/2011/09/23/front-end-developer%e2%80%9335k-%e2%80%93-central-london/</guid>
<description><![CDATA[Job Title: Front End Developer Role Sector: Digital Agency Skills: HTML, XHTML, CSS, JQuery, AJAX, H]]></description>
<content:encoded><![CDATA[<p>Job Title: Front End Developer Role<br />
Sector: Digital Agency<br />
Skills: HTML, XHTML, CSS, JQuery, AJAX, HTML5, CSS3<br />
Salary: £35k<br />
Location: Central London </p>
<p>The Role:</p>
<p>In this role you will be part of a cross functional team building some of the most exciting and innovative internet based solutions in market today. This is a front end developer role which means the primary responsibilities will focus around producing the customer facing portion of the site experience. In addition to this an understanding of the development lifecycle and any agency experience would highly beneficial. </p>
<p>A strong working knowledge of the following skills is essential:</p>
<p>•	HTML/XHTML and CSS<br />
•	being able to hand code entire sites from scratch in any given editor, in a well-organised and scalable manner.<br />
•	JavaScript and an understanding of JavaScript frameworks, especially JQuery.<br />
•	Ability to proficiently code sites in AJAX.<br />
•	Ability to work with designers on cross browser functionality<br />
•	Experience with developing sites with mobile and tablet functionality<br />
•	Experience of HTML5 and CSS3<br />
•	Knowledge &#38; experience of SVN or VSS<br />
•	Knowledge &#38; experience of Quality Assurance processes and methodologies.</p>
<p>Any of the following would be beneficial: </p>
<p>•	Client facing experience<br />
•	An agency background<br />
•	Experience of Google Analytics, WebTrends or Omniture<br />
•	Some back-end experience e.g. PHP + MySQL<br />
•	Knowledge of Social Media or API development e.g. Facebook Apps</p>
<p>Note: Portfolio’s or previous URLs worked on will be required along with submission of any CV</p>
<p>Company:</p>
<p>This is a digital agency with a diverse portfolio and a number of different clients. They are well known throughout the industry and a company that delivers on quality and never shies away from a complicated technical project. </p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[We're giving away a ticket to RubyConf 2011 in New Orleans! ]]></title>
<link>http://logicalfriday.com/2011/09/21/were-giving-away-a-ticket-to-rubyconf-2011-in-new-orleans/</link>
<pubDate>Wed, 21 Sep 2011 15:45:56 +0000</pubDate>
<dc:creator>angiemaguire</dc:creator>
<guid>http://logicalfriday.com/2011/09/21/were-giving-away-a-ticket-to-rubyconf-2011-in-new-orleans/</guid>
<description><![CDATA[At Mint we&#8217;re lucky enough to have a fantastic conference policy that gives us the opportunity]]></description>
<content:encoded><![CDATA[<p>At Mint we&#8217;re lucky enough to have a fantastic conference policy that gives us the opportunity to go and hear from experts in our respective fields, meet our peers and sometimes even see another part of the world.</p>
<p>One of our favourites is <a href="http://rubyconf.org/">Rubyconf</a> in New Orleans. As well as being one of the best Ruby conferences out there, it takes place in one of the most amazing cities in the U.S.</p>
<h2>Can I come?</h2>
<p><span class="Apple-style-span" style="font-weight:normal;font-size:13px;">Yes, we want to share the love and are offering one lucky person a ticket to Rubyconf. All you have to do to be in with a chance of winning is tell us in the comment section why you think we should choose you. The best/funniest answer wins. Easy.</span></p>
<p>The competition closes Friday at midnight (EST) so get commenting&#8230;</p>
<p><em>*The winner is responsible for their own travel and accommodation. </em></p>
<p><span style="font-size:small;"><span class="Apple-style-span" style="font-size:13px;font-weight:normal;"><span style="font-size:x-large;"><span class="Apple-style-span" style="font-size:20px;"><strong><br />
</strong></span></span></span></span></p>
<pre></pre>
<h2></h2>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Ace Invaders]]></title>
<link>http://logicalfriday.com/2011/09/19/ace-invaders/</link>
<pubDate>Mon, 19 Sep 2011 09:43:46 +0000</pubDate>
<dc:creator>Andrew Appleton</dc:creator>
<guid>http://logicalfriday.com/2011/09/19/ace-invaders/</guid>
<description><![CDATA[Ace Invaders is a little internal project we’re working on as a fun way to explore some new things.]]></description>
<content:encoded><![CDATA[<p>Ace Invaders is a little internal project we’re working on as a fun way to explore some new things. It’s a basic game which does the following:</p>
<ul>
<li>Allows players to control a space invader character and move it around a grid.</li>
<li>Allows many players to move around the same grid.</li>
<li>Maintains the game state on the server and push it to all players as soon as it changes.</li>
</ul>
<p>To get this done we’re using a combination of cool technologies.</p>
<p><!--more--></p>
<h2>Websockets</h2>
<div id="attachment_324" class="wp-caption alignnone" style="width: 400px"><img src="http://logicalfriday.files.wordpress.com/2011/09/hero_howitworks1.png?w=390&#038;h=314" alt="How Pusher works" title="How Pusher works" width="390" height="314" class="size-full wp-image-324" /><p class="wp-caption-text">If only there were a simple diagram representing this interaction. OH THX PUSHER.</p></div>
<p><a href="http://pusherapp.com">Pusher</a> is a super simple websockets service. Clients open up a websocket connection with Pusher and receive events which we trigger from the server though Pusher’s API. Our server triggers an event each time it is notified of a move and Pusher sends this event to each user.</p>
<p>Pusher is an awesome way to get a websocket connection working quickly, but it is limited to sending events to clients. Ideally we would write a websocket server component (<a href="http://socket.io/">Socket IO</a>, anyone?) to allow two way communication. This would remove the need for a new AJAX request each time a player makes a move.</p>
<h2>Backbone.js</h2>
<p><a href="http://documentcloud.github.com/backbone/">Backbone.js</a> is a client side application framework which allows us to organise data into <a href="http://documentcloud.github.com/backbone/#Model">models</a> – a backbone model maps directly to a game position database entry in our back end. We group these models into <a href="http://documentcloud.github.com/backbone/#Collection">collections</a> and define a <a href="http://documentcloud.github.com/backbone/#View">view</a> to represent each.</p>
<p>Events make backbone tick – each time model data is changed an event fires. We bind to model change and destroy events when we instantiate a view, and then write the code to handle those events. In our game a destroy event causes the invader’s view to be removed from the game grid and a change event causes the view to be moved from one square to another.</p>
<h2>Sinatra</h2>
<p>The back end is a simple <a href="http://www.sinatrarb.com/">Sinatra</a> app talking to a SQLite database which stores users and grid positions. It accepts PUT POST and DELETE via AJAX calls and triggers Pusher events.</p>
<h2>Application Flow</h2>
<p>When a user makes a move a series of things happen:</p>
<ol>
<li>We listen for ↑ ↓ ← → key-presses and fire the backbone <a href="http://documentcloud.github.com/backbone/#Model-save">save</a> function on the current user’s model. Save is a nice proxy for <code>jQuery.ajax()</code> and will make a RESTful POST or PUT request to the server with the new data.</li>
<li>The server processes this data, creates or updates the user’s position and triggers a Pusher event with the new position data.</li>
<li>Pusher sends an event to every client (except the originator) containing the new position.</li>
<li>Each instance of our backbone invader model is bound to listen for events which are fired when Pusher delivers a new message. When this event fires the model is updated with a backbone <a href="http://documentcloud.github.com/backbone/#Model-set">set</a> and the views update accordingly.</li>
</ol>
<p>TLDR; when a user makes a move they send it to the server and every other user gets a Pusher notification of the move. This ensures that every player has an up to date representation of the game in their backbone models and can make moves in real time.</p>
<div id="attachment_336" class="wp-caption alignnone" style="width: 490px"><img src="http://logicalfriday.files.wordpress.com/2011/09/game.png?w=480&#038;h=479" alt="The game board" title="game" width="480" height="479" class="size-full wp-image-336" /><p class="wp-caption-text">A breakthrough in real time massively multiplayer moving around (RT3MA)</p></div>
<p>Now this is all pretty basic and as proud of it as I am I don’t <em>think</em> it’s going to be winning any awards for gameplay. We have the working bones of something cool – the next job is to spec out a game which people may actually want to play and make it happen!</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Front end development principles]]></title>
<link>http://jonnywyatt.com/2011/09/17/front-end-development-principles/</link>
<pubDate>Sat, 17 Sep 2011 12:19:59 +0000</pubDate>
<dc:creator>jonnywyatt</dc:creator>
<guid>http://jonnywyatt.com/2011/09/17/front-end-development-principles/</guid>
<description><![CDATA[Progressive enhancement It&#8217;s never a certainty that your user will experience your site exactl]]></description>
<content:encoded><![CDATA[<h2>Progressive enhancement</h2>
<p>It&#8217;s never a certainty that your user will experience your site exactly as you intended. There are just too many possible failure points eg. -</p>
<ul>
<li>Patchy Internet connection</li>
<li>Your Javascript fails to run fully in the browser because some 3rd party code elsewhere in the page blows up (eg analytics, advertising)</li>
<li>A stylesheet fails to download</li>
<li>An error in the server side application causes some or all of the page not to render</li>
<li>Small screen size crops half the page width</li>
</ul>
<p>If you make core content completely reliant on complex client-side processing, you&#8217;re making yourself a hostage to fortune. It also makes it harder to adapt it for viewing on different devices.</p>
<p><strong>Progressive enhancement is about maximising the chances that your user will be able to experience the core content and user journeys they want from your site.</strong></p>
<p>This means you should lay a foundation of code that will show core content and allow links and forms to function even if CSS and Javascript aren&#8217;t there.</p>
<p>You can then layer on Ajax, CSS3 etc to enhance the experience for capable browsers.</p>
<p>Some examples:</p>
<table>
<thead>
<tr>
<th>Doing it wrong</th>
<th>Doing it right</th>
</tr>
</thead>
<tbody>
<tr>
<td>A form submit button is made using a link wired to some Javascript which will validate then submit the form.</td>
<td>The form submit button is either an &#60; input type=&#8221;submit&#8221; /&#62; or &#60;button type=&#8221;submit&#8221;&#62; &#60;/button&#62;</td>
</tr>
<tr>
<td>Only supporting a form submit using Ajax, ie any request to the form action URL, whether marked as Ajax or not, will return a markup snippet</td>
<td>Without Javascript, the form action should return a full page as a response</td>
</tr>
<tr>
<td>Styling a content panel with display:none on page load, as it can be shown using a javascript-powered button</td>
<td>Use Javascript to add a &#8216;.js-enabled&#8217; class to your &#60;html&#62; or &#60;body&#62; tag then prefix your style rule with that eg.<code>.js-enabled .my-div { display: none }</code>.The style will then only be applied if Javascript is enabled</td>
</tr>
</tbody>
</table>
<h2>Performance</h2>
<p>Meaning both the speed of the initial download, and the responsiveness of the UI. Performance is a feature, with a direction positive correlation to user satisfaction and good SEO.</p>
<p>A decent build process is key to fast page load, to transform readable dev code into compressed, concatenated production code without an ounce of fat on it.</p>
<p>On initial page load, I believe content should be rendered to HTML on the server &#8211; it&#8217;s faster, more robust and more maintainable than passing data and templates to the front end and resolving there.</p>
<p>UI responsiveness comes from a lightweight DOM, and any interaction with it from the code should be minimised and as efficient as possible. Using a context for DOM selectors speeds things up eg. search from the module / widget container -</p>
<pre>$('#myModule').find('.nav-update');</pre>
<p>rather than starting from the document root -</p>
<pre>$('.nav-update');</pre>
<h2>Maintainability</h2>
<p>Developers leave projects and new ones join who have to pick up the code base. Often it will be ditched and coded from scratch because the last developer never considered the next person. Tightly coupling the layers of HTML, CSS and Javascript creates a code base that can&#8217;t be easily repaired, re-used or evolved.</p>
<p>Stay DRY &#8211; use HTML templates with re-usable snippets, a CSS processor and modular Javascript with classes and mix-ins to prevent duplication.</p>
<h2>Robustness</h2>
<p>Code defensively &#8211; check an item is available before you try and use it.</p>
<p>Use loosely coupled modules. Each should be able to exist on a page either on its own, or with other modules, without impairing them.</p>
<p>Write Javascript unit tests for low level verification. Use a tool like Selenium 2 / Webdriver to write automated functional tests that you can re-run. The extra effort buys you confidence that your site works and will survive future changes without regressions.</p>
<h2>Efficient development</h2>
<p>Do many clients and product owners understand that even though &#60;5% of their users are on IE6 and even IE7, it could burn 10 &#8211; 15% of their budget to support these outdated browsers, with the additional cost of dragging down functionality for modern browsers?</p>
<p>If not, it&#8217;s our responsibility as front end developers to make this information available so a balanced decision can be made.</p>
<p>The increasing view, promoted by developers like Andy Clarke and Paul Irish, is that a page shouldn&#8217;t have to look <strong>exactly</strong> the same in legacy browsers. The trade-offs just aren&#8217;t worth it.</p>
<p>Supporting IE7 should mean core content and user journeys are achievable, not that semi-transparent drop shadows have to be faked using filters that slow the page down further.</p>
<h2>The components</h2>
<h3>1. HTML5</h3>
<p>A base of HTML5 markup including semantic elements &#8211; &#60;nav&#62;, &#60;footer&#62; etc.</p>
<p>Add a wrapper &#60;div&#62; inside each and style those, then it all works in IE6, 7 and 8 without having to use Javascript createElement to make &#60;nav&#62; etc stylable.</p>
<p>Add classes for meaning only, never styling (see CSS section for how to achieve this without having to repeat presentational styles between classes in your stylesheet).</p>
<h3>2. CSS3</h3>
<p>Rounded corners are for browsers that understand border-radius. Slowing the page down by using heavy, unreliable VML (CSS3Pie) or Javascript to fake this effect, hits download and rendering performance, robustness and maintainability.</p>
<p>Very limited use of proprietary IE filters to apply gradients, can bring the design closer to the comp, but additional use of a filter slows the page down more.</p>
<p>Use a CSS processor like LESS to centralise shared styles and apply those to your semantic styles without having to repeat them through your stylesheets.</p>
<h3>3. Javascript</h3>
<p>As Douglas Crockford pointed out, the browser is the most hostile programming environment there is. Assuming your Javascript makes it over the wire, and it&#8217;s enabled by the user, a 3rd party script could blow up in the page before a single line of yours has executed. You can&#8217;t and shouldn&#8217;t rely on Javascript only to deliver core content or key user journeys eg. form submits. In other words, core functionality should be able to fall back to links and form posts.</p>
<p>Use a library, and be able to choose the right one for the project&#8217;s needs.</p>
<p>jQuery is a genius piece of engineering with fantastic documentation but it&#8217;s designed to cover just four areas:</p>
<ol>
<li>DOM interaction</li>
<li>Ajax</li>
<li>Events</li>
<li>Effects.</li>
</ol>
<p>If you&#8217;re working on anything more than a few pages with simple functionality, you may need to cover additional areas including:</p>
<ol>
<li>Namespacing</li>
<li>Modular code</li>
<li>Common functionality for UI widgets &#8211; progressive enhancement, accessibility, listen / broadcast to other modules (observer pattern)</li>
</ol>
<p>Having used YUI3 intensively on a large project, I&#8217;m sold on the advantages of using a library that covers this stuff, rather than coding the same (but different) solutions for each project. The documentation part is then largely covered and new developers can get up to speed quicker.</p>
<p style="padding-left:30px;"><em>[EDIT Dec 2012] &#8211; looking back at this last comment, I&#8217;d have to disagree with myself&#8230; </em><em>Having now used code organisation libraries such as Backbone and RequireJS, those extra needs can be fulfilled without a single monolithic library like YUI. jQuery&#8217;s popularity remains unassailable and there are good reasons for that; and the front end community (including myself) tends to favour mix and match solutions on top of jQuery.</em></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Fork jQuery! Introducing ukQuery... ]]></title>
<link>http://logicalfriday.com/2011/07/26/fork-jquery-introducing-ukquery/</link>
<pubDate>Tue, 26 Jul 2011 13:30:11 +0000</pubDate>
<dc:creator>Peter Westendorp</dc:creator>
<guid>http://logicalfriday.com/2011/07/26/fork-jquery-introducing-ukquery/</guid>
<description><![CDATA[At Mint Digital we&#8217;re always looking for the best tools out there to make our work more stream]]></description>
<content:encoded><![CDATA[<p>At Mint Digital we&#8217;re always looking for the best tools out there to make our work more streamlined. We use Ruby on Rails to create a solid backend, GitHub for version control, and jQuery as our Javascript framework.</p>
<p>Having come from a company where we mostly used Dojo, I find the latter tool is sometimes quite confusing to work with.</p>
<p><!--more--></p>
<h3>Making jQuery better &#8211; ukQuery</h3>
<p>To make it easier to work with jQuery, I decided to fork jQuery and create <a href="https://github.com/peterwestendorp/jquery" target="_blank">my own custom version</a>. I started with an important spelling correction; colour is now spelled in UK English. So every styling on the CSS &#8216;color&#8217; property via ukQuery can be done with the &#8216;colour&#8217; property as well.</p>
<pre><code>$("a").css("colour", "red");</code>
</pre>
<p>To make the UK jQuery experience complete, you can only use the &#8216;colour&#8217; property after calling the excuseMe() function. So remember your manners:</p>
<pre><code>$("a").excuseMe().css("colour", "red");</code></pre>
<p>Having made these changes, the $ symbol looks really silly and because £ is an invalid character in Javascript, I replaced the $ character by GBP. The result is a really great tool, which gives jQuery a more natural feeling for UK based developers.</p>
<p>So now I’ve had a rant, I’d like to share some other thoughts on jQuery&#8230;</p>
<h3>jQuery object versus normal nodelist</h3>
<p>Querying the DOM with jQuery returns a jQuery object with a nodelist in it. If you want for example to change the CSS of all the nodes, you can simply do this:</p>
<pre><code>$(".foo").css("display", "none");</code></pre>
<p>I see the advantages of jQuery&#8217;s approach here; first of all you don&#8217;t have do deal with nodelists or array&#8217;s if you don&#8217;t understand them. Besides that, it&#8217;s shorter and more readable. At least in some cases&#8230;</p>
<p>What if you want to change the CSS for a bunch of nodes and change some other styles on one particular node?</p>
<p>You will end up with something like this:</p>
<pre><code>var foos = $(".foo");
$.each(foos, function(index, myFoo){
 $(myFoo).css("color", "red");
 if(myFoo.id === "bar"){
   $(myFoo).css("color", "blue");
 }
});</code></pre>
<p>(You can also do a separate query for &#8220;.foo#bar&#8221;, but that&#8217;s an extra query, so less efficient.)<br />
What confuses me here is that you first have to extract the node from the jQuery object:</p>
<pre><code>$.each(foos, function(index, myFoo){</code></pre>
<p>then put it back into a jQuery object again, just to be able to use jQuery methods on that node:</p>
<pre><code>$(myFoo).css("</code></pre>
<p>You always have to wrap a node in a jQuery object to be able to apply any jQuery action on it. In terms of performance that&#8217;s no big deal. jQuery&#8217;s performance is quite impressive, so you will probably never notice the time difference between wrapping a node in a jQuery object or leaving it as a &#8220;plain&#8221; node. However, if you start extracting nodes from the jQuery object and wrapping it back in a new one again, the readability of your code decreases. (James Padolsey wrote an <a href="http://james.padolsey.com/javascript/76-bytes-for-faster-jquery/" target="_blank">interesting article</a>, as well as a plugin, related to this topic). So why not just myFoo.css() instead of $(myFoo).css(). Why all the bling?</p>
<p>Dojo and MooTools (and probably a lot more frameworks) for example, don&#8217;t require you to wrap a node in some magic object, but still enable you to chain your actions.</p>
<h3>What is this?</h3>
<p>In Javascript the this keyword refers to its owner (<a href="http://www.quirksmode.org/js/this.html" target="_blank">PPK&#8217;s Quirksmode</a> provides a lot of useful information about this). So if you write a simple function:</p>
<pre><code>function foo(){
 console.log(this); //will output window
}</code></pre>
<p>This will output the window object in the console. Because that function is &#8220;owned&#8221; by the window object. If we use the same function and place it in a property of the &#8220;foo&#8221; object, the this keyword will refer to the &#8220;foo&#8221; object:</p>
<pre><code>var foo = {};
foo.myMethod = function(){
 console.log(this); //will output foo
};
foo.myMethod();</code></pre>
<p>In Javascript there is one exception to this behaviour; in the case of an eventlistener, this will refer to to node where the event was fired from:</p>
<pre><code>bar.addEventListener('click',function(){
 console.log(this); //will output bar
},false);</code></pre>
<p>That&#8217;s pretty much how the this keyword behaves in Javascript. It always refers to it&#8217;s owner object, except in the case of an eventlistener&#8230;</p>
<p>jQuery however makes it a bit more complicated.</p>
<pre><code>var foo = ["apple", "orange", "banana"];
$.each(foo, function(){
 console.log(this); //will output apple, then orange, and finally banana
});</code></pre>
<p>In a jQuery.each loop, this refers to the current element. So that&#8217;s another exception in the behaviour of this.  Yet, another confusing aspect. I thought a Javascript framework was meant to make things more consistent, to normalize them! For me, it is making this worse.</p>
<h3>It&#8217;s not only complaining</h3>
<p>There are obviously a lot of good parts of jQuery. All the magic from the jQuery object makes it easy to work with for beginners. And if you&#8217;re a more advanced user, you can definitely also use jQuery for the more nifty scripts. Besides that, jQuery has a huge active community that have together created a lot of great plugins and documentation, which can save you a lot of time&#8230;</p>
<p>Have you too wrestled with jQuery? Let me know your thoughts!<br />
If you would like to know anymore about the aspects of jQuery I have discussed here; there is also a nice <a href="http://vimeo.com/8247540" target="_blank">episode of the yayQuery podcast</a> on this topic.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Arise the new CEO: Chief eXperience Officer]]></title>
<link>http://dharmeshmistry.wordpress.com/2011/07/14/arise-the-new-ceo-chief-experience-officer/</link>
<pubDate>Thu, 14 Jul 2011 08:00:27 +0000</pubDate>
<dc:creator>dharmeshmistry</dc:creator>
<guid>http://dharmeshmistry.wordpress.com/2011/07/14/arise-the-new-ceo-chief-experience-officer/</guid>
<description><![CDATA[Since the early days of the web, marketeers have espoused the merits of “managing customer experienc]]></description>
<content:encoded><![CDATA[Since the early days of the web, marketeers have espoused the merits of “managing customer experienc]]></content:encoded>
</item>
<item>
<title><![CDATA[The web battle: HTML5 vs Silverlight vs Flash]]></title>
<link>http://dharmeshmistry.wordpress.com/2011/07/07/the-web-battle-html5-vs-silverlight-vs-flash/</link>
<pubDate>Thu, 07 Jul 2011 08:00:07 +0000</pubDate>
<dc:creator>dharmeshmistry</dc:creator>
<guid>http://dharmeshmistry.wordpress.com/2011/07/07/the-web-battle-html5-vs-silverlight-vs-flash/</guid>
<description><![CDATA[My previous posts about “The end of Silverlight” and “The end of Flash” both raised active debate. T]]></description>
<content:encoded><![CDATA[My previous posts about “The end of Silverlight” and “The end of Flash” both raised active debate. T]]></content:encoded>
</item>
<item>
<title><![CDATA[HTML5 Audio and Video comes as standard]]></title>
<link>http://dharmeshmistry.wordpress.com/2011/06/26/html5-audio-and-video-comes-as-standard/</link>
<pubDate>Sun, 26 Jun 2011 08:00:54 +0000</pubDate>
<dc:creator>dharmeshmistry</dc:creator>
<guid>http://dharmeshmistry.wordpress.com/2011/06/26/html5-audio-and-video-comes-as-standard/</guid>
<description><![CDATA[Movie and Audio features in HTML5 are like many of the features I have discussed previously, they: •]]></description>
<content:encoded><![CDATA[Movie and Audio features in HTML5 are like many of the features I have discussed previously, they: •]]></content:encoded>
</item>
<item>
<title><![CDATA[Collaboration at Acquity Group with Front-End Development]]></title>
<link>http://blog.acquitygroup.com/2011/06/21/collaboration-in-acquity-group-with-front-end-development/</link>
<pubDate>Tue, 21 Jun 2011 16:31:56 +0000</pubDate>
<dc:creator>John Flickinger</dc:creator>
<guid>http://blog.acquitygroup.com/2011/06/21/collaboration-in-acquity-group-with-front-end-development/</guid>
<description><![CDATA[At many agencies the front-end developer role entails translating a design into HTML, and nothing mo]]></description>
<content:encoded><![CDATA[<p><a href="http://acquitygroup.files.wordpress.com/2011/06/images1.jpeg"><img class="alignright size-thumbnail wp-image-1373" title="images" src="http://acquitygroup.files.wordpress.com/2011/06/images1.jpeg?w=150&#038;h=34" alt="" width="150" height="34" /></a>At many agencies the front-end developer role entails translating a design into HTML, and nothing more. At Acquity Group front-end developers do recreate Photoshop designs, pixel-for-pixel, into HTML templates, however it is also a much more collaborative role than a typical front-end developer would have. Acquity Group front-end developers act as a bridge between design/user experience and back end developers to ensure that the HTML templates they create are both pixel-perfect matches of the design, and are structured in a way that works well for back-end integration into a content management system. It may sound like common sense, but this level of involvement is surprisingly rare at many agencies. The typical approach silos each of these groups and uses an “over the fence” mentality where wireframes are created and passed on to designers who make designs which get passed on to front-end developers who make HTML templates which get passed on to back-end developers who integrate the templates into the content management system. In a perfect world that’s a great setup, however in reality there are many problems with it.</p>
<p><!--more--></p>
<p>When this collaboration doesn’t take place design is compromised and integration issues occur which require rework, and as a result the project requires additional time and money.  A designer may not understand specific browser quirks, and a front-end developer may not understand specific content management system quirks, and in order for the project to be a success each solution group pools their knowledgebase with the others to point out potential issues, quirks that need to be accounted for, and prevent them before they occur. In fact, this is a much more simplified explanation of the process as there are many solution groups that influence these aspects of development which is a great factor in the success of Acquity Group projects.</p>
<p>At Acquity Group it is common to involve front-end development very early in a project; often when it is still in the wireframe stage, long before any coding actually takes place. This allows them to identify potential issues, and touch base with the back end team to create templates that work well the first time minimizing the need for rework. Minor changes in the execution can make a drastic difference in how well a project goes. For example, if a content management system has a specific framework for widgets like carousels or slideshows out of the box, front-end developers can talk with the designer about the capabilities of those widgets. This allows the designer to produce a design that lends itself to the existing framework reducing risk and scope issues in the process, and making something that is easier to integrate which saves time and money. This collaborative approach is a vast improvement over the assembly line approach, which shows in the quality and success of the resulting projects.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Switching from Firefox to Chrome]]></title>
<link>http://jonnywyatt.com/2011/06/17/switching-from-firefox-4-to-chrome-for-front-end-development/</link>
<pubDate>Fri, 17 Jun 2011 16:12:30 +0000</pubDate>
<dc:creator>jonnywyatt</dc:creator>
<guid>http://jonnywyatt.com/2011/06/17/switching-from-firefox-4-to-chrome-for-front-end-development/</guid>
<description><![CDATA[I&#8217;ve used Firefox for my front end web development for years but it&#8217;s finally proved too]]></description>
<content:encoded><![CDATA[<p>I&#8217;ve used Firefox for my front end web development for years but it&#8217;s finally proved too damn slow and memory hungry. It regularly slurps up nearly 1Gb of RAM leaving other running programs gasping for air.</p>
<p>The main reason I stuck with it this long is the brilliant <a href="http://getfirebug.com/">Firebug</a> and other developer tools. Plus I wanted to back the open source contender <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </p>
<p>I&#8217;ve recently dabbled with Chrome for front end development and it&#8217;s got some nifty stuff in it eg. you can set it to break on specified event types like click &#8211; great when the page uses event delegation and you want to see what handler(s) are fired.</p>
<p>And it&#8217;s blisteringly quick! Whole seconds faster on every page load.</p>
<p>Today I finally made the switch. I started looking for Chrome extensions to match my toolbox of Firefox add-ons. Some had been ported straight over (<a href="https://chrome.google.com/webstore/detail/bfbameneiokkgbdmiekhjnmfkcnldhhm">Web developer toolbar</a>), here&#8217;s some others -</p>
<ul>
<li><a href="https://chrome.google.com/webstore/detail/hmdcmlfkchdmnmnmheododdhjedfccka">Eye dropper</a> &#8211; to sample colours from the page</li>
<li><a href="https://chrome.google.com/webstore/detail/olfihdjffmgfmmcdodcgciejhnhibalg">Image overlay</a> &#8211; equivalent of Firefox&#8217;s Pixel Perfect, to help match your page to a design comp</li>
<li><a href="https://chrome.google.com/webstore/detail/ghgabhipcejejjmhhchfonmamedcbeod">Click &#38; Clean</a> to clear the cache</li>
</ul>
]]></content:encoded>
</item>
<item>
<title><![CDATA[HTML5 gets a database]]></title>
<link>http://dharmeshmistry.wordpress.com/2011/06/09/html5-gets-a-database/</link>
<pubDate>Thu, 09 Jun 2011 08:00:20 +0000</pubDate>
<dc:creator>dharmeshmistry</dc:creator>
<guid>http://dharmeshmistry.wordpress.com/2011/06/09/html5-gets-a-database/</guid>
<description><![CDATA[As a relative late comer to HTML5 trying to catch up on a spec that spans over a 1000 pages is no me]]></description>
<content:encoded><![CDATA[As a relative late comer to HTML5 trying to catch up on a spec that spans over a 1000 pages is no me]]></content:encoded>
</item>
<item>
<title><![CDATA[Pragmatic Semantics]]></title>
<link>http://logicalfriday.com/2011/06/07/pragmatic-semantics/</link>
<pubDate>Tue, 07 Jun 2011 12:48:54 +0000</pubDate>
<dc:creator>Andrew Appleton</dc:creator>
<guid>http://logicalfriday.com/2011/06/07/pragmatic-semantics/</guid>
<description><![CDATA[HTML5, Microformats, ARIA roles, CSS3 and a whole host of other technologies are making our lives as]]></description>
<content:encoded><![CDATA[<p>HTML5, Microformats, ARIA roles, CSS3 and a whole host of other technologies are making our lives as front end developers easier and better.</p>
<p>We usually have to rely on the user’s browser supporting these new technologies. That is fine for a site with fairly technical readers, but we also work on sites for a much broader (and potentially less tech-savvy) audience.</p>
<p>So what can we use now to make our markup more semantic and how can we ensure backwards compatibility for our clients? Let’s run through a list (because the internet loves a list).<!--more--></p>
<h2>HTML5</h2>
<p>At <a href="http://mintdigital.com">Mint</a> we have held back from using the new markup tags (<code>header, section, article</code> etc) on client sites. There has been much debate internally on the subject but ultimately we decided that requiring <a href="http://code.google.com/p/html5shim/">JavaScript hacks</a> to correctly render the page in older browsers is not a good thing for our clients. It’s fine for an old browser with JavaScript disabled to see a square corner, but not for the layout to be completely broken. So far we have chosen the pragmatic approach here and are sticking to pre-HTML5 tags.</p>
<p>But that doesn’t mean we are shunning HTML5 completely. We use the super clean <code>&#60;!doctype html&#62;</code>, as well as form input types. It’s easy to use <code>&#60;input type="email" /&#62;</code> and it degrades gracefully, giving iPhone users a more convenient keyboard layout. Users of browsers which do not recognise <code>email</code> as an input type will not notice any difference &#8211; simple, clean, easy.</p>
<p>We have also made use of the JavaScript history API allowing <a href="https://github.com/defunkt/jquery-pjax">PJAX</a> style asynchronous page loading. We set up a site’s navigation to work exactly as normal with full reloads between pages and then layer on inline loading of new page content for browsers which support history. It’s easy to check for History API support in JavaScript:</p>
<pre>// Returns true or false for HTML5 history support
function testHistoryAPI() {
  return !!(window.history &#38;&#38; history.pushState);
}</pre>
<p>If HTML5 is new to you, stop reading this, go buy Jeremy Keith’s <a href="http://www.abookapart.com/products/html5-for-web-designers">HTML5 For Web Designers</a> and then come back. I’ll wait here for you.</p>
<h2 id="arialandmarkroles">ARIA Landmark Roles</h2>
<p>A great way to add semantic meaning to various elements on the page is with <a href="http://www.w3.org/TR/wai-aria/">WAI-ARIA</a> roles. Machine readable ARIA roles can flag important elements to assistive technologies. This is great for signalling the page navigation or a site search form to a screen reader for example. The following is a subset of ARIA landmark roles which are useful on pretty much any web page:</p>
<ul>
<li><code>banner</code> — denotes the site header</li>
<li><code>navigation</code> — the main site navigation</li>
<li><code>search</code> — a site wide search form</li>
<li><code>main</code> — the main page content, useful as an alternative to traditional ‘skip-links’</li>
<li><code>contentinfo</code> — meta information about the page, good for the site footer.</li>
</ul>
<p>Just add a <code>role=""</code> attribute to the appropriate element and you’re away.</p>
<p>There’s a lot more that can be done with ARIA, particularly in JavaScript heavy applications where a lot of DOM manipulation is happening. Dev.Opera has a <a href="http://dev.opera.com/articles/view/introduction-to-wai-aria/">great write-up</a>.</p>
<h2 id="microformats">Microformats</h2>
<p><a href="http://microformats.org/">Microformats</a> are a great way to standardise the markup used for certain types of content. This lets us describe contact details, events and more in a uniform machine readable way. This information can then be interacted with by another service.</p>
<p>A great example of this is Brian Suda’s <a href="http://suda.co.uk/projects/microformats/hcard/">hCard parser</a> which will scan a page for microformat hCards and provide a vCard download for a user to import into contact management software. Here’s a super simple hCard implementation:<br />
<code></code></p>
<pre>&#60;p class="vcard"&#62;
  &#60;span class="fn"&#62;Andrew Appleton&#60;/span&#62;
  &#60;span class="role"&#62;Developer&#60;/span&#62;
  &#60;span class="org"&#62;Mint Digital&#60;/span&#62;
&#60;/p&#62;</pre>
<p><code></code>Simple and as a bonus you get a set of semantic elements to hook your CSS into.</p>
<p>Microformats are an evolving set of standards so I would definitely recommend checking out the <a href="http://microformats.org/wiki/Main_Page">wiki</a> for an up to date look at what’s new.</p>
<p>So there it is, a few easy unobtrusive ways to build richer web pages without any browser compatibility issues. There’s no reason not to make use of this stuff today and plenty to gain from doing so.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[HTML5 gets cross with domains]]></title>
<link>http://dharmeshmistry.wordpress.com/2011/06/02/html5-gets-cross-with-domains/</link>
<pubDate>Thu, 02 Jun 2011 08:00:38 +0000</pubDate>
<dc:creator>dharmeshmistry</dc:creator>
<guid>http://dharmeshmistry.wordpress.com/2011/06/02/html5-gets-cross-with-domains/</guid>
<description><![CDATA[In my last post I overviewed a number of new communications features in HTML5 that in my mind will n]]></description>
<content:encoded><![CDATA[In my last post I overviewed a number of new communications features in HTML5 that in my mind will n]]></content:encoded>
</item>
<item>
<title><![CDATA[HTML5 gets very chatty]]></title>
<link>http://dharmeshmistry.wordpress.com/2011/05/26/html5-gets-very-chatty/</link>
<pubDate>Thu, 26 May 2011 08:00:30 +0000</pubDate>
<dc:creator>dharmeshmistry</dc:creator>
<guid>http://dharmeshmistry.wordpress.com/2011/05/26/html5-gets-very-chatty/</guid>
<description><![CDATA[The web started birth with very much a “click and wait” experience. Any interaction with the server]]></description>
<content:encoded><![CDATA[The web started birth with very much a “click and wait” experience. Any interaction with the server]]></content:encoded>
</item>
<item>
<title><![CDATA[HTML5 knows where you are!]]></title>
<link>http://dharmeshmistry.wordpress.com/2011/05/12/html5-knows-where-you-are/</link>
<pubDate>Thu, 12 May 2011 08:00:29 +0000</pubDate>
<dc:creator>dharmeshmistry</dc:creator>
<guid>http://dharmeshmistry.wordpress.com/2011/05/12/html5-knows-where-you-are/</guid>
<description><![CDATA[A few years back I was deemed a heretic by many of my colleagues and friends  when I suggested that]]></description>
<content:encoded><![CDATA[A few years back I was deemed a heretic by many of my colleagues and friends  when I suggested that]]></content:encoded>
</item>

</channel>
</rss>
