Bogdan Gusiev's blog

How to make good software for people

Something is wrong with Single Reponsibility Principle
12 Jan 2016

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?

srp criticism tools

Choosing a Templating Language
06 Feb 2015

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.

templates frontend ruby javascript

My Talk from RubyC conference
25 Jul 2014

Here is a video from the excellent Rubyc conference. Hope you will find this video funny as well: All about parsers in ruby

slides video conference parsers

Took part in a podcast with Alexey Vasiliev
27 May 2014

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:

podcast opensource contribution datagrid ajaxsubmit

Minimalistic State Machine: Less is More
01 Apr 2014

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…

rails validation statemachine criticism

Datagrid slides from Ruby Meditation 3
04 Nov 2013

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.

slides datagrid gem rails activerecord report

Support validation through ajax in Rails 4.x
24 May 2013

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.

rails contribution javascript ajax validation

Attach git commits to pivotal stories
08 Apr 2013

I heard about 10 different ways to organize work flow around pivotaltracker and git and about 5 gems to support that process. All of them seems abusing for me: the outcome of pivotal/git integration is a git commit attached to pivotal story and the rest of conventions like naming branches or merge policy doesn’t make any sense in long time perspective and is just a waste of time in fact.

That’s why I’ve decided to make the most trivial integration that covers this idea and don’t provide additional complexity: Meet git-storyid gem - the only one git/pivotaltracker integration that saves your time.

git commit gem pivotaltracker

Background Jobs Frameworks: Resque vs DelayedJob
08 Apr 2013

Here are my slides from Ruby Meditation meet-up in Kiev last weekend. Covers some internals and some features of DelayedJob and Resque.

resque delayedjob slides

Where to work as a rubyist in Ukraine
15 Feb 2013

Last year I had a lot of changes in my career: I had to switch jobs twice while planning to do it only once. Most of the projects I was working on before was about building time wasting features to raise more money for more time wasting features. I wanted to find the right project for myself: A project that brings something good to people. Ruby is extremely good for startups, but easy investments is a decease for most of them in Ukraine. In September I met Allan Grant, CEO of Curebit. Curebit has a great team of sales and marketing people but was lacking great engineers. Allan was the first business guy in my life that was more focused on building product than raising money — build features endless cycle. So we started to work together.

job work ycombinator silicon valley