<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://codeprairie.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>chrisortman</title><link>http://codeprairie.net/blogs/chrisortman/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>Using the find command to find non executable files</title><link>http://codeprairie.net/blogs/chrisortman/archive/2008/06/14/using-the-find-command-to-find-non-executable-files.aspx</link><pubDate>Sat, 14 Jun 2008 13:18:23 GMT</pubDate><guid isPermaLink="false">73a4aa19-1c0c-4438-a31e-8c1402e1ba60:437</guid><dc:creator>chrisortman</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://codeprairie.net/blogs/chrisortman/rsscomments.aspx?PostID=437</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://codeprairie.net/blogs/chrisortman/commentapi.aspx?PostID=437</wfw:comment><comments>http://codeprairie.net/blogs/chrisortman/archive/2008/06/14/using-the-find-command-to-find-non-executable-files.aspx#comments</comments><description>&lt;p&gt;
I had a bunch of dll&amp;#39;s I had checked out of a subversion repo that needed to have the execute bit set on them.
&lt;/p&gt;

&lt;p&gt;
Enter the &lt;em&gt;find&lt;/em&gt; command.
&lt;/p&gt;
&lt;p&gt;
I have never had a great  grasp on how to use find, but finally my laziness got the best of me such that I not only figured out how to use it to find the files I wanted, but also how to send them through xargs to make the change.
&lt;/p&gt;

&lt;p&gt;
So here&amp;#39;s the command I used:&lt;br /&gt;

&lt;pre&gt;
find . -name &amp;#39;*.dll&amp;#39; ! -perm -a+x -print | xargs chmod +x
&lt;/pre&gt;

&lt;p&gt;And here&amp;#39;s the breakdown of the arguments


.
Is the directory we start our search from

-name
Says that the next argument is the name of the file we are searching for

&amp;#39;*.dll&amp;#39;
Is the pattern of the file we are looking for. In this case we are looking for *.dll or any file that ends with a .dll extension


!
Says to negate the next argument

-perm
Says that the next argument will be some type of expression that qualifies the file based on its permissions

-a+x
There are multiple parts to this. The first - says that any permissions can match, if that wasn&amp;#39;t there then the match would need to be exact? a+x (see man chmod(1)) is a way to specify permissions. It goes [user or group][operator][permission] so in this case it says &lt;img src="http://codeprairie.net/emoticons/emotion-13.gif" alt="Angel" /&gt;ll(user, group, owner) [+]have e[x]ecute

-print
To be honest I&amp;#39;m not sure why this is needed, but all the examples I found with find and xargs seemed to use it


&lt;p&gt;
Then the point of xargs is to take the output of the previous command and pass it as input to the command (in this case chmod +x)
&lt;/p&gt;

&lt;img src="http://codeprairie.net/aggbug.aspx?PostID=437" width="1" height="1"&gt;</description></item><item><title>My new git alias</title><link>http://codeprairie.net/blogs/chrisortman/archive/2008/06/04/my-new-git-alias.aspx</link><pubDate>Wed, 04 Jun 2008 21:54:39 GMT</pubDate><guid isPermaLink="false">73a4aa19-1c0c-4438-a31e-8c1402e1ba60:433</guid><dc:creator>chrisortman</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://codeprairie.net/blogs/chrisortman/rsscomments.aspx?PostID=433</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://codeprairie.net/blogs/chrisortman/commentapi.aspx?PostID=433</wfw:comment><comments>http://codeprairie.net/blogs/chrisortman/archive/2008/06/04/my-new-git-alias.aspx#comments</comments><description>&lt;p&gt;git alias&amp;#39;s are very handy and powerful.&lt;/p&gt; &lt;p&gt;Frequently I want to look through the log and have a quick view of who did what, so I created this alias&lt;/p&gt; &lt;p&gt;git config --global --add alias.who-did-what &amp;#39;log --pretty=&amp;quot;format:%an - %s&amp;quot;&amp;#39;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;the output of which will be something like &lt;/p&gt; &lt;p&gt;chriso - Fixed bug 145&lt;br /&gt;matt - Added some neat feature&lt;br /&gt;wes - fixed one of chris&amp;#39;s bugs&lt;/p&gt; &lt;p&gt;...&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Enjoy&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:67699fdd-15ee-4b72-ab77-0699d306cd79" style="padding-right:0px;display:inline;padding-left:0px;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/git" rel="tag"&gt;git&lt;/a&gt;&lt;/div&gt;&lt;img src="http://codeprairie.net/aggbug.aspx?PostID=433" width="1" height="1"&gt;</description></item><item><title>Using ruby to syncronize some files</title><link>http://codeprairie.net/blogs/chrisortman/archive/2008/05/15/using-ruby-to-syncronize-some-files.aspx</link><pubDate>Thu, 15 May 2008 14:16:17 GMT</pubDate><guid isPermaLink="false">73a4aa19-1c0c-4438-a31e-8c1402e1ba60:431</guid><dc:creator>chrisortman</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://codeprairie.net/blogs/chrisortman/rsscomments.aspx?PostID=431</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://codeprairie.net/blogs/chrisortman/commentapi.aspx?PostID=431</wfw:comment><comments>http://codeprairie.net/blogs/chrisortman/archive/2008/05/15/using-ruby-to-syncronize-some-files.aspx#comments</comments><description>&lt;p&gt;eCRM uses several open source projects. &lt;/p&gt; &lt;p&gt;When the open source project changes I need to get those changes, build the code on my machine and then copy the new dll&amp;#39;s into eCRM&amp;#39;s DependentFiles/&amp;lt;ProjectName&amp;gt; folder.&lt;/p&gt; &lt;p&gt;I have this somewhat automated using ruby (more specifically rake)&lt;/p&gt; &lt;p&gt;Here is a simple class called LibCopy&lt;/p&gt;&lt;pre&gt;&lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; LibCopy

  &lt;span style="color:#0000ff;"&gt;def&lt;/span&gt; copy(lib_files, lib_build_dir)
    libs_in_use = lib_files
    libs_in_use.each &lt;span style="color:#0000ff;"&gt;do&lt;/span&gt; |lib|
      &lt;span style="color:#00008b;"&gt;puts&lt;/span&gt; &amp;quot;&lt;span style="color:#8b0000;"&gt;Check for &lt;/span&gt;&amp;quot; + lib
      lib_file = lib_build_dir + &amp;quot;&lt;span style="color:#8b0000;"&gt;/&lt;/span&gt;&amp;quot; +  lib.pathmap(&amp;quot;&lt;span style="color:#8b0000;"&gt;%f&lt;/span&gt;&amp;quot;) 
      &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; &lt;a style="color:#ff0000;" href="http://www.ruby-doc.org/docs/rdoc/1.9/classes/File.html"&gt;File&lt;/a&gt;.&lt;span style="color:#00008b;"&gt;exists&lt;/span&gt;?(lib_file)
        &lt;span style="color:#00008b;"&gt;puts&lt;/span&gt; &amp;quot;&lt;span style="color:#8b0000;"&gt;Found &lt;/span&gt;&amp;quot; + lib_file
        cp lib_file, &lt;a style="color:#ff0000;" href="http://www.ruby-doc.org/docs/rdoc/1.9/classes/File.html"&gt;File&lt;/a&gt;.expand_path(lib.pathmap(&amp;quot;&lt;span style="color:#8b0000;"&gt;%p&lt;/span&gt;&amp;quot;))
      &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt;
        &lt;span style="color:#00008b;"&gt;puts&lt;/span&gt; &amp;quot;&lt;span style="color:#8b0000;"&gt;lib not found:&lt;/span&gt;&amp;quot; + lib_file 
      &lt;span style="color:#0000ff;"&gt;end&lt;/span&gt;
    &lt;span style="color:#0000ff;"&gt;end&lt;/span&gt;
  &lt;span style="color:#0000ff;"&gt;end&lt;/span&gt;
&lt;span style="color:#0000ff;"&gt;end&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;And then the way I use this is like so&lt;/p&gt;&lt;pre&gt;task :castle_to_ecrm &lt;span style="color:#0000ff;"&gt;do&lt;/span&gt;
    dest_castle_libs = FileList[&amp;#39;./ecrm/DependentFiles/Castle&lt;span style="color:#008000;"&gt;/*&amp;#39;]
    LibCopy.new.copy(dest_castle_libs,CASTLE_BUILD_DIR)
end&lt;/span&gt;&lt;/pre&gt;&lt;img src="http://codeprairie.net/aggbug.aspx?PostID=431" width="1" height="1"&gt;</description></item><item><title>altnetgeekcode</title><link>http://codeprairie.net/blogs/chrisortman/archive/2008/04/22/altnetgeekcode.aspx</link><pubDate>Wed, 23 Apr 2008 03:09:22 GMT</pubDate><guid isPermaLink="false">73a4aa19-1c0c-4438-a31e-8c1402e1ba60:426</guid><dc:creator>chrisortman</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://codeprairie.net/blogs/chrisortman/rsscomments.aspx?PostID=426</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://codeprairie.net/blogs/chrisortman/commentapi.aspx?PostID=426</wfw:comment><comments>http://codeprairie.net/blogs/chrisortman/archive/2008/04/22/altnetgeekcode.aspx#comments</comments><description>&lt;p&gt;
&lt;a href="http://www.hanselman.com/blog"&gt;Scott Hanselman&lt;/a&gt; started a little meme called the Alt.net Geek Code generator.

Check out his post &lt;a href="http://www.hanselman.com/blog/ALTNETGeekCodeShouldYouCareAboutTheseALTNETGuys.aspx"&gt;here&lt;/a&gt; for the details.
&lt;/p&gt;
&lt;p&gt;
For the record, here&amp;#39;s my alt.net geek code. Click the link to view.
&lt;/p&gt;
&lt;p&gt;

&lt;div class="altnetgeekcode"&gt;&lt;a href="http://www.hanselman.com/altnetgeekcode/default.aspx?q=IOC(CW):MOC(RM):TDD(NU):TDD(Xu):TDD(Mb):SCC(Svn):SCC(Git):ORM(NH):XPP(?):DDD(T+):DDD(B+):DDD(+)"&gt;IOC(CW):MOC(RM):TDD(NU):TDD(Xu):TDD(Mb):SCC(Svn):SCC(Git):ORM(NH):XPP(?):DDD(T+):DDD(B+):DDD(+)&lt;/a&gt;&lt;/div&gt;
&lt;/p&gt;




&lt;p&gt;Technorati Tags:
&lt;a href="http://technorati.com/tag/altdotnet" rel="tag"&gt;altdotnet&lt;/a&gt;, &lt;a href="http://technorati.com/tag/geekcode" rel="tag"&gt;geekcode&lt;/a&gt;
&lt;/p&gt;
&lt;img src="http://codeprairie.net/aggbug.aspx?PostID=426" width="1" height="1"&gt;</description></item><item><title>Developer Exchange Program Pt2</title><link>http://codeprairie.net/blogs/chrisortman/archive/2008/04/21/developer-exchange-program-pt2.aspx</link><pubDate>Tue, 22 Apr 2008 03:22:41 GMT</pubDate><guid isPermaLink="false">73a4aa19-1c0c-4438-a31e-8c1402e1ba60:423</guid><dc:creator>chrisortman</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://codeprairie.net/blogs/chrisortman/rsscomments.aspx?PostID=423</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://codeprairie.net/blogs/chrisortman/commentapi.aspx?PostID=423</wfw:comment><comments>http://codeprairie.net/blogs/chrisortman/archive/2008/04/21/developer-exchange-program-pt2.aspx#comments</comments><description>&lt;p&gt;
Check out &lt;a href="http://stevenharman.net/blog/archive/2008/04/20/the-developer-exchange-program.aspx"&gt;this post&lt;/a&gt; by &lt;a href="http://stevenharman.net/blog/Default.aspx"&gt;Steve Harman&lt;/a&gt; He explains some of what we talked about on Saturday night far more eloquently than I ever could. And if you need some help explaining to your boss why you want to to do this it might help.
&lt;/p&gt;
&lt;p&gt;
There seems to be a fair amount of interest in this idea and that is very encouraging.
&lt;/p&gt;
&lt;p&gt;
I pitched this idea to my management today and they are definitely willing to support it. So the next step for me is going to be working with our HR / legal folks on some paperwork.
&lt;/p&gt;

&lt;p&gt;
The main things the paperwork needs to address are
&lt;ul&gt;
	&lt;li&gt;Nondisclosure agreement&lt;/li&gt;
	&lt;li&gt;We&amp;#39;re not going to steal your employee&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
&lt;p&gt;
I am going to ask that they let me release any documents we put together under &lt;a href="http://creativecommons.org/license/"&gt;CC&lt;/a&gt; although I&amp;#39;m not sure if that will fly or not.
&lt;/p&gt;
&lt;p&gt;
Right now I am thinking we might get a lot more bang for our buck if we were to not &lt;em&gt;trade&lt;/em&gt; but instead I goto your place and you goto someone else&amp;#39;s and so on and so forth. That way you take some of my ideas and of yours and we get a bit of a snowball effect happening. Thoughts on that?
&lt;/p&gt;


&lt;p&gt;Technorati Tags:
&lt;a href="http://technorati.com/tag/altdotnet" rel="tag"&gt;altdotnet&lt;/a&gt;, &lt;a href="http://technorati.com/tag/developerexchangeprogram" rel="tag"&gt;developerexchangeprogram&lt;/a&gt;
&lt;/p&gt;
&lt;img src="http://codeprairie.net/aggbug.aspx?PostID=423" width="1" height="1"&gt;</description></item><item><title>The Developer Exchange Program</title><link>http://codeprairie.net/blogs/chrisortman/archive/2008/04/20/the-developer-exchange-program.aspx</link><pubDate>Sun, 20 Apr 2008 07:23:23 GMT</pubDate><guid isPermaLink="false">73a4aa19-1c0c-4438-a31e-8c1402e1ba60:415</guid><dc:creator>chrisortman</dc:creator><slash:comments>11</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://codeprairie.net/blogs/chrisortman/rsscomments.aspx?PostID=415</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://codeprairie.net/blogs/chrisortman/commentapi.aspx?PostID=415</wfw:comment><comments>http://codeprairie.net/blogs/chrisortman/archive/2008/04/20/the-developer-exchange-program.aspx#comments</comments><description>&lt;p&gt;
Just think, what if I came and worked with you for a week, and then you came and worked with me?
&lt;/p&gt;
&lt;p&gt;
I&amp;#39;ve been talking to several people here at #altdotnet and pitching this idea and it seems very well received.
&lt;/p&gt;
&lt;p&gt;
There are some obvious logistics to work out and it might be a difficult sell to management, but I think the payoff is &lt;em&gt;very&lt;/em&gt; high.
&lt;/p&gt;
&lt;p&gt;
If this sounds interesting to you and you have any interest please contact me and lets see what we can do to help each other.
&lt;/p&gt;


&lt;p&gt;Technorati Tags:
&lt;a href="http://technorati.com/tag/altdotnet" rel="tag"&gt;altdotnet&lt;/a&gt;, &lt;a href="http://technorati.com/tag/developerexchangeprogram" rel="tag"&gt;developerexchangeprogram&lt;/a&gt;
&lt;/p&gt;
&lt;img src="http://codeprairie.net/aggbug.aspx?PostID=415" width="1" height="1"&gt;</description></item><item><title>Command line history</title><link>http://codeprairie.net/blogs/chrisortman/archive/2008/04/17/command-line-history.aspx</link><pubDate>Fri, 18 Apr 2008 00:35:57 GMT</pubDate><guid isPermaLink="false">73a4aa19-1c0c-4438-a31e-8c1402e1ba60:414</guid><dc:creator>chrisortman</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://codeprairie.net/blogs/chrisortman/rsscomments.aspx?PostID=414</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://codeprairie.net/blogs/chrisortman/commentapi.aspx?PostID=414</wfw:comment><comments>http://codeprairie.net/blogs/chrisortman/archive/2008/04/17/command-line-history.aspx#comments</comments><description>&lt;p&gt;
&lt;pre&gt;
&amp;gt;history 1000 | awk &amp;#39;{a[$2]++}END{for(i in a){print a&lt;img src="http://codeprairie.net/emoticons/emotion-55.gif" alt="Idea" /&gt; &amp;quot; &amp;quot; i}}&amp;#39; | sort -rn | head
116 git
98 ls
68 cd
55 shoes
19 mvim
12 mate
11 svn
10 vim
10 sudo
10 cat
&lt;/pre&gt;
&lt;/p&gt;&lt;img src="http://codeprairie.net/aggbug.aspx?PostID=414" width="1" height="1"&gt;</description></item><item><title>Using msbuild to create a bootstrapper for you installer</title><link>http://codeprairie.net/blogs/chrisortman/archive/2008/04/16/using-msbuild-to-create-a-bootstrapper-for-you-installer.aspx</link><pubDate>Thu, 17 Apr 2008 05:30:22 GMT</pubDate><guid isPermaLink="false">73a4aa19-1c0c-4438-a31e-8c1402e1ba60:411</guid><dc:creator>chrisortman</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://codeprairie.net/blogs/chrisortman/rsscomments.aspx?PostID=411</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://codeprairie.net/blogs/chrisortman/commentapi.aspx?PostID=411</wfw:comment><comments>http://codeprairie.net/blogs/chrisortman/archive/2008/04/16/using-msbuild-to-create-a-bootstrapper-for-you-installer.aspx#comments</comments><description>&lt;p&gt; 
I stumbled upon a nice task in MSBuild that you can use to create an executable file to
install prerequisites for your application. I used to do this in the past with by just creating a Setup Deployment project setting prerequisites and holding onto the generated .exe
&lt;/p&gt;
&lt;p&gt;
The biggest problem with that was that it made it problematic to ship an installer with the version number in the filename since the setup.exe was bound to an msi filename.
&lt;/p&gt;
&lt;p&gt;
Using the &lt;a href="http://msdn2.microsoft.com/en-us/library/ms164294.aspx"&gt;GenerateBootstrapper&lt;/a&gt; task I can create this setup.exe file as part of my build process.
&lt;/p&gt;
&lt;p&gt;
Take a look at this snippet from one of my build files
&lt;/p&gt;
&lt;p&gt;
&lt;pre class="textmate-source vibrant_ink"&gt;&lt;span class="text text_xml"&gt;&lt;span class="meta meta_tag meta_tag_xml"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;lt;&lt;/span&gt;&lt;span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml"&gt;ItemGroup&lt;/span&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class="meta meta_tag meta_tag_xml"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;lt;&lt;/span&gt;&lt;span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml"&gt;BootstrapperFile&lt;/span&gt; &lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_localname entity_other_attribute-name_localname_xml"&gt;Include&lt;/span&gt;=&lt;span class="string string_quoted string_quoted_double string_quoted_double_xml"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_xml"&gt;&amp;quot;&lt;/span&gt;Microsoft.Net.Framework.3.5&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_xml"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class="meta meta_tag meta_tag_xml"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;lt;&lt;/span&gt;&lt;span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml"&gt;ProductName&lt;/span&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;Microsoft .NET Framework 3.5&lt;span class="meta meta_tag meta_tag_xml"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml"&gt;ProductName&lt;/span&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class="meta meta_tag meta_tag_xml"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml"&gt;BootstrapperFile&lt;/span&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class="meta meta_tag meta_tag_xml"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;lt;&lt;/span&gt;&lt;span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml"&gt;BootstrapperFile&lt;/span&gt; &lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_localname entity_other_attribute-name_localname_xml"&gt;Include&lt;/span&gt;=&lt;span class="string string_quoted string_quoted_double string_quoted_double_xml"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_xml"&gt;&amp;quot;&lt;/span&gt;Microsoft.Sql.Server.Express.9.2&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_xml"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class="meta meta_tag meta_tag_xml"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;lt;&lt;/span&gt;&lt;span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml"&gt;ProductName&lt;/span&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;Microsoft SQL Server Express 2005 SP2&lt;span class="meta meta_tag meta_tag_xml"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml"&gt;ProductName&lt;/span&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class="meta meta_tag meta_tag_xml"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml"&gt;BootstrapperFile&lt;/span&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class="meta meta_tag meta_tag_xml"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;lt;&lt;/span&gt;&lt;span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml"&gt;BootstrapperFile&lt;/span&gt; &lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_localname entity_other_attribute-name_localname_xml"&gt;Include&lt;/span&gt;=&lt;span class="string string_quoted string_quoted_double string_quoted_double_xml"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_xml"&gt;&amp;quot;&lt;/span&gt;Microsoft.Windows.Installer.3.1&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_xml"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class="meta meta_tag meta_tag_xml"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;lt;&lt;/span&gt;&lt;span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml"&gt;ProductName&lt;/span&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;WIndows Installer 3.1&lt;span class="meta meta_tag meta_tag_xml"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml"&gt;ProductName&lt;/span&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class="meta meta_tag meta_tag_xml"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml"&gt;BootstrapperFile&lt;/span&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class="meta meta_tag meta_tag_xml"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml"&gt;ItemGroup&lt;/span&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class="meta meta_tag meta_tag_xml"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;lt;&lt;/span&gt;&lt;span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml"&gt;Target&lt;/span&gt; &lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_localname entity_other_attribute-name_localname_xml"&gt;Name&lt;/span&gt;=&lt;span class="string string_quoted string_quoted_double string_quoted_double_xml"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_xml"&gt;&amp;quot;&lt;/span&gt;CreateBootStrapper&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_xml"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class="meta meta_tag meta_tag_xml"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;lt;&lt;/span&gt;&lt;span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml"&gt;Message&lt;/span&gt; &lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_localname entity_other_attribute-name_localname_xml"&gt;Text&lt;/span&gt;=&lt;span class="string string_quoted string_quoted_double string_quoted_double_xml"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_xml"&gt;&amp;quot;&lt;/span&gt;$(GenerateBootstrapperSdkPath)&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_xml"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; &lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class="meta meta_tag meta_tag_xml"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;lt;&lt;/span&gt;&lt;span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml"&gt;GenerateBootstrapper&lt;/span&gt; &lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_localname entity_other_attribute-name_localname_xml"&gt;ApplicationFile&lt;/span&gt;=&lt;span class="string string_quoted string_quoted_double string_quoted_double_xml"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_xml"&gt;&amp;quot;&lt;/span&gt;$(OutputName).msi&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_xml"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;
                        &lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_localname entity_other_attribute-name_localname_xml"&gt;ApplicationName&lt;/span&gt;=&lt;span class="string string_quoted string_quoted_double string_quoted_double_xml"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_xml"&gt;&amp;quot;&lt;/span&gt;$(ProductName)&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_xml"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;
                        &lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_localname entity_other_attribute-name_localname_xml"&gt;BootstrapperItems&lt;/span&gt;=&lt;span class="string string_quoted string_quoted_double string_quoted_double_xml"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_xml"&gt;&amp;quot;&lt;/span&gt;@(BootstrapperFile)&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_xml"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;
                        &lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_localname entity_other_attribute-name_localname_xml"&gt;OutputPath&lt;/span&gt;=&lt;span class="string string_quoted string_quoted_double string_quoted_double_xml"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_xml"&gt;&amp;quot;&lt;/span&gt;$(OutputPath)&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_xml"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;
                        &lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_localname entity_other_attribute-name_localname_xml"&gt;ComponentsLocation&lt;/span&gt;=&lt;span class="string string_quoted string_quoted_double string_quoted_double_xml"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_xml"&gt;&amp;quot;&lt;/span&gt;HomeSite&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_xml"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;
                        &lt;span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_localname entity_other_attribute-name_localname_xml"&gt;Culture&lt;/span&gt;=&lt;span class="string string_quoted string_quoted_double string_quoted_double_xml"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_xml"&gt;&amp;quot;&lt;/span&gt;en-US&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_xml"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; &lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
                        
&lt;span class="meta meta_tag meta_tag_xml"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml"&gt;Target&lt;/span&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class="meta meta_tag meta_tag_xml"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;lt;&lt;/span&gt;&lt;span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml"&gt;PropertyGroup&lt;/span&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class="meta meta_tag meta_tag_xml"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;lt;&lt;/span&gt;&lt;span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml"&gt;BuildDependsOn&lt;/span&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;$(BuildDependsOn);CreateBootStrapper&lt;span class="meta meta_tag meta_tag_xml"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml"&gt;BuildDependsOn&lt;/span&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class="meta meta_tag meta_tag_xml"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml"&gt;PropertyGroup&lt;/span&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;
The BootstrapperFile items define my prerequisites. The easiest way I found to see what the list of available prerequisites are was to create a Setup Deployment project and configure them, then look at the generated project file
&lt;/p&gt;
&lt;p&gt;
Then all I need to do is invoke the task and boom, setup.exe is produced.
&lt;/p&gt;
&lt;p&gt;
One thing I did run into when doing this is that you have to make sure MSBuild is using the 3.5 ToolsVersion or it won&amp;#39;t find the merge modules.
&lt;/p&gt;
&lt;p&gt;
Also, the referenced prerequisites seem to only get installed with Visual Studio so I had to install it on my build server.
&lt;/p&gt;&lt;img src="http://codeprairie.net/aggbug.aspx?PostID=411" width="1" height="1"&gt;</description></item><item><title>Hooking into new Nhibernate features from Castle ActiveRecord</title><link>http://codeprairie.net/blogs/chrisortman/archive/2008/04/09/hooking-into-new-nhibernate-features-from-castle-activerecord.aspx</link><pubDate>Wed, 09 Apr 2008 15:39:45 GMT</pubDate><guid isPermaLink="false">73a4aa19-1c0c-4438-a31e-8c1402e1ba60:409</guid><dc:creator>chrisortman</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://codeprairie.net/blogs/chrisortman/rsscomments.aspx?PostID=409</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://codeprairie.net/blogs/chrisortman/commentapi.aspx?PostID=409</wfw:comment><comments>http://codeprairie.net/blogs/chrisortman/archive/2008/04/09/hooking-into-new-nhibernate-features-from-castle-activerecord.aspx#comments</comments><description>&lt;p&gt;
&lt;a href="http://www.nhibernate.org"&gt;NHibernate&lt;/a&gt; has a lot of great new features. One of which is support for events.
&lt;/p&gt;

&lt;p&gt;However, if you are using &lt;a href="http://www.castleproject.org/activerecord"&gt;Castle ActiveRecord&lt;/a&gt; you can&amp;#39;t specify these things in the configuration like you normally could and must instead roll up your sleeves and do it programatically.
&lt;/p&gt;

&lt;p&gt; There are 2 hooks in ActiveRecord that we can use to accomplish our goal. &lt;/p&gt;

&lt;p&gt; The first is SessionFactoryHolderCreated which will notify you that the thing that holds the NHibernate ISessionFactory is ready. The next is RootTypeRegistered which happens after the active record configuration has been turned into NHibernate configuration.
&lt;/p&gt;

&lt;p&gt; Here is a simple example &lt;/p&gt;

&lt;div style="font-family:Consolas;font-size:11pt;color:white;background:black;font-weight:bold;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;font-weight:normal;"&gt;IConfigurationSource&lt;/span&gt; source = &lt;span style="color:#ffc66d;"&gt;ConfigurationSettings&lt;/span&gt;&lt;span style="font-weight:normal;"&gt;.GetConfig(&lt;/span&gt;&lt;span style="color:#a5c25c;"&gt;&amp;quot;activerecord&amp;quot;&lt;/span&gt;) &lt;span style="color:#cc7832;"&gt;as&lt;/span&gt; &lt;span style="color:#2b91af;font-weight:normal;"&gt;IConfigurationSource&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#ffc66d;"&gt;ActiveRecordStarter&lt;/span&gt;&lt;span style="font-weight:normal;"&gt;.SessionFactoryHolderCreated += (holder) =&amp;gt; {&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; holder.OnRootTypeRegistered += (sender, rootType) =&amp;gt; {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:#cc7832;"&gt;var&lt;/span&gt; mholder = sender &lt;span style="color:#cc7832;"&gt;as&lt;/span&gt; &lt;span style="color:#2b91af;font-weight:normal;"&gt;ISessionFactoryHolder&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:#cc7832;"&gt;var&lt;/span&gt; nhConfig = mholder.GetConfiguration( rootType);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; &amp;nbsp; nhConfig.EventListeners. PreUpdateEventListeners =&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:#cc7832;"&gt;new&lt;/span&gt; NHibernate.Event. &lt;span style="color:#2b91af;font-weight:normal;"&gt;IPreUpdateEventListener&lt;/span&gt;[] {&lt;span style="color:#cc7832;"&gt;new&lt;/span&gt; &lt;span style="color:#ffc66d;"&gt;MyEventListener&lt;/span&gt;()}; &lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp; };&lt;/p&gt;
&lt;p style="margin:0px;"&gt;};&lt;/p&gt;
&lt;/div&gt;


&lt;p&gt;Technorati Tags:
&lt;a href="http://technorati.com/tag/castle" rel="tag"&gt;castle&lt;/a&gt;, &lt;a href="http://technorati.com/tag/nhibernate" rel="tag"&gt;nhibernate&lt;/a&gt;, &lt;a href="http://technorati.com/tag/.net" rel="tag"&gt;.net&lt;/a&gt;
&lt;/p&gt;
&lt;img src="http://codeprairie.net/aggbug.aspx?PostID=409" width="1" height="1"&gt;</description><category domain="http://codeprairie.net/blogs/chrisortman/archive/tags/.NET/default.aspx">.NET</category><category domain="http://codeprairie.net/blogs/chrisortman/archive/tags/Castle/default.aspx">Castle</category><category domain="http://codeprairie.net/blogs/chrisortman/archive/tags/NHibernate/default.aspx">NHibernate</category></item><item><title>Quick Resharper Tip</title><link>http://codeprairie.net/blogs/chrisortman/archive/2008/04/08/quick-resharper-tip.aspx</link><pubDate>Wed, 09 Apr 2008 02:26:33 GMT</pubDate><guid isPermaLink="false">73a4aa19-1c0c-4438-a31e-8c1402e1ba60:407</guid><dc:creator>chrisortman</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://codeprairie.net/blogs/chrisortman/rsscomments.aspx?PostID=407</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://codeprairie.net/blogs/chrisortman/commentapi.aspx?PostID=407</wfw:comment><comments>http://codeprairie.net/blogs/chrisortman/archive/2008/04/08/quick-resharper-tip.aspx#comments</comments><description>&lt;p&gt;
	I&amp;#39;m upgrading my &lt;a href="http://www.nhibernate.org"&gt;NHibernate&lt;/a&gt; references to the new Alpha build and have to change a bunch of using declarations from NHibernate.Expressions to NHibernate.Criterion.
&lt;/p&gt;

&lt;p&gt;
	A simple way to have &lt;a href="http://www.jetbrains.com/resharper"&gt;Resharper&lt;/a&gt; do this for you is to declare you own NHibernate.Expression namespace and rename it.
&lt;/p&gt;

&lt;p&gt; 
Resharper will then find anywhere you declared a using for it and update it. When you are done just remove your namespace declaration.
&lt;/p&gt;




&lt;p&gt;Technorati Tags:
&lt;a href="http://technorati.com/tag/nhibernate" rel="tag"&gt;nhibernate&lt;/a&gt;, &lt;a href="http://technorati.com/tag/resharper" rel="tag"&gt;resharper&lt;/a&gt;
&lt;/p&gt;
&lt;img src="http://codeprairie.net/aggbug.aspx?PostID=407" width="1" height="1"&gt;</description><category domain="http://codeprairie.net/blogs/chrisortman/archive/tags/Resharper/default.aspx">Resharper</category><category domain="http://codeprairie.net/blogs/chrisortman/archive/tags/NHibernate/default.aspx">NHibernate</category></item><item><title>git-svn and cherry picking</title><link>http://codeprairie.net/blogs/chrisortman/archive/2008/04/08/git-svn-and-cherry-picking.aspx</link><pubDate>Tue, 08 Apr 2008 15:33:47 GMT</pubDate><guid isPermaLink="false">73a4aa19-1c0c-4438-a31e-8c1402e1ba60:406</guid><dc:creator>chrisortman</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://codeprairie.net/blogs/chrisortman/rsscomments.aspx?PostID=406</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://codeprairie.net/blogs/chrisortman/commentapi.aspx?PostID=406</wfw:comment><comments>http://codeprairie.net/blogs/chrisortman/archive/2008/04/08/git-svn-and-cherry-picking.aspx#comments</comments><description>&lt;p&gt;git-cherry-pick is great command. It allows you to take a single commit made elsewhere and commit it to your workin g tree. From the man page:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Given one existing commit, apply the change the patch introduces, and record a new commit&lt;br /&gt;that records it. This requires your working tree to be clean (no modifications from the&lt;br /&gt;HEAD commit).&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Today I was working on something and bumped into a bug that I had fixed in a release branch.&lt;/p&gt; &lt;p&gt;I looked up the ticket for the bug and saw that it was fixed in svn revision 7624. So in order to find that commit in git I did&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New" color="#ff0000" size="3"&gt;git co 1.1&lt;br /&gt;SHA=`git svn find-rev r7624`&lt;/font&gt;&lt;/p&gt; &lt;p&gt;Now I want this change in my 1.2 branch&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New" color="#ff0000" size="3"&gt;git co 1.2&lt;br /&gt;git cherry-pick $SHA&lt;/font&gt;&lt;/p&gt; &lt;p&gt;All is well and good, until....&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New" color="#ff0000" size="3"&gt;git log&lt;/font&gt;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;commit b48bbd5217206bae0ad3d520e0820ffce5fb8bff&lt;br /&gt;Author: chriso &amp;lt;chriso@44e5888c-930d-754b-aefa-77e11abcc7dd&amp;gt;&lt;br /&gt;Date: Tue Feb 26 15:02:55 2008 +0000 &lt;/p&gt; &lt;p&gt;Working around a monorail change that broke me reseting the session state in the reset method of the wizard step. [refs #304]  &lt;p&gt;git-svn-id: &lt;a href="https://buildserver/svn/repos/tags/1.1@7624"&gt;https://buildserver/svn/repos/tags/1.1@7624&lt;/a&gt; 44e5888c-930d-754b-aefa-77e11abcc7dd&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;See that git-svn-id line? If I leave it as is when I dcommit my 1.2 branch (which goes to trunk in svn) it will make the commit to the tags/1.1 branch in svn because that is where the most recent git-svn-id points to.&lt;/p&gt; &lt;p&gt;The workaround is actually quite simple&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New" color="#ff0000" size="3"&gt;git cherry-pick -n $SHA&lt;/font&gt;&lt;/p&gt; &lt;p&gt;What this will do is stage the changes but not commit. Now I can &lt;font face="Courier New" color="#ff0000" size="3"&gt;git-commit&lt;/font&gt; myself and remove the git-svn-id line.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:2fe12bb1-ffce-44ac-bb4a-5be9d50f3de3" style="padding-right:0px;display:inline;padding-left:0px;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/git" rel="tag"&gt;git&lt;/a&gt;&lt;/div&gt;&lt;img src="http://codeprairie.net/aggbug.aspx?PostID=406" width="1" height="1"&gt;</description></item><item><title>Claiming my blog</title><link>http://codeprairie.net/blogs/chrisortman/archive/2008/04/06/claiming-my-blog.aspx</link><pubDate>Sun, 06 Apr 2008 15:55:47 GMT</pubDate><guid isPermaLink="false">73a4aa19-1c0c-4438-a31e-8c1402e1ba60:404</guid><dc:creator>chrisortman</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://codeprairie.net/blogs/chrisortman/rsscomments.aspx?PostID=404</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://codeprairie.net/blogs/chrisortman/commentapi.aspx?PostID=404</wfw:comment><comments>http://codeprairie.net/blogs/chrisortman/archive/2008/04/06/claiming-my-blog.aspx#comments</comments><description>&lt;a href="http://technorati.com/claim/3gghh6xcq" rel="me"&gt;Technorati Profile&lt;/a&gt;&lt;img src="http://codeprairie.net/aggbug.aspx?PostID=404" width="1" height="1"&gt;</description></item><item><title>Follow Up: How do you manage your open source software</title><link>http://codeprairie.net/blogs/chrisortman/archive/2008/04/06/follow-up-how-do-you-manage-your-open-source-software.aspx</link><pubDate>Sun, 06 Apr 2008 15:50:39 GMT</pubDate><guid isPermaLink="false">73a4aa19-1c0c-4438-a31e-8c1402e1ba60:402</guid><dc:creator>chrisortman</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://codeprairie.net/blogs/chrisortman/rsscomments.aspx?PostID=402</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://codeprairie.net/blogs/chrisortman/commentapi.aspx?PostID=402</wfw:comment><comments>http://codeprairie.net/blogs/chrisortman/archive/2008/04/06/follow-up-how-do-you-manage-your-open-source-software.aspx#comments</comments><description>&lt;p&gt;
A while ago I asked: &lt;a href="http://codeprairie.net/blogs/chrisortman/archive/2008/02/19/how-do-you-manage-your-open-source-software.aspx"&gt;How do you manage your open source software?&lt;/a&gt;. It seems like &lt;a href="http://blechie.com/WPierce/archive/2008/04/03/RFI-Keeping-Open-Source-Dependencies-Up-To-Date.aspx"&gt;Bill Pierce&lt;/a&gt; had the same question, so I thought I should get to writing my follow up.
&lt;/p&gt;

&lt;p&gt;
I also asked this same question on the &lt;a href="http://tech.groups.yahoo.com/group/altdotnet/"&gt;alt.net mailing list&lt;/a&gt; (whole thread is &lt;a href="http://tech.groups.yahoo.com/group/altdotnet/msearch?query=managing+open+source+software&amp;amp;submit=Search&amp;amp;charset=ISO-8859-1"&gt;here&lt;/a&gt;).
&lt;/p&gt;

&lt;p&gt; A lot of folks suggest not updating once you have picked some library to use. That is a fine approach in some cases, but in my opinion things like &lt;a href="http://www.castleproject.org"&gt;Castle&lt;/a&gt; and &lt;a href="http://www.nhibernate.org"&gt;NHibernate&lt;/a&gt; are never &lt;i&gt;done&lt;/i&gt; and I want to be able to update and take advantage of new features.
&lt;/p&gt;

&lt;p&gt;
	So, how do I handle this today?
&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt; 
		Import the open source project subversion repository into a &lt;a href="http://git.or.cz"&gt;git&lt;/a&gt; repository. 
	&lt;/li&gt;
	&lt;li&gt;
		Build the project and copy its outputs to MyProject/Lib/OpenSourceProjectName using a rakefile I wrote.
	&lt;/li&gt;
	&lt;li&gt;
		Commit the changes to MyProject noting the sha1 (from git) and the svn revision of the open source project.
	&lt;/li&gt;
	&lt;li&gt;
		Create a git tag in the open source project git repository that ties it to the branch in my other project.
	&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
What does this look like in practice?
&lt;pre&gt;
	cd /cygdrive/q/castle
	git svn fetch #gets changes from castle svn
	cd ..
	rake build:castle libcopy:castle_to_myproject
	cd myproject
	git add lib/castle
	git commit -m &amp;quot;Updated castle libs to sha xxxxxxxxxxxxxx svn revision 4000&amp;quot;
	cd ../castle
	git tag -f -a myproject-trunk
&lt;/pre&gt;

&lt;p&gt;
So far I have been pretty happy with this approach. It could definitely be a little more automated, but it is doing the job.
&lt;/p&gt;

&lt;p&gt;
The link between the open source code and myproject is maybe a bit too fragile. I think I can do better using either &lt;a href="http://www.kernel.org/pub/software/scm/git/docs/git-submodule.html"&gt;git submodules&lt;/a&gt; or &lt;a href="http://evil.che.lu/projects/braid"&gt;braid&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
	I&amp;#39;ve been experimenting with  &lt;a href="http://evil.che.lu/projects/braid"&gt;braid&lt;/a&gt; on my rails projects, I&amp;#39;m not sure yet if it will make sense to use it with for this though.
&lt;/p&gt;

&lt;p&gt;
If you are interested here&amp;#39;s the rakefile I use:
&lt;/p&gt;

&lt;pre class="textmate-source vibrant_ink"&gt;&lt;span class="source source_ruby"&gt;&lt;span class="meta meta_require meta_require_ruby"&gt;&lt;span class="keyword keyword_other keyword_other_special-method keyword_other_special-method_ruby"&gt;require&lt;/span&gt; &lt;span class="string string_quoted string_quoted_single string_quoted_single_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;&amp;#39;&lt;/span&gt;rake&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;

&lt;span class="meta meta_class meta_class_ruby"&gt;&lt;span class="keyword keyword_control keyword_control_class keyword_control_class_ruby"&gt;class&lt;/span&gt; &lt;span class="entity entity_name entity_name_type entity_name_type_class entity_name_type_class_ruby"&gt;LibCopy&lt;/span&gt;&lt;/span&gt;

  &lt;span class="meta meta_function meta_function_method meta_function_method_with-arguments meta_function_method_with-arguments_ruby"&gt;&lt;span class="keyword keyword_control keyword_control_def keyword_control_def_ruby"&gt;def&lt;/span&gt; &lt;span class="entity entity_name entity_name_function entity_name_function_ruby"&gt;copy&lt;/span&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_ruby"&gt;(&lt;/span&gt;&lt;span class="variable variable_parameter variable_parameter_function variable_parameter_function_ruby"&gt;lib_files&lt;span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby"&gt;,&lt;/span&gt; lib_build_dir&lt;/span&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_ruby"&gt;)&lt;/span&gt;&lt;/span&gt;
    libs_in_use &lt;span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby"&gt;=&lt;/span&gt; lib_files
    libs_in_use&lt;span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby"&gt;.&lt;/span&gt;each &lt;span class="keyword keyword_control keyword_control_start-block keyword_control_start-block_ruby"&gt;do &lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_variable punctuation_separator_variable_ruby"&gt;|&lt;/span&gt;&lt;span class="variable variable_other variable_other_block variable_other_block_ruby"&gt;lib&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_variable punctuation_separator_variable_ruby"&gt;|&lt;/span&gt;
      puts &lt;span class="string string_quoted string_quoted_double string_quoted_double_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;&amp;quot;&lt;/span&gt;Check for &lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; &lt;span class="keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby"&gt;+&lt;/span&gt; lib
      lib_file &lt;span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby"&gt;=&lt;/span&gt; lib_build_dir &lt;span class="keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby"&gt;+&lt;/span&gt; &lt;span class="string string_quoted string_quoted_double string_quoted_double_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;&amp;quot;&lt;/span&gt;/&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; &lt;span class="keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby"&gt;+&lt;/span&gt;  lib&lt;span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby"&gt;.&lt;/span&gt;pathmap&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;(&lt;/span&gt;&lt;span class="string string_quoted string_quoted_double string_quoted_double_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;&amp;quot;&lt;/span&gt;%f&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;)&lt;/span&gt; 
      &lt;span class="keyword keyword_control keyword_control_ruby"&gt;if&lt;/span&gt; &lt;span class="support support_class support_class_ruby"&gt;File&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby"&gt;.&lt;/span&gt;exists?&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;(&lt;/span&gt;lib_file&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;)&lt;/span&gt;
        puts &lt;span class="string string_quoted string_quoted_double string_quoted_double_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;&amp;quot;&lt;/span&gt;Found &lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; &lt;span class="keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby"&gt;+&lt;/span&gt; lib_file
        cp lib_file&lt;span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby"&gt;,&lt;/span&gt; &lt;span class="support support_class support_class_ruby"&gt;File&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby"&gt;.&lt;/span&gt;expand_path&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;(&lt;/span&gt;lib&lt;span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby"&gt;.&lt;/span&gt;pathmap&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;(&lt;/span&gt;&lt;span class="string string_quoted string_quoted_double string_quoted_double_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;&amp;quot;&lt;/span&gt;%p&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;))&lt;/span&gt;
      &lt;span class="keyword keyword_control keyword_control_ruby"&gt;else&lt;/span&gt;
        puts &lt;span class="string string_quoted string_quoted_double string_quoted_double_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;&amp;quot;&lt;/span&gt;lib not found:&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; &lt;span class="keyword keyword_operator keyword_operator_arithmetic keyword_operator_arithmetic_ruby"&gt;+&lt;/span&gt; lib_file 
      &lt;span class="keyword keyword_control keyword_control_ruby"&gt;end&lt;/span&gt;
    &lt;span class="keyword keyword_control keyword_control_ruby"&gt;end&lt;/span&gt;
  &lt;span class="keyword keyword_control keyword_control_ruby"&gt;end&lt;/span&gt;
&lt;span class="keyword keyword_control keyword_control_ruby"&gt;end&lt;/span&gt;

namespace &lt;span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby"&gt;:&lt;/span&gt;build&lt;/span&gt; &lt;span class="keyword keyword_control keyword_control_start-block keyword_control_start-block_ruby"&gt;do
&lt;/span&gt;

  &lt;span class="variable variable_other variable_other_constant variable_other_constant_ruby"&gt;CASTLE_BUILD_DIR&lt;/span&gt; &lt;span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby"&gt;=&lt;/span&gt; &lt;span class="string string_quoted string_quoted_single string_quoted_single_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;&amp;#39;&lt;/span&gt;q:/castle/build/net-3.5/debug&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;&amp;#39;&lt;/span&gt;&lt;/span&gt;

  task &lt;span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby"&gt;:&lt;/span&gt;castle&lt;/span&gt; &lt;span class="keyword keyword_control keyword_control_start-block keyword_control_start-block_ruby"&gt;do &lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_variable punctuation_separator_variable_ruby"&gt;|&lt;/span&gt;&lt;span class="variable variable_other variable_other_block variable_other_block_ruby"&gt;t&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_variable punctuation_separator_variable_ruby"&gt;|&lt;/span&gt;
    cd &lt;span class="string string_quoted string_quoted_single string_quoted_single_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;&amp;#39;&lt;/span&gt;castle&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;&amp;#39;&lt;/span&gt;&lt;/span&gt;
    puts &lt;span class="string string_quoted string_quoted_double string_quoted_double_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;&amp;quot;&lt;/span&gt;Building Castle....&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;
    puts sh&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;(&lt;/span&gt;&lt;span class="string string_quoted string_quoted_double string_quoted_double_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;&amp;quot;&lt;/span&gt;c:&lt;span class="constant constant_character constant_character_escape constant_character_escape_ruby"&gt;\\&lt;/span&gt;tools&lt;span class="constant constant_character constant_character_escape constant_character_escape_ruby"&gt;\\&lt;/span&gt;nant-0.86-beta1&lt;span class="constant constant_character constant_character_escape constant_character_escape_ruby"&gt;\\&lt;/span&gt;bin&lt;span class="constant constant_character constant_character_escape constant_character_escape_ruby"&gt;\\&lt;/span&gt;nant.exe -t:net-3.5 -D:common.testrunner.enabled=false -D:mbunit-console=c:&lt;span class="constant constant_character constant_character_escape constant_character_escape_ruby"&gt;\\&lt;/span&gt;progra~1&lt;span class="constant constant_character constant_character_escape constant_character_escape_ruby"&gt;\\&lt;/span&gt;mbunit&lt;span class="constant constant_character constant_character_escape constant_character_escape_ruby"&gt;\\&lt;/span&gt;mbunit.cons.exe&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;)&lt;/span&gt;
    puts &lt;span class="string string_quoted string_quoted_double string_quoted_double_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;&amp;quot;&lt;/span&gt;Build Finished&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;
    cd &lt;span class="string string_quoted string_quoted_single string_quoted_single_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;&amp;#39;&lt;/span&gt;..&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;&amp;#39;&lt;/span&gt;&lt;/span&gt;
  &lt;span class="keyword keyword_control keyword_control_ruby"&gt;end&lt;/span&gt;

  task &lt;span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby"&gt;:&lt;/span&gt;rhino&lt;/span&gt; &lt;span class="keyword keyword_control keyword_control_start-block keyword_control_start-block_ruby"&gt;do &lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_variable punctuation_separator_variable_ruby"&gt;|&lt;/span&gt;&lt;span class="variable variable_other variable_other_block variable_other_block_ruby"&gt;t&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_variable punctuation_separator_variable_ruby"&gt;|&lt;/span&gt;
&lt;span class="comment comment_line comment_line_number-sign comment_line_number-sign_ruby"&gt;    &lt;span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_ruby"&gt;#&lt;/span&gt;Seems like i may need to do an MSBUILD using the generator sln file before the whole build will work
&lt;/span&gt;    cd &lt;span class="string string_quoted string_quoted_single string_quoted_single_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;&amp;#39;&lt;/span&gt;rhino-tools&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;&amp;#39;&lt;/span&gt;&lt;/span&gt;
    puts &lt;span class="string string_quoted string_quoted_double string_quoted_double_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;&amp;quot;&lt;/span&gt;Building Rhino-tools&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;
    puts &lt;span class="string string_interpolated string_interpolated_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;`&lt;/span&gt;msbuild.exe BuildAll.build&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;`&lt;/span&gt;&lt;/span&gt;
    puts &lt;span class="string string_quoted string_quoted_double string_quoted_double_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;&amp;quot;&lt;/span&gt;Done building rhino&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;

  &lt;span class="keyword keyword_control keyword_control_ruby"&gt;end&lt;/span&gt;

  task &lt;span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby"&gt;:&lt;/span&gt;update_rhino_from_castle&lt;/span&gt; &lt;span class="keyword keyword_control keyword_control_start-block keyword_control_start-block_ruby"&gt;do
&lt;/span&gt;    rhino_castle_libs &lt;span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby"&gt;=&lt;/span&gt; &lt;span class="support support_class support_class_ruby"&gt;FileList&lt;/span&gt;&lt;span class="punctuation punctuation_section punctuation_section_array punctuation_section_array_ruby"&gt;[&lt;/span&gt;&lt;span class="string string_quoted string_quoted_single string_quoted_single_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;&amp;#39;&lt;/span&gt;./rhino-tools/SharedLibs/Castle/*&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;span class="punctuation punctuation_section punctuation_section_array punctuation_section_array_ruby"&gt;]&lt;/span&gt;
    &lt;span class="support support_class support_class_ruby"&gt;LibCopy&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby"&gt;.&lt;/span&gt;&lt;span class="keyword keyword_other keyword_other_special-method keyword_other_special-method_ruby"&gt;new&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby"&gt;.&lt;/span&gt;copy&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;(&lt;/span&gt;rhino_castle_libs&lt;span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby"&gt;,&lt;/span&gt; &lt;span class="variable variable_other variable_other_constant variable_other_constant_ruby"&gt;CASTLE_BUILD_DIR&lt;/span&gt;&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;)&lt;/span&gt;
  &lt;span class="keyword keyword_control keyword_control_ruby"&gt;end&lt;/span&gt;
&lt;span class="keyword keyword_control keyword_control_ruby"&gt;end&lt;/span&gt;

namespace &lt;span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby"&gt;:&lt;/span&gt;libcopy&lt;/span&gt; &lt;span class="keyword keyword_control keyword_control_start-block keyword_control_start-block_ruby"&gt;do 
&lt;/span&gt;
  task &lt;span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby"&gt;:&lt;/span&gt;castle_to_api&lt;/span&gt; &lt;span class="keyword keyword_control keyword_control_start-block keyword_control_start-block_ruby"&gt;do
&lt;/span&gt;    api_castle_libs &lt;span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby"&gt;=&lt;/span&gt; &lt;span class="support support_class support_class_ruby"&gt;FileList&lt;/span&gt;&lt;span class="punctuation punctuation_section punctuation_section_array punctuation_section_array_ruby"&gt;[&lt;/span&gt;&lt;span class="string string_quoted string_quoted_single string_quoted_single_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;&amp;#39;&lt;/span&gt;./OmniaAPI/DependentFiles/Castle/*&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;span class="punctuation punctuation_section punctuation_section_array punctuation_section_array_ruby"&gt;]&lt;/span&gt;
    &lt;span class="support support_class support_class_ruby"&gt;LibCopy&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby"&gt;.&lt;/span&gt;&lt;span class="keyword keyword_other keyword_other_special-method keyword_other_special-method_ruby"&gt;new&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby"&gt;.&lt;/span&gt;copy&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;(&lt;/span&gt;api_castle_libs&lt;span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby"&gt;,&lt;/span&gt;&lt;span class="variable variable_other variable_other_constant variable_other_constant_ruby"&gt;CASTLE_BUILD_DIR&lt;/span&gt;&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;)&lt;/span&gt;
  &lt;span class="keyword keyword_control keyword_control_ruby"&gt;end&lt;/span&gt;

  task &lt;span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby"&gt;:&lt;/span&gt;castle_to_mrrest&lt;/span&gt; &lt;span class="keyword keyword_control keyword_control_start-block keyword_control_start-block_ruby"&gt;do
&lt;/span&gt;    dest_castle_libs &lt;span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby"&gt;=&lt;/span&gt; &lt;span class="support support_class support_class_ruby"&gt;FileList&lt;/span&gt;&lt;span class="punctuation punctuation_section punctuation_section_array punctuation_section_array_ruby"&gt;[&lt;/span&gt;&lt;span class="string string_quoted string_quoted_single string_quoted_single_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;&amp;#39;&lt;/span&gt;./MRRestSupport/lib/*&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;span class="punctuation punctuation_section punctuation_section_array punctuation_section_array_ruby"&gt;]&lt;/span&gt;
    &lt;span class="support support_class support_class_ruby"&gt;LibCopy&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby"&gt;.&lt;/span&gt;&lt;span class="keyword keyword_other keyword_other_special-method keyword_other_special-method_ruby"&gt;new&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby"&gt;.&lt;/span&gt;copy&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;(&lt;/span&gt;dest_castle_libs&lt;span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby"&gt;,&lt;/span&gt;&lt;span class="variable variable_other variable_other_constant variable_other_constant_ruby"&gt;CASTLE_BUILD_DIR&lt;/span&gt;&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;)&lt;/span&gt;
  &lt;span class="keyword keyword_control keyword_control_ruby"&gt;end&lt;/span&gt;

  task &lt;span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby"&gt;:&lt;/span&gt;castle_to_myproject&lt;/span&gt; &lt;span class="keyword keyword_control keyword_control_start-block keyword_control_start-block_ruby"&gt;do
&lt;/span&gt;    dest_castle_libs &lt;span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby"&gt;=&lt;/span&gt; &lt;span class="support support_class support_class_ruby"&gt;FileList&lt;/span&gt;&lt;span class="punctuation punctuation_section punctuation_section_array punctuation_section_array_ruby"&gt;[&lt;/span&gt;&lt;span class="string string_quoted string_quoted_single string_quoted_single_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;&amp;#39;&lt;/span&gt;./myproject/DependentFiles/Castle/*&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;span class="punctuation punctuation_section punctuation_section_array punctuation_section_array_ruby"&gt;]&lt;/span&gt;
    &lt;span class="support support_class support_class_ruby"&gt;LibCopy&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby"&gt;.&lt;/span&gt;&lt;span class="keyword keyword_other keyword_other_special-method keyword_other_special-method_ruby"&gt;new&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby"&gt;.&lt;/span&gt;copy&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;(&lt;/span&gt;dest_castle_libs&lt;span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby"&gt;,&lt;/span&gt;&lt;span class="variable variable_other variable_other_constant variable_other_constant_ruby"&gt;CASTLE_BUILD_DIR&lt;/span&gt;&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;)&lt;/span&gt;
  &lt;span class="keyword keyword_control keyword_control_ruby"&gt;end&lt;/span&gt;

  task &lt;span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby"&gt;:&lt;/span&gt;castle_to_codegenerator&lt;/span&gt; &lt;span class="keyword keyword_control keyword_control_start-block keyword_control_start-block_ruby"&gt;do
&lt;/span&gt;    dest_castle_libs &lt;span class="keyword keyword_operator keyword_operator_assignment keyword_operator_assignment_ruby"&gt;=&lt;/span&gt; &lt;span class="support support_class support_class_ruby"&gt;FileList&lt;/span&gt;&lt;span class="punctuation punctuation_section punctuation_section_array punctuation_section_array_ruby"&gt;[&lt;/span&gt;&lt;span class="string string_quoted string_quoted_single string_quoted_single_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;&amp;#39;&lt;/span&gt;./Castle.MonoRail.CodeGenerator/Libraries/*.dll&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;span class="punctuation punctuation_section punctuation_section_array punctuation_section_array_ruby"&gt;]&lt;/span&gt;
    &lt;span class="support support_class support_class_ruby"&gt;LibCopy&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby"&gt;.&lt;/span&gt;&lt;span class="keyword keyword_other keyword_other_special-method keyword_other_special-method_ruby"&gt;new&lt;/span&gt;&lt;span class="punctuation punctuation_separator punctuation_separator_method punctuation_separator_method_ruby"&gt;.&lt;/span&gt;copy&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;(&lt;/span&gt;dest_castle_libs&lt;span class="punctuation punctuation_separator punctuation_separator_object punctuation_separator_object_ruby"&gt;,&lt;/span&gt;&lt;span class="variable variable_other variable_other_constant variable_other_constant_ruby"&gt;CASTLE_BUILD_DIR&lt;/span&gt;&lt;span class="punctuation punctuation_section punctuation_section_function punctuation_section_function_ruby"&gt;)&lt;/span&gt;
  &lt;span class="keyword keyword_control keyword_control_ruby"&gt;end&lt;/span&gt;
&lt;span class="keyword keyword_control keyword_control_ruby"&gt;end&lt;/span&gt;

&lt;/span&gt;&lt;/pre&gt;



&lt;p&gt;Technorati Tags:
&lt;a href="http://technorati.com/tag/git" rel="tag"&gt;git&lt;/a&gt;, &lt;a href="http://technorati.com/tag/castle" rel="tag"&gt;castle&lt;/a&gt;
&lt;/p&gt;
&lt;img src="http://codeprairie.net/aggbug.aspx?PostID=402" width="1" height="1"&gt;</description><category domain="http://codeprairie.net/blogs/chrisortman/archive/tags/Build/default.aspx">Build</category><category domain="http://codeprairie.net/blogs/chrisortman/archive/tags/Castle/default.aspx">Castle</category><category domain="http://codeprairie.net/blogs/chrisortman/archive/tags/Ruby/default.aspx">Ruby</category><category domain="http://codeprairie.net/blogs/chrisortman/archive/tags/git/default.aspx">git</category></item><item><title>Textmate Test</title><link>http://codeprairie.net/blogs/chrisortman/archive/2008/03/30/textmate-test.aspx</link><pubDate>Sun, 30 Mar 2008 15:44:26 GMT</pubDate><guid isPermaLink="false">73a4aa19-1c0c-4438-a31e-8c1402e1ba60:401</guid><dc:creator>chrisortman</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://codeprairie.net/blogs/chrisortman/rsscomments.aspx?PostID=401</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://codeprairie.net/blogs/chrisortman/commentapi.aspx?PostID=401</wfw:comment><comments>http://codeprairie.net/blogs/chrisortman/archive/2008/03/30/textmate-test.aspx#comments</comments><description>&lt;p&gt; This is a test post from textmate &lt;/p&gt;

&lt;p&gt; Here&amp;#39;s some test code

&lt;pre class="textmate-source vibrant_ink"&gt;
&lt;span class="linenum"&gt;    1&lt;/span&gt; &lt;span class="source source_ruby"&gt;&lt;span class="meta meta_class meta_class_ruby"&gt;&lt;span class="keyword keyword_control keyword_control_class keyword_control_class_ruby"&gt;class&lt;/span&gt; &lt;span class="entity entity_name entity_name_type entity_name_type_class entity_name_type_class_ruby"&gt;Customer&lt;/span&gt;&lt;/span&gt;
&lt;span class="linenum"&gt;    2&lt;/span&gt;   &lt;span class="keyword keyword_other keyword_other_special-method keyword_other_special-method_ruby"&gt;attr_accessor&lt;/span&gt; &lt;span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby"&gt;:&lt;/span&gt;name&lt;/span&gt;
&lt;span class="linenum"&gt;    3&lt;/span&gt;   
&lt;span class="linenum"&gt;    4&lt;/span&gt;   &lt;span class="meta meta_function meta_function_method meta_function_method_without-arguments meta_function_method_without-arguments_ruby"&gt;&lt;span class="keyword keyword_control keyword_control_def keyword_control_def_ruby"&gt;def&lt;/span&gt; &lt;span class="entity entity_name entity_name_function entity_name_function_ruby"&gt;say_hello&lt;/span&gt;&lt;/span&gt;
&lt;span class="linenum"&gt;    5&lt;/span&gt;     &lt;span class="string string_quoted string_quoted_double string_quoted_double_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;&amp;quot;&lt;/span&gt;HI&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class="linenum"&gt;    6&lt;/span&gt;   &lt;span class="keyword keyword_control keyword_control_ruby"&gt;end&lt;/span&gt;
&lt;span class="linenum"&gt;    7&lt;/span&gt; &lt;span class="keyword keyword_control keyword_control_ruby"&gt;end&lt;/span&gt;
&lt;/span&gt;&lt;span class="linenum"&gt;    8&lt;/span&gt; &lt;/pre&gt;

&lt;/p&gt;&lt;img src="http://codeprairie.net/aggbug.aspx?PostID=401" width="1" height="1"&gt;</description></item><item><title>Mars Edit Test</title><link>http://codeprairie.net/blogs/chrisortman/archive/2008/03/30/mars-edit-test.aspx</link><pubDate>Sun, 30 Mar 2008 15:27:31 GMT</pubDate><guid isPermaLink="false">73a4aa19-1c0c-4438-a31e-8c1402e1ba60:400</guid><dc:creator>chrisortman</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://codeprairie.net/blogs/chrisortman/rsscomments.aspx?PostID=400</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://codeprairie.net/blogs/chrisortman/commentapi.aspx?PostID=400</wfw:comment><comments>http://codeprairie.net/blogs/chrisortman/archive/2008/03/30/mars-edit-test.aspx#comments</comments><description>This is a &lt;i&gt;test&lt;/i&gt; post from MarsEdit

Line break.

Here&amp;#39;s some code so I can test my syntax highlight.
&lt;h1&gt;Chris&lt;/h1&gt;


&lt;pre class="textmate-source vibrant_ink"&gt;&lt;span class="linenum"&gt;    1&lt;/span&gt; &lt;span class="source source_cs"&gt;&lt;span class="meta meta_keyword meta_keyword_using meta_keyword_using_source meta_keyword_using_source_cs"&gt;&lt;span class="keyword keyword_other keyword_other_using keyword_other_using_source keyword_other_using_source_cs"&gt;using&lt;/span&gt; &lt;span class="entity entity_name entity_name_type entity_name_type_package entity_name_type_package_source entity_name_type_package_source_cs"&gt;System&lt;/span&gt;;&lt;/span&gt;
&lt;span class="linenum"&gt;    2&lt;/span&gt; 
&lt;span class="linenum"&gt;    3&lt;/span&gt; &lt;span class="meta meta_definition meta_definition_class meta_definition_class_source meta_definition_class_source_cs"&gt;&lt;span class="storage storage_modifier storage_modifier_source storage_modifier_source_cs"&gt;public &lt;/span&gt;&lt;span class="storage storage_type storage_type_source storage_type_source_cs"&gt;class&lt;/span&gt; &lt;span class="entity entity_name entity_name_type entity_name_type_class entity_name_type_class_source entity_name_type_class_source_cs"&gt;Customer&lt;/span&gt; {&lt;/span&gt;
&lt;span class="linenum"&gt;    4&lt;/span&gt;   &lt;span class="storage storage_modifier storage_modifier_source storage_modifier_source_cs"&gt;private&lt;/span&gt; &lt;span class="storage storage_type storage_type_source storage_type_source_cs"&gt;string&lt;/span&gt; _name;
&lt;span class="linenum"&gt;    5&lt;/span&gt; 
&lt;span class="linenum"&gt;    6&lt;/span&gt;   &lt;span class="storage storage_modifier storage_modifier_source storage_modifier_source_cs"&gt;public&lt;/span&gt; String Name {
&lt;span class="linenum"&gt;    7&lt;/span&gt;     &lt;span class="keyword keyword_other keyword_other_source keyword_other_source_cs"&gt;get&lt;/span&gt; { &lt;span class="keyword keyword_control keyword_control_source keyword_control_source_cs"&gt;return&lt;/span&gt; _name; }
&lt;span class="linenum"&gt;    8&lt;/span&gt;     &lt;span class="keyword keyword_other keyword_other_source keyword_other_source_cs"&gt;set&lt;/span&gt; { _name = value; }
&lt;span class="linenum"&gt;    9&lt;/span&gt;   }
&lt;span class="linenum"&gt;   10&lt;/span&gt; 
&lt;span class="linenum"&gt;   11&lt;/span&gt; &lt;span class="meta meta_definition meta_definition_method meta_definition_method_source meta_definition_method_source_cs"&gt;  &lt;span class="storage storage_modifier storage_modifier_source storage_modifier_source_cs"&gt;public &lt;/span&gt;&lt;span class="storage storage_type storage_type_source storage_type_source_cs"&gt;String&lt;/span&gt; &lt;span class="entity entity_name entity_name_function entity_name_function_source entity_name_function_source_cs"&gt;SayHello&lt;/span&gt;&lt;span class="meta meta_definition meta_definition_param-list meta_definition_param-list_source meta_definition_param-list_source_cs"&gt;(&lt;/span&gt;)&lt;/span&gt; {
&lt;span class="linenum"&gt;   12&lt;/span&gt;     &lt;span class="keyword keyword_control keyword_control_source keyword_control_source_cs"&gt;return&lt;/span&gt; &lt;span class="string string_quoted string_quoted_double string_quoted_double_source string_quoted_double_source_cs"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_source punctuation_definition_string_begin_source_cs"&gt;&amp;quot;&lt;/span&gt;Hi&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_source punctuation_definition_string_end_source_cs"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;;
&lt;span class="linenum"&gt;   13&lt;/span&gt;   }
&lt;span class="linenum"&gt;   14&lt;/span&gt; 
&lt;span class="linenum"&gt;   15&lt;/span&gt; }
&lt;/span&gt;&lt;span class="linenum"&gt;   16&lt;/span&gt; &lt;/pre&gt;

&lt;pre class="textmate-source vibrant_ink"&gt;&lt;span class="linenum"&gt;    1&lt;/span&gt; &lt;span class="source source_ruby"&gt;&lt;span class="meta meta_class meta_class_ruby"&gt;&lt;span class="keyword keyword_control keyword_control_class keyword_control_class_ruby"&gt;class&lt;/span&gt; &lt;span class="entity entity_name entity_name_type entity_name_type_class entity_name_type_class_ruby"&gt;Customer&lt;/span&gt;&lt;/span&gt;
&lt;span class="linenum"&gt;    2&lt;/span&gt;   &lt;span class="keyword keyword_other keyword_other_special-method keyword_other_special-method_ruby"&gt;attr_accessor&lt;/span&gt; &lt;span class="constant constant_other constant_other_symbol constant_other_symbol_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_constant punctuation_definition_constant_ruby"&gt;:&lt;/span&gt;name&lt;/span&gt;
&lt;span class="linenum"&gt;    3&lt;/span&gt;   
&lt;span class="linenum"&gt;    4&lt;/span&gt;   &lt;span class="meta meta_function meta_function_method meta_function_method_without-arguments meta_function_method_without-arguments_ruby"&gt;&lt;span class="keyword keyword_control keyword_control_def keyword_control_def_ruby"&gt;def&lt;/span&gt; &lt;span class="entity entity_name entity_name_function entity_name_function_ruby"&gt;say_hello&lt;/span&gt;&lt;/span&gt;
&lt;span class="linenum"&gt;    5&lt;/span&gt;     &lt;span class="string string_quoted string_quoted_double string_quoted_double_ruby"&gt;&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_ruby"&gt;&amp;quot;&lt;/span&gt;Hi&lt;span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_ruby"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class="linenum"&gt;    6&lt;/span&gt;   &lt;span class="keyword keyword_control keyword_control_ruby"&gt;end&lt;/span&gt;
&lt;span class="linenum"&gt;    7&lt;/span&gt; &lt;span class="keyword keyword_control keyword_control_ruby"&gt;end&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;img src="http://codeprairie.net/aggbug.aspx?PostID=400" width="1" height="1"&gt;</description></item></channel></rss>