<?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>codeoverview</title>
	<atom:link href="http://codeoverview.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://codeoverview.com/blog</link>
	<description>Programming, Technology and Good People by Neil Fenwick</description>
	<lastBuildDate>Sat, 20 Feb 2010 15:29:24 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Solid State Drives &#8211; Lean &amp; Mean</title>
		<link>http://codeoverview.com/blog/2010/02/solid-state-drives-lean-mean/</link>
		<comments>http://codeoverview.com/blog/2010/02/solid-state-drives-lean-mean/#comments</comments>
		<pubDate>Sat, 20 Feb 2010 15:11:01 +0000</pubDate>
		<dc:creator>Neil Fenwick</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[crucial]]></category>
		<category><![CDATA[Disklight.NET]]></category>
		<category><![CDATA[solid state]]></category>

		<guid isPermaLink="false">http://codeoverview.com/blog/2010/02/solid-state-drives-lean-mean/</guid>
		<description><![CDATA[ For a while I have been harping on about how much difference a speedy hard drive can make to a developer’s PC.  So, I took my own advice, and recently coughed up the cash for a new Crucial 2.5 inch 256GB solid state drive.  You could argue that doing this was even going two [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.amazon.co.uk/gp/product/B002J9GDCE?ie=UTF8&amp;tag=codeov-21&amp;linkCode=as2&amp;camp=1634&amp;creative=19450&amp;creativeASIN=B002J9GDCE"><img style="margin: 0px 0px 5px 5px; display: inline; border: 0px;" title="Crucial 256GB SSD" src="http://codeoverview.com/blog/wp-content/uploads/2010/02/IMG_1520.jpg" border="0" alt="Crucial 256GB SSD" width="244" height="192" align="right" /></a> For a while I have been harping on about how much difference a speedy hard drive can make to a developer’s PC.  So, I took my own advice, and recently coughed up the cash for a new <a href="http://www.amazon.co.uk/gp/product/B002J9GDCE?ie=UTF8&amp;tag=codeov-21&amp;linkCode=as2&amp;camp=1634&amp;creative=19450&amp;creativeASIN=B002J9GDCE">Crucial 2.5</a> inch 256GB solid state drive.  You could argue that doing this was even going two / three times better than <a href="http://codeoverview.com/blog/2009/08/post-2/">my previously recommended solution</a> of a Western Digital Velociraptor (10,000rpm).  The performance difference is astounding!</p>
<p>Here’s the obligatory Windows Experience Index (WEI): <strong>7.3</strong> for the drive (the highest rated item on my Laptop). <a href="http://codeoverview.com/blog/wp-content/uploads/2010/02/CrucialWEI.png"><img style="margin: 20px auto; display: block; float: none; border: 0px;" title="Crucial WEI" src="http://codeoverview.com/blog/wp-content/uploads/2010/02/CrucialWEI_thumb.png" border="0" alt="Crucial WEI" width="438" height="185" /></a>Previously, the one of the fastest available magnetic drives for laptops (2.5 inch form factor) was the Western Digital Scorpio Black, 7200rpm drive, which previously scored 5.7 in the Windows Experience Index on my laptop.  Admittedly the WEI isn’t a very scientific benchmark, but it is based on an all-round measurement (both sequential &amp; random read/write). The Crucial SSD is, in theory, around 3-times faster at average sequential reads than the Scorpio Black (the Crucial reads at between 230 MB/sec and 250 MB/sec, whereas the Scorpio Black reads at between 63 MB/sec and 76 MB/sec).  Most people’s typical usage is not based on one extreme or the other between sequential or random IO though.  Between the operating system and our applications, we do a little of everything.</p>
<h2>Subjective review</h2>
<p>While having specific performance measurements might help prove one drive is better than another, most of us will probably judge how much faster one drive “feels” in our system.  For example, I’ve noticed that my laptop tends not to wait on disk IO anymore and if my processor was faster, I might be feeling the benefit of my new Crucial SSD even more than I am now, and its already made a big difference to me.  I don’t play games on this laptop, so if anything feels like a bottleneck, its the Core 2 Duo 2.5Ghz processor.  Now that data comes off the disk so fast, single threaded applications seem to end up waiting for the CPU.</p>
<p><a href="http://disklight.codeplex.com"><img style="margin: 0px 0px 5px 5px; display: inline; border: 0px;" title="Disklight.NET screenshot" src="http://codeoverview.com/blog/wp-content/uploads/2010/02/FolderView20022010140959.jpg" border="0" alt="Disklight.NET screenshot" width="219" height="210" align="right" /></a>I’ve also always used my <a href="http://disklight.codeplex.com">Disklight.NET</a> system-tray application on all my PC’s, to keep an eye on when my hard drive is holding up my PC.  At work, my PC is under my desk, so when its being slow or unresponsive, it’s nice to have something to tell me when it’s waiting on disk IO.  Most of the time, I hardly ever saw this application show more than 25 MB/sec on any of my machines with magnetic-platter hard disks.  On the right is a screenshot of the readings when starting up a Windows XP virtual machine on my laptop (by the way, the XP virtual machine boots in about 9 seconds).  I’ve even seen “Read:” values as high as 168 MB/sec when running backup software that scans my music library.</p>
<h2>Power consumption &amp; other benefits</h2>
<p>The other main plus sides for solid state drives:</p>
<ul>
<li>typically consume about 0.5W of power, whereas most magnetic drives will consume anywhere from 2W to 15W.  Therefore, they will help extend battery life in laptops.</li>
<li>do not get hot</li>
<li>no noise</li>
<li>no moving parts, therefore failure rates are lower</li>
<li>less risk from physical impact &amp; movement because there are no moving parts</li>
<li>lighter (reduces weight in laptops)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://codeoverview.com/blog/2010/02/solid-state-drives-lean-mean/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Book review: C# in Depth</title>
		<link>http://codeoverview.com/blog/2009/12/book-review-c-in-depth/</link>
		<comments>http://codeoverview.com/blog/2009/12/book-review-c-in-depth/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 20:42:09 +0000</pubDate>
		<dc:creator>Neil Fenwick</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://codeoverview.com/blog/2009/12/book-review-c-in-depth/</guid>
		<description><![CDATA[ Its been a while since I’ve read a book that’s almost purely about a programming language and C# in Depth does not disappoint.  Even though I’ve recently done a couple of Microsoft certification exams and read the relevant preparation materials, those were more about the .NET framework and the .NET libraries more than any [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.amazon.co.uk/gp/product/1933988363?ie=UTF8&amp;tag=codeov-21&amp;linkCode=as2&amp;camp=1634&amp;creative=19450&amp;creativeASIN=1933988363"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 25px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://codeoverview.com/blog/wp-content/uploads/2009/12/image.png" border="0" alt="image" width="196" height="244" align="left" /></a> Its been a while since I’ve read a book that’s almost purely about a programming language and <a href="http://www.amazon.co.uk/gp/product/1933988363?ie=UTF8&amp;tag=codeov-21&amp;linkCode=as2&amp;camp=1634&amp;creative=19450&amp;creativeASIN=1933988363">C# in Depth</a> does not disappoint.  Even though I’ve recently done a couple of Microsoft certification exams and read the relevant preparation materials, those were more about the .NET framework and the .NET libraries more than any particular programming language.  This book is all C# though, cover to cover, and Jon Skeet lives up to the hype…</p>
<p>Fear not! There is none of the boring “Chapter 1: What is a class” type of material here.  It is assumed that you are already familiar with programming in C# and the material serves more to highlight how the language has evolved from C# 1.1, through C# 2.0 to C# 3.0 and explains how the language version numbers are not the same as the framework version numbers.  The book dives right into a preview of the most modern C# trends, before going back to explain how it all got to be that way.  Some of it was really mind-blowing stuff to me, and it really shouldn’t have been because that was only the C# 2.0 parts. There is so much potential in the C# 2.0 language and .NET 2.0 framework and they are really under-utilised, possibly due to being overshadowed by the emergence of .NET 3.0 and quickly followed by .NET 3.5 with LINQ.</p>
<p>For those LINQ enthusiasts out there, you really should read this book if you want to understand the fundamentals of LINQ and where it evolved from (a LOT of it is based in C# 2.0 generics and anonymous methods/delegates).  If you’re like most of us developers, you’re probably only just moving on to using .NET 3.5 at work and possibly don’t even realise some of the power you’ve been missing out on.  Having worked on several corporate projects in 2009, it appears that many larger organisations are <em>still</em> sticking using .NET Framework 2.0. By the way, you can get away with using a lot of the C# 3.0 features on the .NET framework 2.0, since many of the additions are language based or are based on compiler “tricks”. If ever there was a code magician / illusionist – Jon Skeet could be him!</p>
<p>Manning (publishers) are releasing an Early Access Preview of the second edition of this book in electronic form now (the soft-cover is due Summer 2010, according to the <a href="http://www.manning.com/skeet2/">Manning C# in Depth website</a>).  I’d still recommend the first edition, having most of the same material except for the last few chapters, and its in paperback form so you can read on the run</p>
]]></content:encoded>
			<wfw:commentRss>http://codeoverview.com/blog/2009/12/book-review-c-in-depth/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Developers and DBA&#8217;s</title>
		<link>http://codeoverview.com/blog/2009/10/developers-and-dbas/</link>
		<comments>http://codeoverview.com/blog/2009/10/developers-and-dbas/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 19:08:45 +0000</pubDate>
		<dc:creator>Neil Fenwick</dc:creator>
				<category><![CDATA[Databases]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[dba]]></category>
		<category><![CDATA[sql-server]]></category>

		<guid isPermaLink="false">http://codeoverview.com/blog/2009/10/developers-and-dbas/</guid>
		<description><![CDATA[How well do you know your database server?&#160; And no!, I’m not talking about favourite colours, favourite things to do, or other first date questions here&#8230; I mean how well do you know the technology behind your database server and what makes it tick?&#160; Many developers out there focus on the web and application layers [...]]]></description>
			<content:encoded><![CDATA[<p>How well do you know your database server?&#160; And no!, I’m not talking about favourite colours, favourite things to do, or other first date questions here&#8230; I mean how well do you know the technology behind your database server and what makes it tick?&#160; Many developers out there focus on the web and application layers and only look to the database layer as a persistence medium.&#160; At least until they need to get a LOT of data in or out in a hurry that is…</p>
<p>More often than not, small companies can’t afford to have a dedicated database administrator (DBA). So it often falls to the technical operations guy/gal and the developers to manage the company database(s).&#160; I’ve been in the position of one of those developers, where looking after databases was more of an add-on task than any official duty, and that experience has taught me that a good DBA is worth their weight in gold.</p>
<p align="left">Every developer should get to know at least one database technology intimately because your database can do a lot more for you than just persist data.&#160; Get to know the engine of your database server: how it works; how it makes decisions on query plans; different algorithms for joining and grouping data and how it all evolved.</p>
<p>As an example, have you ever written a program that processes data on-the-fly and batching bulk-inserts?&#160; Assuming all that bulk-inserted data goes into a set of tables that will later be processed for rollups, you’ll have some indexes on those tables, so that the rollups run faster… right?&#160; Well those indexes will have a <em>dramatic</em> performance impact on your bulk-insert operation… I’ve learned that when processing large amounts of data for crunching rollups later on… only create the indexes just before you need them and then drop the indexes again afterwards.&#160; The reason is that the bulk-insert is probably going to be the long-running operation and writing to a table with 3 indexes across columns can take 2-3 times longer than writing to a table with no indexes.</p>
<p align="left">My database of preference is SQL Server because I’ve worked with Microsoft technologies all my working life and found the tool-sets generally hit the mark on best compromise between functionality and easy learning curve.&#160; SQL Server 2000 was the top dog around the time I was finding my feet and an invaluable resource was Kalen Delaney’s book <a href="http://www.amazon.co.uk/gp/product/1933988363?ie=UTF8&amp;tag=codeov-21&amp;linkCode=as2&amp;camp=1634&amp;creative=19450&amp;creativeASIN=1933988363">Inside Microsoft SQL Server 2000</a>.&#160; I have *huge* respect for the team that created one of the first databases that was capable of running on desktop computer hardware, whilst having a .dll/.exe footprint in the order of 10’s of Megabytes and, to this day, is capable of managing databases in the order of Terabytes!</p>
]]></content:encoded>
			<wfw:commentRss>http://codeoverview.com/blog/2009/10/developers-and-dbas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A standard PC more expensive than a high-spec PC?</title>
		<link>http://codeoverview.com/blog/2009/08/a-standard-pc-more-expensive-than-a-high-spec-pc/</link>
		<comments>http://codeoverview.com/blog/2009/08/a-standard-pc-more-expensive-than-a-high-spec-pc/#comments</comments>
		<pubDate>Tue, 11 Aug 2009 21:34:47 +0000</pubDate>
		<dc:creator>Neil Fenwick</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[hard drive]]></category>
		<category><![CDATA[pc]]></category>

		<guid isPermaLink="false">http://codeoverview.com/blog/2009/08/a-standard-pc-more-expensive-than-a-high-spec-pc/</guid>
		<description><![CDATA[A couple of weeks ago, I wrote about how developer’s need faster hard disks.&#160; Now I’ll try to expand on that and build a case for how much it might be costing you to continue using that standard build corporate development PC.&#160; You’re probably like many other developers out there and using a standard-build office [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of weeks ago, I wrote about how <a href="http://codeoverview.com/blog/2009/08/post-2/">developer’s need faster hard disks</a>.&#160; Now I’ll try to expand on that and build a case for how much it might be costing you to continue using that standard build corporate development PC.&#160; You’re probably like many other developers out there and using a standard-build office PC, possibly with a little boost of RAM to allow you to run some local databases along with your development environment.&#160; Of course, this is all assuming that you are like most developers out there that use a PC purchased and supplied by your company.</p>
<p>If you’re like me and work with .NET for most of your day and spend time developing with Visual Studio, you should start paying attention to how much time you end up waiting for your PC to complete any operation that makes you wait.&#160; (This also applies to PHP or Java developers, using Eclipse or any other Java-driven development environment.)&#160; For example, switching between Code and Design view can cause long waits on complex projects.&#160; What about cleaning, compiling and debugging your code?&#160; Starting up your browser? Hitting an exception and switching to debug in Visual Studio?&#160; All these little waits add up and 10-15 cumulative minutes of your day spent waiting is not an unrealistic figure.</p>
<p><strong>So what is a Developer’s time worth?&#160; </strong></p>
<p>Here are some assumptions, based on the UK market average salary for a “.NET developer” (avg. salary taken from <a href="http://www.itjobswatch.co.uk/jobs/uk/.net%20developer.do">itjobswatch.co.uk</a>) <a href="http://codeoverview.com/blog/wp-content/uploads/2009/08/image11.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="UK average .NET developer salary is £34,000" border="0" alt="UK average .NET developer salary is £34,000" src="http://codeoverview.com/blog/wp-content/uploads/2009/08/image_thumb6.png" width="433" height="125" /></a></p>
<p>If we take our worst case estimate of 15 minutes spent “waiting” each day, then we can extrapolate the following based on a 37.5 hour week: <a href="http://codeoverview.com/blog/wp-content/uploads/2009/08/image12.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="15 minutes per day equates to £1,133.29 per year" border="0" alt="15 minutes per day equates to £1,133.29 per year" src="http://codeoverview.com/blog/wp-content/uploads/2009/08/image_thumb7.png" width="451" height="143" /></a></p>
<p>The best case estimate of “waiting” 10 minutes each day:<a href="http://codeoverview.com/blog/wp-content/uploads/2009/08/image13.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="10 minutes per day equates to £755.53 per year" border="0" alt="10 minutes per day equates to £755.53 per year" src="http://codeoverview.com/blog/wp-content/uploads/2009/08/image_thumb8.png" width="465" height="154" /></a></p>
<p>Now looking at the Dell website (I’m not biased towards Dell in any way and I’m only using them to provide a quick comparative cost), an Optiplex 960 with the following specification: </p>
<ul>
<li>Intel Core 2 Duo E8400 (3GHz, 1333MHz, 6MB) </li>
<li>4GB 800Mhz Non-ECC DDRII Memory</li>
<li>Drive 1: 74GB 2.5 inch Serial ATA (10,000rpm)</li>
<li>Drive 2: 160GB 2.5 inch Serial ATA (7,200rpm)</li>
<li>Intel Graphics Media Accelerator 3100 with a maximum 256MB of shared video memory</li>
<li>16x DVD-ROM</li>
<li>Vista Ultimate SP1 32-bit (free upgrade to Windows 7, or add £5 to downgrade to XP pro SP3)</li>
<li>3yr warranty next business day</li>
</ul>
<p>This costs <strong>£873.00</strong> excl. VAT (and businesses would claim back VAT anyway) at today’s prices – 11 August 2009.&#160; This desktop spec is targeted at a typical web-developer.&#160; If you’re going to be doing any serious graphics or .NET WPF, consider adding the “ATI Radeon HD 3470 256MB DDR2 full height DVI/VGA Output” for an extra £97.00.&#160; I’ve left out the monitor, keyboard and mouse because you should have those on your current machine.&#160; We’re pricing an upgrade here, with the aim of passing your standard-build back into the office pc-pool.</p>
<p>No matter how high-spec the new PC, its never going to perform operations instantly, so we’re never going to save ALL of that 15 minutes per day.&#160; Even if we could reduce it to half the time, or less, then this exercise is probably worthwhile.&#160; Most IT business cases that I have seen, want to pay themselves back within 3 years, and as long as we can shave at least a third off that “waiting” time, then we’re in business!</p>
<p>There’s also an additional benefit that is harder to attach a price to.&#160; When typical developers end up waiting for a long-running task to complete, they probably context-switch themselves onto another task to try and keep up efficiency.&#160; I firmly believe that any serious development should be done without distractions (I’ll save the detail for another post), and this “context-switching” could be considered a distraction.&#160; What if you forget to go back and finish some task after switching over to reading an email, for example?&#160; Maybe you’ve just inadvertently introduced a bug…?&#160; How much time and money does <em>that</em> cost, since it might affect you, as well as anyone else involved in checking or using your software.</p>
<p>So development team managers:</p>
<p>Take another look at the equipment your team is using and ask yourself <strong>“how much are those standard-build PC’s really saving me by being cheaper than a higher-spec version?”</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://codeoverview.com/blog/2009/08/a-standard-pc-more-expensive-than-a-high-spec-pc/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Developers! Search engine optimise your CV</title>
		<link>http://codeoverview.com/blog/2009/08/developers-search-engine-optimise-your-cv/</link>
		<comments>http://codeoverview.com/blog/2009/08/developers-search-engine-optimise-your-cv/#comments</comments>
		<pubDate>Wed, 05 Aug 2009 21:00:42 +0000</pubDate>
		<dc:creator>Neil Fenwick</dc:creator>
				<category><![CDATA[SEO]]></category>
		<category><![CDATA[cv]]></category>
		<category><![CDATA[recruitment]]></category>

		<guid isPermaLink="false">http://codeoverview.com/blog/2009/08/developers-search-engine-optimise-your-cv/</guid>
		<description><![CDATA[Avoid employing unlucky people &#8211; throw half of the pile of CVs in the bin without reading them. (David Brent)
The UK recruitment industry turns over approximately 27 billion pounds a year in the UK (most likely pre credit-crunch times though).  That would tend to suggest that most employment or contract vacancies are filled through agencies.  [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Avoid employing unlucky people &#8211; throw half of the pile of CVs in the bin without reading them. (<a href="http://en.wikipedia.org/wiki/David_Brent">David Brent</a>)</p></blockquote>
<p>The UK recruitment industry turns over approximately 27 billion pounds a year in the UK (most likely pre credit-crunch times though).  That would tend to suggest that most employment or contract vacancies are filled through agencies.  That’s an incredible number of posts filled by recruitment agents.  The industry is extremely competitive and agencies want to be the first to find the ideal candidate and get their CV introduced to a potential client before any other agency beats them to it.  IT recruitment in particular is a very busy segment of the market and the content of this article probably applies more to technical professions because they’re filled with jargon and technical keywords.</p>
<p><strong>So how do the agencies find the ideal candidate as efficiently as possible?</strong></p>
<p><a href="http://codeoverview.com/blog/wp-content/uploads/2009/08/prove_myself.jpg"><img style="border-bottom: 0px; border-left: 0px; margin: 0px; display: inline; border-top: 0px; border-right: 0px" title="prove_myself" src="http://codeoverview.com/blog/wp-content/uploads/2009/08/prove_myself_thumb.jpg" border="0" alt="prove_myself" width="240" height="180" align="right" /></a>Well for starters, most agencies will keep a database of CV’s that have been submitted by candidates recently or in the past.  There are also job boards, such as Jobsite, Jobserve and Monster (in the UK) where candidates are able to upload a copy of their CV and apply for positions directly from the job board website.  Candidates may also make their CV available to be <em>searched</em> by recruiters via the job board.</p>
<p>The key concept here is that agencies <em>search</em> a database for your CV.  Whether its their own in-house database that has been built up over time or a job board database, the agency is forming a query and executing a search to retrieve a list of candidates.  That might be an obvious point to make, but if its so obvious then why don’t we make use of it.</p>
<h3>Keywords</h3>
<p>In my case, I am an ASP.NET programmer, so as a minimum, I would ensure that my CV is focused on the core .NET keywords and closely related technologies: ASP.NET, .NET 3.5, C#, VB.NET, SQL Server, LINQ.</p>
<p>Don’t forget little things like version numbers. The &#8220;3.5” in there might just make the difference… I’m a practical, common sense driven programmer and I might know that a hiring senior-developer worth their salt could figure out that LINQ would imply that I am familiar with .NET Framework 3.5. However, most recruitment agents are <strong>not</strong> technical and you can probably bet that if they have a brief from their client that mentions ASP.NET 3.5, they will be searching for “ASP.NET 3.5”.  If your CV mentions “3.5” and another one in their database doesn’t, then you can probably also bet that if they were displayed in a list on the recruiters screen, the CV with “3.5” in it is going to be higher up in the list…</p>
<p>Most candidates are probably going to mention their core competencies in their CV and one focused solely on “.NET”, “ASP.NET”, “3.5”, “HTML”, “CSS”, “XML” is probably going to be pretty common among the thousands of others that mention the same general skill-set.  This is where its worth dropping in names of more specific products that you’ve worked with where you applied your core skills.  For example, you may have worked with object-relational mapping technologies like <a href="https://www.hibernate.org/">NHibernate</a> and <a href="http://www.subsonicproject.com/">SubSonic</a>, or web content management systems like <a href="http://www.sitecore.net/">Sitecore</a>, <a href="http://www.interwoven.com/">Interwoven</a> or <a href="http://umbraco.org/">Umbraco</a> – mention them!  Most companies will have some preferred product(s) and will mention it in a brief to agencies as an ideal requirement.  Your recruitment agent will be adding these keywords to his search query.</p>
<h3>Common sense</h3>
<p>I’ve focused quite a lot on the concept of keyword-targeting in this article to get my point across, but don’t take that advice to the exclusion of all other factors.  You need those focused <em>keywords</em> to help get your CV found by an agency but ultimately your CV must still read well because it is going to be sent to your potential new employer.  A comma-delimited list of acronyms is just not going to cut it!  A CV still needs to be a well structured document and read well, with succinct summaries of your recent work in reverse chronological order, ideally.</p>
<h3>Self-correction</h3>
<p>Keyword-targeting is SEO for your CV’s.  In an ideal world, I would prefer that things didn’t work this way. “Don’t hate the player, hate the game” comes to mind.  Again, this sort of thing probably applies more in IT-related fields and I’m placing my hopes on the self-correcting nature of an open market.  By pointing this out, possibly more people will start to employ the strategy and force recruitment search algorithms to adapt and improve, so that one day the quality and content of a technical CV will count more than name dropping to get your foot in the door for an interview.</p>
]]></content:encoded>
			<wfw:commentRss>http://codeoverview.com/blog/2009/08/developers-search-engine-optimise-your-cv/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A bigger car park gets me to my desk faster?</title>
		<link>http://codeoverview.com/blog/2009/08/faster-hdd/</link>
		<comments>http://codeoverview.com/blog/2009/08/faster-hdd/#comments</comments>
		<pubDate>Sat, 01 Aug 2009 20:19:02 +0000</pubDate>
		<dc:creator>Neil Fenwick</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[hard drive]]></category>
		<category><![CDATA[pc]]></category>
		<category><![CDATA[RAM]]></category>
		<category><![CDATA[velociraptor]]></category>

		<guid isPermaLink="false">http://codeoverview.com/blog/?p=6</guid>
		<description><![CDATA[Software developer’s PC’s really just need lots more RAM than the other, standard issue, office desktops right?&#160; After all, it is the accepted and cheapest way to give a machine a power boost – add more RAM.
For a minute, imagine a small office building with a large car park and that the most efficient way [...]]]></description>
			<content:encoded><![CDATA[<p>Software developer’s PC’s really just need lots more RAM than the other, standard issue, office desktops right?&#160; After all, it is the accepted and cheapest way to give a machine a power boost – add more RAM.</p>
<p>For a minute, imagine a small office building with a large car park and that the most efficient way to give the same instructions, to as many employees as possible, is to have the employees assemble outside and the boss stand in the car park with a megaphone.</p>
<p>Now picture that small office block as an analogy of a typical office desktop PC:</p>
<ul>
<li>The people spread throughout the building represent &#8211; blocks of data on a hard drive </li>
<li>The elevator represents &#8211; the hard drive head </li>
<li>The space in the car park represents &#8211; the RAM </li>
<li>“The boss” with the megaphone – you guessed it, the processor </li>
</ul>
<p>Right, so back to our first sentence, more RAM equals bigger car park.&#160; “The boss” can address more people at once in his new supersize car park, or just keep groups of people nearby, ready to receive instructions because there’s plenty space for everyone.</p>
<p>That scenario is all very good when we’re dealing with databases and we want to process bigger chunks of data and have lots of data ready, on standby, to be accessed quickly.&#160; And lots of developers run databases on their local machines, so we want lots of RAM for this.</p>
<p><a href="http://codeoverview.com/blog/wp-content/uploads/2009/08/image10.png"><img style="border-right-width: 0px; margin: 0px 0px 5px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="right" src="http://codeoverview.com/blog/wp-content/uploads/2009/08/image_thumb5.png" width="200" height="181" /></a>BUT, we’re forgetting something that developers will probably do more frequently than anything else – <em>compile </em>stuff!&#160; Compiling is a more granular operation that is done over lots of small blocks of data and involves lots of reading / writing at the same time.&#160; Using our analogy above, you might picture that the size of the car park becomes partly redundant for this bit – we need to address lots of small groups of people and send them back and forth between the car park and their offices. And it’s the <em>elevator</em>, aka hard drive, that’s going to be doing most of the work for this bit.&#160; It doesn’t matter how big your office block is (large hard drive), or how much space you have in your car park (amount of RAM).&#160; Compiling is more about how fast you can get people between the car park and their offices, e.g. read and write data to different parts of the hard disk.</p>
<p>So by this point we’re already agreed that we’re keeping our RAM upgrade, we need it and we’re not giving it back! BUT we’ve realised that we also want a very fast hard drive.</p>
<p><strong>Now, how many of you developers out there have a faster hard drive than, lets say, the office administrator or than Mr top sales guy from the Sales department?</strong></p>
<p>If you answered “no” to the question above, start watching how many cumulative minutes a day you spend waiting for your hard drive to finish some operation.&#160; Paying a small premium for a faster hard drive, such as the <a href="http://www.reghardware.co.uk/2008/04/21/wd_velociraptor_hdd/">Western Digital VelociRaptor</a> might pay itself back several times over in time-savings.&#160; Developers don’t use their workstations in the same way as everyone else – <em>every</em> core component should be upgraded to balance the system.&#160; More on how to convince “The boss” that you need an upgrade in a following post, shortly.</p>
]]></content:encoded>
			<wfw:commentRss>http://codeoverview.com/blog/2009/08/faster-hdd/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Right software for the blog – not .NET (yet)</title>
		<link>http://codeoverview.com/blog/2009/07/blog-software/</link>
		<comments>http://codeoverview.com/blog/2009/07/blog-software/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 23:05:03 +0000</pubDate>
		<dc:creator>Neil Fenwick</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[dasblog]]></category>
		<category><![CDATA[oulipo]]></category>
		<category><![CDATA[subtext]]></category>
		<category><![CDATA[umbraco]]></category>
		<category><![CDATA[web platform installer]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://codeoverview.com/blog/?p=1</guid>
		<description><![CDATA[I write code all day and spend quite a bit of time working with various content management systems and databases.  When I sat down today to set up my own blog, I knew I was never going to write my own blogging platform from scratch.  That sort of thing is just not done anymore – [...]]]></description>
			<content:encoded><![CDATA[<p>I write code all day and spend quite a bit of time working with various content management systems and databases.  When I sat down today to set up my own blog, I knew I was never going to write my own blogging platform from scratch.  That sort of thing is just not done anymore – unless you’re doing something that’s never been done before (and blogging has definitely been done before!).</p>
<h3>.NET</h3>
<p>My original choice was a .NET based blog because I’m familiar with ASP.NET and figured I’d be able to customise it.  After hunting around, the first thing that I learned is that blogging software is a lot more complicated and feature-rich than I’d expected.  Comment spam filters, trackbacks and integration with Windows Live Writer all seemed pretty attractive options.  My choices eventually narrowed down to:</p>
<ul>
<li>BlogEngine.NET – <a title="http://dotnetblogengine.net/" href="http://dotnetblogengine.net/">http://dotnetblogengine.net/</a></li>
<li>DasBlog – <a href="http://dasblog.info">http://dasblog.info</a></li>
<li>SubText – <a href="http://subtextproject.com">http://subtextproject.com</a></li>
<li>Umbraco – <a href="http://umbraco.org">http://umbraco.org</a> (strictly this is a CMS, not a blog)</li>
</ul>
<p>All four of the above platforms were available for simplified install via the Microsoft Web Platform installer:</p>
<p><a href="http://codeoverview.com/blog/wp-content/uploads/2009/08/image5.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://codeoverview.com/blog/wp-content/uploads/2009/08/image_thumb.png" border="0" alt="image" width="644" height="479" /></a></p>
<p>This time around, I’m being a real software “user” and looking for the path of least resistance.  While all four .NET platforms seemed like they could do the job, I rejected them for combinations of the following reasons: lack of reviews, difficulty skinning, long learning curve and effort required to customise.  Even though I’ve frequently used Umbraco and it has blogging packages via the community, I didn’t want to spend time setting up the templates or writing custom code for the basic blogging features available in other software.</p>
<h3>Wordpress</h3>
<p>In the end, I settled on Wordpress.  As a lazy user, this has everything I need and is a well-matured blogging platform with a massive diversity of themes and plugins.  MySQL was a requirement as a database backend:</p>
<p><a href="http://codeoverview.com/blog/wp-content/uploads/2009/08/image6.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://codeoverview.com/blog/wp-content/uploads/2009/08/image_thumb1.png" border="0" alt="image" width="520" height="242" /></a></p>
<p>One of the beauties of the Microsoft Web Platform installer is that all these dependencies  are detected and resolved for you:</p>
<p><a href="http://codeoverview.com/blog/wp-content/uploads/2009/08/image7.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" src="http://codeoverview.com/blog/wp-content/uploads/2009/08/image_thumb2.png" border="0" alt="image" width="599" height="484" /></a></p>
<p>15-20 minutes later, I have Wordpress installed, an IIS site set up and working.  Themes abound everywhere you look and I eventually found <a href="http://andreamignolo.com/oulipo/">“Oulipo”</a> by Andrea Mignolo.  Installing a theme was as simple as copying the files to a subfolder and clicking the thumbnail in the Appearance section of the Admin page.</p>
<p>And there you have it – my first deployment of a PHP / MySQL application, that so far has exceeded expectations, whilst being really easy to set up.  As a Microsofty / .NET coder, the only comfort I take out of the experience is that the Microsoft Web Platform installer made the whole process simpler.  Actually the really hard part was picking the name (thanks to <a href="http://blog.richard.parker.name">Richard Parker</a> for helping with that part) and finding a clean-cut look for a blog focused on technical content.</p>
]]></content:encoded>
			<wfw:commentRss>http://codeoverview.com/blog/2009/07/blog-software/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.351 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2010-03-10 23:14:39 -->
