<?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>The Social Programmer</title>
	<atom:link href="http://www.craigmurphy.com/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.craigmurphy.com/blog</link>
	<description>Craig Murphy: author, blogger, community evangelist, developer, speaker</description>
	<lastBuildDate>Thu, 19 Apr 2012 18:15:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Job: Kilmarnock &#8211; VB.NET, ASP.NET, MySQL</title>
		<link>http://www.craigmurphy.com/blog/?p=2157</link>
		<comments>http://www.craigmurphy.com/blog/?p=2157#comments</comments>
		<pubDate>Thu, 19 Apr 2012 18:15:53 +0000</pubDate>
		<dc:creator>Craig Murphy</dc:creator>
				<category><![CDATA[Jobs]]></category>

		<guid isPermaLink="false">http://www.craigmurphy.com/blog/?p=2157</guid>
		<description><![CDATA[Games Centre has a vacancy for a Junior Developer to work with one of the UK&#8217;s leading independent video games retailer with outlets in the West of Scotland to provide web and desktop based solutions. You will be working as part of a small team providing bespoke coding solutions in a dynamic fast paced environment. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.gamescentre.co.uk/">Games Centre</a> has a vacancy for a Junior Developer to work with one of the UK&#8217;s leading independent video games retailer with outlets in the West of Scotland to provide web and desktop based solutions. You will be working as part of a small team providing bespoke coding solutions in a dynamic fast paced environment.</p>
<p>PLEASE NOTE THAT ONLY APPLICANTS WITH AT LEAST 1 YEARS&#8217; EXPERIENCE OF VB.NET WILL BE CONSIDERED</p>
<p>Junior Developer &#8211; Kilmarnock (VB.NET, ASP.NET, MySQL, Web)</p>
<p>The individual most possess:</p>
<ul>
<li>At least 1 year experience of VB.Net development (desktop and web)</li>
<li>At least 1 year experience of ASP.NET development</li>
<li>At least 1 year experience of MySQL .Net development</li>
<li>Strong knowledge of the .Net page lifecycle</li>
<li>Be well versed in Object Oriented programming concepts</li>
<li>Be a gifted problem solver</li>
<li>Must be able to work with minimal supervision and produce results on tight deadlines whilst maintaining a high level of detail</li>
<li>Good understanding of written and verbal English</li>
</ul>
<p>It would be advantageous, although not necessary for the individual to possess one or more of the following:</p>
<ul>
<li>Good level of web scripting / coding e.g. CSS, XML, Javascript, AJAX, JQuery, HTML and VBScript</li>
<li>Exposure to the Microsoft Office 2010 suite of applications including Microsoft Access</li>
<li>Exposure to working within a distributed environment</li>
<li>Exposure to NoSQL databases such as SQLite</li>
<li>Graphics or video production experience</li>
</ul>
<p>This is an excellent opportunity for an enthusiastic, intelligent &#038; dedicated individual to join a growing name in the Video Games industry and to have the ability to develop their skill set using the latest in technologies.</p>
<p>If you have the experience and the knowledge required please email a copy of you current CV to Matthew Walton (matt@ghresourcing.com).</p>
<p>NO AGENCIES PLEASE</p>
]]></content:encoded>
			<wfw:commentRss>http://www.craigmurphy.com/blog/?feed=rss2&#038;p=2157</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Event: Edinburgh, 1 May &#8211; Windows 8 for Application Developers</title>
		<link>http://www.craigmurphy.com/blog/?p=2153</link>
		<comments>http://www.craigmurphy.com/blog/?p=2153#comments</comments>
		<pubDate>Wed, 11 Apr 2012 06:36:54 +0000</pubDate>
		<dc:creator>Craig Murphy</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Developer Events]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Windows 8]]></category>

		<guid isPermaLink="false">http://www.craigmurphy.com/blog/?p=2153</guid>
		<description><![CDATA[Calling all Scottish Developers! Microsoft will be bringing Windows 8 to Edinburgh on May 1st – join the UK team for a day of developer-level, demo-driven sessions and see first-hand the opportunities for designing, developing and selling apps world-wide via the Windows Store. Windows 8 offers unparalleled new opportunities for application developers to build and [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p><strong>Calling all Scottish Developers!</strong><br />
Microsoft will be bringing Windows 8 to Edinburgh on May 1st – join the UK team for a day of developer-level, demo-driven sessions and see first-hand the opportunities for designing, developing and selling apps world-wide via the Windows Store.</p></blockquote>
<p>Windows 8 offers unparalleled new opportunities for application developers to build and sell apps world-wide via the Windows Store. In this event, we&#8217;ll deliver developer-level, demo-driven sessions that give you an accelerated entry into what it means to design, develop and publish exciting, modern, polished, world-ready applications for next-generation devices running Windows 8.</p>
<p>Level of knowledge required:</p>
<p>1. A familiarity with .NET development and Visual Studio would be advantageous but not required.<br />
2. We will talk about building Windows 8 applications with JavaScript and with .NET with an emphasis on the .NET technologies.</p>
<p>Agenda (subject to change):</p>
<p>0900 &#8211; 0930	Registration Opens<br />
0930 &#8211; 1030	Windows 8 for Modern App Development<br />
1030 &#8211; 1045	Break<br />
1045 &#8211; 1130	Metro Design Language<br />
1130 &#8211; 1145	Break<br />
1145 &#8211; 1245	&#8220;Metro Style&#8221; Apps &#8211; The Power of the Device Part 1<br />
1245 &#8211; 1330	Lunch<br />
1330 &#8211; 1430	&#8220;Metro Style&#8221; Apps &#8211; The Power of the Device Part 2<br />
1430 &#8211; 1445	Break<br />
1445 &#8211; 1545	&#8220;Metro Style&#8221; Apps &#8211; The Power of the Cloud Part 1<br />
1545 &#8211; 1600	Break<br />
1600 &#8211; 1700	&#8220;Metro Style&#8221; Apps &#8211; The Power of the Cloud Part 2<br />
1700 &#8211; 1730	Wrap Up and Close</p>
<p>Click <a href="http://uktechdays.cloudapp.net/upcoming-events/windows-8-for-application-developers,-edinburgh.aspx">here</a> to register now.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.craigmurphy.com/blog/?feed=rss2&#038;p=2153</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Edinburgh &#8211; Developer Roles: ASP.NET &amp; .Net C# 4.0</title>
		<link>http://www.craigmurphy.com/blog/?p=2150</link>
		<comments>http://www.craigmurphy.com/blog/?p=2150#comments</comments>
		<pubDate>Wed, 22 Feb 2012 10:25:16 +0000</pubDate>
		<dc:creator>Craig Murphy</dc:creator>
				<category><![CDATA[Jobs]]></category>

		<guid isPermaLink="false">http://www.craigmurphy.com/blog/?p=2150</guid>
		<description><![CDATA[miiCard are looking for experienced developers fluent with Microsoft development stack to accelerate the progress of our application. We use the latest in development technologies and will further look to engage in development of mobile and social interfaces. You will be part of the team who develop our front end application as well as its [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p><a href="http://www.miicard.com">miiCard</a> are looking for experienced developers fluent with Microsoft development stack to accelerate the progress of our application. We use the latest in development technologies and will further look to engage in development of mobile and social interfaces.</p>
<p>You will be part of the team who develop our front end application as well as its complex framework, middleware and supporting systems. These team roles will involve extensive collaboration with the product manager and the rest of the business, and with an opportunity to contribute to all stages in the development process.</p>
<p>These focused development roles provide a fantastic opportunity to get involved in a broad range of technologies including Cloud deployment, as well as mobile and social network systems.</p>
<p>To be considered for these roles:</p>
<ol>
<li>Candidates must have a deep understanding of application design, development, layout and presentation</li>
<li>3+ years experience of .Net development, .NET web services and .Net principles and architectures including the concepts, designs and usage of software components, deployments and packages</li>
<li>Demonstrable experience developing C# applications</li>
<li>Strong communications skills</li>
<li>The ability to work independently but also collaborate with the team members</li>
</ol>
<p><strong>Role 1: ASP.Net Web developer</strong><br />
For continued development of the front end web application:</p>
<ol>
<li>Asp.Net 4.0 C#ASP.Net Web controls</li>
<li>HTML, CSS (2.1 /3)</li>
<li>Ajax and JQuery</li>
<li>Azure Deployment (experience highly desirable)</li>
</ol>
<p><strong>Role 2: .Net C# 4.0 developer</strong><br />
Aid the backend development and continued service integration:</p>
<ol>
<li>C# 4.0</li>
<li>Windows Services and threading models</li>
<li>Windows Communications Framework</li>
<li>Entity Framework</li>
<li>Azure Services Platform i.e. Service Bus, Cache, Storage etc. (experience highly desirable)</li>
</ol>
<p>Please send applications clearly stating which role you are applying for to jobs@miicard.com
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.craigmurphy.com/blog/?feed=rss2&#038;p=2150</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Job: Edinburgh, C# web and mobile</title>
		<link>http://www.craigmurphy.com/blog/?p=2144</link>
		<comments>http://www.craigmurphy.com/blog/?p=2144#comments</comments>
		<pubDate>Wed, 25 Jan 2012 14:00:03 +0000</pubDate>
		<dc:creator>Craig Murphy</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Jobs]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[Edinburgh]]></category>
		<category><![CDATA[ESPC]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.craigmurphy.com/blog/?p=2144</guid>
		<description><![CDATA[The ESPC are looking to recruit a software developer! Essential Web UI techniques (.NET MVC, JavaScript, CSS, HTML) 2 years+ professional experience in object oriented programming: C# (or possibly Java) Unit testing (nUnit) MS SQL Server XML Content management, indexing &#38; search Ability to take ownership of key project areas such as software design, implementation, [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.espc.com">ESPC </a>are looking to recruit a software developer!</p>
<p><strong>Essential</strong></p>
<ul>
<li>Web UI techniques (.NET MVC, JavaScript, CSS, HTML)</li>
<li>2 years+ professional experience in object oriented programming: C# (or possibly Java)</li>
<li>Unit testing (nUnit)</li>
<li>MS SQL Server</li>
<li>XML</li>
<li>Content management, indexing &amp; search</li>
<li>Ability to take ownership of key project areas such as software design, implementation, integration, documentation, quality assurance, deployment &amp; support</li>
</ul>
<p><strong>Nice to Have</strong></p>
<ul>
<li>HTML5</li>
<li>Native mobile app development (iOS, Android)</li>
<li>Apache Lucene / Solr</li>
<li>Agile (scrum) development methodology</li>
<li>Continuous integration (CruiseControl.NET)</li>
<li>REST</li>
<li>nHibernate</li>
<li>Windows Workflow</li>
<li>Mocks (RhinoMocks)</li>
<li>nAnt</li>
<li>Subversion</li>
</ul>
<p><strong>Further information</strong><br />
<a href="http://www.espc.com/about-us/software-developer-opportunity">http://www.espc.com/about-us/software-developer-opportunity</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.craigmurphy.com/blog/?feed=rss2&#038;p=2144</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>Why you need to buy @berkun&#8217;s new &#8220;Mindfire&#8221; book&#8230;</title>
		<link>http://www.craigmurphy.com/blog/?p=2140</link>
		<comments>http://www.craigmurphy.com/blog/?p=2140#comments</comments>
		<pubDate>Fri, 11 Nov 2011 00:10:51 +0000</pubDate>
		<dc:creator>Craig Murphy</dc:creator>
				<category><![CDATA[Book Reviews]]></category>
		<category><![CDATA[Project Management]]></category>

		<guid isPermaLink="false">http://www.craigmurphy.com/blog/?p=2140</guid>
		<description><![CDATA[I&#8217;ve been reading Scott Berkun&#8217;s new book, Mindfire. I&#8217;m not going to review it in this post, I&#8217;ll save that for later. However, I&#8217;m will tell you why you should buy it! Scott self-published Mindfire, a feat worthy of huge congratulations. He did so for a number of reasons. I was particularly taken by this [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been reading <a href="http://www.scottberkun.com/">Scott Berkun&#8217;s</a> new book, Mindfire.</p>
<p>I&#8217;m not going to review it in this post, I&#8217;ll save that for later.</p>
<p>However, I&#8217;m will tell you why you should buy it!</p>
<p>Scott self-published Mindfire, a feat worthy of huge congratulations.  He did so for a number of reasons.  I was particularly taken by this one:</p>
<p><img src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/11/berkun.png" /></p>
<p>So, you should buy Mindfire if only to learn what it is Scott would like to write about that makes publishers run a mile.</p>
<p><iframe src="http://rcm-uk.amazon.co.uk/e/cm?lt1=_blank&#038;bc1=000000&#038;IS2=1&#038;bg1=FFFFFF&#038;fc1=000000&#038;lc1=0000FF&#038;t=craigmurphyco-21&#038;o=2&#038;p=8&#038;l=as4&#038;m=amazon&#038;f=ifr&#038;ref=ss_til&#038;asins=0983873100" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></p>
<p>I have deliberately added this post to the Project Management category, Scott <em>is</em> the <a href="http://www.amazon.co.uk/exec/obidos/ASIN/0596007868/craigmurphyco-21?creative=6394&#038;camp=1406&#038;link_code=as1">project management</a> guy <img src='http://www.craigmurphy.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.craigmurphy.com/blog/?feed=rss2&#038;p=2140</wfw:commentRss>
		<slash:comments>38</slash:comments>
		</item>
		<item>
		<title>Gill Cleeren on Windows Runtime &amp; Metro Apps for Windows 8 and Windows Phone App Development</title>
		<link>http://www.craigmurphy.com/blog/?p=2135</link>
		<comments>http://www.craigmurphy.com/blog/?p=2135#comments</comments>
		<pubDate>Thu, 10 Nov 2011 21:01:33 +0000</pubDate>
		<dc:creator>Craig Murphy</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Developer Events]]></category>
		<category><![CDATA[Gill Cleeren]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[Windows Runtime]]></category>
		<category><![CDATA[WinRT]]></category>

		<guid isPermaLink="false">http://www.craigmurphy.com/blog/?p=2135</guid>
		<description><![CDATA[Scottish Developers are pleased to present two talks by Gill Cleeren on Wednesday 23rd November 2011 in Edinburgh. Gill Cleeren is Microsoft Regional Director (www.theregion.com), MVP ASP.NET, INETA speaker bureau member and Silverlight Insider. He lives in Belgium where he works as .NET architect at Ordina. Passionate about .NET, he’s always playing with the newest [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.scottishdevelopers.com">Scottish Developers</a> are pleased to present two talks by Gill Cleeren on Wednesday 23rd November 2011 in Edinburgh.</p>
<p><a href="twitter.com/gillcleeren">Gill Cleeren</a> is Microsoft Regional Director (<a href="www.theregion.com">www.theregion.com</a>), MVP ASP.NET, INETA speaker bureau member and Silverlight Insider. He lives in Belgium where he works as .NET architect at Ordina. Passionate about .NET, he’s always playing with the newest bits. In his role as Regional Director, Gill has given many sessions, webcasts and trainings on new as well as existing technologies, such as Silverlight, ASP.NET and WPF. He also leads VISUG (<a href="www.visug.be">www.visug.be</a>), the largest .NET user group in Belgium. He’s the author of the upcoming book called <a href="https://www.amazon.co.uk/dp/1847199844/ref=as_li_ss_til?tag=craigmurphyco-21&#038;camp=2902&#038;creative=19466&#038;linkCode=as4&#038;creativeASIN=1847199844&#038;adid=0CB4G1JK25ZRHE3C4EED&#038;">Silverlight Data Access Cookbook</a>.  You can find his blog at <a href="www.snowball.be">www.snowball.be</a></p>
<p><strong>Building a Windows Phone 7 app from start to finish</strong><br />
Have you been dreaming about browsing through the Windows Phone Marketplace and seeing your application at the top-selling list but don&#8217;t know where to start? In this session, we&#8217;ll take a look at how to build an entire Windows Phone 7 application from the very start to deployment in the marketplace. You&#8217;ll be creating your own apps minutes after you leave the room.</p>
<p><strong>Windows Runtime and Metro Apps for Windows 8</strong><br />
At BUILD 2011, Microsoft announced Windows 8. This upcoming version of Windows is probably the biggest change the OS ever went through. Windows 8 focuses on web, apps, touch and the tablet form factor. For developers, things will change as well. They need to be ready to build applications, called Metro applications, tailored for Windows 8 or adapt their existing applications for the new OS. Together with Windows 8, Microsoft announced Windows Runtime (WinRT), a new way of working with Windows.</p>
<p>As you can see, that&#8217;s a lot of new stuff to get your head around! To help you, Gill Cleeren, Microsoft Regional Director and Silverlight MVP will explain you the new strategy that Microsoft is taking. In this talk, we&#8217;ll see what WinRT really is, how we can use it to build Metro applications with and how we can leverage C# and Silverlight knowledge to build Metro applications. We&#8217;ll take a look at a fully working application as well to give you a clear picture of all the knowledge you&#8217;ll gather during this hour.</p>
<p>By joining this session, the developer story for Windows 8 will have less secrets for you! </p>
<p><strong>Location</strong><br />
The Corn Exchange,<br />
35 Constitution Street,<br />
Edinburgh,<br />
EH6 7BS</p>
<p><strong>Agenda</strong><br />
18.30 &#8211; Doors open<br />
18.55 &#8211; Welcome<br />
19.00 &#8211; Building a Windows Phone 7 app from start to finish<br />
19.55 &#8211; Break<br />
20.05 &#8211; Windows Runtime and Metro Apps for Windows 8<br />
21.00 &#8211; Close </p>
<p>This is a <strong>free</strong> event, but you do have to <a href="http://gillcleeren2011-rss.eventbrite.co.uk/?ebtv=F">register</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.craigmurphy.com/blog/?feed=rss2&#038;p=2135</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>DunDDD – Bringing a DDD Conference to Dundee!</title>
		<link>http://www.craigmurphy.com/blog/?p=2131</link>
		<comments>http://www.craigmurphy.com/blog/?p=2131#comments</comments>
		<pubDate>Thu, 10 Nov 2011 20:53:01 +0000</pubDate>
		<dc:creator>Craig Murphy</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Developer Events]]></category>
		<category><![CDATA[DDD]]></category>
		<category><![CDATA[Developer Developer Developer]]></category>
		<category><![CDATA[Dundee]]></category>

		<guid isPermaLink="false">http://www.craigmurphy.com/blog/?p=2131</guid>
		<description><![CDATA[The Developer! Developer! Developer! series of conferences has gone from strength to strength. This year saw DDD North added to the lineup to join Belfast, South West and of course Scotland as regional events taking place through out the year after DDD 9 in January. Scottish Developers have teamed up with the people who brought [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/11/ddds-logo-banner.gif" /></p>
<p>The Developer! Developer! Developer! series of conferences has gone from strength to strength. This year saw DDD North added to the lineup to join Belfast, South West and of course Scotland as regional events taking place through out the year after DDD 9 in January.</p>
<p>Scottish Developers have teamed up with the people who brought you the NoSQL Autumn Conference last year and are proud to be bringing another DDD north of the border, to Dundee!</p>
<p>DunDDD is a 3-track, 15-session FREE conference that will take place on Saturday 19th November 2011 at the Queen Mother Building in the University of Dundee. There is an entire track dedicated to NoSQL and Big Data, a track dedicated to The Web and Web Technologies and a general track that isn’t based (too heavily) on any single platform, language or framework.</p>
<p>This is a fantastic opportunity to network with local developers from all across Scotland, learn some new tricks or even revisit some old ones. Spaces are limited so get registered before you miss out!</p>
<p><a href="http://dundee.dddscotland.co.uk">http://dundee.dddscotland.co.uk</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.craigmurphy.com/blog/?feed=rss2&#038;p=2131</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Now, 2011, is a great time to move into Windows Phone development</title>
		<link>http://www.craigmurphy.com/blog/?p=2100</link>
		<comments>http://www.craigmurphy.com/blog/?p=2100#comments</comments>
		<pubDate>Mon, 24 Oct 2011 21:50:41 +0000</pubDate>
		<dc:creator>Craig Murphy</dc:creator>
				<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Matthew Baxter-Reynolds]]></category>
		<category><![CDATA[The Guardian]]></category>
		<category><![CDATA[theguardian]]></category>
		<category><![CDATA[Windows Mobile]]></category>
		<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[Windows Phone 7]]></category>

		<guid isPermaLink="false">http://www.craigmurphy.com/blog/?p=2100</guid>
		<description><![CDATA[Earlier this week, over at The Guardian, Matthew Baxter-Reynolds essentially asked the question: Where do the Windows Mobile developers go now? Except that the article was actually called Why Android is the natural alternative to Windows Mobile for developers. The strapline for Matthew&#8217;s article added a little more meat to that statement: &#8220;When Microsoft killed [...]]]></description>
			<content:encoded><![CDATA[<p>Earlier this week, over at The Guardian, <a href="http://www.guardian.co.uk/profile/matthew-baxter-reynolds">Matthew Baxter-Reynolds</a> essentially asked the question: Where do the <a href="http://en.wikipedia.org/wiki/Windows_Mobile">Windows Mobile</a> developers go now?  </p>
<p>Except that the article was actually called <a href="http://www.guardian.co.uk/technology/blog/2011/oct/21/windows-mobile-alternatives-android">Why Android is the natural alternative to Windows Mobile for developers</a>.  The strapline for Matthew&#8217;s article added a little more meat to that statement:  &#8220;When Microsoft killed off Windows Mobile, it left would-be developers with experience in its tools who wanted to build &#8216;line-of-business&#8217; apps with a problem: what could they target?&#8221;</p>
<p>Matthew&#8217;s article covered many topics.  It touched on: </p>
<ul>
<li>fabrication of Windows Mobile and Android devices</li>
<li>line of business application development using the iPhone, Android and Windows Phone</li>
<li>patents</li>
<li>BlackBerry and RIM</li>
</ul>
<p>It&#8217;s a well-written piece and I would urge you read it and Matthew&#8217;s other material.</p>
<p>I&#8217;d like to focus on one small piece of Matthew&#8217;s article.  Specifically the piece about Windows Phone:</p>
<blockquote><p>Windows Phone is also a pain because no one has them and no one (yet) wants to buy them. I believe this will improve when Windows 8 hits the market next year, but until then it&#8217;s difficult to pitch to customers. Plus you would think migrating software and apps from Windows Mobile to Windows Phone would be easy. It&#8217;s not, because of the radically different Silverlight-based user interface model. Windows Mobile is .NET-based and Java-esque.</p></blockquote>
<p>It is fair to say that much has been written [during 2011] about the uptake of Windows Phone devices.  The phone manufacturers [HTC, Samsung, LG, etc.] must be furious with the way the phone carriers [the likes of O2, Vodafone, T-Mobile, Orange, Three] have failed to market their Windows Phone products.  It wasn&#8217;t until I was at <a href="http://www.flickr.com/photos/craigmurphy/6228061942/">DDD North</a> on the 8th of October 2011 that I saw more than one Windows Phone device in the same place.  In fact, as <a href="http://twitter.com/scottisafool">@scottisafool</a> noted, by virtue of there being a handful of Windows Phone devices in the same place, it put many High Street stores and supposedly phone-savvy supermarkets to shame.</p>
<p>Every market has to start somewhere.  Windows Phone is the new kid on the block and it has moved into a block that&#8217;s already very well established; current residents include Android, iOS and to some extent BlackBerry.  Given that major pundits are referring to Windows Phone as the third member of the mobile ecosystem, I believe it&#8217;s fair to follow Matthew&#8217;s recommendation to ignore BlackBerry.  Unless RIM have an ace up their sleeve, I have to agree with Matthew.</p>
<p>Despite this apparent low uptake, it hasn&#8217;t thwarted the application developers.  As of today there are some 35,000 applications in the Windows Phone Marketplace.  Many of the reputable news sources for Windows Phone report that about 90% of the core apps and games that &#8220;the others&#8221; have on their iPads, iPhones and Android tablets are available for Windows Phone devices.  Whilst that suggests the market is pretty much sewn up, there are still gaps that need filled.  Contrast this with the fact there are over 500,000 applications available for iPhone and Android devices and it&#8217;s fair to say Windows Phone has some catching up to do.  Assuming, of course, that you believe catch up is required.  One has to ask how many of the 500,000 or so applications are unique or are so trivial that calling them an application is an overstatement.</p>
<p>Nokia&#8217;s presence in the Windows Phone ecosystem should not be under-estimated.  Rumours about their device line up have been rife.  Leaked photographs of their proposed Windows Phone device(s) have been published, analysed and analysed again.  This weekend, October 21st and 22nd 2011, TV viewers in the UK started to see subtle hints from Nokia, the <a href="http://en.wikipedia.org/wiki/Nokia_Sea_Ray">Sea Ray</a> made very short but pointed appearances between adverts in major shows on Saturday evening.  This advertising, albeit very short, is very welcome.  Windows Phone marketing has been beyond disappointing, a fact that cannot be denied and a fact that isn&#8217;t UK-specific.  I would hope that advertising picks up as we get closer to <a href="http://events.nokia.com/nokiaworld/">Nokia World</a>, October 26th 2011, when Nokia&#8217;s devices will be revealed to the public for the first time.  Nokia have the ability to produce, market and sell millions of devices.  In Europe, they are virtually independent of any particular demographic: kids, teenagers, housewifes, workers / business users, pensioners, the military&#8230;they all use Nokia devices.  </p>
<p>Whilst Matthew believes no one has them [Windows Phone devices], he does believe that people will want to buy them in the future.  And that&#8217;s the key: the future.  The future for Windows Phone isn&#8217;t 12-18 months away, or further.  It&#8217;s between now and Q1 2012.  It&#8217;s now.  Microsoft&#8217;s careful approach, whereby they built Windows Phone version 7.0, used customer feedback to refine it with NoDo and subsequently with <a href="http://en.wikipedia.org/wiki/Mango_(WP7)">Mango</a>, mean they have an operating system that is a first class citizen in the mobile space.  It can compete, and win, against the likes of iOS and Android.  </p>
<p>Windows Mobile developers will continue to have their market in line-of-business applications for as long as there is demand and device availability.  Where should they turn to next?  Matthew believes that Windows Mobile developers should be focusing their future development efforts in the Android space.  I have to disagree with that thought!  The Android market is saturated.  Android is an operating system that suffers from considerable fragmentation; there are many versions of Android, <a href="http://en.wikipedia.org/wiki/Android_version_history">spanning major version numbers</a>, still in use today.  Examining the various platform versions, I see there are <a href="http://developer.android.com/resources/dashboard/platform-versions.html">only a few flavours</a> of Android that are &#8220;accepted&#8221; as primary development targets, which is a step in the right direction.  Even if you target the three major versions of Android, the open source nature of Android means that developers might find themselves having to work around issues that are very device-specific. </p>
<p>Windows Mobile developers will find themselves moving from Microsoft&#8217;s .NET platform over to Java, which is means moving away from Visual C++ and the Visual Studio IDE.  Thankfully, the existence of third-party tools such as <a href="http://android.xamarin.com/">MonoDroid</a>, allow us to write C#/.NET code that can be deployed to the Android platform.  However getting started with MonoDroid will cost you at least $399, which is very much worth it if you wish to avoid entering the Java camp.   On the plus side, once you&#8217;ve written your application, it can be submitted to the Android Store and available for sale within hours.  Ultimately, moving from Windows Mobile to Android should be considered a complete platform change: all of the tools, software development kits (SDKs), frameworks and deployment targets have changed.  You could be buying into a whole new set of problems.</p>
<p>Windows Mobile developers who are considering a move to iOS are in for a similar surprise.  Apple&#8217;s iOS relies on the <a href="http://en.wikipedia.org/wiki/Objective-C">Objective-C</a> programming language.  I won&#8217;t go into Objective-C in this post, but if you need to read more, there&#8217;s good content in <a href="http://www.guardian.co.uk/technology/gamesblog/2009/feb/10/gameculture-apple">this article</a> over at The Guardian.  Whilst iOS developers don&#8217;t suffer from Android&#8217;s OS fragementation, they do suffer from Apple&#8217;s lengthy application submission process.  I&#8217;ve heard some developers say the application submission process can take weeks.  I&#8217;ve also heard that Apple can reject applications without providing any reasons as to why the rejection occured &#8211; I believe Apple have gone as far as to ignore some Google application submissions!   Not surprisingly, tools such as <a href="http://xamarin.com/monotouch/">MonoTouch</a> exist, whereby we can write C#/.NET code that runs on iOS.  If I was developing for iOS, I&#8217;d be seriously considering the $399 cost for MonoTouch.  Again, moving from Windows Mobile to iOS should be considered a complete platform change and one that may have a significant cost attached to it.</p>
<p>Contrast Android and iOs with the <strong>Windows Phone</strong> modus operandi.  Windows Phone applications can be developed using a tool that Windows Mobile developers should be reasonably familiar with: Visual Studio.  Windows Mobile developers have been used to working in a managed code environment for some time now and they are particularly comfortable with the Visual C++ language.  Windows Phone development will mean developers use their choice of C# or Visual Basic &#8211; this shouldn&#8217;t be a major undertaking as it&#8217;s not a complete platform change.  Windows Mobile developers should have a good grasp on the .NET framework.  The move from Visual C++ to C# is, in my opinion, fairly painless.  Yes, they will have to contend with a new deployment target, however it&#8217;s not a case of &#8220;all change&#8221; as it would be for Android and iOS, developers get to stay in the overall Microsoft ecosystem.  And or course, the Windows Phone development tools are free, which is always good.</p>
<p>Many businesses are already allowing Windows Phones to form part of their device portfolio, whether the device is on the corporate asset register or simply owned by an individual.  Once the consumer market opens its mind to the fact there are alternatives to Android devices, iOS devices, BlackBerry devices, the business space will see similar such uptake.  Consumers have day-jobs, they don&#8217;t want to find themselves using a state-of-the-art Windows Phone device to manage their personal life and then to have to use a <a href="http://en.wikipedia.org/wiki/Mobile_phone_form_factors">candy bar</a> to make phone calls in their corporate life.  Nokia used to be in the candy bar market, especially for corporate customers&#8230;I still have a <a href="http://europe.nokia.com/find-products/devices/nokia-6021">Nokia 6021</a> gathering dust!  Ironically, I carry a Palm Treo 750 (Windows Mobile 6) instead of the Nokia 6021.  I also carry an HTC HD7 Windows Phone &#8211; it&#8217;s my personal phone.  The HD7 gets more use than the Palm does &#8211; putting Windows Phone aside, the screen size makes it so much more useable.  </p>
<p>Whether Windows Mobile developers choose Android, iOS or Windows Phone, they will still find themselves building their line-of-business applications using a new user interface metaphor &#8211; gone are the small buttons and stylus-inspired Windows Mobile user interfaces.  Windows Phone, like the iPhone and Android is all about touch, sliding, pinching and tapping.  Despite the ease at which I believe a Windows Mobile developer could pick up the Windows Phone development environment, it&#8217;s not the main reason I believe that they should move into Windows Phone application development.  The ease at which a Windows Phone application can be developed is certainly a very important reason, however it&#8217;s not why I&#8217;ve written this article.  </p>
<p>The primary reason is the exponential growth that we are about to see in Windows Phone uptake, particularly in the consumer space.  As noted earlier in this article, during the week leading up to Nokia World, the commercial UK TV channels carried a number of subtle adverts.  Even today, Monday 24th October, the free Metro commuter newspaper carried an advert for the HTC Radar &#8211; granted it could have done with having more than a &#8220;cake&#8221; on the screen, it could have showed off the OS!  Assuming Nokia World proves to be the catalyst that Windows Phone needs and deserves, Q4 2011 and Q1 2012 are going to see massive uptake in the Windows Phone space.  Demand for Windows Phone applications is going to go through the roof early next year, 2012.  We need to be developing applications to meet that demand and we need to be doing it now.  Rarely do we get a moment like this, we have six months notice that good times are coming: action, now!  The Windows Phone market needs you!</p>
<p>So, you see, now, 2011 is a great time to move into Windows Phone development.</p>
<p><img src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/10/needs.png" /><img src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/10/curve.png" /><img src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/10/nokia.png" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.craigmurphy.com/blog/?feed=rss2&#038;p=2100</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>060 &#8211; Rachel Hawley and Paul Stack on #GiveCampUK</title>
		<link>http://www.craigmurphy.com/blog/?p=2083</link>
		<comments>http://www.craigmurphy.com/blog/?p=2083#comments</comments>
		<pubDate>Wed, 19 Oct 2011 15:21:06 +0000</pubDate>
		<dc:creator>Craig Murphy</dc:creator>
				<category><![CDATA[Podcasts]]></category>
		<category><![CDATA[charity]]></category>
		<category><![CDATA[GiveCamp]]></category>
		<category><![CDATA[GiveCampUK]]></category>
		<category><![CDATA[Paul Stack]]></category>
		<category><![CDATA[Rachel Hawley]]></category>

		<guid isPermaLink="false">http://www.craigmurphy.com/blog/?p=2083</guid>
		<description><![CDATA[Podcast feed &#8211; subscribe here! Welcome to show number 60, a bit of a milestone, but there&#8217;s no celebration! In this show I&#8217;m talking with Rachel Hawley and Paul Stack. Rach and Paul talk about the first UK outing of the GiveCamp concept. Perhaps not the first UK developer charity event, but certainly the first [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/10/rachel.jpg" /><img src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/10/givecamp_cities.png" /><img src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/10/Paul_Stack_med.jpg"  /></p>
<p><a href="http://www.craigmurphy.com/podcasts/RSSPodCasts.xml"><img src="http://www.craigmurphy.com/images/podcast_rssfeed.gif" /></a><a href="http://www.craigmurphy.com/podcasts/RSSPodcasts.xml">Podcast feed &#8211; subscribe here!</a></p>
<p>Welcome to show number 60, a bit of a milestone, but there&#8217;s no celebration!</p>
<p>In this show I&#8217;m talking with <a href="http://twitter.com/rachelhawley">Rachel Hawley</a> and <a href="http://twitter.com/stack72">Paul Stack</a>.  Rach and Paul talk about the first UK outing of the <a href="http://givecamp.org/">GiveCamp</a> concept.  Perhaps not the first UK developer charity event, but certainly the first outing for the GiveCamp concept in the UK.   Over the course of 20 minutes, Rach and Paul explain what GiveCampUK is all about, what&#8217;s involved, who is involved and what to expect on the weekend it takes place!</p>
<p>The show was recorded at the <a href="http://www.safc.com/page/StadiumofLight">Stadium of Light in Sunderland</a>, just after the hugely successful <a href="http://developerdeveloperdeveloper.com/north">DDD North</a>!  There is a little bit of background noise from time to time, 150 developers were enjoying a post-DDD dinner graciously sponsored by <a href="http://devexpress.com/">Developer Express</a>!</p>
<p>Please do visit the <a href="http://www.givecamp.org.uk/sponsors">GiveCampUK sponsors page</a> &#8211; it wouldn&#8217;t be possible without their support!</p>
<p>This podcast: <a href="http://www.craigmurphy.com/podcasts/060-Rachel-Hawley-Paul-Stack.mp3">http://www.craigmurphy.com/podcasts/060-Rachel-Hawley-Paul-Stack.mp3</a><br />
<a href="http://www.craigmurphy.com/podcasts/060-Rachel-Hawley-Paul-Stack.mp3"><img src="http://www.craigmurphy.com/images/podcast_listen.gif" /></a></p>
<p><strong>Resources</strong><br />
<a href="http://www.givecamp.org.uk/">http://www.givecamp.org.uk/</a><br />
Follow <a href="http://twitter.com/givecampuk">GiveCampUK</a> on Twitter<br />
<a href="http://www.givecamp.org.uk/blog/what-to-expect-when-you-arrive-at-givecamp-uk">What to expect when you arrive at GiveCamp UK</a><br />
<a href="http://www.jetbrains.com/devnet/academy/experts/Paul_Stack.html">Paul Stack, JetBrains academy profile</a><br />
<a href="http://www.paulstack.co.uk/blog/">Paul Stack&#8217;s blog</a></p>
<p><a href="http://www.givecamp.org.uk/"><img src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/10/GiveCampUK.jpg" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.craigmurphy.com/blog/?feed=rss2&#038;p=2083</wfw:commentRss>
		<slash:comments>7</slash:comments>
<enclosure url="http://www.craigmurphy.com/podcasts/060-Rachel-Hawley-Paul-Stack.mp3" length="19409863" type="audio/mpeg" />
		</item>
		<item>
		<title>Windows Phone Camp &#8211; 12th November 2011 &#8211; Edinburgh</title>
		<link>http://www.craigmurphy.com/blog/?p=2068</link>
		<comments>http://www.craigmurphy.com/blog/?p=2068#comments</comments>
		<pubDate>Sun, 16 Oct 2011 22:11:43 +0000</pubDate>
		<dc:creator>Craig Murphy</dc:creator>
				<category><![CDATA[Developer Events]]></category>
		<category><![CDATA[Windows Phone]]></category>

		<guid isPermaLink="false">http://www.craigmurphy.com/blog/?p=2068</guid>
		<description><![CDATA[What: If you are a developer looking to start developing for Windows Phone, but you haven’t yet taken the plunge, this free day of training is the quickest way to find out all you need to know. You’ll get all the information you need to get up to speed with Windows Phone in a packaged [...]]]></description>
			<content:encoded><![CDATA[<p><strong>What:</strong><br />
If you are a developer looking to start developing for Windows Phone, but you haven’t yet taken the plunge, this free day of training is the quickest way to find out all you need to know. You’ll get all the information you need to get up to speed with Windows Phone in a packaged and compressed form, ready for your consumption, without having to trawl through books, blogs and articles on your own. There will be experienced people available to guide you through a series of hands-on workshops and tutorials, allowing you to work at your own pace and select what is most useful for you.   Once you have the basics in place, you’ll be off and running and ready to develop your own apps. </p>
<p><strong>Where:</strong><br />
John McIntyre Conference (Microsoft Event)<br />
Edinburgh First<br />
Pollock Halls<br />
18 Holyrood Park Road Edinburgh EH16 5AY<br />
United Kingdom</p>
<p><strong>When:</strong><br />
12 November 2011</p>
<p><strong>Further Info:</strong><br />
<a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032496497&#038;Culture=en-GB">https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032496497&#038;Culture=en-GB</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.craigmurphy.com/blog/?feed=rss2&#038;p=2068</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Azure Bootcamp &#8211; 11th November 2011 &#8211; Edinburgh</title>
		<link>http://www.craigmurphy.com/blog/?p=2070</link>
		<comments>http://www.craigmurphy.com/blog/?p=2070#comments</comments>
		<pubDate>Sun, 16 Oct 2011 22:11:21 +0000</pubDate>
		<dc:creator>Craig Murphy</dc:creator>
				<category><![CDATA[Developer Events]]></category>

		<guid isPermaLink="false">http://www.craigmurphy.com/blog/?p=2070</guid>
		<description><![CDATA[What: If you are a developer looking to take advantage of cloud computing, but you haven’t yet taken the plunge, this free day of training is the quickest way to get up-to-speed with Microsoft’s offering; Windows Azure. We’ll take you from knowing nothing about the cloud to actually having written some code, deployed it to [...]]]></description>
			<content:encoded><![CDATA[<p><strong>What:</strong><br />
If you are a developer looking to take advantage of cloud computing, but you haven’t yet taken the plunge, this free day of training is the quickest way to get up-to-speed with Microsoft’s offering; Windows Azure. We’ll take you from knowing nothing about the cloud to actually having written some code, deployed it to the cloud service and made a simple application available on the public Internet. You’ll get all the information you need to get up to speed with Windows Azure in a packaged and compressed form, ready for your consumption, without having to trawl through books, blogs and articles on your own. There will be experienced people available to guide you through each exercise. Once you have the basics in place, you’ll be off and running.</p>
<p><strong>Where:</strong><br />
John McIntyre Conference (Microsoft Event)<br />
Edinburgh First<br />
Pollock Halls<br />
18 Holyrood Park Road Edinburgh EH16 5AY<br />
United Kingdom</p>
<p><strong>When:<br />
</strong>11 November 2011</p>
<p><strong>Further Info:</strong><br />
<a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032496082&#038;Culture=en-GB">https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032496082&#038;Culture=en-GB</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.craigmurphy.com/blog/?feed=rss2&#038;p=2070</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DDD North Agenda &#8211; coming to Windows Phone&#8230;</title>
		<link>http://www.craigmurphy.com/blog/?p=2062</link>
		<comments>http://www.craigmurphy.com/blog/?p=2062#comments</comments>
		<pubDate>Mon, 26 Sep 2011 21:54:35 +0000</pubDate>
		<dc:creator>Craig Murphy</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Developer Events]]></category>
		<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[agenda]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[DDD]]></category>
		<category><![CDATA[DeveloperDeveloperDeveloper]]></category>
		<category><![CDATA[North]]></category>

		<guid isPermaLink="false">http://www.craigmurphy.com/blog/?p=2062</guid>
		<description><![CDATA[I&#8217;m pleased to announce that I&#8217;ve written my first Windows Phone application! It&#8217;s not an application that will land space shuttles or control your orbiting satellites, however it&#8217;s a first step! It&#8217;s a small application that will save you carrying around a printed copy of the DDD North agenda! I had a false start last [...]]]></description>
			<content:encoded><![CDATA[<p><img alt="DDD North Logo" src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/09/200x200.png" style="float:right" />I&#8217;m pleased to announce that I&#8217;ve written my first Windows Phone application!  It&#8217;s not an application that will land space shuttles or control your orbiting satellites, however it&#8217;s a first step!  It&#8217;s a small application that will save you carrying around a printed copy of the <a href="http://developerdeveloperdeveloper.com/north/Schedule.aspx">DDD North agenda</a>!</p>
<p>I had a false start last week, whereby the application didn&#8217;t meet Windows Phone Marketplace regulations, for a reason I won&#8217;t mention here.  On the premise that the regulatory infringement had nothing to do with my code, I&#8217;m expecting the application to hit the Marketplace this week.</p>
<p>I&#8217;m planning to extend the application to be more generic such that it will handle future DDD events, whether they have two tracks, three tracks or however many tracks, etc.  And, of course, I&#8217;ll be recompiling the application for Mango&#8230;at some point during the Fall or Holiday season.</p>
<p><img alt="1" src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/09/image11.png"/><img alt="2" src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/09/image21.png"/><br />
<img alt="3" src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/09/image31.png"/><img alt="4" src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/09/image41.png"/></p>
<p>If you have one of those other devices, one of the <a href="http://humblecoder.co.uk/?p=179">DDD North speakers</a> has produced a similar &#8220;app&#8221; for their platform!  I&#8217;m sure that &#8220;apps&#8221; for the green fruit vendor&#8217;s device are also available!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.craigmurphy.com/blog/?feed=rss2&#038;p=2062</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Protecting your #windowsphone intellectual property using Dotfuscator</title>
		<link>http://www.craigmurphy.com/blog/?p=2046</link>
		<comments>http://www.craigmurphy.com/blog/?p=2046#comments</comments>
		<pubDate>Thu, 08 Sep 2011 00:06:06 +0000</pubDate>
		<dc:creator>Craig Murphy</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[decompile]]></category>
		<category><![CDATA[dotPeek]]></category>
		<category><![CDATA[JetBrains]]></category>
		<category><![CDATA[JustDecompile]]></category>
		<category><![CDATA[obfuscate]]></category>
		<category><![CDATA[obfuscation]]></category>
		<category><![CDATA[PreEmptive Solutions]]></category>
		<category><![CDATA[Reflector]]></category>
		<category><![CDATA[reverse engineering]]></category>
		<category><![CDATA[Telerik]]></category>
		<category><![CDATA[Windows Phone 7]]></category>

		<guid isPermaLink="false">http://www.craigmurphy.com/blog/?p=2046</guid>
		<description><![CDATA[Justin Angel&#8216;s Windows Phone Marketplace Statistics post makes very interesting reading. Justin has done a stellar job downloading all of the Marketplace applications and performing a lot of statistical analysis. I was particularly interested in one of the statistics: 97% of Marketplace apps aren’t obfuscated. On the off chance that you haven&#8217;t come across obfuscation [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://twitter.com/#!/justinangel">Justin Angel</a>&#8216;s <a href="http://justinangel.net/WindowsPhone7MarketplaceStatistics">Windows Phone Marketplace Statistics</a> post makes very interesting reading.  Justin has done a stellar job downloading all of the Marketplace applications and performing a lot of statistical analysis.  </p>
<p>I was particularly interested in one of the statistics: <strong>97% of Marketplace apps aren’t obfuscated</strong>.  On the off chance that you haven&#8217;t come across obfuscation yet, here&#8217;s something from wikipedia to get you started:</p>
<blockquote><p>Obfuscation is the concealment of intended meaning in communication, making communication confusing, intentionally ambiguous, and more difficult to interpret.<br />
<a href="http://en.wikipedia.org/wiki/Obfuscation">http://en.wikipedia.org/wiki/Obfuscation</a></p></blockquote>
<p>Obviously this means that a mere 3% of the apps in the Marketplace have some form of obfuscation.  Justin was looking for PreEmptive Solutions <a href="http://www.preemptive.com/know-more/windows-phone-7">Dotfuscator</a> signatures, which is currently the only Windows Phone obfuscater available.  Regardless of the obfuscation monopoly, 3% for what is currently the de facto tool is surprisingly low and worrying.  I think back to my days in academia and how source code was something to be protected.  Getting your hands on somebody else&#8217;s code was (for some students) a real boon &#8211; if you were struggling, picking up a top student&#8217;s discarded source code could provide you with something from which gave you a start.  I witnessed this a few times, it happened &#8220;back in the day&#8221;, and I&#8217;m sure it still happens today.</p>
<p>Traditionally, we&#8217;ve used reflection to provide us with some insight as to the contents of .net assemblies.  We used, almost exclusively, <a href="http://www.reflector.net/">.NET Reflector</a>, although recently we&#8217;ve seen similar offerings from JetBrains (<a href="http://www.jetbrains.com/decompiler/">dotPeek</a>) and Telerik (<a href="http://www.telerik.com/products/decompiler.aspx">JustDecompile</a>) to name but two other reverse engineering or decompilation tools.  Typically, these tools looks for .dll or .exe files.  Windows Phone apps are deployed via a .xap file, we need to crack open the .xap and extract the .dlls that we are interested in looking at.  Given that .xap files are actually no more than .zip files, we can simply rename the .xap to .zip and pull out the .dlls from there.</p>
<p><strong>An Example</strong><br />
About 20 years ago (ahem!), my Pascal tutor set us a programming exercise.  The full details are documented in this <a href="http://www.craigmurphy.com/blog/?p=1417">post</a>.  In a nutshell, we had to create a [Pascal] program that accepted a letter A thru Z and plotted a text-based triangle, where the chosen letter was the &#8220;middle&#8221; of the triangle.  Once you see the screenshot (and the code), all will become clear.</p>
<p>Needless to say, the problem wasn&#8217;t as simple as it sounded.  As soon as students demonstrated a solution, others were keen to look at the algorithms and tricks used to arrive at the solution.  The code below presents a re-hashed version of my original submission, updated slightly such that it runs as a Windows Phone app.</p>
<pre name="code" class="c-sharp">
     private void button1_Click(object sender, RoutedEventArgs e)
        {
            char widest_char;
            int next_char, finish_char, wide, range, direction, position, spacelength, loop;

            widest_char = 'F';

            wide = (int)widest_char;
            direction = 1;
            spacelength = 1;
            position = 1;

            next_char = 66;
            finish_char = 65;

            range = 2 * (wide - finish_char);

            // Calculate initial left indent
            int mid = wide - 65 + 1;

            String firstLetter = Char.ToString((char)finish_char);
            firstLetter = firstLetter.PadLeft(mid + 1);

            textBlock1.Text = firstLetter + "\n";

            for (loop = 1; loop < range; loop++)
            {
                textBlock1.Text += (" ".PadLeft(mid - position));
                textBlock1.Text += ((char)next_char);

                textBlock1.Text += (" ".PadLeft(spacelength));
                textBlock1.Text += ((char)next_char);
                textBlock1.Text += "\n";

                next_char = next_char + (1 * direction);
                position = position + (1 * direction);
                spacelength = spacelength + (2 * direction);

                // Flip direction when the middle of the diamond is reached
                if (next_char == wide) direction = -1;
            }

            textBlock1.Text += firstLetter;
            textBlock1.Text += "\n";
        }
</pre>
<p>Here's a screenshot of the output:<br />
<img src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/09/diamond.png"/></p>
<p>Visual Studio 2010 created a .xap file that was deployed to the emulator or physical device.  In order to extract the .dll that makes up the diamond application, we rename the .xap file as a .zip file, from there it's just copy and paste.  </p>
<p>It's a different story for <a href="http://www.jetbrains.com/decompiler/">dotPeek</a> now.  It can still inspect the .dll with ease, however the meaningful variable names have been largely lost.  The crux of this particular code example revolves around the algorithm that is used to create the diamond shape - some students were very keen to get a glimpse of an algorithm!  The algorithm is still very obvious from the code fragment below:</p>
<pre name="code" class="c-sharp">
private void button1_Click(object sender, RoutedEventArgs e)
    {
      char ch = 'F';
      int num1 = (int) ch;
      int num2 = 1;
      int totalWidth = 1;
      int num3 = 1;
      int num4 = 66;
      int num5 = 65;
      int num6 = 2 * (num1 - num5);
      int num7 = num1 - 65 + 1;
      string str1 = char.ToString((char) num5).PadLeft(num7 + 1);
      this.textBlock1.Text = str1 + "\n";
      for (int index = 1; index < num6; ++index)
      {
        TextBlock textBlock1 = this.textBlock1;
        string str2 = textBlock1.Text + " ".PadLeft(num7 - num3);
        textBlock1.Text = str2;
        TextBlock textBlock2 = this.textBlock1;
        string str3 = textBlock2.Text + (object) (char) num4;
        textBlock2.Text = str3;
        TextBlock textBlock3 = this.textBlock1;
        string str4 = textBlock3.Text + " ".PadLeft(totalWidth);
        textBlock3.Text = str4;
        TextBlock textBlock4 = this.textBlock1;
        string str5 = textBlock4.Text + (object) (char) num4;
        textBlock4.Text = str5;
        TextBlock textBlock5 = this.textBlock1;
        string str6 = textBlock5.Text + "\n";
        textBlock5.Text = str6;
        num4 += num2;
        num3 += num2;
        totalWidth += 2 * num2;
        if (num4 == num1)
          num2 = -1;
      }
      TextBlock textBlock6 = this.textBlock1;
      string str7 = textBlock6.Text + str1;
      textBlock6.Text = str7;
      TextBlock textBlock7 = this.textBlock1;
      string str8 = textBlock7.Text + "\n";
      textBlock7.Text = str8;
    }
</pre>
<p>Obfuscating the .xap using PreEmptive Solutions' <a href="http://www.preemptive.com/know-more/windows-phone-7">Dotfuscator</a>, changes the playing field quite significantly.  Whilst Dotfuscator can obfuscate a Windows Phone .xap file, we still have to rename it to a .zip before we can inspect the assemblies found inside it.  Extracting the assembly that draws the diamond, then firing it through <a href="http://www.jetbrains.com/decompiler/">dotPeek</a> results in the following, rather lengthy, code fragement:</p>
<pre name="code" class="c-sharp">
 private void ᜀ(object A_0, RoutedEventArgs A_1)
    {
      int A_1_1 = 6;
      switch (0)
      {
        default:
label_2:
          char ch = 'F';
          int num1 = (int) ch;
          int num2 = 1;
          int totalWidth = 1;
          int num3 = 1;
          int num4 = 66;
          int num5 = 65;
          int num6 = 2 * (num1 - num5);
          int num7 = num1 - 65 + 1;
          string str1 = char.ToString((char) num5).PadLeft(num7 + 1);
          this.textBlock1.Text = str1 + MainPage.b("ሗ", A_1_1);
          int num8 = 1;
          int num9 = 1;
          while (true)
          {
            switch (num9)
            {
              case 0:
label_8:
                num2 = -1;
                num9 = 5;
                continue;
              case 1:
              case 4:
                num9 = 3;
                continue;
              case 2:
                if (num4 == num1)
                {
                  num9 = 0;
                  continue;
                }
                else
                  goto case 5;
              case 3:
                if (num8 < num6)
                {
                  TextBlock textBlock1 = this.textBlock1;
                  string str2 = textBlock1.Text + MainPage.b("㠗", A_1_1).PadLeft(num7 - num3);
                  textBlock1.Text = str2;
                  TextBlock textBlock2 = this.textBlock1;
                  string str3 = textBlock2.Text + (object) (char) num4;
                  textBlock2.Text = str3;
                  TextBlock textBlock3 = this.textBlock1;
                  string str4 = textBlock3.Text + MainPage.b("㠗", A_1_1).PadLeft(totalWidth);
                  textBlock3.Text = str4;
                  TextBlock textBlock4 = this.textBlock1;
                  string str5 = textBlock4.Text + (object) (char) num4;
                  textBlock4.Text = str5;
                  TextBlock textBlock5 = this.textBlock1;
                  string str6 = textBlock5.Text + MainPage.b("ሗ", A_1_1);
                  textBlock5.Text = str6;
                  num4 += num2;
                  num3 += num2;
                  totalWidth += 2 * num2;
                  num9 = 2;
                  continue;
                }
                else
                {
                  num9 = 6;
                  continue;
                }
              case 5:
                if (1 == 0)
                  ;
                switch (1 == 1 ? 1 : 0)
                {
                  case 0:
                  case 2:
                    goto label_8;
                  case 1:
                    if (0 == 0)
                      ;
                    ++num8;
                    num9 = 4;
                    continue;
                  default:
                    goto case 1;
                }
              case 6:
                goto label_15;
              default:
                goto label_2;
            }
          }
label_15:
          TextBlock textBlock6 = this.textBlock1;
          string str7 = textBlock6.Text + str1;
          textBlock6.Text = str7;
          TextBlock textBlock7 = this.textBlock1;
          string str8 = textBlock7.Text + MainPage.b("ሗ", A_1_1);
          textBlock7.Text = str8;
          break;
      }
    }
</pre>
<p>Clearly the <a href="http://www.preemptive.com/know-more/windows-phone-7">Dotfuscator</a> version is much harder to understand.  This is about as far as most <a href="http://en.wikipedia.org/wiki/Obfuscated_code">obfuscation methods</a> can go, they won't make it impossible to reverse engineer your application, but they will make it very time-consuming for those trying to read and understand the code.</p>
<p>If you are planning to obfuscate your Windows Phone apps, be sure to test them after they have been obfuscated.  Like any tool that alters code post-compile, there is a chance that something may cause your app to fail.  As part of the <a href="http://create.msdn.com/en-us/home/getting_started">Windows Phone SDK</a>, the Application Deployment tool is your friend.  It will let you deploy .xap files to the emulator or a physical device <em>outside</em> of Visual Studio 2010.  In other words, once you've built and tested your app, after you've obfuscated the .xap, use the Application Deployment tool to re-test the deployment.</p>
<p><img src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/09/xapdeployment0.png"/><img src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/09/xapdeployment.png"/></p>
<p>Of course, if you are targeting Windows Phone Mango, all of this becomes rather academic.  As Justin points out, from Mango onwards, .xap files will be <a href="http://en.wikipedia.org/wiki/Digital_rights_management">DRM</a> protected.  Whilst your .xap will be downloadable from the Marketplace, the file itself can't be cracked open in the same way I mentioned earlier in this post.  However, if you are planning to target Windows Phone 7.0 "NoDo" 7392/7390 builds, obfuscation might be something for you to consider.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.craigmurphy.com/blog/?feed=rss2&#038;p=2046</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Smartphones: unbalanced exposure? [Part 2 of 2]</title>
		<link>http://www.craigmurphy.com/blog/?p=2025</link>
		<comments>http://www.craigmurphy.com/blog/?p=2025#comments</comments>
		<pubDate>Wed, 31 Aug 2011 22:40:53 +0000</pubDate>
		<dc:creator>Craig Murphy</dc:creator>
				<category><![CDATA[Windows Phone]]></category>

		<guid isPermaLink="false">http://www.craigmurphy.com/blog/?p=2025</guid>
		<description><![CDATA[I&#8217;m not slating the phone vendors in this post, however their web-sites don&#8217;t lend themselves to selling Windows Phone devices. I visited five of the the UK&#8217;s most popular phone vendors and found a disappointing slant towards &#8216;droid devices and Samsung as a device supplier. O2&#8242;s site had a &#8220;Phones with the best&#8221; drop-down menu [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m not slating the phone vendors in this post, however their web-sites don&#8217;t lend themselves to selling Windows Phone devices.  I visited five of the the UK&#8217;s most popular phone vendors and found a disappointing slant towards &#8216;droid devices and Samsung as a device supplier.</p>
<p>O2&#8242;s site had a &#8220;Phones with the best&#8221; drop-down menu that included &#8220;Android operating system&#8221; in the drop-down.  I&#8217;m with O2, as is my wife, we think they&#8217;re great&#8230;however c&#8217;mon guys, that menu option is very wrong!<br />
<img alt="O2" src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/08/o2.png"/></p>
<p>Vodafone had some promise.  However that good feeling soon disappeared when they offered to help me choose between iPhone, BlackBerry and Android.  Their selector wasn&#8217;t much help, it was too limiting.</p>
<p><img alt="vodafone" src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/08/vodafone.png"/></p>
<p>Three were very much the same, just offering direct links to the big three, &#8220;i&#8221; device, &#8216;berry and &#8216;droid.<br />
<img alt="three" src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/08/three.png"/></p>
<p>T-Mobile shared O2&#8242;s weird classification, including operating systems and phone suppliers in their choice:<br />
<img alt="t-mobile" src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/08/t-mobile.png"/></p>
<p>Orange had a dedicated link to a Windows Phone 7 page, which was good.  However the emphasis on the &#8220;i&#8221; products is still there.  Notice that the &#8220;i&#8221; tablet device is listed separately, yet there is a &#8220;tablets and pads&#8221; section.  </p>
<p><img alt="orange" src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/08/orange.png"/></p>
<p><strong>It&#8217;s not just me&#8230;</strong><br />
<img alt="notjustme" src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/08/notjustme.png"/><img alt="notjustme2" src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/08/notjustme2.png"/></p>
<blockquote><p><strong>How easy is it to find Windows Phone devices once at a carrier&#8217;s web-site?</strong><br />
I am pleased to see that O2 have a dedicated Windows Phone 7 page on their web-site: <a href="http://www.o2.co.uk/windowsphone7">O2 &#8211; Windows Phone 7</a>.  </p>
<p>Similarly, Orange have a dedicated Windows Phone 7 page on their web-site: <a href="http://shop.orange.co.uk/mobile-phones/windows-phone-7">Orange &#8211; Windows Phone 7</a>.</p>
<p>Vodafone&#8217;s <a href="http://shop.vodafone.co.uk/shop/mobile-phone/windows-phone-7">page</a> was rather disappointing, so here are the direct links to today&#8217;s phones: <a href="http://shop.vodafone.co.uk/shop/mobile-phone/htc-7-trophy">HTC 7 Trophy</a> and <a href="http://shop.vodafone.co.uk/shop/mobile-phone/lg-optimus-7">LG Optimus 7</a></p>
<p>I couldn&#8217;t find any Windows Phone 7 devices on the Three web-site.  I was under the <a href="http://www.threemediacentre.co.uk/Press-Releases/Windows-Phone-7-comes-to-Three-with-the-Samsung-Omnia-7-211.aspx">impression</a> that they were going to carry the Samsung Omnia 7, it seems not.  </p>
<p>T-Mobile didn&#8217;t have Windows Phone 7 device offering either.  Again, I was sure that they were <a href="http://www.electricpig.co.uk/2010/10/11/samsung-omnia-7-windows-phone-7-on-t-mobile-21-october/">carrying</a> the Samsung Omnia 7, evidently not.</p></blockquote>
<p>Hopefully this is a situation that will change as soon as Nokia get their marketing and distribution engines fired up.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.craigmurphy.com/blog/?feed=rss2&#038;p=2025</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Smartphones: unbalanced exposure? [Part 1 of 2]</title>
		<link>http://www.craigmurphy.com/blog/?p=1996</link>
		<comments>http://www.craigmurphy.com/blog/?p=1996#comments</comments>
		<pubDate>Wed, 31 Aug 2011 22:33:17 +0000</pubDate>
		<dc:creator>Craig Murphy</dc:creator>
				<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[BlackBerry]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[O2]]></category>
		<category><![CDATA[Orange]]></category>
		<category><![CDATA[RIM]]></category>
		<category><![CDATA[Samsung]]></category>
		<category><![CDATA[T-Mobile]]></category>
		<category><![CDATA[Three]]></category>
		<category><![CDATA[Vodafone]]></category>

		<guid isPermaLink="false">http://www.craigmurphy.com/blog/?p=1996</guid>
		<description><![CDATA[In my last post, I was singing the praises of Windows Phone and the devices that it&#8217;s installed on. This post is going to serve as a brain dump of my thoughts relating to smartphone marketing, as I see it in the UK. It seems so unbalanced, it seems to favour specific devices, platforms and [...]]]></description>
			<content:encoded><![CDATA[<p>In my <a href="http://www.craigmurphy.com/blog/?p=1986">last post</a>, I was singing the praises of Windows Phone and the devices that it&#8217;s installed on.  This post is going to serve as a brain dump of my thoughts relating to smartphone marketing, as I see it in the UK.  It seems so unbalanced, it seems to favour specific devices, platforms and device providers.</p>
<p><img src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/08/thatPhone.png"  style='float:right'"/>Since it&#8217;s launch, Windows Phone has picked up significant momentum such that it is a very credible alternative to the other black slab smartphones that are out there.  I&#8217;m not planning to use this post to share huge amounts of &#8220;market share&#8221; information with you, there are plenty of sites doing that already, some better than others.  However, what I do want to get off my chest is the unbalanced advertising that I see for the other black slabs.  Everywhere I turn, I see full page spreads offering me &#8216;droid devices, &#8216;berry devices or the &#8220;i&#8221; device.  Around about the launch of Windows Phone during late 2010, I did see some newspaper adverts, however they seem to have all but dried up.</p>
<p>So what&#8217;s the deal?  How do the phone vendors and carriers decide which devices to promote?  I&#8217;ve heard that in the US, staff that sell a particular device receive additional commission.  I can&#8217;t imagine it&#8217;s much different here in the UK.  However, since it&#8217;s always the &#8216;droid devices, the &#8216;berry and the &#8220;i&#8221; devices that are the subject of such huge promotion, it makes me wonder how Windows Phone devices will ever reach the mainstream.  I&#8217;m fairly hooked into the developer community and I know that there is a lot of excitement in the Windows Phone application development space.  What can we do to take that excitement and enthusiasm for the device out to the consumers?  </p>
<p>That leads to my next question, are the phone vendors and their staff geared up and armed with sufficient knowledge to sell Windows Phone devices?  If they are receiving a higher commission for selling a &#8216;droid device over a Windows Phone device, why should they skill up on Windows Phone?  All they have to do is convince the customer / punter that the &#8216;droid device is the device they are looking for.  The playing field has to be levelled if there is to be genuine competition.  The phone vendors need to play a major part in balancing their pitch point and they need to ensure that their staff are given all the necessary training to be able to compare, contrast and sell Windows Phone, &#8216;droid, &#8216;berry and &#8220;i&#8221; devices.</p>
<p>The key draw of the application logos in the cutting below is clearly there to capture the social audience, those with an interest in online shopping and the casual mobile gamer.  Windows Phone can do all of that; it has an official Twitter app, an official eBay app, an official Facebook app, Amazon and of course the much-played Angry Birds.  So why does this particular advert need to use an array of five non-Windows Phone devices?  Both adverts in this post carried the word &#8220;free&#8221;, yet also had a monthly cost of £15 or £25 attached.  There is the obvious irony of &#8220;here&#8217;s something for free, that will cost you ££ per month&#8221;, however that&#8217;s not for discussion here!</p>
<p>Choice is important in the marketplace, so why offer such an array of devices, yet limit the actual choice of phone operating system?  I&#8217;m confused, I&#8217;m looking for answers and I can&#8217;t find them; well none that don&#8217;t involve money in some way.  </p>
<p><img src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/08/otherPhones.png"/></p>
<p>Perhaps this is what the marketplace actually wants?  Is today&#8217;s phone buyer driven by much little more than the knowledge the device is the right colour, it looks good and it can run Facebook and Angry Birds?  What does the competition really look like?  Are we looking at an underworld of competition between Apple, Google and RIM?  Looking at the vendor sites, it certainly looks like it&#8217;s a tight market with directed competition.  I really want to see Windows Phone succeed and make its way into the &#8220;top 3&#8243; sooner rather than later.  However, until the phone vendors and carriers iron out their competitive issues, I think it&#8217;s going to be a struggle.</p>
<p>Of course, Microsoft&#8217;s partnering with Nokia should provide a means of getting Windows Phone devices in front of vast numbers of consumers, certainly in Europe.  I understand that Nokia have built bridges with the carriers in the USA, which does bode well for market penetration over there too.  Nokia are well-known in Europe, they&#8217;ve recently <a href="http://thenextweb.com/mobile/2011/08/12/nokia-reportedly-orders-2-million-windows-phone-units-due-september/">ordered a couple of million</a> devices, which suggests that they mean business.  One would hope that with the might of Nokia, its existing distribution infrastructure and its need to succeed in the smartphone space that we&#8217;ll see some serious competition for the &#8220;i&#8221;, &#8216;berry and &#8216;droid devices that are omnipresent in the newspaper adverts.</p>
<p>I&#8217;m keen to hear what you have to think about this subject, please feel free to comment.  Thanks in advance!</p>
<p>In the meantime, ignore the phones above, the Windows Phone devices below can run all of the big name apps, games and tools!</p>
<p><iframe src="http://rcm-uk.amazon.co.uk/e/cm?lt1=_blank&#038;bc1=000000&#038;IS2=1&#038;bg1=FFFFFF&#038;fc1=000000&#038;lc1=0000FF&#038;t=craigmurphyco-21&#038;o=2&#038;p=8&#038;l=as4&#038;m=amazon&#038;f=ifr&#038;ref=ss_til&#038;asins=B0045OVL28" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-uk.amazon.co.uk/e/cm?lt1=_blank&#038;bc1=000000&#038;IS2=1&#038;bg1=FFFFFF&#038;fc1=000000&#038;lc1=0000FF&#038;t=craigmurphyco-21&#038;o=2&#038;p=8&#038;l=as4&#038;m=amazon&#038;f=ifr&#038;ref=ss_til&#038;asins=B004K1EAT2" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-uk.amazon.co.uk/e/cm?lt1=_blank&#038;bc1=000000&#038;IS2=1&#038;bg1=FFFFFF&#038;fc1=000000&#038;lc1=0000FF&#038;t=craigmurphyco-21&#038;o=2&#038;p=8&#038;l=as4&#038;m=amazon&#038;f=ifr&#038;ref=ss_til&#038;asins=B004O6MJ32" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-uk.amazon.co.uk/e/cm?lt1=_blank&#038;bc1=000000&#038;IS2=1&#038;bg1=FFFFFF&#038;fc1=000000&#038;lc1=0000FF&#038;t=craigmurphyco-21&#038;o=2&#038;p=8&#038;l=as4&#038;m=amazon&#038;f=ifr&#038;ref=ss_til&#038;asins=B004IOC0PW" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></p>
<p>And there&#8217;s all this other <a href="http://www.amazon.co.uk/s?ie=UTF8&#038;ref_=nb_sb_noss&#038;field-keywords=WINDOWS%20PHONE%207&#038;url=search-alias%3Daps#?_encoding=UTF8&#038;tag=craigmurphyco-21&#038;linkCode=ur2&#038;camp=1634&#038;creative=19450">Windows Phone swag</a> at Amazon too!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.craigmurphy.com/blog/?feed=rss2&#038;p=1996</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>40 days and 40 nights with #WindowsPhone 7</title>
		<link>http://www.craigmurphy.com/blog/?p=1986</link>
		<comments>http://www.craigmurphy.com/blog/?p=1986#comments</comments>
		<pubDate>Tue, 23 Aug 2011 22:17:31 +0000</pubDate>
		<dc:creator>Craig Murphy</dc:creator>
				<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[Live Tiles]]></category>
		<category><![CDATA[Mango]]></category>
		<category><![CDATA[Metro]]></category>
		<category><![CDATA[Windows Phone 7]]></category>
		<category><![CDATA[WP7]]></category>

		<guid isPermaLink="false">http://www.craigmurphy.com/blog/?p=1986</guid>
		<description><![CDATA[I am very impressed with the operating system and the device itself; here are my seven favourite Windows Phone 7 features, so far: I never need to see a duplicate contact card again The Metro styled user interface is very clean Live Tiles &#8211; active content, such as &#8220;number of unread e-mail items&#8221; or &#8220;number [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/08/wp7.png"  style='float:right'"/>In July, I finally gave in and won a bid on eBay.  I rarely win bids on eBay, apart from the &#8216;buy it now&#8217; variety, but that just equates to online shopping.  I had been bidding on Windows Phone 7 devices, not thinking my bid would actually be considered good enough to actually win the goods.  Of course I won the goods and had to pay up.  I became the proud owner of an HTC HD7, two batteries, a desktop dock, car cradle, a carry case and a clean install of Windows Phone 7 (build 7392).  </p>
<p>Moving to Windows Phone 7 has been an excellent move.  I feel more organised, at least when I&#8217;m on the move (I can&#8217;t say that my primary e-mail inbox is anything to gauge that statement on!)  The device integrates itself with Facebook.  Some folks say that&#8217;s a bad thing, it certainly hasn&#8217;t proven to be a problem for me.  Being able to &#8220;link&#8221; contact records between the Facebook and any number of e-mail accounts is a real boon.  Couple that with the de-duplication feature in Windows Live, no longer do I have to see multiple contact records for the same person.</p>
<p>Windows Phone 7 also lends itself to getting your contacts sorted out, once and for all.  I had contacts in Outlook (both at home and at work) and on a Nokia handset.  After &#8220;some&#8221; effort, I was able to get all of my contacts into my Windows Live account.  Most of the hassle that I had during this process was down to the Nokia PC Suite software &#8211; a product I will never need to see again, ever.  After a little bit of tweaking, I was able to get my personal Outlook calendar and contacts synchronising with the phone.  Importantly, I was also able to get my corporate Outlook calendar synchronising too.  </p>
<p>Prior to the HTC HD7, for corporate use, I had been using a couple of Nokia devices, a 6021 and a 7230.  Both were &#8220;candy bar&#8221; style devices, one was a traditional black&#8217;n'white device, the other had a colour screen with a slide out numeric keypad.  For personal use, I was using a Palm Treo running Windows Mobile 6.1.  Now that I am running the HTC device as my personal phone, the Nokia devices have been retired&#8230;the corporate SIM card is in the Palm Treo.  The Palm Treo is used as a <em>phone</em> and for managing my corporate inbox, although I do use the HTC device for this purpose too.</p>
<p><img src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/08/wp7_1.png"  style='float:right; margin: 0px 0px'"/>I am very impressed with the operating system and the device itself; here are my seven favourite Windows Phone 7 features, so far:</p>
<ol>
<li>I never need to see a duplicate contact card again</li>
<li>The <a href="http://en.wikipedia.org/wiki/Metro_(design_language)">Metro</a> styled <a href="http://msdn.microsoft.com/library/en-US/hh202915.aspx">user interface</a> is very clean</li>
<li>Live Tiles &#8211; active content, such as &#8220;number of unread e-mail items&#8221; or &#8220;number of unread text messages&#8221;</li>
<li>Next appointment, date, time, unread e-mails, voicemails and missed calls &#8220;on top of the curtain&#8221; (when the phone is turned on, the curtain is down &#8211; the screenshot on the right demonstrates the curtain)</li>
<li>There is a camera button on the phone.  This is great for getting the camera application running without having to power on then tap on a couple of icons to get to the camera.</li>
<li>It&#8217;s fast.  Very fast.  What with all the animations that are going on, you might expect some drag.  I find the whole phone experience very snappy.</li>
<li>Its simplicity and its wealth of configuration options.  Each of the tiles that you see in the screenshot above (the curtain is up) can be turned on or off.  Applications and &#8216;people&#8217; can be pinned to the home screen as a tile.  Pinning family members to the home screen is particularly useful, two taps and I can be sending a text or returning my wife&#8217;s calls.</li>
</ol>
<p>So I am a convert, I&#8217;ve joined the smartphone fraternity.  I am pleased that I resisted the temptation to jump on the &#8220;i&#8221; or the &#8220;&#8216;droid&#8221; or the &#8220;&#8216;berry&#8221; bandwagon.  If you&#8217;re in the market for a new device, I would urge you to go to your local store, push past the array of &#8220;other smartphones&#8221; and hunt out a Windows Phone 7 device.  I&#8217;m so enthused by the device that I&#8217;ve signed up for the developer programme &#8211; I&#8217;ll be taking my .net development experience from the desktop and the web over to Windows Phone, apps coming soon!</p>
<p>All of this Windows Phone 7 &#8220;goodness&#8221;, gets even better with the <a href="http://www.pcmag.com/article2/0,2817,2387131,00.asp">Mango update</a> that should be shipping during &#8220;the fall&#8221; of 2011.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.craigmurphy.com/blog/?feed=rss2&#038;p=1986</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Software projects that are over-budget and late: please, don&#8217;t blame us&#8230;</title>
		<link>http://www.craigmurphy.com/blog/?p=1695</link>
		<comments>http://www.craigmurphy.com/blog/?p=1695#comments</comments>
		<pubDate>Sun, 27 Feb 2011 20:20:01 +0000</pubDate>
		<dc:creator>Craig Murphy</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Rants]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[estimating]]></category>
		<category><![CDATA[estimation]]></category>
		<category><![CDATA[feature creep]]></category>
		<category><![CDATA[opportunity cost]]></category>
		<category><![CDATA[over budget]]></category>
		<category><![CDATA[overrun]]></category>
		<category><![CDATA[product backlog]]></category>
		<category><![CDATA[requirements]]></category>
		<category><![CDATA[scope creep]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[user stories]]></category>

		<guid isPermaLink="false">http://www.craigmurphy.com/blog/?p=1695</guid>
		<description><![CDATA[[Originally drafted in March 2010, published February 2011] For many decades now, developers and IT departments have been at the receiving end of a lot flack. Flack stemming from the fact that many software projects cost more than originally estimated and take longer to reach production than previously thought. Typically, it&#8217;s the fault of the [...]]]></description>
			<content:encoded><![CDATA[<p><em>[Originally drafted in March 2010, published February 2011]</em></p>
<p>For many decades now, developers and IT departments have been at the receiving end of a lot flack. Flack stemming from the fact that many software projects cost more than originally estimated and take longer to reach production than previously thought. Typically, it&#8217;s the fault of the folks near the bottom of the tree: the developers or the IT department. This blog post is a tale of woe that highlights the blame culture that we live in and how this author believes that blame to be misdirected, at least in some cases. </p>
<p><img src="http://www.craigmurphy.com/blog/wp-content/uploads/2010/06/list.jpg"  style='float:right'"/>Most software projects have some sort of plan, a list of activities, a product backlog, user stories, perhaps even a schedule.  Regardless of your religious view in the waterfall or agile space, you will have requirements noted down somewhere using whatever technique floats your boat.  You may also have an &#8220;end date&#8221; (aka a go live date) that is either dictated by some form of time estimate based on the list of activities or, worse, by a third party.  Invariably, you may not have a lot of say in the estimation process&#8230;you have to hope that the person is reasonably good at estimating how long it will take a somebody else to complete a task. Remember, that person is estimating how much time <em>somebody else</em> needs to complete a task: a task in a domain they most probably know very little about (&#8220;stick a button on that form there, how hard can it be?&#8221;) </p>
<p><img src="http://www.craigmurphy.com/blog/wp-content/uploads/2010/06/flowchart.jpg"  style='float:left'"/>Thinking about scope: can you produce a flowchart outlining your <strong>current</strong> process, the process that you want a magical application to replace?  If you can&#8217;t produce a flowchart, how do you expect other people to understand the start point, the processing and the end point?  You can expect some help from your developer, programmer or system implementor when it comes to documenting your current workflow; equally you can expect some help from them when it comes to documenting your requirements.  However, don&#8217;t turn to your developer, programmer or system implementor and tell them that you don&#8217;t have the time to document the requirements or document the workflow.  If you don&#8217;t have time to tell us what you want in the first place, we know (from experience) that you&#8217;ll not have time to help us with user acceptance testing later on in the project &#8211; assuming we can build a system worthy of user acceptance testing in the absence of any real requirements.</p>
<p><img src="http://www.craigmurphy.com/blog/wp-content/uploads/2010/06/neck.jpg"  style='float:right'"/>All too often developers and IT departments have been getting it in the neck for project failures. However, little has been said about the fact that the blame really lies with those further up the project hierarchy. Failure to provide adequate work scope / definition results in confusion and the potential for large amounts of <a href="http://en.wikipedia.org/wiki/Quality_costs">scrap and rework</a>. Developers don&#8217;t mind throwing code away as a result of refactoring, however they do mind shelving code because it has suddenly become redundant or is now <em>not part of the solution</em>.</p>
<p><img src="http://www.craigmurphy.com/blog/wp-content/uploads/2010/06/747overrun.jpg"  style='float:left'"/>In a <del datetime="2011-02-27T19:27:47+00:00">recent</del> current project I was told &#8220;we don&#8217;t have time to write a specification&#8221;. However, we do have the time to overrun by many months and we do have the budget to fund the additional development and to cover the <a href="http://en.wikipedia.org/wiki/Opportunity_cost">opportunities that are lost</a>. With no end in sight, developer morale takes a hit, they lose direction. Similarly, there can be nothing worse for a developer to be on a project where s/he doesn&#8217;t know what they are meant to be doing? And worse, if they do find out what they are meant to be doing, to have it change from one week to the next.  Or even to have it [the glimmer of hope, the taste of the requirement] change from day to day.</p>
<p><img src="http://www.craigmurphy.com/blog/wp-content/uploads/2010/06/endless.jpg"  style='float:right'"/>In the absence of a specification, <a href="http://en.wikipedia.org/wiki/Feature_creep">feature creep</a> is inevitable.  Development cycles feel, and often are, endless.  Even with an understanding and helpful client, the absence of a specification is a <a href="http://en.wikipedia.org/wiki/Golden_Ticket">golden ticket</a> for those who want everything from the system. Specification-less projects suffer from feature creep and work scope additions. All of the &#8220;nice to haves&#8221; suddenly come out of the woodwork. And because there&#8217;s little in the way of contractual documentation in place to lay down the law or draw the line in the sand, there&#8217;s nothing you can do apart from argue your case against adding features. The time you spend arguing your case, is time you&#8217;re not working on the project, you&#8217;re not progessing the project towards completion, the delay gets worse.  Mind you, perhaps it&#8217;s a good thing that you&#8217;re not working on the project, after all, do you know what you&#8217;re meant to be doing?</p>
<p><img src="http://www.craigmurphy.com/blog/wp-content/uploads/2010/06/house-foundation.jpg"  style='float:left'"/>Software development is a complicated process.  Unstructured and unproven time/budget &#8220;guesstimation&#8221; just doesn&#8217;t work in this industry.  You can&#8217;t say to software developer &#8220;two weeks&#8221; to write an enterprise class system that replicates the functionality of commercial of the shelf software costing many £000&#8242;s per license.  Two weeks is how long it might take you to cut&#8217;n'paste a spreadsheet together&#8230;it&#8217;s hardly long enough to develop all but the most simple functionality.  In the absence of a specification, database schemas are an ever-changing beast.  In most data-driven applications, the database schema is comparable to the foundations of a building.  The foundations are not something you want to change half way through the development.  Granted, clever people have written applications with dynamic database schemas&#8230;but they weren&#8217;t written in two weeks, or part thereof. </p>
<p><img src="http://www.craigmurphy.com/blog/wp-content/uploads/2010/06/userstory.jpg"  style='float:right'"/>After the database design, there&#8217;s the user interface.  Yes, it is easy to drop a button on a form!  What&#8217;s not so easy is what that button does when you click on it.  Anything beyond MessageBox.Show(&#8220;Hello, world!&#8221;); is where the time is spent.  I&#8217;m grateful to have seen multi-page specifications for the action behind a single button &#8211; if you can find somebody willing to invest the time and effort in writing such detail, the payoff is amazing.  However, such people are few and far between.  In today&#8217;s day and age, agile is where it&#8217;s at and <a href="http://en.wikipedia.org/wiki/User_story">user stories</a> are King.  Ultimately, it&#8217;s an emotive topic and one that I will not debate here (although you are free to discuss in the comments) &#8211; I don&#8217;t mind <strong>how</strong> you capture requirements, as long as you do.  </p>
<p><img src="http://www.craigmurphy.com/blog/wp-content/uploads/2010/06/handshake.png"  style='float:left'"/>Software developers struggle to work with &#8220;what&#8217;s in your head today&#8221;, knowing from experience that it will change tomorrow.  Even in the agile world, there has to be an element of commitment: if you change your mind day after day, you&#8217;ll get a reputation and folks will end up using baseball bats to extract requirements.  That&#8217;s not a good look, trust me on that.  Oh, and don&#8217;t take the picture too literally: don&#8217;t do things on a handshake, that doesn&#8217;t work either: put something in writing, a contract, something that sets the scene and defines the lay of the land.  </p>
<p><img src="http://www.craigmurphy.com/blog/wp-content/uploads/2010/06/pit.png"  style='float:right'"/><strong>Requirements: however you document them &#8211; they are the light at the end of the tunnel for you and for the developer / development team.</strong>  If your developer / development team ask you for &#8220;better requirements&#8221; very early in the project (or, shoot, even at the very start of the project), don&#8217;t dismiss it.  Listen to them, they probably have a point.  They are the folks who&#8217;ll be writing the software and they are the folks who&#8217;ll struggle to prepare a deliverable based on incomplete or inaccurate scribbles on whiteboard or sheets of paper.  </p>
<p><strong>Requirements: abuse them at your peril.</strong>  In the absence of requirements, prepare yourself for a bottom-less pit that will consume time, money, other potential projects/opportunities and the morale of your development team.</p>
<p><strong>Considered Reading</strong><br />
<iframe src="http://rcm-uk.amazon.co.uk/e/cm?t=craigmurphyco-21&#038;o=2&#038;p=8&#038;l=as1&#038;asins=0321205685&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-uk.amazon.co.uk/e/cm?t=craigmurphyco-21&#038;o=2&#038;p=8&#038;l=as1&#038;asins=0131479415&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-uk.amazon.co.uk/e/cm?t=craigmurphyco-21&#038;o=2&#038;p=8&#038;l=as1&#038;asins=0201703122&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></p>
<p><iframe src="http://rcm-uk.amazon.co.uk/e/cm?t=craigmurphyco-21&#038;o=2&#038;p=8&#038;l=as1&#038;asins=0321150783&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-uk.amazon.co.uk/e/cm?t=craigmurphyco-21&#038;o=2&#038;p=8&#038;l=as1&#038;asins=0321437381&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-uk.amazon.co.uk/e/cm?t=craigmurphyco-21&#038;o=2&#038;p=8&#038;l=as1&#038;asins=0321605780&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.craigmurphy.com/blog/?feed=rss2&#038;p=1695</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>PM#11 &#8211; Management By Shouting Loudest (MBSL)</title>
		<link>http://www.craigmurphy.com/blog/?p=821</link>
		<comments>http://www.craigmurphy.com/blog/?p=821#comments</comments>
		<pubDate>Sat, 26 Feb 2011 12:45:23 +0000</pubDate>
		<dc:creator>Craig Murphy</dc:creator>
				<category><![CDATA[PM#]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[loudest]]></category>
		<category><![CDATA[MBSL]]></category>
		<category><![CDATA[shout]]></category>
		<category><![CDATA[shouting]]></category>

		<guid isPermaLink="false">http://www.craigmurphy.com/blog/?p=821</guid>
		<description><![CDATA[[Originally drafted in 2008, published 2011 with minor modifications] Via http://mysite.verizon.net/charliez/murphy.htm Swipple&#8217;s Rule of Order He who shouts loudest has the floor. He who does shout loudest and takes the floor, often fails to realise that there may well be other people who can&#8217;t or won&#8217;t shout louder. Thus we find ourselves in a position [...]]]></description>
			<content:encoded><![CDATA[<p><em>[Originally drafted in 2008, published 2011 with minor modifications]</em></p>
<p>Via <a href="http://mysite.verizon.net/charliez/murphy.htm">http://mysite.verizon.net/charliez/murphy.htm</a></p>
<blockquote><p><strong>Swipple&#8217;s Rule of Order</strong><br />
He who shouts loudest has the floor. </p></blockquote>
<p>He who does shout loudest and takes the floor, often fails to realise that there may well be other people who can&#8217;t or won&#8217;t shout louder.  Thus we find ourselves in a position whereby other folks&#8217; opinions are either not heard or become of secondary value: there is a huge <em>lost opportunity</em>.  It&#8217;s a lost opportunity because those folks whose ideas and opinions that are not heard, may well be better than those offered by the people who shout the loudest.  Shouting the loudest may also be referred to as Management By Shouting Loudest (MBSL).</p>
<p>Similarly, he who shouts loudest may believe that their contribution or their requirements should take priority over those contributions suggested by others.  Where prioritisation is assumed, one needs to consider the knock-on effect &#8211; whenever something becomes your top priority, something has to give.  A lack of warning or preparation on the part of others means we suddenly have an emergency to deal with.  It&#8217;s also about respecting folks&#8217; schedules &#8211; folks in IT don&#8217;t sit at our desks twiddling our thumbs waiting for your emergency to happen (a common misconception that affects the IT industry on a large scale).  </p>
<p>If you do succumb to accepting a task from somebody who shouts the loudest, think about the impact it has on your current schedule.  What is being sacrificed?  What is going to take longer to complete?  Apart from yourself, who are you letting down as a result of accepting the MBSL task?</p>
<p>It&#8217;s no wonder that &#8220;he who shouts loudest&#8221; is a very old trick and one that is still in use today.  Watch out for it, try to curb its use by catching it early: try and coach the person doing the shouting into adopting a more democratic approach.  Look out for lost opportunity moments, capture those, give them air time &#8211; you may be surprised how much innovation is lost by accepting the MBSL way.</p>
<p><strong>In this series:</strong><br />
<a href="http://www.craigmurphy.com/blog/?p=108">PM#10 – The truth is best…admit it…</a><br />
<a href="http://www.craigmurphy.com/blog/?p=106">PM#9 – Avoid duplication of effort</a><br />
<a href="http://www.craigmurphy.com/blog/?p=77">PM#8 – Multi-tasking is evil</a><br />
<a href="http://www.craigmurphy.com/blog/?p=81">PM#7 – High workload means lower productivity…</a><br />
<a href="http://www.craigmurphy.com/blog/?p=74">PM#6 – You were right and I was wrong</a><br />
<a href="http://www.craigmurphy.com/blog/?p=73">PM#5 &#8211; Whose schedule is it anyway?</a><br />
<a href="http://www.craigmurphy.com/blog/?p=72">PM#4 &#8211; Start it…finish it</a><br />
<a href="http://www.craigmurphy.com/blog/?p=71">PM#3 &#8211; Use e-mail properly</a><br />
<a href="http://www.craigmurphy.com/blog/?p=67">PM#2 &#8211; Focus on the project</a><br />
<a href="http://www.craigmurphy.com/blog/?p=64">PM#1 &#8211; decision making</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.craigmurphy.com/blog/?feed=rss2&#038;p=821</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>The Sign of Stupidity [was a blog entry draft]</title>
		<link>http://www.craigmurphy.com/blog/?p=514</link>
		<comments>http://www.craigmurphy.com/blog/?p=514#comments</comments>
		<pubDate>Fri, 25 Feb 2011 21:44:47 +0000</pubDate>
		<dc:creator>Craig Murphy</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.craigmurphy.com/blog/?p=514</guid>
		<description><![CDATA[Way back in 2004 I wrote about the Sign Of Stupidity, here and here. Here&#8217;s Your Sign!]]></description>
			<content:encoded><![CDATA[<p>Way back in 2004 I wrote about the Sign Of Stupidity, <a href="http://www.craigmurphy.com/blog/?p=26">here</a> and <a href="http://www.craigmurphy.com/blog/?p=30">here</a>.</p>
<p><a href="http://www.amazon.co.uk/gp/product/1401602347?ie=UTF8&#038;tag=craigmurphyco-21&#038;linkCode=as2&#038;camp=1634&#038;creative=6738&#038;creativeASIN=1401602347">Here&#8217;s Your Sign!</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=craigmurphyco-21&#038;l=as2&#038;o=2&#038;a=1401602347" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></p>
<p><iframe src="http://rcm-uk.amazon.co.uk/e/cm?t=craigmurphyco-21&#038;o=2&#038;p=8&#038;l=as1&#038;asins=1401602347&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.craigmurphy.com/blog/?feed=rss2&#038;p=514</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Job: immediate start, Fife: .NET 4, VB.NET / WebForms &#8211; Go live opportunity!</title>
		<link>http://www.craigmurphy.com/blog/?p=1860</link>
		<comments>http://www.craigmurphy.com/blog/?p=1860#comments</comments>
		<pubDate>Tue, 25 Jan 2011 08:53:42 +0000</pubDate>
		<dc:creator>Craig Murphy</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Jobs]]></category>

		<guid isPermaLink="false">http://www.craigmurphy.com/blog/?p=1860</guid>
		<description><![CDATA[Via Twitter, I have been made aware of a software development opening with a firm in Fife. They have been working on an application that is very close to completion and thus go live. They are seeking a VB.NET / WebForms developer to take this .NET 4 project through to completion. This is a great [...]]]></description>
			<content:encoded><![CDATA[<p>Via <a href="http://twitter.com/leggetter/status/29560243369279490">Twitter</a>, I have been made aware of a software development opening with a firm in Fife.  They have been working on an application that is very close to completion and thus go live.  They are seeking a <strong>VB.NET / WebForms developer</strong> to take this <strong>.NET 4</strong> project through to completion.  This is a great opportunity to establish a relationship with an exciting and growing company.</p>
<p>If you have immediate availability (and are ideally based in Fife!), please get in touch with either <a href="http://twitter.com/leggetter">Phil via Twitter</a> or myself (my e-mail address is at the top right hand side of this page) and we&#8217;ll put you in touch!</p>
<p><em>Actual (real) developers only please, no agencies.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.craigmurphy.com/blog/?feed=rss2&#038;p=1860</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Job: Victoria, London &#8211; FT &#8211; Senior/Experienced Middle Tier Developer C# .NET</title>
		<link>http://www.craigmurphy.com/blog/?p=1853</link>
		<comments>http://www.craigmurphy.com/blog/?p=1853#comments</comments>
		<pubDate>Wed, 19 Jan 2011 23:41:12 +0000</pubDate>
		<dc:creator>Craig Murphy</dc:creator>
				<category><![CDATA[Jobs]]></category>

		<guid isPermaLink="false">http://www.craigmurphy.com/blog/?p=1853</guid>
		<description><![CDATA[Position Senior / Experienced Middle Tier Developer, Full Time, immediate start Overview The UK’s leading online marketing company are currently recruiting for a (primarily) web based senior .Net developer to work within our social media development team. The roll offers an exciting opportunity to integrate into our existing development team, working on both greenfield projects [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Position</strong><br />
Senior / Experienced Middle Tier Developer, Full Time, immediate start</p>
<p><strong>Overview</strong><br />
The UK’s leading online marketing company are currently recruiting for a (primarily) <strong>web based senior .Net developer</strong> to work within our social media development team.</p>
<p>The roll offers an exciting opportunity to integrate into our existing development team, working on both greenfield projects and integrating social media features to our existing key products.</p>
<p>We work in a fast paced, exciting and friendly environment, where you will have a valued constructive input and be able to see an immediate effect from the work you do. We are continuously pushing our technical boundaries, keeping up to date with the latest technologies and using any appropriate frameworks to our advantage.</p>
<p>You will be working within a well structured, ‘loosely’ agile development environment, within a team of developers who have a serious passion for their work.</p>
<p>The successful candidate will need to have a strong skill set spanning all stages of the software development &#038; maintenance lifecycle, with a particular flare for extracting, understanding and delivering business functionalities based on requirements from internal teams.</p>
<p><strong>Key responsibilities: </strong></p>
<ul>
<li>Take a technical lead role within a team and responsibility for the technical quality of the products produced.</li>
<li>Producing effective coded solutions to business requirements.</li>
<li>Work closely with the development manager, project manager and other internal teams to understand &#038; deliver business functionalities which drive our core products.</li>
<li>Thorough analysis for a clear understanding of business requirements, making sure that test plans are effectively applied to all new features. </li>
<li>Ensure that each project adheres to our high standards of maintainability, stability &#038; performance.</li>
<li>Quick turn-around and intelligent phasing of features to provide benefits and results to the business as quickly as possible.</li>
</ul>
<p>You will need to have a proven track record in working with high traffic volume Microsoft based web solutions and <a href="http://en.wikipedia.org/wiki/Solid_(object-oriented_design)">SOLID design principles</a>.</p>
<p><strong>Essential for this role:</strong></p>
<ul>
<li>Experience in high traffic B2B web platforms</li>
<li>ASP.Net, C# 3.0 &#038; .Net 4.0</li>
<li>ORM</li>
<li>SQL Server 2005</li>
<li>XML</li>
<li>MVC 3.0</li>
<li>unit testing (inc. Mocking)</li>
<li>WCF</li>
</ul>
<p><strong>Desirables:</strong></p>
<ul>
<li>Social media API experience </li>
<li>GRAPH API</li>
<li>FBQL</li>
<li>OAuth</li>
<li>working in a load balanced environment</li>
<li>Distributed caching</li>
<li>Online Marketing experience</li>
<li>Continuous Integration</li>
<li>Design Patterns</li>
<li>Agile</li>
</ul>
<p>For more information please contact <a href="http://twitter.com/stack72">Paul Stack</a></p>
<p><img src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/01/stack.png"  /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.craigmurphy.com/blog/?feed=rss2&#038;p=1853</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Santander: a bunch of stupid bankers, you suck</title>
		<link>http://www.craigmurphy.com/blog/?p=1837</link>
		<comments>http://www.craigmurphy.com/blog/?p=1837#comments</comments>
		<pubDate>Sun, 16 Jan 2011 23:01:33 +0000</pubDate>
		<dc:creator>Craig Murphy</dc:creator>
				<category><![CDATA[Rants]]></category>
		<category><![CDATA[complaint]]></category>
		<category><![CDATA[evans]]></category>
		<category><![CDATA[idiots]]></category>
		<category><![CDATA[late payment fee]]></category>
		<category><![CDATA[Santander]]></category>
		<category><![CDATA[Santander Bank]]></category>
		<category><![CDATA[store card]]></category>
		<category><![CDATA[suck]]></category>
		<category><![CDATA[sucks]]></category>

		<guid isPermaLink="false">http://www.craigmurphy.com/blog/?p=1837</guid>
		<description><![CDATA[12.05.2011 &#8211; update After being contacted by BBC Watchdog, Santander telephoned my wife to offer an apology and £100 (cheque) compensation. They accepted that things could have been done better and the complaint handled in a shorter time-frame. Whilst we had pretty much accepted an earlier offer of £20 credited to the account card, the [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>12.05.2011 &#8211; update<br />
After being contacted by <a href="http://www.bbc.co.uk/blogs/watchdog/2011/05/santander_loyalty.html">BBC Watchdog</a>, Santander telephoned my wife to offer an apology and £100 (cheque) compensation.  They accepted that things could have been done better and the complaint handled in a shorter time-frame.  Whilst we had pretty much accepted an earlier offer of £20 credited to the account card, the apology and the extra £80 were in line with my request in the a letter of complaint to Santander in January 2011.  Santander&#8217;s apology has been accepted.</p></blockquote>
<p>Santander bank has made huge inroads into the UK finance sector.  Abbey National, for example, suddenly became Santander&#8230;and from what I&#8217;ve heard from at least one customer, they&#8217;re not doing too good a job of it.  Similarly, I&#8217;ve read an awful lot about how Santander are at the <a href="http://www.ft.com/cms/s/0/9478e1f8-b5fe-11df-a048-00144feabdc0.html">top of list of banks that consumers complain</a> about.  As you might expect, given the title of this blog post, I am about to &#8220;add one&#8221; to that pile of complaints.</p>
<p>Neither my wife or I have bank accounts with Santander, however my wife does/did have an <a href="http://www.evans.co.uk">Evans</a> store card.  In their &#8220;great buy up&#8221;, Santander acquired the Evans store card business along with Asda, BHS, Burton, Dorothy Perkins, Topshop, Miss Selfridge, Wallis and Outfit.  It&#8217;s likely that they&#8217;ve got the store cards for those outlets too.  Some evidence of this can be found over at Martin Lewis&#8217; <a href="http://www.moneysavingexpert.com/">Money Saving Expert</a> forums, <a href="http://forums.moneysavingexpert.com/showthread.php?t=2888140">here</a> and <a href="http://forum.moneysavingexpert.com/showthread.php?p=39746718">here</a>.  And they&#8217;re not getting any better, as <a href="http://www.moneysavingexpert.com/news/banking/2011/01/santander-customer-data-still-going-astray">this post</a> suggests.</p>
<p>Anyway, on to the problem that Santander created on my wife&#8217;s Evans card&#8230;and thus a problem that I have to work to solve.</p>
<p>During November 2010 my wife received her Evans card statement.  It showed the previous balance and a payment received covering that same balance.  It also showed a Late Payment Fee of £12.  Naturally my wife was concerned and telephoned Nikita at Santander &#8211; Nikita assured my wife that it was their error and the £12 would be refunded.  Here&#8217;s a copy of the statement:</p>
<p><img src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/01/santander_are_baboons_2.png"  /></p>
<p>Indeed, Nikita&#8217;s information was confirmed by Santander&#8217;s Tim Woods (Head of Santander Contact Centers) when he wrote to my wife on the 23rd of November 2010:</p>
<p><img src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/01/santander_are_idiots_1.png"  /></p>
<p>Sounded good.  Sounded like Santander might have been proactive and sorted it out themselves.  Great.  <a href="http://uk.linkedin.com/pub/tim-woods/6/32/b05">Mr Woods</a> works for Geoban &#8211; &#8220;Geoban is an internal company to Banco Santander, providing Operational Excellence to the Group Companies&#8221;.  Operational Excellence, can&#8217;t get better than that, we&#8217;re in good hands.</p>
<p>At the end of November another Evans card statement arrived.  It showed that the £12 late payment fee had been refunded as promised.  However, it also showed another late payment fee had been applied.  My wife telephoned Santander on the 13th of December and spoke with Shiraz.  Shiraz did exactly what Nikita did, assured my wife that it was their error and the £12 would be refunded.  Here a copy of that statement:</p>
<p><img src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/01/santander_are_gormless_3.png"  /></p>
<p>Further communication from Santander resulted in my wife asking Maddie on the 31st of December 2010 to close the account.  Maddie assured my wife that the £12 late payment fee and this new amount of £4 were both Santander errors and that she would sort things out.  Santander&#8217;s Andrew Hall wrote to my wife.  <a href="http://uk.linkedin.com/pub/andrew-hall/2/6a6/890">Mr Hall</a> is the Head of Collections Contact Centre at Santander Cards UK, he&#8217;s &#8220;a highly motivated, results focused Senior Manager with extensive Consumer Finance experience. Proven skill set in people management and process and performance improvement within Collections and Bad Debt functions&#8221;.  Mr Hall, you might be highly motivated, but my wife is highly demotivated&#8230;I think you could do better, don&#8217;t you?</p>
<p><img src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/01/santander_are_bankers_5.png"  /></p>
<p>In between Christmas and New Year, things took a turn for the worse.  Santander had the cheek to send out a Notice of Sums in Arrears letter.  Of course, my wife was upset enough at the first two mistakes made by Santander, this pushed her over the edge, there were tears.  How can a bank be allowed to do this?  And for the measly sum of £4, created by their own error.  Here&#8217;s that letter:</p>
<p><img src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/01/santander_are_clueless_4.png"  /></p>
<p>However, early in the New Year, we received an automated telephone call at 0820 on the 2nd of January 2011 reminding us of the &#8220;debt&#8221;.  I myself spoke to some Santander guy called Kirt, who said &#8220;I can&#8217;t do nothing because of the Data Protection Act&#8221; in what I believe to be a Liverpool accent&#8230;double negatives, they suck too.  So clearly Maddie hadn&#8217;t closed the account as requested a few days earlier.  Kirt told me that the &#8220;telephone system&#8221; can take a few days to update itself and that we weren&#8217;t to worry about it.  Incredible &#8211; the 2nd of January was a Sunday.  What sort of company telephones its customers at that sort of time on a Sunday?</p>
<p>It seems that the Late Payment Fee is something that just gets refunded and reapplied.  It won&#8217;t go away until somebody at Santander pulls their finger(s) out and accepts that there is a problem they need to sort out.</p>
<p><img src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/01/santander_are_assholes_6.png"  /></p>
<p>All of the telephone calls that my wife made to Santander were to their 0871 number&#8230;at a cost of 10p per minute.  After a little bit of <a href="http://www.saynoto0870.com/search.php">searching</a>, it turns out that 020 8181 0000 should also work, as will 0113 280 7080.  I&#8217;ll be looking to recover the cost of calls from Santander -they can&#8217;t expect us to cover the cost for their mistakes.</p>
<p>I was planning to switch my current account over to Santander in order to take advantage of the £100 switching fee.  This made sense as my current account is with a Royal Bank of Scotland (RBS) branch in England.  Santander are taking over many of the English branches of RBS &#8211; I figured I would switch, collect the £100 and be in the same boat.  However, this incident has taught me a lot about Santander, they&#8217;re not a bank I want anything to do with.  As such, I have instigated an intra-bank switch, from my RBS branch in England, to one north of the border here in Scotland.</p>
<p>What&#8217;s next?  Well, I hope that this blog post kicks Santander where it hurts &#8211; their stupidity and inability to rectify a simple self-made error frankly astounds me.  If we make a tiny error, perhaps by going overdrawn by a single penny, the banks are the first to hit us hard.  I&#8217;ve already had a short e-mail exchange with &#8216;CustomerServices@santander.co.uk&#8217;, who rather amazingly said &#8220;we don&#8217;t deal with the cards&#8221;!  So now I&#8217;ve included &#8216;complaint.info@financial-ombudsman.org.uk&#8217; in the loop.  </p>
<p>Santander has most likely cost Evans my wife&#8217;s custom.  It might not have been much, however in today&#8217;s climate, all custom is good.  It seems that if Santander are to improve, it will take the likes of Evans, etc. to tell them.  However, the damage has been done&#8230;</p>
<p>Moral of this post: avoid Santander bank.  If your RBS account is with a branch that is about to be taken over by Santander, start thinking about switching &#8211; use <a href="http://www.uswitch.com/">uSwitch</a> to help you if necessary.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.craigmurphy.com/blog/?feed=rss2&#038;p=1837</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>Survey: 3-D Secure, Verified by Visa, MasterCard SecureCode</title>
		<link>http://www.craigmurphy.com/blog/?p=1834</link>
		<comments>http://www.craigmurphy.com/blog/?p=1834#comments</comments>
		<pubDate>Tue, 11 Jan 2011 21:55:59 +0000</pubDate>
		<dc:creator>Craig Murphy</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[3-D Secure]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[Anthony Bouch]]></category>
		<category><![CDATA[credit card]]></category>
		<category><![CDATA[credit card security]]></category>
		<category><![CDATA[MasterCard SecureCode]]></category>
		<category><![CDATA[online shopping]]></category>
		<category><![CDATA[plastic]]></category>
		<category><![CDATA[survey]]></category>
		<category><![CDATA[Verified by Visa]]></category>

		<guid isPermaLink="false">http://www.craigmurphy.com/blog/?p=1834</guid>
		<description><![CDATA[I would like to draw your attention to a &#8220;5 click&#8221; survey that will help Anthony Bouch progress with his MSc in Information Security. You would be doing Anthony a huge favour by completing his anonymous survey! It&#8217;s a very short survey, you don&#8217;t even have to enter any text if you don&#8217;t want to, [...]]]></description>
			<content:encoded><![CDATA[<p>I would like to draw your attention to a &#8220;5 click&#8221; <a href="http://www.58bits.com/survey">survey</a> that will help <a href="http://twitter.com/anthonybouch">Anthony Bouch</a> progress with his <a href="http://www.58bits.com/otherblog/aboutme.aspx">MSc in Information Security</a>.  You would be doing Anthony a huge favour by completing his anonymous survey!</p>
<p>It&#8217;s a very short survey, you don&#8217;t even have to enter any text if you don&#8217;t want to, here&#8217;s a snapshot of it:</p>
<p><a href="http://www.58bits.com/survey"><img src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/01/survey.png"  /></a></p>
<p>You could use that last question to mention the fact that Amazon currently does not implement 3-D Secure, Verified by Visa or MasterCard SecureCode and that you believe they should!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.craigmurphy.com/blog/?feed=rss2&#038;p=1834</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>It&#8217;s one thing clearing your tracks, but make sure you clear out index.dat too</title>
		<link>http://www.craigmurphy.com/blog/?p=1830</link>
		<comments>http://www.craigmurphy.com/blog/?p=1830#comments</comments>
		<pubDate>Mon, 10 Jan 2011 07:55:03 +0000</pubDate>
		<dc:creator>Craig Murphy</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[history]]></category>
		<category><![CDATA[index.dat]]></category>
		<category><![CDATA[virus]]></category>

		<guid isPermaLink="false">http://www.craigmurphy.com/blog/?p=1830</guid>
		<description><![CDATA[Readers who are sensitive to shocking content should stop reading now – the following screenshot contains text that might offend! I am asked on a rather regular basis to &#8220;fix&#8221; laptops and desktop. Typically they&#8217;ve started running slower or have started to automatically run applications that perform untoward actions. &#8220;Internet Security 20xx&#8221;-type of applications seem [...]]]></description>
			<content:encoded><![CDATA[<p><em><strong>Readers who are sensitive to shocking content should stop reading now – the following screenshot contains text that might offend!</strong></em></p>
<p>I am asked on a rather regular basis to &#8220;fix&#8221; laptops and desktop.  Typically they&#8217;ve started running slower or have started to automatically run applications that perform untoward actions.  &#8220;Internet Security 20xx&#8221;-type of <a href="http://www.craigmurphy.com/blog/?p=974">applications</a> seem to be more common; certainly the last 5-6 laptops that I&#8217;ve been asked to fix have had some variation installed.  If you&#8217;re running good anti-virus software, you don&#8217;t need anything else. If you&#8217;re browsing the web and are suddenly told &#8220;your computer is infected, click here to fix it&#8221;&#8230;it&#8217;s <em>probably </em>a hoax.  </p>
<p>Today, I was invited to deal with a blue screen of death on a friend&#8217;s laptop.  On the surface, it looked like it was a driver issue stemming from Nero.  However further inspection revealed a sordid history!  </p>
<p>I use <a href="http://www.ccleaner.com/">CCleaner</a> as part of my regular Windows maintenance.  It&#8217;s a great application that will remove unwanted files from your PC, without actually breaking it.  Fewer files on your hard drive mean that anti-virus, malware scanners, etc. can run a little faster &#8211; they&#8217;ve got fewer files to scan.  </p>
<p>By default, CCleaner will clear any temporary internet files left behind by your browser of choice.  My friend was using Internet Explorer&#8230;whilst the temporary files had been cleaned up, the index.dat file had not.  If you are using Windows 7, the index.dat file can be found here: <strong>C:\Users\<>\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5</strong> Essentially, it contains a list of the sites you&#8217;ve visited, even if you&#8217;ve cleared out your temporary internet files.</p>
<p>Upon inspection of the index.dat file, it was soon clear why the laptop was experiencing problems!</p>
<p><img src="http://www.craigmurphy.com/blog/wp-content/uploads/2011/01/sites.png"  /></p>
<p>Busted.  Next time, my friend will remember to check the index.dat box in CCleaner!  I should note that this isn&#8217;t the most offensive list of sites that I&#8217;ve discovered whilst cleaning up a PC &#8211; I couldn&#8217;t bring myself to take a screenshot from <em>that</em> PC!</p>
<p><strong>Further reading:</strong></p>
<p><a href="http://www.craigmurphy.com/blog/?p=842">Browser history can help determine rebuild vs clean up, but can be revealing…</a><br />
<a href="http://www.craigmurphy.com/blog/?p=844">“It wasnae me” – browser history, real world example 2</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.craigmurphy.com/blog/?feed=rss2&#038;p=1830</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>DDD9 &#8211; Agenda and Session Abstracts #DDD9</title>
		<link>http://www.craigmurphy.com/blog/?p=1820</link>
		<comments>http://www.craigmurphy.com/blog/?p=1820#comments</comments>
		<pubDate>Tue, 04 Jan 2011 22:13:34 +0000</pubDate>
		<dc:creator>Craig Murphy</dc:creator>
				<category><![CDATA[Developer Events]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Andy Gibson]]></category>
		<category><![CDATA[Chris Canal]]></category>
		<category><![CDATA[Colin Gemmell]]></category>
		<category><![CDATA[Craig Nicol]]></category>
		<category><![CDATA[Dan Maharry]]></category>
		<category><![CDATA[David Burns]]></category>
		<category><![CDATA[DDD]]></category>
		<category><![CDATA[ddd9]]></category>
		<category><![CDATA[Developer Event]]></category>
		<category><![CDATA[DeveloperDeveloperDeveloper]]></category>
		<category><![CDATA[Gary Short]]></category>
		<category><![CDATA[George Adamson]]></category>
		<category><![CDATA[Guy Smith-Ferrier]]></category>
		<category><![CDATA[Helen Emerson]]></category>
		<category><![CDATA[Ian Cooper]]></category>
		<category><![CDATA[James Boother]]></category>
		<category><![CDATA[John Price]]></category>
		<category><![CDATA[Kris Athi]]></category>
		<category><![CDATA[Liam Westley]]></category>
		<category><![CDATA[Mark Rendle]]></category>
		<category><![CDATA[Mike Hadlow]]></category>
		<category><![CDATA[Nathan Gloyn]]></category>
		<category><![CDATA[Oliver Sturm]]></category>
		<category><![CDATA[Paul Stack]]></category>
		<category><![CDATA[Phil Collins]]></category>
		<category><![CDATA[Phillip Trelford]]></category>
		<category><![CDATA[Reading]]></category>
		<category><![CDATA[Rob Ashton]]></category>
		<category><![CDATA[Sam Bourton]]></category>
		<category><![CDATA[TVP]]></category>
		<category><![CDATA[UK]]></category>

		<guid isPermaLink="false">http://www.craigmurphy.com/blog/?p=1820</guid>
		<description><![CDATA[DeveloperDeveloperDeveloper 9 is being held on the 29th of January 2011 at Microsoft&#8217;s Thames Valley Park campus in Reading, UK. Registrations filled up within 12 minutes &#8211; I think the only way we could better that is by throwing more hardware at it. Thanks to everybody who submitted sessions, voted and took part in the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://developerdeveloperdeveloper.com/ddd9/Schedule.aspx">DeveloperDeveloperDeveloper 9</a> is being held on the 29th of January 2011 at Microsoft&#8217;s Thames Valley Park campus in Reading, UK.  Registrations filled up within 12 minutes &#8211; I think the only way we could better that is by throwing more hardware at it.  </p>
<p>Thanks to everybody who submitted sessions, voted and took part in the registration process.  It is worth getting on the waitlist as it&#8217;s actively managed &#8211; folks that cancel free up their place for others, there&#8217;s a queuing system in place so you can keep track of your position.</p>
<p>I am pleased to see a mix of new and old (as in spoken at previous DDD events!) speakers!  DDD is all about community, it&#8217;s about sharing your learning experiences with your peers.  New speakers are the life-blood not just of DDD events, but of user groups.  DDD audiences are tend to be forgiving, new speakers are given the break they need to hone their skills and go on to delivery that second killer presentation!</p>
<p>There are some great topics, including a some from respected authors.  A few of the sessions have been run elsewhere, which tells us how good the speaker is and how topical the session is too.</p>
<p>There will be two guests making appearances: <a href="http://twitter.com/#!/blowdart">Barry Dorrans</a> (author of <a href="https://www.amazon.co.uk/dp/0470743654?tag=craigmurphyco-21&#038;camp=1406&#038;creative=6394&#038;linkCode=as1&#038;creativeASIN=0470743654&#038;adid=0FT5CRNRDAK7811YCSNC&#038;">Beginning ASP.NET Security</a>) and <a href="http://twitter.com/#!/jonskeet">Jon Skeet</a> (author of <a href="http://www.amazon.co.uk/gp/product/1933988363?ie=UTF8&#038;tag=craigmurphyco-21&#038;linkCode=xm2&#038;camp=1634&#038;creativeASIN=1933988363">C# In Depth</a> and <a href="https://www.amazon.co.uk/dp/1933988924?tag=craigmurphyco-21&#038;camp=1406&#038;creative=6394&#038;linkCode=as1&#038;creativeASIN=1933988924&#038;adid=04F0282Q0J78ECS8NGE1&#038;">Real World Functional Programming</a>)</p>
<p>In the interests of saving the planet and keeping costs down, it&#8217;s unlikely that we&#8217;ll have copies of the session abstracts available.  If you need to, please print this information and take it with you to DDD9!</p>
<p>I will print the abstracts out and will stick copies on the doors to the respective rooms.</p>
<p>&#8211;</p>
<p><strong>09:30 &#8211; 10:30</strong><br />
<strong>Go Asynchronous With C# 5.0 &#8211; <a href="http://twitter.com/westleyl">Liam Westley</a></strong><br />
Anders Hejlsberg announced the Visual Studio Async CTP at PDC 2010.</p>
<p>This CTP means you don’t need to create callback functions anymore and can write code in the same way as if it were synchronous. The compiler will do all of the heavy lifting for you.</p>
<p>  public async void GetDDD9Sessions()<br />
  {<br />
     var ddd = &#8220;http://ddd.com/ddd9/Sessions.aspx&#8221;;</p>
<p>     var sessions = await new WebClient().GetSessionsAsync(new Uri(ddd));<br />
  }</p>
<p>In this session we&#8217;ll see how the GetDDD9Sessions method works and why it allows you to make a pot of tea while it runs.</p>
<p>More info on the Visual Studio Async CTP, including download details at:<br />
<a href="http://blogs.msdn.com/b/csharpfaq/archive/2010/10/28/async.aspx">http://blogs.msdn.com/b/csharpfaq/archive/2010/10/28/async.aspx</a></p>
<p><strong>.Net Collections Deep Dive &#8211; <a href="http://twitter.com/#!/garyshort">Gary Short</a></strong><br />
The .Net framework provides a rich set of collection classes, but how much do you really know about them? In this presentation we&#8217;ll take a deep dive into the .Net 4.0 collection classes and examine which are best for what scenario and why. By the end of the presentation, you&#8217;ll no longer be happy just reaching for the same old collection you always had before. Instead, you&#8217;ll be armed with the information required to pick the best collection for your needs.</p>
<p><strong>Functional Programming in C# &#8211; <a href="http://twitter.com/olivers">Oliver Sturm</a></strong><br />
C# introduced a number of language features that finally make it very easy to employ a functional style of programming. However, from the perspective of an imperative programmer, there are lots of questions surrounding functional programming. Why would I want to do it at all? Should I drop all state information in my apps? What useful functional patterns are applicable to C#? This session uses many practical examples and some theory to answer these questions, and it requires a good understanding of C# 3.0 language features.</p>
<p><strong>AJAX with jQuery &#8211; <a href="http://twitter.com/georgeadamson">George Adamson</a></strong><br />
Getting started on AJAX with jQuery:<br />
We&#8217;ll hurtle straight into using jQuery to handle your AJAX; Rummage about in code, &#8216;hijaxing&#8217; links and doing fashionable things like Progressive Enhancement; JSON and JSONP; solutions to get around the &#8216;Same Domain Policy&#8217;. We&#8217;ll work through a bunch of examples to POST and GET data from various sources. If there&#8217;s time we&#8217;ll explore more of jQuery&#8217;s AJAX methods and events and maybe even look at live ajax event handling in large single-page apps.</p>
<p>George&#8217;s presentation style is entertaining and leaps along at quite a rate. (If you&#8217;ve attended George&#8217;s Get Going with JQuery session then you have an idea what you&#8217;re in for.) There will be a few minutes&#8217; refresher on jQuery basics then it&#8217;s non-stop AJAX. Some experience with JavaScript will help but if your world is C# and curly brackets then I&#8217;m sure you&#8217;ll be as happy as a pig in, er, shift+] </p>
<p><strong>10:40 &#8211; 11:40</strong><br />
<strong>Monads! What are they and why should I care? &#8211; <a href="http://twitter.com/mikehadlow">Mike Hadlow</a></strong><br />
Or: How to bend Linq syntax to your will.</p>
<p>These days, monads are the &#8220;celebrities of programming language theory&#8221;. But they also inspire fear in the hearts of lowly imperative programmers like myself. However they are a very useful and powerful abstraction and they pop up everywhere. C#&#8217;s Linq syntax is Monadic, for example. Having an understanding of Monads will give you the conceptual tools to greatly simplify many programming challenges, from dealing with nulls and managing state, to asynchronous programming and parsing. This talk will be mostly C#, but I will also be introducing a little F# and even some Haskell.</p>
<p><strong>Real World Application Development with NHibernate, FluentNHibernate and Castle Windsor &#8211; <a href="http://twitter.com/#!/chriscanal">Chris Canal</a></strong><br />
In this session we will look at how we can use a number of popular .Net OSS projects to develop a real world application. Based on production code, we will look at how using a combination of NHibernate, FluentNHibernate, Castle Windsor and a number of other OSS (AutoMapper, MvcContrib, FluentMvc) to reduce the friction of application development and remove a lot of infrastructural concerns. We will explore how we can leverage these tools to drive a convention based development experience and make it easier for ourselves and team mates to write applications and deliver what the client wants.</p>
<p><strong>CQRS, Fad or Future? &#8211; <a href="http://twitter.com/icooper">Ian Cooper</a></strong><br />
Command-Query-Responsibility-Seperation (CQRS) is the new &#8216;hotness&#8217; but beyond a desire to use the latest &#8216;fad&#8217; what might actually lead you to adopt this approach over a conventional layered architecture. We will look at the business drivers behind command and query separation as well as a technique known as event sourcing. We will also look at steps to begin moving your application to CQRS</p>
<p><strong>Rewriting software is the single worst mistake you can make &#8211; apparently &#8211; <a href="http://twitter.com/FatherFil">Phil Collins</a></strong><br />
Joel Spolsky once said that rewriting software from scratch is the single worst strategic mistake a software development company can ever make.[1] We all know of the Netscape story and the never-released v5.0. So as a developer how do you react when you&#8217;re faced with the fact that there is little other choice than do exactly what you&#8217;re told you should never do.</p>
<p>During this session I will describe how as a team we are managing to beat the odds and rewrite our main flagship product from a legacy platform into VB.net; as well as describing the decisions behind the choice of language, the choice of development methodology, how we built the project plan, how we learnt from our mistakes and our successes, how working with Bournemouth University and their study of our rewrite has helped us, and whether or not we still think it&#8217;s something you should never do.</p>
<p>[1] Joel Spolsky, Things You Should Never Do, Part I<br />
<a href="http://www.joelonsoftware.com/articles/fog0000000069.html">http://www.joelonsoftware.com/articles/fog0000000069.html</a></p>
<p><strong>12:00 &#8211; 13:00</strong><br />
<strong>A Primer to RavenDB &#8211; <a href="http://twitter.com/robashton">Rob Ashton</a></strong><br />
RavenDB is a relatively new document database written by Ayende Rahien as an open source .NET project.</p>
<p>This is quite exciting as it means a focus on being able to talk to a document database with your chosen .NET language and support for writing custom map/reduce functions in your chosen .NET language too.</p>
<p>This means up front queries written using familiar LINQ syntax, and the ability to write plug-ins for RavenDB in a familiar environment.</p>
<p>In this session, I aim to give an introduction as to what RavenDB is, how to use it, and give a brief comparison to the other popular NoSQL projects that have appeared on the .NET scene in recent times.</p>
<p><strong>Functional Alchemy: Tricks to keep your C# DRY &#8211; <a href="http://twitter.com/markrendle">Mark Rendle</a></strong><br />
C# 3.0 and LINQ have made anonymous delegates and closures a hot topic. C# 4.0 improves on them. But these &#8220;functional&#8221; features have applications beyond messing about with IEnumerable. In this session I&#8217;ll present 10 simple and not-so-simple uses of first-class functions to help cut down on repeated code and improve maintainability; hopefully you&#8217;ll discover a new and exciting way of approaching coding problems.</p>
<p>The main thrust of it is that F# is cool and groovy but there&#8217;s a lot of mileage in functional-style programming in C#, which people are using every day, so let&#8217;s look at some cool examples there.</p>
<p><strong>Learning from the HTML5 Boilerplate &#8211; <a href="http://twitter.com/hmobius">Dan Maharry</a></strong><br />
The best place to start your development is on solid foundations and in the web world, that means with a sound knowledge and understanding of HTML and script and those little browser quirks and tweaks which mean you can wrestle the best performance once server-side code has done its job. This session looks at the HTML5 Boilerplate project, the tips and tricks we can learn from it (cross-browser normalization, performance optimizations, even optional features like cross-domain Ajax and Flash) and suggests some additions we can add to it on the server-side. </p>
<p><strong>Writing Maintainable Tests for Selenium &#8211; <a href="http://twitter.com/#!/AutomatedTester">David Burns</a></strong><br />
Selenium is one of the most widely used testing frameworks in the world. It has great support for driving a wide range of browsers and writing tests for it is extremely easy. People with little to no Selenium experience can write/record tests with little to no effort. </p>
<p>It can be very easy to write brittle or hard to maintain tests &#8211; simple UI changes can require large amounts of work on the tests.</p>
<p>Imagine that you have 1000 tests and all your tests require you to login before completing a bit of work. </p>
<p>If someone on your team changes the ID of the username text box and all your tests will start failing. </p>
<p>Updating 1000 tests is going to be a lengthy, tedious process &#8211; something that you would want to avoid!</p>
<p>This talk will show how to create maintainable Selenium tests using the Page Object Model, with the goal of allowing even non-technical members of the team to be able to write new tests.</p>
<p><strong>14:00 &#8211; 15:00</strong><br />
<strong>What&#8217;s New In ASP.NET MVC 2.0 and 3.0 &#8211; <a href="http://twitter.com/ARGibson">Andy Gibson</a></strong><br />
ASP.NET MVC has been making waves over the past 2 years within the ASP.NET community and quite rightly so with features such as promoting separation of concerns, strongly typed views and a great routing system but it doesn&#8217;t stop there. ASP.NET MVC 2.0 is now publicly available and is also being shipped with Visual Studio 2010 and hot on its heels is version 3.0 which adds Microsoft&#8217;s new Razor view engine to the mix. But what new features have been brought to the table? What has changed? And most importantly, how will you be affected by upgrading from 1.0 or even 2.0? </p>
<p>This session will bring you up to speed with all the information you need to know delivered through slides and more interestingly, live demos. Topics covered include (but not limited to)<br />
- Razor<br />
- Model-Validator Providers<br />
- Optional URL Parameters<br />
- Template / HTML Helper improvements<br />
- Improved Dependency Injection / Inversion of Control integration<br />
- NuGet Package Manager<br />
- Additions and updates to MVC Attributes<br />
- Visual Studio integration improvements<br />
- Breaking changes from MVC 1.0/2.0<br />
- Pros and cons to MVC<br />
- To upgrade or not to upgrade (or simply, Advice)</p>
<p>We will look at features brought in by both v2.0 and v3.0 of the MVC framework and provides a good source of information for those looking to learn more or to upgrade existing projects.</p>
<p><strong>Is your code S.O.L.I.D ? &#8211; <a href="http://twitter.com/#!/nathangloyn">Nathan Gloyn</a></strong><br />
Everybody keeps on about SOLID priniciples but what are they? and why should you care?</p>
<p>In this session I&#8217;ll aim to walk through each prinicple telling you about that prinicple and examing why you should use it.</p>
<p>Once we&#8217;ve talked about the principle in theory we&#8217;ll look to how we can put it into practice.</p>
<p><strong>Behavioural Driven Development (BDD) with F# &#8211; <a href="http://twitter.com/ptrelford">Phillip Trelford</a></strong><br />
BDD is an Agile methodology that aims to get business and development folks collaborating.<br />
F# is the powerful new programming language from Microsoft bundled with Visual Studio 2010.<br />
Use both to test your .Net code for fun and profit!</p>
<p>Scenario: Deliver customer value<br />
 Given collobaration with customers to produce user stories and acceptance tests<br />
  And some awesome .Net code<br />
 When a BDD framework that executes plain text specifications like SpecFlow or TickSpec<br />
  And F# to write the tests<br />
 Then profit!</p>
<p>Writing tests with F# is a great way to learn the language, this talk will take you through common steps with live code examples.</p>
<p><strong>Computer, earl grey tea, hot &#8211; <a href="http://twitter.com/JohnnyJP">John Price</a></strong><br />
Ok, so this is a little more difficult to arrange with home automation, but controlling lights, heating, curtains and just about every other device in your house just by talking to it, is actually Science Fact. Take a tour around our automated house and see whats possible with a little effort. </p>
<p><strong>15:10 &#8211; 16:10</strong><br />
<strong>CSS is code, how do we avoid the usual code problems? &#8211; <a href="http://twitter.com/helephant">Helen Emerson</a></strong><br />
CSS has a lot of the same problems that application code has but none of the language features that help us keep out of trouble. Start writing anything complicated and you end up with problems like dependencies, cohesiveness and creating the right abstractions. It&#8217;s pretty easy to end up with CSS that is impossible to predict unless you understand it all. I&#8217;m going to tell the tale of my team&#8217;s journey to write CSS that is flexible, easy to understand and easy to change. </p>
<p><strong>From .NET to Rails, A Developer’s Story &#8211; <a href="http://twitter.com/colin_gemmell">Colin Gemmell</a></strong><br />
In May 2010 I changed jobs, leaving the land of .NET to the world of Ruby on Rails. In this talk I will go over what I found easy, hard or just completely misunderstood when starting with Ruby and Rails. While focusing on my experiences we will also look at the differences between .NET development and Ruby development. </p>
<p><strong>Expression Blend for WPF and Silverlight Developers- <a href="http://twitter.com/sambourton">Sam Bourton</a></strong><br />
Not many WPF/Silverlight developers are using Expression Blend yet; but those that are, couldn&#8217;t do without it&#8230;</p>
<p>In this fast-paced talk and demonstration I will be showing how to use Blend in your everyday design and development tasks to rapidly create visually engaging User Interfaces and controls, and dramatically increase your productivity in building WPF/Silverlight front-ends. </p>
<p>We will cover real-world practical tasks such as: How to use the Blend environment, access key functionality, and use the different types of controls; Create and manage Resources and resource dictionaries within Blend; Create, edit, and apply Styles and Control Templates to different controls; Bind controls to sample and runtime ViewModel data and Commands; Make your applications stand out with Animations, Visual States, Effects, Fluid Layouts, and Behaviors; and some random tips and techniques I&#8217;ve learnt along the way.</p>
<p>While the presentation is targeted at developers with WPF/Silverlight experience who have not yet gotten to grips with Blend, if you&#8217;re new to WPF/SL it will be a great introduction, and if you&#8217;re familiar with Blend already then hopefully you will pick up something new. </p>
<p><strong>Enforcing Code ‘Beauty’ With StyleCop &#8211; <a href="http://twitter.com/guysmithferrier">Guy Smith-Ferrier</a></strong><br />
n May 2008 Microsoft released StyleCop. StyleCop does for C# source code what FxCop does for assemblies – it applies ‘good practice’ rules to your source code. This means all those controversial code beauty issues like spaces, where to put curly braces, how and when to use blank lines and over 150 similar rules. This session gets you started using StyleCop, investigates a selection of rules, shows how to integrate StyleCop into Visual Studio and your build process and finally shows how to write your own custom rules. This is a low tech session on an essential tool that all C# developers should be using.</p>
<p><strong>16:20 &#8211; 17:20</strong><br />
<strong>Beginners Guide To Continuous Integration &#8211; <a href="http://twitter.com/stack72">Paul Stack</a></strong><br />
As developers who work in a team, we need to continually make sure that code we check in to source control works integrates with our existing code. In order to do this we need to get feedback from user check ins. If we don&#8217;t test code integration how do we know that our code still works?<br />
CI processes and CI tools can help us to do this in an effective way. In this session I will cover </p>
<ul>
<li>Benefits of CI </li>
<li>Different types of CI tools </li>
<li>Tips on choosing the right CI tool </li>
<li>CI as a form of feedback to development teams </li>
<li>CI as a tool for release preparation</li>
</ul>
<p><strong>Developing Windows Phone 7 Applications using Silverlight &#8211; <a href="http://twitter.com/#!/lookitskris">Kris Athi</a></strong><br />
This session will look at using Silverlight as your weapon of choice to target the Windows Phone 7 platform. This session will focus more on the platform specifics including:</p>
<ul>
<li>Theming</li>
<li>Input &#038; Navigation</li>
<li>Push Notifications</li>
<li>Location Service</li>
<li>Connected Apps (WCF)</li>
<li>Lifecycle (Tombstoning etc)</li>
<li>Launchers, Choosers</li>
</ul>
<p>We will also take a look at how to architect an application using the MVVM design pattern.</p>
<p><strong>Introduction to PowerShell &#8211; <a href="http://twitter.com/jimmyboo">James Boother</a></strong><br />
So you&#8217;ve heard SysAdmins and DBAs discuss PowerShell but you&#8217;re not sure what it is or how to use it. Powershell is a powerful scripting engine that can be used to automate admin tasks making more efficient use of your time. This session will introduce Powershell so that you can add it to your toolbelt. I&#8217;ll discuss some general admin tasks that can easily be automated with PowerShell and look at some developer specific tasks that can benefit from PowerShell knowledge.</p>
<p><strong>Mobile Panel &#8211; From iPhone to HTML 5 to Windows Phone 7 to Android &#8211; <a href="http://twitter.com/#!/ChrisNTR">Chris Hardy</a></strong><br />
A mobile panel featuring some of the top mobile application developers in the UK. Should create some interesting discussions!</p>
<p>&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.craigmurphy.com/blog/?feed=rss2&#038;p=1820</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

