<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>RikWare</title>
    <description>...</description>
    <link>http://www.rikware.com/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.Net Syndication Generator 1.0.0.0 (http://dotnetblogengine.net/)</generator>
    <language>en-AU</language>
    <blogChannel:blogRoll>http://www.rikware.com/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.dotnetblogengine.net/syndication.axd?format=rss</blogChannel:blink>
    <dc:creator>Richard Mason</dc:creator>
    <dc:description>...</dc:description>
    <dc:title>RikWare</dc:title>
    <geo:lat>0.000000</geo:lat>
    <geo:long>0.000000</geo:long>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://www.rikware.com/WebLog.rss" type="application/rss+xml" /><feedburner:emailServiceId>RichardsRamblings</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Fwww.rikware.com%2FWebLog.rss" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Fwww.rikware.com%2FWebLog.rss" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Fwww.rikware.com%2FWebLog.rss" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://www.rikware.com/WebLog.rss" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Fwww.rikware.com%2FWebLog.rss" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Fwww.rikware.com%2FWebLog.rss" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Fwww.rikware.com%2FWebLog.rss" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
      <title>LINQ Distinct without IEqualityComparer</title>
      <description>&lt;p&gt;
One annoying issue with the LINQ Distinct function is that it requires an IEqualityComparer. Often I&amp;#39;d (and many others based on the info out there) would prefer to just provide a lamdba indicating which field to compare on, or simply a predicate for doing the compare.
&lt;/p&gt;
&lt;p&gt;
There&amp;#39;s at least one solution out there which uses a generic implementation of IEqualityComparer which works fine and another which simply implements the Distinct iteratively. Instead I figured you could instead build it up using Reduce... woops I mean Aggregate.
&lt;/p&gt;
&lt;pre&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial; font-size: 13px"&gt;&lt;font face="Consolas" size="2" color="#0000ff"&gt;&lt;font face="Consolas" size="2" color="#0000ff"&gt;&lt;font face="Consolas" size="2" color="#0000ff"&gt;static&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas" size="2"&gt;&lt;font face="Consolas" size="2"&gt;&amp;nbsp;IEnumerable&amp;lt;T&amp;gt; Distinct&amp;lt;T&amp;gt;(this IEnumerable&amp;lt;T&amp;gt; list, Func&amp;lt;T, T,&amp;nbsp;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas" size="2" color="#0000ff"&gt;&lt;font face="Consolas" size="2" color="#0000ff"&gt;&lt;font face="Consolas" size="2" color="#0000ff"&gt;bool&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas" size="2"&gt;&lt;font face="Consolas" size="2"&gt;&amp;gt; comparer)&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial; font-size: 13px"&gt;&lt;font face="Consolas" size="2"&gt;&lt;font face="Consolas" size="2"&gt;{&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial; font-size: 13px"&gt;&lt;font face="Consolas" size="2"&gt;&lt;font face="Consolas" size="2"&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas" size="2" color="#0000ff"&gt;&lt;font face="Consolas" size="2" color="#0000ff"&gt;&lt;font face="Consolas" size="2" color="#0000ff"&gt;  return&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas" size="2"&gt;&lt;font face="Consolas" size="2"&gt;&amp;nbsp;list.Aggregate((IEnumerable&amp;lt;T&amp;gt;)&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas" size="2" color="#0000ff"&gt;&lt;font face="Consolas" size="2" color="#0000ff"&gt;&lt;font face="Consolas" size="2" color="#0000ff"&gt;new&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas" size="2"&gt;&lt;font face="Consolas" size="2"&gt;&amp;nbsp;T[&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas" size="2" color="#c81efa"&gt;&lt;font face="Consolas" size="2" color="#c81efa"&gt;&lt;font face="Consolas" size="2" color="#c81efa"&gt;0&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas" size="2"&gt;&lt;font face="Consolas" size="2"&gt;],&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial; font-size: 13px"&gt;&lt;font face="Consolas" size="2"&gt;&lt;font face="Consolas" size="2"&gt;    (a, b) =&amp;gt; a.Any(c =&amp;gt; comparer(c, b)) ? a : a.Concat(&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas" size="2" color="#0000ff"&gt;&lt;font face="Consolas" size="2" color="#0000ff"&gt;&lt;font face="Consolas" size="2" color="#0000ff"&gt;new&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas" size="2"&gt;&lt;font face="Consolas" size="2"&gt;[] {b}),&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial; font-size: 13px"&gt;&lt;font face="Consolas" size="2"&gt;&lt;font face="Consolas" size="2"&gt;    a =&amp;gt; a);&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial; font-size: 13px"&gt;&lt;font face="Consolas" size="2"&gt;&lt;font face="Consolas" size="2"&gt;}&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&amp;nbsp;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="Apple-style-span" style="white-space: normal"&gt;static IEnumerable&amp;lt;T&amp;gt; Distinct&amp;lt;T&amp;gt;(IEnumerable&amp;lt;T&amp;gt; list, Func&amp;lt;T, object&amp;gt; selector)&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="Apple-style-span" style="white-space: normal"&gt;{&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="Apple-tab-span" style="white-space: pre"&gt;	&lt;/span&gt;&lt;span class="Apple-style-span" style="white-space: normal"&gt;return Distinct(list, (a, b) =&amp;gt; selector(a).Equals(selector(b)));&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial; font-size: 13px"&gt;&lt;font face="Consolas" size="2"&gt;&lt;font face="Consolas" size="2"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; font-family: Verdana; white-space: normal; font-size: 11px"&gt;}&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&amp;nbsp;
&lt;/pre&gt;
&lt;p&gt;
Two versions, one for just specifying that the compare should happen on some calculated value and another for providing a custom compare function.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Now this might not be the most efficient method of implementing this, but it&amp;#39;s kind of nice, but I&amp;#39;m a bit unhappy with the fact that this is no longer a lazy list. I have a solution for that as well, but it&amp;#39;s nowhere near as clean as this :(
&lt;/p&gt;
</description>
      <link>http://feedproxy.google.com/~r/RichardsRamblings/~3/4eJVBsnfq2w/post.aspx</link>
      <author>Richard Mason</author>
      <comments>http://www.rikware.com/post/LINQ-Distinct-without-IEqualityComparer.aspx#comment</comments>
      <guid isPermaLink="false">http://www.rikware.com/post.aspx?id=fcaf37b1-dcf8-4879-bd38-e9f73b54bd4d</guid>
      <pubDate>Mon, 17 Aug 2009 22:11:00 +1000</pubDate>
      <category>Programming</category>
      <category>LINQ</category>
      <dc:publisher>Richard Mason</dc:publisher>
      <pingback:server>http://www.rikware.com/pingback.axd</pingback:server>
      <pingback:target>http://www.rikware.com/post.aspx?id=fcaf37b1-dcf8-4879-bd38-e9f73b54bd4d</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.rikware.com/trackback.axd?id=fcaf37b1-dcf8-4879-bd38-e9f73b54bd4d</trackback:ping>
      <wfw:comment>http://www.rikware.com/post/LINQ-Distinct-without-IEqualityComparer.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.rikware.com/syndication.axd?post=fcaf37b1-dcf8-4879-bd38-e9f73b54bd4d</wfw:commentRss>
    <feedburner:origLink>http://www.rikware.com/post.aspx?id=fcaf37b1-dcf8-4879-bd38-e9f73b54bd4d</feedburner:origLink></item>
    <item>
      <title>Quiet Time Delivers AussieBushwalking</title>
      <description>&lt;p&gt;It&amp;#39;s been a bit quiet on the RikWare blog in the last... umm... well quite a while! But whilst my blog has been quiet there&amp;#39;s been plenty of work going on behind the scenes.&lt;/p&gt;&lt;p&gt;I&amp;#39;ve finally released my latest project - &lt;a href="http://www.aussiebushwalking.com/"&gt;Aussie Bushwalking&lt;/a&gt;&amp;nbsp;- is now in the public arena. Aussie Bushwalking is basically a collaborative site for sharing bushwalking information. It really comes about from my love of bushwalking and the lack of ideas for walks in my area :) Hopefully Aussie Bushwalking will help me, and others, find new ideas for bushwalks.&lt;/p&gt;&lt;p&gt;I&amp;#39;ve still got a pile more ideas to add, but if you&amp;#39;ve got any ideas then please send them through. And don&amp;#39;t worry, whilst the site is focused on Australia/New Zealand, there&amp;#39;s already one European walk out there and I&amp;#39;m keen to get other overseas walks listed.&lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/RichardsRamblings/~3/XgHKHYT-B-Y/post.aspx</link>
      <author>Richard Mason</author>
      <comments>http://www.rikware.com/post/Quiet-Time-Delivers-AussieBushwalking.aspx#comment</comments>
      <guid isPermaLink="false">http://www.rikware.com/post.aspx?id=0845e6cd-a6e2-490c-8461-fe96e206a472</guid>
      <pubDate>Tue, 26 May 2009 20:49:00 +1000</pubDate>
      <category>Bushwalking</category>
      <dc:publisher>Richard Mason</dc:publisher>
      <pingback:server>http://www.rikware.com/pingback.axd</pingback:server>
      <pingback:target>http://www.rikware.com/post.aspx?id=0845e6cd-a6e2-490c-8461-fe96e206a472</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.rikware.com/trackback.axd?id=0845e6cd-a6e2-490c-8461-fe96e206a472</trackback:ping>
      <wfw:comment>http://www.rikware.com/post/Quiet-Time-Delivers-AussieBushwalking.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.rikware.com/syndication.axd?post=0845e6cd-a6e2-490c-8461-fe96e206a472</wfw:commentRss>
    <feedburner:origLink>http://www.rikware.com/post.aspx?id=0845e6cd-a6e2-490c-8461-fe96e206a472</feedburner:origLink></item>
    <item>
      <title>RikMigrations 0.2 Released</title>
      <description>&lt;p&gt;
There&amp;#39;s a new release of RikMigrations available. This includes a lot of bug fixes from the original release and is the first since the development team expanded. 
&lt;/p&gt;
&lt;p&gt;
Big thanks to Andy Stewart in particular who has pushed the release out the door and is actively working on more improvements, particularly cleaning up my original messy code. 
&lt;/p&gt;
&lt;p&gt;
This also marks the official move of the codebase from &lt;a href="http://www.codeplex.com/RikMigrations"&gt;CodePlex&lt;/a&gt; to &lt;a href="http://code.google.com/p/rikmigrations/"&gt;Google Code&lt;/a&gt;. This change is mainly to get around problems with CodePlex&amp;#39;s source control. 
&lt;/p&gt;
&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.rikware.com%2fpost%2fRikMigrations-02-Released.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.rikware.com%2fpost%2fRikMigrations-02-Released.aspx" border="0" alt="kick it on DotNetKicks.com" width="82" height="18" /&gt;&lt;/a&gt; 
</description>
      <link>http://feedproxy.google.com/~r/RichardsRamblings/~3/I_7q82Fegys/post.aspx</link>
      <author>Richard Mason</author>
      <comments>http://www.rikware.com/post/RikMigrations-02-Released.aspx#comment</comments>
      <guid isPermaLink="false">http://www.rikware.com/post.aspx?id=2ce1860d-5cfd-454c-acc3-df1daa9ecfe0</guid>
      <pubDate>Tue, 13 May 2008 18:08:00 +1000</pubDate>
      <category>RikMigrations</category>
      <dc:publisher>Richard Mason</dc:publisher>
      <pingback:server>http://www.rikware.com/pingback.axd</pingback:server>
      <pingback:target>http://www.rikware.com/post.aspx?id=2ce1860d-5cfd-454c-acc3-df1daa9ecfe0</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.rikware.com/trackback.axd?id=2ce1860d-5cfd-454c-acc3-df1daa9ecfe0</trackback:ping>
      <wfw:comment>http://www.rikware.com/post/RikMigrations-02-Released.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.rikware.com/syndication.axd?post=2ce1860d-5cfd-454c-acc3-df1daa9ecfe0</wfw:commentRss>
    <feedburner:origLink>http://www.rikware.com/post.aspx?id=2ce1860d-5cfd-454c-acc3-df1daa9ecfe0</feedburner:origLink></item>
    <item>
      <title>TimeSpanPicker released under BSD</title>
      <description>&lt;p align="left"&gt;
A request via email has encouraged me to release the &lt;a href="http://www.rikware.com/post/TimeSpanPicker.aspx"&gt;TimeSpanPicker&lt;/a&gt;&amp;nbsp;control I blogged about a few years ago. The details are available at &lt;a href="http://www.rikware.com/page/TimeSpanPicker.aspx"&gt;http://www.rikware.com/page/TimeSpanPicker.aspx&lt;/a&gt;&amp;nbsp;but I&amp;#39;ve copied them in here for ease of reading:&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
The TimeSpanPicker is a Windows Forms&amp;nbsp;UpDown control for editing TimeSpan values. It is currently used in RikPVR (&lt;a href="http://www.rikpvr.com/"&gt;http://www.rikpvr.com/&lt;/a&gt;) 
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.rikware.com/image.axd?picture=TimeSpanPicker.png" alt="" width="277" height="40" /&gt; 
&lt;/p&gt;
&lt;p&gt;
The control is provided, as is, under a BSD license (meaning it&amp;#39;s free to use and&amp;nbsp;alter in free or commercial projects). Any improvements will be greatly appreciated. 
&lt;/p&gt;
&lt;p&gt;
A Visual Studio 2008 solution (including binaries) containing the project is available here: &lt;a href="http://www.rikware.com/file.axd?file=TimeSpanPicker.zip"&gt;TimeSpanPicker.zip (121.65 kb)&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
The project targets .NET 2.0 and should be simple to recompile in Visual Studio 2005. 
&lt;/p&gt;
&lt;p&gt;
The control supports input via keyboard, mouse wheel or via the up/down buttons. It is also theme aware. 
&lt;/p&gt;
&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.rikware.com%2fpost%2fTimeSpanPicker-released-under-BSD.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.rikware.com%2fpost%2fTimeSpanPicker-released-under-BSD.aspx" border="0" alt="kick it on DotNetKicks.com" width="82" height="18" /&gt;&lt;/a&gt; 
</description>
      <link>http://feedproxy.google.com/~r/RichardsRamblings/~3/BlrRoRv7itY/post.aspx</link>
      <author>Richard Mason</author>
      <comments>http://www.rikware.com/post/TimeSpanPicker-released-under-BSD.aspx#comment</comments>
      <guid isPermaLink="false">http://www.rikware.com/post.aspx?id=05672c34-3fd2-4856-b22c-12c4d0695b50</guid>
      <pubDate>Wed, 30 Apr 2008 22:49:00 +1000</pubDate>
      <category>Programming</category>
      <dc:publisher>Richard Mason</dc:publisher>
      <dc:description>A free Windows Forms control for choosing TimeSpan values.</dc:description>
      <pingback:server>http://www.rikware.com/pingback.axd</pingback:server>
      <pingback:target>http://www.rikware.com/post.aspx?id=05672c34-3fd2-4856-b22c-12c4d0695b50</pingback:target>
      <slash:comments>3</slash:comments>
      <trackback:ping>http://www.rikware.com/trackback.axd?id=05672c34-3fd2-4856-b22c-12c4d0695b50</trackback:ping>
      <wfw:comment>http://www.rikware.com/post/TimeSpanPicker-released-under-BSD.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.rikware.com/syndication.axd?post=05672c34-3fd2-4856-b22c-12c4d0695b50</wfw:commentRss>
    <feedburner:origLink>http://www.rikware.com/post.aspx?id=05672c34-3fd2-4856-b22c-12c4d0695b50</feedburner:origLink></item>
    <item>
      <title>RikMigrations - There was movement at the station</title>
      <description>&lt;p&gt;
&lt;a href="http://www.codeplex.com/RikMigrations"&gt;RikMigrations&lt;/a&gt; has started rolling again recently. It appears some posts on the &lt;a href="http://tech.groups.yahoo.com/group/altdotnet/msearch?query=migrations&amp;amp;charset=windows-1252"&gt;alt.net mailing list&lt;/a&gt; prompted a few people to check it out and even better some have signed on to contribute as well. This prompted me to commit the changes I&amp;#39;ve made in the last few months (I&amp;#39;d been meaning to do it but had been lazy). 
&lt;/p&gt;
&lt;p&gt;
There&amp;#39;s already the start of an msbuild task for RikMigrations and rumblings of a NANT one as well. Plus,&amp;nbsp;a nice little tweak to use generics to define column types so you can do this: 
&lt;/p&gt;
&lt;pre&gt;
t.AddColumn&amp;lt;int&amp;gt;(&amp;quot;ID&amp;quot;); 
&lt;/pre&gt;
&lt;p&gt;
And there&amp;#39;s also discussion starting around adding some ability to populate the database with initial values in migrations as well (&lt;a href="https://www.codeplex.com/Thread/View.aspx?ProjectName=RikMigrations&amp;amp;ThreadId=24868"&gt;https://www.codeplex.com/Thread/View.aspx?ProjectName=RikMigrations&amp;amp;ThreadId=24868&lt;/a&gt;) 
&lt;/p&gt;
&lt;p&gt;
PS. For the non-Australians out there the title refers to a &lt;a href="http://www.kmike.com/oz/SnowyRiver.htm" title="famous Australian poem"&gt;famous Australian poem&lt;/a&gt;. 
&lt;/p&gt;
&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.rikware.com%2fpost%2fRikMigrations---There-was-movement-at-the-station.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.rikware.com%2fpost%2fRikMigrations---There-was-movement-at-the-station.aspx" border="0" alt="kick it on DotNetKicks.com" width="82" height="18" /&gt;&lt;/a&gt; 
</description>
      <link>http://feedproxy.google.com/~r/RichardsRamblings/~3/GkRDulXvFio/post.aspx</link>
      <author>Richard Mason</author>
      <comments>http://www.rikware.com/post/RikMigrations---There-was-movement-at-the-station.aspx#comment</comments>
      <guid isPermaLink="false">http://www.rikware.com/post.aspx?id=3e22619e-e4be-4e4b-b366-b99f7605151c</guid>
      <pubDate>Fri, 28 Mar 2008 11:17:00 +1000</pubDate>
      <category>Programming</category>
      <category>RikMigrations</category>
      <dc:publisher>Richard Mason</dc:publisher>
      <pingback:server>http://www.rikware.com/pingback.axd</pingback:server>
      <pingback:target>http://www.rikware.com/post.aspx?id=3e22619e-e4be-4e4b-b366-b99f7605151c</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://www.rikware.com/trackback.axd?id=3e22619e-e4be-4e4b-b366-b99f7605151c</trackback:ping>
      <wfw:comment>http://www.rikware.com/post/RikMigrations---There-was-movement-at-the-station.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.rikware.com/syndication.axd?post=3e22619e-e4be-4e4b-b366-b99f7605151c</wfw:commentRss>
    <feedburner:origLink>http://www.rikware.com/post.aspx?id=3e22619e-e4be-4e4b-b366-b99f7605151c</feedburner:origLink></item>
    <item>
      <title>RikMigrations - Starting from an existing database</title>
      <description>&lt;p&gt;
RikMigrations includes support for generating an initial migration from an existing database. Currently this only supports SQL Server databases. The feature was included in the initial release, but hadn&amp;#39;t had much testing. Since then I&amp;#39;ve tested it on a database at &lt;a href="http://www.mquter.qut.edu.au"&gt;work &lt;/a&gt;and confirmed it&amp;#39;s working correctly (at least to some extent). The migration generator attempts to ensure tables are created in the correct order, but this feature was hacked in and needs improving. In doesn&amp;#39;t support circular dependencies so don&amp;#39;t even try.
&lt;/p&gt;
&lt;p&gt;
The generator only supports generating in C# at the moment, however it uses CodeDom so other support for other languages is simple to add and a quick hack of the code will provide a version for your favourite language.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
To generate a migration from a database use the following command line:
&lt;/p&gt;
&lt;p&gt;
RikMigrations auto -s:(local) -db:Test -f:Migration.cs&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
You can also add the &amp;quot;-sf&amp;quot; flag to write each table into a separate class, but make sure you include a &amp;quot;{0}&amp;quot; in the filename to indicate where to place the name of the table. 
&lt;/p&gt;
&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.rikware.com%2fpost%2fRikMigrations---Starting-from-an-existing-database.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.rikware.com%2fpost%2fRikMigrations---Starting-from-an-existing-database.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://feedproxy.google.com/~r/RichardsRamblings/~3/oKpEIEhvBHI/post.aspx</link>
      <author>Richard Mason</author>
      <comments>http://www.rikware.com/post/RikMigrations---Starting-from-an-existing-database.aspx#comment</comments>
      <guid isPermaLink="false">http://www.rikware.com/post.aspx?id=3da21496-e868-4381-b024-05716d333933</guid>
      <pubDate>Thu, 20 Dec 2007 11:44:00 +1000</pubDate>
      <category>RikMigrations</category>
      <dc:publisher>Richard Mason</dc:publisher>
      <pingback:server>http://www.rikware.com/pingback.axd</pingback:server>
      <pingback:target>http://www.rikware.com/post.aspx?id=3da21496-e868-4381-b024-05716d333933</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.rikware.com/trackback.axd?id=3da21496-e868-4381-b024-05716d333933</trackback:ping>
      <wfw:comment>http://www.rikware.com/post/RikMigrations---Starting-from-an-existing-database.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.rikware.com/syndication.axd?post=3da21496-e868-4381-b024-05716d333933</wfw:commentRss>
    <feedburner:origLink>http://www.rikware.com/post.aspx?id=3da21496-e868-4381-b024-05716d333933</feedburner:origLink></item>
    <item>
      <title>SQLite for RikMigrations</title>
      <description>&lt;p&gt;
I&amp;#39;ve just added support for &lt;a href="http://www.sqlite.org/"&gt;SQLite&lt;/a&gt; to &lt;a href="http://www.rikware.com/RikMigrations.html"&gt;RikMigrations&lt;/a&gt;. This was done mainly because I use SQLite to store data in &lt;a href="http://www.rikpvr.com/"&gt;RikPVR&lt;/a&gt; and I needed to expand the schema. I tossed up whether to go with the embedded sql scripts like I have been doing or put in the time to add support to RikMigrations so I could use it. Eventually I decided it would be worth the work of adding to RikMigrations, if only to test how well it would support alternate database providers.
&lt;/p&gt;
&lt;p&gt;
As expected, I had to refactor the code to support the change - alternate database providers wasn&amp;#39;t in the original RikMigrations design, though I had already started refactoring towards a provider pattern. However, the changes were actually fairly minimal. I encourage others to sign up and start adding support for other engines.
&lt;/p&gt;
&lt;p&gt;
Unfortunately, SQLite is a bit limited in some areas so not all features are supported. The biggest one is probably the inability to drop columns. There are workarounds for this in SQLite which I may look in to, but for the moment it will just throw an exception. Other ones I&amp;#39;ve run into is that you don&amp;#39;t seem to be able to add columns with PRIMARY KEY or UNIQUE constraints on them once the table is created, but they work fine if they&amp;#39;re added during the initial table construction.
&lt;/p&gt;
&lt;p&gt;
In other news I&amp;#39;ve added a couple of extra pages to the RikMigrations doco. I&amp;#39;ll keep adding to that bit by bit but if you have any specific questions drop me a comment or an email.
&lt;/p&gt;
&lt;p&gt;
Finally, here&amp;#39;s a quick bit of code in the meantime to show how to use SQLite instead of SQL Server. (This is only for programmatic access, I haven&amp;#39;t added the command line interface yet)
&lt;/p&gt;
&lt;pre class="code"&gt;
&lt;span style="color: #2b91af"&gt;DbProvider&lt;/span&gt;.DefaultConnectionString = &lt;span style="color: #a31515"&gt;@&amp;quot;Data Source=D:/TestDB.db&amp;quot;&lt;/span&gt;;
&lt;span style="color: #2b91af"&gt;MigrationManager&lt;/span&gt;.UpgradeMax(&lt;span style="color: blue"&gt;typeof&lt;/span&gt;(&lt;span style="color: #2b91af"&gt;Joe1&lt;/span&gt;).Assembly, &lt;span style="color: blue"&gt;typeof&lt;/span&gt;(&lt;span style="color: #2b91af"&gt;SqliteProvider&lt;/span&gt;));
&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;p&gt;
The actual migrations stay exactly the same, except you may run into the limitations I mentioned earlier. I&amp;#39;ll try to document them somewhere.
&lt;/p&gt;
&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.rikware.com%2fpost%2fSQLite-for-RikMigrations.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.rikware.com%2fpost%2fSQLite-for-RikMigrations.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
</description>
      <link>http://feedproxy.google.com/~r/RichardsRamblings/~3/L1UWQ12wgMs/post.aspx</link>
      <author>Richard Mason</author>
      <comments>http://www.rikware.com/post/SQLite-for-RikMigrations.aspx#comment</comments>
      <guid isPermaLink="false">http://www.rikware.com/post.aspx?id=e572d681-8307-439f-9917-df0eabfe8782</guid>
      <pubDate>Tue, 27 Nov 2007 10:55:00 +1000</pubDate>
      <category>RikMigrations</category>
      <dc:publisher>Richard Mason</dc:publisher>
      <pingback:server>http://www.rikware.com/pingback.axd</pingback:server>
      <pingback:target>http://www.rikware.com/post.aspx?id=e572d681-8307-439f-9917-df0eabfe8782</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.rikware.com/trackback.axd?id=e572d681-8307-439f-9917-df0eabfe8782</trackback:ping>
      <wfw:comment>http://www.rikware.com/post/SQLite-for-RikMigrations.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.rikware.com/syndication.axd?post=e572d681-8307-439f-9917-df0eabfe8782</wfw:commentRss>
    <feedburner:origLink>http://www.rikware.com/post.aspx?id=e572d681-8307-439f-9917-df0eabfe8782</feedburner:origLink></item>
    <item>
      <title>Announcing RikMigrations</title>
      <description>&lt;p&gt;
Over the last couple of weeks I&amp;#39;ve been working on a migrations framework for .NET called RikMigrations. There&amp;#39;s a couple of existing frameworks but they&amp;#39;re mostly integrated in other large projects like SubSonic or didn&amp;#39;t quite fit my needs/wants. 
&lt;/p&gt;
&lt;p&gt;
RikMigrations is currently relatively small and simple, but I am releasing it under a BSD license on CodePlex so others can jump on board and build it up. Check out the project homepage at &lt;a href="http://www.rikware.com/RikMigrations.html"&gt;http://www.rikware.com/RikMigrations.html&lt;/a&gt; to find out more, including a simple tutorial demonstrating its use.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.rikware.com%2fpost%2fAnnouncing-RikMigrations.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.rikware.com%2fpost%2fAnnouncing-RikMigrations.aspx" border="0" alt="kick it on DotNetKicks.com" width="82" height="18" /&gt;&lt;/a&gt; 
&lt;/p&gt;
</description>
      <link>http://feedproxy.google.com/~r/RichardsRamblings/~3/NAi-XX6P59U/post.aspx</link>
      <author>Richard Mason</author>
      <comments>http://www.rikware.com/post/Announcing-RikMigrations.aspx#comment</comments>
      <guid isPermaLink="false">http://www.rikware.com/post.aspx?id=579bd883-190c-4e21-a86a-6d9b85cdfa11</guid>
      <pubDate>Thu, 22 Nov 2007 09:45:00 +1000</pubDate>
      <category>Programming</category>
      <category>RikMigrations</category>
      <dc:publisher>Richard Mason</dc:publisher>
      <dc:description>Announcing the initial release of RikMigrations, a migrations framework for .NET written in C#</dc:description>
      <pingback:server>http://www.rikware.com/pingback.axd</pingback:server>
      <pingback:target>http://www.rikware.com/post.aspx?id=579bd883-190c-4e21-a86a-6d9b85cdfa11</pingback:target>
      <slash:comments>13</slash:comments>
      <trackback:ping>http://www.rikware.com/trackback.axd?id=579bd883-190c-4e21-a86a-6d9b85cdfa11</trackback:ping>
      <wfw:comment>http://www.rikware.com/post/Announcing-RikMigrations.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.rikware.com/syndication.axd?post=579bd883-190c-4e21-a86a-6d9b85cdfa11</wfw:commentRss>
    <feedburner:origLink>http://www.rikware.com/post.aspx?id=579bd883-190c-4e21-a86a-6d9b85cdfa11</feedburner:origLink></item>
    <item>
      <title>Redirect domain names using UrlRewrite.NET</title>
      <description>
&lt;p&gt;&lt;a href="http://www.urlrewriter.net/" class="ExternalLink"&gt;UrlRewriter.NET&lt;/a&gt; is a great tool for url rewriting in .NET. It can even be used to redirect domain names with.&lt;/p&gt;

	&lt;p&gt;e.g. RikPVR's main address is &lt;a href="http://www.rikpvr.com/," class="ExternalLink"&gt;http://www.rikpvr.com/,&lt;/a&gt; but it can also be found at &lt;a href="http://www.rikdvr.com/," class="ExternalLink"&gt;http://www.rikdvr.com/,&lt;/a&gt;&lt;a href="http://rikdvr.com/" class="ExternalLink"&gt;http://rikdvr.com/&lt;/a&gt; or &lt;a href="http://rikpvr.com/" class="ExternalLink"&gt;http://rikpvr.com/&lt;/a&gt; but ideally these should just redirect to the primary address. Using a host condition in UrlRewriter.NET makes this easy:&lt;/p&gt;

	&lt;pre class="Code" xmlns:Macro="http://rikware.com/RikWik/Macro" xmlns:xhtml="http://www.w3.org/1999/xhtml"&gt;&lt;br&gt;&amp;lt;if header="HOST" match="^((www.rikdvr.com)|(rikdvr.com)|(rikpvr.com))$"&amp;gt;&lt;br&gt;	&amp;lt;redirect name="RikDVR" url="^(.*)$" to="http://www.rikpvr.com$1" /&amp;gt;&lt;br&gt;&amp;lt;/if&amp;gt;&lt;br&gt;&lt;/pre&gt;

	</description>
      <link>http://feedproxy.google.com/~r/RichardsRamblings/~3/laqe48ZzHCE/post.aspx</link>
      <author>admin</author>
      <comments>http://www.rikware.com/post/Redirect-domain-names-using-UrlRewriteNET.aspx#comment</comments>
      <guid isPermaLink="false">http://www.rikware.com/post.aspx?id=54a68a20-55ed-4e8f-a839-9d31728df1f2</guid>
      <pubDate>Tue, 30 Oct 2007 16:43:57 +1000</pubDate>
      <category>General</category>
      <dc:publisher>admin</dc:publisher>
      <pingback:server>http://www.rikware.com/pingback.axd</pingback:server>
      <pingback:target>http://www.rikware.com/post.aspx?id=54a68a20-55ed-4e8f-a839-9d31728df1f2</pingback:target>
      <slash:comments>4</slash:comments>
      <trackback:ping>http://www.rikware.com/trackback.axd?id=54a68a20-55ed-4e8f-a839-9d31728df1f2</trackback:ping>
      <wfw:comment>http://www.rikware.com/post/Redirect-domain-names-using-UrlRewriteNET.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.rikware.com/syndication.axd?post=54a68a20-55ed-4e8f-a839-9d31728df1f2</wfw:commentRss>
    <feedburner:origLink>http://www.rikware.com/post.aspx?id=54a68a20-55ed-4e8f-a839-9d31728df1f2</feedburner:origLink></item>
    <item>
      <title>RikPVR 1.0 Released</title>
      <description>
&lt;p&gt;RikPVR is now available to everyone. After a beta program including testers throughout Australia, the UK and Europe, RikPVR v1.0 has been released.&lt;/p&gt;

	&lt;p&gt;And to celebrate the release a special introductory price of $30 (Australian) is available till the end of November. This gives you enough time to download the free 30 day trial and still purchase RikPVR at a discounted price.&lt;/p&gt;

	&lt;p&gt;Head over to &lt;a href="http://www.rikpvr.com/" class="ExternalLink"&gt;http://www.rikpvr.com/&lt;/a&gt; to find out more.&lt;br&gt;&lt;/p&gt;

	</description>
      <link>http://feedproxy.google.com/~r/RichardsRamblings/~3/BMMO1T9FpMI/post.aspx</link>
      <author>admin</author>
      <comments>http://www.rikware.com/post/RikPVR-10-Released.aspx#comment</comments>
      <guid isPermaLink="false">http://www.rikware.com/post.aspx?id=cfa925ac-1b9e-447d-8ad1-6db2c28d38ea</guid>
      <pubDate>Fri, 19 Oct 2007 12:28:33 +1000</pubDate>
      <category>General</category>
      <dc:publisher>admin</dc:publisher>
      <pingback:server>http://www.rikware.com/pingback.axd</pingback:server>
      <pingback:target>http://www.rikware.com/post.aspx?id=cfa925ac-1b9e-447d-8ad1-6db2c28d38ea</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.rikware.com/trackback.axd?id=cfa925ac-1b9e-447d-8ad1-6db2c28d38ea</trackback:ping>
      <wfw:comment>http://www.rikware.com/post/RikPVR-10-Released.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.rikware.com/syndication.axd?post=cfa925ac-1b9e-447d-8ad1-6db2c28d38ea</wfw:commentRss>
    <feedburner:origLink>http://www.rikware.com/post.aspx?id=cfa925ac-1b9e-447d-8ad1-6db2c28d38ea</feedburner:origLink></item>
    <item>
      <title>Herbie Hancock on Wired</title>
      <description>
&lt;p&gt;There's a great interview with Herbie Hancock out on Wired - &lt;a href="http://blog.wired.com/music/2007/10/herbie-hancock-.html" class="ExternalLink"&gt;http://blog.wired.com/music/2007/10/herbie-hancock-.html&lt;/a&gt;&lt;/p&gt;

	&lt;p&gt;Herbie is one of my favourite artists. I can't say I like all of his work, but I like a lot of it... and in many cases I like it a lot! I like looking at jazz legends and picking similarities between myself and then so I can keep deluding myself that one day I'll be able to play something like what I'd like to play (I'm a loooong way off that at the moment). In the case of Herbie I of course pick the fact that he did electrical engineering for awhile, and he obviously did it for a love of technology which led him to his later work as a synth pioneer.&lt;/p&gt;

	&lt;p&gt;Anyway, the interview's good. One point he makes which is very important for both mussos and tech people is this:&lt;/p&gt;

	&lt;p&gt;&lt;pre class="Code" xmlns:Macro="http://rikware.com/RikWik/Macro" xmlns:xhtml="http://www.w3.org/1999/xhtml"&gt;My advice is, don't depend on the technology. &lt;br&gt;The music has nothing to do with the technology. &lt;br&gt;If you're doing music, the music has to come first. &lt;br&gt;And the technology is a tool for being able to produce &lt;br&gt;the things that you feel. Not the other way around&lt;/pre&gt;&lt;/p&gt;

	&lt;p&gt;This holds for programming too. The point is the end result, not what language or platform you use to get there. Obviously you need  to choose the best tools for the job, but ultimately the focus should be on what you're actually trying to do, not insisting on using your favourite tool, or the latest fad.&lt;/p&gt;

	&lt;p&gt;The other good one is something I've noticed in my own experiences too:&lt;/p&gt;

	&lt;pre class="Code" xmlns:Macro="http://rikware.com/RikWik/Macro" xmlns:xhtml="http://www.w3.org/1999/xhtml"&gt;Interviewer: As a young child, you had serious talent &lt;br&gt;in the classical area, and a passion for electronics early too, &lt;br&gt;later double-majoring in music and electrical engineering. My &lt;br&gt;dad is also a pianist, and he also almost went into engineering &lt;br&gt;at one point. &lt;br&gt;&lt;br&gt;Herbie: (laughs) I think there's a relationship: math. &lt;br&gt;Particularly with jazz, but not necessarily only with jazz, &lt;br&gt;with classical music too. There's also a sense of exploration &lt;br&gt;that's involved with science and with music that links them together. &lt;br&gt;&lt;/pre&gt;

	</description>
      <link>http://feedproxy.google.com/~r/RichardsRamblings/~3/vJWgNSUsECQ/post.aspx</link>
      <author>admin</author>
      <comments>http://www.rikware.com/post/Herbie-Hancock-on-Wired.aspx#comment</comments>
      <guid isPermaLink="false">http://www.rikware.com/post.aspx?id=28df5dfb-e246-4d07-bf59-89b2f3b09e8b</guid>
      <pubDate>Mon, 01 Oct 2007 12:37:44 +1000</pubDate>
      <category>General</category>
      <dc:publisher>admin</dc:publisher>
      <pingback:server>http://www.rikware.com/pingback.axd</pingback:server>
      <pingback:target>http://www.rikware.com/post.aspx?id=28df5dfb-e246-4d07-bf59-89b2f3b09e8b</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.rikware.com/trackback.axd?id=28df5dfb-e246-4d07-bf59-89b2f3b09e8b</trackback:ping>
      <wfw:comment>http://www.rikware.com/post/Herbie-Hancock-on-Wired.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.rikware.com/syndication.axd?post=28df5dfb-e246-4d07-bf59-89b2f3b09e8b</wfw:commentRss>
    <feedburner:origLink>http://www.rikware.com/post.aspx?id=28df5dfb-e246-4d07-bf59-89b2f3b09e8b</feedburner:origLink></item>
    <item>
      <title>Identity 2.0</title>
      <description>
&lt;p&gt;Here's a somewhat interesting presentation about identity and the web which I felt was worth the time to watch (it wasn't too long) - &lt;a href="http://identity20.com/media/OSCON2005/" class="ExternalLink"&gt;http://identity20.com/media/OSCON2005/&lt;/a&gt;&lt;/p&gt;

	&lt;p&gt;Well presented too!&lt;/p&gt;

	</description>
      <link>http://feedproxy.google.com/~r/RichardsRamblings/~3/SZwHSbGN5LY/post.aspx</link>
      <author>admin</author>
      <comments>http://www.rikware.com/post/Identity-20.aspx#comment</comments>
      <guid isPermaLink="false">http://www.rikware.com/post.aspx?id=1419cff8-9676-4dfb-ba11-722d55250cc4</guid>
      <pubDate>Tue, 18 Sep 2007 14:31:42 +1000</pubDate>
      <category>General</category>
      <dc:publisher>admin</dc:publisher>
      <pingback:server>http://www.rikware.com/pingback.axd</pingback:server>
      <pingback:target>http://www.rikware.com/post.aspx?id=1419cff8-9676-4dfb-ba11-722d55250cc4</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.rikware.com/trackback.axd?id=1419cff8-9676-4dfb-ba11-722d55250cc4</trackback:ping>
      <wfw:comment>http://www.rikware.com/post/Identity-20.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.rikware.com/syndication.axd?post=1419cff8-9676-4dfb-ba11-722d55250cc4</wfw:commentRss>
    <feedburner:origLink>http://www.rikware.com/post.aspx?id=1419cff8-9676-4dfb-ba11-722d55250cc4</feedburner:origLink></item>
    <item>
      <title>Announcing RikPVR</title>
      <description>
&lt;p&gt;I've been quiet for awhile but not without reason. I've been hard at work converting &lt;a href="http://www.rikware.com/WebLog/TV+Prognosticator.html" class="ExternalLink"&gt;TVP&lt;/a&gt; (our Imagine Cup entry from a few years ago) into a new product - &lt;a href="http://www.rikware.com//www.rikpvr.com/" class="ExternalLink"&gt;RikPVR&lt;/a&gt;. I've just launched the beta program for RikPVR so if you have a digital TV card and you want to start using the easiest recording software available for it, go sign up for the &lt;a href="http://www.rikware.com//www.rikpvr.com/Beta.aspx" class="ExternalLink"&gt;RikPVR beta program&lt;/a&gt;.&lt;/p&gt;

	&lt;p&gt;I've launched a new blog specifically for RikPVR over at &lt;a href="http://www.rikpvr.com/blog.aspx." class="ExternalLink"&gt;http://www.rikpvr.com/blog.aspx.&lt;/a&gt; I'll be keeping this blog updated with major announcements, but if you want to keep right on top of RikPVR then subscribe over there as well.&lt;/p&gt;

	</description>
      <link>http://feedproxy.google.com/~r/RichardsRamblings/~3/qb4bZrj6LdM/post.aspx</link>
      <author>admin</author>
      <comments>http://www.rikware.com/post/Announcing-RikPVR.aspx#comment</comments>
      <guid isPermaLink="false">http://www.rikware.com/post.aspx?id=ae4493d3-c95b-41d2-a7cb-cf2be9afd32c</guid>
      <pubDate>Wed, 15 Aug 2007 03:48:48 +1000</pubDate>
      <category>General</category>
      <dc:publisher>admin</dc:publisher>
      <pingback:server>http://www.rikware.com/pingback.axd</pingback:server>
      <pingback:target>http://www.rikware.com/post.aspx?id=ae4493d3-c95b-41d2-a7cb-cf2be9afd32c</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.rikware.com/trackback.axd?id=ae4493d3-c95b-41d2-a7cb-cf2be9afd32c</trackback:ping>
      <wfw:comment>http://www.rikware.com/post/Announcing-RikPVR.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.rikware.com/syndication.axd?post=ae4493d3-c95b-41d2-a7cb-cf2be9afd32c</wfw:commentRss>
    <feedburner:origLink>http://www.rikware.com/post.aspx?id=ae4493d3-c95b-41d2-a7cb-cf2be9afd32c</feedburner:origLink></item>
    <item>
      <title>How to go from app to product</title>
      <description>
&lt;p&gt;With my PhD edging closer and closer to submission, I'm increasingly spending time thinking about my upcoming foray into the world of the micro ISVs. There's so many things that need to happen to take my current application and turn it into a product people would pay for. Luckily there's lots of info out there to help do that. Here's a few links to resources I'm finding helpful:&lt;/p&gt;

	&lt;p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.joelonsoftware.com/articles/fog0000000043.html" class="ExternalLink"&gt;The Joel Test&lt;/a&gt; - There's heaps of good stuff on Joel on Software but this stood out as some good thinking regarding improving the coding productivity. I'll be aiming to up the score on this a bit when I start.&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://momb.socio-kybernetics.net/" class="ExternalLink"&gt;The Museum of Modern Betas&lt;/a&gt; - Making things look good is tough for code monkeys like me but this site collects all the web 2.0 sites together in one nice list so I can browse through and steal ideas. Oh... and it's fun playing with some of the apps too.&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.squidoo.com/microisv-toolkit/" class="ExternalLink"&gt;The Micro ISV Toolkit&lt;/a&gt; - A set of links to stuff that's supposed to be helpful for micro ISVs. Some good, some not...&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;

	&lt;p&gt;I'll probably drop some more links as I find them. Plus I'll aim to blog a bit about the micro ISV process as I go through it. Of course, sometime soon I'll actually announce what I'll be actually be releasing, but I'll wait until I've pushed the PhD out of the way first.&lt;/p&gt;

	</description>
      <link>http://feedproxy.google.com/~r/RichardsRamblings/~3/W3eKTQqwySo/post.aspx</link>
      <author>admin</author>
      <comments>http://www.rikware.com/post/How-to-go-from-app-to-product.aspx#comment</comments>
      <guid isPermaLink="false">http://www.rikware.com/post.aspx?id=4254d1a8-43a6-4052-b75f-d9b5b6a6654f</guid>
      <pubDate>Wed, 11 Apr 2007 11:27:17 +1000</pubDate>
      <category>General</category>
      <dc:publisher>admin</dc:publisher>
      <pingback:server>http://www.rikware.com/pingback.axd</pingback:server>
      <pingback:target>http://www.rikware.com/post.aspx?id=4254d1a8-43a6-4052-b75f-d9b5b6a6654f</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.rikware.com/trackback.axd?id=4254d1a8-43a6-4052-b75f-d9b5b6a6654f</trackback:ping>
      <wfw:comment>http://www.rikware.com/post/How-to-go-from-app-to-product.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.rikware.com/syndication.axd?post=4254d1a8-43a6-4052-b75f-d9b5b6a6654f</wfw:commentRss>
    <feedburner:origLink>http://www.rikware.com/post.aspx?id=4254d1a8-43a6-4052-b75f-d9b5b6a6654f</feedburner:origLink></item>
    <item>
      <title>Make Bug Reporting Easy!</title>
      <description>
&lt;p&gt;I'm currently using &lt;a href="http://www.nozbe.com/" class="ExternalLink"&gt;Nozbe&lt;/a&gt; to keep track of things I need to get done and I'm loving it. The app is easy to use, relatively quick and accessible everywhere.&lt;/p&gt;

	&lt;p&gt;Now Nozbe is still in beta which is fair enough. And I've recently tried to take advantage of the free upgrade offered as part of the beta testing. This upgrade lets me track more projects. Unfortunately, the "Add Project" feature is no longer working. Since this is a beta it doesn't bother me too much, but I'd like to submit the bug so a) it gets fixed and b) because as a developer I know that hearing about bugs is important.&lt;/p&gt;

	&lt;p&gt;BUT, this is where the real problem is. I can't easily submit a bug report! There's no link within the app itself. A bit of searching discovered the forum has a bug area. However, to write to the forum I have to sign up. At this point I gave up and figured that somebody else will report the bug. If this was my app I'd be really annoyed with me for taking advantage of the beta stage but not reporting bugs, but it's just too hard. I should be able to just click a link, write some details about the bug and submit. No extra signup (I'm already signed up to use the app!), no searching for where to report bugs.&lt;/p&gt;

	&lt;p&gt;Anyway... I guess it's a lesson learnt for me. I'll make sure that reporting bugs is obvious and easy with my apps so I can hear about the bugs, fix them and thank my beta testers for helping out.&lt;/p&gt;

	</description>
      <link>http://feedproxy.google.com/~r/RichardsRamblings/~3/ryoGHLTUVuc/post.aspx</link>
      <author>admin</author>
      <comments>http://www.rikware.com/post/Make-Bug-Reporting-Easy!.aspx#comment</comments>
      <guid isPermaLink="false">http://www.rikware.com/post.aspx?id=555172a0-fc31-41e7-a8e1-eb6206c3f376</guid>
      <pubDate>Wed, 11 Apr 2007 04:51:09 +1000</pubDate>
      <category>General</category>
      <dc:publisher>admin</dc:publisher>
      <pingback:server>http://www.rikware.com/pingback.axd</pingback:server>
      <pingback:target>http://www.rikware.com/post.aspx?id=555172a0-fc31-41e7-a8e1-eb6206c3f376</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.rikware.com/trackback.axd?id=555172a0-fc31-41e7-a8e1-eb6206c3f376</trackback:ping>
      <wfw:comment>http://www.rikware.com/post/Make-Bug-Reporting-Easy!.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.rikware.com/syndication.axd?post=555172a0-fc31-41e7-a8e1-eb6206c3f376</wfw:commentRss>
    <feedburner:origLink>http://www.rikware.com/post.aspx?id=555172a0-fc31-41e7-a8e1-eb6206c3f376</feedburner:origLink></item>
  </channel>
</rss>
