<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>gwerren.com</title>
		<link>http://gwerren.com</link>
		<description>Software development - mainly C#</description>
		<atom:link href="http://gwerren.com/rss.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Using A Parse Tree</title>
				<link>http://gwerren.com/Blog/Posts/usingAParseTree</link>
				<guid>http://gwerren.com/Blog/Posts/usingAParseTree</guid>
				<pubDate>Mon, 22 Jun 2020 00:00:00 GMT</pubDate>
				<description>Using a parse tree to build a simple language implementation in C#.</description>
			</item>
			<item>
				<title>Simple C# Parser</title>
				<link>http://gwerren.com/Blog/Posts/simpleCSharpParser</link>
				<guid>http://gwerren.com/Blog/Posts/simpleCSharpParser</guid>
				<pubDate>Thu, 14 May 2020 00:00:00 GMT</pubDate>
				<description>A look at how to build a parser for a simple language in C# based on a set of language tokens.</description>
			</item>
			<item>
				<title>Simple C# Tokenizer Using Regex</title>
				<link>http://gwerren.com/Blog/Posts/simpleCSharpTokenizerUsingRegex</link>
				<guid>http://gwerren.com/Blog/Posts/simpleCSharpTokenizerUsingRegex</guid>
				<pubDate>Tue, 28 Apr 2020 00:00:00 GMT</pubDate>
				<description>A look at how to build a tokenizer for a simple language in C# using the built in Regex utility.</description>
			</item>
			<item>
				<title>HangFire as a Service Bus</title>
				<link>http://gwerren.com/Blog/Posts/hangfireAsAServiceBus</link>
				<guid>http://gwerren.com/Blog/Posts/hangfireAsAServiceBus</guid>
				<pubDate>Wed, 22 Apr 2020 00:00:00 GMT</pubDate>
				<description>An exploration of a way to use HangFire in a service-bus-like manner within a single application.</description>
			</item>
			<item>
				<title>Mercurial CSV Log</title>
				<link>http://gwerren.com/Blog/Posts/mercurialCsvLog</link>
				<guid>http://gwerren.com/Blog/Posts/mercurialCsvLog</guid>
				<pubDate>Mon, 13 May 2019 00:00:00 GMT</pubDate>
				<description>Generating a filtered CSV file of commits from Mercurial.</description>
			</item>
			<item>
				<title>MVVM and Code Behind</title>
				<link>http://gwerren.com/Blog/Posts/mvvmCodeBehind</link>
				<guid>http://gwerren.com/Blog/Posts/mvvmCodeBehind</guid>
				<pubDate>Wed, 20 Mar 2019 00:00:00 GMT</pubDate>
				<description>A look at code behind and why, when used properly, it isn't anti-MVVM</description>
			</item>
			<item>
				<title>Introducing Multi-Caret</title>
				<link>http://gwerren.com/Blog/Posts/introducingMultiCaret</link>
				<guid>http://gwerren.com/Blog/Posts/introducingMultiCaret</guid>
				<pubDate>Mon, 04 Feb 2019 00:00:00 GMT</pubDate>
				<description>A Visual Studio plugin for multi-point editing</description>
			</item>
			<item>
				<title>Basic Casting in C#</title>
				<link>http://gwerren.com/Blog/Posts/basicCastingInCSharp</link>
				<guid>http://gwerren.com/Blog/Posts/basicCastingInCSharp</guid>
				<pubDate>Mon, 26 Feb 2018 00:00:00 GMT</pubDate>
				<description>Good and bad ways to cast between types in C#.</description>
			</item>
			<item>
				<title>Reporting Exceptions</title>
				<link>http://gwerren.com/Blog/Posts/reportingExceptions</link>
				<guid>http://gwerren.com/Blog/Posts/reportingExceptions</guid>
				<pubDate>Thu, 11 Jan 2018 00:00:00 GMT</pubDate>
				<description>Great exception reporting to make your users happy and your life easy.</description>
			</item>
			<item>
				<title>Is Linq X-OrDefault Evil?</title>
				<link>http://gwerren.com/Blog/Posts/isLinqXOrDefaultEvil</link>
				<guid>http://gwerren.com/Blog/Posts/isLinqXOrDefaultEvil</guid>
				<pubDate>Wed, 10 Jan 2018 00:00:00 GMT</pubDate>
				<description>.FirstOrDefault() and friends are often used incorrectly, here we take a look at which of the &quot;select one&quot; methods to use when and how to choose.</description>
			</item>
			<item>
				<title>Fail Early In Code</title>
				<link>http://gwerren.com/Blog/Posts/failEarlyInCode</link>
				<guid>http://gwerren.com/Blog/Posts/failEarlyInCode</guid>
				<pubDate>Tue, 09 Jan 2018 00:00:00 GMT</pubDate>
				<description>When writing code we should always consider error cases, this is a good thing. When attempting to handle an error case however...</description>
			</item>
			<item>
				<title>Rethrowing Exceptions</title>
				<link>http://gwerren.com/Blog/Posts/rethrowingExceptions</link>
				<guid>http://gwerren.com/Blog/Posts/rethrowingExceptions</guid>
				<pubDate>Tue, 19 Dec 2017 00:00:00 GMT</pubDate>
				<description>How to (and not to) re-throw exceptions.</description>
			</item>
	</channel>
</rss>