<?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>Dean Clatworthy</title>
	<atom:link href="http://www.deanclatworthy.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.deanclatworthy.com</link>
	<description>Welcome to the portfolio of Dean Clatworthy, Web Developer and Designer.</description>
	<lastBuildDate>Mon, 02 Jan 2012 17:30:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>How to rip music from the hype machine</title>
		<link>http://www.deanclatworthy.com/2012/01/how-to-rip-music-from-the-hype-machine/</link>
		<comments>http://www.deanclatworthy.com/2012/01/how-to-rip-music-from-the-hype-machine/#comments</comments>
		<pubDate>Mon, 02 Jan 2012 17:30:42 +0000</pubDate>
		<dc:creator>Dean</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.deanclatworthy.com/?p=160</guid>
		<description><![CDATA[Occasionally on the Hype Machine, a song is linked to in an external blog that no longer exists or the path has changed. If the song works when clicking play on HM then there&#8217;s a simple way to find out the URL and download it using Google Chrome as your browser. Load up Chrome, and press [...]]]></description>
			<content:encoded><![CDATA[<p>Occasionally on the <a href="http://hypem.com/">Hype Machine</a>, a song is linked to in an external blog that no longer exists or the path has changed. If the song works when clicking play on HM then there&#8217;s a simple way to find out the URL and download it using Google Chrome as your browser.</p>
<ol>
<li>Load up Chrome, and press Ctrl+Shit+I to open the WebKit Inspector.</li>
<li>Go to the network tab then go to the relevant HM page. If nothing appears in the Network tab refresh the page again. Wait a while for everything to appear.</li>
<li>Click the &#8220;clear&#8221; button at the bottom of the network window (it looks like a forbidden icon and it&#8217;s to the left of where it says &#8220;All&#8221;)</li>
<li>Then move your mouse over the play button on HM and click it.</li>
<li>You should see a few things scroll in the &#8220;Network&#8221; window and one of those will be the MP3 file. Right click it and open in a new tab. Chrome will begin to play the mp3. Right click it and click &#8220;Save as&#8221; and bada bing bada boom you have your MP3 <img src='http://www.deanclatworthy.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ol>
<div>Enjoy!</div>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.deanclatworthy.com%2F2012%2F01%2Fhow-to-rip-music-from-the-hype-machine%2F&amp;title=How%20to%20rip%20music%20from%20the%20hype%20machine" id="wpa2a_2"><img src="http://www.deanclatworthy.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.deanclatworthy.com/2012/01/how-to-rip-music-from-the-hype-machine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A chrome extension to revert to the old-style facebook chat</title>
		<link>http://www.deanclatworthy.com/2011/09/a-chrome-extension-to-revert-to-the-old-style-facebook-chat/</link>
		<comments>http://www.deanclatworthy.com/2011/09/a-chrome-extension-to-revert-to-the-old-style-facebook-chat/#comments</comments>
		<pubDate>Sat, 10 Sep 2011 08:15:06 +0000</pubDate>
		<dc:creator>Dean</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.deanclatworthy.com/?p=148</guid>
		<description><![CDATA[Let it be known, that I&#8217;m not a big fan of Facebook. I&#8217;ve not put out a status update or uploaded a photo in over 6 months, but the value in the service lies with being able to message friends and family in a country that I no longer live. It&#8217;s a great way of [...]]]></description>
			<content:encoded><![CDATA[<p>Let it be known, that I&#8217;m not a big fan of Facebook. I&#8217;ve not put out a status update or uploaded a photo in over 6 months, but the value in the service lies with being able to message friends and family in a country that I no longer live. It&#8217;s a great way of keeping in touch. I occasionally log on to the Facebook Chat to have conversations with friends, but recently to my dismay, Facebook <em>revamped</em> their chat in to a full-screen sidebar showing a mixture of online and offline friends. The logic behind this is baffling to me. It seems that the online friends which are displayed are mixed in with your most popular offline friends, that is to say those with whom Facebook <em>thinks </em>you interact with most (or stalk). It&#8217;s not very accurate and I was disappointed that a chat service didn&#8217;t display all online friends in one group.</p>
<p>These changes made the chat unusable for me as it took too long to scan a long list on a 24&#8243; monitor and see only those who were online and actually available to chat with me. So I wrote a chrome extension to only display online contacts in the sidebar, which is similar to how the old facebook chat worked.</p>
<p><a href="https://chrome.google.com/webstore/detail/ojeeafjafadjmbpojlogpipohgkpplkk">Download the Facebook Chat Fix chrome extension here</a></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.deanclatworthy.com%2F2011%2F09%2Fa-chrome-extension-to-revert-to-the-old-style-facebook-chat%2F&amp;title=A%20chrome%20extension%20to%20revert%20to%20the%20old-style%20facebook%20chat" id="wpa2a_4"><img src="http://www.deanclatworthy.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.deanclatworthy.com/2011/09/a-chrome-extension-to-revert-to-the-old-style-facebook-chat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bad character encoding causing MySQL errors in PHP</title>
		<link>http://www.deanclatworthy.com/2011/06/bad-character-encoding-causing-mysql-errors-in-php/</link>
		<comments>http://www.deanclatworthy.com/2011/06/bad-character-encoding-causing-mysql-errors-in-php/#comments</comments>
		<pubDate>Thu, 09 Jun 2011 09:10:45 +0000</pubDate>
		<dc:creator>Dean</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[php mysql error utf8]]></category>

		<guid isPermaLink="false">http://www.deanclatworthy.com/?p=122</guid>
		<description><![CDATA[Today at work I encountered a peculiar problem when working with some translations. I developed a system whereby we can send out translations to our translators and they&#8217;ll fill in the blanks and send it back to use which is then imported. Part of this project involved coding a parser for a custom file format [...]]]></description>
			<content:encoded><![CDATA[<p>Today at work I encountered a peculiar problem when working with some translations. I developed a system whereby we can send out translations to our translators and they&#8217;ll fill in the blanks and send it back to use which is then imported. Part of this project involved coding a parser for a custom file format to send out to our translators. The benefit of this is it allowed me to validate incoming translation files, as well as easily export them according to the spec I&#8217;d defined. </p>
<p>We received an Italian translation file and I proceeded to import it until my colleague noticed a few translations were missing. Baffled, I looked into this further and debugged until I spotted some MySQL errors in the logs. The query looked fine, but gave MySQL error number 1366. After a bit of googling I came across users who had received a similar error and had put it down to character encoding issues. It turns out that the translation file had been saved as ISO 8859-1 (Latin-1) rather than UTF-8. It turned out that MySQL was actually refusing to execute the query because the target string I was inserting into a UTF-8 column wasn&#8217;t valid. </p>
<p>Rather than go through the complicated process of trying to cast different character sets coming in from various translators I came up with a simple solution which was to open the translation file and check it&#8217;s contents are strict UTF-8. This is pretty simple to do:</p>
<p><code><br />
if(!mb_detect_encoding($str, 'UTF-8', true))<br />
{<br />
    throw new TranslationException('File is invalid UTF-8');<br />
}<br />
</code></p>
<p>As a quick side note, omit the last parameter if you don&#8217;t want to be 100% strict.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.deanclatworthy.com%2F2011%2F06%2Fbad-character-encoding-causing-mysql-errors-in-php%2F&amp;title=Bad%20character%20encoding%20causing%20MySQL%20errors%20in%20PHP" id="wpa2a_6"><img src="http://www.deanclatworthy.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.deanclatworthy.com/2011/06/bad-character-encoding-causing-mysql-errors-in-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dynamic/Random Javascript values in Selenium IDE</title>
		<link>http://www.deanclatworthy.com/2011/01/dynamicrandom-javascript-values-in-selenium-ide/</link>
		<comments>http://www.deanclatworthy.com/2011/01/dynamicrandom-javascript-values-in-selenium-ide/#comments</comments>
		<pubDate>Tue, 25 Jan 2011 11:40:07 +0000</pubDate>
		<dc:creator>Dean</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[selenium]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://www.deanclatworthy.com/?p=110</guid>
		<description><![CDATA[One of the common questions I see from new users to Selenium is how to insert random values into a form. Well it turns out this is quite easy. Simply change your value to some javascript surrounded by some special syntax: javascript{[code goes here]} So let's do this using a more practical example. You have [...]]]></description>
			<content:encoded><![CDATA[<p>One of the common questions I see from new users to Selenium is how to insert random values into a form. Well it turns out this is quite easy. Simply change your value to some javascript surrounded by some special syntax:</p>
<p><code><br />
javascript{[code goes here]}<br />
</code></p>
<p>So let's do this using a more practical example. You have a form where you can't enter the same data twice for example a registration form would require a unique email address. So, record your test as normal, entering real data then once you're finished go back and edit the <code>type</code> command  for the email address field and set the value to:</p>
<p><code><br />
javascript{new Date().getTime() + "@example.com"}<br />
</code></p>
<p>Now you have random data you can pass into your test to ensure it passes any unique validation tests every time.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.deanclatworthy.com%2F2011%2F01%2Fdynamicrandom-javascript-values-in-selenium-ide%2F&amp;title=Dynamic%2FRandom%20Javascript%20values%20in%20Selenium%20IDE" id="wpa2a_8"><img src="http://www.deanclatworthy.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.deanclatworthy.com/2011/01/dynamicrandom-javascript-values-in-selenium-ide/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Useful GIT commands</title>
		<link>http://www.deanclatworthy.com/2011/01/useful-git-commands/</link>
		<comments>http://www.deanclatworthy.com/2011/01/useful-git-commands/#comments</comments>
		<pubDate>Mon, 24 Jan 2011 15:26:11 +0000</pubDate>
		<dc:creator>Dean</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.deanclatworthy.com/?p=111</guid>
		<description><![CDATA[I&#8217;ll use this post as a personal reference for useful GIT commands as I find them. Hopefully they&#8217;ll help you also. Scenario #1 You have accidentally made a few commits to a branch and you wish to undo them so they are identical to the origin. You&#8217;ll probably see something like this when you run [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll use this post as a personal reference for useful GIT commands as I find them. Hopefully they&#8217;ll help you also.</p>
<h2>Scenario #1</h2>
<p>You have accidentally made a few commits to a branch and you wish to undo them so they are identical to the origin. You&#8217;ll probably see something like this when you run <code>git status</code></p>
<blockquote><p># On branch devel<br />
# Your branch is ahead of &#8216;origin/devel&#8217; by 2 commits.</p></blockquote>
<p><strong>Solution:</strong></p>
<p><code>git reset --hard origin/</code></p>
<p>This resets your current branch to an identical state of the current HEAD of the origin &lt;branch&gt;</p>
<h2>Scenario #2</h2>
<p>You have created a branch B from branch A and made a few commits. Assuming you write useful commit messages it&#8217;s useful for other developers to see the changes you&#8217;ve made and the features you&#8217;ve added since you branched. To do this type the following command:</p>
<p><code>git log $(git merge-base A B)..B #</code></p>
<h2>Scenario #3</h2>
<p>List all branches, ordered by last-commit date (with last-commit date visible):</p>
<h2><span style="font-family: monospace; font-size: 13px; font-weight: normal;">for k in `git branch|perl -pe s/^..//`;do echo -e `git show &#8211;pretty=format:&#8221;%Cgreen%ci %Cblue%cr%Creset&#8221; $k|head -n 1`\\t$k;done|sort -r</span></h2>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.deanclatworthy.com%2F2011%2F01%2Fuseful-git-commands%2F&amp;title=Useful%20GIT%20commands" id="wpa2a_10"><img src="http://www.deanclatworthy.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.deanclatworthy.com/2011/01/useful-git-commands/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress plugin deployment script (GIT to SVN)</title>
		<link>http://www.deanclatworthy.com/2011/01/wordpress-plugin-deployment-script-git-to-svn/</link>
		<comments>http://www.deanclatworthy.com/2011/01/wordpress-plugin-deployment-script-git-to-svn/#comments</comments>
		<pubDate>Fri, 21 Jan 2011 15:11:46 +0000</pubDate>
		<dc:creator>Dean</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.deanclatworthy.com/?p=103</guid>
		<description><![CDATA[Short Version: This script will allow you to manage your wordpress plugins in git, and deploy them to wordpress.org SVN. Long Version: Recently at work I was required to build a wordpress plugin. After trawling through the documentation to figure out what I needed to do, it became apparent that to get my plugin listed [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Short Version:</strong> This script will allow you to manage your wordpress plugins in git, and deploy them to wordpress.org SVN.</p>
<p><strong>Long Version:</strong></p>
<p>Recently at work I was required to build a wordpress plugin. After trawling through the documentation to figure out what I needed to do, it became apparent that to get my plugin listed in the WordPress plugins directory I would be required to host the code in their SVN repository. Along with most developers nowadays, I&#8217;ve switched to Git (for numerous reasons), so I was left with the dilemna of how to manage my plugin within git and host it on Github, but sync all changes to the SVN repository whenever a new version was ready. There&#8217;s quite a lot of work involved when trying to do this so I wanted to automate the whole thing. The result is a bash script shown below which will:</p>
<ol>
<li>Check that the version numbers in your readme.txt match up with those in your PHP file.</li>
<li>Commit the latest outstanding changes to your git repository if any are left</li>
<li>Push the latest changes to github</li>
<li>Export the contents at the HEAD of your &#8216;master&#8217; branch in git to the trunk of your SVN repository.</li>
<li>Commit the changes to SVN and therefore push them  back to wordpress.org</li>
<li>Create an SVN tag for wordpress.org to use and commit it (this will be the same value as Stable Tag: &lt;tagnumber&gt; in your readme.txt)</li>
<li>Update the version number for future reference.</li>
</ol>
<p>Hopefully this should make life a little easier for those WordPress plugin developers who wish to manage their projects in GIT <img src='http://www.deanclatworthy.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="https://github.com/deanc/wordpress-plugin-git-svn">Download the script here</a></p>
<p>Enjoy!</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.deanclatworthy.com%2F2011%2F01%2Fwordpress-plugin-deployment-script-git-to-svn%2F&amp;title=WordPress%20plugin%20deployment%20script%20%28GIT%20to%20SVN%29" id="wpa2a_12"><img src="http://www.deanclatworthy.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.deanclatworthy.com/2011/01/wordpress-plugin-deployment-script-git-to-svn/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Facebook privacy issue with tagged photos</title>
		<link>http://www.deanclatworthy.com/2010/09/facebook-privacy-issue-with-tagged-photos/</link>
		<comments>http://www.deanclatworthy.com/2010/09/facebook-privacy-issue-with-tagged-photos/#comments</comments>
		<pubDate>Mon, 06 Sep 2010 12:13:44 +0000</pubDate>
		<dc:creator>Dean</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.deanclatworthy.com/?p=92</guid>
		<description><![CDATA[Facebook has garnered a rather bad reputation over its privacy controls in recent months, but things are now beginning to stabilise. You can control the privacy of: Individual wall posts Almost all aspects of your profile (location, interests etc.) Individual photo albums Individual videos With the addition of friend lists it makes it fairly simple [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.deanclatworthy.com/wp-content/uploads/2010/09/mark.jpg"><img class="alignnone size-medium wp-image-95" title="mark" src="http://www.deanclatworthy.com/wp-content/uploads/2010/09/mark-300x199.jpg" alt="" width="300" height="199" /></a></p>
<p>Facebook has garnered a rather bad reputation over its privacy controls in recent months, but things are now beginning to stabilise. You can control the privacy of:</p>
<ul>
<li>Individual wall posts</li>
<li>Almost all aspects of your profile (location, interests etc.)</li>
<li>Individual photo albums</li>
<li>Individual videos</li>
</ul>
<p>With the addition of friend lists it makes it fairly simple to filter content to certain people, as long as you don&#8217;t have too many friends.</p>
<p>However, this morning I came across a new issue after speaking with a former colleague. It seems that if you have been tagged in a  friend&#8217;s photo album that has its privacy set to &#8220;Friends only&#8221;, this setting overrides your personal settings regarding visibility of photos and videos you are tagged in.</p>
<p>Imagine a situation where Person A is friends with B &amp; C, but B &amp; C are not friends. If friend B tags you in their photo album that is set to &#8220;Friends Only&#8221;, Person C will no longer be able to see on Person A&#8217;s profile that they&#8217;ve been tagged. In previous iterations of facebook Person C would see in Person A&#8217;s feed that they had been tagged, and would only be able to view those individual photos that they are tagged in. This makes the &#8220;Photos and videos I&#8217;m tagged in&#8221; privacy setting obsolete if ultimately you cannot control photos you are tagged in.</p>
<p>Steps to reproduce:</p>
<ol>
<li>Go to your privacy settings and set &#8220;Photos and videos I&#8217;m tagged in&#8221; to &#8220;Friends Only&#8221;.</li>
<li>Find a friend with a photo album whose privacy setting is set to &#8220;Friends Only&#8221; and tag yourself in a photo.</li>
<li>Ask a separate friend to then check your profile to see if they can see this photo anywhere. They will not be able to.</li>
</ol>
<p>Whilst I understand that privacy should ultimately lie with the &#8220;owner&#8221; of the data, I believe this to be a glitch in the system. There is no point in tagging yourself in photo albums of friends or letting yourself be tagged if only you can see them. Facebook is suddenly seeming less social.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.deanclatworthy.com%2F2010%2F09%2Ffacebook-privacy-issue-with-tagged-photos%2F&amp;title=Facebook%20privacy%20issue%20with%20tagged%20photos" id="wpa2a_14"><img src="http://www.deanclatworthy.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.deanclatworthy.com/2010/09/facebook-privacy-issue-with-tagged-photos/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Jump In Camp video</title>
		<link>http://www.deanclatworthy.com/2010/04/jump-in-camp-video/</link>
		<comments>http://www.deanclatworthy.com/2010/04/jump-in-camp-video/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 10:16:38 +0000</pubDate>
		<dc:creator>Dean</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.deanclatworthy.com/?p=76</guid>
		<description><![CDATA[Yuri just posted up the final video on twitter from the camp. Hopefully the pixelating issue will be fixed soon:]]></description>
			<content:encoded><![CDATA[<p>Yuri just posted up the final video on twitter from the camp. Hopefully the pixelating issue will be fixed soon:<br />
<object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/2P1zSkNd5Ho&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/2P1zSkNd5Ho&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.deanclatworthy.com%2F2010%2F04%2Fjump-in-camp-video%2F&amp;title=Jump%20In%20Camp%20video" id="wpa2a_16"><img src="http://www.deanclatworthy.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.deanclatworthy.com/2010/04/jump-in-camp-video/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS grid layouts using HashGrid</title>
		<link>http://www.deanclatworthy.com/2010/04/css-grid-layouts-using-hashgrid/</link>
		<comments>http://www.deanclatworthy.com/2010/04/css-grid-layouts-using-hashgrid/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 20:38:01 +0000</pubDate>
		<dc:creator>Dean</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.deanclatworthy.com/?p=59</guid>
		<description><![CDATA[Just a heads up to anyone who&#8217;s planning on designing their next project using a grid. The folks over at Analog have created a nifty little tool called Hashgrid to overlay a grid over your web page like so: Installation is pretty simple but I ran into a couple of minor issues which hopefully can [...]]]></description>
			<content:encoded><![CDATA[<p>Just a heads up to anyone who&#8217;s planning on designing their next project using a grid. The folks over at <a href="http://analog.coop/">Analog</a> have created a nifty little tool called <a href="http://www.hashgrid.com">Hashgrid</a> to overlay a grid over your web page like so:</p>
<p><a href="http://www.deanclatworthy.com/wp-content/uploads/2010/04/hasgrid.jpg"><img src="http://www.deanclatworthy.com/wp-content/uploads/2010/04/hasgrid.jpg" alt="" title="hasgrid" width="600" height="385" class="alignnone size-full wp-image-60" /></a></p>
<p>Installation is pretty simple but I ran into a couple of minor issues which hopefully can be remedied in a future version:</p>
<ul>
<li>The negative margin in the example is half the width of your grid, and whilst that&#8217;s probably obvious it may be worth adding a comment in the CSS on hashgrid.com just to make that clear</li>
<li>I had to add a high z-index to the #grid in the CSS to make sure it correctly overlayed my page. If your grid isn&#8217;t showing this is probably why.</li>
</ul>
<p>The hardest part is creating the grid image in photoshop. The quickest way I found to do this is with the selection tool and guides. Once you&#8217;ve created your guides it takes a few seconds to use the line tool to draw over your guides. If I get some time I might create a quick tool to generate dynamic grid images unless the hashgrid folks want to beat me to it <img src='http://www.deanclatworthy.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.deanclatworthy.com%2F2010%2F04%2Fcss-grid-layouts-using-hashgrid%2F&amp;title=CSS%20grid%20layouts%20using%20HashGrid" id="wpa2a_18"><img src="http://www.deanclatworthy.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.deanclatworthy.com/2010/04/css-grid-layouts-using-hashgrid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jump In Camp</title>
		<link>http://www.deanclatworthy.com/2010/04/jump-in-camp/</link>
		<comments>http://www.deanclatworthy.com/2010/04/jump-in-camp/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 19:28:24 +0000</pubDate>
		<dc:creator>Dean</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.deanclatworthy.com/blog/?p=37</guid>
		<description><![CDATA[(Thanks to Derick Rethans for the picture) Note: Further blog posts about the event, and more specifically what I worked on at camp will come latest this week. Introductions I was lucky enough to be given the opportunity last week to attend JumpInCamp, a developers conference/workshop ran by Microsoft in the beautiful setting of Zurich. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.deanclatworthy.com/wp-content/uploads/2010/04/4499556648_5a5da0a301.jpg"><img class="alignnone size-full wp-image-45" title="4499556648_5a5da0a301" src="http://www.deanclatworthy.com/wp-content/uploads/2010/04/4499556648_5a5da0a301.jpg" alt="" width="500" height="332" /></a><br />
(Thanks to <a href="http://www.flickr.com/photos/derickrethans/4499556648/sizes/l/">Derick Rethans</a> for the picture)</p>
<p>Note: Further blog posts about the event, and more specifically what I worked on at camp will come latest this week.</p>
<p><strong>Introductions</strong></p>
<p>I was lucky enough to be given the opportunity last week to attend <a href="http://www.jumpincamp.com/en/Default.aspx">JumpInCamp</a>, a developers conference/workshop ran by Microsoft in the beautiful setting of Zurich. The brief was as follows</p>
<blockquote><p>As a participant you will spend four unforgettable and instructive days in the <a href="http://www.jumpincamp.com/en/Camp/Default.aspx">Panorama Resort &amp; Spa Feusisberg</a>, Switzerland – all-inclusive, for free. A live blog – to which you will contribute &#8211; will put all your friends and colleagues in the picture while you’re at the Camp.</p></blockquote>
<p>I was sold <img src='http://www.deanclatworthy.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Upon arriving at the airport I met with a few of the fellow attendees at the camp before setting off for the hotel. After a speedy check-in, we all went for a buffet dinner giving everyone a chance to introduce themselves and sample the first of many delicious meals that were to come!</p>
<p><strong>Day 1</strong></p>
<p>Day 1 of camp started off too bright and early giving us our first introduction to the main topic of the week: <a href="http://www.microsoft.com/windowsazure/windowsazure/">Windows Azure</a>. <a href="http://www.joshholmes.com/blog/">Josh Holmes</a> gave us a great overview of the platform and the technology that powers it. Most interesting perhaps, was the system Microsoft has put in place to deploy Azure nodes around the world incredibly easily.</p>
<p>Next up was Faith Allington who gave us a presentation on the <a href="http://www.iis.net/webpi">Web Platform Installer (Web PI)</a> which provides an interesting interface for deploying web applications to IIS. The smart <a href="http://www.phpbb">phpBB</a> guys got a working version of their software into the web gallery during the week which can be found here: http://area51.phpbb.com/phpBB/viewtopic.php?f=3&amp;t=32736</p>
<p>After lunch <a href="http://blog.maartenballiauw.be/">Maarten Balliauw</a> gave us a great introduction to the <a href="http://msdn.microsoft.com/en-us/library/dd573356.aspx">Windows Azure Storage platform</a> and instructions on how to use the excellent <a href="http://phpazure.codeplex.com/">SDK</a> he&#8217;s developed for interacting with the platform. I&#8217;ll discuss this further in a separate blog post.</p>
<p>After a few hours coding, we began the first of two surprise activities: Alpine Olympics. We split into three teams and undertook the following games:</p>
<ul>
<li>Cow pat golf &#8211; Attempting to putt, chip a gold ball in the world&#8217;s longest grass into a hole made out of cow pat. Credit goes to <a href="http://www.naderman.de/">Nils Aderman</a> who drove his ball about 20m past the hole with a putter <img src='http://www.deanclatworthy.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
<li>Cow milking &#8211; Having reluctantly milked a cow in the past, I was relieved to find out (for the cow&#8217;s sake as much as mine) that we would be milking a fake cow. Josh Holmes stole the show on this one apparently having been a dairy farmer in his colourful past.</li>
<li>Blow darts &#8211; Blow a dart down a tube into a target. <a href="http://derickrethans.nl/">Derick Rethans</a> was so accurate he actually hit one of his darts with another</li>
<li>Skiing &#8211; 5 men, 2 planks of wood and one excellent exercise in co-ordination.</li>
<li>Archery &#8211; Having broke the first bow with my brute English strength I undertook the task of using the second extremely strong bow only reserved for the strongest of archers. Yuri Yatsev gets an apology here for leaving him bruised the next day having to pull the crossbow back for everyone :p</li>
</ul>
<p>Whilst my team didn&#8217;t win, the team that did kindly shared their victory prize of champagne with the rest of the group which was a nice touch! Another delicious dinner wrapped up a superb evening of fun and games.</p>
<p><strong>Day 2</strong></p>
<p>Another early start proved more difficult than the previous day due to the white wine on offer the previous night. The first talk of the day was given by Corrado Cavalli who gave us an introduction to <a href="http://www.silverlight.net/">Silverlight</a>. Whilst I&#8217;m not sold on the use of another third-party plugin required to view content in the browser (yes, I&#8217;m talking to you Flash) Alex pointed out that Silverlight can also be used to develop Windows Phone 7 apps. I think this is something I&#8217;ll definitely be looking into in the next few weeks as all the tools needed to do this are free unlike some other competitors (*cough* Apple *cough*). There&#8217;s a great tutorial for <a href="http://weblogs.asp.net/scottgu/archive/2010/03/18/building-a-windows-phone-7-twitter-application-using-silverlight.aspx">Building a Windows Phone 7 twitter application using silverlight</a> if anyone is interested in this too <img src='http://www.deanclatworthy.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Next up was <a href="http://www.alexweinstein.net/wordpress/">Alex Weinstein</a> who introduced us to a fantastic tool that&#8217;s coming out of Microsoft Labs called <a href="http://www.getpivot.com">Pivot</a>. It allows you to view interesting trends in data sets through a fantastic series of visualizations used to drill down on the data. I&#8217;d be very interested to see some tools built for this to export data from relational databases into the required format for pivot to view.</p>
<p>The last talk of the day came from Claudio Caldato who caught my interest with a <a href="http://ssrsphp.codeplex.com/">PHP SDK for interacting with SQL Server Reporting Services</a>. You can do some fantastic things with reporting services so it&#8217;s nice that we no longer have to rely on using .NET to interact with it. Great job!</p>
<p>After all the talks and final round of coding was done we were finally told about our surprise dinner which would involve going to a brewery to make our own beer. We learnt about the history of beer and kudos must go to all the people who made the double entrendres whilst learning about the brewing process <img src='http://www.deanclatworthy.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  The highlight of the night came when we were tasked with bottling our own beer. A simple task one might imagine, but without strong hands and patience you can end up spraying litres of beer all over yourself and anyone nearby. Mark from OSC managed to seemingly empty a whole tank of beer on to himself and everyone else in the room. Pictures, videos and other viral material of this will come soon I am sure. Here&#8217;s a picture of my beer:</p>
<p><a href="http://www.deanclatworthy.com/?attachment_id=43"><img class="alignnone size-medium wp-image-43" title="beer" src="http://www.deanclatworthy.com/wp-content/uploads/2010/04/beer-225x300.gif" alt="" width="225" height="300" /></a></p>
<p><strong>Day 3</strong></p>
<p>Jason Stowe from the SQL Server team gave us a great round up on the features available in SQL Server 2008 including <a href="http://www.microsoft.com/sqlserver/2008/en/us/spatial-data.aspx">Spatial Data</a> and lots of other interesting tid bits. Then for the rest of the day everyone worked hard on their own individual projects before the final round up from Josh.</p>
<p><strong>Summary</strong></p>
<p>I think everyone agreed the event was a resounding success and everyone learnt a great deal about the technologies Microsoft has been working on. The location, facilities and support that Microsoft gave everyone at the conference worked extremely well. Everyone from Microsoft was helpful, receptive to feedback and friendly throughout the camp which can only go to help improving the relationship Microsoft has within the open source community. A big thanks must go to Yuriy Zaytsev, Nicole Zahnd and Josh Holmes who did an excellent job putting the even together and hopefully we&#8217;ll see this event repeated some time in the future!</p>
<p><strong>Photos</strong></p>
<p><a href="http://www.flickr.com/photos/derickrethans/4499789952/">http://www.flickr.com/photos/derickrethans/4499789952/</a> (Derick)<br />
<a href="http://www.flickr.com/photos/derickrethans/4499556648/">http://www.flickr.com/photos/derickrethans/4499556648/</a> (Derick)<br />
<a href="http://yuriy-zaytsev.smugmug.com/Professional/jumpincamp/11828007_YXa7U#836070437_nZ9YS">http://yuriy-zaytsev.smugmug.com/Professional/jumpincamp/11828007_YXa7U#836070437_nZ9YS</a> (Yuri)<br />
<a href="http://www.facebook.com/album.php?aid=2057793&amp;id=1385949843">http://www.facebook.com/album.php?aid=2057793&amp;id=1385949843</a> (Vitaly)<br />
<a href="http://picasaweb.google.ch/109246690083550473241/JumpInCampBeerDinner?feat=directlink">http://picasaweb.google.ch/109246690083550473241/JumpInCampBeerDinner?feat=directlink</a></p>
<p>If anyone has any more photos please send me a <a href="http://www.twitter.com/deanclatworthy">tweet</a></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.deanclatworthy.com%2F2010%2F04%2Fjump-in-camp%2F&amp;title=Jump%20In%20Camp" id="wpa2a_20"><img src="http://www.deanclatworthy.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.deanclatworthy.com/2010/04/jump-in-camp/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

