Bogdan Gusiev's blog

How to make good software for people


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. http://x.gusiev.com/background-jobs-frameworks

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


Rails Contribution slides from ruby meetup in Kiev
11 Dec 2012

Here are slides I’ve shown on ruby meetup in Kiev. It’s all about my expirience with power hacking rails internals. Give some inside on how ActiveSupport Callbacks and Rails Router are working.

rails contribution slides


Smart Javascript Initialization Strategy
08 Oct 2012

The JavaScript initialization process is a pain in the ass since dynamic HTML and AJAX became popular. We need to take care all the time about what we need to initialize after every change in DOM. Thanks to jQuery#live and jQuery#on: We have a not-so-right but still very effective solution. It allows us to fix the problem with initialization of typical events. But initialization is not always about binding DOM events. In more advanced cases, it could be wrapping widget class over an element or a custom jQuery method call like a date-picker.

javascript initialization class


Strict validation is a main stream
17 Sep 2012

It’s nice to see that strict validation feature that I’ve done almost a year ago is finally getting popular. Spend a moment and understand what it does by Rails documentation.

rails contribution validation


Full text search - Solr(Sunspot) vs PostgreSQL
16 Aug 2012

This is short notes about my experience with full text search based on PostgreSQL and Solr. Solr was primary used with a help of Sunspot gem that was definitely a good idea, but unfortunately caused some drawbacks. PostgreSQL provides full text search out of the box and to my opinion doesn’t need any additional ruby specific tools other than ORM.

solr sunspot postgresql fulltext search


How many clicks do you need to debug ajax request?
16 Jun 2012

Here I am gonna use Chrome browser as an example:

  1. Open context menu
  2. Click inspect element.
  3. Click “Network” tab
  4. Spawn again an ajax request (at least one click. Sometimes more)
  5. Click on failed request at Network tab
  6. Click “Preview” or “Response” subtab

javascript debug ajax efficiency


Assumption Driven Approach
06 Jun 2012

This post shows some examples of how things can go wrong way because of people actions based on assumptions but not on facts. It is more conceptual than practical, so be patient and don’t blame my grammar mistakes too much.

assumption ruby performance fact


Benchmark your performance patches
01 May 2012

After a dozen performance patches to many gems want to share some practical experience I gain. Tools I’ve picked up was perftools.rb and ruby built-in benchmark library. They are fit well for cases when optimization stays at Ruby level and doesn’t require to fix something in native extensions or dig into IO operations.

gem contribution performance callgraph patch


Web Forms 2.0: Submit with Ajax and Client Side Validation
01 Mar 2012

Web 2.0 world force us to build Forms in a new level of quality. AJAX and dynamic HTML changes a way how forms should work internally. Let’s call it Forms 2.0. And of course this facts bring a lot of complexity every time we deal with forms. Sometimes such form makes a real problem comparing to regular Web 1.0 form. Here will be a talk how to make Forms 2.0 as simple as Forms 1.0.

javascript ajax forms validation html jquery