Avoiding the law of the instrument

Many times in our careers as software developers we tend to use the same known tools to do a completely new different project with new constraints. Why do we tend to choose the same tools with small changes over and over again if we have the chance? Abraham Kaplan wrote in 1964 [1]: I call it the law of the instrument, and it may be formulated as follows: Give a small boy a hammer, and he will find that everything he encounters needs pounding.

Useful utilities in Unix for developers

After some years working as a software developer in different companies I have used many programs and utilities in *nix environments that I’d like to share. This is not an exhaustive tutorial about how to get the most of them, many options will be just ignored and I will list only how I use them on a daily basis. Text processing I use these utilities to get info from a log or to quickly change a config file on a server.

Switch in Scala (pattern matching)

Scala has a powerful pattern matching mechanism, that we can think of a kind of “switch” if we come from another programming language, but it’s much more powerful and I’d love to explore some of its options here. A simple switch in Scala would look like this:

a match {
  case 1 => "One"
  case 2 => "Two"
  case _ => "Whatever"

SBT in Scala compile when you save a file

I’ve worked on some Scala projects recently using SBT (Scala Building Tool)and every time I had a change in a file I needed to go to SBT and type compile until I found a simple instruction to keep it compiling for me. Just execute SBT and run the following command: ~ compile Now every time you save a file it will be compiled automatically. In the official documentationyou can see more details.

Set Content Type in RSpec

The last week I had a spec with a request where I needed to specify the content type and Google sensei didn’t help me.

It took me an hour until I finally found it, so let me show here briefly how to do it just in case I have to find it again.