<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Savantis Ltd - Lastest Blog</title>
    <link>http://www.savantis.co.uk/savantis/latest_blog</link>
    <pubDate>Wed, 30 Jun 2010 12:26:41 GMT</pubDate>
    <description>The lastest blog at Savantis Ltd</description>
    <item>
      <title>Little tip to allow the use of helper methods in controllers</title>
      <link>http://www.savantis.co.uk/savantis/blog_article/35</link>
      <description> A little tip i've found while watching a rails cast that i found useful...&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: 'Lucida Grande', verdana, arial, helvetica, sans-serif; font-size: 13px; border-collapse: collapse; color: rgb(34, 34, 34); line-height: 18px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; &quot;&gt;
&lt;div&gt;In a controller, there's a &amp;quot;@template&amp;quot; instance that you can call helper methods on.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;example&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;Helper -&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;def default_title&lt;/div&gt;
&lt;div&gt;&amp;quot;Ruby on Rails Specialists | Savantis &amp;quot;&lt;/div&gt;
&lt;div&gt;end&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;Controller -&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;def index&lt;/div&gt;
&lt;div&gt;@meta_title = @content.meta_title + @template.default_title&lt;/div&gt;
&lt;div&gt;end&lt;/div&gt;
&lt;/span&gt;&lt;/p&gt;</description>
      <pubDate>Wed, 30 Jun 2010 12:26:41 GMT</pubDate>
      <guid>http://www.savantis.co.uk/savantis/blog_article/35</guid>
      <author>Savantis Team</author>
    </item>
    <item>
      <title>Interesting move in the creation of PDF in Ruby</title>
      <link>http://www.savantis.co.uk/savantis/blog_article/34</link>
      <description> If you're using Prawn or thinking of doing so check this out.&lt;p&gt;As the blog post says..ugly Ugly PDFs are suddenly a thing of the past.&amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Tahoma, 'Helvetica Neue', Helvetica, Arial, sans-serif; line-height: 18px; &quot;&gt;&lt;a class=&quot;tweetlink&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-weight: inherit; font-style: inherit; font-size: 12px; font-family: inherit; vertical-align: baseline; color: rgb(0, 0, 153); text-decoration: none; &quot; href=&quot;http://thinkrelevance.com/blog/2010/06/15/rethinking-pdf-creation-in-ruby.html&quot;&gt;http://thinkrelevance.com/blog/2010/06/15/rethinking-pdf-creation-in-ruby.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <pubDate>Fri, 18 Jun 2010 04:59:12 GMT</pubDate>
      <guid>http://www.savantis.co.uk/savantis/blog_article/34</guid>
      <author>Savantis Team</author>
    </item>
    <item>
      <title>The Google Adwords Quality Score</title>
      <link>http://www.savantis.co.uk/savantis/blog_article/33</link>
      <description>This is variously described as a weighted mark based on :  Relevancy of Ad to landing page, Maximum bid, Click through rate (CTR) and landing page load speed.

&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Landing page load speed : check response times of landing pages over a few days vs. a fast site. Use a monitor to get averages, e.g. http://mon.itor.us/.&amp;nbsp;Consider changing hosting provider. Improving the response time of your website should be a housekeeping job regardless of whether you use Adwords.&amp;nbsp;Using a monitor will alert you to website downtime via email/SMS.&amp;nbsp;Monitoring can be used to demonstrate compliance, e.g. with an SLA.&lt;/p&gt;
&lt;p&gt;However, are the response times of your landing pages being influenced by calls to external web services?&lt;/p&gt;
&lt;p&gt;e.g. have you integrated real-time twitter updates into your site, so there is now a dependency on a third party?&lt;/p&gt;
&lt;p&gt;Consider storing info like this in a website database table on a daily or hourly basis, if it's not critical to website function, or implement some AJAX to handle the third party responses. This will allow the landing page to complete rendering asap.&amp;nbsp;These are other ways for you to improve and control landing page response times.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;</description>
      <pubDate>Sat, 03 Apr 2010 10:39:37 GMT</pubDate>
      <guid>http://www.savantis.co.uk/savantis/blog_article/33</guid>
      <author>Savantis Team</author>
    </item>
    <item>
      <title>Paperclip plugin</title>
      <link>http://www.savantis.co.uk/savantis/blog_article/32</link>
      <description>A nice blog on the use of the Paperclip plugin for Rails&lt;p&gt;An elegant and easy to follow introduction to Paperclip can be found here :&amp;nbsp;&lt;a href=&quot;http://jimneath.org/2008/04/17/paperclip-attaching-files-in-rails/&quot;&gt;http://jimneath.org/2008/04/17/paperclip-attaching-files-in-rails/&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Mon, 01 Mar 2010 11:27:59 GMT</pubDate>
      <guid>http://www.savantis.co.uk/savantis/blog_article/32</guid>
      <author>Savantis Team</author>
    </item>
    <item>
      <title>Friendly way to display date / time in rails </title>
      <link>http://www.savantis.co.uk/savantis/blog_article/31</link>
      <description>While integrating twitter into a rails app i found a cool and easy way to display the date / time of the tweets. &lt;p&gt;This would work well on comments, blog posts etc.. Anyway the way this is done is by :-&lt;/p&gt;
&lt;p&gt;&lt;code lang=&quot;ruby&quot;&gt; time_ago_in_words(example.created_at) &lt;/code&gt;&lt;/p&gt;
&lt;p&gt;would display as&amp;nbsp; &amp;quot;about 1 hour&amp;quot;&lt;/p&gt;
&lt;p&gt;Thats it, easy as that&amp;nbsp; !&lt;/p&gt;</description>
      <pubDate>Thu, 26 Nov 2009 11:22:35 GMT</pubDate>
      <guid>http://www.savantis.co.uk/savantis/blog_article/31</guid>
      <author>Savantis Team</author>
    </item>
    <item>
      <title>Is PHP more secure than Ruby on Rails?</title>
      <link>http://www.savantis.co.uk/savantis/blog_article/30</link>
      <description>PHP vs. Ruby on Rails. Which is a better option security wise, discuss.&lt;p&gt;Is this really the right question in the first place?&amp;nbsp;In terms of programming then Ruby is a much nicer language to use with all its dynamic OO features, but in terms of security its more about how you structure your code, not the language you use.&amp;nbsp;Generally its not the language you use, its what you do with it.&lt;/p&gt;
&lt;p&gt;A better question to ask is which is better for developing web applications, Ruby and Rails or &lt;span class=&quot;caps&quot;&gt;PHP?&lt;/span&gt; The answer is that it&amp;rsquo;s a lot easier to be secure with Rails with things like ActiveRecord. &lt;span class=&quot;caps&quot;&gt;PHP&lt;/span&gt; has traditionally not had sanity checking for things like &lt;span class=&quot;caps&quot;&gt;SQL&lt;/span&gt; injection and it&amp;rsquo;s been a manual process.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;There are extensions that you can use to mitigate the problem, but &lt;span class=&quot;caps&quot;&gt;PHP&lt;/span&gt; is a language and framework in itself intended for server-side web development. Afterall, it originally stood for Personal Home Page. Like Perl and &lt;span class=&quot;caps&quot;&gt;ASP&lt;/span&gt;, it was designed to get things running as fast as possible with little consideration of the consequences and little understanding of potential problems. I suppose you could say it needed to happen before other languages and frameworks like Rails/Zope/Django etc. came along. There&amp;rsquo;s a lot of manual hacking to cover security issues with &lt;span class=&quot;caps&quot;&gt;PHP&lt;/span&gt; and deployment like running it as a &lt;span class=&quot;caps&quot;&gt;CGI&lt;/span&gt; binary rather than using mod_php as well as sanity checking. It&amp;rsquo;s only now that taint checking is coming in: &lt;a href=&quot;http://wiki.php.net/rfc/taint&quot;&gt;http://wiki.php.net/rfc/taint&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Given a &amp;lsquo;from scratch&amp;rsquo; choice with no legacy baggage then there are better things you can use than &lt;span class=&quot;caps&quot;&gt;PHP&lt;/span&gt;, lets&amp;rsquo; put it that way, with Ruby on Rails being one of them.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <pubDate>Fri, 23 Oct 2009 08:17:54 GMT</pubDate>
      <guid>http://www.savantis.co.uk/savantis/blog_article/30</guid>
      <author>Savantis Team</author>
    </item>
    <item>
      <title>Cloud computing is inherently insecure and we're heading for a fall, aren't we?</title>
      <link>http://www.savantis.co.uk/savantis/blog_article/29</link>
      <description>Is the buzz and rush towards cloud computing blunting our instincts and brewing a massive security time bomb?&lt;div class=&quot;formatted_text_body&quot;&gt;
&lt;p&gt;Unfortunately the term &amp;lsquo;cloud computing&amp;rsquo; has been repeated meaninglessly by non-technical (MBA) people and then merely picked up by technical people who should know better. &amp;lsquo;Cloud computing&amp;rsquo; consists of two things:&lt;/p&gt;
&lt;p&gt;1. A virtualisation platform that separates server instances from hardware so you are less easily exposed to hardware problems.&lt;/p&gt;
&lt;p&gt;2. A persistant storage platform that separates data from hardware and server instances, usually with fast network attached block storage.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s it basically. It&amp;rsquo;s not special. It can be found being done in any data centre these days, but possibly not packaged together to provide one service with a set of interfaces to manage it, as Amazon or others are doing.&lt;/p&gt;
&lt;p&gt;Using a cloud infrastructure &lt;strong&gt;is&lt;/strong&gt; using a data centre with all the same pitfalls so is it more secure? Risk can actually be reduced by having a standardised, known platform for provisioning servers and storage and less need for consultants to perform initial deep voodoo magic to get things set up.&lt;/p&gt;
&lt;p&gt;Standardised is better, rather than having a completely unstandardised way of provisioning servers and storage, where we repeat all the same work to secure them, as well as a lot of issues like hardware failure, redundancy and backup infrastructure.&lt;/p&gt;
&lt;p&gt;The only feasible way to expose a cloud infrastructure like Amazon&amp;rsquo;s or Google&amp;rsquo;s is to target the interfaces and perhaps use social engineering techniques to extract access keys and secret keys, both of which are generated by an automated system and are used to sign and encrypt your machines and data. Even Amazon internally have little to no control over your instances or storage apart from shutting down and deleting instances.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s no more risky than putting anything you run into a data centre that you&amp;rsquo;ve never seen and hosted by people you haven&amp;rsquo;t met. It&amp;rsquo;s probably less risky, because at least you have a standardised infrastructure for setting up new servers and storage and provisioning secure access.&lt;/p&gt;
&lt;/div&gt;</description>
      <pubDate>Mon, 19 Oct 2009 20:58:16 GMT</pubDate>
      <guid>http://www.savantis.co.uk/savantis/blog_article/29</guid>
      <author>Savantis Team</author>
    </item>
    <item>
      <title>Ruby on Rails powers Visual Radio</title>
      <link>http://www.savantis.co.uk/savantis/blog_article/28</link>
      <description>Article on how the BBC used Ruby on Rails to build its web application for Visual Radio.&lt;p&gt;&lt;a href=&quot;http://www.bbc.co.uk/blogs/radiolabs/2009/01/how_visual_radio_works.shtml&quot;&gt;How Visual Radio works&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Wed, 14 Oct 2009 11:46:12 GMT</pubDate>
      <guid>http://www.savantis.co.uk/savantis/blog_article/28</guid>
      <author>Savantis Team</author>
    </item>
    <item>
      <title>Easily test different versions of Ruby</title>
      <link>http://www.savantis.co.uk/savantis/blog_article/27</link>
      <description>Pretty neat way of doing this for Mac and Linux platforms...&lt;a href=&quot;http://blog.thinkrelevance.com/2009/7/29/ruby-switcher-working-with-multiple-ruby-versions-has-never-been-this-easy&quot; target=&quot;blank&quot;&gt;http://blog.thinkrelevance.com/2009/7/29/ruby-switcher-working-with-multiple-ruby-versions-has-never-been-this-easy&lt;/a&gt;

</description>
      <pubDate>Mon, 05 Oct 2009 09:33:59 GMT</pubDate>
      <guid>http://www.savantis.co.uk/savantis/blog_article/27</guid>
      <author>Savantis Team</author>
    </item>
    <item>
      <title>delayed_job looks like a good alternative to backgroundrb</title>
      <link>http://www.savantis.co.uk/savantis/blog_article/26</link>
      <description>Running through some of the things that are problematic with Rails : Engine Yard&#8217;s list of what they don&#8217;t recommend includes backgroundrb.
Backgroundjob doesn't look terribly great and there isn't too much documentation around, but delayed_job looks pretty straightforward to use: &lt;a href=&quot;http://railstips.org/2008/11/19/delayed-gratification-with-rails&quot; target=&quot;blank&quot;&gt;http://railstips.org/2008/11/19/delayed-gratification-with-rails&lt;/a&gt;. Apparently Github uses it quite a bit behind the scenes. You just use your normal code but use specific methods that turn them into delayed jobs.</description>
      <pubDate>Thu, 01 Oct 2009 09:02:34 GMT</pubDate>
      <guid>http://www.savantis.co.uk/savantis/blog_article/26</guid>
      <author>Savantis Team</author>
    </item>
    <item>
      <title>Tips for using Sphinx for indexing</title>
      <link>http://www.savantis.co.uk/savantis/blog_article/25</link>
      <description>Pretty interesting.....&lt;a href=&quot;http://www.engineyard.com/blog/2009/5-tips-for-sphinx-indexing&quot; target=&quot;blank&quot;&gt;http://www.engineyard.com/blog/2009/5-tips-for-sphinx-indexing&lt;/a&gt;</description>
      <pubDate>Sun, 27 Sep 2009 13:36:18 GMT</pubDate>
      <guid>http://www.savantis.co.uk/savantis/blog_article/25</guid>
      <author>Savantis Team</author>
    </item>
    <item>
      <title>Exporting MS-Access database tables to CSV</title>
      <link>http://www.savantis.co.uk/savantis/blog_article/24</link>
      <description>Want to export MS-Access database tables to CSV files, maybe for a Rails app?We've implemented this &lt;a href=&quot;http://bit.ly/4EU9xP&quot; target=&quot;blank&quot;&gt;and it works.&lt;/a&gt; </description>
      <pubDate>Sat, 19 Sep 2009 13:27:12 GMT</pubDate>
      <guid>http://www.savantis.co.uk/savantis/blog_article/24</guid>
      <author>Savantis Team</author>
    </item>
    <item>
      <title>Dynamic domain names solution</title>
      <link>http://www.savantis.co.uk/savantis/blog_article/23</link>
      <description>This should be useful if you require a solution in Rails where dynamic assignment of domain names is required.&lt;a href=&quot;http://railscasts.com/episodes/123-subdomains/&quot; target=&quot;blank&quot;&gt;http://railscasts.com/episodes/123-subdomains&lt;/a&gt;</description>
      <pubDate>Thu, 17 Sep 2009 14:44:14 GMT</pubDate>
      <guid>http://www.savantis.co.uk/savantis/blog_article/23</guid>
      <author>Savantis Team</author>
    </item>
    <item>
      <title>&quot;Microsoft throws $1m open-source party. A-list guests needed&quot;</title>
      <link>http://www.savantis.co.uk/savantis/blog_article/22</link>
      <description>Reported in the Register this week - new Microsoft Open Source initiative. I have to agree with the conclusion in &lt;a href=&quot;http://www.theregister.co.uk/2009/09/10/microsoft_codeplex_foundation/&quot; target=&quot;blank&quot;&gt;this article&lt;/a&gt; in the Register this week, 'Microsoft needs to join other peoples' parties first before it can convince those who really matter to attend its own'. Indeed.</description>
      <pubDate>Sun, 13 Sep 2009 07:20:29 GMT</pubDate>
      <guid>http://www.savantis.co.uk/savantis/blog_article/22</guid>
      <author>Savantis Team</author>
    </item>
    <item>
      <title>Friendly URLs in Ruby on Rails </title>
      <link>http://www.savantis.co.uk/savantis/blog_article/20</link>
      <description>A quick and easy way to add friendly url's in ruby on rails in the Model put : 
&lt;code lang=&quot;ruby&quot;&gt;
def to_param
  id.to_s+'-'+title.downcase.gsub(' ', '-')
end
# note - title to be replaced with relevant column name
&lt;/code&gt;

so now instead of :
&lt;br/&gt;
&lt;br/&gt; 
http://www.savantis.co.uk/savantis/blog_article/19
&lt;br/&gt;
&lt;br/&gt;
 you would get : 
&lt;br/&gt;
&lt;br/&gt; 
www.savantis.co.uk/savantis/blog_article/19-friendly-urls-in-ruby-on-rails
</description>
      <pubDate>Mon, 15 Jun 2009 12:19:59 GMT</pubDate>
      <guid>http://www.savantis.co.uk/savantis/blog_article/20</guid>
      <author>Savantis Team</author>
    </item>
    <item>
      <title>Integrate Calender Date Select &amp; Active Scaffold (Rails 2.3.2)</title>
      <link>http://www.savantis.co.uk/savantis/blog_article/18</link>
      <description>In a recent project we needed to integrate a date select function into the back end of an application &lt;p&gt;The following shows a really simple way to integrate Calender Date Select into Active Scaffold. &lt;/p&gt;
&lt;p&gt;If you are working  in an older version of rails you can follow 
&lt;a href =&quot;http://wiki.activescaffold.com/wiki/published/CalendarDateSelectBridge&quot; target=&quot;blank&quot;&gt; instructions.&lt;/a&gt;&lt;/p&gt;

1)
But if you are using a newer version of rails all you will need to do is the following steps 
&lt;/p&gt;
1) Install the Calendar Date Select gem
&lt;code lang=&quot;ruby_on_rails&quot;&gt;
gem install calendar_date_select
&lt;/code&gt;
2) Add this line into the enviroment.rb
&lt;code lang=&quot;ruby_on_rails&quot;&gt;
config.gem &quot;calendar_date_select&quot;
&lt;/code&gt;
3) Restart / Start the server
&lt;p&gt;4) That about it but if you would like to change the colour theme of the Calender add the following to your layout
&lt;/p&gt;
&lt;code lang=&quot;ruby_on_rails&quot;&gt;
&lt;%= calendar_date_select_includes &quot;red&quot; %&gt;
# options include silver, blue and default
&lt;/code&gt;

Thats its Active Scaffold will do the rest of the magic and you will now have a fancy date selecter tool.



</description>
      <pubDate>Fri, 29 May 2009 15:58:18 GMT</pubDate>
      <guid>http://www.savantis.co.uk/savantis/blog_article/18</guid>
      <author>Savantis Team</author>
    </item>
    <item>
      <title>Integrating a Rich Text Editor into Active Scaffold </title>
      <link>http://www.savantis.co.uk/savantis/blog_article/17</link>
      <description>In recent weeks we have had a increase in requests for a MS Word like text editor (WYSIWYG) in our content management systems (CMS). To speed up development times we often use Active Scaffold (AS) to help with our backend functionality. AS unfortunately doesn't come with a built in editor therefore we needed to integrate a WYSIWYG into it.
&lt;br/&gt;&lt;br/&gt;
After a little google'in we found FCK Editor which is an impressive, well known and well managed WYSIWYG editor. 
&lt;br/&gt;&lt;br/&gt;
After a little tweaking in both AS and FCK editor this became the perfect solution.
&lt;br/&gt;
&lt;br/&gt;
The below shows the steps needed to integrate FCK Editor into Active Scaffold (Rails 2.3.2)
&lt;br/&gt;
&lt;br/&gt;
1) Once you have installed the &lt;a href=&quot;http://github.com/gramos/easy-fckeditor/tree/master&quot; &quot; target=&quot;blank&quot;&gt;easy-fckeditor plugin&lt;/a&gt; you need to run 
&lt;br/&gt;
&lt;code lang=&quot;ruby&quot;&gt;
rake fckeditor:install 
&lt;/code&gt;
2) Then include the FCK Editor Javascript into your layout 
&lt;code lang=&quot;ruby&quot;&gt;
&lt;%= javascript_include_tag :fckeditor %&gt; 
&lt;/code&gt;
3) Include the following into the relevant controller
&lt;code lang=&quot;ruby&quot;&gt;
config.create.multipart = true
config.update.multipart = true
&lt;/code&gt;
4) Config the form column in the helpers to display the FCK Editor (replace txt_area with your relevant column name)
&lt;code lang=&quot;ruby&quot;&gt;
def txt_area_form_column(record, input_name)
   fckeditor_textarea(:record, :txt_area, :toolbarSet =&gt; 'Default', :name=&gt; input_name,  :width =&gt; &quot;740px&quot;, :height =&gt; &quot;200px&quot;)
 end

 def txt_area_column(record)
   sanitize(record.txt_area)
 end
&lt;/code&gt;

And thats it you should now be the proud owner of a WYSIWYG Editor in you ruby on rails application.


</description>
      <pubDate>Thu, 28 May 2009 17:27:55 GMT</pubDate>
      <guid>http://www.savantis.co.uk/savantis/blog_article/17</guid>
      <author>Savantis Team</author>
    </item>
    <item>
      <title>The rumours of a connected world are greatly exaggerated</title>
      <link>http://www.savantis.co.uk/savantis/blog_article/14</link>
      <description>A while back I thought I'd forego the car, for a long journey south from Newcastle, and get the train....At a basic level it cost more than the petrol and took longer (on this occasion at least), but I surmised that I would be doing my bit for the planet and be more productive at the same time. I could get some work done and travel in relative comfort, arriving fresh at my destination.  As I sat on my Virgin Cross Country train travelling south my 3G signal was up and down like a veritable yo-yo and I had to snatch uptime in the vicinity of areas of habitation and stations (sic). 
&lt;br/&gt;&lt;br/&gt;
The reason for resorting to the old modem tucked away in my mobile is because, unlike National Express, Virgin don't offer WiFi on their trains....yet, and the mobile reception is poor compared to National Express (at least on the trains I tend to frequent).  That's not to say the WiFi service on National Express is wonderful. Admittedly it's free, but when the train fills up with commuters all trying to catch up with their emails then the thing verily goes t### up and I'm back on the old 3G trying to get a fix at each destination on the way home. 
&lt;br/&gt;&lt;br/&gt;
Hands up &#8211; this inconvenience allowed me to wax lyrical and pen this missive (this at least I could get on with), but there is a greater imperative here. Implementing reliable and fast WiFi facilities on train services makes the proposition more attractive to the erstwhile car driver. Employers at least would feel that a train fare, albeit marginally more expensive than the mileage allowance, would allow their employees not to devour time by sitting in a traffic jam and do something constructive. It would give train travel a critical edge over the car.
&lt;br/&gt;&lt;br/&gt;
It's certainly easier for me to compare the two modes of transport, being as I am in close proximity to a mainline city station, but I can tell you it's no picnic fighting your way in or out of a major city in a car, especially at rush hour.
&lt;br/&gt;&lt;br/&gt;
I recall hitting fog and the train sailed through the vapour without slowing. Now that's something I wouldn't contemplate doing in my car.
&lt;br/&gt;&lt;br/&gt;
Unlike the car the train is somewhere where you can use your mobile, drink coffee, eat a bacon roll and fill in your expenses all at the same time AND get to your destination.
</description>
      <pubDate>Fri, 27 Mar 2009 09:51:40 GMT</pubDate>
      <guid>http://www.savantis.co.uk/savantis/blog_article/14</guid>
      <author>Savantis Team</author>
    </item>
    <item>
      <title>CSS fix for Active Scaffold &quot;nested bug&quot;</title>
      <link>http://www.savantis.co.uk/savantis/blog_article/11</link>
      <description>Recently on a project we encounted a problem when using the Active Scaffold nested function Active Scaffold is a well known Rails plugin that we use on a regular basis to enhance the back end of our clients applications. 
&lt;br/&gt;
&lt;h2&gt;The Problem&lt;/h2&gt;
The problem we had was when we drilled down a couple of levels the tables would expand and overlap the outer container. This was in IE only (as usual) and renderd great in Firefox. 
&lt;br/&gt;
&lt;h2&gt;The Solution&lt;/h2&gt;
After a couple of days of pulling our hair out and ripping the CSS to bits we found the culprit (around line 230 on the active scaffold - stylesheet.css)
&lt;code lang=&quot;css&quot;&gt;
.active-scaffold tr.record td.actions {
border-right: solid 1px #ccc;
padding: 0;
width: 1%;
}
&lt;/code&gt;
Needs to be 
&lt;br/&gt;
&lt;code lang=&quot;css&quot;&gt;
.active-scaffold tr.record td.actions {
border-right: solid 1px #ccc;
padding: 0;
}
&lt;/code&gt;
&lt;br/&gt;
YES!! that right just one small attribute was causing all the problems.</description>
      <pubDate>Wed, 25 Feb 2009 18:00:05 GMT</pubDate>
      <guid>http://www.savantis.co.uk/savantis/blog_article/11</guid>
      <author>Savantis Team</author>
    </item>
    <item>
      <title>Adopting Open Source Software (OSS)</title>
      <link>http://www.savantis.co.uk/savantis/blog_article/10</link>
      <description>Our pragmatic approach to adopting OSS and where it's heading&lt;br/&gt;&lt;br/&gt;As part of the process of morphing ourselves from a closed to an open source framework development shop we've adopted a lot of OSS tools, which we are happy to advise on, and prefer to use these wherever possible.
&lt;br/&gt;&lt;br/&gt;
This is not to say that we will not used closed source software on principle. We are a business after all and where the cost of ownership of a closed source offering is significantly less than its open source equivalent, and we need that functionality, then we'll use that until something better comes along.
&lt;br/&gt;&lt;br/&gt;
At the end of the day both closed and OSS products have to be implemented, supported and maintained. If you don't have the requisite skills to undertake this in-house, you'll be looking at on-going costs for like for like solutions and this will determine your buying decision.
&lt;br/&gt;&lt;br/&gt;
The important thing here is that we are nearly always talking about providing business software solutions via a web browser. This is where the future of IT resides. As such, as long as the application conforms to internet standards for web browsing (and it works!) then it's going to be an option. OSS is a big player in this domain.
&lt;br/&gt;&lt;br/&gt;
OSS is also used extensively in the development of subscription services, where you pay for a software service on a monthly basis. This is one way for companies developing OSS to realise a return on their investment, by wrapping up useful pieces of functionality and making them available to end users with no or little technical know-how. These subscription services are attractive to use because they are generally low cost, simple to use and have a low commitment threshold.
&lt;br/&gt;&lt;br/&gt;
These services are increasingly being 'mashed up', by technology companies such as ourselves, to provide ever increasingly complex bespoke solutions for clients. In fact it would be difficult to justify writing much from scratch these days when we can interface a core application to any number of subscription services to provide dynamic and affordable software solutions.
&lt;br/&gt;&lt;br/&gt;
In terms of guides in OSS for the uninitiated then the following URL is a useful resource to start exploring how you might save money and assist OSS projects. It allows you to select your interest group and delve at your own pace.
&lt;br/&gt;&lt;br/&gt;
&lt;a href =&quot;http://www.oss-watch.ac.uk/ &quot; target=&quot;blank&quot;&gt;OSS Watch&lt;/a&gt;</description>
      <pubDate>Mon, 09 Feb 2009 15:20:32 GMT</pubDate>
      <guid>http://www.savantis.co.uk/savantis/blog_article/10</guid>
      <author>Savantis Team</author>
    </item>
    <item>
      <title>Is Open Source software secure?</title>
      <link>http://www.savantis.co.uk/savantis/blog_article/9</link>
      <description>&#8220;There are many factors that affect the security of an operating system or application, from the code level to the user level. Whether or not the source code is open is probably one of the least important factors.&#8221;&lt;br/&gt;&lt;br/&gt;
The use of Open Source software such as PHP and Ruby on Rails is widespread and in the opinion of Savantis is no less secure than Closed proprietary software. There are some compelling arguments for adopting Open Source, such as the reasons given here - &lt;a href =&quot;http://www.dwheeler.com/oss_fs_why.html &quot; target=&quot;blank&quot;&gt;Why Open Source Software&lt;/a&gt;. &lt;br/&gt;&lt;br/&gt;.
&#8220;In short, the effect on security of open source software is still a major debate in the security community, though a large number of prominent experts believe that it has great potential to be more secure.&#8221;
&lt;br/&gt;&lt;br/&gt;
There are also sceptics : 
&lt;a href =&quot;http://www.oreillynet.com/pub/a/security/2004/09/16/open_source_security_myths.html
 &quot; target=&quot;blank&quot;&gt;here&lt;/a&gt;, but even in this article there are concessions:
&lt;br/&gt;&lt;br/&gt;
&#8220;Comparing all open source software with all commercial software is tough. Certainly, when it comes to security, there are good cases and disasters in each camp. I do believe that from a security point of view, Apache is probably better off than Microsoft's IIS and that djbdns is better off than almost anything competitive. While I do think the open source community has a long way to go in general, I don't think it is necessarily worse on the whole. I would evaluate it only on a case-by-case basis. In the end it doesn't matter if open source systems tend to be more secure than proprietary systems, because on the whole they aren't yet coming close to being &quot;secure enough.&quot;
&lt;br/&gt;&lt;br/&gt;
Further strong arguments for not using Open Source come from DevX&#8217;s Executive Editor A. Russell Jones, but these opinions are challenged extensively 
&lt;a href =&quot;http://www.oreillynet.com/linux/blog/2004/02/is_open_source_secure.html
 &quot; target=&quot;blank&quot;&gt;here&lt;/a&gt;.
&lt;br/&gt;&lt;br/&gt;
In the end, in the words from &lt;a href =&quot;http://www.windowsecurity.com/articles/Open_Source_Secure.html &quot; target=&quot;blank&quot;&gt;this article&lt;/a&gt; sum it up...
&lt;br/&gt;&lt;br/&gt;
&#8220;There are many factors that affect the security of an operating system or application, from the code level to the user level. Whether or not the source code is open is probably one of the least important factors.&#8221;
&lt;br/&gt;&lt;br/&gt;
Indeed Open Source is under continual scrutiny. There is an initiative by the US government to &lt;a href =&quot;http://news.cnet.com/Open-source-security-moves-to-next-step/2100-1002_3-6225700.html?tag=topicIndex
 &quot; target=&quot;blank&quot;&gt;improve the security of Open Source software&lt;/a&gt;.
</description>
      <pubDate>Mon, 26 Jan 2009 10:05:38 GMT</pubDate>
      <guid>http://www.savantis.co.uk/savantis/blog_article/9</guid>
      <author>Savantis Team</author>
    </item>
    <item>
      <title>Why Savantis use Open Source tools to develop web applications</title>
      <link>http://www.savantis.co.uk/savantis/blog_article/8</link>
      <description>Once we were an IT consultancy specialising in the use of Microsoft tools. Over the past 3 years we have completely shifted our technology base to Open Source and look forward to another 11 years in business.&lt;br/&gt;
Using Microsoft and other proprietary 'closed source' software only when the end client demands it. We reached breaking point with the convoluted, heavy weight bloatware, high pricing and unfathomable licensing practises imposed on us &#8211; a big overhead for an agile micro company like ourselves.
&lt;br/&gt;&lt;br/&gt;
We are a technology company so Open Source provided a challenge, but the more we delved the more we liked. The community help for these products is generally excellent and not an issue for technical companies like ourselves. And our clients like what we do.
&lt;br/&gt;&lt;br/&gt;
Big players are increasingly making their Software Open Souce so that developers like us adopt them : 
&lt;br/&gt;&lt;br/&gt;
Adobe &#8211; Flex&lt;br/&gt;
IBM &#8211; Eclipse&lt;br/&gt;
Sun &#8211; MySQL, Open Office&lt;br/&gt;
Mozilla &#8211; Firefox &#8211; as of this month it holds the software download record of over 8 million in 1 day for Firefox 3.0&lt;br/&gt;
Google- Android (mobile phone operating system)&lt;br/&gt;
Nokia &#8211; bought the Symbian operating system for $400M and then made it Open Source &#8211; probably in response to Android. They have been described as a company morphing themselves from the inside.&lt;br/&gt;
&lt;br/&gt;
The is also the element of freedom with using Open Source, being able to contribute to a project and give something back to the community. It drives new business models &#8211; go and see 37signals website for a good example.
&lt;br/&gt;&lt;br/&gt;
The web doesn't care what technology you use as long as that technology presents its interfaces in the standards used to build the web. It demands open standards &#8211; the internet is built on Open Source.
&lt;br/&gt;&lt;br/&gt;
Generally clients don't care what you write their web applications in as long as they work. If software licensing issues go away and they also save money versus the 'Closed Source' option then this is a bonus. 
&lt;br/&gt;&lt;br/&gt;
In conclusion both developers and end users should seriously consider adopting Open Source technologies &#8211; they are at the forefront of innovation and there are too many Open Source adopters now for it to disappear.</description>
      <pubDate>Thu, 15 Jan 2009 14:13:37 GMT</pubDate>
      <guid>http://www.savantis.co.uk/savantis/blog_article/8</guid>
      <author>Savantis Team</author>
    </item>
    <item>
      <title>Ruby shorthand conditional statements</title>
      <link>http://www.savantis.co.uk/savantis/blog_article/5</link>
      <description>A look at Ruby's offering to conditional statements.When programming we should always be trying to refactor our code and follow the &quot;three strikes and your out&quot; rule.  Basically what this means is if you repeat the same sequence of code three times or more then you should realy refactor this into a generic method which is reused throughout the application.  This will reduce the amount of code needed and is good programming practice.
&lt;br /&gt;
&lt;br /&gt;
If\Else or case statements in ruby follow the general structure as per most programming languages like Java, C++, C# etc but sometimes they we feel they can look pretty ugly especially when they get really large and there is no real way to refactor them.  What we can do is improve the flow and structure of the code and ruby provides various options.  Using &quot;unless&quot; would enable us to fit a full condition on one line but its pretty limited with only one real output returned. We like the following below as it allows us to return 2 possible results based on a condition all in the one line of code:

&lt;code lang=&quot;ruby&quot;&gt;
refactor &lt; 3 ? puts(&quot;No need to reafctor YET&quot;) : puts( &quot;You need to refactor this into a  method&quot; )
&lt;/code&gt;
How this structure works is described below and pretty easy to follow.&lt;br /&gt;
&lt;code lang=&quot;ruby&quot;&gt;
&lt; Test Condition &gt; ?  if true do this : else do this
&lt;/code&gt;
Its something really small and basic but something we liked when switching our preffered development platform to Ruby on Rails.</description>
      <pubDate>Mon, 12 Jan 2009 11:25:04 GMT</pubDate>
      <guid>http://www.savantis.co.uk/savantis/blog_article/5</guid>
      <author>Savantis Team</author>
    </item>
    <item>
      <title>Is the internet an operating system?</title>
      <link>http://www.savantis.co.uk/savantis/blog_article/4</link>
      <description>Back in May 2008 I was asked 'is the internet an operating system?' I said no...
&lt;br/&gt; 
&lt;br/&gt;The phrase 'internet as an operating system' was coined by people who began viewing the OS as irrelevant, which it isn't. Although the web and browser enable you to access a lot of applications, you still need an operating system for all the everyday things such as file management, non-browser applications, and drivers for hardware - what you have in the operating system limits what you can do.
&lt;br/&gt; 
&lt;br/&gt;
Open source allows users to break free of certain boundaries and gives them scope for competitive advantage. Ultimately, it's the only reason that the internet could exist, as individual companies have historically fought to control whatever network sprung up through their own incompatible hardware and software.
&lt;br/&gt; 
&lt;br/&gt;
Whatever the big players tell you, the internet and open source software are yoked together. They're dramatically accelerating the growth of each other but it's simply wrong to view them as a unified system.
&lt;br/&gt; 
&lt;br/&gt;
....fast forward to December 2008 and here I am playing with Google Chrome, the newly touted (by some at least) operating system for the web. Well, not quite.
&lt;br/&gt; 
&lt;br/&gt;
It's true that even without the neat features of Chrome (off-line processing, desktop icons and compiled versus interpreted runtime) the underlying operating system on the piece of hardware you use has become much less relevant in the last 10 years. This is especially true of the last 2 years as hoards of people make the transition from desktop applications to subscription based web applications.
&lt;br/&gt; 
&lt;br/&gt;
Chrome further blurs the visible boundaries between the underlying OS and applications, but the underlying OS is still there somewhere at the end of day and without it nothing happens.
&lt;br/&gt; 
&lt;br/&gt;
End users don't care, and why should they, as long as the experience is intuitive and reliable? Because of this we should either change the definition of the term 'operating system' or we use a new term to encapsulate the paradigm. I prefer to think of vehicles like Chrome as enablers &#8211; wrapping up and hiding all the disparate parts that are the internet, much like a TV set, which conceals a myriad of complex technologies and presents a simple and intuitive interface to the world.</description>
      <pubDate>Wed, 31 Dec 2008 09:34:51 GMT</pubDate>
      <guid>http://www.savantis.co.uk/savantis/blog_article/4</guid>
      <author>Savantis Team</author>
    </item>
    <item>
      <title>Ruby gotcha!</title>
      <link>http://www.savantis.co.uk/savantis/blog_article/2</link>
      <description>If you're thinking of importing unicode characters into a database and your using Ruby on Windows, beware!It looks like Ruby on Windows screws with ASCII codes 192 through to 247, not good if your web application needs to import UTF8 characters, .NET may need to be wheeled in as a temporary measure while this gets sorted out.</description>
      <pubDate>Thu, 20 Nov 2008 11:23:55 GMT</pubDate>
      <guid>http://www.savantis.co.uk/savantis/blog_article/2</guid>
      <author>Savantis Team</author>
    </item>
    <item>
      <title>PuTTY in my hands</title>
      <link>http://www.savantis.co.uk/savantis/blog_article/1</link>
      <description>Great tech tips on  setting up and using PuTTY SSH client http://www.unixwiz.net/techtips/putty-openssh.html#keypair - This doesn't half make things easy to make a public and private key pair </description>
      <pubDate>Tue, 11 Nov 2008 11:32:34 GMT</pubDate>
      <guid>http://www.savantis.co.uk/savantis/blog_article/1</guid>
      <author>Savantis Team</author>
    </item>
  </channel>
</rss>
