Lots of our people have lots of opinions. Here are just a few of them
ThoughtWorks embraces the individuality of the people in the organization and hence the opinions expressed in the blogs may contradict each other and also may not represent the opinions of ThoughtWorks.
This builds on Trunk, CI, Builds, Environments, and Integration from six months ago, and is mostly graphical in an attempt to correlate environment names branching models and CI infrastructure available for automated builds and test runs of various types. Of course, the build isn’t “just compile” anymore, it is all possible scriptable build and functional test steps.
Slower release cadences first, and fastest last.
Shown here with pull request branches and release branches. Otherwise, trunk (master) is the most important branch. The goal for developers & QA automators aim to get their code integrated (merged) there as quickly…
I came upon this awesome TED talk on “Why You Should Make Useless Things” by Simone Giertz thanks to Mikael Pawlo. The talk really resonated with me and articulated thoughts I have had for a long time.
I learned how to program BASIC from a book 37 years ago, one year before I actually saw and touched a real computer. A few months later I got my first computer, a Commodore VIC20 The first year I had it I didn’t have the tape recorder that allowed me to save my programs. So for a year whatever I did…
The recent tragedy of the Windrush Scandal has unsurprisingly prompted calls for identity cards to be introduced in the UK. The UK, like most English speaking countries, has no existing identity card scheme. This is largely an historical accident. When the Code Napoleon was introduced, it was based on a complete census and included identification numbers for every citizen. The Code Napoleon, and these identification numbers, is the basis for much of the legal code across Europe. From there, id cards have been, through colonialism, exported to many countries around the world. But not to the UK, nor its former…
Today I ran into this error while trying to update Homebrew.
I thought it might be an issue with Homebrew itself, but running
brew doctor seemed to indicate that everything was working correctly. I know Homebrew uses a git repo (which is pretty obvious from the error message) so I thought that the git repo or git itself might be the problem. You can navigate to the repo by doing
cd $(brew --repo).
After plenty of trail and error…
If you’ve built a service with an API, that service is under continuous development and the service has consumers then you’re going to need to version that API. You’ll want to build new features with the freedom to change existing behaviour, and you’re going to want to track and retire really old versions.
But how do you version a modern RESTful HTTP API?
Ruby allows you to write code like this:
This is called the Safe Navigation Operator and was introduced in Ruby 2.3 - it’s similar to the
try method in Rails, but it’s faster.
Today I learnt that this can be combined with other operators, for example:
It definitely looks strange to me, but it’s useful in certain contexts.
An interesting bit of history is that many…
In any Rails application you can see which rake tasks are available - either by running
rake -AT (or
rake --all --tasks) to see all tasks, or
rake -T (or
rake --tasks) to see all tasks with descriptions.
However, today I learnt you can also see where a rake task is defined by running
rake -W (or
rake --where). This is useful if a gem is adding a rake task and you want to look at the source.
All of these commands also take an optional pattern to filter the results.…