<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>smoothcontract RSS Feed</title>
    <link>http://www.smoothcontract.com/rss/</link>
    <language>en-gb</language>
    <ttl>40</ttl>
    <description>The latest news from smoothcontract</description>
    
    
        <item>
          <title>Site upgrade to Rails 3.1</title>
          <description>&lt;p&gt;We recently completed a major internal upgrade of the smooth site to the latest version of Rails 3.1. We held off from moving off Rails 2 for some time whilst waiting for the whole ecosystem to catch up with the new version but we eventually started to miss out on some of the cool stuff that&amp;rsquo;s available now.&lt;/p&gt;

&lt;p&gt;Our migration to Rails 3.1 was pretty painful to be honest and took a couple of weeks which seems at odds with the various screencasts and blog posts that suggest it might only take an hour or so. Smooth is a complex app with a large number of third party dependencies so we spent a lot of time finding fixes or workarounds for the libraries that no longer worked.&lt;/p&gt;

&lt;p&gt;We also had to make the move to the new version of RSpec, the Rails testing framework. Our suite of almost 2000 automated tests pretty much died entirely and it took a herculean effort to get those all working again. We&amp;rsquo;re a big fan of tests though and really wouldn&amp;rsquo;t have wanted to perform such a big upgrade without the security of knowing everything is working as it should.&lt;/p&gt;

&lt;p&gt;There were some significant changes we also had to make to cope with the new Rails 3 query style and secure views. A stack of our helper methods needed little tweaks to get them to behave nicely (good thing we have that test coverage). And to top it all off we&amp;rsquo;ve moved from using Jammit to package our production assets (Javascript and CSS) to the new Rails 3 asset pipeline.&lt;/p&gt;

&lt;p&gt;Whats more, we&amp;rsquo;ve also moved to the new Heroku cedar stack for deployment, so our code base moves from Ruby 1.8.7 to 1.9.2 which introduced a few more little fixes here and there. On top of all that we then had a compatibility issue between OpenSSL and Postgres which caused a very rare web server crash during our testing.&lt;/p&gt;

&lt;p&gt;So, not an easy task but we&amp;rsquo;re now really well placed to make use of some of the really cool emerging plugins and libraries available in the Rails world. We&amp;rsquo;re so pleased to have chosen Rails as our development platform and Heroku as our hosting providers and are really excited to continue playing with lots of new stuff!&lt;/p&gt;

&lt;p&gt;Also our development efforts can now return to adding some cool new features &amp;ndash; stay tuned&amp;hellip;&lt;/p&gt;
</description>
          <pubDate>Mon, 12 Sep 2011 00:00:00 GMT</pubDate>
          <guid>http://www.smoothcontract.com/blog/2011/09/12/site-upgrade-to-rails-3-1/</guid>
          <link>http://www.smoothcontract.com/blog/2011/09/12/site-upgrade-to-rails-3-1/</link>
        </item>
    
        <item>
          <title>Recruitment agents, don't you just love em! </title>
          <description>&lt;p&gt;There was a recent post on The Register recently about &lt;a href=&quot;http://www.theregister.co.uk/2011/11/10/your_cv/&quot;&gt;&amp;ldquo;Why your tech CV sucks&amp;rdquo;&lt;/a&gt;. The author goes to great pains to identity the reasons why CVs are weak.  On the whole I would agree with the points he made.  However, one point in his final paragraph piqued my interest &amp;ldquo;&lt;strong&gt;My job is recruitment.&lt;/strong&gt;&amp;rdquo;&lt;/p&gt;

&lt;p&gt;I don&amp;rsquo;t know the author of this blog post, have never dealt with him professionally and so have no idea how good he is at his job.  However, it did get me thinking about the recruitment agents I have dealt with over the years. So with that said here are 6 things you &lt;del&gt;love&lt;/del&gt;hate about recruitment agents.&lt;/p&gt;

&lt;h4&gt;The initial phone call&lt;/h4&gt;

&lt;p&gt;You get a phone call from an agent X from agency Y (they all start to blur once you post your CV online again) saying that they have just come across my details online and start to pitch a role &amp;ndash; some fantastic opportunity.  Usually this fantastic opportunity is a permanent position (which I reject immediately to the shock of the caller) or is located in some obscure location that I can never commute to.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;My rule:&lt;/em&gt; Unless it&amp;rsquo;s a trusted agent (I will have usually forgotten their name by the end of the pitch), ask them to send through a job spec. If it&amp;rsquo;s a genuine enquiry then they will follow up promptly. If they don&amp;rsquo;t, then you haven&amp;rsquo;t wasted any more time.&lt;/p&gt;

&lt;h4&gt;The generic email&lt;/h4&gt;

&lt;p&gt;You get a generic email saying that there is a fantastic opportunity (lots of them about) for a role that that has the most tenuous link to your CV. Obviously it has picked up on a buzzword technology that I used at least 6 years ago.  &lt;em&gt;&lt;strong&gt;Note:&lt;/strong&gt;&lt;/em&gt; This has also started to happen more on LinkedIn (but thats a different story).&lt;/p&gt;

&lt;p&gt;&lt;em&gt;My rule:&lt;/em&gt; Unless the email has been sent to you by an agent you have previously dealt with, DELETE IT.&lt;/p&gt;

&lt;h4&gt;The roles that don&amp;rsquo;t exist&lt;/h4&gt;

&lt;p&gt;This one really bugs me. Agents advertising job roles that don&amp;rsquo;t actually exist. When you apply for the role, you get told that the position has been filled by an internal candidate or has been pulled.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;My rule:&lt;/em&gt; Always ask for a job spec, if one doesn&amp;rsquo;t exist then chances are the job is bogus. A cynical person would say this is just a phishing exercise (yes, that is spelt correctly).&lt;/p&gt;

&lt;h4&gt;References&lt;/h4&gt;

&lt;p&gt;Whilst I have no problem supplying references, I have noticed a trend of agents saying that in order to meet their SLA&amp;rsquo;s they need to get references before submitting my CV. I have 3 issues with this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;I do not want my referees to be hassled for every new agent that I may be in contact with.&lt;/li&gt;
&lt;li&gt;Agents have used this as an opportunity to try and win new business with the referee (shocking, I know).&lt;/li&gt;
&lt;li&gt;To be brutally honest, I don&amp;rsquo;t really care about their SLA&amp;rsquo;s.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;&lt;em&gt;My rule:&lt;/em&gt; I am happy to supply references after I have had an interview and only then. Until I have had the interview I don&amp;rsquo;t even know if I am interested in taking the role, so why bother a hassling a decent referee?&lt;/p&gt;

&lt;h4&gt;Communication&lt;/h4&gt;

&lt;p&gt;Agents are always your new best friend when you are a hot candidate. They can&amp;rsquo;t get enough of you. You get hourly calls from them on your progress. This is great, if you&amp;rsquo;re sitting twiddling your thumbs waiting for that role, but not so good when you are still in the middle of your existing contract. Remember, you still have your current client to think about.  Once you are no longer hot property the agents quickly forget you. Obviously they are busy chasing the next hot property.&lt;/p&gt;

&lt;p&gt;However, if an application has been unsuccessful then at least have the courtesy to tell us. We have been in the game a long time, so rejection is not something we should take personally (remember it&amp;rsquo;s business). A quick phone call or email to say we are unsuccessful is all it takes. For bonus points, you could actually provide us with the client feedback, so that we can see where the gaps in our skills/CVs are.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;My rule:&lt;/em&gt; When I was young and eager, I used to chase agents looking for feedback about a role. These days I let the agents do the work they are paid to do; they can contact me. If they are not bothered to contact me, then I always assume the lead is dead and move on.&lt;/p&gt;

&lt;h4&gt;Blocked numbers&lt;/h4&gt;

&lt;p&gt;And finally I have noticed that more companies have started blocking their number when they call. I must admit I do not fully understand why this is, it could be a company standard or just a more convenient way to get you answer the phone.  Either way it&amp;rsquo;s very annoying.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;My rule:&lt;/em&gt; Very simple rule for this one now. If you ring me from a blocked number, I will send you to voicemail. You have more chance of me ringing you, if you send me the generic email (see above).&lt;/p&gt;

&lt;p&gt;Ok, I will stop now as I am sure I have made my point. This list is not exhaustive, don&amp;rsquo;t get me started on referrals, commission or contracts.&lt;/p&gt;

&lt;p&gt;Granted I have generalised here and don&amp;rsquo;t want to tar all agents with the same brush. On occasions you do find an agent who is the exception to the rule. If you do find one then I would love to hear about them &amp;ndash; let me know?&lt;/p&gt;
</description>
          <pubDate>Tue, 22 Nov 2011 00:00:00 GMT</pubDate>
          <guid>http://www.smoothcontract.com/blog/2011/11/22/recruitment-agents-dont-you-just-love-em/</guid>
          <link>http://www.smoothcontract.com/blog/2011/11/22/recruitment-agents-dont-you-just-love-em/</link>
        </item>
    
        <item>
          <title>VAT rate changes</title>
          <description>&lt;p&gt;Just a quick note to let you know about the forthcoming changes to the VAT rate coming on 4th January next year. VAT used to be set at 17.5 percent seemingly forever but was reduced to 15 percent on 1st December 2008. Then it went back to the original 17.5 percent on 1st January 2010. And now it&amp;rsquo;s going to be increased to 20 percent on 4th January 2011.&lt;/p&gt;

&lt;p&gt;I won&amp;rsquo;t claim to understand the economic drivers behind all this tinkering, but we do have it covered in smooth. When you raise an invoice smooth will automatically select the appropriate VAT rate according to the invoice date &amp;ndash; which is in line with the billing recommendations from HMRC.&lt;/p&gt;

&lt;p&gt;The official &lt;a href=&quot;http://www.hmrc.gov.uk/vat/forms-rates/rates/rate-changes.htm&quot;&gt;HRMC guidance&lt;/a&gt; to cover this is in the usual dry unfathomable government style but you won&amp;rsquo;t need to worry about that &amp;ndash; smooth will take care of it for you.&lt;/p&gt;
</description>
          <pubDate>Mon, 06 Dec 2010 00:00:00 GMT</pubDate>
          <guid>http://www.smoothcontract.com/blog/2010/12/06/vat-rate-changes/</guid>
          <link>http://www.smoothcontract.com/blog/2010/12/06/vat-rate-changes/</link>
        </item>
    
        <item>
          <title>New Google maps plugin </title>
          <description>&lt;p&gt;During development of our recent mileage calculator feature we looked at various jQuery plugins to wrap the Google maps API. We wanted a plugin that used the new version 3 API and covered routing functionality. We also wanted a proper implementation of asynchronous communication with Google rather than relying on pseudo-synchronous time delays.&lt;/p&gt;

&lt;p&gt;None of the existing plugins we looked at addressed these requirements whilst also being unobtrusive and lightweight so we wrote our own instead. We think we&amp;rsquo;ve nailed the implementation pretty well so have shared the plugin on our github repository for anyone that wants to take a peek.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://s3.amazonaws.com/smoothcontract/assets/mileage calculation/original.png&quot; class=&quot;image&quot; title=&quot;Checkout the feature for real to see a proper map&quot;&gt;&lt;img src=&quot;http://s3.amazonaws.com/smoothcontract/assets/mileage calculation/large.png&quot; class=&quot;illustration&quot;/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It is pretty much designed to work with the mileage calculator for smooth, so sets a few defaults that are UK specific. It would need a few tweaks to work with other countries &amp;ndash; feel free to fork for your own needs.&lt;/p&gt;

&lt;p&gt;We&amp;rsquo;ve included a full example showing how to use the plugin for distance calculation over in our &lt;a href=&quot;https://github.com/smoothcontract/jquery-maps&quot;&gt;Github repository&lt;/a&gt;. Enjoy.&lt;/p&gt;
</description>
          <pubDate>Thu, 03 Mar 2011 00:00:00 GMT</pubDate>
          <guid>http://www.smoothcontract.com/blog/2011/03/03/new-google-maps-plugin/</guid>
          <link>http://www.smoothcontract.com/blog/2011/03/03/new-google-maps-plugin/</link>
        </item>
    
        <item>
          <title>jQuery Gritter plugin</title>
          <description>&lt;p&gt;We&amp;rsquo;ve just added a fork of the jQuery Gritter plugin by &lt;a href=&quot;http://boedesign.com/blog/2009/07/11/growl-for-jquery-gritter/&quot;&gt;jboesch&lt;/a&gt; to &lt;a href=&quot;http://github.com/smoothcontract/Gritter&quot;&gt;github&lt;/a&gt; with a few changes to the original version:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dropped IE6 support&lt;/li&gt;
&lt;li&gt;Moved close button to top right corner&lt;/li&gt;
&lt;li&gt;Restyled window background using CSS3 instead of images&lt;/li&gt;
&lt;li&gt;Changed callback events to determine whether close button was clicked&lt;/li&gt;
&lt;li&gt;Added additional option to allow hiding of close button&lt;/li&gt;
&lt;/ul&gt;


&lt;h4&gt;Dropped IE6 support&lt;/h4&gt;

&lt;p&gt;It seems IE6 has almost had it’s day now so we’ve dropped support for this dog of a browser. The original gritter plugin has some additional CSS hacks to work with this browser but we frankly didn’t think it was worth bothering so removed ~20 lines of CSS. In addition, this allows the CSS to be validated correctly.&lt;/p&gt;

&lt;h4&gt;Moved close button&lt;/h4&gt;

&lt;p&gt;We moved the close button to the top right corner (previously it was in the top left) to avoid it clashing with the image in the notification window. Purely subjective, but we think it looks better.&lt;/p&gt;

&lt;h4&gt;Restyled using CSS3&lt;/h4&gt;

&lt;p&gt;The original gritter plugin looks gorgeous but relies on large images to provide the notification background. We found a problem with this on slow connections as the gritter notification would be shown and disappear before the background image had time to load leading to white text on a white background!&lt;/p&gt;

&lt;p&gt;On newer browsers with early CSS3 support (Firefox, Safari and Chrome) we managed to replicate the exact look of the original using almost pure CSS (only one image is used for the close button). On IE the notification window is still functional but looks a bit basic (an opaque rectangle) &amp;ndash; we can live with that though.&lt;/p&gt;

&lt;h4&gt;Callback changes&lt;/h4&gt;

&lt;p&gt;The original gritter plugin fires a before_close callback when the user manually clicks the close button or the notification times out and fades automatically. Unfortunately there’s no way to tell which of those events fired the callback so we changed this to only fire when the close button is clicked.&lt;/p&gt;

&lt;h4&gt;Hiding close button&lt;/h4&gt;

&lt;p&gt;In some cases we wanted to display the notification without allowing the user to close the window (primarily because we don’t want to allow a notice to be ignored as described above) so added an option to hide the close button as shown in this example:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$.gritter.add({
    title: ‘Look, no close button’,
    text: ‘This notification has no close button’,
    hide_close: true
});
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;We&amp;rsquo;ve been using this modified version of the plugin for a while now in the smoothcontract application but thought it would be nice to share. Take a look at our &lt;a href=&quot;http://demo.smoothcontract.com&quot;&gt;demo site&lt;/a&gt; or &lt;a href=&quot;https://secure.smoothcontract.com/signup&quot;&gt;sign up&lt;/a&gt; to see it in action.&lt;/p&gt;
</description>
          <pubDate>Tue, 01 Jun 2010 00:00:00 GMT</pubDate>
          <guid>http://www.smoothcontract.com/blog/2010/06/01/jquery-gritter-plugin/</guid>
          <link>http://www.smoothcontract.com/blog/2010/06/01/jquery-gritter-plugin/</link>
        </item>
    
        <item>
          <title>IE7 - second worst browser ever?</title>
          <description>&lt;p&gt;Well, those are several hours of my life that I won&amp;#8217;t get back. I&amp;#8217;ve been working to resolve a tricky bug with IE7 reporting a warning:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This page contains both secure and nonsecure items. Do you want to display the nonsecure items?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is shown in a modal dialog on nearly every page so naturally gets a bit annoying. I&amp;#8217;m not entirely sure what security hole this is meant to prevent and it can be disabled but it&amp;#8217;s better to prevent the message in the first place if possible. Smoothcontract runs as a secure site so everything should be accessed via &lt;span class=&quot;caps&quot;&gt;HTTPS&lt;/span&gt; &amp;#8211; the message implies that something on the page is using &lt;span class=&quot;caps&quot;&gt;HTTP&lt;/span&gt; so needs fixing.&lt;/p&gt;
&lt;p&gt;Cue a lengthy period examining &lt;span class=&quot;caps&quot;&gt;HTML&lt;/span&gt; source, &lt;a href=&quot;http://www.wireshark.org&quot;&gt;Wireshark&lt;/a&gt; traffic dumps, server logs etc. I even tried using the &lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?familyid=e59c3964-672d-4511-bb3e-2d5e1db91038&amp;amp;displaylang=en&quot;&gt;Microsoft Developer Toolbar&lt;/a&gt; which was a touch naive. It does display a nice treeview side bar whilst you&amp;#8217;re watching those modal dialogs though and slows IE down a bit so they&amp;#8217;re easier to click on.&lt;/p&gt;
&lt;p&gt;All of this came to nothing so I resorted to a less technical approach. Not every page showed this message so I tried each to establish some patterns and the only difference comes down to a few links on some pages with some custom &lt;span class=&quot;caps&quot;&gt;CSS&lt;/span&gt; to style them as buttons. So, after extensive analysis I can now present the offending nonsecure item:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#toolbar a {
  background-image: url(&quot;data:image/png;base64,...&quot;);
}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Granted it looks a bit scary but that&amp;#8217;s a 1 pixel wide &lt;span class=&quot;caps&quot;&gt;PNG&lt;/span&gt; image used for a gradient effect. It&amp;#8217;s so small that the overhead in making an &lt;span class=&quot;caps&quot;&gt;HTTP&lt;/span&gt; request exceeds the size of the image so it&amp;#8217;s been encoded instead and used inline within the &lt;span class=&quot;caps&quot;&gt;CSS&lt;/span&gt; to speed things up a little.&lt;/p&gt;
&lt;p&gt;That&amp;#8217;s a common enough technique that works great on IE8 and proper browsers but is not supported on IE7. I assumed that on IE7 it would simply not show the image and so gracefully degrade the nice gradient. But no.&lt;/p&gt;
&lt;p&gt;IE7 thinks I&amp;#8217;m referring to some new non-secure protocol or perhaps a host named &amp;#8220;data&amp;#8221; and triggers its ever-so-helpful security warning.&lt;/p&gt;
&lt;p&gt;The remedy is quite simple &amp;#8211; I&amp;#8217;ve added an override for IE7 to remove the image:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;.ie7 #toolbar a {
  background-image: none;
}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Hopefully this post might help somebody one day resolve a similar issue as I couldn&amp;#8217;t find any other information about this. In the meantime, now that the campaign to rid the world of IE6 seems to be succeeding my vote is for the beginning of the end for its only slightly less evil successor.&lt;/p&gt;</description>
          <pubDate>Thu, 27 May 2010 00:00:00 GMT</pubDate>
          <guid>http://www.smoothcontract.com/blog/2010/05/27/ie7-second-worst-browser-ever/</guid>
          <link>http://www.smoothcontract.com/blog/2010/05/27/ie7-second-worst-browser-ever/</link>
        </item>
    
        <item>
          <title>Heroku</title>
          <description>&lt;p&gt;We have decided to use &lt;a href=&quot;http://www.heroku.com&quot;&gt;Heroku&lt;/a&gt; as our hosting platform. One of their key messages is &amp;#8220;It&amp;#8217;s fast, it&amp;#8217;s easy, and it just works.&amp;#8221;, and they are not joking, we can (in theory) deploy a new version with a single git command.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$git push heroku master&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;How cool is that?&lt;/p&gt;
&lt;p&gt;Now we have started to use Heroku we have found it actually makes development fun again&amp;#8230;&lt;/p&gt;</description>
          <pubDate>Thu, 20 Aug 2009 00:00:00 GMT</pubDate>
          <guid>http://www.smoothcontract.com/blog/2009/08/20/heroku/</guid>
          <link>http://www.smoothcontract.com/blog/2009/08/20/heroku/</link>
        </item>
    
        <item>
          <title>Starting up</title>
          <description>&lt;p&gt;One of the things that we find hard about running our company is trying to keep on top of the paperwork. So much so that we have decided to create our own online administration system.  As it turns out this appears to be a common problem amongst UK contractors, so we have decided to produce it as a new service.&lt;/p&gt;
&lt;p&gt;We are going to name it smoothcontract because we want to make company administration simple for UK contractors.&lt;/p&gt;
&lt;p&gt;Check back for updates on our progress.&lt;/p&gt;</description>
          <pubDate>Thu, 23 Jul 2009 00:00:00 GMT</pubDate>
          <guid>http://www.smoothcontract.com/blog/2009/07/23/starting-up/</guid>
          <link>http://www.smoothcontract.com/blog/2009/07/23/starting-up/</link>
        </item>
    
    
  </channel>
</rss>
