<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Transcending Frontiers</title>
	
	<link>http://thefrontiergroup.com.au/blog</link>
	<description>Your peek inside the collective mind of The Frontier Group</description>
	<lastBuildDate>Wed, 08 Sep 2010 08:50:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/TranscendingFrontiers" /><feedburner:info uri="transcendingfrontiers" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Ruby Summer Of Code – Darcy’s Wrap-Up</title>
		<link>http://feedproxy.google.com/~r/TranscendingFrontiers/~3/-aFW3R9cF7M/</link>
		<comments>http://thefrontiergroup.com.au/blog/2010/09/ruby-summer-of-code-darcys-wrap-up/#comments</comments>
		<pubDate>Wed, 08 Sep 2010 08:47:33 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Inside TFG]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://thefrontiergroup.com.au/blog/?p=968</guid>
		<description><![CDATA[&#8220;Lastly, I want to give a shout out to local RubySOC sponsors The Frontier Group – I’ve started working for them since the end of the program but before then not only were they half project sponsors but they also hosted me for most of the program in the form of a desk, general in [...]]]></description>
			<content:encoded><![CDATA[<p><em>&#8220;Lastly, I want to give a shout out to local RubySOC sponsors The Frontier Group – I’ve started working for them since the end of the program but before then not only were they half project sponsors but they also hosted me for most of the program in the form of a desk, general in person discussions, being guinea pigs or various things as well as providing a fast iMac and VM to test things such as compilation on.&#8221;</em> &#8211; <a href="http://blog.ninjahideout.com/posts/ruby-summer-of-code-wrap-up" title="Darcy Laycock's Wrap-Up">Darcy Laycock&#8217;s Wrap-Up</a></p>
<p>Great to see the project being both a success for the Ruby Community and also for the participants as well. Thanks for the kind words Darcy (and welcome to the team)! Look forward to helping out next time <a href="http://www.rubysoc.org" title="Ruby Summer Of Code">Ruby Summer Of Code</a> comes around.
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fthefrontiergroup.com.au%2Fblog%2F2010%2F09%2Fruby-summer-of-code-darcys-wrap-up%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<script src="http://feeds.feedburner.com/~s/TranscendingFrontiers?i=http://thefrontiergroup.com.au/blog/2010/09/ruby-summer-of-code-darcys-wrap-up/" type="text/javascript" charset="utf-8"></script>]]></content:encoded>
			<wfw:commentRss>http://thefrontiergroup.com.au/blog/2010/09/ruby-summer-of-code-darcys-wrap-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thefrontiergroup.com.au/blog/2010/09/ruby-summer-of-code-darcys-wrap-up/</feedburner:origLink></item>
		<item>
		<title>Joining the AWIA Committee</title>
		<link>http://feedproxy.google.com/~r/TranscendingFrontiers/~3/yzCfy6tDN4o/</link>
		<comments>http://thefrontiergroup.com.au/blog/2010/08/adam-fitzgerald-joining-the-awia-committee/#comments</comments>
		<pubDate>Mon, 09 Aug 2010 06:08:55 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Australian Web Industry Association]]></category>
		<category><![CDATA[Inside TFG]]></category>

		<guid isPermaLink="false">http://thefrontiergroup.com.au/blog/?p=939</guid>
		<description><![CDATA[The Australian Web Industry Association AGM was held on the 4th August at the Velvet Lounge in Mt Lawley. 5 committee members were elected (or re-elected) and I was one of the new members elected.
It&#8217;s exciting to be part of the committee that can hopefully take AWIA to a new level this year. I&#8217;m looking [...]]]></description>
			<content:encoded><![CDATA[<p>The <a title="Australian Web Industry Association (AWIA)" href="http://www.webindustry.asn.au">Australian Web Industry Association</a> AGM was held on the 4th August at the Velvet Lounge in Mt Lawley. 5 committee members were elected (or re-elected) and I was one of the new members elected.</p>
<p>It&#8217;s exciting to be part of the committee that can hopefully take AWIA to a new level this year. I&#8217;m looking forward to our first committee meeting to get the ball rolling.
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fthefrontiergroup.com.au%2Fblog%2F2010%2F08%2Fadam-fitzgerald-joining-the-awia-committee%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<script src="http://feeds.feedburner.com/~s/TranscendingFrontiers?i=http://thefrontiergroup.com.au/blog/2010/08/adam-fitzgerald-joining-the-awia-committee/" type="text/javascript" charset="utf-8"></script>]]></content:encoded>
			<wfw:commentRss>http://thefrontiergroup.com.au/blog/2010/08/adam-fitzgerald-joining-the-awia-committee/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://thefrontiergroup.com.au/blog/2010/08/adam-fitzgerald-joining-the-awia-committee/</feedburner:origLink></item>
		<item>
		<title>AWIA – Australian Web Industry Association Committee</title>
		<link>http://feedproxy.google.com/~r/TranscendingFrontiers/~3/xzU3n9sC32Q/</link>
		<comments>http://thefrontiergroup.com.au/blog/2010/07/australian-web-industry-association-awia-committee/#comments</comments>
		<pubDate>Mon, 26 Jul 2010 06:42:47 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Australian Web Industry Association]]></category>
		<category><![CDATA[Industry Trends]]></category>

		<guid isPermaLink="false">http://thefrontiergroup.com.au/blog/?p=914</guid>
		<description><![CDATA[What is AWIA?
From their website:
Formerly Port 80 Inc, the Australian Web Industry Association represents businesses, individuals and students involved in the web industry and aims to:

Further the advancement of the web industry within Australia;
Educate the general public about the role of professionals in the web industry;
Foster greater ties with like-minded organisations.

The Committee
As Managing Director of [...]]]></description>
			<content:encoded><![CDATA[<h2>What is AWIA?</h2>
<p>From their website:</p>
<p><em>Formerly Port 80 Inc, the Australian Web Industry Association represents businesses, individuals and students involved in the web industry and aims to:</em></p>
<ul>
<li><em>Further the advancement of the web industry within Australia;</em></li>
<li><em>Educate the general public about the role of professionals in the web industry;</em></li>
<li><em>Foster greater ties with like-minded organisations.</em></li>
</ul>
<h2>The Committee</h2>
<p>As Managing Director of The Frontier Group, I have nominated to be on the committee in one of the upcoming vacant positions.</p>
<p>As a reasonable size business in the industry it would be good to have a voice within the association and help craft the future of the web industry Australia wide. Paid AWIA members can vote at the AGM (as well as submit a proxy vote).</p>
<p>The <a title="2010 AWIA Committee nomination statements" href="http://www.webindustry.asn.au/agm/2010-annual-general-meeting/2010-awia-committee-nomination-statements">2010 nomination statements</a> are on their website today. AGM details can be found <a title="AWIA AGM" href="http://www.webindustry.asn.au/events/2010/06/awia-agm-port80-aug-2010/">here</a>.
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fthefrontiergroup.com.au%2Fblog%2F2010%2F07%2Faustralian-web-industry-association-awia-committee%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<script src="http://feeds.feedburner.com/~s/TranscendingFrontiers?i=http://thefrontiergroup.com.au/blog/2010/07/australian-web-industry-association-awia-committee/" type="text/javascript" charset="utf-8"></script>]]></content:encoded>
			<wfw:commentRss>http://thefrontiergroup.com.au/blog/2010/07/australian-web-industry-association-awia-committee/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thefrontiergroup.com.au/blog/2010/07/australian-web-industry-association-awia-committee/</feedburner:origLink></item>
		<item>
		<title>Rails camp Perth – November 2010</title>
		<link>http://feedproxy.google.com/~r/TranscendingFrontiers/~3/Z8TbYfm-OMk/</link>
		<comments>http://thefrontiergroup.com.au/blog/2010/07/rails-camp-perth-november-2010/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 11:10:01 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Inside TFG]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[railscamps]]></category>
		<category><![CDATA[rc8]]></category>

		<guid isPermaLink="false">http://thefrontiergroup.com.au/blog/?p=909</guid>
		<description><![CDATA[Today we announced that tickets go on sale for Rails camp 8 on Friday 23rd July.
Rails camp will be running from Friday 12th November to Monday 15th November.
When the tickets go on sale, you can head over to Eventbrite and grab them.

]]></description>
			<content:encoded><![CDATA[<p>Today we announced that tickets go on sale for <a title="Railscamp Perth" href="http://railscamps.com/">Rails camp 8</a> on Friday 23rd July.</p>
<p>Rails camp will be running from Friday 12th November to Monday 15th November.</p>
<p>When the tickets go on sale, you can head over to <a title="Railscamp 8 Eventbrite" href="http://rc8.eventbrite.com/">Eventbrite</a> and grab them.
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fthefrontiergroup.com.au%2Fblog%2F2010%2F07%2Frails-camp-perth-november-2010%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<script src="http://feeds.feedburner.com/~s/TranscendingFrontiers?i=http://thefrontiergroup.com.au/blog/2010/07/rails-camp-perth-november-2010/" type="text/javascript" charset="utf-8"></script>]]></content:encoded>
			<wfw:commentRss>http://thefrontiergroup.com.au/blog/2010/07/rails-camp-perth-november-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thefrontiergroup.com.au/blog/2010/07/rails-camp-perth-november-2010/</feedburner:origLink></item>
		<item>
		<title>How much does a website cost?</title>
		<link>http://feedproxy.google.com/~r/TranscendingFrontiers/~3/-ElTGlWehQI/</link>
		<comments>http://thefrontiergroup.com.au/blog/2010/07/so-just-how-much-does-a-website-cost/#comments</comments>
		<pubDate>Tue, 13 Jul 2010 09:33:02 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Industry Trends]]></category>
		<category><![CDATA[Websites or Tools]]></category>

		<guid isPermaLink="false">http://thefrontiergroup.com.au/blog/?p=850</guid>
		<description><![CDATA[The question
This question has been asked for nearly as long as web design companies have been in existence. If you spend 5 minutes doing some research on Google, you will find the answer lies somewhere in the vicinity of FREE to upwards of $100,000.
I&#8217;m not sure this helps with making an educated decision as a [...]]]></description>
			<content:encoded><![CDATA[<h2>The question</h2>
<p>This question has been asked for nearly as long as web design companies have been in existence. If you spend 5 minutes doing some research on Google, you will find the answer lies somewhere in the vicinity of FREE to upwards of $100,000.</p>
<p>I&#8217;m not sure this helps with making an educated decision as a consumer.</p>
<p>Having met over 200 small business owners in the past few weeks as part of the <a title="Achieve More Online Workshops" href="http://thefrontiergroup.com.au/pages/achieve-more-online-workshops-to-make-your-website-work">Achieve More Online workshops</a>, I&#8217;ve seen first-hand some extremely bizarre website pricing and fielded many a question about what an appropriate cost might be.</p>
<h2>The extreme</h2>
<p>Unfortunately, I came across a business (single operator, home-based) who had shelled out over $7,000 for a basic templated web site with 4 pages (Home, About, Photo Gallery, Contact) by a Perth web design company who shall remain nameless. They had also paid for a content management system (CMS) which they had not received. The site would have taken less than a day to put together.</p>
<p>On the contrary, there seems to be an expectation from the SME sector that a high quality website should be somewhere in the vicinity of $2,000 or less.</p>
<h2>The price is right?</h2>
<p>While I don&#8217;t think there&#8217;s an easy general answer to the title of this post, here at The Frontier Group we have our own reasons on why our websites are priced the way they are.</p>
<h4>The breakdown of a typical small business website:</h4>
<p><strong>Research</strong> &#8211; This is the first stage in the project, where requirements and the purpose of the website are determined. A website needs a real business reason to exist, and we need to know what that is.</p>
<ul>
<li><em>The website needs to pass the what, why, how, what if? test. ie what/who the business is, why they should deal with you as opposed to a competitor, how you work, what the benefits are of using your product/service or alternatively, the downside of not using your product/service.</em></li>
</ul>
<p><strong>Content</strong> &#8211; This component is often overlooked or left until last. How can your website be effective in communicating to your customers without content? Just what content you want your website to have will determine how the site will be designed and structured. Knowing and planning for this upfront is key.</p>
<ul>
<li><em>Think about the problem/s you&#8217;re actually trying to solve with a website and how that might potentially need to look, do some research on competitors who have successfully achieved a similar outcome in your industry.</em></li>
</ul>
<p><strong>Accessibility</strong> &#8211; Now we&#8217;re moving towards the design phase, so it&#8217;s time to start thinking about accessibility. We&#8217;re committed to complying with the <a title="Disability Discrimination Act 1992" href="http://www.comlaw.gov.au/ComLaw/Legislation/ActCompilation1.nsf/0/FC69105BAF504384CA2571400006FD7F?OpenDocument">Disability Discrimination Act 1992</a> when it comes to developing a website for all. This makes sure online information and services are accessible by people with disabilities. We adhere to the <a title="Web Content Accessibility Guidelines (WCAG) 2.0" href="http://www.w3.org/TR/WCAG20/">Web Content Accessibility Guidelines (WCAG) 2.0</a>, which covers a wide range of recommendations for making Web content more accessible.</p>
<ul>
<li><em>Most people designing their own website or using an online site builder will miss this step completely. On the other hand, there&#8217;s plenty of companies who will also leave it out, or fail to inform you about it due to price or ignorance.</em></li>
</ul>
<p><strong>Wireframing &amp; Visual Design</strong> &#8211; At this stage in the project a designer may present wireframes of the concept ideas to develop an outline with the customer. Once a layout structure is agreed, they then develop the visual design of the website. At the completion of this stage images or “flats” are produced for each of the individual page types.</p>
<ul>
<li><em>If you&#8217;re after a unique business look and feel, don&#8217;t succumb to the temptation of a templated site. While this may reduce barrier to entry, chances are, there&#8217;s a hundred other sites out there that look identical to yours.</em></li>
</ul>
<p><strong>Prototyping</strong> &#8211; We produce a prototype website for our customers allowing them to view it in a web browser. This allows them to “click around” the site and get a better representation of how different effects or transitions will appear. At this stage, cross-browser testing and necessary website code validation occurs.</p>
<ul>
<li><em>Check that the site functions correctly and give it a thorough test. Select a handful of your best customers and give them the option to test it for you.</em></li>
</ul>
<p><strong>Deployment</strong> &#8211; The website is then deployed to a test server, so the customer can approve that the website has been produced to the required standard.</p>
<p><strong>Hosting &amp; CMS</strong> &#8211; Domain name, Email and Website hosting needs to be considered at this stage. Also licensing and setup of a CMS product for content management. For our customers a CMS is non-negotiable, as it enables the customer to make basic changes to their content on an on-going basis. This negates the need to contact us and pay for changes.</p>
<ul>
<li><em>Watch out here for vendor lock-in. If you want to pick up your site and change hosting company or web designer, can you do so?</em></li>
</ul>
<p><strong>Other Considerations</strong> &#8211; You might think that the website is now complete, but a website needs constant revision and updating to remain relevant. Other options at this stage involve setup of specific analytical tools, search engine optimisation techniques, email marketing tools and maybe a complete online strategy.</p>
<h2>The answer</h2>
<p>Armed with all this information, how much would you now pay?</p>
<p>You should be able to make an informed decision as a consumer that you are indeed getting what you paid for. If you&#8217;ve got a specific budget in mind, you need to appreciate and understand what that will get you from a reputable company. The <strong>value</strong> of the website to your business is the single most important point to remember.</p>
<p>Finally, I&#8217;ve included a guide to fairly common pricing structures by companies who follow this similar process for small business websites:</p>
<ul>
<li>$0-$3,000 &#8211; Simple templated design or inexperienced student or freelancer.</li>
<li>$7,000-$15,000 &#8211; Small business website with a unique business look. Reputable company/freelancer.</li>
<li>$20,000+ &#8211; Custom website with unique requirements. Usually requires a large amount of additional programming.</li>
</ul>
<p>I&#8217;d love to hear about your experiences in the comments below, as a customer or web design company dealing in this area.
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fthefrontiergroup.com.au%2Fblog%2F2010%2F07%2Fso-just-how-much-does-a-website-cost%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<script src="http://feeds.feedburner.com/~s/TranscendingFrontiers?i=http://thefrontiergroup.com.au/blog/2010/07/so-just-how-much-does-a-website-cost/" type="text/javascript" charset="utf-8"></script>]]></content:encoded>
			<wfw:commentRss>http://thefrontiergroup.com.au/blog/2010/07/so-just-how-much-does-a-website-cost/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://thefrontiergroup.com.au/blog/2010/07/so-just-how-much-does-a-website-cost/</feedburner:origLink></item>
		<item>
		<title>Specjour with Custom Bundler and Database Setup</title>
		<link>http://feedproxy.google.com/~r/TranscendingFrontiers/~3/Hwwf85za43s/</link>
		<comments>http://thefrontiergroup.com.au/blog/2010/06/specjour-with-custom-bundler-and-database-setup/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 05:51:27 +0000</pubDate>
		<dc:creator>Aaron</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Inside TFG]]></category>
		<category><![CDATA[rspec]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Specjour]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://thefrontiergroup.com.au/blog/?p=811</guid>
		<description><![CDATA[We have a test suite here that now is rapidly approaching 2 hours using a single core. Let me just repeat that. A developer realistically would have to leave their machine testing overnight to see if the suite is working. That&#8217;s really not good enough.
Specjour has been a bit of a turn-key miracle worker with [...]]]></description>
			<content:encoded><![CDATA[<p>We have a test suite here that now is rapidly approaching 2 hours using a single core. Let me just repeat that. A developer realistically would have to leave their machine testing overnight to see if the suite is working. That&#8217;s really not good enough.</p>
<p><a href="http://github.com/sandro/specjour">Specjour</a> has been a bit of a turn-key miracle worker with our RSpec suite, however lately we&#8217;ve started to require some custom database setup that we do in a seeds.rb file as well as some custom bundler install parameters as most of our devs don&#8217;t have MySQL installed. Both of our needs were being nicely stomped on by Specjour so I thought it was time to look elsewhere.</p>
<p>I took a trip down <a href="http://wiki.github.com/ngauthier/hydra/">Hydra</a> lane and while getting to the point of having a working, local, dual runner system was a piece of cake, getting something working remotely via SSH took me hours of pain. Debugging the remote SSH workers was a nightmare and I spent a couple of hours running through code before deciding it was probably better to update our existing solution rather than tooling up a brand new one.</p>
<p>Back to the Specjour code. Specjour includes a rails directory inside which is an init.rb which Rails will run at initialisation (it&#8217;s part of what Rails does) but the Specjour initialiser will always just run the default database setup task no matter what initialiser you&#8217;ve got setup. We had a specjour initialiser that runs if ENV['PREPARE_DB'] was populated, which it is by Specjour, the problem was that the Specjour initialiser ran in the Rails <code>after_initialization</code> hook and therefore stomped all over our database setup.</p>
<p>The first step was just to have our initialiser write to another ENV element and then to have the Specjour <code>after_initialize</code> handler respect this. This isn&#8217;t too hard to implement as the <code>after_initialize</code> handler is just a block that is attached and so inside of this block you just need to check that ENV element. In my case I created a new ENV['DB_PREPPED'] element when my database setup had completed and then when the <code>after_initialize</code> block runs it checks for ENV['DB_PREPPED'] and will do nothing if that&#8217;s been set to true.</p>
<p>Easy. I now had Specjour respecting our database setup task.</p>
<p>The next step was to try and test this outside of a Rails application, not only that but to test the operation of a block (anonymous function?). To do this I setup a stub on a mock Rails class and let it capture the <code>after_initialize</code> block and then I ran a number of specs against this block.</p>
<pre>module Specjour
  module DbScrub
  end
end

DO_NOT_REQUIRE = true

describe "Rails Initialiser" do
  before :all do
    ENV['PREPARE_DB'] = "true"

    stub(Specjour::DbScrub).scrub

    class Rails
      class &lt;&lt; self; attr_accessor :configuration; end
      class &lt;&lt; self; attr_accessor :test_block; end
    end

    config = Object.new
    stub(config).after_initialize { |args|
      object = Object.new
      Rails.test_block = args
      object
    }
    Rails.configuration = config

    require 'rails/init'
  end

... tests ...</pre>
<p>This code essentially mocks up Rails.configuration and then stubs the <code>after_initialize</code> method. This stub then places the block that <code>after_initialize</code> yields to into Rails.test_block. When I <code>require 'rails/init'</code> it sequentially processes the file (as with all Ruby) and the stub will capture the block. After this is a bunch of tests I run an whether the <code>Specjour::DbScrub.scrub</code> method is called or not, so it&#8217;s nothing special.</p>
<p>I felt like at this stage I had fairly well tested the main aspects of the database setup.</p>
<p>The next issue was with how bundler was being handled. We have a situation where we would like to install sometimes without some gems. Some of the gems we use and have written use applications we&#8217;d rather not maintain in development and get tested in our staging and production environments. We generally will run a bundle install in development without the production or metrics groups so I wanted to have the ability to pass through a custom bundler command. That&#8217;s pretty easy now with my gem. Inside .specjour/bundler.yml there is a command property. I think this is more complex than what&#8217;s required, but I can foresee us needing a number of custom rake tasks and shell scripts so this bundler.yml should have probably started life as a settings/commands/something_generic.yml</p>
<p>To test this part of my changes was pretty simple. I basically just stubbed the system calls to bundler to give certain return values and checked to make sure the correct program flow happened.</p>
<pre>describe ".bundle_install" do
    let :manager do
      stub.instance_of(Specjour::Manager).project_path { "/tmp" }

      stub(Dir).chdir(anything) { |args|
        args.last.call # This yields to the block for Dir.chdir()
      }

      manager = Specjour::Manager.new
      stub(manager).project_path { "blah" }
      mock(manager).system('bundle lock')

      manager
    end

    it "should perform a bundle lock" do
      stub(manager).system('bundle check &gt; /dev/null') { true }

      manager.bundle_install
    end

    it "should check if there are gems required" do
      mock(manager).system('bundle check &gt; /dev/null') { true }

      manager.bundle_install
    end

    context "when gems are required" do
      before :each do
        # Not a before :all as it needs to hook into the let hook above

        stub(manager).system('bundle check &gt; /dev/null') { false }
      end

      context "and there is a bundler YAML file" do
        before :each do
          config_file = ".specjour/bundler.yml"

          mock(File).exists?(config_file) { true }
          mock(File).read(config_file) { "" }
          mock(YAML).load(anything) {
            { 'command' =&gt; "do it" }
          }
        end

        it "should get the bundle command from the YAML file" do
          mock(manager).system('do it &gt; /dev/null')
          manager.bundle_install
        end
      end

      context "and there is no bundler YAML file" do
        before :each do
          mock(File).exists?(".specjour/bundler.yml") { false }
        end

        it "should perform a bundle install" do
          mock(manager).system('bundle install &gt; /dev/null')
          manager.bundle_install
        end
      end
    end
  end</pre>
<p>You can see that I stubbed our the <code>Dir.chdir</code> block to just yield directly to the call, otherwise it&#8217;ll throw an exception. Then I stubbed and mocked out the <code>Kernel.system</code> calls as necessary. Kernel methods are generally included into Ruby objects so you don&#8217;t stub Kernel, you stub the object that has the Kernel methods. Most of the testing is pretty basic, but I&#8217;d be keen to hear if I&#8217;m doing anything incorrectly!</p>
<p>This was my first major venture into adding functionality to a public project and it was good fun. I think it made me do a little better work than I might normally, it&#8217;s a great motivation to potentially have peers look at how you do things.</p>
<p>After bundling it all up and testing it here with over a dozen developers and even more machines I&#8217;m pretty happy with how it functions. I&#8217;ve made a pull request back to the original gem creator and hopefully he&#8217;ll like what I&#8217;ve done. In the meantime if you want to check it out then my Specjour is available on <a href="http://github.com/ozzyaaron/specjour">Git Hub</a>.
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fthefrontiergroup.com.au%2Fblog%2F2010%2F06%2Fspecjour-with-custom-bundler-and-database-setup%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<script src="http://feeds.feedburner.com/~s/TranscendingFrontiers?i=http://thefrontiergroup.com.au/blog/2010/06/specjour-with-custom-bundler-and-database-setup/" type="text/javascript" charset="utf-8"></script>]]></content:encoded>
			<wfw:commentRss>http://thefrontiergroup.com.au/blog/2010/06/specjour-with-custom-bundler-and-database-setup/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://thefrontiergroup.com.au/blog/2010/06/specjour-with-custom-bundler-and-database-setup/</feedburner:origLink></item>
		<item>
		<title>Parallel RSpec Performance Testing</title>
		<link>http://feedproxy.google.com/~r/TranscendingFrontiers/~3/vt1x9gUloxQ/</link>
		<comments>http://thefrontiergroup.com.au/blog/2010/06/parallel-rspec-performance-testing/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 02:24:01 +0000</pubDate>
		<dc:creator>Aaron</dc:creator>
				<category><![CDATA[Inside TFG]]></category>
		<category><![CDATA[rspec]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Specjour]]></category>

		<guid isPermaLink="false">http://thefrontiergroup.com.au/blog/?p=821</guid>
		<description><![CDATA[We&#8217;re currently deciding on hardware to build a bit of a testing cluster on which we&#8217;ll run whatever the current best remote testing package we can find. At the moment, for us, that&#8217;s ended up being Specjour. We ended up pitting one of our i7 iMacs against a $400 Acer box we bought. We installed [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re currently deciding on hardware to build a bit of a testing cluster on which we&#8217;ll run whatever the current best remote testing package we can find. At the moment, for us, that&#8217;s ended up being Specjour. We ended up pitting one of our i7 iMacs against a $400 Acer box we bought. We installed Ubuntu&#8217;s REE 1.8.7 on the Acer machine and RVM and REE 1.8.7 on the iMac.</p>
<p><strong>i7 iMac &#8211; Quad Core Hyperthreading</strong></p>
<p>real	11m14.131s<br />
user	0m0.776s<br />
sys	0m0.348s</p>
<p><strong>Acer &#8211; E5200 Dual Core E5200</strong></p>
<p>real  35m56.658s<br />
user 0m0.870s<br />
sys   0m2.500s</p>
<p>It seems like the little Acer box offers slightly better value for money in this case. I&#8217;d like to see how we&#8217;d do with some virtualisation sitting on top this, but I think the included memory will be quite limiting in this regard. I wonder whether the processor resources are actually being fully utilised.
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fthefrontiergroup.com.au%2Fblog%2F2010%2F06%2Fparallel-rspec-performance-testing%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<script src="http://feeds.feedburner.com/~s/TranscendingFrontiers?i=http://thefrontiergroup.com.au/blog/2010/06/parallel-rspec-performance-testing/" type="text/javascript" charset="utf-8"></script>]]></content:encoded>
			<wfw:commentRss>http://thefrontiergroup.com.au/blog/2010/06/parallel-rspec-performance-testing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thefrontiergroup.com.au/blog/2010/06/parallel-rspec-performance-testing/</feedburner:origLink></item>
		<item>
		<title>What’s crazier than Crazy Domains having a major outage?</title>
		<link>http://feedproxy.google.com/~r/TranscendingFrontiers/~3/Gq6kPWGLR7c/</link>
		<comments>http://thefrontiergroup.com.au/blog/2010/06/whats-crazier-than-crazy-domains-having-a-major-outage/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 14:02:26 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Industry Trends]]></category>

		<guid isPermaLink="false">http://thefrontiergroup.com.au/blog/?p=813</guid>
		<description><![CDATA[I&#8217;ve just spent the last half an hour reading some of the amusing comments from customers of Crazy Domains (or soon to be ex customers).
Ask yourself a question &#8211; does your business rely on a website with maximum uptime?

If you pay between $2 and $4 per month for web hosting, you probably should expect serious [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just spent the last half an hour reading some of the amusing comments from customers of <a title="Crazy Domains" href="http://www.crazydomains.com.au">Crazy Domains</a> (or soon to be ex customers).</p>
<p>Ask yourself a question &#8211; does your business rely on a website with maximum uptime?</p>
<ul>
<li>If you pay between $2 and $4 per month for web hosting, you probably should expect serious regular downtime.</li>
<li>If you will lose thousands of dollars of business when your website or email goes down, think about finding a provider who offers a commercial grade hosting package with a fair price attached.</li>
<li>Take uptime guarantees with a grain of salt. Do some online research and see what other companies/customers are saying about their experiences.</li>
</ul>
<p>I feel for Crazy Domains. It&#8217;s a tough situation and they are going to be under fire for this for a long time. All it&#8217;s highlighted to me is that there is a big lack of education in the hosting and web space and that needs to change.</p>
<p><em>Update: </em><a href="http://www.netregistry.com.au/news/articles/538/1/Budget-hosting--know-the-risks/Page1.html">Netregistry voiced a similar opinion</a></p>
<blockquote style="font-family: Helvetica; line-height: normal; font-size: small;"><p><span style="border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium;"> </span></p></blockquote>
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fthefrontiergroup.com.au%2Fblog%2F2010%2F06%2Fwhats-crazier-than-crazy-domains-having-a-major-outage%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<script src="http://feeds.feedburner.com/~s/TranscendingFrontiers?i=http://thefrontiergroup.com.au/blog/2010/06/whats-crazier-than-crazy-domains-having-a-major-outage/" type="text/javascript" charset="utf-8"></script>]]></content:encoded>
			<wfw:commentRss>http://thefrontiergroup.com.au/blog/2010/06/whats-crazier-than-crazy-domains-having-a-major-outage/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://thefrontiergroup.com.au/blog/2010/06/whats-crazier-than-crazy-domains-having-a-major-outage/</feedburner:origLink></item>
		<item>
		<title>Agile Development – Myth or Magic?</title>
		<link>http://feedproxy.google.com/~r/TranscendingFrontiers/~3/IUSmLwAr3n4/</link>
		<comments>http://thefrontiergroup.com.au/blog/2010/06/agile-development-myth-or-magic/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 01:00:22 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Industry Trends]]></category>
		<category><![CDATA[Speaking Engagements]]></category>

		<guid isPermaLink="false">http://thefrontiergroup.com.au/blog/?p=796</guid>
		<description><![CDATA[On the 21st July, I am presenting as part of a one day seminar at the Sheraton Hotel in Perth. The event is organised by Savile House and sponsored by Thoughtworks.
Global Companies are increasingly employing Agile development techniques to gain an advantage.  It seems so obvious – increase the collaboration between different experts on [...]]]></description>
			<content:encoded><![CDATA[<p>On the 21st July, I am presenting as part of a one day seminar at the <a href="http://www.starwoodhotels.com/sheraton/property/overview/index.html?propertyID=240">Sheraton Hotel in Perth</a>. The event is organised by <a href="http://savilehouse.com.au">Savile House</a> and sponsored by <a href="http://thoughtworks.com.au">Thoughtworks</a>.</p>
<p><em>Global Companies are increasingly employing Agile development techniques to gain an advantage.  It seems so obvious – increase the collaboration between different experts on the project and you will deliver results quicker and at a lower cost.  But is it really that easy?</em></p>
<p><em> </em></p>
<p><em>Hear from our first class panel of experts who will share the high’s and low’s of their experience in adopting Agile.</em></p>
<p>I’m looking forward to sharing the stage with the presenters (download the full brochure – <a href="http://www.adamfitzgerald.com.au/wp-content/uploads/2010/06/agile_myth_or_magic-2.pdf">Agile Development – Myth or Magic?</a>):</p>
<p>Nigel Dalton – Lonely Planet<br />
David Joyce – Thoughtworks<br />
Mike Allen – Agile Alliance<br />
John Townsend – NOPSA<br />
Adam Fitzgerald – <a href="http://thefrontiergroup.com.au">The Frontier Group</a><br />
Dr Ashley Aitken – Curtin University<br />
Angela Ferguson – Thoughtworks
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fthefrontiergroup.com.au%2Fblog%2F2010%2F06%2Fagile-development-myth-or-magic%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<script src="http://feeds.feedburner.com/~s/TranscendingFrontiers?i=http://thefrontiergroup.com.au/blog/2010/06/agile-development-myth-or-magic/" type="text/javascript" charset="utf-8"></script>]]></content:encoded>
			<wfw:commentRss>http://thefrontiergroup.com.au/blog/2010/06/agile-development-myth-or-magic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thefrontiergroup.com.au/blog/2010/06/agile-development-myth-or-magic/</feedburner:origLink></item>
		<item>
		<title>Achieve More Online Workshops</title>
		<link>http://feedproxy.google.com/~r/TranscendingFrontiers/~3/nyQuBxuq5Jw/</link>
		<comments>http://thefrontiergroup.com.au/blog/2010/06/achieve-more-online-workshops-2/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 00:58:28 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Speaking Engagements]]></category>

		<guid isPermaLink="false">http://thefrontiergroup.com.au/blog/?p=795</guid>
		<description><![CDATA[The past two weeks have seen me travelling around the state of Western Australia and the Northern Territory as part of the Achieve More Online program. This has been a great experience both on a professional and personal level.
Travelling as far south as Albany, and soon to be as far north as Darwin, our team [...]]]></description>
			<content:encoded><![CDATA[<p>The past two weeks have seen me travelling around the state of Western Australia and the Northern Territory as part of the <a title="Achieve More Online" href="http://thefrontiergroup.com.au/pages/achieve-more-online-workshops-to-make-your-website-work">Achieve More Online</a> program. This has been a great experience both on a professional and personal level.</p>
<p>Travelling as far south as Albany, and soon to be as far north as Darwin, our team has experienced first hand, just how much value the program is bringing to the small business owners we reach.</p>
<p>Some of my favourite feedback so far:</p>
<p>“Best investment of time &amp; money. Tell your friends – these sessions will be booked out when people realise the quality of the material &amp; presenters. Tell your best friends but NOT your competitors!”<br />
<em>– Keith MacAulay, 2 Oceans Adventures (June 2010 Margaret River event)</em></p>
<p>“A friendly, knowledgeable team. Loved Matt’s unbridled enthusiasm, Adam’s quirky sense of humour and the whole team’s willingness to help in any way. Go to it! A worthwhile investment of time!”<br />
<em>– Kylie Byfield, Illuminaire Pty Ltd (June 2010 Margaret River event)</em></p>
<p>See more of the action at the Achieve More Online <a href="http://www.facebook.com/achievemoreonline">Facebook Page</a>
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fthefrontiergroup.com.au%2Fblog%2F2010%2F06%2Fachieve-more-online-workshops-2%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<script src="http://feeds.feedburner.com/~s/TranscendingFrontiers?i=http://thefrontiergroup.com.au/blog/2010/06/achieve-more-online-workshops-2/" type="text/javascript" charset="utf-8"></script>]]></content:encoded>
			<wfw:commentRss>http://thefrontiergroup.com.au/blog/2010/06/achieve-more-online-workshops-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://thefrontiergroup.com.au/blog/2010/06/achieve-more-online-workshops-2/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 0.500 seconds. --><!-- Cached page generated by WP-Super-Cache on 2010-09-08 17:20:13 -->
