<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	>

<channel>
	<title>Brightbox Blog &#187; Neil Wilson</title>
	<atom:link href="http://blog.brightbox.co.uk/posts/author/neil/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.brightbox.co.uk</link>
	<description></description>
	<lastBuildDate>Fri, 02 Dec 2011 12:56:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Load Balancing with Stomp and ActiveMessaging</title>
		<link>http://blog.brightbox.co.uk/posts/load-balancing-with-stomp-and-activemessaging</link>
		<comments>http://blog.brightbox.co.uk/posts/load-balancing-with-stomp-and-activemessaging#comments</comments>
		<pubDate>Wed, 14 Apr 2010 10:44:43 +0000</pubDate>
		<dc:creator>Neil Wilson</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[activemessaging]]></category>
		<category><![CDATA[activemq]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[stomp]]></category>

		<guid isPermaLink="false">http://blog.brightbox.co.uk/?p=1024</guid>
		<description><![CDATA[Inevitably with modern distributed software architecture you&#8217;re going to end up talking to a message queue at some point. We&#8217;ve been using ActiveMQ as the message broker, STOMP as the message protocol of choice and the ActiveMessaging gem so that we can talk to the message broker from Rails. ActiveMessaging is a great piece of [...]]]></description>
			<content:encoded><![CDATA[<p>Inevitably with modern distributed software architecture you&#8217;re going to end up talking to a message queue at some point. We&#8217;ve been using <a href="http://activemq.apache.org/">ActiveMQ</a> as the message broker, <a href="http://stomp.codehaus.org/">STOMP</a> as the message protocol of choice and the <a href="http://code.google.com/p/activemessaging/wiki/ActiveMessaging">ActiveMessaging</a> gem so that we can talk to the message broker from Rails.</p>
<p>ActiveMessaging is a great piece of code, but at first glance it appears to have a couple of wrinkles</p>
<ul>
<li>The standard configuration doesn&#8217;t support load balancing (so that you can talk to another broker if your normal one isn&#8217;t responding).</li>
<li>The queues and topics you want to speak to are defined at class level &#8211; which is a problem if you want the queues to be dynamically defined based upon data values.</li>
</ul>
<p>But thanks to Ruby, YAML and a bit of lateral thinking you can get around these issues.</p>
<p>ActiveMessaging uses the <a href="http://gitorious.org/stomp">Stomp Gem</a> under the hood, and that can do load balancing by itself. So all you have to do is get ActiveMessaging to pass the relevant incantations down to the Stomp Gem &#8211; intact. And you do that with a bit of fancy YAML. The trick is to add your host configurations to the login configuration entry in hash format like this:</p>
<p><code></p>
<pre> production:
    adapter: stomp
    login:
      :randomize: true
      :hosts:
      - :login: myloginid1
        :passcode: mypassword1
        :host: broker-host-1.somedomain.co.uk
      - :login: myloginid2
        :passcode: mypassword2
        :host: broker-host-2.somedomain.co.uk</pre>
<p></code></p>
<p>The <a href="http://gitorious.org/stomp/mainline/blobs/master/lib/stomp/connection.rb">Stomp Connection class</a> checks login to see if it is a hash and if it is uses that in preference to anything else. You can setup anything Stomp understands within that Hash. Check the class code for details.</p>
<p>The beauty of this approach is that it is entirely in the configuration. Your Rails code doesn&#8217;t need to know about it. The reconnection happens automatically in the background.</p>
<p>I&#8217;ve used an observer class within Rails to handle the message sending. It watches a model and sends messages when stuff is created and updated &#8211; nicely separating the concerns. But I wanted to talk to different queues depending upon what was in the model. So the standard <code>ActiveMessaging::MessageSender</code> approach didn&#8217;t seem appropriate.</p>
<p>After a bit of digging around it turns out that you can get hold of the broker connection directly rather than going via the Gateway.</p>
<p><code>
<pre>client = ActiveMessaging::Gateway.connection</pre>
<p></code></p>
<p>Then you can send to any queue you like, not just the ones defined up front in <code>messaging.rb</code>: </p>
<p><code>
<pre>client.send("/queue/#{some_variable}", body, headers)</pre>
<p></code></p>
<p>This is a lower level connection and you lose the filter chains and some error checking. However if you need it, it&#8217;s there.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.brightbox.co.uk/posts/load-balancing-with-stomp-and-activemessaging/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Brightbox Gem v2.1.2 released</title>
		<link>http://blog.brightbox.co.uk/posts/brightbox-gem-v212-released</link>
		<comments>http://blog.brightbox.co.uk/posts/brightbox-gem-v212-released#comments</comments>
		<pubDate>Thu, 09 Oct 2008 01:17:08 +0000</pubDate>
		<dc:creator>Neil Wilson</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[brightbox gem]]></category>

		<guid isPermaLink="false">http://blog.brightbox.co.uk/?p=145</guid>
		<description><![CDATA[I have released v2.1.2 of the Brightbox deployment gem onto Rubyforge today. This update to the gem is thanks to all the feedback we&#8217;ve received from customers over the summer. The documentation on the wiki has been updated to cover the new features and fixes. If you have any tips or find any errors, you [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright right size-full wp-image-70" title="Brightbox gem" src="http://blog.brightbox.co.uk/wp-content/uploads/2008/05/brightbox_gem.png" alt="" width="221" height="105" /></p>
<p>I have released v2.1.2 of the Brightbox deployment gem onto Rubyforge today. This update to the gem is thanks to all the feedback we&#8217;ve received from customers over the summer.</p>
<p>The documentation <a href="http://wiki.brightbox.co.uk/docs:thebrightboxgemv2">on the wiki</a> has been updated to cover the new features and fixes. If you have any tips or find any errors, you can edit the wiki yourself, or just let us know.</p>
<p><span style="color: #888888;">NEW FEATURES</span></p>
<h3>Cluster support</h3>
<p>The gem handles mongrels that are not on the same server as the web server. All you need do is set the mongrel host to &#8216;:remote&#8217; and the gem will work out from your :app definitions where the mongrels are.</p>
<h3>Nginx SSL support</h3>
<p>Those using Nginx can now deploy SSL automatically in the same way as Apache.</p>
<h3>Enhanced shared area management</h3>
<p>We&#8217;ve improved the shared area system so that it now works globally across all your servers (assuming you have a shared network drive). Simply set <code>global_shared_path</code> to a directory on the network and list your shared directories and files in <code>global_shared_dirs</code> and <code>global_shared_files</code>.</p>
<h3>Adjustable monit monitoring</h3>
<p>You can now increase (or decrease) the amount of memory and cpu your mongrels are allowed to use and change the url that monit checks to determine if your application is working properly.</p>
<h3>&#8216;Rich&#8217; maintenance page</h3>
<p>Many customers are unhappy with the slightly stark standard Capistrano maintenance page. So we&#8217;ve improved the system allowing you to have a <a href="http://wiki.brightbox.co.uk/docs:gemv2:maintenance">fully styled static web site</a> where the simple maintenance page once lived.</p>
<h3>Simple staging environment</h3>
<p>The gem has been altered so that it will work properly with the standard <a href="http://weblog.jamisbuck.org/2007/7/23/capistrano-multistage">Capistrano multistage extensions</a>.</p>
<h3>Easier management of rake tasks</h3>
<p><a href="http://wiki.brightbox.co.uk/docs:gemv2:rake_tasks">Two new tasks have been created</a> so that you can easily change and extend the rake tasks that are run after code deployment.</p>
<p><span style="color: #888888;">FIXES AND ENHANCEMENTS</span><br />
Other improvements include:</p>
<ul>
<li>REST verbs now work with page cached content.</li>
<li>The apache deflate module is on by default.</li>
<li>The gem now detects which web server you have in place and manipulates the correct one.</li>
<li>Separate error pages for each of the 5xx error pages on Nginx.</li>
<li>Going into maintenance returns the correct 503 error and doesn&#8217;t change the URL.</li>
<li>Static assets are cached aggressively in the browser, with fine control available in <code>deploy.rb</code> if required.</li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://blog.brightbox.co.uk/posts/brightbox-gem-v212-released/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HowTo do Ethernet Bonding on Ubuntu &#8211; Properly</title>
		<link>http://blog.brightbox.co.uk/posts/howto-do-ethernet-bonding-on-ubuntu-properly</link>
		<comments>http://blog.brightbox.co.uk/posts/howto-do-ethernet-bonding-on-ubuntu-properly#comments</comments>
		<pubDate>Mon, 08 Sep 2008 18:30:50 +0000</pubDate>
		<dc:creator>Neil Wilson</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[howtos]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.brightbox.co.uk/?p=117</guid>
		<description><![CDATA[It&#8217;s amazing how quickly guides on the Internet go out of date. I suppose this one will be no exception. However as I&#8217;ve been looking around there doesn&#8217;t appear to be a good guide as to how to get bonded ethernet to work in Ubuntu using the network helper scripts. So I thought I&#8217;d scribble [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s amazing how quickly guides on the Internet go out of date. I suppose this one will be no exception. However as I&#8217;ve been looking around there doesn&#8217;t appear to be a good guide as to how to get bonded ethernet to work in Ubuntu using the network helper scripts. So I thought I&#8217;d scribble down what I know.</p>
<p>This guide is designed for the Intrepid Ibex version of Ubuntu (8.10) with a small addendum covering Hardy Heron (8.04.1).</p>
<p>The Debian/Ubuntu networking system is a bit opaque. It works via a default script in <code>/etc/network/interfaces</code> and is described in interfaces(5). (run <code>man interfaces</code> to read it).</p>
<p>This gives you all the standard entries, but it also points out that other packages can install scripts that extend the options the interfaces file understands. And that is how you configure Ethernet bonding.</p>
<h3>Configure your switch</h3>
<p>Almost certainly you will have to activate LACP on the relevant ports on your switch to get automatic bonding to work. How you do this depends on your switch. (On my test HP 1800-8G switch I just use the web interface and check a couple of boxes).</p>
<h3>For Intrepid and Hardy</h3>
<ol>
<li>Install the bonding enslave programs and network scripts:
<pre><code>apt-get install ifenslave</code></pre>
</li>
<li>Shutdown any active network interfaces you intend to use with bonding
<pre><code>sudo -s
ifdown eth0
ifdown eth1
etc, etc...</code></pre>
</li>
<li>Comment out the ethernet configurations from <code>/etc/network/interfaces</code>
<pre><code>#auto eth0
#iface eth0 inet dhcp</code></pre>
</li>
<li>Add in the bonding configuration into <code>/etc/network/interfaces</code>
<pre><code>auto bond0
iface bond0 inet dhcp
  slaves all
  bond-mode 4
  bond-miimon 100</code></pre>
</li>
<li>Bring up the interface with:
<pre><code>sudo ifup bond0</code></pre>
</li>
</ol>
<p>This brings up a bonded interface using the 802.3ad Link Aggregation Control Protocol (LACP) which is by far the easiest way of configuring a resilient trunk if your switch supports it (and even quite small switches do these days).</p>
<p>There are other modes and options available in the bonding driver all of which can now be specified in the <code>interfaces</code> file. Full gory details in the <code>bonding.txt.gz</code> file in the current <code>linux-doc</code> package.</p>
<p>Similarly you can specify which network interfaces you want to use as the slaves to the bonding driver e.g. <code>slaves eth0 eth1</code>. Look at the documentation in <code>/usr/share/doc/ifenslave-2.6/README.Debian</code> for more details.</p>
<h3>Extra Work for Hardy</h3>
<p>Hardy&#8217;s <code>ifenslave</code> scripts are a little more primitive than Intrepid. It doesn&#8217;t auto-load the bonding module the first time you try to use it and it doesn&#8217;t set the options automatically. You have to do that the old fashioned way.</p>
<ol>
<li>Create a  file called <code>bonding</code> in <code>/etc/modprobe.d</code> with the following config in it.
<pre><code>alias bond0 bonding
options bond0 mode=4 miimon=100</code></pre>
</li>
<li>Load the module into the kernel
<pre><code>sudo modprobe bond0</code></pre>
</li>
<li>Clear out any failed bond interface by running ifdown
<pre><code>sudo ifdown bond0</code></pre>
</li>
<li>Bring the bond interface up.
<pre><code>sudo ifup bond0</code></pre>
</li>
<li>Once you done this once, the system will ensure that the module is loaded automatically on subsequent reboots and the network brought up.</li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://blog.brightbox.co.uk/posts/howto-do-ethernet-bonding-on-ubuntu-properly/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>HowTo Update Rubygems by hand</title>
		<link>http://blog.brightbox.co.uk/posts/howto-update-rubygems-by-hand</link>
		<comments>http://blog.brightbox.co.uk/posts/howto-update-rubygems-by-hand#comments</comments>
		<pubDate>Thu, 28 Aug 2008 14:09:47 +0000</pubDate>
		<dc:creator>Neil Wilson</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[gems]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[rubygems]]></category>
		<category><![CDATA[updates]]></category>
		<category><![CDATA[wiki]]></category>

		<guid isPermaLink="false">http://blog.brightbox.co.uk/?p=97</guid>
		<description><![CDATA[The recent security issue with rails has led to several customers having to dabble with Rubygems possibly for the first time. A few have reported problems with the smaller Brightboxes running  older versions of gems. Essentially they run out of memory as Rubygems tries to download and update the entire Rubygems index. If you have [...]]]></description>
			<content:encoded><![CDATA[<p>The recent security issue with rails has led to several customers having to dabble with Rubygems possibly for the first time. A few have reported problems with the smaller Brightboxes running  older versions of gems. Essentially they run out of memory as Rubygems tries to download and update the entire Rubygems index.</p>
<p>If you have this problem you should upgrade to Rubygems 1.2.0 or greater, which handles the index in a different and less resource intensive way. You will have to install the Rubygems update by hand. I have <a href="http://wiki.brightbox.co.uk/docs:faq#i_ve_tried_upgrading_rubygems_but_my_machine_has_hung">added some instructions to the wiki</a> about how to do this.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.brightbox.co.uk/posts/howto-update-rubygems-by-hand/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rails security vulnerability</title>
		<link>http://blog.brightbox.co.uk/posts/rails-security-vulnerability</link>
		<comments>http://blog.brightbox.co.uk/posts/rails-security-vulnerability#comments</comments>
		<pubDate>Tue, 26 Aug 2008 13:23:44 +0000</pubDate>
		<dc:creator>Neil Wilson</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://blog.brightbox.co.uk/?p=95</guid>
		<description><![CDATA[If you&#8217;ve been following the Rails security list you&#8217;ll know that there has been a serious flaw uncovered in the REXML library that allows an easy Denial of Service attack on the vast majority of Rails applications. The Ruby details are here: http://www.ruby-lang.org/en/news/2008/08/23/dos-vulnerability-in-rexml/ and the instructions for applying the monkey patch fix for Rails is [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve been following the Rails security list you&#8217;ll know that there has been a serious flaw uncovered in the REXML library that allows an easy Denial of Service attack on the vast majority of Rails applications.</p>
<p>The Ruby details are here: <a href="http://www.ruby-lang.org/en/news/2008/08/23/dos-vulnerability-in-rexml/">http://www.ruby-lang.org/en/news/2008/08/23/dos-vulnerability-in-rexml/</a> and the instructions for applying the monkey patch fix for Rails is on the security google group: <a href="http://groups.google.com/group/rubyonrails-security/browse_thread/thread/9fb60a1e22a88d30/330bcb96de877996#330bcb96de877996">http://groups.google.com/group/rubyonrails-security/browse_thread/thread/9fb60a1e22a88d30/330bcb96de877996#330bcb96de877996</a></p>
<p>Just to reiterate &#8211; this fault will affect the majority of Rails applications across all versions of Rails, whether you think you are processing XML or not, and we would urge all our customers (and all Rails users for that matter) to patch their applications until there is an upgrade to the Ruby libraries correcting the error.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.brightbox.co.uk/posts/rails-security-vulnerability/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Brightbox v2.0.2 Gem released</title>
		<link>http://blog.brightbox.co.uk/posts/brightbox-v202-gem-released</link>
		<comments>http://blog.brightbox.co.uk/posts/brightbox-v202-gem-released#comments</comments>
		<pubDate>Thu, 12 Jun 2008 14:34:58 +0000</pubDate>
		<dc:creator>Neil Wilson</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[brightbox gem]]></category>

		<guid isPermaLink="false">http://blog.brightbox.co.uk/?p=77</guid>
		<description><![CDATA[Today we tagged and released v2.0.2 of our new Brightbox deployment gem on Rubyforge. It should be available just as soon as the main gem repository synchronises, or you can grab it from our testing repository at http://gems.brightbox.net/testing/ Documentation for the gem is on the wiki. If you have any tips or find any errors, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright right size-full wp-image-70" title="Brightbox gem" src="http://blog.brightbox.co.uk/wp-content/uploads/2008/05/brightbox_gem.png" alt="" width="221" height="105" /></p>
<p>Today we tagged and released v2.0.2 of our new Brightbox deployment gem on Rubyforge. It should be available just as soon as the main gem repository synchronises, or you can grab it from our testing repository at http://gems.brightbox.net/testing/</p>
<p>Documentation for the gem is <a href="http://wiki.brightbox.co.uk/docs:thebrightboxgemv2">on the wiki</a>. If you have any tips or find any errors, please feel free to update the wiki yourself (or drop us a note if you&#8217;re shy!)</p>
<p>This gem is a complete rewrite, to take advantage of the latest features of Capistrano and Rails. The Gem works with latest versions of Capistrano (v2.0.2 of the gem has been updated to work with Capistrano 2.4 as well as 2.3) and supports the deployment of Rails applications with a  slant towards those created with Rails v2.x</p>
<p><span style="color: #888888;">NEW FEATURES SINCE BETA</span></p>
<h3>NGINX support</h3>
<p>The gem creates configurations for both Apache and NGINX so that those who prefer to use NGINX can use the gem as well as their favourite webserver.</p>
<h3>Apache SSL support</h3>
<p>If you set <code>:ssl_certificate</code> to the path of an SSL certificate stored on your server then the gem will create an SSL configuration for that site. (Note that there can only be one SSL site per Brightbox due to limitations in the way Apache uses certificates).</p>
<h3>Simple local shared area management</h3>
<p>The capistrano release management system shares certain directories and files between releases &#8211; log files and the public/system directory. We have extended that function so that you can create your own directories and files that are shared between releases. Simply set the <code>:local_shared_dirs</code> and <code>:local_shared_files</code> variables and the Brightbox gem will make sure those areas are always shared between releases. Great for upload directories or for sharing the <code>config/database.yml</code> between releases.</p>
<h3>Documented config/deploy.rb</h3>
<p>We have included documentation for all the Brightbox features directly in the <code>config/deploy.rb</code>. Find the feature section, uncomment the appropriate lines and alter to suit.</p>
<h3>Monit management</h3>
<p>If you stop an application monit will stop monitoring it until you start it again. This should eliminate a lot of noise from monit.</p>
<p><span style="color: #888888;">NEW FEATURES</span></p>
<h3>Deploy with a single command</h3>
<p>You can deploy a Rails application onto the Brightbox system with a single command <code>deploy:initial</code>. We&#8217;ve tried to reduce the amount of work required to get an application working. You can follow our simplified <a href="http://wiki.brightbox.co.uk/docs:gemv2:howto">initial deployment guide on our wiki</a></p>
<h3>Focus on new deployment</h3>
<p>The Brightbox gem is designed to allow you to quickly deploy an application to your new Brightbox. We&#8217;ve created sensible defaults for many of the Brightbox command options, and trimmed as much of the fat as we can from the deployment process. But because the gem generates Capistrano files you can tailor this starting point to your exact needs using the full power of Capistrano.</p>
<h3>Deploy your working copy</h3>
<p>The gem uses the new &#8216;:none&#8217; scm option in Capistrano that simply zips up the current directory and deploys it on the server. No more messing around with version control security until you&#8217;re ready. Just deploy and go.</p>
<h3>Checks your database configuration</h3>
<p>The gem will check the database.yml for the Rails environment you are deploying to and will warn you if any of the details do not conform to Brightbox Standards.</p>
<h3>Automatically creates databases and gems</h3>
<p>Rails now has rake commands for creating databases and installing required gems. Where these are available the recipes will use them automatically. For Rails 2.0 users we&#8217;ve created a simple &#8216;stop gap&#8217; rake task that you can use to specify your required gems.</p>
<h3>Separate server and client gems</h3>
<p>Once the gem is released all new brightboxes will come with the server gem preinstalled. For older boxes you will need to install the server tools manually. Log into your brightbox and run:</p>
<pre>sudo gem install brightbox-server-tools -y --no-ri --no-rdoc</pre>
<h3>Logs Rotated</h3>
<p>The gem asks the operating system to monitor the size of the application logs and rotate them when they get too big or too old. No longer should a neglected log file bring your server to its knees.</p>
<h3>Mongrels Cleaned</h3>
<p>Mongrel tend to be dirty when it falls over and leaves PID files lying around to trap the unwary. The new gem cleans up dirty PID files before it restarts.</p>
<h3>Works alongside Capistrano</h3>
<p>We&#8217;ve simplified the recipes so that, wherever possible, they augment the existing Capistrano deployment commands we all know and love rather than replacing them. That way your deployments gain the benefits of Capistrano improvements as well as improvements in the Brightbox gem. Free software at its best.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.brightbox.co.uk/posts/brightbox-v202-gem-released/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Phusion Passenger Package update to 2.0 RC1</title>
		<link>http://blog.brightbox.co.uk/posts/phusion-passenger-package-update-to-20-rc1</link>
		<comments>http://blog.brightbox.co.uk/posts/phusion-passenger-package-update-to-20-rc1#comments</comments>
		<pubDate>Tue, 10 Jun 2008 10:05:04 +0000</pubDate>
		<dc:creator>Neil Wilson</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[passenger]]></category>

		<guid isPermaLink="false">http://blog.brightbox.co.uk/?p=76</guid>
		<description><![CDATA[If you&#8217;ve been following the buzz from RailsConf 2008 you&#8217;ll know that Phusion Passenger has gone to version 2.0 with a whole load of new goodies including: Merb Support via Rack Lower VM Usage Better load balancing and non-blocking file uploads The package is on our repository at http://apt.brightbox.net and built for Ubuntu 8.04 (Hardy). [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve been following the buzz from RailsConf 2008 you&#8217;ll know that <a href="http://blog.phusion.nl/2008/06/09/phusion-passenger-20-rc-1-and-ruby-enterprise-edition-released/">Phusion Passenger</a> has gone to version 2.0 with a whole load of new goodies including:</p>
<ul>
<li>Merb Support via Rack</li>
<li>Lower VM Usage</li>
<li>Better load balancing and non-blocking file uploads</li>
</ul>
<p>The package is on our repository at <code>http://apt.brightbox.net</code> and built for Ubuntu 8.04 (Hardy).</p>
<p>I&#8217;ve had the pleasure of working with Hongli at Phusion to knock out a few bugs and make Phusion Passenger easier to package. That work has paid off and I was able to quickly release the updated Passenger package within minutes of getting the nod from the Phusion guys.</p>
<p>That&#8217;s why we love Free Software here at Brightbox.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.brightbox.co.uk/posts/phusion-passenger-package-update-to-20-rc1/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rails: so successful it&#8217;s starting to hurt?</title>
		<link>http://blog.brightbox.co.uk/posts/rails-so-successful-its-starting-to-hurt</link>
		<comments>http://blog.brightbox.co.uk/posts/rails-so-successful-its-starting-to-hurt#comments</comments>
		<pubDate>Mon, 02 Jun 2008 14:00:00 +0000</pubDate>
		<dc:creator>Neil Wilson</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby on rails]]></category>
		<category><![CDATA[skills]]></category>
		<category><![CDATA[training]]></category>

		<guid isPermaLink="false">http://blog.brightbox.co.uk/?p=73</guid>
		<description><![CDATA[One thing that we often hear from customers is how difficult it is find Rails developers. Which is funny since we also hear people saying how they’d love a job building Rails applications. The well-being of the Rails community is important to us, so we’d like to try and do what we can to keep [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.brightbox.co.uk/wp-content/uploads/2008/06/istock_000005702296xsmall.jpg" alt="" title="Mind the gap" width="400" height="300" class="alignnone size-full wp-image-75 content_image" /><br />
One thing that we often hear from customers is how difficult it is find Rails developers. Which is funny since we also hear people saying how they’d love a job building Rails applications.</p>
<p>The well-being of the Rails community is important to us, so we’d like to try and do what we can to keep it bubbling along nicely :)</p>
<p>One of the ideas that came up was some sort of Rails training network that would help bridge any skills gap. But before we do anything, we want to understand whether there is actually a skills gap, or just an &#8220;expectation gap&#8221; in either price or experience (anybody with any sort of Rails commercial experience is almost certainly gainfully employed at a good rate at the moment).</p>
<p>So, we’d like to hear from you if…</p>
<p>1) You’re in the market for Rails talent and would either be interested in using a Rails training programme, or interested in talking to ‘graduates’ of such a programme or</p>
<p>2) You’re a developer and you’d be interested in signing up for a Rails training programme and potentially getting your name in front of Rails employers.</p>
<p>Drop us an email to hello [at] the brightbox uk domain &#8211; we&#8217;ll gauge interest and take it from there.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.brightbox.co.uk/posts/rails-so-successful-its-starting-to-hurt/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Brightbox builds Hardy Passenger package</title>
		<link>http://blog.brightbox.co.uk/posts/brightbox-builds-hardy-passenger-package</link>
		<comments>http://blog.brightbox.co.uk/posts/brightbox-builds-hardy-passenger-package#comments</comments>
		<pubDate>Wed, 21 May 2008 09:58:36 +0000</pubDate>
		<dc:creator>Neil Wilson</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[hardy]]></category>
		<category><![CDATA[mod_rails]]></category>
		<category><![CDATA[passenger]]></category>
		<category><![CDATA[rails hosting]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.brightbox.co.uk/?p=72</guid>
		<description><![CDATA[We&#8217;ve created an Ubuntu Hardy package for Passenger &#8211; the apache &#8216;mod_rails&#8217; hosting solution written by the team at Phusion, and sent the resulting patches back upstream to improve Passenger for everybody. The package is available from the Brightbox repository at http://apt.brightbox.net and is called &#8216;libapache2-mod-passenger&#8217;. Brightboxes have the repository in place by default, but [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve created an Ubuntu Hardy package for Passenger &#8211; the apache &#8216;mod_rails&#8217; hosting solution written by the team at <a href="http://www.modrails.com/">Phusion</a>, and sent the resulting patches back upstream to improve Passenger for everybody.</p>
<p>The package is available from the Brightbox repository at http://apt.brightbox.net and is called &#8216;libapache2-mod-passenger&#8217;.</p>
<p>Brightboxes have the repository in place by default, but you can easily add the repository to your system with the following commands:</p>
<p><code>sudo sh -c 'echo "deb http://apt.brightbox.net hardy main" &gt; /etc/apt/sources.list.d/brightbox.list'<br />
sudo sh -c 'wget -q -O - http://apt.brightbox.net/release.asc | apt-key add -'<br />
sudo apt-get update</code></p>
<p>There will be a beta Passenger Brightbox machine available soon and we&#8217;re probably going to need some volunteers to trial it out. So if you like your Rails Hosting bleeding edge then <a href="mailto:&#x6e;&#x65;&#x69;&#x6c;&#x40;&#x62;&#x72;&#x69;&#x67;&#x68;&#x74;&#x62;&#x6f;&#x78;&#x2e;&#x63;o.uk">let me know</a> and I&#8217;ll put you on the list.</p>
<p>If you do use the .deb, be warned that I&#8217;m changing it all the time at the moment as Passenger evolves and I&#8217;m following Passenger trunk very closely.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.brightbox.co.uk/posts/brightbox-builds-hardy-passenger-package/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Brightbox Gem v2 beta</title>
		<link>http://blog.brightbox.co.uk/posts/brightbox-gem-v2-beta</link>
		<comments>http://blog.brightbox.co.uk/posts/brightbox-gem-v2-beta#comments</comments>
		<pubDate>Fri, 09 May 2008 13:13:32 +0000</pubDate>
		<dc:creator>Neil Wilson</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[beta]]></category>
		<category><![CDATA[brightbox gem]]></category>
		<category><![CDATA[capistrano]]></category>
		<category><![CDATA[deployment]]></category>
		<category><![CDATA[gem]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://blog.brightbox.co.uk/?p=69</guid>
		<description><![CDATA[We&#8217;re proud to announce the beta version of our new Brightbox deployment gem. It is available from the Brightbox gem testing repository at http://gems.brightbox.net/testing. You can add this repository to your list by following these instructions. This gem is a complete rewrite, to take advantage of the latest features of Capistrano and Rails. The Gem [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright right size-full wp-image-70" title="Brightbox gem" src="http://blog.brightbox.co.uk/wp-content/uploads/2008/05/brightbox_gem.png" alt="" width="221" height="105" /></p>
<p>We&#8217;re proud to announce the beta version of our new Brightbox deployment gem. It is available from the Brightbox gem testing repository at <a href="http://gems.brightbox.net/testing/">http://gems.brightbox.net/testing</a>. You can add this repository to your list by following <a href="http://groups.google.com/group/brightbox-beta/web/accessing-the-beta-gem-repository?hl=en">these instructions</a>.</p>
<p>This gem is a complete rewrite, to take advantage of the latest features of Capistrano and Rails. The Gem works with the current version of Capistrano (2.3) and supports the deployment of Rails 2.x applications.</p>
<p><span style="color: #888888;">FEATURES</span></p>
<h3>Deploy with a single command</h3>
<p>You can deploy a Rails application onto the Brightbox system with a single command (deploy:initial). We&#8217;ve tried to reduce the amount of work required to get an application working. You can follow our simplified <a href="http://wiki.brightbox.co.uk/docs:gemv2:howto">initial deployment guide on our wiki</a></p>
<h3>Focus on new deployment</h3>
<p>The Brightbox gem is designed to allow you to quickly deploy an application to your new Brightbox. We&#8217;ve created sensible defaults for many of the Brightbox command options, and trimmed as much of the fat as we can from the deployment process. But because the gem generates Capistrano files you can tailor this starting point to your exact needs using the full power of Capistrano.</p>
<h3>Deploy your working copy</h3>
<p>The gem uses the new &#8216;:none&#8217; scm option in Capistrano that simply zips up the current directory and deploys it on the server. No more messing around with version control security until you&#8217;re ready. Just deploy and go.</p>
<h3>Automatically creates database configuration</h3>
<p>The standard &#8216;mysql&#8217; command allows you to put the database, username and password in a file called &#8216;.my.cnf&#8217; in the &#8216;rails&#8217; user home directory on the server. The mysql command will then read that file and logon to the database directly. If your application is short of a &#8216;production&#8217; section in its config/database.yml then the recipes will take the contents of &#8216;.my.cnf&#8217; and create a production section dynamically.</p>
<h3>Automatically creates databases and gems</h3>
<p>Rails now has rake commands for creating databases and installing required gems. Where these are available the recipes will use them automatically. For Rails 2.0 users we&#8217;ve created a simple &#8216;stop gap&#8217; rake task that you can use to specify your required gems.</p>
<h3>Separate server and client gems</h3>
<p>Once the gem is released all new brightboxes will come with the server gem preinstalled. For older boxes you will need to install the server tools manually. Log into your brightbox and run:</p>
<p><code> </code></p>
<pre>sudo gem install brightbox-server-tools -y --no-ri --no-rdoc</pre>
<h3>Logs Rotated</h3>
<p>The gem asks the operating system to monitor the size of the application logs and rotate them when they get too big or too old. No longer should a neglected log file bring your server to its knees.</p>
<h3>Mongrels Cleaned</h3>
<p>Mongrel tend to be dirty when it falls over and leaves PID files lying around to trap the unwary. The new gem cleans up dirty PID files before it restarts.</p>
<h3>Works alongside Capistrano</h3>
<p>We&#8217;ve simplified the recipes so that, wherever possible, they augment the existing Capistrano deployment commands we all know and love rather than replacing them. That way your deployments gain the benefits of Capistrano improvements as well as improvements in the Brightbox gem. Free software at its best.</p>
<h3>NOW WE NEED YOUR HELP!</h3>
<p>We&#8217;d like as many Brightbox customers to use the new gem and let us know what they think of it so that we can hone it to perfection. Please give it a go and then pop along to our Brightbox Beta discussion group (<a href="http://groups.google.com/group/brightbox-beta">http://groups.google.com/group/brightbox-beta</a>) and let us know any feedback or problems.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.brightbox.co.uk/posts/brightbox-gem-v2-beta/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

