"Naming Things" Solution Naming things in software is really a big deal. It gets harder and harder over time when a code base gets larger. I’ve never encountered an article that would try to address the issue. So here, I will try to define good name criteria as well as naming strategies that appeared to be useful in my experience.

Guiding Software Development Principles It is becoming popular to talk about software development principles from time to time. The new major concepts appear and die due to the fact that most of them are designed to be perfect but they are not. If you would stay in IT long enough, you encounter articles and talks where people discovered an amazing concept “X” that solved all their development problems and brought their team to inevitable success. Unfortunately that “permanent success” is usually temporary or even a self-deception. The truth is: there is no silver bullets in software development just like in any other engineering process. Engineering of world class products requires precise resources control, trade offs and balance between easy and complex, fast and slow, and beautiful and ugly. Here, I will try to explain my guiding software development principles as well as the why-s.

Something is wrong with Single Reponsibility Principle I’ve never been a fan of Single Responsibility Principle aka SRP If any physical thing I used has multiple responsibilities, why would software be built from SRP things?

Choosing a Templating Language Whenever you are serious about choosing the frontend template engine to generate HTML, here is some advice how you can make your choice easier and more effective. There are too many template languages right now, but there are only a few main criteria how you can limit your selection to 2-3 of them before getting into details.

Took part in a podcast with Alexey Vasiliev Last weekend I took part in the a podcast with Alexey Vasiliev. We talked about my path in Open Source, Rails and IT industry in ukraine. It is all in Russian. You can listen it here:

http://www.rwpod.com/posts/2014/05/24/cafe-002.html

Minimalistic State Machine: Less is More I have tried a bunch of ActiveRecord’s state machine gems. Their functionality is very close to each other. It allows to validate a state transition and reinvent ruby programming language to define transition methods. The fact that all of them produces custom API to define a ruby method doesn’t look right…

Datagrid slides from Ruby Meditation 3 Here are my slides about Datagrid gem from Ruby Meditation Conference last weekend. Datagrid is a gem I’ve released almost 3 years ago. It is focused on table data representation and now allowes a full power flexibility to be called a Framework. http://github.com/bogdan/datagrid

Support validation through ajax in Rails 4.x I have a constant feeling that in a modern web every web form should be submitted with AJAX not the old retro way with POST request. This is better for numerous reasons. At first, it gives better user experience At second, AJAX is faster than regular request. At the end, it doesn’t require a work to redraw the page with it’s previous state if validation fails. Currently I am trying to make rails app support this out of the box. And here is first small step to this goal: This patch allows a complete validation though ajax using active model validators. This is a live demo of what it allows to do. If you feel especially interested in this feature, say your +1 here or on github.