Hire Us

Railsware Blog

on product management, engineering, design, culture and many more...

Ruby: choosing convention for class methods definition

Better Ruby: choosing convention for class methods definition

Ruby doesn’t have procedural module akin to Python or Perl module. Usually, one uses class methods as a typical way to mimic this functionality. Class methods in Ruby are also very handy for supporting instance methods with fabrics and other common-for-class functionality. This is clearly seen in ActiveRecord::Base with dozens …

Quickly Share Git Repository

Taming The Git-Daemon To Quickly Share Git Repository

I was once in a hurry to share GitHub repository with a colleague who didn’t have access to it and we decided to use local git-daemon. However, handling all the little quirks that would make it work took a lot more efforts than just dropping a repository archive via Skype. …

Useful Google Spreadsheet Script Triggers

Useful Google Spreadsheet Script Triggers

In my previous blog post, I’ve provided a brief intro to Google Scripts and with this article, I’d like to share several useful code examples that might come handy. Problem ‘Exceeded maximum execution time’ error message appears while executing a Google Spreadsheet scripts. It usually pops up when a 6 …

iOS Integration Tests With Appium

iOS Integration Tests With Appium

I came from the RoR web development and – as we all know – Rails community loves tests. Personally, I am a fan of acceptance testing and using mostly capybara for it. So, when I shifted to the iOS development, it was essential for me to find some decent acceptance …

Capistrano recipe for checking Travis CI build status

Using Continuous Integration is a must for any mature development process, but in the hurry of delivering to production it’s easy to forget about checking build status before issuing “cap production deploy”. What if while running Capistrano deployment, script will automatically check CI status and prevent us from delivering a …

Intro to Google Scripts

Did you ever know that you can create custom scripts for Google Spreadsheets? The ones that would allow you easily manage your data, i.e. copy it, move between spreadsheets, calculate complex cases and create specific functions for further re-use in other projects. Do almost anything you want… just like in …

Forward Declaration In Your Objective-C Projects

Using Forward Declaration In Your Objective-C Projects

If you’re new to Objective C and iOS development, this topic will explain some important things about Forward Declaration and will help you understand the concept behind it. So, let’s skip the theory and jump right into a small example to see what it’s all about. We’ll create a small …

Globalize Your Configuration

Quite a lot of applications face the problem of storing configuration data, where configuration differs for development, test and production environments. Yaml files is a common way of organising application settings. They help make our configuration clean, as well as allow loading it somewhere to constant or global variable and …

3 Patterns for Storing Tree Structures in the RDBMS

3 Patterns for Storing Tree Structures in the RDBMS

Hello my dear friends. Today, we’ll talk about storing tree structures in the RDBMS (Relational Database Management Systems: e.g. MySQL, PostgreSQL, Oracle, etc.). While this can be an easy topic for some of you (if “Nested Sets” and “Materialized Path” sound familiar, you probably won’t find anything new here), I’ve …