<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-13089543</id><updated>2011-11-18T04:10:26.076Z</updated><title type='text'>Don't Forget</title><subtitle type='html'>Development related thing not to forget</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://devutopia.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://devutopia.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Austin</name><uri>http://www.blogger.com/profile/11696799313912322456</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>30</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-13089543.post-8583379717352408513</id><published>2007-02-27T18:18:00.000Z</published><updated>2007-02-27T18:27:31.569Z</updated><title type='text'>log4net and NUnit</title><content type='html'>I could not get NUnit to work with log4net today.  I had tests (that did not have logging in) that called application code (that did have logging in), but whatever I did the tests did not log anything.

I turns out that the test fixture must have a logger in it, for example:
&lt;blockquote&gt;
[TestFixture, Category("Exchange")]&lt;br/&gt;
public class TestExchangeApplication : ApplicationTest&lt;br/&gt;
{&lt;br/&gt;
&amp;nbsp;&lt;font color="Red"&gt;static readonly ILog log = LogManager.GetLogger(typeof (TestExchangeApplication).Name);&lt;/font&gt;&lt;br/&gt;.....
&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13089543-8583379717352408513?l=devutopia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devutopia.blogspot.com/feeds/8583379717352408513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13089543&amp;postID=8583379717352408513' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/8583379717352408513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/8583379717352408513'/><link rel='alternate' type='text/html' href='http://devutopia.blogspot.com/2007/02/log4net-and-nunit.html' title='log4net and NUnit'/><author><name>Austin</name><uri>http://www.blogger.com/profile/11696799313912322456</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13089543.post-117215014642113916</id><published>2007-02-22T13:07:00.000Z</published><updated>2007-02-23T10:57:51.058Z</updated><title type='text'>ClearCase</title><content type='html'>ClearCase is an "enterprise" level source control system.  It sucks for small teams.  Sharing your work with team members is a simple 7 stage process:&lt;ol&gt;&lt;li&gt;Check-in your changes to your developer stream&lt;/li&gt;&lt;li&gt;Rebase your developer stream&lt;/li&gt;&lt;li&gt;Deliver your changes to the integration stream&lt;/li&gt;&lt;li&gt;Check-in your integration stream&lt;/li&gt;&lt;li&gt;Create a base-line&lt;/li&gt;&lt;li&gt;Recommend the base-line&lt;/li&gt;&lt;li&gt;Your team members can the rebase there developer streams from your recommended baseline!&lt;/li&gt;&lt;/ol&gt;ClearCase is very slow at adding files, a project I added had about 10 files, and took over a minute to check-in!

The Visual Studio 2005 integration is flaky:
&lt;ul&gt;&lt;li&gt;It fails with an empty dialog box when opening a project
&lt;/li&gt;&lt;li&gt;It fails "Can complete the process" when trying to save a checked-out file&lt;/li&gt;&lt;li&gt;It fails to check-out a file, even though VS thinks the file is checked-out&lt;/li&gt;&lt;/ul&gt;We are trying to work with unreserved check-outs, but ClearCase requires developers to explicitly merge simultaneous changes, nice.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13089543-117215014642113916?l=devutopia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devutopia.blogspot.com/feeds/117215014642113916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13089543&amp;postID=117215014642113916' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/117215014642113916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/117215014642113916'/><link rel='alternate' type='text/html' href='http://devutopia.blogspot.com/2007/02/clearcase.html' title='ClearCase'/><author><name>Austin</name><uri>http://www.blogger.com/profile/11696799313912322456</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13089543.post-113517152321883828</id><published>2005-12-21T13:22:00.000Z</published><updated>2005-12-21T13:25:23.233Z</updated><title type='text'>More .NET Grids</title><content type='html'>I came across the &lt;a href="http://www.alchemi.net/"&gt;Alchemi&lt;/a&gt; project today.  It provides another grid computing solution for .NET developers, but this time its free for all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13089543-113517152321883828?l=devutopia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devutopia.blogspot.com/feeds/113517152321883828/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13089543&amp;postID=113517152321883828' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/113517152321883828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/113517152321883828'/><link rel='alternate' type='text/html' href='http://devutopia.blogspot.com/2005/12/more-net-grids.html' title='More .NET Grids'/><author><name>Austin</name><uri>http://www.blogger.com/profile/11696799313912322456</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13089543.post-113334764910853279</id><published>2005-11-30T10:41:00.000Z</published><updated>2005-11-30T10:47:29.120Z</updated><title type='text'>Grid computing and more</title><content type='html'>Grid computing has come to C# in the form of version 3 of the Internet Communication Engine (ICE) from &lt;a href="http://www.zeroc.com/"&gt;ZeroG&lt;/a&gt;. ICE also gives you fast, efficient, cross-platform and cross-language communication mechanism, including an efficient event system (&lt;strong style="font-weight: normal;"&gt;IceStorm).  ICE is free for open source projects, but you need a commercial license for other projects.
&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13089543-113334764910853279?l=devutopia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devutopia.blogspot.com/feeds/113334764910853279/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13089543&amp;postID=113334764910853279' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/113334764910853279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/113334764910853279'/><link rel='alternate' type='text/html' href='http://devutopia.blogspot.com/2005/11/grid-computing-and-more.html' title='Grid computing and more'/><author><name>Austin</name><uri>http://www.blogger.com/profile/11696799313912322456</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13089543.post-112066049276932332</id><published>2005-07-06T15:34:00.000+01:00</published><updated>2005-07-06T15:36:12.186+01:00</updated><title type='text'>Effectiveness of different communication modes</title><content type='html'>In "Agile Software Development", Alistair Cockburn discusses different modes of communication, as illustrated by the following graph. The most interesting point is paper is the worst way to communicate, face to face round a white board is best.
&lt;a href="http://photos1.blogger.com/img/234/6761/640/comms.jpg"&gt;&lt;img style="BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; MARGIN: 2px; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid" src="http://photos1.blogger.com/img/234/6761/320/comms.jpg" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13089543-112066049276932332?l=devutopia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devutopia.blogspot.com/feeds/112066049276932332/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13089543&amp;postID=112066049276932332' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/112066049276932332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/112066049276932332'/><link rel='alternate' type='text/html' href='http://devutopia.blogspot.com/2005/07/effectiveness-of-different.html' title='Effectiveness of different communication modes'/><author><name>Austin</name><uri>http://www.blogger.com/profile/11696799313912322456</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13089543.post-111988104755981797</id><published>2005-06-27T14:59:00.000+01:00</published><updated>2005-06-27T15:06:11.743+01:00</updated><title type='text'>RSS Reader, and more</title><content type='html'>I &lt;a href="http://www.stumbleupon.com/"&gt;stumbled&lt;/a&gt; across a dashboard called &lt;a href="http://www.serence.com/"&gt;klipfolio&lt;/a&gt; today, which I've started using as an RSS reader, amongst other things. It looks nice, has various email plugins (including hotmail), and weather reports. Check out the available widgets &lt;a href="http://www.klipfarm.com/farm.php"&gt;here&lt;/a&gt;.  Oh, and you can develop your own "klips" as well....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13089543-111988104755981797?l=devutopia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devutopia.blogspot.com/feeds/111988104755981797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13089543&amp;postID=111988104755981797' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111988104755981797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111988104755981797'/><link rel='alternate' type='text/html' href='http://devutopia.blogspot.com/2005/06/rss-reader-and-more.html' title='RSS Reader, and more'/><author><name>Austin</name><uri>http://www.blogger.com/profile/11696799313912322456</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13089543.post-111986825848313971</id><published>2005-06-27T11:09:00.000+01:00</published><updated>2005-06-27T11:31:18.943+01:00</updated><title type='text'>Programming as Theory Building</title><content type='html'>&lt;p&gt;&lt;a href="http://www.naur.com/"&gt;Peter Naur&lt;/a&gt; wrote an article that describes the internal process of writing programs. It one of those things you read and instinctively know that it is right.&lt;/p&gt;One important conclusion from this is documentation should be trying to explain why a program does things, and why is it designed the way it is.
&lt;p&gt;Naur also explains why programs degrade over time, and that program modification has very real costs.&lt;/p&gt;Read the full article &lt;a href="http://alistair.cockburn.us/crystal/books/asd/extracts/asdapp2/asdapp2naurehnmusashi.htm"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13089543-111986825848313971?l=devutopia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devutopia.blogspot.com/feeds/111986825848313971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13089543&amp;postID=111986825848313971' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111986825848313971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111986825848313971'/><link rel='alternate' type='text/html' href='http://devutopia.blogspot.com/2005/06/programming-as-theory-building.html' title='Programming as Theory Building'/><author><name>Austin</name><uri>http://www.blogger.com/profile/11696799313912322456</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13089543.post-111986627341559712</id><published>2005-06-27T10:39:00.000+01:00</published><updated>2005-06-28T10:41:41.266+01:00</updated><title type='text'>The impossibility of communication</title><content type='html'>A couple of recent events have reminded me about the impossibility of communication, i.e. communication is &lt;b&gt;never perfect and complete&lt;/b&gt;. There is always an "information gap" between two people, and the width of gap over which we can communicate varies depending on our shared experiences.
&lt;p&gt;In software development, we need to remember that we &lt;b&gt;can never&lt;/b&gt; write specification and design documents that actually explain what we mean. We have to assume the reader has a certain level of experience.
&lt;/p&gt; &lt;ul&gt;   &lt;li&gt;the more experience the user has, the less we need to write.&lt;/li&gt;   &lt;li&gt;the less experience the user has, the more detailed the document needs to be.&lt;/li&gt; &lt;/ul&gt; You can never hand over a document and forget about it, all documents are merely a starting point for discussions. See Chapter 2 of &lt;a href="http://alistair.cockburn.us/"&gt;Aliaster Cockburn's&lt;/a&gt; book, &lt;a href="http://alistair.cockburn.us/crystal/books/asd/asddistilled.htm"&gt;"Agile Software Development"&lt;/a&gt; for more details.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13089543-111986627341559712?l=devutopia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devutopia.blogspot.com/feeds/111986627341559712/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13089543&amp;postID=111986627341559712' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111986627341559712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111986627341559712'/><link rel='alternate' type='text/html' href='http://devutopia.blogspot.com/2005/06/impossibility-of-communication.html' title='The impossibility of communication'/><author><name>Austin</name><uri>http://www.blogger.com/profile/11696799313912322456</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13089543.post-111986472130575876</id><published>2005-06-27T10:29:00.000+01:00</published><updated>2005-06-27T10:32:01.310+01:00</updated><title type='text'>Argument</title><content type='html'>Have you noticed that people only argue about things that cannot be proved one way or another.  As soon as you can prove something, there is no argument.  Next time you are involved in an argument that is not getting anywhere, remember this post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13089543-111986472130575876?l=devutopia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devutopia.blogspot.com/feeds/111986472130575876/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13089543&amp;postID=111986472130575876' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111986472130575876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111986472130575876'/><link rel='alternate' type='text/html' href='http://devutopia.blogspot.com/2005/06/argument.html' title='Argument'/><author><name>Austin</name><uri>http://www.blogger.com/profile/11696799313912322456</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13089543.post-111884940908806527</id><published>2005-06-15T16:26:00.000+01:00</published><updated>2005-06-15T16:38:28.773+01:00</updated><title type='text'>Methods and Delegates in C# V2.0</title><content type='html'>One of my first posts on this blog was moaning about the method/delegate/refelection  mismatch.  I'm glad to see that in C# V2.0, at least one of my wishes has come true.  You can implicitly convert a method to a delegate, like this:
&lt;blockquote&gt;&lt;tt&gt;
class ConsoleApp&lt;br/&gt;
{&lt;br/&gt;
&amp;nbsp;&amp;nbsp;static void Main(string[] args)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;{&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SomeDelegate dele = SomeMethod;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dele();&lt;br/&gt;
&amp;nbsp;&amp;nbsp;}&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;delegate void SomeDelegate();&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;void SomeMethod()&lt;br/&gt;
&amp;nbsp;&amp;nbsp;{&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine("hello");&lt;br/&gt;
&amp;nbsp;&amp;nbsp;}&lt;br/&gt;
}
&lt;/tt&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13089543-111884940908806527?l=devutopia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devutopia.blogspot.com/feeds/111884940908806527/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13089543&amp;postID=111884940908806527' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111884940908806527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111884940908806527'/><link rel='alternate' type='text/html' href='http://devutopia.blogspot.com/2005/06/methods-and-delegates-in-c-v20.html' title='Methods and Delegates in C# V2.0'/><author><name>Austin</name><uri>http://www.blogger.com/profile/11696799313912322456</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13089543.post-111874598868432343</id><published>2005-06-14T11:43:00.000+01:00</published><updated>2005-06-14T11:46:28.690+01:00</updated><title type='text'>NT command shell</title><content type='html'>There are lots of things the NT command-line shell can do.  Start "cmd.exe", then type
&lt;blockquote&gt;&lt;tt&gt;hh ntcmds.chm&lt;/tt&gt;&lt;/blockquote&gt;
for more functionality than you thought possible!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13089543-111874598868432343?l=devutopia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devutopia.blogspot.com/feeds/111874598868432343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13089543&amp;postID=111874598868432343' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111874598868432343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111874598868432343'/><link rel='alternate' type='text/html' href='http://devutopia.blogspot.com/2005/06/nt-command-shell.html' title='NT command shell'/><author><name>Austin</name><uri>http://www.blogger.com/profile/11696799313912322456</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13089543.post-111874128516843759</id><published>2005-06-14T10:15:00.000+01:00</published><updated>2005-06-15T16:39:56.680+01:00</updated><title type='text'>Dialog-like web applications</title><content type='html'>When learning &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt;, I came across &lt;a href="http://rubyforge.org/projects/wee/"&gt;Wee&lt;/a&gt;, which is based on the ideas introduced in &lt;a href="http://seaside.st/"&gt;Seaside&lt;/a&gt;. I love the idea of abstracting web applications, putting the server back in control, so I have been working on "Seaside.NET". For example, here is the code to control an on-line shop:&lt;blockquote&gt;&lt;tt&gt;
protected override void Go() &lt;br/&gt;
{&lt;br/&gt;
&amp;nbsp;&amp;nbsp;StoreCart cart = new StoreCart();&lt;br/&gt;
&amp;nbsp;&amp;nbsp;do &lt;br/&gt;
&amp;nbsp;&amp;nbsp;{ &lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FillCart(cart);&lt;br/&gt;
&amp;nbsp;&amp;nbsp;} while (!ConfirmContentsOfCart(cart));&lt;br/&gt;
&amp;nbsp;&amp;nbsp;Address shipping = GetShippingAddress();&lt;br/&gt;
&amp;nbsp;&amp;nbsp;Address billing = UseAsBillingAddress(shipping) ? shipping ? GetBillingAddress();&lt;br/&gt;
&amp;nbsp;&amp;nbsp;Payment creditCard = GetPaymentInfo();&lt;br/&gt;
&amp;nbsp;&amp;nbsp;Ship(cart, shipping, billing, creditCard);&lt;br/&gt;
&amp;nbsp;&amp;nbsp;DisplayConfirmation();&lt;br/&gt;
}
&lt;/tt&gt;&lt;/blockquote&gt;
I've written my code in C#, based on the ideas of Seaside, but without looking at the source code.  The basic concept works, now i'm working on backtracking, i.e. handling when the user presses the "back" button in the browser.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13089543-111874128516843759?l=devutopia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devutopia.blogspot.com/feeds/111874128516843759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13089543&amp;postID=111874128516843759' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111874128516843759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111874128516843759'/><link rel='alternate' type='text/html' href='http://devutopia.blogspot.com/2005/06/dialog-like-web-applications.html' title='Dialog-like web applications'/><author><name>Austin</name><uri>http://www.blogger.com/profile/11696799313912322456</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13089543.post-111841232509998192</id><published>2005-06-10T15:03:00.000+01:00</published><updated>2005-06-10T15:07:39.760+01:00</updated><title type='text'>More C# number conversion</title><content type='html'>Oh, and you use the &lt;i&gt;System.Convert&lt;/i&gt; class instead of &lt;i&gt;int.Parse&lt;/i&gt;, like so:
&lt;blockquote&gt;&lt;tt&gt;int value = Convert.ToInt32(sometext);&lt;/tt&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13089543-111841232509998192?l=devutopia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devutopia.blogspot.com/feeds/111841232509998192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13089543&amp;postID=111841232509998192' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111841232509998192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111841232509998192'/><link rel='alternate' type='text/html' href='http://devutopia.blogspot.com/2005/06/more-c-number-conversion.html' title='More C# number conversion'/><author><name>Austin</name><uri>http://www.blogger.com/profile/11696799313912322456</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13089543.post-111830564173345306</id><published>2005-06-09T09:17:00.000+01:00</published><updated>2005-06-09T09:29:57.410+01:00</updated><title type='text'>C# string to number conversion</title><content type='html'>What do you do to convert a string to a number in C#?  I use't to use the "&lt;span style="font-style: italic;"&gt;number&lt;/span&gt;.Parse" methods, but these always need wrapping in a &lt;span style="font-style: italic;"&gt;try...catch&lt;/span&gt; block, e.g.
&lt;blockquote&gt;&lt;tt&gt;
bool ok = true;&lt;br/&gt;
int result = 0;&lt;br/&gt;
try&lt;br/&gt;
{&lt;br/&gt;
&amp;nbsp;&amp;nbsp;result = int.Parse(sometext);&lt;br/&gt;
}&lt;br/&gt;
catch (Exception e)&lt;br/&gt;
{&lt;br/&gt;
&amp;nbsp;&amp;nbsp;ok = false;&lt;br/&gt;
}
&lt;/tt&gt;&lt;/blockquote&gt;
I turns out there is a way to do this without exceptions being involved, the &lt;span style="font-style: italic;"&gt;double.TryParse&lt;/span&gt; method:
&lt;blockquote&gt;&lt;tt&gt;
int result = 0;&lt;br/&gt;
double temp;&lt;br/&gt;
if (double.TryParse(sometext, NumberStyles.Integer, null, out temp))&lt;br/&gt;
&amp;nbsp;&amp;nbsp;result = (int)temp;&lt;br/&gt;
else&lt;br/&gt;
&amp;nbsp;&amp;nbsp;// not a valid number....
&lt;/tt&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13089543-111830564173345306?l=devutopia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devutopia.blogspot.com/feeds/111830564173345306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13089543&amp;postID=111830564173345306' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111830564173345306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111830564173345306'/><link rel='alternate' type='text/html' href='http://devutopia.blogspot.com/2005/06/c-string-to-number-conversion.html' title='C# string to number conversion'/><author><name>Austin</name><uri>http://www.blogger.com/profile/11696799313912322456</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13089543.post-111752993657313202</id><published>2005-05-31T09:58:00.000+01:00</published><updated>2005-05-31T09:58:56.576+01:00</updated><title type='text'>Thought for the day</title><content type='html'>&lt;i&gt;Any intelligent fool can make things bigger, more complex, and more violent.  It takes a touch of genius, and a lot of courage, to move in the opposite direction.&lt;/i&gt;
     ---Albert Einstein&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13089543-111752993657313202?l=devutopia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devutopia.blogspot.com/feeds/111752993657313202/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13089543&amp;postID=111752993657313202' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111752993657313202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111752993657313202'/><link rel='alternate' type='text/html' href='http://devutopia.blogspot.com/2005/05/thought-for-day.html' title='Thought for the day'/><author><name>Austin</name><uri>http://www.blogger.com/profile/11696799313912322456</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13089543.post-111703496202388893</id><published>2005-05-25T16:24:00.000+01:00</published><updated>2005-05-26T08:36:52.626+01:00</updated><title type='text'>Fundamental types in C#</title><content type='html'>Something I miss in C# is the ability to tell if an object is of "fundamental type". I often need to check whether a object is "primitive" (obj.GetType().IsPrimaitive), or System.Decimal, or System.DateTime, or System.String for that matter.
&lt;p&gt;
On a similar theme, why is there no C# type alias for System.DateTime, it seems like a obvious omission...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13089543-111703496202388893?l=devutopia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devutopia.blogspot.com/feeds/111703496202388893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13089543&amp;postID=111703496202388893' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111703496202388893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111703496202388893'/><link rel='alternate' type='text/html' href='http://devutopia.blogspot.com/2005/05/fundamental-types-in-c.html' title='Fundamental types in C#'/><author><name>Austin</name><uri>http://www.blogger.com/profile/11696799313912322456</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13089543.post-111703146224793684</id><published>2005-05-25T15:27:00.000+01:00</published><updated>2005-05-25T15:31:02.250+01:00</updated><title type='text'>Inline IL in C#</title><content type='html'>&lt;a href="http://blogs.msdn.com/jmstall/archive/2005/02/21/377806.aspx"&gt;Here&lt;/a&gt; is a blog post about a tool that allows inline IL in C#/VB.Net. I could be useful for implementing feature that are not natively supported by C#. I can't think of anything I can use it for at the moment....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13089543-111703146224793684?l=devutopia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devutopia.blogspot.com/feeds/111703146224793684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13089543&amp;postID=111703146224793684' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111703146224793684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111703146224793684'/><link rel='alternate' type='text/html' href='http://devutopia.blogspot.com/2005/05/inline-il-in-c.html' title='Inline IL in C#'/><author><name>Austin</name><uri>http://www.blogger.com/profile/11696799313912322456</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13089543.post-111703025385671010</id><published>2005-05-25T15:03:00.000+01:00</published><updated>2005-05-25T15:10:53.860+01:00</updated><title type='text'>SOAP is wrong, have a REST</title><content type='html'>There is nothing simple about SOAP anymore.  The "simple" part of the SOAP acronym is just a joke.  I find the &lt;a href="http://www.xfront.com/REST-Web-Services.html"&gt;REST&lt;/a&gt; idea very appealing.  It's very simple, if you want to:
&lt;ul&gt;   &lt;li&gt;get information about something you do a HTTP GET to a object-specific URL, which returns XML;&lt;/li&gt;   &lt;li&gt;create or update something you do a HTTP POST with the new information in XML;&lt;/li&gt;   &lt;li&gt;delete something you do a HTTP DELETE.&lt;/li&gt; &lt;/ul&gt; It's very simple, and requires no new technology to implement.  For the original idea, click &lt;a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/top.htm"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13089543-111703025385671010?l=devutopia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devutopia.blogspot.com/feeds/111703025385671010/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13089543&amp;postID=111703025385671010' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111703025385671010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111703025385671010'/><link rel='alternate' type='text/html' href='http://devutopia.blogspot.com/2005/05/soap-is-wrong-have-rest.html' title='SOAP is wrong, have a REST'/><author><name>Austin</name><uri>http://www.blogger.com/profile/11696799313912322456</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13089543.post-111702665763864504</id><published>2005-05-25T14:07:00.000+01:00</published><updated>2005-05-25T14:10:57.640+01:00</updated><title type='text'>ASP.NET on Linux</title><content type='html'>There is a new Visual Studio .NET plug-in you can use to develop ASP.NET applications for Linux and any Java-enabled platform. It's free, and called &lt;a href="http://dev.mainsoft.com/"&gt;Grasshopper&lt;/a&gt;. It apparently converts MSIL to Java byte code, so your app can run in Tomcat.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13089543-111702665763864504?l=devutopia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devutopia.blogspot.com/feeds/111702665763864504/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13089543&amp;postID=111702665763864504' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111702665763864504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111702665763864504'/><link rel='alternate' type='text/html' href='http://devutopia.blogspot.com/2005/05/aspnet-on-linux.html' title='ASP.NET on Linux'/><author><name>Austin</name><uri>http://www.blogger.com/profile/11696799313912322456</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13089543.post-111701914200676505</id><published>2005-05-25T12:02:00.000+01:00</published><updated>2005-05-25T12:05:42.010+01:00</updated><title type='text'>Better URLs for ASP.NET applications</title><content type='html'>I just came across &lt;a href="http://metasapiens.com/PageMethods/"&gt;this&lt;/a&gt;, better URL's for ASP.NET. I makes development easier, but also provides an API for pages. And there's and add-in for Visual Studio 2003. Add it's free...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13089543-111701914200676505?l=devutopia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devutopia.blogspot.com/feeds/111701914200676505/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13089543&amp;postID=111701914200676505' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111701914200676505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111701914200676505'/><link rel='alternate' type='text/html' href='http://devutopia.blogspot.com/2005/05/better-urls-for-aspnet-applications.html' title='Better URLs for ASP.NET applications'/><author><name>Austin</name><uri>http://www.blogger.com/profile/11696799313912322456</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13089543.post-111701877362033055</id><published>2005-05-25T11:58:00.000+01:00</published><updated>2005-05-25T13:24:03.016+01:00</updated><title type='text'>Visual Studio 2010 Concept IDE</title><content type='html'>I came across &lt;a href="http://www.codeproject.com/useritems/Concept_IDE.asp"&gt;this&lt;/a&gt; today, a concept for a future Visual Studio IDE.  Interesting stuff, check it out...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13089543-111701877362033055?l=devutopia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devutopia.blogspot.com/feeds/111701877362033055/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13089543&amp;postID=111701877362033055' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111701877362033055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111701877362033055'/><link rel='alternate' type='text/html' href='http://devutopia.blogspot.com/2005/05/visual-studio-2010-concept-ide.html' title='Visual Studio 2010 Concept IDE'/><author><name>Austin</name><uri>http://www.blogger.com/profile/11696799313912322456</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13089543.post-111692682112191968</id><published>2005-05-25T11:03:00.000+01:00</published><updated>2005-05-25T11:03:37.873+01:00</updated><title type='text'>Synonyms</title><content type='html'>In &lt;a href="http://www.ruby-lang.org/en/"&gt;Ruby&lt;/a&gt;, providing synonyms for operations is good practice, but .NET has an almost complete lack of them. For example, in .NET arrays have a "Length" property, and the ICollection interface has a "Count" property. These are synonymous, but cannot be used interchangeably, i.e. you can't get the "Length" of a IList, only the "Count". Why not allow both names for a property?
&lt;p/&gt;If you allowed synonyms for keywords, you could write poetic programs. In English, it is considered bad writing to repeat the same word over and over again, so why not in programming languages....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13089543-111692682112191968?l=devutopia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devutopia.blogspot.com/feeds/111692682112191968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13089543&amp;postID=111692682112191968' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111692682112191968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111692682112191968'/><link rel='alternate' type='text/html' href='http://devutopia.blogspot.com/2005/05/synonyms.html' title='Synonyms'/><author><name>Austin</name><uri>http://www.blogger.com/profile/11696799313912322456</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13089543.post-111692995013626800</id><published>2005-05-24T11:15:00.000+01:00</published><updated>2005-05-25T16:55:42.050+01:00</updated><title type='text'>Serialization performance</title><content type='html'>I've been writing a &lt;a href="http://www.yaml.org/"&gt;YAML&lt;/a&gt; serializer for .NET, and in doing some performance tests, was surprised to see the XMLSerializer is faster then the BinaryFormatter! The follow table shows the results of serializing 1000 people objects:
&lt;table border="1"&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;th&gt;Serializer&lt;/th&gt;
&lt;th&gt;Serialized
Size (K)&lt;/th&gt;
&lt;th align="right"&gt;Run 1 (MS)&lt;/th&gt;
&lt;th align="right"&gt;Run 2 (MS)&lt;/th&gt;
&lt;th align="right"&gt;Run 3 (MS)&lt;/th&gt;
&lt;th align="right"&gt;Run 4 (MS)&lt;/th&gt;
&lt;th align="right"&gt;Run 5 (MS)&lt;/th&gt;
&lt;th align="right"&gt;Average (MS)&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;yaml&lt;/td&gt;
&lt;td align="right"&gt;482&lt;/td&gt;
&lt;td align="right"&gt;78&lt;/td&gt;
&lt;td align="right"&gt;62&lt;/td&gt;
&lt;td align="right"&gt;78&lt;/td&gt;
&lt;td align="right"&gt;63&lt;/td&gt;
&lt;td align="right"&gt;62&lt;/td&gt;
&lt;td align="right"&gt;68&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;xml&lt;/td&gt;
&lt;td align="right"&gt;1380&lt;/td&gt;
&lt;td align="right"&gt;109&lt;/td&gt;
&lt;td align="right"&gt;78&lt;/td&gt;
&lt;td align="right"&gt;94&lt;/td&gt;
&lt;td align="right"&gt;78&lt;/td&gt;
&lt;td align="right"&gt;78&lt;/td&gt;
&lt;td align="right"&gt;87&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;binary&lt;/td&gt;
&lt;td align="right"&gt;278&lt;/td&gt;
&lt;td align="right"&gt;125&lt;/td&gt;
&lt;td align="right"&gt;125&lt;/td&gt;
&lt;td align="right"&gt;141&lt;/td&gt;
&lt;td align="right"&gt;140&lt;/td&gt;
&lt;td align="right"&gt;141&lt;/td&gt;
&lt;td align="right"&gt;134&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;soap&lt;/td&gt;
&lt;td align="right"&gt;2261&lt;/td&gt;
&lt;td align="right"&gt;562&lt;/td&gt;
&lt;td align="right"&gt;516&lt;/td&gt;
&lt;td align="right"&gt;484&lt;/td&gt;
&lt;td align="right"&gt;500&lt;/td&gt;
&lt;td align="right"&gt;500&lt;/td&gt;
&lt;td align="right"&gt;512&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;
If you use remoting, you have a choice between the SOAP and Binary formatters, you cannot use the XML one. As I understand it, ASP.NET web services use the XMLSerializer, hence ASP.NET being faster than remoting.
&lt;/p&gt;&lt;p&gt;
I like YAML.  I first came across it when learning &lt;a href="http://www.ruby-lang.org/en/"&gt;Ruby&lt;/a&gt;, and trying out &lt;a href="http://www.rubyonrails.org/"&gt;Ruby on Rails&lt;/a&gt;, for some example YAML click &lt;a href="http://www.yaml.org/start.html"&gt;here&lt;/a&gt;.  YAML is a simple, compact, human readable text format.  I hope it stays simple, unlike SOAP...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13089543-111692995013626800?l=devutopia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devutopia.blogspot.com/feeds/111692995013626800/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13089543&amp;postID=111692995013626800' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111692995013626800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111692995013626800'/><link rel='alternate' type='text/html' href='http://devutopia.blogspot.com/2005/05/serialization-performance.html' title='Serialization performance'/><author><name>Austin</name><uri>http://www.blogger.com/profile/11696799313912322456</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13089543.post-111685650980909790</id><published>2005-05-24T10:00:00.000+01:00</published><updated>2005-05-24T11:26:59.163+01:00</updated><title type='text'>Systems and sub-systems</title><content type='html'>I've worked on numerous systems, but none with sub-system packaging, why not?  I must have worked for the wrong companies....
&lt;p/&gt;
I've worked on projects that package layers into DLLs, e.g. there was a "data access" DLL, a "business layer" DLL, and usually the UI is a single EXE. This type of system is easy to develop, but any change (e.g. adding a feature that spans UI, business and data layers) requires you to re-test and re-release the whole system.
&lt;p/&gt;
I recently worked on a large finance system that had gone too far the other way. Each UI feature was packaged into it's own DLL, with it's own business layer, and data layer. Sounds ideal, right? Wrong. I was working with two Visual Studio solutions, one for the back-end services, one for the UI, with each solution having over 100 projects in. It took up to ten minutes to load the solution, and ten minutes to run-it-up in Visual Studio.
&lt;p/&gt;
You might ask if I needed all the 200 projects - I didn't - but someone had created nasty inter-project dependencies. For example, all error messages were stored in a single file which all projects depended on. So adding an error message caused all project to require re-compilation. There was also some "common" UI elements that had been grouped into a project, but this common project referenced (directly and indirectly) over 30 other projects.
&lt;p/&gt;
So what ever happened to sub-systems? Grouping related things into sub-systems (projects), that have limited external interfaces, is the best of both worlds. You can change a part of the system without having to re-test and re-deploy the whole thing, and you don't end up with spaghetti projects that are slow to work with.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13089543-111685650980909790?l=devutopia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devutopia.blogspot.com/feeds/111685650980909790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13089543&amp;postID=111685650980909790' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111685650980909790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111685650980909790'/><link rel='alternate' type='text/html' href='http://devutopia.blogspot.com/2005/05/systems-and-sub-systems.html' title='Systems and sub-systems'/><author><name>Austin</name><uri>http://www.blogger.com/profile/11696799313912322456</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13089543.post-111685629437597112</id><published>2005-05-23T14:51:00.000+01:00</published><updated>2005-05-23T14:51:34.380+01:00</updated><title type='text'>Device Drivers</title><content type='html'>I've been playing around on &lt;a href="http://www.yellowtab.com/"&gt;Zeta&lt;/a&gt; (the latest version of BeOS),  I love it.  What I don't love is :
&lt;ul&gt;   &lt;li&gt;my video chipset is not supported (only works in  VESA mode),
 &lt;/li&gt;   &lt;li&gt;my sound card does not work (AC97 driver does work with my laptop),&lt;/li&gt;   &lt;li&gt;my wireless networking does not work (Intel Centrino).&lt;/li&gt; &lt;/ul&gt; This got me thinking, why is there no OS-independent standard for device drivers? Device drivers (and the lack thereof) is one of the biggest costs for OS development, and a big barrier to use of minority OS's. Image if you could use the same device driver for Linux, NetBSD, OpenBSD, BeOS (Zeta), any maybe even OSX. Now before you say this is impossible, check out &lt;a href="http://www.scitechsoft.com/"&gt;SciTech&lt;/a&gt;, who have a "Multi-OS graphics device driver solution" called &lt;a href="http://www.scitechsoft.com/products/dev/sdk_download/snap_sdk_download.html"&gt;SciTech SNAP&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13089543-111685629437597112?l=devutopia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devutopia.blogspot.com/feeds/111685629437597112/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13089543&amp;postID=111685629437597112' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111685629437597112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111685629437597112'/><link rel='alternate' type='text/html' href='http://devutopia.blogspot.com/2005/05/device-drivers.html' title='Device Drivers'/><author><name>Austin</name><uri>http://www.blogger.com/profile/11696799313912322456</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13089543.post-111685350770682960</id><published>2005-05-23T14:30:00.000+01:00</published><updated>2005-05-24T11:27:32.846+01:00</updated><title type='text'>Things I like</title><content type='html'>I'm not just a moaner you know, I do like stuff as well.  &lt;a href="http://www.tenzor.cz/clocx/"&gt;ClocX&lt;/a&gt; is a lovely clock for XP, with a large choice of clock faces, transparency, and many other options. I use the "ModanieSmall" clock face.
&lt;p/&gt;
I love &lt;a href="http://www.stardock.com/products/objectdock/"&gt;ObjectDock&lt;/a&gt; for it's OSX-like interface.  I don't use it now, as it crashes too regularly on my machine.
&lt;p/&gt;
I'm loving &lt;a href="http://www.mozilla.org/products/firefox/"&gt;FireFox&lt;/a&gt;, especially with the &lt;a href="http://www.mozilla.org/support/firefox/adblock"&gt;add blocking script&lt;/a&gt; installed.  (Small moan - why do I have to reinstall the whole of FireFox when they fix bugs, why not supply a patch?)
&lt;p/&gt;
&lt;a href="http://www.spybot.info/"&gt;Spybot Search&amp;amp;Destroy&lt;/a&gt; is another favorite, a free spyware and adware remover.
&lt;p/&gt;
&lt;a href="http://www.sysinternals.com/"&gt;Sysinternals&lt;/a&gt; should be mandatory for all developers, I'm using &lt;a href="http://www.sysinternals.com/ntw2k/freeware/procexp.shtml"&gt;Process Explorer&lt;/a&gt; as a replacement for Task Manager.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13089543-111685350770682960?l=devutopia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devutopia.blogspot.com/feeds/111685350770682960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13089543&amp;postID=111685350770682960' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111685350770682960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111685350770682960'/><link rel='alternate' type='text/html' href='http://devutopia.blogspot.com/2005/05/things-i-like.html' title='Things I like'/><author><name>Austin</name><uri>http://www.blogger.com/profile/11696799313912322456</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13089543.post-111685043853289140</id><published>2005-05-23T11:14:00.000+01:00</published><updated>2005-05-24T11:28:44.130+01:00</updated><title type='text'>Things that annoy me about C# - interfaces</title><content type='html'>Interfaces are great, I love 'em. What I don't like is C#'s restriction on the implementation of interfaces. Implementations must be either public (okay), or private using the "interface.method" syntax (okay), but what about protected? I want to be able to do the following, but I can't:
&lt;blockquote&gt;&lt;tt&gt;&lt;pre&gt;public interface IMyInterface
{
&amp;nbsp;void SomeMethod();
}

public class Class1 : IMyInterface
{
&amp;nbsp;// This causes a compile error
&amp;nbsp;// saying class does not implement interface!!!
&amp;nbsp;protected virtual void SomeMethod()
&amp;nbsp;{
&amp;nbsp;&amp;nbsp;// do stuff
&amp;nbsp;}
}

public class Class2 : Class1
{
&amp;nbsp;protected override void SomeMethod()
&amp;nbsp;{
&amp;nbsp;&amp;nbsp;// do other stuff
&amp;nbsp;}
}
&lt;/pre&gt;&lt;/tt&gt;&lt;/blockquote&gt;You can do this in VB.NET, why not C#?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13089543-111685043853289140?l=devutopia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devutopia.blogspot.com/feeds/111685043853289140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13089543&amp;postID=111685043853289140' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111685043853289140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111685043853289140'/><link rel='alternate' type='text/html' href='http://devutopia.blogspot.com/2005/05/things-that-annoy-me-about-c.html' title='Things that annoy me about C# - interfaces'/><author><name>Austin</name><uri>http://www.blogger.com/profile/11696799313912322456</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13089543.post-111684411270437631</id><published>2005-05-23T10:15:00.000+01:00</published><updated>2005-05-24T11:27:55.913+01:00</updated><title type='text'>Things that annoy me about C# - delegates</title><content type='html'>Me and a &lt;a href="http://www.syncadia.com/"&gt;colleague&lt;/a&gt; have been discussing things wrong with C#. Delegates somehow seem like a broken design. For instance, when I start a new thread, why do I need to pass an instance of the ThreadStart delegate? Why not just pass the method?

For instance, instead of:
&lt;blockquote&gt;&lt;tt&gt;Thread t = new Thread(new ThreadStart(SomeMethod));
t.Start();
&lt;/tt&gt;&lt;/blockquote&gt;How about:
&lt;blockquote&gt;&lt;tt&gt;Thread t = new Thread(SomeMethod);
t.Start();
&lt;/tt&gt;&lt;/blockquote&gt;Much cleaner.

On a similar theme, why not allow a method to implicitly declare a delegate, so instead of:
&lt;blockquote&gt;&lt;tt&gt;  SomeDelegate dele = new SomeDelegate(this.SomeMethod);
dele.BeginInvoke(null, null);
&lt;/tt&gt;&lt;/blockquote&gt;How about:
&lt;blockquote&gt;&lt;tt&gt;this.SomeMethod.BeginInvoke(null, null);
&lt;/tt&gt;&lt;/blockquote&gt;Also, delegates are not interchangeable. If you declare two delegates with the same signature, they cannot be used interchangeably, why not?
&lt;p/&gt;
Delegates and System.Reflection.MethodInfo seem very similar, they "smell" in refactoring terms, begging to be combined in some way...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13089543-111684411270437631?l=devutopia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devutopia.blogspot.com/feeds/111684411270437631/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13089543&amp;postID=111684411270437631' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111684411270437631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111684411270437631'/><link rel='alternate' type='text/html' href='http://devutopia.blogspot.com/2005/05/things-that-annoy-me-about-c-delegates.html' title='Things that annoy me about C# - delegates'/><author><name>Austin</name><uri>http://www.blogger.com/profile/11696799313912322456</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13089543.post-111677060499615058</id><published>2005-05-22T14:56:00.000+01:00</published><updated>2005-05-23T12:41:58.730+01:00</updated><title type='text'>Managed OS written in C#</title><content type='html'>I work in C# on a day-to-day basis, so was interested to hear about a Managed operating system, mostly written in C#, coming out of Microsoft Research. It's called &lt;a href="http://research.microsoft.com/os/singularity/"&gt;Singularity&lt;/a&gt;, and you can see an interview with some of the developers over on &lt;a href="http://channel9.msdn.com/ShowPost.aspx?PostID=68302"&gt;Channel 9&lt;/a&gt;.  If they would make it open source, I bet many people would start actively contributing to it, never mind...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13089543-111677060499615058?l=devutopia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devutopia.blogspot.com/feeds/111677060499615058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13089543&amp;postID=111677060499615058' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111677060499615058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111677060499615058'/><link rel='alternate' type='text/html' href='http://devutopia.blogspot.com/2005/05/managed-os-written-in-c.html' title='Managed OS written in C#'/><author><name>Austin</name><uri>http://www.blogger.com/profile/11696799313912322456</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13089543.post-111676774827594266</id><published>2005-05-22T14:12:00.000+01:00</published><updated>2005-05-22T14:15:48.280+01:00</updated><title type='text'>Welcome</title><content type='html'>Hello, and welcome to my blog.  I intend to publish my thoughts on:
&lt;ul&gt;   &lt;li&gt;How I want to create software in the future;&lt;/li&gt;   &lt;li&gt;Steps in the right direction;&lt;/li&gt;   &lt;li&gt;De-bunking of over hyped software technology;&lt;/li&gt;   &lt;li&gt;Random thoughts on other stuff....
&lt;/li&gt; &lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13089543-111676774827594266?l=devutopia.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devutopia.blogspot.com/feeds/111676774827594266/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13089543&amp;postID=111676774827594266' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111676774827594266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13089543/posts/default/111676774827594266'/><link rel='alternate' type='text/html' href='http://devutopia.blogspot.com/2005/05/welcome.html' title='Welcome'/><author><name>Austin</name><uri>http://www.blogger.com/profile/11696799313912322456</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
