<?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>Dave Mackintosh</title>
	<atom:link href="http://davemackintosh.co.uk/feed/" rel="self" type="application/rss+xml" />
	<link>http://davemackintosh.co.uk</link>
	<description>Front end developer extraordinaire!</description>
	<lastBuildDate>Mon, 20 Aug 2012 08:39:32 +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>Why I didn&#8217;t use a framework for ubui</title>
		<link>http://davemackintosh.co.uk/2012/06/framework-ubui/</link>
		<comments>http://davemackintosh.co.uk/2012/06/framework-ubui/#comments</comments>
		<pubDate>Sat, 02 Jun 2012 13:38:32 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Node JS]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[node]]></category>
		<category><![CDATA[ubui]]></category>

		<guid isPermaLink="false">http://davemackintosh.co.uk/?p=308</guid>
		<description><![CDATA[Why didn&#8217;t you use a framework for ubui&#8217;s core? Good question buddy! So here&#8217;s the answer; When I was thinking about how I should build ubui I had loads of ideas (and most of them were pretty zaney!) so I prototyped most of them and left it a few days so I could come back [...]]]></description>
				<content:encoded><![CDATA[<p>Why didn&#8217;t you use a framework for ubui&#8217;s core?</p>
<p>Good question buddy! So here&#8217;s the answer;</p>
<p>When I was thinking about how I should build ubui I had loads of ideas (and most of them were pretty zaney!) so I prototyped most of them and left it a few days so I could come back with fresh eyes and really assess the best option.</p>
<p>I prototyped with JavaScript MVC, Spine, bare JS (Using named JSON objects) and modular (kind of OOP but not quite there)</p>
<p>After much deliberation and toying with the most basic part of the ubui core I settled on a mixture of named JSON objects and modular JS, and here&#8217;s why:</p>
<p>I knew ubui&#8217;s core would be small and light and from the get go I didn&#8217;t want it to be big or hard to work with for extending. Once I&#8217;d sorted the auto loading of the framework and modules/dependancies I&#8217;d settled on a very small, very fast, very easy to understand structure where most of the modules are JSON objects assigned to module.exports and named in an index file for the ubuim&#8217;s (the modules are called ubuim&#8217;s) so they stay named and obvious to understand (always reference to the modules in the index file) and the framework models are generally assigned as anonymous functions to pre-process cli arguments before performing a selected action.</p>
<p>Take a look at the below example of the users module to understand more about why I&#8217;d use both styles (I promise it makes sense)</p>
<pre>this.exec({
	"command": command,
	"success": function (a) {
		console.log('success');
		console.log(a);
	},
	"error": function (a, b) {
		console.log('error');
		console.log(a);
	}
}).run();</pre>
<p>in the above example, exec is a framework model which is an anonymous function rather than a JSON object containing functions. Its an anonymous function so I can pass it arguments to set internally without the need for another method in-between exec and run which speeds up the loading and running of commands since we&#8217;re already going to be waiting for the shell to respond to us as well as checking we&#8217;re not running anything naughty.</p>
<p>The model will also return itself so its a circular reference thus making it both assignable and chain-able, you can also dump out the entire object for debugging (which was super handy)</p>
<p>I know a lot of people say frameworks standardise the structure of an application but that, in my eyes, doesn&#8217;t apply here since its such a simple structure and so simple to extend I have no plans to move over to any kind of framework either as there is no need to complicate or bloat the app.</p>
<p>And that my friend is why I didn&#8217;t use a framework for ubui&#8217;s core.</p>
]]></content:encoded>
			<wfw:commentRss>http://davemackintosh.co.uk/2012/06/framework-ubui/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS3 do&#8217;s and don&#8217;ts</title>
		<link>http://davemackintosh.co.uk/2012/05/css3-dos-donts/</link>
		<comments>http://davemackintosh.co.uk/2012/05/css3-dos-donts/#comments</comments>
		<pubDate>Tue, 08 May 2012 11:49:52 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[LESS CSS]]></category>
		<category><![CDATA[webkit]]></category>
		<category><![CDATA[best practices]]></category>
		<category><![CDATA[css3]]></category>

		<guid isPermaLink="false">http://davemackintosh.co.uk/?p=298</guid>
		<description><![CDATA[I&#8217;ve been seeing a lot about the Opera webkit craze recently and its gotten quite annoying because they&#8217;ve been pushed into it by people claiming they know CSS3 and how to appropriately code for mobile devices. Clearly this isn&#8217;t the case as Opera have said they are backing down on it all and &#8220;just doing [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been seeing a lot about the Opera webkit craze recently and its gotten quite annoying because they&#8217;ve been pushed into it by people claiming they know CSS3 and how to appropriately code for mobile devices.</p>
<p>Clearly this isn&#8217;t the case as Opera have said they are backing down on it all and &#8220;just doing it&#8221; because of us, the developers not using the vendor prefixes.</p>
<p><strong>WHAT?!</strong></p>
<p>Now its this that really pushes me over the edge, why aren&#8217;t we using the vendor prefixes? Because we don&#8217;t know them? Because its an extra line in our CSS and we can&#8217;t budget for it? The client didn&#8217;t say &#8220;We want it to work across all browsers on as many devices as possible.&#8221; none of these excuses cut it for me its just shoddy workmanship in my eyes.</p>
<p>What would you say if a builder turned up to build an extension on your house with just the right number of bricks but PVA glue for mortar because you didn&#8217;t specify you wanted it to stay up during the rain?</p>
<p>Most of what I see these days in terms of CSS3 is round corners and text-shadows which is disappointing considering the massive potential CSS3 has for animations and timed events. Although I don&#8217;t personally believe that behavioural code lives within CSS we even have click listeners in the latest spec. Very cool, when will JS be but a distant memory?</p>
<p>But back to round corners and text shadows, I see this a lot which is the very reason Opera had to bend over and take it.</p>
<pre>.my-class {
	-webkit-border-radius: 4px;
	text-shadow: 1px 1px 1px #000;
}</pre>
<p>If you can spot what annoys the hell out of me then good on you, we can be friends. If you can&#8217;t then keep reading on because this is a pet hate of mine.</p>
<p><strong>You&#8217;ve already started, why stop?</strong></p>
<p>In the code above you&#8217;ve already made it half way out of being a douche by not prefixing text-shadow so why is border-radius prefixed? Because people that don&#8217;t keep up with the specs, browsers or live under a rock are being allowed explicit access to a code base they don&#8217;t know enough about to add commercial value to, but I can&#8217;t pin it all on the developers.</p>
<p><strong>Where are our QA team?</strong></p>
<p>These people are our lifeline when it comes to releasing something to a wild, they make sure our tamed beast doesn&#8217;t turn around and bite us in the ass or eat out leg; they&#8217;re the one&#8217;s that check the quality of our code and make sure it works across as many devices as possible and they *should* give us a compatibility chart after each test to show us where our site doesn&#8217;t work so we can improve in the next version.</p>
<p>Sadly, these days QA means &#8220;Check it looks ok and give it the green light ASAP&#8221; I remember when QA-ers opened your code to check there wasn&#8217;t anything disgusting in it like this</p>
<pre>#header h1 a span#logo span {
	border:1px solid #F00!important;
	border-bottom:2px solid #00F!important;
}</pre>
<p>*shudder* ok that was a bit too gross but still, they do not check for these things anymore, I call them browser vulnerabilities because the code is so bad its actually <strong>likely</strong> to break in newer versions of any browser or when some clever clogs inspects element and plays with the inner workings of your site.</p>
<p>So what aren&#8217;t they doing, well they&#8217;re not snooping at our code making sure we have all the prefixes we need, see below for the prefixes we&#8217;re all failing to use:</p>
<ul>
<ul>
<li>-o-</li>
<li>-moz-</li>
<li>-ms-</li>
<li>prefix-less</li>
</ul>
</ul>
<p>There aren&#8217;t many additions so why are we skipping them all and just using a poor mixture of prefix-less properties and webkit, pushing web innovators into bending over backwards to support a competing vendors prefix.</p>
<p><strong>We&#8217;re all human</strong></p>
<p>We&#8217;re all human and its natural to want to get from a to b as quickly as possible with as little expenditure as possible, in this case the expenditure is the energy used to think and type.. poor I know but it seems most of us don&#8217;t have the energy, time, money, whatever other excuses you can come up with I&#8217;m sure.</p>
<p>And ok, not all of us have the time to prefix everything, this is why pre-processing libraries such as Sass, LESS and Compass are all great (and by the way I have built a library for all of them) because we can consolodate our code into one function and call it willy nilly and not have to worry about the prefixes because the functions handle that for us; but I&#8217;ll get that a bit later.</p>
<p>What I want to talk about is how to ensure you&#8217;re providing the best solution to your clients and the sub-sequent developers that get hold of your project. This can be ensured by QA-ing your own work on multiple screens/devices and at multiple resolutions to ensure the CSS you have written is solid enough for any of the *people* out there to play with, and we all know they&#8217;re going to play with it, its human nature to understand everything we can about something we&#8217;re interested in (So unless you&#8217;re a marketing genius or pirate and have people with no interest visiting your site) that&#8217;s hopefully everyone.</p>
<p>Its simple, make sure you use the technologies available to make your job easier such as LESS and Sass and use libraries that are all over the internet to help you, there&#8217;s no shame in learning from someone else&#8217;s ideas and work; I wouldn&#8217;t be in the position I&#8217;m in now to tell you how to do it if I weren&#8217;t where you are now so firstly lets look at the LESS option.</p>
<blockquote><p>LESS extends CSS with dynamic behavior such as variables, mixins, operations and functions. LESS runs on both the client-side (Chrome, Safari, Firefox) and server-side, with Node.js and Rhino</p></blockquote>
<p>Its truly brilliant, much like Sass but with easier to remember syntax and there are some truly brilliant libraries out there to cut the work down even further, even I made one available here</p>
<p><a href="https://github.com/davemackintosh/My-HTML5-CSS3-templates---tools">https://github.com/davemackintosh/My-HTML5-CSS3-templates&#8212;tools</a></p>
<p>and there are many more, its the same with Sass; below is their blurb</p>
<blockquote><p>Sass makes CSS fun again. Sass is an extension of CSS3, adding nested rules, variables, mixins, selector inheritance, and more. It’s translated to well-formatted, standard CSS using the command line tool or a web-framework plugin</p></blockquote>
<p>And my effects library will be converted to Sass just as soon as I can find the time! If you don&#8217;t want to use LESS or Sass or can&#8217;t use anything like that, at least settle for the brilliant <a href="http://leaverou.github.com/prefixfree/" target="_blank">prefix-less JavaScript library</a> to help you out.</p>
<p>&lt;/rant&gt;</p>
<p>I hope we all learned something here. I will continue to rant about this issue if I have to!</p>
]]></content:encoded>
			<wfw:commentRss>http://davemackintosh.co.uk/2012/05/css3-dos-donts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Incorrect usage of html5 makes me a bit sad</title>
		<link>http://davemackintosh.co.uk/2012/05/incorrect-usage-html5-bit-sad/</link>
		<comments>http://davemackintosh.co.uk/2012/05/incorrect-usage-html5-bit-sad/#comments</comments>
		<pubDate>Sun, 06 May 2012 10:15:07 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[HTML/XHTML]]></category>
		<category><![CDATA[Semantics]]></category>
		<category><![CDATA[guidelines]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[standards]]></category>

		<guid isPermaLink="false">http://davemackintosh.co.uk/?p=292</guid>
		<description><![CDATA[Firstly, all go read https://developer.mozilla.org/en/Sections_and_Outlines_of_an_HTML5_document and http://www.w3.org/TR/2010/WD-html5-20100624/ for gods sake.. He WILL smite you for not reading them before starting. You could also do with reading http://google-styleguide.googlecode.com/svn/trunk/htmlcssguide.xml Yes I’m a stickler for standards but we would all descend into chaos if there weren’t standards so its a good place to start (And you’ll be pleasantly [...]]]></description>
				<content:encoded><![CDATA[<p>Firstly, all go read <a href="http://davemackintosh.co.uk/go/mozillaHTML5/">https://developer.mozilla.org/en/Sections_and_Outlines_of_an_HTML5_document</a> and <a href="http://davemackintosh.co.uk/go/W3CSpecifications/">http://www.w3.org/TR/2010/WD-html5-20100624/</a> for gods sake.. He WILL smite you for not reading them before starting.</p>
<p>You could also do with reading <a href="http://davemackintosh.co.uk/go/GoogleHTMLCSSGuidelines/">http://google-styleguide.googlecode.com/svn/trunk/htmlcssguide.xml</a></p>
<p>Yes I’m a stickler for standards but we would all descend into chaos if there weren’t standards so its a good place to start (And you’ll be pleasantly surprised how much you learn from a specification)</p>
<p>But when I see this:</p>
<p><script src="https://gist.github.com/2585809.js"></script></p>
<p>I die a little inside, I *actually* saw the above and my mind vomited for 5 reasons immediately, that’s a very much shortened down version of what I physically saw (What is seen cannot be unseen…)</p>
<p>1. &lt;section&gt; used out of context, its not in the semantic place it should be</p>
<p>2. There are inline styles for major elements on the page</p>
<p>3. I couldn’t see any reason the particular links I saw needed to be in that order so why the hell are they using &lt;ol&gt; instead of &lt;ul&gt;</p>
<p>4. I couldn’t see a &lt;hgroup&gt; element for those headers or any &lt;time&gt; elements on the comments meaning that it makes no sense to search engines or prying eyes like mine..</p>
<p>5. Where the ARIA is my ARIA? Tsk tsk, accessibility people! http://www.w3.org/TR/wai-aria/roles<a class="tweet-hashtag" href="http://search.twitter.com/search?q=%23role_definitions">#role_definitions</a></p>
<p>What I expected to see was this:</p>
<p><script src="https://gist.github.com/2585822.js"></script></p>
<p>The above makes me feel giddy, excited even! But! It doesn’t follow one of Googles style guidelines, but it doesn’t work anyway.. Its not always correct so I’ve left the closing tags in.</p>
<p>The reason I like the above is because it makes semantic sense (like I was reading a book, I have the main article, some extra stuff on the side and if I wanted to dig deeper I can see that the roles match what I’m looking at to confirm I’m reading the right part of the page (works the same with search engines, they don’t know what &lt;div id=”MostImportantPartOfMyPage”&gt; is..)</p>
<p>it doesn’t take too much longer to get this right and the only caveat is getting the actual tags right depending on the context they’re needed!</p>
<p>For instance, my home page has a number of articles so would I want a whole bunch of article tags on there? no, not really because that doesn’t make sense, the page should be an &lt;article&gt; (but for gods sake not as the wrapper, &lt;div&gt; is still the dogs nuts for that) and each post should be a &lt;section&gt;, as in a section of the page.. Makes sense now huh?</p>
<p><script src="https://gist.github.com/2585824.js"></script></p>
<p>In each section you should have a &lt;hgroup&gt; unless you only have the one heading otherwise its not a group and its a singular entity (poor lonely header..) so get wrapping!</p>
<p>Your &lt;hgroup&gt; be followed with your content (duh..) or if not, the only other element I would consider acceptable here is &lt;time&gt; to mark the publication date/time.</p>
<p>After your content you should have a &lt;footer&gt; element which contains your comments and any other meta information you want attached to each section of content.</p>
<p>Then you should have a perfectly semantic page… get cracking! I’ll do another post on proper JavaScript as a continuation of why !! pisses me off.. http://jsfiddle.net/dmackintosh88/7cRyr/</p>
]]></content:encoded>
			<wfw:commentRss>http://davemackintosh.co.uk/2012/05/incorrect-usage-html5-bit-sad/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Window load vs document ready</title>
		<link>http://davemackintosh.co.uk/2012/03/window-load-document-ready/</link>
		<comments>http://davemackintosh.co.uk/2012/03/window-load-document-ready/#comments</comments>
		<pubDate>Thu, 29 Mar 2012 07:20:08 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[dom loading]]></category>
		<category><![CDATA[Jquery]]></category>

		<guid isPermaLink="false">http://davemackintosh.co.uk/?p=278</guid>
		<description><![CDATA[I see this issue all the time and perhaps even more worryingly I see the use of setTimeout() in places to defer listeners. If you don&#8217;t need to wait for images/scripts to load use: (function ($) { $(document).ready(function () { //Code here }); })(jQuery); If you need to wait for media to load, use this: [...]]]></description>
				<content:encoded><![CDATA[<p>I see this issue all the time and perhaps even more worryingly I see the use of setTimeout() in places to defer listeners.</p>
<p>If you don&#8217;t need to wait for images/scripts to load use:</p>
<pre>(function ($) {
        $(document).ready(function () {
                //Code here
        });
})(jQuery);</pre>
<p>If you need to wait for media to load, use this:</p>
<pre>(function ($) {
        $(window).load(function () {
                //Code here
        });
})(jQuery);</pre>
<p>Simple as that!</p>
]]></content:encoded>
			<wfw:commentRss>http://davemackintosh.co.uk/2012/03/window-load-document-ready/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Album Details</title>
		<link>http://davemackintosh.co.uk/2012/03/new-album-details/</link>
		<comments>http://davemackintosh.co.uk/2012/03/new-album-details/#comments</comments>
		<pubDate>Fri, 02 Mar 2012 18:58:20 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Reason]]></category>
		<category><![CDATA[Sonar Producer]]></category>
		<category><![CDATA[classical]]></category>
		<category><![CDATA[metal]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[progressive]]></category>
		<category><![CDATA[rock]]></category>

		<guid isPermaLink="false">http://davemackintosh.co.uk/?p=273</guid>
		<description><![CDATA[I have new details confirmed for my new album The album will be called 13 There will be 9 tracks listed below in order. 3 6 7 9 11 13 33 39 77 Odd album and track names but to some people they mean a LOT. No I will not explain them. Looking for a [...]]]></description>
				<content:encoded><![CDATA[<p><strong>I have new details confirmed for my new album</strong></p>
<p>The album will be called <strong>13</strong></p>
<p>There will be <strong>9</strong> tracks listed below in order.</p>
<ol>
<li>3</li>
<li>6</li>
<li>7</li>
<li>9</li>
<li>11</li>
<li>13</li>
<li>33</li>
<li>39</li>
<li>77</li>
</ol>
<p>Odd album and track names but to some people they mean a LOT. No I will not explain them.</p>
<p>Looking for a late 2012 early 2013 release.</p>
<p>Influences include:</p>
<p>Dream Theater circa 90&#8242;s<br />
Rush circa 70&#8242;s to 90&#8242;s<br />
Genesis<br />
Ludovico Einaudi<br />
Opeth</p>
<p>Should hopefully get some teasers up over the next few weeks.</p>
]]></content:encoded>
			<wfw:commentRss>http://davemackintosh.co.uk/2012/03/new-album-details/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coldfusion dateformat with day suffix</title>
		<link>http://davemackintosh.co.uk/2012/02/colfusion-dateformat-day-suffix/</link>
		<comments>http://davemackintosh.co.uk/2012/02/colfusion-dateformat-day-suffix/#comments</comments>
		<pubDate>Mon, 27 Feb 2012 10:37:10 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Coldfusion]]></category>
		<category><![CDATA[dateformat]]></category>
		<category><![CDATA[day suffix]]></category>

		<guid isPermaLink="false">http://davemackintosh.co.uk/?p=270</guid>
		<description><![CDATA[I wrote a function for this since it was incredibly annoying that the built in functionality doesn&#8217;t have an option for it&#8230; &#60;!--- @author ~ Dave Mackintosh @Description ~ Formats the date with the day suffix ---&#62; &#60;cffunction name="DateFormatter" returntype="any" description="Formats the date with the day suffix"&#62; &#60;cfargument name="in" required="true" type="date" /&#62; &#60;!--- Format it [...]]]></description>
				<content:encoded><![CDATA[<p>I wrote a function for this since it was incredibly annoying that the built in functionality doesn&#8217;t have an option for it&#8230;</p>
<pre>&lt;!---
		@author ~ Dave Mackintosh
		@Description ~ Formats the date with the day suffix
	---&gt;
	&lt;cffunction name="DateFormatter" returntype="any" description="Formats the date with the day suffix"&gt;
		&lt;cfargument name="in" required="true" type="date" /&gt;
		&lt;!--- Format it ---&gt;
		&lt;cfset out = dateformat(in, 'd mmmm yyyy') /&gt;
		&lt;!--- Convert it to an array ---&gt;
		&lt;cfset date = ListToArray(out, ' ') /&gt;
		&lt;!--- Give it a suffix ---&gt;
		&lt;cfset sub = Mid(date[1], Len(date[1]), 1) /&gt;
		&lt;cfset suff = '' /&gt;

		&lt;cfscript&gt;
			//We only get st if its the first number and not 11
			if (sub eq 1 and (date[1] neq 11)) {
				suff = 'st';
			}
			//We only get nd if its 2 and not 12
			else if (sub eq 2 and (date[1] neq 12)) {
				suff = 'nd';
			}
			//Same with rd, only if its 3 and not thirteen
			else if (sub eq 3 and (date[1] neq 13)) {
				suff = 'rd';
			}
			//Otherwise its going to be a th!
			else {
				suff = 'th';
			}
		&lt;/cfscript&gt;

		&lt;!--- Now replace the substring ---&gt;
		&lt;cfset date[1] = date[1] &amp; suff /&gt;

		&lt;cfreturn ArrayToList(date, ' ') /&gt;
	&lt;/cffunction&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://davemackintosh.co.uk/2012/02/colfusion-dateformat-day-suffix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Decommissioning the dFramewerk</title>
		<link>http://davemackintosh.co.uk/2012/02/decommissioning-dframewerk/</link>
		<comments>http://davemackintosh.co.uk/2012/02/decommissioning-dframewerk/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 22:52:17 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[dFramewerk]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[php developer]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[dframewerk]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://davemackintosh.co.uk/?p=261</guid>
		<description><![CDATA[Well, with a long face and heavy heart I have decided to no longer support the dFramewerk; no longer actively develop it and no longer promote it. I have closed the website and will be letting it the domain expire so you can snap that up nice and easy at the cost of a normal [...]]]></description>
				<content:encoded><![CDATA[<p>Well, with a long face and heavy heart I have decided to no longer support the dFramewerk; no longer actively develop it and no longer promote it. I have closed the website and will be letting it the domain expire so you can snap that up nice and easy at the cost of a normal domain name.</p>
<p><strong>The reasoning</strong></p>
<p>After years of using the dFramewerk myself I have learned many things about PHP (and still continually learn) and I have strayed into using the Zend Framework for my projects, this has worked out very well for me and my clientele and I feel comfortable enough with it now to stop active development of the dFramewerk as the combination of both the maintenance and updates takes up as much of my time as the actual software development!</p>
<p>The evolution of the framework itself has been slowing down over the last 18 months, to a stand still in-fact but I still had support requests and bugs to fix for the general public, now I know many thousands of people have downloaded and implemented the framework and as with any open source software the risk was that support and development may stop at any time but it is; at the end of the day my choice to discontinue the development of the project and offer my greatest apologies for all that I am disappointing.</p>
<p>This decision didn&#8217;t come lightly but it is in the best interest for my clients that I use a more standardised framework and a framework I can rapidly develop with.</p>
]]></content:encoded>
			<wfw:commentRss>http://davemackintosh.co.uk/2012/02/decommissioning-dframewerk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS pre-processing with LESS</title>
		<link>http://davemackintosh.co.uk/2012/01/css-pre-processing-less/</link>
		<comments>http://davemackintosh.co.uk/2012/01/css-pre-processing-less/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 09:25:53 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[HTML/XHTML]]></category>
		<category><![CDATA[LESS CSS]]></category>

		<guid isPermaLink="false">http://davemackintosh.co.uk/?p=252</guid>
		<description><![CDATA[While I spend much of my time elbow deep in a mixture of PHP, ColdFusion and .NET I probably spend about 60% of my time cringing at the state of old websites CSS and writing new stylesheets and I try my best to keep up with the latest front end technologies and for the last [...]]]></description>
				<content:encoded><![CDATA[<p>While I spend much of my time elbow deep in a mixture of PHP, ColdFusion and .NET I probably spend about 60% of my time cringing at the state of old websites CSS and writing new stylesheets and I try my best to keep up with the latest front end technologies and for the last 6 to 8 weeks I have been using (and abusing I must admit) LESS which has in my opinion been an absolute god send, from both a management and developer point of view.</p>
<h3>Gripe&#8230;</h3>
<p>It allows the use of mixins, variables and adopts a fairly DRY methodology, until you render.</p>
<p>I&#8217;ll get the gripe over with before I move onto some of the plusses of LESS; during any CSS writing I&#8217;ll try to visualise the formation of my selectors so that I can maximise the effect of DRY and for years and years that has worked for me, so when I heard about LESS, researched it I was gob-smacked to see I could write arrow-head formated code and not generally have to worry about repeating selectors over and over. This was all until I came to compiling, take this LESS snippet for instance:</p>
<pre>#myunorderedlist {
    //Clear the element
    overflow:hidden;
    border:1px solid #F00;

    li {
        float:left;
        border-right:1px solid #F00;

            a {
                padding:8px 20px;
                text-align:center;

                &amp;:hover {
                    cursor:pointer;
                    text-decoration:underline;
                }
            }
    }
}</pre>
<p>Will end up like this, with a lot of repeated selectors that aren&#8217;t exactly necessary:</p>
<pre>#myunorderedlist {
    overflow:hidden;
    border:1px solid #F00;
}
#myunorderedlist li {
    float:left;
    border-right:1px solid #F00;
}
#myunorderedlist li a {
    padding:8px 20px;
    text-align:center;
}
#myunorderedlist li a:hover {
    cursor:pointer;
    text-decoration:underline;
}</pre>
<p>This isn&#8217;t a massive issue for me, I recently said for everything good out there, there is something twice as bad and twice as stupid so I took this with a pinch of salt and hit the drawing board to try and think of a way to morph my working method into something to reduce this. I failed. But having said that, the amount of time saving involved with the use of mixins is fundamentally one of the biggest time savers of my day and the ability to organise my CSS into separate files and compile out to one is something of a miracle.</p>
<h3>@imports make me shudder..</h3>
<p>Now, normally when I see @import &#8216;some-file.blah&#8217;; I feel a little sick and shaky, these are a personal hate of mine. I have no idea why, but I hate these but LESS has taken it to another level and allowed for *.less inclusions which on compilation are actually written to the callee.</p>
<p>Take the below code for example:</p>
<pre>@import 'effects.less';
//For anyone out there reading this, NORMALISE stop resetting!! <img src='http://davemackintosh.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> 
@import 'normalise.less';
@import 'html5.less';

html {
    min-height:100%;

    body {
        min-height:100%;
    }
}

@import 'home.less';
@import 'about.less';
@import 'services.less';</pre>
<p>So I&#8217;ll take it from the top, the other day I made public a <a title="LESS CSS effects bootstrap" href="http://davemackintosh.co.uk/2012/01/css-effects-bootstrap/">CSS3 effects bootstrap</a> that is cross browser (of course excluding IE) and I import that into every project that I think is going to use any kind of transitional effects (which lets face it is becoming more and more popular/regular) this file contains nothing but a disclaimer and a set of mixins to make my job easier and faster and if I don&#8217;t use any of the functions the disclaimer is the only thing that is output in the CSS.</p>
<p>I NEVER reset, sorry Eric Mayer you&#8217;re a legend but its not the best anymore. I <a href="http://davemackintosh.co.uk/go/normalise-css/">normalise</a> which I find much better and I&#8217;ve got my own LESS file for this, just run the CSS &gt; Sass converter tool to convert this to LESS and tidy it up a bit.</p>
<p>In the example I set a few basic rules on the html and body tags, this was just representational so you don&#8217;t need these; I then start importing my page specific files.</p>
<p>The actual ability to import page specific stylesheets is brilliant (in the sense it ends up in the same file) although it does create an unhelpful amount of bloating but its quicker than writing plugins for CMS&#8217; to attache specific stylesheets to pages. It also allows for more than one person to work on a website and compile to the same file with no loss of data which is brilliant for where I work and what I do.</p>
<h3>Opinions on other issues</h3>
<p>A few people mentioned that the use of debug toolbars (Firebug, webkits toolbar, Dragonfly, etc) to check css layouts is annoying when using CSS pre-processors as 100% of the time the line-number is wrong making it difficult to find the actual line of code that is wrong. Big deal I say, organise your code more efficiently using LESS imports and mixins/variables or any other way you find beneficial.</p>
<p>Its also been heard that LESS/Sass makes front end developers code lazily, I completely disagree with this. I find it incredibly hard to code lazily with LESS as the arrow-head formation makes it easy to read and search through so amends are easy to implement, also with the ability to use JavaScripts // comment syntax you can clearly label your selectors to something more memorable to search by or note a change made/original value.</p>
<h3>Conclusion</h3>
<p>LESS/Sass and in general CSS pre-processors are great for some projects, perhaps not all but definitely a time saver for me 80% of the time, it requires no training because it is just far too easy to use. For any HTML5 or CSS3 projects its almost an absolute must with the likely-hood of falling into the no-DRY hole, easily fixed with imports and libraries containing different effects its a dead-cert that you&#8217;ll love using LESS but find it gainful only half of the time depending on your work type.</p>
<p>Give it a go, after all its free and it takes no time at all to learn it. Also download <a href="http://crunchapp.net/">Crunch</a> its the best LESS editor/compiler currently available. Even if it doesn&#8217;t work on Ubuntu just yet <img src='http://davemackintosh.co.uk/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://davemackintosh.co.uk/2012/01/css-pre-processing-less/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LESS CSS effects bootstrap</title>
		<link>http://davemackintosh.co.uk/2012/01/css-effects-bootstrap/</link>
		<comments>http://davemackintosh.co.uk/2012/01/css-effects-bootstrap/#comments</comments>
		<pubDate>Sun, 22 Jan 2012 12:13:06 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[LESS CSS]]></category>
		<category><![CDATA[css3]]></category>

		<guid isPermaLink="false">http://davemackintosh.co.uk/?p=246</guid>
		<description><![CDATA[LESS CSS is possibly the greatest thing to happen to any front end developers job, it handles mixins, parameters and on top of all of that it can be play a big role on the performance of your site with its compiler. To add to the Awesome (yeah, with a capital A) I often involve [...]]]></description>
				<content:encoded><![CDATA[<p><a title="LESS CSS" href="http://lesscss.org/" target="_blank">LESS CSS</a> is possibly the greatest thing to happen to any front end developers job, it handles mixins, parameters and on top of all of that it can be play a big role on the performance of your site with its compiler. To add to the Awesome (yeah, with a capital A) I often involve the compiler within my Capistrano scripts to automate everything during deployment.</p>
<p>But this post isn&#8217;t about that, not this time <img src='http://davemackintosh.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  I&#8217;m here because I&#8217;ve been working on a generic effects.less which contains a set of generic mixins I use so very regularly its a simple include. <a title="LESS CSS effects library" href="/downloads/effects.less" target="_blank">Download it here!</a></p>
<p>To use the file just stick this in the top of your LESS file.</p>
<pre>@import 'directory/to/effects.less';</pre>
<p>And you will have added the below effects to your CSS library instantly:</p>
<ol>
<li><strong>.rounded (<em>[@radius]</em>);</strong><br />
This adds a border radius to your element with the specified radius</li>
<li><strong>.border-radius (<em>[@topleft: 4px, @bottomleft: 4px, @topright: 4px, @bottomright: 4px]</em>);</strong><br />
This allows you to specify each corners radius seperately</li>
<li><strong>.transition (<em>[@transit: all, @speed: 1s, @ease: linear]</em>);</strong><br />
This watches for transitions and allows you to, cross browser (Bar IE) set the transition methods</li>
<li><strong>.boxShadow ([<em>@horiz:0px, @vertic:0px, @blurRad:5px, @color: #000]</em>);</strong><br />
Adds a shadow to any element capable of having a shadow, this is an OUTER shadow</li>
<li><strong>.insetBoxShadow (<em>[@horiz:0px, @vertic:0px, @blurRad:5px, @color: #000]</em>) ;</strong><br />
Adds a shadow to any element capable of having a shadow, this is an INNER shadow</li>
<li><strong>.gradient(<em>[@color: rgb(36,36,36), @start: rgb(36,36,36), @stop: rgb(89,89,89)]</em>);</strong><br />
This applies a very simple bottom/bottom linear gradient to the selected element</li>
<li><strong>.perspective (<em>[@amount:800, @left: 50%, @top: 50%]</em>);<br />
</strong>This applies perspective to your element for 3D transforms</li>
<li><strong>.perspectiveOrigin (<em>[@left:50%, @top:50%]</em>);<br />
</strong>This is automatically called by .perspective() and sets the origin of the transform</li>
<li><strong>.preserve3D ();<br />
</strong>This preserves any 3D aspect attached to the element during transforms</li>
</ol>
<p>I hope very much that you all enjoy using this file, its sped up my development no end and deserves sharing <img src='http://davemackintosh.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>If you like it and think I deserve a beer then just send me a buck or two via Paypal to the address in the top of the downloadable file.</p>
<p>happy LESSING!</p>
]]></content:encoded>
			<wfw:commentRss>http://davemackintosh.co.uk/2012/01/css-effects-bootstrap/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Slow internet Ubuntu 11.10 Wireless</title>
		<link>http://davemackintosh.co.uk/2011/12/slow-internet-ubuntu-11-10-wireless/</link>
		<comments>http://davemackintosh.co.uk/2011/12/slow-internet-ubuntu-11-10-wireless/#comments</comments>
		<pubDate>Mon, 19 Dec 2011 12:25:39 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[slow internet]]></category>
		<category><![CDATA[slow wireless]]></category>
		<category><![CDATA[ubuntu 11.10]]></category>

		<guid isPermaLink="false">http://davemackintosh.co.uk/?p=241</guid>
		<description><![CDATA[So this issue seems to be a new one in the latest versions of Ubuntu, a slow internet connection is a real pain in the ass but after relentless network testing and checking I have every update installed and yada yada I never thought to check the MTU (maximum transmission unit) which of course was [...]]]></description>
				<content:encoded><![CDATA[<p>So this issue seems to be a new one in the latest versions of Ubuntu, a slow internet connection is a real pain in the ass but after relentless network testing and checking I have every update installed and yada yada I never thought to check the MTU (maximum transmission unit) which of course was set too high, this means that for wireless networking any packets larger than the default MTU (1492) will get lost in the network. Bad times, LUCKILY you can set this yourself!</p>
<p>its recommended that you test from 1499 down, I got to 1464 before my network seemed ok.</p>
<p>Run this command and keep lowering the value until you stop getting the message <strong>&#8220;Frag needed and DF set&#8221;</strong></p>
<p>Run the below in your terminal:</p>
<pre>sudo ifconfig eth0 mtu 1464
ifconfig | grep MTU</pre>
<p>This lowers the maximum packet size and it sped my network speed up from around the 20kbps mark to my Windows 7 speed which is around 4mbps.</p>
<p>EDIT:</p>
<p>So mine started to slow down again, which really sucks and this is a reported Kernel 3 bug, <strong>BUT</strong> if you set your wireless router to <strong>NOT</strong> send a wireless N signal it will speed up brilliantly!</p>
]]></content:encoded>
			<wfw:commentRss>http://davemackintosh.co.uk/2011/12/slow-internet-ubuntu-11-10-wireless/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
