<?xml version="1.0" encoding="UTF-8"?>
<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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Al Binns&#039; Web Stuff</title>
	<atom:link href="http://www.albinns.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.albinns.com</link>
	<description>to inifinity and beyond</description>
	<lastBuildDate>Wed, 27 Mar 2013 12:26:04 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Remembering Nana Kath</title>
		<link>http://www.albinns.com/2013/03/remembering-nana-kath/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=remembering-nana-kath</link>
		<comments>http://www.albinns.com/2013/03/remembering-nana-kath/#comments</comments>
		<pubDate>Wed, 27 Mar 2013 12:26:04 +0000</pubDate>
		<dc:creator>Al</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.albinns.com/?p=388</guid>
		<description><![CDATA[I&#8217;ve thought quite hard about writing this post mostly because I am not too comfortable with public displays of emotion, things like what I am about to write are private. However this is no ordinary circumstance and I&#8217;d like to be able to look back in a few years time and remember how I felt [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve thought quite hard about writing this post mostly because I am not too comfortable with public displays of emotion, things like what I am about to write are private. However this is no ordinary circumstance and I&#8217;d like to be able to look back in a few years time and remember how I felt and what this person meant to me. This post is for me.</p>
<p>Yesterday at about 5:30pm my Grandma passed away.</p>
<p>In simple terms I am devastated about this, my grandma was the only grandparent I knew, I don&#8217;t remark this in a bitter way its simply how life ended up. So devastated, yes, but in other ways I feel joyous and pleased. Joyous and pleased, for rather than this being a tragic situation, a life taken away in its prime, an unexpected shocking demise, it is a chance to celebrate a remarkable life.</p>
<p>Nana Kath, as she was known to everyone was just over 100 years old. Now in years to come this may not be a remarkable age, but today it is. Think about this, my Grandma was born Sept 22nd 1912, thats two years before the first world war. In 100 years she has lived through a lot and seen unprecedented change.</p>
<p>Unfortunately I couldn&#8217;t give you the history and life story of my Grandma, there are many facts I would end up getting wrong and 65 years had already been and gone when I was born. What I can tell you is that during all of the years I was privileged to have with her I have rarely met a keener mind. Her memory always amazed me, she recount stories from her childhood as if it was yesterday. In another time and place she would have achieved so much, but shackled by circumstances and the time of life she achieved everything a mother, grandmother and great-grandmother should.</p>
<p>Right up to the age of 100 she lived an independent life, a quiet life in the heart of yorkshire. She lost her beloved Charlie nearly 30 years ago, a long time to be apart.</p>
<p>In her last few years she was loved and remarked a sense of awe by all she knew and met. Her 100th birthday party being a fantastic celebration where she far outlasted even the most optimistic expectations of her. Family and friends from far and wide together in appreciation.</p>
<p>The last 6 months have been hard and in the end I like to think she knew it was time to go and I am thankful for the small mercy of her not suffering. Its time to be reunited with Charlie.</p>
<p>In her final days in hospital two tales epitomise my Grandma for me. When she was first admitted to hospital her first remark to the nurses was:</p>
<blockquote><p>I hope you&#8217;re not going to put me in a ward with all the old folk.</p></blockquote>
<p>And when a nurse found out she was 100 she asked whether she had received a telegram from the Queen and if she had put it up on her wall, her reply was:</p>
<blockquote><p>Oh yes I got one of those but there&#8217;s no room for it on my wall, its full of important pictures of my family.</p></blockquote>
<p>She kept her humour to the end and even in her wane was still a shining light.</p>
<p>R.I.P. Nana Kath, I love you.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.albinns.com/2013/03/remembering-nana-kath/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LessCSS, Import and Media Queries</title>
		<link>http://www.albinns.com/2013/02/lesscss-import-media-queries/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=lesscss-import-media-queries</link>
		<comments>http://www.albinns.com/2013/02/lesscss-import-media-queries/#comments</comments>
		<pubDate>Thu, 21 Feb 2013 10:47:53 +0000</pubDate>
		<dc:creator>Al</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[adaptive design]]></category>
		<category><![CDATA[ie8]]></category>
		<category><![CDATA[import]]></category>
		<category><![CDATA[lesjs]]></category>
		<category><![CDATA[less]]></category>
		<category><![CDATA[lesscss]]></category>
		<category><![CDATA[maintenance]]></category>
		<category><![CDATA[media queries]]></category>

		<guid isPermaLink="false">http://www.albinns.com/?p=384</guid>
		<description><![CDATA[Today I found out the Media Queries are not supported at all in IE8. Not sure how I missed this, only that I haven&#8217;t used media queries extensively in any project until now. I have just finished off a site that has an adaptive layout for table and mobile. Having completed the majority of development [...]]]></description>
				<content:encoded><![CDATA[<p>Today I found out the Media Queries are not supported at all in IE8. Not sure how I missed this, only that I haven&#8217;t used media queries extensively in any project until now. I have just finished off a site that has an adaptive layout for table and mobile. Having completed the majority of development in Chrome and I yesterday moved on to the dreaded cross-browser testing. </p>
<p>To my surprise when I open it up in IE9 there was appeared to be no serious issues. A pleasant surprise, the text lacked <code>text-shadow</code> in a few places, but this is an aesthetic issue not a downright broken issue so I can live with it. Feeling bolder I moved on to IE8 and was very disappointed when the site was a wreck, not slightly broken but very broken.</p>
<p>This was a bit unexpected as I tend to develop using well known patterns which only occasionally need tweaking. Something else must have been the issue. Following a brief conversation with a dev friend he pointed out that IE8 doesn&#8217;t support media queries. All of my layout and navigation was defined in media query, hence the massive fail. </p>
<p>The solution was a straight foward approach:</p>
<ol>
<li>Copy the CSS out of the media query into a separate file</li>
<li>Conditionally include it in the header for IE8 (and below)</li>
</ol>
<p>This approach does however pose a maintenance overhead, if I make changes to the desktop CSS this needs to be carried through to the external file. Ideally I want to be able to maintain one file which is referenced in the main file. The media query spec does not allow you to use a CSS import inside it, so this approach is not available.</p>
<p>Fortunately I use a CSS pre-processor to create my CSS, I use <a href="http://lesscss.org/" target="_blank">{less}</a>, less allows you to use multiple files and import them into a single output file. My approach was to simply copy the less into an external file and use the @import syntax in the main file. I could then reference the compiled external file in a conditional comment.</p>
<pre>
@media only screen and (min-width: 769px) {
  @import "desktop";
}
</pre>
<p>This did not work unfortunately, the less parser currently does not understand this construct and the import is ignored. It is a <a href="https://github.com/cloudhead/less.js/issues/122" target="_blank">well known issue</a> and has been discussed for some time. It is fixed for now in the master branch and is scheduled for the 1.4 release but isn&#8217;t out yet. Instead I have used the following work around.</p>
<p>Wrap the code required in a mixin in an external file (desktop.less) i.e.</p>
<pre>
.desktop() {
  less code...
}
</pre>
<p>Then import the code outside of the media query and call the mixin inside the media query (main.less) i.e.</p>
<pre>
@import "desktop";
@media only screen and (min-width: 769px) {
  .desktop();
}
</pre>
<p>Finally I created an extra file which includes the code outside of the media query which can be compiled and conditionally added (ie.less) i.e.</p>
<pre>
@import "desktop";
.desktop();
</pre>
<p>One file to maintain, compiled into the main CSS file, and and another CSS file for conditional inclusion. When 1.4 is released my first approach will be available and you won&#8217;t need the extra file, until then this is a good work arund.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.albinns.com/2013/02/lesscss-import-media-queries/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ignoring the 10%</title>
		<link>http://www.albinns.com/2013/02/ignoring-the-10-percen/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ignoring-the-10-percen</link>
		<comments>http://www.albinns.com/2013/02/ignoring-the-10-percen/#comments</comments>
		<pubDate>Wed, 20 Feb 2013 12:01:29 +0000</pubDate>
		<dc:creator>Al</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[cross browser testing]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[ie6]]></category>
		<category><![CDATA[ie8]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[support]]></category>
		<category><![CDATA[ux]]></category>

		<guid isPermaLink="false">http://www.albinns.com/?p=380</guid>
		<description><![CDATA[Browser support and cross-browser testing is a tricky subject. As a veteran of the browser wars I&#8217;ve seen a number of browsers dominate for a while then tail off as a new generation invariably comes through. In each generation we as web developers look to be in a better place but are always seem to [...]]]></description>
				<content:encoded><![CDATA[<p>Browser support and cross-browser testing is a tricky subject. As a veteran of the browser wars I&#8217;ve seen a number of browsers dominate for a while then tail off as a new generation invariably comes through. In each generation we as web developers look to be in a better place but are always seem to be held back by the legacy of previous generations.</p>
<p>Back in the early 2000&#8242;s there were basically two browsers of note (I am deliberately generalising here and am well aware there were more than two browsers) IE6 and Netscape, roughly speaking it was a 90/10 split. IE6 was the ground breaking browser, way better then Netscape, and it was believe me. As a developer you spent most of your time developing to IE6 well aware of the fact it probably broke a bit in Netscape. Never a comfortable situation but it did allow you to take advantage of the better features in IE6 which seemed a good compromise.</p>
<p>Fast forward a few years and the next chapter in the browser wars, the standards movement. Raising Microsoft out of their slumber it pushed the web forward, IE7 was awful, IE6 the bane of developers lives with IE8 and Firefox the leading lights. It was bad for a few years but we moved forward, slowly but surely we started leaving behind IE6, sure there was still 10% of people using it but sacrificing these users for the good of the 90% was acceptable.</p>
<p>And now we are in modern times, Chrome has emerged as the new darling of browsers, IE9/10 makes it again one of the contenders, Firefox is still in the mix and everywhere mobile is the new must support platform. And then there is IE8&#8230; Yep you guessed it, representing about <a href="http://gs.statcounter.com/#browser_version_partially_combined-GB-monthly-201201-201301" target="_blank">10% of your users</a>.</p>
<p>Given the importance being placed on mobile as a platform, and the fact that most mobile/tablet computers have fairly good support for modern standards is it time to sacrifice the 10% again. Some big sites and big players such as Google have already signalled the end of IE8, is it time for this to become the norm? IE8 usage will only drop and mobile looks set to increase, in my eyes the time is now&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.albinns.com/2013/02/ignoring-the-10-percen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Going Responsive</title>
		<link>http://www.albinns.com/2012/11/going-responsive/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=going-responsive</link>
		<comments>http://www.albinns.com/2012/11/going-responsive/#comments</comments>
		<pubDate>Wed, 21 Nov 2012 15:40:54 +0000</pubDate>
		<dc:creator>Al</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Theme]]></category>
		<category><![CDATA[desktop]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[responsive design]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[twenty twelve]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.albinns.com/?p=376</guid>
		<description><![CDATA[There&#8217;s no doubt that with the proliferation of mobile devices in recent years web site design has gotten a lot more complex. It is now more than ever important that you offer the best experience to your site visitors no matter what device they may be accessing your content through. Offering a mobile optimised experience [...]]]></description>
				<content:encoded><![CDATA[<p>There&#8217;s no doubt that with the proliferation of mobile devices in recent years web site design has gotten a lot more complex. It is now more than ever important that you offer the best experience to your site visitors no matter what device they may be accessing your content through. Offering a mobile optimised experience is a time consuming exercise for a developer, and maintaining two codes bases for your sites can be problematic.</p>
<p>In recent years there has been a large movement towards offering the best of both worlds in a responsive site. A site which isn&#8217;t constrained by the fixed dimensions, that works equally well on a large display or a small screen mobile device.</p>
<p>I haven&#8217;t touch the design of my site for a couple of years now. I went down a &#8220;design&#8221; by iteration route until I got to the point where I was happy enough with the design that I stopped. Since then I have wanted to update the site on a few occasions and even got to the point where I have been tinkering with the layout, fonts and overall design. What became clear as I was doing this was that making the site that I already had responsive was not going to be a quick and easy task.</p>
<p>Today I have decided to drop my theme and instead of wasting my time on creating a theme use the latest in-built theme from WordPress. I have installed and activated <a href="http://wordpress.org/extend/themes/twentytwelve" target="_blank">Twenty Twelve</a>, the new responsive theme from wordpress.</p>
<p>It takes all of the heavy lifting out of the design and what I end up with is an extremely flexible design which not only functions extremely well in the responsive world but also in my opinion looks great as well.</p>
<p>I&#8217;m sure over the coming months I will add my own little touches here and there. I also still haven&#8217;t given up on the idea of creating my own responsive design, however I think I will use my commercial site to work this out on, so stay posted for news in this area.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.albinns.com/2012/11/going-responsive/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Custom Post Types</title>
		<link>http://www.albinns.com/2012/11/wordpress-custom-post-types/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=wordpress-custom-post-types</link>
		<comments>http://www.albinns.com/2012/11/wordpress-custom-post-types/#comments</comments>
		<pubDate>Fri, 02 Nov 2012 13:33:06 +0000</pubDate>
		<dc:creator>Al</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[custom post types]]></category>
		<category><![CDATA[register_post_type]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.albinns.com/?p=372</guid>
		<description><![CDATA[As I use WordPress more and more on a professional basis I am discovering things that make using it as a CMS more and more useful. Over the past couple of years I&#8217;ve had quite a few projects based off of WordPress and one of the things that makes me cringe the most is seeing [...]]]></description>
				<content:encoded><![CDATA[<p>As I use WordPress more and more on a professional basis I am discovering things that make using it as a CMS more and more useful. Over the past couple of years I&#8217;ve had quite a few projects based off of WordPress and one of the things that makes me cringe the most is seeing a page that is made up of multiple parts or content types. The classic example of this is a homepage which has some sort of slider on it. The slider invariably needs to be content managed, and quite often so does the text from within it.</p>
<p>I have always solved this issue previously by simply creating a slide template and creating pages which are assigned to this template, usually as child pages of the homepage. A page has a few common parts, title, body copy, featured image which can all be used to create the content. Then if there are other structured requirements you can use custom fields on a post to add these elements. Overall the standard page functionality can be manipulated to achieve the desired result. This approach works, to some degree but it isn&#8217;t user friendly and can frankly be a pain to use.</p>
<p>Another way of doing this is to find a plug-in which adds slide functionality, and there are a large amount of plug-ins of varying quality which do this. I hate plugins in general, the quality of them is outside of your control, they can break or hinder the upgrade path unless actively developed and often they add bloat to your theme. Sure they are much more user friendly but as a plug-in is often a generalisation of the problem rather than a specific answer to a problem a plug-in doesn&#8217;t always fulfill your requirements.</p>
<p>The third and final way is basically a mash of the two, custom post types. A custom post type is often basically what a plug-in is. However as you are defining it you get to control it. Where you are using custom fields you get to layout the edit screen in exactly the way you want to, label the custom fields appropriately and make the creation and updating of the content much more intuitive and user friendly.</p>
<p>There are 2 things you need to do to get custom post types working:</p>
<p>1) Register the <a href="http://codex.wordpress.org/Function_Reference/register_post_type" target="_blank">post type</a></p>
<pre class="brush:php">
register_post_type( 'home_slide',
    array(
      'labels' => array(
        'name' => __( 'Home Slides' ),
        'singular_name' => __( 'Home Slide' ),
        'add_new_item' => __( 'Add New Home Slide' ),
        'edit_item' => __( 'Edit Home Slide' ),
      ),
      'public' => true,
      'show_in_menu' => true,
      'supports' => array(
        'title','editor','thumbnail'
      ),
      'rewrite' => array( 'slug' => 'slide' ),
      'exclude_from_search' => true
    )
  );
</pre>
<p>2) Create the code to define the post type. I won&#8217;t go into detail on this one but I found the following tutorial useful to get me started:</p>
<p><a href="http://wp.tutsplus.com/tutorials/plugins/a-guide-to-wordpress-custom-post-types-creation-display-and-meta-boxes/" target="_blank">http://wp.tutsplus.com/tutorials/plugins/a-guide-to-wordpress-custom-post-types-creation-display-and-meta-boxes/</a></p>
<p>From now on I will be using these on a lot more word press projects.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.albinns.com/2012/11/wordpress-custom-post-types/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Non Native Form Controls</title>
		<link>http://www.albinns.com/2012/09/non-native-form-controls/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=non-native-form-controls</link>
		<comments>http://www.albinns.com/2012/09/non-native-form-controls/#comments</comments>
		<pubDate>Thu, 06 Sep 2012 11:10:47 +0000</pubDate>
		<dc:creator>Al</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[file]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[progressive enhancement]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[select]]></category>

		<guid isPermaLink="false">http://www.albinns.com/?p=368</guid>
		<description><![CDATA[Been a while since I did a blog post, been probably the busiest I have ever been over the past 3 months, but I have been a bit disappointed that I have let my blog suffer as a result. Continuing in a slightly negative vein I&#8217;d like to post about something that as a developer [...]]]></description>
				<content:encoded><![CDATA[<p>Been a while since I did a blog post, been probably the busiest I have ever been over the past 3 months, but I have been a bit disappointed that I have let my blog suffer as a result. Continuing in a slightly negative vein I&#8217;d like to post about something that as a developer I just don&#8217;t get.</p>
<p>I&#8217;ll freely admit that I&#8217;m not a designer and that if I was I&#8217;d probably get just as annoyed when looking at a design where something doesn&#8217;t quite fit in with the overall feel as when I see a piece of code which is not as aesthetically pleasing. However if the code works I&#8217;m inclined not to change it, after all if it ain&#8217;t broke don&#8217;t fix it. So why, if there are such compelling reasons not to,  do designers insist on changing the look of native form controls? Specifically I am talking about &lt;select&gt; and &lt;input type=&#8221;file&#8221;&gt; for fields, although this can easily be extended to checkboxs, radio buttons and to some extent submit buttons.</p>
<p>I won&#8217;t argue as to the how good or bad they look as to me its a bit of a non issue, but I can come up with some fairly compelling arguments as to why changing them, probably through the use of JavaScript is a bad idea.</p>
<ul>
<li>Native controls are bullet proof &#8211; by this I mean the browser makers have spent considerable amounts of time coding and testing the native controls to ensure they work correctly. They have found and fixed all of the hundreds of edge cases, as opposed to a JavaScript solution which potentially cannot handle a multiple selection use case, or a list which is 1000 options long.</li>
<li>Native controls are future proof &#8211; what happens to your JavaScript implementation when a future browser gets released that changes the way it handles scroll events? Native controls don&#8217;t suffer from this, they will work in future releases as the browsers makers test them for you.</li>
<li>Native controls are familiar &#8211; everyone who browses the web will have come across a native control, will recognise is and will be fairly comfortable with how it works. In terms of usability you can&#8217;t trump that.</li>
<li>Native controls are accessible &#8211; going back to my first point, native controls have a lot of inherent accessibility built in, you can use the mouse or keyboard to interact with them and things like screen readers are well aware of them. Unless your JavaScript implementation covers all the same use cases that a native control does then you are simply using a inferior form element.</li>
<li>Native controls are (more) secure &#8211; a standard file control has a lot of security built in. Drag/drop interfaces whilst nice don&#8217;t always have this inherent security built in.</li>
<li>Native controls are cross browser compatible &#8211; you don&#8217;t need to worry whether your JavaScript implementation works in IE6, it just does.</li>
</ul>
<p>This list isn&#8217;t exhaustive but it does highlight the advantages of using native controls. I&#8217;ll give a couple of recent examples. </p>
<p>For a project I recently did one of the requirements was to be able to upload a file via a public interface. The design had a lovely branded purple browse button and accompanying , which granted probably looked better than the standard browse button. I explained at the start of the project that styling a file form field is difficult to do and I wouldn&#8217;t recommend it. Regardless it went ahead, but I caveated my quote with a non guarantee that it would work cross browser. I styled the button using a <a href="http://www.appelsiini.net/projects/filestyle">JS implementation</a> and for the most part it worked. I then got a bug report that it didn&#8217;t work in Firefox 14, <em>sorry I can&#8217;t guarantee it will work</em>. Not a huge deal as it turns out the work/won&#8217;t work scenario was intermittent (great!!). Next is this doesn&#8217;t work in iPad, well no of course it doesn&#8217;t file fields don&#8217;t work in iPad, thing is that on an iPad the native file field would be greyed out and disabled, the styled file field isn&#8217;t, there are probably a hundred mobiles that this is the case for. If we had used a native form field both of these problems would not have been a problem, it still wouldn&#8217;t have worked on an iPad but at least the user would have known.</p>
<p>The second example (from the same project) was that a drop down menu that had been styled didn&#8217;t work in Safari 6. It was another <a href="https://github.com/claviska/jquery-selectBox">JS implementation</a>, fairly good cross browser support and had recently been updated so still actively maintained. But still it had certain use case where it didn&#8217;t quite work as intended.</p>
<p>I&#8217;m not going to argue that layering on top of native form fields isn&#8217;t a viable progressive enhancement technique especially if there is a good usability case for improving the functionality. However to do it for purely design reasons ignoring the disadvantages of doing so doesn&#8217;t seem like the brightest idea to me. Stick what CSS can do and you can&#8217;t go far wrong, bring JavaScript into the equation and you&#8217;re asking for trouble.</p>
<p>Now I have to get on with some work, ah yes a lovely dropdown menu design sigh&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.albinns.com/2012/09/non-native-form-controls/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>MD5 Insecurity</title>
		<link>http://www.albinns.com/2012/06/md5-insecurity/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=md5-insecurity</link>
		<comments>http://www.albinns.com/2012/06/md5-insecurity/#comments</comments>
		<pubDate>Thu, 14 Jun 2012 11:50:38 +0000</pubDate>
		<dc:creator>Al</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[hashing]]></category>
		<category><![CDATA[md5]]></category>
		<category><![CDATA[passwords]]></category>
		<category><![CDATA[salt]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[sha1]]></category>

		<guid isPermaLink="false">http://www.albinns.com/?p=363</guid>
		<description><![CDATA[The following post is about security, I am in no way a security expert, far from it, but this is basic basic stuff. OK hands up, who can tell me what this is? 5f4dcc3b5aa765d61d8327deb882cf99 The average person may say a code of some sort? A slightly more techie person may say its an encrypted word? [...]]]></description>
				<content:encoded><![CDATA[<p>The following post is about security, I am in no way a security expert, far from it, but this is basic basic stuff. OK hands up, who can tell me what this is? </p>
<pre>
5f4dcc3b5aa765d61d8327deb882cf99
</pre>
<p>The average person may say a code of some sort? A slightly more techie person may say its an encrypted word? A even more techie person may even be able to identify it as an MD5 hash? And someone with moderate technical experience would be able to identify it as the MD5 hash of the string &#8220;password&#8221;. And that people is the issue, if you can easily identify the single string you could easily hack a lot of web sites.</p>
<p>A lot of websites require a login of some sort. You know the drill you&#8217;ve done it a thousand times, register for this site with an username/email and password. Some sites may go as far as imposing some password complexity rules, but a lot don&#8217;t, and you probably end up using the same password for every site you register for. This is an accident waiting to happen. Why? Well because when you register for a site you expect the developers of the system to be competent people who know what they are doing with your sensitive information. Let me tell you now they don&#8217;t, and it is beginning to scare me more and more.</p>
<p>Any developer should know at least one thing about security, don&#8217;t store the passwords in plain text. Simple answer encrypt them? Find a one-way hashing algorithm (such as MD5) and store them encrypted. That way if anyone got hold of the database then they wouldn&#8217;t know what your password is. But increasingly this is wrong, OK I&#8217;ve encrypted them using MD5, but as I&#8217;ve shown from the example above anyone who is stupid enough to use the password of &#8220;password&#8221; I know what it is, it may as well have been stored as plain text, and this unfortunately is true of every single word in the dictionary, and also unfortunately true of just about every random string of letters and numbers up to a reasonable length.</p>
<p>So at the very least if you are encrypting passwords add some salt to the beginning, end or both. Salt changes your 8 character password into 32 character+ passwords and makes recognising the password &#8220;password&#8221; much more difficult. That any developer friends is the very least you should be doing, add salt to your passwords please please please. But in reality you shouldn&#8217;t be using MD5 anymore, its insecure, and SHA-1 isn&#8217;t much better either but at least its a step up. My recommendation would be to set the minimum bar at salted SHA-1 encrypted passwords.</p>
<p>The reason for this is that I am getting more and more amazed at how many registration systems don&#8217;t do this. I&#8217;ve come across many a home grown system that just MD5&#8242;s the password, and even some fairly big systems, Drupal 6 being one of them!!! </p>
<p>And this is the problem, all it takes is a site of sufficient size getting hacked (like linkedin for example) who only use plain old MD5 and your password can be determined. Same password for most sites = trouble. And this is probably the case. Your password may only be as secure as the weakest password on the site, which is a scary thought these days.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.albinns.com/2012/06/md5-insecurity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Techno-baby!</title>
		<link>http://www.albinns.com/2012/06/techno-baby/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=techno-baby</link>
		<comments>http://www.albinns.com/2012/06/techno-baby/#comments</comments>
		<pubDate>Fri, 08 Jun 2012 16:15:37 +0000</pubDate>
		<dc:creator>Al</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[apply]]></category>
		<category><![CDATA[baby]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://www.albinns.com/?p=359</guid>
		<description><![CDATA[Over the past year or so my Apple product ownership has gone from zero -> four (well maybe 6/7 if you count peripherals). Is this because I am now a Fanboi and will join the queuing masses in the coming months when the iPhone 5 is announced and camp out for days to be the [...]]]></description>
				<content:encoded><![CDATA[<p>Over the past year or so my Apple product ownership has gone from zero -> four (well maybe 6/7 if you count peripherals). Is this because I am now a Fanboi and will join the queuing masses in the coming months when the iPhone 5 is announced and camp out for days to be the first, yes the first to own it for a nano second. The short answer is no, I&#8217;m still not a massive fan in fact when I spent £1500+ on my first Apple product I felt dirty inside and the yorkshireman in me died a bit more. Don&#8217;t get me wrong the products are all good, a nice quality, but are still overpriced for what they are. I could have bought 3 decent laptops over the next 5 years for the price of the Macbook Pro. I bought these devices because as a <a href="http://www.abdevelopment.co.uk">developer</a> it opened up more doors for me.</p>
<p>So around Christmas time when I was trying to desperately come up with a good gift for my wife I turned to Apple once again and bought an iPad. The device doesn&#8217;t fit my needs personally, if I&#8217;m surfing the net then I want to do it on a fully functioning laptop. If I&#8217;m casually surfing, my phone suffices. For my wife however it did fit the need, I wanted a replacement to my wife&#8217;s ageing netbook and the iPad fit the bill.</p>
<p>I also had a sneaking suspicion that my one year old Adam would take to it as well. What I didn&#8217;t realise was how much and how easily he would take to it. Bear in mind that we are talking about a baby who cannot yet talk and has the attention span of a fly. He was instantly hooked, and in some ways obsessed with the device. It could keep him amused for minutes (a big thing for him)! He instantly got the interaction and was happily switching between apps and making noises, and turning the screen to flip it to the right side. Amazing really for someone so young.</p>
<p>Fast forward 6 months and whilst he still can&#8217;t talk (he&#8217;s getting there) his level of understanding of what the iPad plays is astounding. We downloaded apps that make animal noises as he likes animals and the education that the iPad has given him is brilliant. As the following video shows, he can identify animals I wouldn&#8217;t have believed possible for a 21 month year old. And he definitely hasn&#8217;t memorised the locations, they change between portrait/landscape modes, and there are multiple pages. He literally knows what an Elephant is, looks like and sounds like. The video doesn&#8217;t show it be he equally can point out flamingos, camels and crocodiles, not your average farm yard.</p>
<div style="text-align:center">
<object width="560" height="315"><param name="movie" value="http://www.youtube.com/v/tVQJoVPuS8E?version=3&amp;hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/tVQJoVPuS8E?version=3&amp;hl=en_US" type="application/x-shockwave-flash" width="560" height="315" allowscriptaccess="always" allowfullscreen="true"></embed></object>
</div>
<p>I never had anything like this as a kid, as obviously the technology wasn&#8217;t there, but today it is. I am filled with a sense of awe of what children today will be achieving in 20-30 years with a foundation such as what is the norm today. Technology is amazing.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.albinns.com/2012/06/techno-baby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VirtualBox, IE9, OSX, Test Environment</title>
		<link>http://www.albinns.com/2012/05/virtualbox-ie9-osx-test-environment/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=virtualbox-ie9-osx-test-environment</link>
		<comments>http://www.albinns.com/2012/05/virtualbox-ie9-osx-test-environment/#comments</comments>
		<pubDate>Thu, 10 May 2012 12:41:42 +0000</pubDate>
		<dc:creator>Al</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[ie9]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[scripts]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[virtualbox]]></category>

		<guid isPermaLink="false">http://www.albinns.com/?p=355</guid>
		<description><![CDATA[Since switching to developing on a Mac a year ago one thing which has always been a bit of a pain for me is when I need to test a site specifically on Internet Explorer. Whilst things have improved greatly recently in the need to support this as a browser there are still occasions, albeit [...]]]></description>
				<content:encoded><![CDATA[<p>Since switching to developing on a Mac a year ago one thing which has always been a bit of a pain for me is when I need to test a site specifically on Internet Explorer. Whilst things have improved greatly recently in the need to support this as a browser there are still occasions, albeit quite infrequently, when I simply need to replicate an issue on IE. These occasions are infrequent simply because I use a good base point for my FE work, and IE8/9 are actually quite good (in comparison to IE6/7). Coupled with a policy of progressive enhancement seems to get me 95% of the way there most of the time.</p>
<p>Still there is always those odd occasions to deal with. Because they are so infrequent I have so far gotten along with hi-jacking a colleague&#8217;s PC and hoping its a quick fix. Of course this was never going to be a long term solution as its not always going to be a quick fix and it isn&#8217;t always going to be available to me. A more permanent solution is required.</p>
<p>As I saw it I had 3 options:</p>
<ul>
<li>Buy a test machine</li>
<li>Purchase Parallells and a Win7 License</li>
<li>Find a free option</li>
</ul>
<p>The yorkshire man in me wanted to opt for the third option, after all I have spent a hefty sum on a Mac to do development, spending more money for the odd occasion irked me. Ultimately tho I didn&#8217;t hold out for a free option so have been looking to buy a test machine which could double as a machine for my wife. Only problem here is that if my wife has it and I need it then back to square one.</p>
<p>Well this morning I stumbled upon a <a href="https://twitter.com/#!/jongalloway/status/200481263134588928">tweet</a> which looked like it could fulfil my needs. I&#8217;d heard of <a href="http://virtualbox.org">VirtualBox</a> (and even had it installed) but the idea of subsequently having to install an OS such as Win7 seemed like more expense and a lot of hassle. Step forward <a href="http://xdissent.com/">Greg Thornton</a> who has provided a <a href="https://github.com/xdissent/ievms">wonderful script</a> that does everything for you to get up and running with VirtualBox in kinda no time!</p>
<p>Visit Greg&#8217;s github page for instructions on how to install it on Mac, then be prepared to wait as it downloads a massive 4GBish of data, just to install IE9. But post install I finally had IE9 available on demand on my Mac for free.</p>
<p>There were a few things I had to discover post install to help with dev which I will detail below but its all available with a quick Google and certainly isn&#8217;t a complaint from me.</p>
<ul>
<li>Password to login as Admin was &#8220;Password1&#8243; &#8211; this gets hinted to you on the login screen but still would be nice to be in the README file</li>
<li>To access my Mac&#8217;s localhost, use the IP 10.0.2.2</li>
<li>Hosts file needs to be edited as administrator, right-click on Notepad.exe and select &#8220;Run as Administrator&#8221;</li>
</ul>
<p>And thats it, I was happily debugging an IE7 mode in IE9 without having spent a penny. The silver lining was that the money I was saving for a test machine I have spent on a shiny new 27in LED monitor :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.albinns.com/2012/05/virtualbox-ie9-osx-test-environment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Doing more with {less}</title>
		<link>http://www.albinns.com/2012/05/doing-more-with-less/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=doing-more-with-less</link>
		<comments>http://www.albinns.com/2012/05/doing-more-with-less/#comments</comments>
		<pubDate>Thu, 03 May 2012 11:44:30 +0000</pubDate>
		<dc:creator>Al</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[css preprocessor]]></category>
		<category><![CDATA[less]]></category>
		<category><![CDATA[livereload]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[sass]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.albinns.com/?p=351</guid>
		<description><![CDATA[Been a while since my last blog which disappoints me a lot, didn&#8217;t want to leave it too long as I fear just like the gym, once you stop, you stop for an extended period of time. So this is just a quick post to extend my appreciation for Less. I&#8217;m very late to the [...]]]></description>
				<content:encoded><![CDATA[<p>Been a while since my last blog which disappoints me a lot, didn&#8217;t want to leave it too long as I fear just like the gym, once you stop, you stop for an extended period of time. So this is just a quick post to extend my appreciation for <a href="http://lesscss.org/">Less</a>.</p>
<p>I&#8217;m very late to the party here, CSS pre-processors have been around for a while now. I hadn&#8217;t looked at them for a few reasons:</p>
<ul>
<li>I didn&#8217;t want to learn a new syntax</li>
<li>I was worried about source control</li>
<li>I was worried I would become dependent on it</li>
<li>The compile step may slow me down</li>
<li>I don&#8217;t actually do a great deal of new projects, I do a lot of maintenance</li>
</ul>
<p>I&#8217;m sure people who haven&#8217;t used css pre-processors probably would consider the above to be a pretty standard list, I&#8217;ve heard others like you can&#8217;t work remotely on a file that then needs compiling etc. Lets be honest though none of the above have that much weight really. Probably the biggest reason was that I was being lazy.</p>
<p>So when I got my last small project which was a 2 day max start to finish brochure site I decided to bit the bullet and go for it. I had a choice between <a href="http://sass-lang.com/">SASS</a> and Less to make, I don&#8217;t know if there is a religious war between these two but I chose Less for no other reason than I have used Twitter Bootstrap in the past. A big project like this which uses Less seems like a pretty good advocate of the system. It also gave me a ready made reference guide with real world examples.</p>
<p>I solved the compile issue by purchasing <a href="http://livereload.com/">LiveReload</a> which not only compiles Less/Sass on the fly it also refreshes your browser without needing to switch to it. I am not feeling the full benefit of this part yet as I mostly work from my laptop in a single screen scenario, which is less than ideal. But a quick tab back and forth is still quicker than a tab, Cmd-R. I thoroughly recommend this app.</p>
<p>As to learning the new sysntax, it took me roughly 5 minutes to get used to it. Mixin&#8217;s &#8211; a breeze, the nested structure &#8211; intuitive, variables &#8211; a god send. In short I can&#8217;t believe I hadn&#8217;t used it earlier it was amazing. I also downloaded <a href="http://lesselements.com">Less Elements</a> which was a handy starter library for common mixins, a great way to get used to them.</p>
<p>I still have concerns over source control, because in a multi-person team someone could edit the css file direct and then the less file is out of date. This is a communication/discipline issue however and should be addressable.</p>
<p>Did I grow to depend on it, well not yet, but I could see it happening easily. Even now when I am doing a maintenance task I find myself wishing I could use Less on it. Just like when I don&#8217;t have my favourite MVC framework available I have to slow down and think about things and wish I had a convenient wrapper library about some basic functionality. If anything not using it all the time means that when I use it again I will probably have to re-learn it, which doesn&#8217;t worry me in the slightest.</p>
<p>If you&#8217;re not using a CSS pre-processor I seriously recommend giving it a shot.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.albinns.com/2012/05/doing-more-with-less/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
