<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Sentia</title>
    <link rel="alternate" type="text/html" href="http://sentia.com.au/" />
    <link rel="self" type="application/atom+xml" href="http://sentia.com.au/atom.xml" />
    <id>tag:sentia.com.au,2008-02-01://1</id>
    <updated>2008-10-08T04:51:10Z</updated>
    <subtitle>Sentia is a software development consultancy company based in Sydney, Australia. We specialise in Microsoft.net, Ruby on Rails and use such practices as Test Driven Design</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Open Source 4.1</generator>

<entry>
    <title>Git Rocks!!!!</title>
    <link rel="alternate" type="text/html" href="http://sentia.com.au/2008/10/git-rocks.html" />
    <id>tag:sentia.com.au,2008://1.48</id>

    <published>2008-10-08T04:47:35Z</published>
    <updated>2008-10-08T04:51:10Z</updated>

    <summary>So I have been using Git for a while now and let me say it rocks. I tend to do alot of work while travelling and you don&apos;t always have the net so being able to commit code is the...</summary>
    <author>
        <name>Michael Cindric</name>
        <uri>http://sentia.com.au</uri>
    </author>
    
        <category term="Git" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Practices" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Prodcutivity" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Tools" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="git" label="git" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="tools" label="tools" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://sentia.com.au/">
        <![CDATA[So I have been using Git for a while now and let me say it rocks. I tend to do alot of work while travelling and you don't always have the net so being able to commit code is the greatest thing since slice bread.<br /><br />So if your not using it DO IT!!!!!! click here for <a href="http://git.or.cz/">Git</a><br /><br />p.s we also use <a href="http://github.com/">Github</a> ]]>
        
    </content>
</entry>

<entry>
    <title>Sassing a .Net application - part II</title>
    <link rel="alternate" type="text/html" href="http://sentia.com.au/2008/08/sassing-a-net-application-part.html" />
    <id>tag:sentia.com.au,2008://1.47</id>

    <published>2008-08-04T22:46:11Z</published>
    <updated>2008-08-05T01:28:32Z</updated>

    <summary> Part 1 of this post I introduced Sass into my current project that is using the ASP.NET MVC framework. (Which I might add, I&apos;m still using the initial CTP without any trouble and the application is in production. So...</summary>
    <author>
        <name>Byron Walker</name>
        <uri>http://sentia.com.au/blog</uri>
    </author>
    
        <category term="Continuous Integration" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Rake" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Ruby on Rails" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://sentia.com.au/">
        <![CDATA[ <p><a href="http://sentia.com.au/2008/08/sassing-a-net-application.html">Part 1</a> of this post I introduced Sass into my current project that is using the ASP.NET MVC framework.</p>

<p><em>(Which I might add, I'm still using the initial CTP without any trouble and the application is in production. So if your wondering if in preview 4 its ready for production use... stop wondering)</em></p>

<p>The problem I introduced was changes to sass files required a VS build in order for the rake task to execute and reproduce the css files. This increased the turn around time to around 15 seconds, unacceptable.</p>

<p>The solution I was aiming for was a file system watcher that looked at the sass directory and any changes to my sass files immediately.</p>

<p>I <a href="http://paulhorman.com/filesystemwatcher/">found this filesystemwatcher code</a> that looked pretty easy to implement (im a ruby noob still), so I moved those files to my tools directory and required them in my rakefile.rb</p>

<pre><code class="ruby">
    require 'rake'
    require File.join(File.dirname(__FILE__), 'tools/haml-2.0.2/lib', 'sass')
    require File.join(File.dirname(__FILE__), 'tools/fsw', 'servicestate')
    require File.join(File.dirname(__FILE__), 'tools/fsw', 'filesystemwatcher')
</code>
</pre>

<p>As you can see, I've placed the filesystemwatcher files into my tools directory, again allowing the application to only rely on ruby and not obscure plugins.</p>

<p>The next step is to call the sass generation on the various FSW Events (Created, Modified, and Deleted)</p>

<pre><code class="ruby">
    desc "Watches sass directory and generates css on save."
    task :watch_sass do
        _sass2cssAll
        css_dir = File.join(File.dirname(__FILE__), 'src/app/mvc/content/css')
        sass_dir = File.join(css_dir, 'sass')
    
        watcher = FileSystemWatcher.new()
        watcher.addDirectory(sass_dir, "*.sass")
        watcher.sleepTime = 1
        watcher.start { |status,file|
            case status
                when FileSystemWatcher::CREATED
                    _sass2css(file, css_dir)
                when FileSystemWatcher::MODIFIED
                    _sass2css(file, css_dir)
                when FileSystemWatcher::DELETED
                    puts "deleted: #{file}"
            end
        }

        watcher.join() # join to the thread to keep the program alive
    end
</code>
</pre>

<p>I refactored my <strong>:sass2css</strong> task so it calls straight into <strong>_sass2cssAll</strong>. The reason for this is that invoking the task from within the watcher was causing subsequent changes to not be picked up. I didnt investigate this too much.</p>

<p>I also extracted a method <strong>_sass2css</strong> so that the watcher only reproduced the css file in question, and not all of them.</p>

<p>Here are the 2 methods I extracted...</p>

<pre><code class="ruby">
    def _sass2cssAll
        stylesheets_root = File.join(File.dirname(__FILE__), 'src/app/mvc/content/css')
	
	Dir[stylesheets_root + "/sass/*.sass"].each do |source|
            _sass2css(source, stylesheets_root)
	end
    end

    def _sass2css(source,stylesheets_root)
        target = File.join(stylesheets_root, File.basename(source, ".sass") + ".css")
        puts "Sassing #{source} to #{target}"
	puts ""
	File.open(target, "w") { |f| f.write(Sass::Engine.new(IO.read(source)).render)}
    end
</code>
</pre>

<p>All that I need to do now is fire up the watcher when I start development an watch those css files change!!</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="watcher.gif" src="http://sentia.com.au/sentia_01.gif" width="666" height="237" class="mt-image-none" style="" /></span>




]]>
        
    </content>
</entry>

<entry>
    <title>Sassing a .Net application - part I</title>
    <link rel="alternate" type="text/html" href="http://sentia.com.au/2008/08/sassing-a-net-application.html" />
    <id>tag:sentia.com.au,2008://1.46</id>

    <published>2008-08-04T03:12:23Z</published>
    <updated>2008-08-05T22:56:43Z</updated>

    <summary>I&apos;ve long been wanting to remove the duplication Im forced into with CSS, and so I decided to get Sass going in my ASP.NET MVC application. A side benefit of getting sass into my application was getting Rake running to...</summary>
    <author>
        <name>Byron Walker</name>
        <uri>http://sentia.com.au/blog</uri>
    </author>
    
        <category term="Continuous Integration" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Rake" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Ruby on Rails" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://sentia.com.au/">
        <![CDATA[<p>I've long been wanting to remove the duplication Im forced into with CSS, and so I decided to get <a href="http://haml.hamptoncatlin.com/">Sass</a> going in my <a href="http://www.asp.net/mvc/">ASP.NET MVC</a> application. <br /> 
A side benefit of getting <a href="http://haml.hamptoncatlin.com/">sass</a> into my application was getting <a href="http://rake.rubyforge.org/">Rake</a> running to assist. I can now choose between rake or nant for any of my build activities.
</p>

<p>So the first step was getting a 'Hello Rake World' task running on my Windows dev machine, just to get all the working parts in place. I installed ruby, and then created a RakeFile.rb in the trunk of my application. The following is my uber complex <b>:hello_world</b> task.</p>

<br />

<pre>    
    <code class="ruby">
        desc "Hello World"
        task :hello_world do
	    puts "Hello Rake World!"
        end
    </code>
</pre>

<br />
<p>Running this at the command line gave me the following output:</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="hello_world.gif" src="http://sentia.com.au/hello_world.gif" class="mt-image-none" style="" height="144" width="434" /></span>

<p>The next step was to be able to call <a href="http://rake.rubyforge.org/">Rake</a> tasks from <a href="http://nant.sourceforge.net/">Nant</a>. Im not sure if this is a particulary elegant way to go, but <a href="http://nant.sourceforge.net/">Nant</a> is contolling my build so it made sense for now.</p>

<p>The following <a href="http://nant.sourceforge.net/">Nant</a> target calls the <b>:hello_world</b> rake task:</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="hello_world_from_nant.gif" src="http://sentia.com.au/sentia_02.gif" class="mt-image-none" style="" height="116" width="763" /></span>

<p>All im doing here is calling the rake.bat batch file. I am passing it the rakefile that sits in my applications trunk, specifying the <strong>hello_world</strong> target and setting the working directory to be the ruby bin directory (specified in a <a href="http://nant.sourceforge.net/">Nant</a> property).</p>

<p>Calling that <a href="http://nant.sourceforge.net/">nant</a> target at the command line yielded the following output:</p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="rake_task_from_nant_output.gif" src="http://sentia.com.au/sentia_03.gif" class="mt-image-none" style="" height="172" width="375" />

</span><p>So far so good, I have a nant target that can run in my build process that can call a rake task, time to start doing something useful.</p>

<p>I then installed the <a href="http://haml.hamptoncatlin.com/">haml gem</a> and copied the haml-2.0.2 directory over to my tools folder in my application. I don't mind having a dependency on Rails being installed on a development machine, but dependencies on gems isn't suitable.</p>

<p>I require the <a href="http://haml.hamptoncatlin.com/">sass</a> in my rakefile with the following. Its not necessary to require <a href="http://haml.hamptoncatlin.com/">haml</a> since we only make use of the <a href="http://haml.hamptoncatlin.com/">Sass</a> rendering engine.</p>
<pre>    <code class="ruby">
        require File.join(File.dirname(__FILE__), 'tools/haml-2.0.2/lib', 'sass')
    </code>
</pre>

<p>Now with the help of <a href="http://blog.capesapp.com/2007/12/27/how-we-convert-sass-to-css-the-server-for-capes-tights/">this post</a> I was able to put together a task that converted any .sass file in my css/sass directory to the associated .css file.</p>

<pre>    
    <code class="ruby">
        desc "Regenerates all sass templates."
        task :sass2css do
	    stylesheets_root = File.join(File.dirname(__FILE__), 'src/app/mvc/content/css')
	
	    Dir[stylesheets_root + "/sass/*.sass"].each do |source|
		target = File.join(stylesheets_root, File.basename(source, ".sass") + ".css")
		puts "Sassing #{source} to #{target}"
		puts ""
		File.open(target, "w") { |f| f.write(Sass::Engine.new(IO.read(source)).render)}
	    end
        end
    </code>
</pre>
<br />
<p>All that remained to do was call this task from within my nant file, and I have my css being generated as part of my build. I also called this from my VS build, so when I change my <a href="http://haml.hamptoncatlin.com/">sass </a>files and recompile, the rake task is called and the css files are regenerated.</p>

<p>Now I've actually gone 2 steps forward and 1 step back here. Previously css changes were visible in my site by simply saving the stylesheet and refreshing, but now I have to recompile, which means my feedback cycle for css changes has gone from roughly 1 second to about 15 seconds, and this is unsatisfactory.... <strong><a href="http://sentia.com.au/2008/08/sassing-a-net-application-part.html">But ill address that in part II.</a></strong></p>]]>
        
    </content>
</entry>

<entry>
    <title>NHaml Colour, now in open source!</title>
    <link rel="alternate" type="text/html" href="http://sentia.com.au/2008/07/nhaml-colour-now-in-open-sourc.html" />
    <id>tag:sentia.com.au,2008://1.44</id>

    <published>2008-07-27T03:53:54Z</published>
    <updated>2008-07-27T03:58:47Z</updated>

    <summary>Apologies to everyone who was looking for this earlier. I did intend on cleaning up the source a bit, but I&apos;m consumed by too many projects! So i&apos;ve pushed up the code for the Visual Studio Haml plugin to github....</summary>
    <author>
        <name>David Newman</name>
        <uri>http://sentia.com.au/blog</uri>
    </author>
    
    <category term="haml" label="haml" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://sentia.com.au/">
        <![CDATA[<p>Apologies to everyone who was looking for this earlier.  I did intend on cleaning up the source a bit, but I'm consumed by too many projects!</p>

<p>So i've pushed up the code for the Visual Studio Haml plugin to <a href="http://github.com">github</a>.  You can find it at <a href="http://github.com/sentiadave/hamleditor/tree/master">http://github.com/sentiadave/hamleditor/tree/master</a>.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Sydney Agile happenings</title>
    <link rel="alternate" type="text/html" href="http://sentia.com.au/2008/06/sydney-agile-happenings.html" />
    <id>tag:sentia.com.au,2008://1.41</id>

    <published>2008-06-16T03:45:29Z</published>
    <updated>2008-06-16T03:50:37Z</updated>

    <summary><![CDATA[The Sydney XP/Agile group has started a series of monthly presentations going through the ins and outs of agile software development.&nbsp; There's a lot of collective experience and wisdom in the group so this should be very enticing for those...]]></summary>
    <author>
        <name>David Newman</name>
        <uri>http://sentia.com.au/blog</uri>
    </author>
    
    <category term="syxpacagile" label="syxpac agile" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://sentia.com.au/">
        <![CDATA[The Sydney XP/Agile group has started a series of monthly presentations going through the ins and outs of agile software development.&nbsp; There's a lot of collective experience and wisdom in the group so this should be very enticing for those interested in or practicing Agile development.<br /><br />I'm particularly looking forward to tonight's session on "Everything you know about Agile is probably wrong".&nbsp; I've spoken and dealt with more than one team in the past claiming to do agile software development, without understanding how and why it works.<br /><br />Details are at <a href="http://blog.syxpac.org/2008/06/june-16-meeting-everything-you-know.html">http://blog.syxpac.org/2008/06/june-16-meeting-everything-you-know.html</a>, hope to see everyone there! <div><br /></div>]]>
        
    </content>
</entry>

<entry>
    <title>War on WWW&apos;s</title>
    <link rel="alternate" type="text/html" href="http://sentia.com.au/2008/05/war-on-wwws.html" />
    <id>tag:sentia.com.au,2008://1.37</id>

    <published>2008-05-15T00:48:06Z</published>
    <updated>2008-05-15T01:18:47Z</updated>

    <summary>I really don&apos;t see the point of www&apos;s in a domain url. I now declare a war on websites that are not setup correctly. What started this war you ask. Well its simple Harvey Norman was the last straw.I went...</summary>
    <author>
        <name>Michael Cindric</name>
        <uri>http://sentia.com.au</uri>
    </author>
    
        <category term="Rant" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="www" label="www" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://sentia.com.au/">
        <![CDATA[I really don't see the point of www's in a domain url. I now declare a war on websites that are not setup correctly. What started this war you ask. Well its simple Harvey Norman was the last straw.<br /><br />I went looking for a phone number so l typed harveynorman.com.au into firefox expecting to see the latest information from them and nothing.<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="hn_no_www.png" src="http://sentia.com.au/hn_no_www.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="421" width="651" /></span>
<br />Wondering what l did wrong l noticed i didn't have the www in the url. Thinking that there is no way that would be it l just tried it just to make sure. <br /><br />To my horror it worked, so l have now declared war on websites that are not setup correctly to handle the url without the www's. It's a simple 10sec job and not doing it does not make sense. What's the point of www?. I will be listing them and should you all know of any please do so here as well<br /><br />It begins <br /><br />http://www.harveynorman.com.au/<br /> <div><br /></div><div><br /><div><br />

</div>
</div>]]>
        
    </content>
</entry>

<entry>
    <title>Resharper Quick Tip #1</title>
    <link rel="alternate" type="text/html" href="http://sentia.com.au/2008/05/resharper-quick-tip-1.html" />
    <id>tag:sentia.com.au,2008://1.36</id>

    <published>2008-05-11T13:27:03Z</published>
    <updated>2008-05-11T13:31:49Z</updated>

    <summary>This one really annoyed me for a while. When you run unit tests in Resharper, it pops up a tool window. When I&apos;m finished I was previously closing the window with the mouse, and breaking the flow. If you&apos;re in...</summary>
    <author>
        <name>David Newman</name>
        <uri>http://sentia.com.au/blog</uri>
    </author>
    
    <category term="resharper" label="resharper" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="visualstudio" label="visual studio" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://sentia.com.au/">
        <![CDATA[<p>This one really annoyed me for a while. When you run unit tests in Resharper, it pops up a tool window. When I'm finished I was previously closing the window with the mouse, and breaking the flow.</p>

<p>If you're in the same boat then i'm happy to say that <strong>Shift+Esc</strong> is what you've been looking for!</p>]]>
        
    </content>
</entry>

<entry>
    <title>Setting up ssh keys on OS X</title>
    <link rel="alternate" type="text/html" href="http://sentia.com.au/2008/05/setting-up-ssh-keys-on-os-x.html" />
    <id>tag:sentia.com.au,2008://1.35</id>

    <published>2008-05-11T01:21:53Z</published>
    <updated>2008-05-11T01:31:51Z</updated>

    <summary>Ok, i&apos;m writing this post because I keep forgetting how to do this! The basic idea is that you want to be able to connect to servers via ssh and not have to keep typing a password in! The following...</summary>
    <author>
        <name>David Newman</name>
        <uri>http://sentia.com.au/blog</uri>
    </author>
    
    <category term="osx" label="os x" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ssh" label="ssh" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://sentia.com.au/">
        <![CDATA[<p>Ok, i'm writing this post because I keep forgetting how to do this! The basic idea is that you want to be able to connect to servers via ssh and not have to keep typing a password in!</p>

<p>The following commands will generate your public key, and then add it to the server's collection of allowed public keys:</p>

<pre><code>
ssh-keygen -t dsa -N ''
cat ~/.ssh/id_dsa.pub | ssh deploy@myserver.com "cat - >> ~/.ssh/authorized_keys2"
 </code></pre>]]>
        
    </content>
</entry>

<entry>
    <title>Sentia gets one more</title>
    <link rel="alternate" type="text/html" href="http://sentia.com.au/2008/05/sentia-gets-one-more.html" />
    <id>tag:sentia.com.au,2008://1.34</id>

    <published>2008-05-08T04:29:38Z</published>
    <updated>2008-05-08T04:35:11Z</updated>

    <summary>We are proud to announce that Sentia is welcoming aboard a new developer. Andrew Dedman will be joining the team as a .net / Ruby on Rails developer.We would just like to congratulate and wish him all the best during...</summary>
    <author>
        <name>Michael Cindric</name>
        <uri>http://sentia.com.au</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://sentia.com.au/">
        <![CDATA[We are proud to announce that Sentia is welcoming aboard a new developer. Andrew Dedman will be joining the team as a .net / Ruby on Rails developer.<br /><br />We would just like to congratulate and wish him all the best during his time here at Sentia.<br /> ]]>
        
    </content>
</entry>

<entry>
    <title>Capistrano task to sync local comatose pages to production</title>
    <link rel="alternate" type="text/html" href="http://sentia.com.au/2008/05/capistrano-task-to-pull-comato.html" />
    <id>tag:sentia.com.au,2008://1.33</id>

    <published>2008-05-07T00:10:27Z</published>
    <updated>2008-05-07T00:29:01Z</updated>

    <summary>I&apos;m using the comatose gem as a light-weight cms for an app I&apos;m building. There&apos;s always the problem with CMS based sites of having the production site not look like the development site. So here&apos;s a capistrano task to pull...</summary>
    <author>
        <name>David Newman</name>
        <uri>http://sentia.com.au/blog</uri>
    </author>
    
    <category term="capistrano" label="capistrano" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="rails" label="rails" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="rake" label="rake" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://sentia.com.au/">
        <![CDATA[<p>I'm using the <a href="http://comatose.rubyforge.org/">comatose</a> gem as a light-weight cms for an app I'm building.  There's always the problem with CMS based sites of having the production site not look like the development site.  So here's a capistrano task to pull the production pages down to your local machine.</p>  
<p>Enjoy.</p>

<pre><code class="ruby">
desc "Retrieve production comatose pages"
task :get_comatose_pages do
  run "cd #{current_path}; rake RAILS_ENV=production comatose:data:export"
  system "scp #{user}@#{domain}:#{current_path}/db/comatose-pages.yml db/"
  system "rake comatose:data:import"
end
</code></pre>]]>
        
    </content>
</entry>

<entry>
    <title>NHaml, now in colour!</title>
    <link rel="alternate" type="text/html" href="http://sentia.com.au/2008/05/i-love-haml-but-i.html" />
    <id>tag:sentia.com.au,2008://1.32</id>

    <published>2008-05-05T12:19:23Z</published>
    <updated>2008-05-05T12:41:29Z</updated>

    <summary>I love haml. But I got the shits with looking at it like this in Visual Studio: So I turned it into this: Now you can too with this...</summary>
    <author>
        <name>David Newman</name>
        <uri>http://sentia.com.au/blog</uri>
    </author>
    
    <category term="aspnet" label="asp.net" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="haml" label="haml" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mvcnet" label="mvc.net" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://sentia.com.au/">
        <![CDATA[<p>I love <a href="http://haml.hamptoncatlin.com">haml</a>.  But I got the shits with looking at it like this in Visual Studio:</p>

<p><img src="/images/haml_before.png" alt="before" /></p>

<p>So I turned it into this:</p>

<p><img src="/images/haml_after.png" alt="after" /></p>

<p>Now you can too with <a href="/files/haml/Setup.msi">this</a></p>]]>
        
    </content>
</entry>

<entry>
    <title>Software development on Rails</title>
    <link rel="alternate" type="text/html" href="http://sentia.com.au/2008/04/software-development-on-rails.html" />
    <id>tag:sentia.com.au,2008://1.30</id>

    <published>2008-04-21T08:40:02Z</published>
    <updated>2008-05-11T02:45:48Z</updated>

    <summary>Software development has a number of well understood (and not very well solved) problems that are common to all projects.Recently I&apos;ve been working on a project that I built using ASP.NET MVC, and I found myself asking at least once...</summary>
    <author>
        <name>Byron Walker</name>
        <uri>http://sentia.com.au/blog</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://sentia.com.au/">
        <![CDATA[Software development has a number of well understood (and not very well solved) problems that are common to all projects.<br /><br />Recently I've been working on a project that I built using ASP.NET MVC, and I found myself asking at least once a day "How would rails solve this problem?"<br /><br />The shared thought within the Rails community has accelerated the cross-project refactoring process at a frightening pace. I keep joking with Dave and Michael that Rails are striving to be able to create any application with one line (rails my_custom_app) and I tell you what, there doesn't seem to be a problem out there that rails or one of its infinite plugins hasn't solved.<br /><br />Now, did I mention I'm a .Net developer?<br /><br />We as .Net developers are the developing nation of software development. We have everything to learn from Rails, and they virtually nothing of us. What does that say about our community given its that much older than the rails community.<br /><br />Today I was involved in a rather heated discussion regarding the merits of database migrations and the part they play in the Continuous integration process. I use nAnt as my build scripting tool and have mimicked the Rails migrations workflow to keep my application databases up to date and minimise developer pain.<br /><br />When that process was challenged I raised the argument that Rails use the very same process to database migrations and the response i got was short... "But that's Rails"<br /><br />Well that may be the case, but like I said, they (the Rails community) have solved many of the problems that the vast majority (virtually all) of .Net teams are still battling with.<br /><br />Rails is not only a web framework built on top of ruby, its a wholistic approach to application development.<br /><br />We, the .Net community are most certainly the Padawan, and Rails are the Jedi Knights, and those who <strike>don't</strike> <i>refuse to</i> see the error of their ways are definitely the Sith.<br /><br />Much to learn, we have...<br /><br /><br />]]>
        
    </content>
</entry>

<entry>
    <title>Heading to CITCONF</title>
    <link rel="alternate" type="text/html" href="http://sentia.com.au/2008/04/heading-to-citcon.html" />
    <id>tag:sentia.com.au,2008://1.29</id>

    <published>2008-04-20T22:37:27Z</published>
    <updated>2008-04-20T22:44:40Z</updated>

    <summary>Im going to go to the CITCONF in Melbourne and I think Id like to delay the Continous Integration Training until after I attend.I think this will be a good chance for me to improve some of my CI knowledge...</summary>
    <author>
        <name>Byron Walker</name>
        <uri>http://sentia.com.au/blog</uri>
    </author>
    
        <category term="Continuous Integration" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Testing" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://sentia.com.au/">
        <![CDATA[Im going to go to the <a href="http://www.citconf.com/melbourne2008/">CITCONF</a> in Melbourne and I think Id like to delay the <a href="http://sentia.com.au/2008/04/continuous-integration-with-cr.html">Continous Integration Training</a> until after I attend.<br /><br />I think this will be a good chance for me to improve some of my CI knowledge and then I can inject my learnings into the course.<br /><br />It should benefit everyone if you don't mind waiting.<br /><br />The <a href="http://www.citconf.com/melbourne2008/">CITCONF</a> is on the 27th June, so the training weekend will follow a week or 2 later.<br /><br />Also, <a href="http://tech.groups.yahoo.com/group/citcon/">here's a yahoo group for the conference</a><br /> ]]>
        
    </content>
</entry>

<entry>
    <title>Status not Statuses</title>
    <link rel="alternate" type="text/html" href="http://sentia.com.au/2008/04/status-not-statuses.html" />
    <id>tag:sentia.com.au,2008://1.27</id>

    <published>2008-04-11T00:36:11Z</published>
    <updated>2008-04-11T00:37:27Z</updated>

    <summary>I ran into a little issue today. I needed to create a model called Status. The problem there is that Ruby on Rails creates a table called Statuses which as far as l know is not a word in the...</summary>
    <author>
        <name>Michael Cindric</name>
        <uri>http://sentia.com.au</uri>
    </author>
    
        <category term="Ruby on Rails" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="inflections" label="inflections" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="rubyonrails" label="ruby on rails" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://sentia.com.au/">
        <![CDATA[I ran into a little issue today. I needed to create a model called Status. The problem there is that Ruby on Rails creates a table called Statuses which as far as l know is not a word in the english language.<br /><br />The answer is to add a custom inflection just as the rails core team do to rails. All you have to do is add the irregular inflection to the environment.rb file and your away.<br /><br />Here is how its done<br /><br /> 

<pre> <code class="ruby">
Inflector.inflections do |inflect|
  inflect.irregular "status", "status"
end
</code></pre>]]>
        
    </content>
</entry>

<entry>
    <title>Frist look at Treehouse logo</title>
    <link rel="alternate" type="text/html" href="http://sentia.com.au/2008/04/frist-look-at-treehouse-logo.html" />
    <id>tag:sentia.com.au,2008://1.26</id>

    <published>2008-04-08T00:21:26Z</published>
    <updated>2008-04-08T00:27:00Z</updated>

    <summary>So here is the first look at the Treehouse logo. Treehouse should be up and running in the next month or so. The logo was designed in house and then polished up by the great people over atSqueeze Creative.Treehouse gives...</summary>
    <author>
        <name>Michael Cindric</name>
        <uri>http://sentia.com.au</uri>
    </author>
    
        <category term="Design" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Products" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Ruby on Rails" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="design" label="Design" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="treehouse" label="Treehouse" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://sentia.com.au/">
        <![CDATA[So here is the first look at the Treehouse logo. Treehouse should be up and running in the next month or so. The logo was designed in house and then polished up by the great people over at<br /><a href="http://squeezecreative.com.au/">Squeeze Creative</a>.<br /><br />Treehouse gives you control over Contacts, 
    Tasks, Projects, TimeSheets and even Invoices. So keep an eye out for updates about Treehouses upcoming release.<br /><br /><br /><br /> 

<p align="center"><img alt="TreeHouse-Logo-LoRes.jpg" src="http://sentia.com.au/TreeHouse-Logo-LoRes.jpg" class="mt-image-none" style="" height="90" width="283" /></p>]]>
        
    </content>
</entry>

</feed>
