<?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>Martin Capodici</title>
	<atom:link href="http://martincapodici.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://martincapodici.com</link>
	<description>My blog about Software Developement (mainly C#.NET) and Making Money Online</description>
	<lastBuildDate>Sat, 26 Nov 2011 00:37:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Charting in MVC3</title>
		<link>http://martincapodici.com/2011/11/26/charting-in-mvc3/</link>
		<comments>http://martincapodici.com/2011/11/26/charting-in-mvc3/#comments</comments>
		<pubDate>Sat, 26 Nov 2011 00:34:33 +0000</pubDate>
		<dc:creator>Martin Capodici</dc:creator>
				<category><![CDATA[Mvc3]]></category>
		<category><![CDATA[Charting]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[Microsoft Charting]]></category>
		<category><![CDATA[MVC3]]></category>

		<guid isPermaLink="false">http://martincapodici.com/?p=40</guid>
		<description><![CDATA[Using MVC3? Need a chart? Here is some excellent code that &#8220;just works&#8221; for creating a chart in MVC3. Just add this to a controller and call it. You will see the chart. Great stuff This sample was originally posted &#8230; <a href="http://martincapodici.com/2011/11/26/charting-in-mvc3/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Using MVC3? Need a chart? Here is some excellent code that &#8220;just works&#8221; for creating a chart in MVC3. Just add this to a controller and call it. You will see the chart. Great stuff <img src='http://martincapodici.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>This sample was originally posted here: <a href="http://stackoverflow.com/questions/6281520/charting-in-asp-net-mvc-3">http://stackoverflow.com/questions/6281520/charting-in-asp-net-mvc-3</a></p>
<pre><code>public ActionResult TestForSOExample()
{
  // slug in some data
  var data = new Dictionary&lt;string, float&gt;
        {
            {"test", 10.023f},
            {"test2", 20.020f},
            {"test3", 19.203f},
            {"test4", 4.039f},
            {"test5", 5.343f}
    };

  var chart = new Chart();

  var area = new ChartArea();
  // configure your chart area (dimensions, etc) here.
  chart.ChartAreas.Add(area);

  // create and customize your data series.
  var series = new Series();
  foreach (var item in data)
  {
        series.Points.AddXY(item.Key, item.Value);
    }
  series.Label = "#PERCENT{P0}";
  series.Font = new Font("Segoe UI", 8.0f, FontStyle.Bold);
  series.ChartType = SeriesChartType.Pie;
  series["PieLabelStyle"] = "Outside";

  chart.Series.Add(series);

  var returnStream = new MemoryStream();
  chart.ImageType = ChartImageType.Png;
  chart.SaveImage(returnStream);
  returnStream.Position = 0;
  return new FileStreamResult(returnStream, "image/png");
}
</code></pre>
<p>Here is the resultant image:</p>
<p><img class="alignnone size-full wp-image-41" title="Mvc3 Charting Chart Output" src="http://martincapodici.com/wp-content/uploads/2011/11/mvc3-charting-chart.png" alt="Mvc3 Charting Chart Output" width="306" height="251" /></p>
]]></content:encoded>
			<wfw:commentRss>http://martincapodici.com/2011/11/26/charting-in-mvc3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>7 Great Free .NET Tools and one I wouldn&#8217;t recommend.</title>
		<link>http://martincapodici.com/2011/11/22/7-great-free-net-tools-and-one-i-wouldnt-recommend/</link>
		<comments>http://martincapodici.com/2011/11/22/7-great-free-net-tools-and-one-i-wouldnt-recommend/#comments</comments>
		<pubDate>Tue, 22 Nov 2011 04:54:10 +0000</pubDate>
		<dc:creator>Martin Capodici</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Tools for .NET]]></category>
		<category><![CDATA[Dependency Management]]></category>
		<category><![CDATA[Nuget]]></category>
		<category><![CDATA[References]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://martincapodici.com/?p=27</guid>
		<description><![CDATA[When I work on personal projects I realise time is a very sacred thing indeed. With only a few hours here and there it is important to be as productive as possible and squeeze value out of every minute. Plus &#8230; <a href="http://martincapodici.com/2011/11/22/7-great-free-net-tools-and-one-i-wouldnt-recommend/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>When I work on personal projects I realise time is a very sacred thing indeed. With only a few hours here and there it is important to be as productive as possible and squeeze value out of every minute. Plus for a personal project I want to enjoy coding not endure it.</p>
<p>With that in mind, I try to find (and recommend) decent, robust, proven community code to use in my projects to save tonnes of time. Once you start using these tools I promise you won&#8217;t be able to live without them. Hmm.. well only if you care about the quality of your product AND the value of your time that is.</p>
<p>As well as 7 great tools I&#8217;ve also included one tool that I didn&#8217;t like. I say that with a lot of respect for the tool and the company that produced it, but in practice it was just easier not to use it. More on that later.</p>
<h2>Nuget</h2>
<p>This is the daddy on of all of these 7 tools because Nuget makes it simple for you to get the other tools installed in your solution.</p>
<p>You may already have this installed in Visual Studio (depending on the where, when, what and who of your install) and it has the generic and official sounding name of &#8220;Library Package Manager&#8221; within the Tools menu:<a href="http://martincapodici.com/wp-content/uploads/2011/11/nuget-librarypackagemanager-menu.png"><img class="alignnone size-full wp-image-28" title="Nuget Library Package Manager  Menu" src="http://martincapodici.com/wp-content/uploads/2011/11/nuget-librarypackagemanager-menu.png" alt="Nuget Library Package Manager  Menu" width="599" height="290" /></a></p>
<p>If not you can add it using the Extension Manager. Search for &#8220;Nuget&#8221;.</p>
<h3>What is Nuget?</h3>
<p>Nuget is a tool that will download, install and reference dependencies you need for your projects. Like NUnit for example.</p>
<p>It makes the process fun and simple.</p>
<p>Here are the main benefits of using Nuget for referencing libraries that others have built on the net:</p>
<ul>
<li>1000&#8242;s of packages exist &#8211; All projects worth their salt will have a Nuget package, so you will find what you want quickly and painlessly.</li>
<li>It automatically installs dependencies.</li>
<li>It organises the dlls and other stuff nicely on your disk for you.</li>
<li>It will create the reference for you.</li>
<li>You can mandate a version or get the latest.</li>
<li>Creating your own Nuget packages is effortless.</li>
<li>It is easy to uninstall a Nuget package you no longer need. This encourages experimentation.</li>
<li>Nuget can be used for more than class library references. Other applications include application and website deployment.</li>
</ul>
<h2>Next&#8230;</h2>
<p>This post is part of a series. In my next post I will talk about ApprovalTests.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://martincapodici.com/2011/11/22/7-great-free-net-tools-and-one-i-wouldnt-recommend/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Experience &#8211; PPC Advertising Facebook</title>
		<link>http://martincapodici.com/2011/11/07/my-experience-ppc-advertising-facebook/</link>
		<comments>http://martincapodici.com/2011/11/07/my-experience-ppc-advertising-facebook/#comments</comments>
		<pubDate>Mon, 07 Nov 2011 08:45:55 +0000</pubDate>
		<dc:creator>Martin Capodici</dc:creator>
				<category><![CDATA[paid advertising]]></category>
		<category><![CDATA[facebook ads]]></category>
		<category><![CDATA[pay per click]]></category>

		<guid isPermaLink="false">http://martincapodici.com/?p=24</guid>
		<description><![CDATA[One of the first questions you should ask about an online venture is &#8220;How will I get quality traffic&#8221;. In other words how do you get visitors to your site in big enough quantities, and not only visitors but visitors &#8230; <a href="http://martincapodici.com/2011/11/07/my-experience-ppc-advertising-facebook/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>One of the first questions you should ask about an online venture is &#8220;How will I get quality traffic&#8221;. In other words how do you get visitors to your site in big enough quantities, and not only visitors but visitors who are or will be interested in what you have to sell?</p>
<p>One answer is paid advertising on the web, and it&#8217;s a great answer. It&#8217;s the best answer in fact!</p>
<p>Unlike trying to get organic traffic from search engines, or rely on free &#8216;viral&#8217; traffic, you can exercise a lot of control over what happens. You can test a campaign for $50 and then choose to scale it up further or cut your losses.</p>
<p>Compare losing $50 to losing 20 hours trying to get your page to number 1 in Google by getting backlinks and writing articles only to find out the idea wasn&#8217;t good anyway. (Been there).</p>
<p>So having read a lot of good stuff about Facebook ads, I tried a few campaigns out. I decided to try CPA (cost per action) campaigns because they are usually well optimised to convert and you can tell quickly if the campaign is tanking or doing well. By contrast selling a $200 course as an affiliate may require a lot of spend before you know if it is converting.</p>
<p>At first my big hurdle was actually getting a campaign approved by Facebook. They have a lot of rules and if you make a mistake you are directed to a set of rules and you have to try and figure out what you did wrong. I had a lot of &#8216;trial and error&#8217; and it can be frustrating. However I was determined no to give up.</p>
<p>The second hurdle was the price of click. Whatever or whoever I targeted I never got less than $1.50 estimate per click and often as much as $4. This is way to expensive for CPA infact way to expensive for most things.</p>
<p>From articles I read it seemed the trick was to bid low and slowly raise your bid. However I found one thing was for sure with a low bid: no displays of your ad! Another thing I tried was to pay per 1000 impressions. This can be as cheap as 10c and if you get 0.1% of people to click that is just 10c per click!</p>
<p>However despite testing many ad combinations, images and different offers, I never got anywhere near the giddy heights of 0.1% CTR. The best was 0.05% CTR but as soon as I tried to scale up the traffic it dropped to 0.01%, go figure!</p>
<p>I have a feeling that where your ad is displayed (1st, 2nd, 3rd) etc will affect the CTR but unlike Google ads it&#8217;s not clear where you will end up or where you did end up.</p>
<p>Overall I failed to make a profitable campaign. I have some ideas why and I may come back to Facebook ads as I think it could be an incredible source of traffic, especially with all the targeting options and the power of the Like button. However for now it is on the back-burner.</p>
<p>Lessons learned:</p>
<ul>
<li>I believe campaigns should fit into the Facebook ecosystem &#8211; my ads were just linking off somewhere but I reckon if the landing page is a fan page with a Like button and something that is popular then there will be more success.</li>
<li>You need something very profitable and niche to target in my opinion. People do get cheap clicks but FB is reported to be getting more expensive all the time. So if you have to pay $1, $2 for a click I think you need good targeting and a good back-end. Direct linking CPA&#8217;s isn&#8217;t enough as often they only pay $2-$3.</li>
<li>Making money online isn&#8217;t easy &#8211; but I already knew that <img src='http://martincapodici.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://martincapodici.com/2011/11/07/my-experience-ppc-advertising-facebook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows 7 Snipping Tool</title>
		<link>http://martincapodici.com/2011/11/04/windows-7-snipping-tool/</link>
		<comments>http://martincapodici.com/2011/11/04/windows-7-snipping-tool/#comments</comments>
		<pubDate>Fri, 04 Nov 2011 23:34:07 +0000</pubDate>
		<dc:creator>Martin Capodici</dc:creator>
				<category><![CDATA[Windows Tools]]></category>

		<guid isPermaLink="false">http://martincapodici.com/?p=18</guid>
		<description><![CDATA[OK so this isn&#8217;t so &#8220;Hi Tech&#8221; for a developers blog, but it is damn useful and probably not enough people know about it. Perhaps, you have found a bug and you want to add a screenshot of the problem &#8230; <a href="http://martincapodici.com/2011/11/04/windows-7-snipping-tool/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>OK so this isn&#8217;t so &#8220;Hi Tech&#8221; for a developers blog, but it is damn useful and probably not enough people know about it.</p>
<p>Perhaps, you have found a bug and you want to add a screenshot of the problem to your defect tracking. Or you are doing a presentation and need some imagery for the PowerPoint slides. Whatever &#8230; this tool will help you.</p>
<p>Just go to the start menu and type in Snipping Tool:</p>
<p><a href="http://martincapodici.com/wp-content/uploads/2011/11/1.png"><img class="alignnone size-medium wp-image-19" title="Windows 7 Snipping Tool from Start Menu" src="http://martincapodici.com/wp-content/uploads/2011/11/1-239x300.png" alt="" width="239" height="300" /></a></p>
<p>Now the snipping tool will appear and you can select a rectangle from your screen.</p>
<p><a href="http://martincapodici.com/wp-content/uploads/2011/11/2.png"><img class="alignnone size-medium wp-image-20" title="Snipping Tool" src="http://martincapodici.com/wp-content/uploads/2011/11/2-300x180.png" alt="" width="300" height="180" /></a></p>
<p>Now just do what it says, drag the cursor around the area you want to capture.</p>
<p>It will then show you the image and you can decide whether to save it as a PNG or copy it to the clipboard.</p>
<p>There are better tools that you can download, however it is nice to know about this built in feature you can use from any PC without the hassle of googling-downloading-installing a screen capture program.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://martincapodici.com/2011/11/04/windows-7-snipping-tool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CI Server cannot import keyfile error</title>
		<link>http://martincapodici.com/2011/10/31/ci-server-cannot-import-keyfile-error/</link>
		<comments>http://martincapodici.com/2011/10/31/ci-server-cannot-import-keyfile-error/#comments</comments>
		<pubDate>Mon, 31 Oct 2011 22:46:09 +0000</pubDate>
		<dc:creator>Martin Capodici</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://martincapodici.com/?p=12</guid>
		<description><![CDATA[If you get this error when building a solution from a CI server, you probably just need to install the keys on that server. Cannot import the following keyfile: myfile.pfx. The keyfile may be password protected Simply open a command &#8230; <a href="http://martincapodici.com/2011/10/31/ci-server-cannot-import-keyfile-error/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>If you get this error when building a solution from a CI server, you probably just need to install the keys on that server.</p>
<p><code>Cannot import the following keyfile: myfile.pfx. The keyfile may be password protected</code></p>
<p>Simply open a command prompt and enter</p>
<p><code>sn -i "C:\path\to\myfile.pfx" VS_KEY_XXXXXXXX</code></p>
<p>Where VS_KEY_XXXXXXXX is the key mentioned in the error log. You will be asked for a password, so you may need to find a kind soul to tell you what it is. Then rerun your build and you are good to go.</p>
<p>Of course the same thing can apply to any server or developer machine, but on a developer machine you can also use Visual Studio to register the key file.</p>
]]></content:encoded>
			<wfw:commentRss>http://martincapodici.com/2011/10/31/ci-server-cannot-import-keyfile-error/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Preparing for approvals</title>
		<link>http://martincapodici.com/2011/10/30/preparing-for-approvals/</link>
		<comments>http://martincapodici.com/2011/10/30/preparing-for-approvals/#comments</comments>
		<pubDate>Sun, 30 Oct 2011 11:10:04 +0000</pubDate>
		<dc:creator>Martin Capodici</dc:creator>
				<category><![CDATA[automated testing]]></category>

		<guid isPermaLink="false">http://martincapodici.com/?p=7</guid>
		<description><![CDATA[If you do automated testing (NUnit, MSTest or whatever) and you haven&#8217;t tried approval tests then I suggest you give it a go now. It is one of those things that is quick to set up and understand but once &#8230; <a href="http://martincapodici.com/2011/10/30/preparing-for-approvals/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>If you do automated testing (NUnit, MSTest or whatever) and you haven&#8217;t tried <a href="http://approvaltests.sourceforge.net">approval tests</a> then I suggest you give it a go now. It is one of those things that is quick to set up and understand but once you start using it you won&#8217;t remember how you lived without it.</p>
<p>Approval tests take a lot of the tedium out of writing tests using 100% code.</p>
<p>In a nutshell approval tests lets you assert the output of a test against an approved file. If the files matches the output then the test passes. Otherwise a difference program like Winmerge or Tortoise SVN is run to show you the differences between expected and actual so that you can either fix the program to get it to pass, or approve the differences.</p>
<p>Approval tests are great where for example you may gave a batch of input scenarios (e.g.different inputs to a accounting app) and a batch of expected outputs. You can run the test against the inputs then scan down the list of outputs, check it is correct then approve. Compare this to writing a hundred Assert.AreEqual statements and I hope you can see the benefit.</p>
<p>I also like approval tests for XML validation. However what I find with XML is that you often want to approve a certain section of the document rather than the entire thing. This is so that a change to the document structure won&#8217;t break every test.</p>
<p>To do this I like to run a XSL on the XML first to filter out stuff I don&#8217;t want to test, and then what is remaining is passed through for approval.</p>
<p>One example may be a HTML document, you could just filter out all but a particular DIV element that you want to approve the contents of. Perhaps this is a message div displaying the result of an action to the user.</p>
<p>The beauty is you can do a UI automated test this way, that is robust to changes in the HTML layout, and if there is a breaking change because you are using approvals it is just a case of approving the differences as shown in Winmerge and not having to change any code in the test itself.</p>
<p>Having said that there are some other awesome ways to tests a web site I will cover in future posts.</p>
<p>If you want to give approvals a try just visit:</p>
<p><a href="http://approvaltests.sourceforge.net">http://approvaltests.sourceforge.net</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://martincapodici.com/2011/10/30/preparing-for-approvals/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

