Ruby 2.5: The Christmas Present
Let's talk a wee bit about Ruby 2.5. This starts a week of looking at upcoming features in the language. Here at FreeAgent Towers, we use a lot of Ruby. The application itself is written in Rails, and our website is static HTML, CSS and JS, but is generated with Middleman. We love it, and so we follow its development closely. One of the exciting points in the Ruby year… Continue reading
FreeAgent Testermonials: Getting rid of ‘QA’ and why what we call things matters
In this Testermonial post, FreeAgent's resident test engineer describes why we've rebranded 'QA' and why what we call things matters. As mentioned in my previous Testermonial, my only gripe when starting at FreeAgent — and a very minor one at that — was the rather entrenched use of the term quality assurance or QA in the development and release process to describe the pre-release testing phase which occurs before deploying… Continue reading
FreeAgent Testermonials: Making user stories valuable with exit criteria
In this post, FreeAgent's resident test engineer explores the use of exit criteria in user stories, the value they provide and how to write them (example included). Table of contents Background and prologue FreeAgent's first test engineer Testing as an embedded practice Testermonials Exit criteria in user stories Introducing exit criteria Exit criteria wins Writing valuable exit criteria An example user story with exit criteria FreeAgent’s first test engineer I… Continue reading
Schrodinger’s Ruby array
When can a single array instance in Ruby both be empty and contain items simultaneously? Read on, and find out! Continue reading
React Europe 2015
We love React here at FreeAgent. Our team has been using it heavily to build the mobile app, with very few issues. Because it’s so easy to use and helps with maintenance of complex UIs, we’ve also started migrating parts of the desktop app to it, such as inline bank explanations. At the beginning of July, a few of us went to Paris to attend the first React Europe conference.… Continue reading
Brighton Ruby 2015
Here at FreeAgent Towers we've always been proud of the fact that Scotland held the UK's largest Ruby conference every year since 2008 (back when it was called Scotland on Rails). The SRC organisers have hung up their conference boots for 2015 but fortunately there are other regional Ruby conferences getting off the ground. One of these is Brighton Ruby. A couple of FreeAgents were at the inaugural Brighton Ruby… Continue reading
Complexity will bite you in production
Here at FreeAgent we deploy updates to our app several times a day, and each deployment used to take between 10 and 15 minutes. This meant that if we introduced a severe bug into production and we needed to rollback, it would take us at least 10 minutes. This situation was not ideal, so we've been working to improve it. A quick look at our deployment process indicated that the… Continue reading
Upgrading to Ruby 2.1 (and other fun with YAML and complex regexes)
When we first launched FreeAgent, it ran on Ruby 1.8.6 MRI (and Rails 1.2!). We graduated to 1.8.7 REE when that became popular, then in the summer of 2011 we upgraded to Ruby 1.9.3. We've been running on that version (1.9.3-p194 to be specific) ever since. It has served us well, but performance is not one of Ruby 1.9.3's strong points and we've seen our application server response time gradually… Continue reading
Updated – API 1.0 blackout dates and EOL
We uncovered an issue during our previous blackout dates. We have addressed this and will continue with a further series of API 1.0 blackouts this week. On the following dates requests to API 1.0 will be rejected: 28 January 2014 08:00 GMT - 29 January 2014 08:00 GMT 30 January 2014 08:00 GMT - 31 January 2014 08:00 GMT Assuming no issues are identified during these blackouts, the official end… Continue reading
Upcoming API 1.0 blackout dates and EOL
Back in October last year I wrote about sunsetting our legacy API at the end of 2013. We're now into the final stage of this decomissioning process. To make this as pain-free as possible, we're going to be running a series of API 1.0 blackouts over the next week. This means that on the following dates requests to API 1.0 will be rejected: 09 January 2014 14:00-16:00 GMT 13 January… Continue reading