<?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>Togaroga</title>
	<atom:link href="http://togaroga.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://togaroga.com</link>
	<description>Andrew Hare&#039;s coding blog</description>
	<lastBuildDate>Tue, 21 Dec 2010 19:07:37 +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>Dude, you&#8217;re getting a Cr-48!</title>
		<link>http://togaroga.com/2010/12/dude-youre-getting-a-cr-48/</link>
		<comments>http://togaroga.com/2010/12/dude-youre-getting-a-cr-48/#comments</comments>
		<pubDate>Tue, 21 Dec 2010 19:07:37 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[free-notebook]]></category>

		<guid isPermaLink="false">http://togaroga.com/?p=734</guid>
		<description><![CDATA[A few short weeks ago I signed up for the Google Chrome OS Pilot Program with the hopes of landing one of the new Cr-48 notebooks. I was pleasantly surprised last night to find a rather heavy by small package leaning against my front door as I locked up for the night (it must have [...]]]></description>
		<wfw:commentRss>http://togaroga.com/2010/12/dude-youre-getting-a-cr-48/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Overload resolution puzzler</title>
		<link>http://togaroga.com/2010/11/overload-resolution-puzzler/</link>
		<comments>http://togaroga.com/2010/11/overload-resolution-puzzler/#comments</comments>
		<pubDate>Mon, 08 Nov 2010 04:59:44 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[c# overload-resolution puzzler]]></category>

		<guid isPermaLink="false">http://togaroga.com/?p=711</guid>
		<description><![CDATA[Here is a bit of a puzzle &#8211; what does the following program print? using System; class Parent { public void Foo(String str) { Console.WriteLine("Parent.Foo"); } } class Child : Parent { public void Foo(Object str) { Console.WriteLine("Child.Foo"); } } class Example { static void Main() { Child child = new Child(); child.Foo("test"); } } [...]]]></description>
		<wfw:commentRss>http://togaroga.com/2010/11/overload-resolution-puzzler/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>A parameter by any other name (best practices with lambda expressions)</title>
		<link>http://togaroga.com/2010/06/a-parameter-by-any-other-name-best-practices-with-lambda-expressions/</link>
		<comments>http://togaroga.com/2010/06/a-parameter-by-any-other-name-best-practices-with-lambda-expressions/#comments</comments>
		<pubDate>Thu, 17 Jun 2010 05:10:08 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[best-practice]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[lambda-expressions]]></category>

		<guid isPermaLink="false">http://togaroga.com/?p=672</guid>
		<description><![CDATA[Lambda expressions are powerful tools that allow you to create succinct inline functions. However, without proper care they can quickly descend into an unreadable mess. While there are several ways that a lambda expression can become messy, this article will only address the naming conventions used for the expression&#8217;s parameters. Here are the two different [...]]]></description>
		<wfw:commentRss>http://togaroga.com/2010/06/a-parameter-by-any-other-name-best-practices-with-lambda-expressions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Two structural additions to C#</title>
		<link>http://togaroga.com/2010/04/two-structural-additions-to-c/</link>
		<comments>http://togaroga.com/2010/04/two-structural-additions-to-c/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 19:45:41 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[feature-request]]></category>
		<category><![CDATA[structural-typing]]></category>
		<category><![CDATA[type-system]]></category>

		<guid isPermaLink="false">http://togaroga.com/?p=624</guid>
		<description><![CDATA[In What’s in a name? (C#’s hidden support for structural typing) we explored a few of the areas in which C# currently supports structural typing. I would like to propose two new additions to C#&#8217;s structural typing abilities: implicit interface inheritance and richer generic constraints. Implicit interface inheritance I propose that class or struct ought [...]]]></description>
		<wfw:commentRss>http://togaroga.com/2010/04/two-structural-additions-to-c/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>What&#8217;s in a name? (C#&#8217;s hidden support for structural typing)</title>
		<link>http://togaroga.com/2010/04/whats-in-a-name-cs-hidden-support-for-structural-typing/</link>
		<comments>http://togaroga.com/2010/04/whats-in-a-name-cs-hidden-support-for-structural-typing/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 01:50:21 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[structural-typing]]></category>
		<category><![CDATA[type-system]]></category>

		<guid isPermaLink="false">http://togaroga.com/blog/?p=420</guid>
		<description><![CDATA[C# is well known for its nominative type system. This means that C# identifies types and their relationships based on their names. That is why C# does not allow you to create two types with the same name, even if they have a different public interface &#8211; the C# compiler only cares about the name [...]]]></description>
		<wfw:commentRss>http://togaroga.com/2010/04/whats-in-a-name-cs-hidden-support-for-structural-typing/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Choosy developers choose interfaces</title>
		<link>http://togaroga.com/2010/04/choosy-developers-choose-interfaces/</link>
		<comments>http://togaroga.com/2010/04/choosy-developers-choose-interfaces/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 01:43:56 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[best-practice]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[interfaces]]></category>

		<guid isPermaLink="false">http://togaroga.com/blog/?p=297</guid>
		<description><![CDATA[Each time you write a parametrized method you must decide which are the best types to use for your parameters. If you are not careful, your choice could place unnecessary restrictions on the caller of the method that requires them to pass too specific of a type. When you are making this decision you should [...]]]></description>
		<wfw:commentRss>http://togaroga.com/2010/04/choosy-developers-choose-interfaces/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Writing better code: it&#8217;s imperative that you are declarative</title>
		<link>http://togaroga.com/2010/03/writing-better-code-its-imperative-that-you-are-declarative/</link>
		<comments>http://togaroga.com/2010/03/writing-better-code-its-imperative-that-you-are-declarative/#comments</comments>
		<pubDate>Sun, 21 Mar 2010 13:00:28 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[best-practice]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[declarative-programming]]></category>
		<category><![CDATA[imperative-programming]]></category>

		<guid isPermaLink="false">http://togaroga.com/blog/?p=425</guid>
		<description><![CDATA[Most C# developers are very familiar with writing imperative code (even though they may not know it by that name). In this article, I will introduce you to an alternative style of programming called declarative programming. Proper declarative code is easier to read, understand, and maintain. As professionals, we should be striving to write better [...]]]></description>
		<wfw:commentRss>http://togaroga.com/2010/03/writing-better-code-its-imperative-that-you-are-declarative/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>All types are not compared equally (part 2)</title>
		<link>http://togaroga.com/2010/03/all-types-are-not-compared-equally-part-2/</link>
		<comments>http://togaroga.com/2010/03/all-types-are-not-compared-equally-part-2/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 18:48:25 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[equality]]></category>
		<category><![CDATA[reference-types]]></category>
		<category><![CDATA[type-system]]></category>
		<category><![CDATA[value-types]]></category>

		<guid isPermaLink="false">http://togaroga.com/blog/?p=260</guid>
		<description><![CDATA[In part 1 of this series I explained the difference between reference equality and value equality. In this article I am going to demonstrate how to compare two reference types using value equality semantics. Override Object.Equals Every time you use the binary equality operator (==) or the Equals method on a reference type you are [...]]]></description>
		<wfw:commentRss>http://togaroga.com/2010/03/all-types-are-not-compared-equally-part-2/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Make aliases an option</title>
		<link>http://togaroga.com/2009/11/make-aliases-an-option/</link>
		<comments>http://togaroga.com/2009/11/make-aliases-an-option/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 02:42:04 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[feature-request]]></category>
		<category><![CDATA[visual-studio]]></category>

		<guid isPermaLink="false">http://togaroga.com/blog/?p=355</guid>
		<description><![CDATA[Do you prefer int or Int32? How about string or String? Some developers have strong preferences, others don&#8217;t care. Personally, I prefer to use the actual CLR type names (in other words I prefer Int32 and String) and since I do, I feel as though I am a second-class citizen. Interestingly enough, it is Visual [...]]]></description>
		<wfw:commentRss>http://togaroga.com/2009/11/make-aliases-an-option/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Smarter type inference with C# 4</title>
		<link>http://togaroga.com/2009/11/smarter-type-inference-with-c-4/</link>
		<comments>http://togaroga.com/2009/11/smarter-type-inference-with-c-4/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 02:48:01 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[type-inference]]></category>

		<guid isPermaLink="false">http://togaroga.com/blog/?p=257</guid>
		<description><![CDATA[Here is a new addition to the C# language in version 4 that doesn&#8217;t seem to be getting much attention. The type inference algorithm has become smarter and for the first time we are able to infer generic type arguments from the return types of methods in certain cases. Consider this example that compiles in [...]]]></description>
		<wfw:commentRss>http://togaroga.com/2009/11/smarter-type-inference-with-c-4/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

