Better late, than never: Last November I attended RubyConf for the first time. This year it was in sunny San Diego, which I happen to call home.
“The Software Craftsman: Professionalism, Pragmatism, Pride” by Sandro Mancuso explains the Software Craftsmanship movement and how the motivations behind it’s formation. In essence, the values that developers are encouraged to adopt are professionalism, positive attitude, focus on bringing value through software and continuos improvement. Regarding technical practices, the advice is to follow those of extreme programming, with an emphasis on test-driven development and pair programming. There is a great deal of advice for individual programmers to be proactive about their careers and take control of their skills by continuously working on them.
The REPL is a monthly feature in which I pick my favorite content from around the web, read, but not necessarily published, in the last month. Most of it is technology related.
In her usual eloquent and clear way, Sandi Metz explores the issue with passing
nilaround as a return value from other objects. She shows a few of the pitfalls and type checking necessary to deal with the complexity. I’m looking forward to the promised sequel, billed to explore the Null Object pattern.
Adam Drake explores traditional Unix tools to analyze a large data set. Using
awkhe shows that performance can be much better than that used by a Hadoop cluster. The comparison is based on results from another post, which I could not find, since the link seems to have gone away. Nonetheless, I think the the point is made abundantly: Before jumping on the latest shinny big-data thing, it’s probably a good idea to try the tools already installed in your server.
Tenderlove posted a review with his experience with MiniTest and RSpec. Myron responded to some of the issues addressed. I found both articles good reads. I have used both frameworks extensively and I am personally partial to RSpec. However, I applaud Tenderlove and Myron for their posts and the decorum which they exhibited. It is quite common for online back and forth to descend into personal insults quite fast. This is not the case. In the course of the discussion, I also learned a thing or to about both frameworks.
Sara Mei writes an excellent piece about how senior developers can make the most out of pairing with junior ones, with better results for both developers. I personally don’t pair at work all the time, but I found that most of the content is applicable not only to pairing, but working with junior developers in general. As with most things, you get more out of it if you are dedicated and mindful.
Dependency management in Ruby, is almost universally done with Bundler. It provides an easy way to declare other Ruby dependencies in your application and install them on demand. It manages the explicit dependencies you tell it about in your
Gemfileand also resolves the transitive dependencies, those that you do not specify directly, but are declared by the dependencies themselves.
I am partial to RSpec, but this is a well-reasoned argument for using Minitest.
Great post on using Hashes, OpenStruct, value objects and Hashie and the performance implications. Schneems is clearly opinionated and find fault with a very popular library. In his style, though he actually does something about it. He has a pull-request to change the underlying implementation and started a discussion with the library mantainers.
The title says it all. Well written and explained. Definetly a worthy tool to have availbale when optimizing performance.