<?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:dc="http://purl.org/dc/elements/1.1/" 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:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
    <channel>
        <title>Keith Nicholas</title>
        <link>http://geekswithblogs.net/DesigningCode/Default.aspx</link>
        <description> </description>
        <language>en-NZ</language>
        <copyright>DesigningCode</copyright>
        <managingEditor>keith.nicholas@gmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <image>
            <title>Keith Nicholas</title>
            <url>http://geekswithblogs.net/images/RSS2Image.gif</url>
            <link>http://geekswithblogs.net/DesigningCode/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/DesigningCode" /><feedburner:info uri="designingcode" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
            <title>Job for a intermediate .NET Web technology type person  &amp;ndash;Auckland, New Zealand</title>
            <link>http://feedproxy.google.com/~r/DesigningCode/~3/ip3BQfDn3u8/job-for-a-intermediate-.net-web-technology-type-person.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/DesigningCode/archive/2012/03/07/job-for-a-intermediate-.net-web-technology-type-person.aspx'&gt;http://geekswithblogs.net/DesigningCode/archive/2012/03/07/job-for-a-intermediate-.net-web-technology-type-person.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;  &lt;p&gt;We are looking to hire someone with (but not necessarily all of!) :-&lt;/p&gt;  &lt;p&gt;- Good web skills   Javascript / Html / CSS  + any javascript frameworks Jquery / Knockout etc&lt;/p&gt;  &lt;p&gt;- ASP.NET MVC 4  (or earlier)&lt;/p&gt;  &lt;p&gt;- ASP.NET Webforms  ( any exposure )&lt;/p&gt;  &lt;p&gt;- SQL Server / NHibernate  ( or other ORMs )&lt;/p&gt;  &lt;p&gt;- Webservices&lt;/p&gt;  &lt;p&gt;-WPF ( we do a number of inhouse windows apps )&lt;/p&gt;  &lt;p&gt;- A love of software development and good development techniques!&lt;/p&gt;  &lt;p&gt;You can see what we do at &lt;a href="http://www.outpostcentral.com/"&gt;http://www.outpostcentral.com&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Drop me an email at keith dot nicholas AT outpostcentral.com&lt;/p&gt;  &lt;p&gt;with either a CV or questions!&lt;/p&gt; &lt;img src="http://geekswithblogs.net/DesigningCode/aggbug/148919.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/DesigningCode/~4/ip3BQfDn3u8" height="1" width="1"/&gt;</description>
            <dc:creator>DesigningCode</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/DesigningCode/archive/2012/03/07/job-for-a-intermediate-.net-web-technology-type-person.aspx</guid>
            <pubDate>Wed, 07 Mar 2012 03:45:46 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/DesigningCode/comments/148919.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/DesigningCode/archive/2012/03/07/job-for-a-intermediate-.net-web-technology-type-person.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/DesigningCode/comments/commentRss/148919.aspx</wfw:commentRss>
        <feedburner:origLink>http://geekswithblogs.net/DesigningCode/archive/2012/03/07/job-for-a-intermediate-.net-web-technology-type-person.aspx</feedburner:origLink></item>
        <item>
            <title>Bret Victor - Inventing on Principle (a must watch!)</title>
            <link>http://feedproxy.google.com/~r/DesigningCode/~3/HzELS8g9M7A/bret-victor---inventing-on-principle-a-must-watch.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/DesigningCode/archive/2012/02/27/bret-victor---inventing-on-principle-a-must-watch.aspx'&gt;http://geekswithblogs.net/DesigningCode/archive/2012/02/27/bret-victor---inventing-on-principle-a-must-watch.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;  &lt;p&gt;Just in case any of you missed this  :-&lt;/p&gt;  &lt;p&gt;&lt;a title="http://vimeo.com/36579366" href="http://vimeo.com/36579366"&gt;http://vimeo.com/36579366&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The main idea is about having a ‘principle’ which drives all your actions.  But more interesting is Brets particular principle which drives him. It’s a great watch.  Some really good ideas on how we need to close the gap between ‘thinking’ ideas and being able to see the reality of those ideas.     &lt;/p&gt;  &lt;p&gt;It’s mainly programming focused, but it also explores this idea in general!&lt;/p&gt; &lt;img src="http://geekswithblogs.net/DesigningCode/aggbug/148817.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/DesigningCode/~4/HzELS8g9M7A" height="1" width="1"/&gt;</description>
            <dc:creator>DesigningCode</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/DesigningCode/archive/2012/02/27/bret-victor---inventing-on-principle-a-must-watch.aspx</guid>
            <pubDate>Sun, 26 Feb 2012 22:39:31 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/DesigningCode/comments/148817.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/DesigningCode/archive/2012/02/27/bret-victor---inventing-on-principle-a-must-watch.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/DesigningCode/comments/commentRss/148817.aspx</wfw:commentRss>
        <feedburner:origLink>http://geekswithblogs.net/DesigningCode/archive/2012/02/27/bret-victor---inventing-on-principle-a-must-watch.aspx</feedburner:origLink></item>
        <item>
            <title>Metro, oh no!  Windows 8&amp;hellip;.</title>
            <link>http://feedproxy.google.com/~r/DesigningCode/~3/MOtcauBrmk8/metro-oh-no--windows-8hellip.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/DesigningCode/archive/2011/09/14/metro-oh-no--windows-8hellip.aspx'&gt;http://geekswithblogs.net/DesigningCode/archive/2011/09/14/metro-oh-no--windows-8hellip.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;  &lt;p&gt;So I’ve played with the developer preview of windows 8 today.   I’m trying to like Metro.  But, at least on the desktop, it feels wrong.   &lt;/p&gt;  &lt;p&gt;In fact, its not really windows anymore.  In the sense “windows” are less in favour compared to full screen apps.   It really should be called Boxes 1.0 &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://gwb.blob.core.windows.net/designingcode/Windows-Live-Writer/befb46e9398b_9864/wlEmoticon-smile_2.png" /&gt;&lt;/p&gt;  &lt;p&gt;I played around a bit with the new visual studio with metro templates….. great tools as usual.  But…designing metro apps feels like a subset.  The variety of apps in the windows world would find it hard to translate into a metro style.  Some would benefit.  So why is this “subset” becoming so dominant?&lt;/p&gt;  &lt;p&gt;Blending these two things together seems, at least for the moment, a bad plan.  They are forced to do it because they want a touch experience mixed with a desktop experience.   Which means the UI has to cater to the LOWEST common denominator.  Touch interaction.   So microsoft are being sheep and follow in the steps of apple and google and try and design something alternative since the market is buying big on tablets.   Microsoft is calling it “re-imagining” windows.  But it seems to lack imagination from my perspective.  Boxes that can show info in them and represent applications all done in a cartoon style? pfffft &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://gwb.blob.core.windows.net/designingcode/Windows-Live-Writer/befb46e9398b_9864/wlEmoticon-smile_2.png" /&gt;  smacking ribbon bars on things? speeding stuff up? pffft.&lt;/p&gt;  &lt;p&gt;come on, be honest with yourself Microsoft. You are not doing anything innovative, you’ve just got a bunch of UX designers having a crack at windows and mish mashing tablet support in.  That’s not imagination!&lt;/p&gt;  &lt;p&gt;So far I’m really less than impressed by it.  I do like some of the improvements to the *real* windows though.&lt;/p&gt;  &lt;p&gt;At least, win 7 is great. Its the final version of getting windows 95 near enough to being *right*.  So if win8 does turn out to be a mish mash of UX designer “goodness” that no one likes, then they can have another crack at it while relying on win 7 to hold the fort.&lt;/p&gt; &lt;img src="http://geekswithblogs.net/DesigningCode/aggbug/146877.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/DesigningCode/~4/MOtcauBrmk8" height="1" width="1"/&gt;</description>
            <dc:creator>DesigningCode</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/DesigningCode/archive/2011/09/14/metro-oh-no--windows-8hellip.aspx</guid>
            <pubDate>Wed, 14 Sep 2011 08:00:48 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/DesigningCode/comments/146877.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/DesigningCode/archive/2011/09/14/metro-oh-no--windows-8hellip.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/DesigningCode/comments/commentRss/146877.aspx</wfw:commentRss>
        <feedburner:origLink>http://geekswithblogs.net/DesigningCode/archive/2011/09/14/metro-oh-no--windows-8hellip.aspx</feedburner:origLink></item>
        <item>
            <title>Hotkey for creating a new folder in windows 7 explorer</title>
            <link>http://feedproxy.google.com/~r/DesigningCode/~3/jlPr6n9GVjw/hotkey-for-creating-a-new-folder-in-windows-7-explorer.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/DesigningCode/archive/2011/08/26/hotkey-for-creating-a-new-folder-in-windows-7-explorer.aspx'&gt;http://geekswithblogs.net/DesigningCode/archive/2011/08/26/hotkey-for-creating-a-new-folder-in-windows-7-explorer.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;  &lt;p&gt;This blog post is entirely trivial, but I just discovered it!&lt;/p&gt;  &lt;p&gt;As a keyboard centric guy I like to drive most of windows through the keyboard.   One thing that’s always annoyed me in explorer is the difficulty of making a new folder.   It used to be   ALT-F  W F   ( and if you have tortisesvn is installed sometimes craziness will happen on certain folders).    Basically just driving the folder creating by the menu keyboard shortcuts.    Of course the “New” menu takes a while to populate as it works out all the “new” things you can create.&lt;/p&gt;  &lt;p&gt;Anyways, to the point….&lt;/p&gt;  &lt;p&gt;To make a new folder in explorer under Windows 7 -   CNTRL-SHIFT-N&lt;/p&gt; &lt;img src="http://geekswithblogs.net/DesigningCode/aggbug/146673.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/DesigningCode/~4/jlPr6n9GVjw" height="1" width="1"/&gt;</description>
            <dc:creator>DesigningCode</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/DesigningCode/archive/2011/08/26/hotkey-for-creating-a-new-folder-in-windows-7-explorer.aspx</guid>
            <pubDate>Fri, 26 Aug 2011 02:11:28 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/DesigningCode/comments/146673.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/DesigningCode/archive/2011/08/26/hotkey-for-creating-a-new-folder-in-windows-7-explorer.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/DesigningCode/comments/commentRss/146673.aspx</wfw:commentRss>
        <feedburner:origLink>http://geekswithblogs.net/DesigningCode/archive/2011/08/26/hotkey-for-creating-a-new-folder-in-windows-7-explorer.aspx</feedburner:origLink></item>
        <item>
            <title>Code snippets on blogs, are you allowed to use them in your own work? No you can not!!</title>
            <link>http://feedproxy.google.com/~r/DesigningCode/~3/XtULMb-D8XU/code-snippets-on-blogs-are-you-allowed-to-use-them.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/DesigningCode/archive/2011/06/10/code-snippets-on-blogs-are-you-allowed-to-use-them.aspx'&gt;http://geekswithblogs.net/DesigningCode/archive/2011/06/10/code-snippets-on-blogs-are-you-allowed-to-use-them.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;I think mostly people do intend that snippets they publish on their blogs get used by people for their own purposes.  However, unless you explicitly say otherwise, in many countries, your blog posts are automatically copyrighted.   Which normally is a good thing, it means you can’t accidently forget to protect your work!    But it does mean that you need to explicitly give away the rights to anything you publish that you intend for anyone else to use freely.&lt;/p&gt;  &lt;p&gt;So if that is your intention,  I think somewhere on your blog you need to state what the deal is with your code snippets you publish.   So I was having a look at what are my options.&lt;/p&gt;  &lt;p&gt;It seems like it’s a bit of a thorny issue.&lt;/p&gt;  &lt;p&gt;I thought it would be a simple case of saying it’s released into the public domain, however, some advice out there seems to say that releasing things into the “public domain” has problems in places like the US.  &lt;/p&gt;  &lt;p&gt;Some discussion about it can be found here :- &lt;a href="http://stackoverflow.com/questions/259384/what-license-should-i-use-for-code-snippets-released-on-my-blog"&gt;http://stackoverflow.com/questions/259384/what-license-should-i-use-for-code-snippets-released-on-my-blog&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;and here &lt;a href="http://stackoverflow.com/questions/1190628/what-license-is-public-code-under-if-no-license-is-specified"&gt;http://stackoverflow.com/questions/1190628/what-license-is-public-code-under-if-no-license-is-specified&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The accepted answer (which also seems consistent with other things I’ve read) is that you have to explicitly license your code to be free to use.&lt;/p&gt;  &lt;p&gt;It seems a popular choice is the Creative Commons has CC0 license, which you can read about here :- &lt;a title="http://creativecommons.org/choose/zero/" href="http://creativecommons.org/choose/zero/"&gt;http://creativecommons.org/choose/zero/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Which is the path I think I will go down!&lt;/p&gt;  &lt;p&gt;It’s even more interesting to me as I’m building up an open source library of various useful C# snippets and “glue” type code, some of which is my code, some of which are derivatives of other peoples snippets.  So I’m going to have to be quite careful to make sure I’m allowed to put various bits of code into a library and then license it under a MIT type license.&lt;/p&gt; &lt;img src="http://geekswithblogs.net/DesigningCode/aggbug/145804.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/DesigningCode/~4/XtULMb-D8XU" height="1" width="1"/&gt;</description>
            <dc:creator>DesigningCode</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/DesigningCode/archive/2011/06/10/code-snippets-on-blogs-are-you-allowed-to-use-them.aspx</guid>
            <pubDate>Thu, 09 Jun 2011 23:38:57 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/DesigningCode/comments/145804.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/DesigningCode/archive/2011/06/10/code-snippets-on-blogs-are-you-allowed-to-use-them.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/DesigningCode/comments/commentRss/145804.aspx</wfw:commentRss>
        <feedburner:origLink>http://geekswithblogs.net/DesigningCode/archive/2011/06/10/code-snippets-on-blogs-are-you-allowed-to-use-them.aspx</feedburner:origLink></item>
        <item>
            <title>Code Review&amp;ndash;Becoming a better programmer</title>
            <link>http://feedproxy.google.com/~r/DesigningCode/~3/1Wk2XyqHpkM/code-reviewndashbecoming-a-better-programmer.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/DesigningCode/archive/2011/05/27/code-reviewndashbecoming-a-better-programmer.aspx'&gt;http://geekswithblogs.net/DesigningCode/archive/2011/05/27/code-reviewndashbecoming-a-better-programmer.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;  &lt;p&gt;I love stackoverflow, its great for finding answers for questions you need answered right away!  Or its good to be able to help others get over annoying speed bumps.&lt;/p&gt;  &lt;p&gt;but&lt;/p&gt;  &lt;p&gt;Code Review ( &lt;a href="http://codereview.stackexchange.com/"&gt;http://codereview.stackexchange.com/&lt;/a&gt; ) is a lot more interesting in terms of actually becoming a better programmer.   You get to reflect on other peoples code, offer up alternative ways of coding, and see other peoples alternatives.  &lt;/p&gt;  &lt;p&gt;The only problem at the moment is there’s just not quite enough code to review!&lt;/p&gt; &lt;img src="http://geekswithblogs.net/DesigningCode/aggbug/145593.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/DesigningCode/~4/1Wk2XyqHpkM" height="1" width="1"/&gt;</description>
            <dc:creator>DesigningCode</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/DesigningCode/archive/2011/05/27/code-reviewndashbecoming-a-better-programmer.aspx</guid>
            <pubDate>Fri, 27 May 2011 02:23:46 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/DesigningCode/comments/145593.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/DesigningCode/archive/2011/05/27/code-reviewndashbecoming-a-better-programmer.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/DesigningCode/comments/commentRss/145593.aspx</wfw:commentRss>
        <feedburner:origLink>http://geekswithblogs.net/DesigningCode/archive/2011/05/27/code-reviewndashbecoming-a-better-programmer.aspx</feedburner:origLink></item>
        <item>
            <title>Seatest v0.04 Released!  Simple Unit Testing for C code.</title>
            <link>http://feedproxy.google.com/~r/DesigningCode/~3/jBBu_jhBEHU/seatest-v0.04-released--simple-unit-testing-for-c-code.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/DesigningCode/archive/2011/05/20/seatest-v0.04-released--simple-unit-testing-for-c-code.aspx'&gt;http://geekswithblogs.net/DesigningCode/archive/2011/05/20/seatest-v0.04-released--simple-unit-testing-for-c-code.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;  &lt;p&gt;I’ve released a new version of seatest which fixes some little bugs / flaws and also introduces global setup / teardowns.&lt;/p&gt;  &lt;p&gt;It can be found at &lt;a title="http://code.google.com/p/seatest/" href="http://code.google.com/p/seatest/"&gt;http://code.google.com/p/seatest/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I’ve found it really useful for the C based projects I’m working on.  The only thing I think might be useful is some tools to help generate new tests / test fixtures / suites.   In Visual studio I have both Visual Assist and Resharper which provide templating capabilities.  But it might be nice to build my own custom tools specifically for seatest.&lt;/p&gt;  &lt;p&gt;Most of my projects are for embedded systems but I tend to cross compile.   So I develop everything in visual studio and stub out the hardware layer.  Unit test the heck out of it, then compile for the target device.  Tends to be a very quick way to develop.&lt;/p&gt; &lt;img src="http://geekswithblogs.net/DesigningCode/aggbug/145452.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/DesigningCode/~4/jBBu_jhBEHU" height="1" width="1"/&gt;</description>
            <dc:creator>DesigningCode</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/DesigningCode/archive/2011/05/20/seatest-v0.04-released--simple-unit-testing-for-c-code.aspx</guid>
            <pubDate>Fri, 20 May 2011 04:02:17 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/DesigningCode/comments/145452.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/DesigningCode/archive/2011/05/20/seatest-v0.04-released--simple-unit-testing-for-c-code.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/DesigningCode/comments/commentRss/145452.aspx</wfw:commentRss>
        <feedburner:origLink>http://geekswithblogs.net/DesigningCode/archive/2011/05/20/seatest-v0.04-released--simple-unit-testing-for-c-code.aspx</feedburner:origLink></item>
        <item>
            <title>Bruce Lee Software development.</title>
            <link>http://feedproxy.google.com/~r/DesigningCode/~3/6BoFdH-TNvw/bruce-lee-software-development.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/DesigningCode/archive/2011/01/17/bruce-lee-software-development.aspx'&gt;http://geekswithblogs.net/DesigningCode/archive/2011/01/17/bruce-lee-software-development.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;"Styles tend to not only separate men - because they have their own doctrines and then the doctrine became the gospel truth that you cannot change. But if you do not have a style, if you just say: Well, here I am as a human being, how can I express myself totally and completely? Now, that way you won't create a style, because style is a crystallization. That way, it's a process of continuing growth."- Bruce Lee&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;This is kind of how I see software development.&lt;/p&gt;  &lt;p&gt;What I enjoyed in the the early days of Agile, things seemed very dynamic, people were working out all manner of ways of doing things. It was technique oriented, it was very fluid and people were finding all kinds of good ways of doing things.  &lt;/p&gt;  &lt;p&gt;Now when I look at the world of “Agile” it seems more crystalized.  In fact that seemed to be a goal, to crystalize the goodness so everyone can share.   I think mainly because it seems a heck of a lot easier to market.  People are more willing to accept a well defined doctrine and drink the Kool Aid.   Its more “corporate” or “professional”.&lt;/p&gt;  &lt;p&gt;But the process of crystalizing the goodness actually makes it bad.   &lt;/p&gt;  &lt;p&gt;But luckily in the world of software development there are still many people who are more focused on “how can I express myself totally and completely”.   We are seeing expressive languages, expressive frameworks, tooling that helps you to better express yourself, design techniques that allow you to better express your intent.    I love that stuff! &lt;/p&gt;  &lt;p&gt;So beware, be very cautious of anyone offering you new age wisdom based on crystals!&lt;/p&gt; &lt;img src="http://geekswithblogs.net/DesigningCode/aggbug/143503.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/DesigningCode/~4/6BoFdH-TNvw" height="1" width="1"/&gt;</description>
            <dc:creator>DesigningCode</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/DesigningCode/archive/2011/01/17/bruce-lee-software-development.aspx</guid>
            <pubDate>Mon, 17 Jan 2011 01:30:18 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/DesigningCode/comments/143503.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/DesigningCode/archive/2011/01/17/bruce-lee-software-development.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/DesigningCode/comments/commentRss/143503.aspx</wfw:commentRss>
        <feedburner:origLink>http://geekswithblogs.net/DesigningCode/archive/2011/01/17/bruce-lee-software-development.aspx</feedburner:origLink></item>
        <item>
            <title>Refactoring C</title>
            <link>http://feedproxy.google.com/~r/DesigningCode/~3/f0FO26eTRcs/refactoring-c.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/DesigningCode/archive/2010/11/19/refactoring-c.aspx'&gt;http://geekswithblogs.net/DesigningCode/archive/2010/11/19/refactoring-c.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;  &lt;p&gt;I’ve recently begun working on an embedded C project where the code has got pretty out of hand and I’m tasked with bringing some sanity to the code.&lt;/p&gt;  &lt;p&gt;It quickly reaffirms my main focus of good software development.  Nice simple composable functions.  Everything about good design boils down to writing good functions.  &lt;/p&gt;  &lt;p&gt;Refactoring bad C to good C is a bit of a mission.   But my first whack at doing it is always “Extract Method”  (well, other than removing the million warnings that the C compiler helpfully told you about but let you carry on anyways…..0 warnings should be a C coders mantra) .   &lt;/p&gt;  &lt;p&gt;When I extract methods Its usually at the BIG and tiny level of the code….. either I’m taking a huge bunch of code and wrapping it in a function, or taking a really tiny piece and wrapping it   (like if  a common piece of checking code is scattered all over the place&lt;/p&gt;  &lt;p&gt;eg I’d take :-  if(strnicmp(blah,”MAGICPREFIX:”,12))&lt;/p&gt;  &lt;p&gt;and make it :- if(has_magic_prefix(blah))&lt;/p&gt;  &lt;p&gt;it slowly declutters the code….and in the end the “has_magic_prefix” may even get totally refactored out of the system.   But for starters, micro decluttering makes a world of difference.&lt;/p&gt;  &lt;p&gt;From there I start to focus on what the code is really really really doing.   Then start designing a system of functions that allow you to easily express that idea.  &lt;/p&gt;  &lt;p&gt;Also its important to group C functions into .c files  ( treat .c files as a “class”)&lt;/p&gt;  &lt;p&gt;That group of C functions should work on a set of common structures ( just like classes ).  &lt;/p&gt;  &lt;p&gt;Simply by wrapping common packets of data often gets rid of the “millions of parameters” functions.  &lt;/p&gt;  &lt;p&gt;All of a sudden things get a LOT simpler, A LOT easier to extend and a lot more composable! &lt;/p&gt;  &lt;p&gt;Add in a nice system of callbacks to be able to inject variations for special cases rather than having masses of if/elses or switch statements, you are well on your way to writing some pretty nice C code.&lt;/p&gt; &lt;img src="http://geekswithblogs.net/DesigningCode/aggbug/142775.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/DesigningCode/~4/f0FO26eTRcs" height="1" width="1"/&gt;</description>
            <dc:creator>DesigningCode</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/DesigningCode/archive/2010/11/19/refactoring-c.aspx</guid>
            <pubDate>Fri, 19 Nov 2010 01:45:12 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/DesigningCode/comments/142775.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/DesigningCode/archive/2010/11/19/refactoring-c.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/DesigningCode/comments/commentRss/142775.aspx</wfw:commentRss>
        <feedburner:origLink>http://geekswithblogs.net/DesigningCode/archive/2010/11/19/refactoring-c.aspx</feedburner:origLink></item>
        <item>
            <title>Frink</title>
            <link>http://feedproxy.google.com/~r/DesigningCode/~3/py7Yp_ftdTs/frink.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/DesigningCode/archive/2010/08/05/frink.aspx'&gt;http://geekswithblogs.net/DesigningCode/archive/2010/08/05/frink.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;One of the new languages floating around….  Frink ( &lt;a href="http://futureboy.homeip.net/frinkdocs/"&gt;http://futureboy.homeip.net/frinkdocs/&lt;/a&gt; )&lt;/p&gt;  &lt;p&gt;Really interesting what you can do with this language in terms of calculating “real world” things.&lt;/p&gt;  &lt;p&gt;The &lt;a href="http://futureboy.homeip.net/frinkdocs/#SampleCalculations"&gt;sample calculations&lt;/a&gt; section I found really interesting and quite humorous with classics like :-&lt;/p&gt;  &lt;blockquote&gt;   &lt;h5&gt;&lt;a name="MovieMagic"&gt;Movie Magic&lt;/a&gt;&lt;/h5&gt;    &lt;p&gt;In the movie &lt;i&gt;Independence Day&lt;/i&gt;, the alien mother ship is said to be 500 km in diameter and have a mass 1/4 that of earth's moon. If the mother ship were a sphere, what would its density be? (The volume of a sphere is 4/3 pi radius&lt;sup&gt;3&lt;/sup&gt;)&lt;/p&gt;    &lt;p&gt;&lt;code&gt;1/4 moonmass / (4/3 pi (500/2 km)^3) -&amp;gt; water&lt;/code&gt;      &lt;br /&gt;&lt;code&gt;280.68&lt;/code&gt;&lt;/p&gt;    &lt;p&gt;This makes the ship &lt;em&gt;280 times&lt;/em&gt; denser than water. This is 36 times denser than iron and more than 12 times denser than any known element! As the ship is actually more a thin disc than a sphere, it would actually be even denser. Since it contains lots of empty space, parts of it would have to be much, much denser.&lt;/p&gt;    &lt;p&gt;If the object is this dense and has such a large mass, what is its surface gravity? Surface gravity is given by G mass / radius&lt;sup&gt;2&lt;/sup&gt;, where G is the gravitational constant (which Frink knows about):&lt;/p&gt;    &lt;p&gt;&lt;code&gt;G 1/4 moonmass / (500/2 km)^2 -&amp;gt; gravity&lt;/code&gt;      &lt;br /&gt;&lt;code&gt;2.000079&lt;/code&gt;&lt;/p&gt;    &lt;p&gt;The surface gravity of the spaceship is thus at least &lt;em&gt;twice&lt;/em&gt; earth's gravity--and that's on the rim where gravity is weakest. It would actually be much higher since it's much, much flatter than a sphere. I hope you're not the alien that has to go outside and paint it.&lt;/p&gt;&lt;/blockquote&gt; &lt;img src="http://geekswithblogs.net/DesigningCode/aggbug/141191.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/DesigningCode/~4/py7Yp_ftdTs" height="1" width="1"/&gt;</description>
            <dc:creator>DesigningCode</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/DesigningCode/archive/2010/08/05/frink.aspx</guid>
            <pubDate>Wed, 04 Aug 2010 21:02:06 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/DesigningCode/comments/141191.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/DesigningCode/archive/2010/08/05/frink.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/DesigningCode/comments/commentRss/141191.aspx</wfw:commentRss>
        <feedburner:origLink>http://geekswithblogs.net/DesigningCode/archive/2010/08/05/frink.aspx</feedburner:origLink></item>
        <item>
            <title>SeaTest  - C Unit Testing Framework</title>
            <link>http://feedproxy.google.com/~r/DesigningCode/~3/omOgp4raGwc/seatest----c-unit-testing-framework.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/DesigningCode/archive/2010/06/21/seatest----c-unit-testing-framework.aspx'&gt;http://geekswithblogs.net/DesigningCode/archive/2010/06/21/seatest----c-unit-testing-framework.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Today I released an open source project for doing xUnit style unit testing.&lt;/p&gt;  &lt;p&gt;Recently I got roped into doing some embedded C code for a project and I wanted to TDD it.   On investigating my unit testing framework options I ended up rolling my own as many frameworks were either too simple or trying to be too smart. &lt;/p&gt;  &lt;p&gt;While I’m generally happy with the general style of how to write tests with it, there’s a number of things to cleanup and it probably needs a bit more rounding out for other peoples needs.  Also I will add some ‘asserts’ that represent typical things C programmers tend to do.&lt;/p&gt;  &lt;p&gt;Anyways, if anyone is interested you can find it at :-&lt;/p&gt;  &lt;p&gt;&lt;a href="http://code.google.com/p/seatest/"&gt;http://code.google.com/p/seatest/&lt;/a&gt;&lt;/p&gt; &lt;img src="http://geekswithblogs.net/DesigningCode/aggbug/140530.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/DesigningCode/~4/omOgp4raGwc" height="1" width="1"/&gt;</description>
            <dc:creator>DesigningCode</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/DesigningCode/archive/2010/06/21/seatest----c-unit-testing-framework.aspx</guid>
            <pubDate>Mon, 21 Jun 2010 05:15:31 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/DesigningCode/comments/140530.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/DesigningCode/archive/2010/06/21/seatest----c-unit-testing-framework.aspx#feedback</comments>
            <slash:comments>5</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/DesigningCode/comments/commentRss/140530.aspx</wfw:commentRss>
        <feedburner:origLink>http://geekswithblogs.net/DesigningCode/archive/2010/06/21/seatest----c-unit-testing-framework.aspx</feedburner:origLink></item>
        <item>
            <title>Useful Extension Method for ICloneable</title>
            <link>http://feedproxy.google.com/~r/DesigningCode/~3/IBJiqSDwhzA/useful-extension-method-for-icloneable.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/DesigningCode/archive/2010/05/07/useful-extension-method-for-icloneable.aspx'&gt;http://geekswithblogs.net/DesigningCode/archive/2010/05/07/useful-extension-method-for-icloneable.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;  &lt;p&gt;In the past, I’ve had to put a type specific clone in each cloneable class, but with extension methods you can write a generic T specific clone&lt;/p&gt;  &lt;pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"&gt;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt; Program
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"&gt;    {
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"&gt;        &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Main(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;[] args)
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"&gt;        {
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"&gt;            var b = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Blah() {X = 1, Y = 2};
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"&gt;            var bb = b.Clone();
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"&gt;            Console.WriteLine(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;.Format("&lt;span style="color: #8b0000"&gt;{0} {1}&lt;/span&gt;", bb.X, bb.Y));
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"&gt;        }
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"&gt;    }
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"&gt;    
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; Blah : ICloneable
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"&gt;    {
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"&gt;        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; X;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"&gt;        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; Y;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"&gt;        &lt;span style="color: #0000ff"&gt;object&lt;/span&gt; ICloneable.Clone()
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"&gt;        {
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"&gt;            &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; MemberwiseClone();
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"&gt;        }
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"&gt;    }
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; CloneExtension
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"&gt;    {
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"&gt;        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; T Clone&amp;lt;T&amp;gt;(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt; T o) where T : ICloneable 
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"&gt;        {
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"&gt;            &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; (T)o.Clone();
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"&gt;        }
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 10px"&gt;    }&lt;/pre&gt;&lt;/pre&gt; &lt;img src="http://geekswithblogs.net/DesigningCode/aggbug/139703.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/DesigningCode/~4/IBJiqSDwhzA" height="1" width="1"/&gt;</description>
            <dc:creator>DesigningCode</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/DesigningCode/archive/2010/05/07/useful-extension-method-for-icloneable.aspx</guid>
            <pubDate>Fri, 07 May 2010 03:02:13 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/DesigningCode/comments/139703.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/DesigningCode/archive/2010/05/07/useful-extension-method-for-icloneable.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/DesigningCode/comments/commentRss/139703.aspx</wfw:commentRss>
        <feedburner:origLink>http://geekswithblogs.net/DesigningCode/archive/2010/05/07/useful-extension-method-for-icloneable.aspx</feedburner:origLink></item>
        <item>
            <title>NHibernate 3.0 and FluentNHibernate, how to get up and running&amp;hellip;.</title>
            <link>http://feedproxy.google.com/~r/DesigningCode/~3/iQ9gPGwZut8/nhibernate-3.0-and-fluentnhibernate-how-to-get-up-and-runninghellip.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/DesigningCode/archive/2010/04/30/nhibernate-3.0-and-fluentnhibernate-how-to-get-up-and-runninghellip.aspx'&gt;http://geekswithblogs.net/DesigningCode/archive/2010/04/30/nhibernate-3.0-and-fluentnhibernate-how-to-get-up-and-runninghellip.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;First up. Its actually really easy.&lt;/p&gt;  &lt;p&gt;I’m not very religious about my DB tech, I don’t really care, I just want something that works.  So I’m happy to consider all options if they provide an advantage, and recently I was considering jumping from NHibernate to EF 4.0.  However before ditching NHibernate and jumping to EF 4.0 I thought I should try the head version of NHibernates trunk and the Head version of FluentNHibernate.&lt;/p&gt;  &lt;p&gt;I currently have a “Repository / Unit of Work” Framework built up around these two techs.  All up it makes my life pretty simple for dealing with databases.   The problem is the current release of NHibernate + the Linq provider wasn’t too hot for our purposes.  Especially trying to plug it into older VB.NET code.   The Linq provider spat the dummy with VB.NET lambdas.  Mainly because in C#&lt;/p&gt;  &lt;pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;Query().Where(l =&amp;gt; l.Name.Contains("&lt;span style="color: #8b0000"&gt;x&lt;/span&gt;") || l.Name.Contains("&lt;span style="color: #8b0000"&gt;y&lt;/span&gt;")).ToList();&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;is not the same as the VB.NET &lt;/p&gt;

&lt;pre&gt;&lt;pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;Query().Where(&lt;span style="color: #0000ff"&gt;Function&lt;/span&gt;(l) l.Name.Contains("&lt;span style="color: #8b0000"&gt;x&lt;/span&gt;") &lt;span style="color: #0000ff"&gt;Or&lt;/span&gt; l.Name.Contains("&lt;span style="color: #8b0000"&gt;y&lt;/span&gt;")).ToList&lt;/pre&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;VB.NET seems to spit out … well…. something different :-)&lt;/p&gt;

&lt;p&gt;so anyways… Compiling your own version of NHibernate and FluentNHibernate.  It’s actually pretty easy! &lt;/p&gt;

&lt;p&gt;First you’ll need to install &lt;a href="http://tortoisesvn.tigris.org/"&gt;tortisesvn&lt;/a&gt; &lt;a href="http://nant.sourceforge.net/"&gt;NAnt&lt;/a&gt; and &lt;a href="http://code.google.com/p/msysgit/"&gt;Git&lt;/a&gt; if you don’t already have them.  &lt;/p&gt;

&lt;h3&gt;NHibernate&lt;/h3&gt;

&lt;p&gt;first step, get the subversion trunk &lt;/p&gt;

&lt;p&gt;&lt;a title="https://nhibernate.svn.sourceforge.net/svnroot/nhibernate/trunk/" href="https://nhibernate.svn.sourceforge.net/svnroot/nhibernate/trunk/"&gt;https://nhibernate.svn.sourceforge.net/svnroot/nhibernate/trunk/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;into a directory somewhere.  eg \thirdparty\nhibernate&lt;/p&gt;

&lt;p&gt;Then use NAnt to build it.   (if you open the .sln it will show errors in that  AssemblyInfo.cs doesn’t exist )&lt;/p&gt;

&lt;p&gt;to build it, there is a .txt document with sample command line build instructions,  I simply used :-&lt;/p&gt;

&lt;p&gt;NAnt -D:project.config=release clean build &amp;gt;output-release-build.log&lt;/p&gt;

&lt;p&gt;*wait* *wait* *wait* and ta da, you will have a bin directory with all the release dlls.&lt;/p&gt;

&lt;h3&gt;FluentNHibernate&lt;/h3&gt;

&lt;p&gt;This was pretty simple.&lt;/p&gt;

&lt;p&gt;there’s instructions here :- &lt;a href="http://wiki.fluentnhibernate.org/Getting_started#Installation"&gt;http://wiki.fluentnhibernate.org/Getting_started#Installation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;basically, with git, create a directory, and you issue the command&lt;/p&gt;

&lt;p&gt;git clone git://github.com/jagregory/fluent-nhibernate.git&lt;/p&gt;

&lt;p&gt;and wait, and soon enough you have the source.&lt;/p&gt;

&lt;p&gt;Now, from the bin directory that NHibernate spit out, take everything and dump it into the subdirectory “fluent-nhibernate\tools\NHibernate”&lt;/p&gt;

&lt;p&gt;Now, to build, you can use rake….which a ruby build system, however you can also just open the solution and build.   Which is what I did.  I had a few problems with the references which I simply re-added using the new ones.  &lt;/p&gt;

&lt;p&gt;Once built, I just took all the NHibnerate dlls, and the fluent ones and replaced my existing NHibernate / Fluent and killed off the old linq project.&lt;/p&gt;

&lt;p&gt;All I had to change is the places that used  .Linq&amp;lt;T&amp;gt;  and replace them with .Query&amp;lt;T&amp;gt;  (which was easy as I had wrapped it already to isolate my code from such changes)&lt;/p&gt;

&lt;p&gt;and hey presto, everything worked.  Even the VB.NET linq calls.&lt;/p&gt;

&lt;p&gt;I need to do some more testing as I’ve only done basic smoke tests, but its all looking pretty good, so for now, I will stick to NHibernate!  &lt;/p&gt; &lt;img src="http://geekswithblogs.net/DesigningCode/aggbug/139594.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/DesigningCode/~4/iQ9gPGwZut8" height="1" width="1"/&gt;</description>
            <dc:creator>DesigningCode</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/DesigningCode/archive/2010/04/30/nhibernate-3.0-and-fluentnhibernate-how-to-get-up-and-runninghellip.aspx</guid>
            <pubDate>Thu, 29 Apr 2010 23:37:54 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/DesigningCode/comments/139594.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/DesigningCode/archive/2010/04/30/nhibernate-3.0-and-fluentnhibernate-how-to-get-up-and-runninghellip.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/DesigningCode/comments/commentRss/139594.aspx</wfw:commentRss>
        <feedburner:origLink>http://geekswithblogs.net/DesigningCode/archive/2010/04/30/nhibernate-3.0-and-fluentnhibernate-how-to-get-up-and-runninghellip.aspx</feedburner:origLink></item>
        <item>
            <title>Swapping from NHibernate to Entity Framework &amp;ndash; Sanity Check</title>
            <link>http://feedproxy.google.com/~r/DesigningCode/~3/7pQvvQZd1eQ/swapping-from-nhibernate-to-entity-framework-ndash-sanity-check.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/DesigningCode/archive/2010/04/29/swapping-from-nhibernate-to-entity-framework-ndash-sanity-check.aspx'&gt;http://geekswithblogs.net/DesigningCode/archive/2010/04/29/swapping-from-nhibernate-to-entity-framework-ndash-sanity-check.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Now I’m not an expert in either of these techs.  I have a nice framework for unit of work / repository built with NHibernate.  Works pretty well.  I use FluentNhibernate to do the mappings.  Works well.  Takes very little code to get going with a DB back OO model.&lt;/p&gt;  &lt;p&gt;So why swap?&lt;/p&gt;  &lt;p&gt;Linq.  In Entity Framework you get much better linq support.  &lt;/p&gt;  &lt;p&gt;Visibility. I have no idea what's really happening with NHibernate….its a cloud of mystery most of the time.  You have to read all the blogs, mailing lists, etc to know what's going on. &lt;/p&gt;  &lt;p&gt;So, EF 4.0 looks like pretty good….  it has reasonably good support for mapping POCOs.  Wrapping UnitOfWork and Repository around it seems ok.&lt;/p&gt;  &lt;p&gt;Only thing I haven’t liked too much is having to explicitly load lazy loading entities.&lt;/p&gt;  &lt;p&gt;So…. am I sane?  is EF the way to go?  or is NHibernate going to suddenly release the next generation of coolness?  Is there any other major gotchas of using EF over NHibernate?&lt;/p&gt; &lt;img src="http://geekswithblogs.net/DesigningCode/aggbug/139577.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/DesigningCode/~4/7pQvvQZd1eQ" height="1" width="1"/&gt;</description>
            <dc:creator>DesigningCode</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/DesigningCode/archive/2010/04/29/swapping-from-nhibernate-to-entity-framework-ndash-sanity-check.aspx</guid>
            <pubDate>Thu, 29 Apr 2010 02:11:18 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/DesigningCode/comments/139577.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/DesigningCode/archive/2010/04/29/swapping-from-nhibernate-to-entity-framework-ndash-sanity-check.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/DesigningCode/comments/commentRss/139577.aspx</wfw:commentRss>
        <feedburner:origLink>http://geekswithblogs.net/DesigningCode/archive/2010/04/29/swapping-from-nhibernate-to-entity-framework-ndash-sanity-check.aspx</feedburner:origLink></item>
        <item>
            <title>File Transfer using RDP</title>
            <link>http://feedproxy.google.com/~r/DesigningCode/~3/qxoA18s-32g/file-transfer-using-rdp.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/DesigningCode/archive/2010/04/19/file-transfer-using-rdp.aspx'&gt;http://geekswithblogs.net/DesigningCode/archive/2010/04/19/file-transfer-using-rdp.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;I often use RDP to log into servers.   A couple of issues I have had is that its a pain to get files onto the server from my PC at times, and, if there is something missing from the servers windows install, I can’t simply pop the DVD into remote server in some unknown location on the internet somewhere.&lt;/p&gt;  &lt;p&gt;The other day I was curious if RDP actually had anything…since it did support shared clipboards, so I went for a look through the options and low and behold, *hidden* away…..&lt;/p&gt;  &lt;p&gt;Select Options…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://gwb.blob.core.windows.net/designingcode/WindowsLiveWriter/FileTransferusingRDP_D451/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://gwb.blob.core.windows.net/designingcode/WindowsLiveWriter/FileTransferusingRDP_D451/image_thumb.png" width="399" height="246" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Go to the “Local Resources” Tab, then where it has “Local devices and resources” it sneakily has a “More…” button.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://gwb.blob.core.windows.net/designingcode/WindowsLiveWriter/FileTransferusingRDP_D451/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://gwb.blob.core.windows.net/designingcode/WindowsLiveWriter/FileTransferusingRDP_D451/image_thumb_1.png" width="406" height="463" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Which then displays a drive selection box.  Select the drive you want ….&lt;/p&gt;  &lt;p&gt;&lt;a href="http://gwb.blob.core.windows.net/designingcode/WindowsLiveWriter/FileTransferusingRDP_D451/image_6.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://gwb.blob.core.windows.net/designingcode/WindowsLiveWriter/FileTransferusingRDP_D451/image_thumb_2.png" width="408" height="427" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Then on your server you will get…..&lt;/p&gt;  &lt;p&gt;&lt;a href="http://gwb.blob.core.windows.net/designingcode/WindowsLiveWriter/FileTransferusingRDP_D451/image_8.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://gwb.blob.core.windows.net/designingcode/WindowsLiveWriter/FileTransferusingRDP_D451/image_thumb_3.png" width="403" height="280" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Nice.  That is useful.&lt;/p&gt; &lt;img src="http://geekswithblogs.net/DesigningCode/aggbug/139372.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/DesigningCode/~4/qxoA18s-32g" height="1" width="1"/&gt;</description>
            <dc:creator>DesigningCode</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/DesigningCode/archive/2010/04/19/file-transfer-using-rdp.aspx</guid>
            <pubDate>Mon, 19 Apr 2010 10:06:19 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/DesigningCode/comments/139372.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/DesigningCode/archive/2010/04/19/file-transfer-using-rdp.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/DesigningCode/comments/commentRss/139372.aspx</wfw:commentRss>
        <feedburner:origLink>http://geekswithblogs.net/DesigningCode/archive/2010/04/19/file-transfer-using-rdp.aspx</feedburner:origLink></item>
        <item>
            <title>VirtualBox</title>
            <link>http://feedproxy.google.com/~r/DesigningCode/~3/PuNy2CsVrVk/virtualbox.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/DesigningCode/archive/2010/04/19/virtualbox.aspx'&gt;http://geekswithblogs.net/DesigningCode/archive/2010/04/19/virtualbox.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;I was wanting to play around with something in a VM the other day.  I was curious what was available for free, if anything, for windows.   I quickly came across Virtual Box  ( &lt;a href="http://www.virtualbox.org/"&gt;http://www.virtualbox.org/&lt;/a&gt; ).   Downloaded, Installed. No Problem!  Works really nicely.   &lt;/p&gt;  &lt;p&gt;It was commercial software (by sun (now oracle)) that turned open source.   &lt;/p&gt;  &lt;p&gt;In terms of a license it says :-&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;In summary, the VirtualBox PUEL allows you to use VirtualBox free of charge&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;for personal use or, alternatively, &lt;/li&gt;      &lt;li&gt;for product evaluation.&lt;/li&gt;   &lt;/ul&gt; &lt;/blockquote&gt;  &lt;p&gt;An interesting feature it has is built in RDP.   Which is useful if you have a guest OS that doesn’t support RDP.   &lt;/p&gt;  &lt;p&gt;Speaking of RDP…..  which I will in my next blog post… I learnt something REALLY useful the other day.&lt;/p&gt; &lt;img src="http://geekswithblogs.net/DesigningCode/aggbug/139371.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/DesigningCode/~4/PuNy2CsVrVk" height="1" width="1"/&gt;</description>
            <dc:creator>DesigningCode</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/DesigningCode/archive/2010/04/19/virtualbox.aspx</guid>
            <pubDate>Mon, 19 Apr 2010 09:52:07 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/DesigningCode/comments/139371.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/DesigningCode/archive/2010/04/19/virtualbox.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/DesigningCode/comments/commentRss/139371.aspx</wfw:commentRss>
        <feedburner:origLink>http://geekswithblogs.net/DesigningCode/archive/2010/04/19/virtualbox.aspx</feedburner:origLink></item>
        <item>
            <title>Speech Recognition</title>
            <link>http://feedproxy.google.com/~r/DesigningCode/~3/YMIIIRb77Qg/speech-recognition.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/DesigningCode/archive/2010/04/19/speech-recognition.aspx'&gt;http://geekswithblogs.net/DesigningCode/archive/2010/04/19/speech-recognition.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Today I was asked to write a wee application for someone so that they could turn pages on their ebooks without having to reach for their keyboard or mouse… that way they could do craft or knit or whatever they are doing while they are reading.&lt;/p&gt;  &lt;p&gt;I vaguely remember that windows has something built in, but have never really played with it before.   I have in the past turned on the screen reader and impressed my kids by making the computer saying “amusing” phrases along the lines of “Zac has a smelly bum”.&lt;/p&gt;  &lt;p&gt;So instead of firing up Visual Studio and getting stuck into the juciy task of writing a speech recognition program…. I typed “speech recognition” into the start menu of my windows 7 computer.   And wow!  I’ve been playing with it for the last 40 minutes or so and have been most impressed.   Dictation wise it certainly misses stuff or gets the wrong words, but I did the training and it certainly improved.&lt;/p&gt;  &lt;p&gt;But what I’m enjoying is controlling windows.&lt;/p&gt;  &lt;p&gt;for instance, to start this blog entry  I said “Open Writer”  and it worked no problem.    In fact after I muddled my way through getting going with speech recognition I enjoyed saying “Open notepad” … “close”  over and over again.&lt;/p&gt;  &lt;p&gt;It allows you to click anywhere on the screen, just say “mousegrid”   and a 1-9 numbered grid comes up,  say a number and it puts a smaller 1-9 numbered grid, and you hone in, till the middle square is on a place you want to click, then you say “click” or “double click”.  &lt;/p&gt;  &lt;p&gt;if you want to enter a key, say “Press Tab”  for example.   &lt;/p&gt;  &lt;p&gt;inside programs it understands menu entries.  In fact, while writing this I just said “File”  “Save” and it happily saved.&lt;/p&gt;  &lt;p&gt;I think I will play around with this for a while more and try it out in visual studio.   Might be quite good for being able to do menu entries instead of grabbing for my mouse…. can keep my hands on the keyboard.&lt;/p&gt;  &lt;p&gt;ok, wasn’t the first post I wanted to do on geeks with blogs! but hey…   will do some techy posts soon.&lt;/p&gt; &lt;img src="http://geekswithblogs.net/DesigningCode/aggbug/139354.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/DesigningCode/~4/YMIIIRb77Qg" height="1" width="1"/&gt;</description>
            <dc:creator>DesigningCode</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/DesigningCode/archive/2010/04/19/speech-recognition.aspx</guid>
            <pubDate>Sun, 18 Apr 2010 15:48:17 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/DesigningCode/comments/139354.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/DesigningCode/archive/2010/04/19/speech-recognition.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/DesigningCode/comments/commentRss/139354.aspx</wfw:commentRss>
        <feedburner:origLink>http://geekswithblogs.net/DesigningCode/archive/2010/04/19/speech-recognition.aspx</feedburner:origLink></item>
    </channel>
</rss>
