Hugo Corbucci's Blog

Showing all posts tagged #tech:


My first Clojure project

Posted on January 28th, 2015

As part of a game I’m working on with a friend from college, we needed a server that could receive and send messages to multiple players taking part of one shared game. My very first idea was to go with Rails as it is my default framework of choice to start a quick web project with. However, Rails is single threaded and, although there are web servers that will allow you to start up multiple instances of your Rails application to serve multiple...


Notes on upgrading from Rails 4.1 to 4.2

Posted on January 21st, 2015

This one is a fairly easy upgrade although it was a little hard to discover all the issues. The main work was around removing Inherited Resources.

Here are more detailed notes:

  • All calls to .deliver become .deliver_now. Including in your tests and stubs. If you had any tests that depended on the code block to be executed, you have to call .deliver_now as method...


Implementation Patterns - by Kent Beck

Posted on January 17th, 2015

Kent Beck provides on this book much lower level details into his programming preferences. He presents and discusses a lot of very common programming options and decisions.
Starting the book with some explanation into why those small decisions are...


Notes on upgrading from Rails 4.0 to 4.1

Posted on January 14th, 2015

This upgrade was fairly easy. The thing that will potentially give you more work are tests around ajax requests.

Here are the few detailed notes:

  • ActiveModels now includes a none scope by default. So if you have some none scope defined, just remove their definitions.
  • The state machine gem has not been updated for Rails 4.1 yet. Rails 4.1 made private the around_validation method in ActiveModels. Since state machine uses this method to inject its own validations, you need an extension for it. I’ve created a file named config/initializers/state_machine.rb and added the following code:
    module StateMachine::Integrations::ActiveModel; public :around_validation; end
  • CFRS is also possible in AJAX request. Because of this AJAX requests are checked against it as well as of Rails 4.1. Therefore, in your tests, get :whatever, :format => ‘js’ has to become xhr :get, :whatever, :format => :js

Notes on upgrading Rails from 3.2 to 4.0

Posted on January 7th, 2015

The upgrade itself is not that hard. The main thing is the change from models protected from mass-assignment to strong parameters in the controllers. The rest is fairly quick and simple.

Here are more detailed notes:

  • Strong parameters: Use the gem in 3.2 and move any attr_accessible out of your models. Ensure you added the config.active_record.whitelist_attributes = false to your...


ThoughtWorks Antology 2 - by various authors

Posted on December 26th, 2014

The [second of the ThoughtWorks anthology]:(http://www.amazon.com/ThoughtWorks-Anthology-Software-Technology-Innovation/dp/1937785009) about 4 years after the [first one]:(http://blog.hugocorbucci.com/thoughtworks-antology-various-authors). Like the previous one, this one balances between very narrow concrete subjects and more abstract ones which makes the book age very differently depending on the chapter.

The following notes detail each chapter:

Chapter 1: Introduction -...


Thoughtworks antology - by various authors

Posted on December 17th, 2014

This anthology marks the first of multiple anthologies that ThoughtWorks published.

Chapter 2: Last Mile - Roy Singham & Michael Robinson

Precursor for Continuous Delivery. Including non functional requirements at start of development cycle.
Doesn’t really provides ideas into how to avoid getting slow to release after growth. More into saying that just not...


The retrospective handbook - a guide to agile teams - by Patrick Kua

Posted on December 14th, 2014

A fairly basic book about retrospectives.

The main goal of the book is not to provide the user with tons of techniques and ideas but rather provide a starting point for teams willing to start having retrospectives.
Pat shares the basis for a retrospective along with his experiences.

Esther Derby's book provides a more structured and longer description about retrospectives but also contains fewer examples and "real" world problems one may face.

The book is a good read for those who are not used to run retrospectives and would like to start doing so in an enterprise environment where the culture is not yet established.