11ec30dedeb7889af512461ba7ce6a45

How I work on new features

tl;dr Collect feedback from your customers; always plan what to do next; think about the user interface before you start writing code; discuss with your team your current work often; test what you have done.

Many developers encounter a variety of difficulties when they have to work on new features. From things like: "how exactly should I start?" to more complex issues, for example, in the middle of a development, they notice that everything they have done is wrong and that it is necessary to start over. Therefore, I have decided to share information about my workflow and how I usually get things done.

Continue reading
6b844a73471cf2b060cb54d0b2f16161

Lotus performance tested against Sinatra

Some time ago I heard about Lotus. A fresh Ruby framework for building web applications. It is created from stand-alone parts which are shipped as separated gems. This means that I am able to pick only the essential components for my project. The source code can be found on github.

Continue reading
6b844a73471cf2b060cb54d0b2f16161

The difference between back-references and global variables in Ruby regular expressions

Regular expressions are widely used in the daily work of developers. For example, I can use the gsub method when I want to replace all the vowels in a given string with the underscore symbol:

"here will be dragons".gsub(/([aeiouy])/, "_")
=> "h_r_ w_ll b_ dr_g_ns"

The question is how to wrap each matched vowel with the underscore. The first solution is to use the back-reference in a replacement argument:

Continue reading
11ec30dedeb7889af512461ba7ce6a45

5 functions of the Console object you didn’t know

Not everybody knows that apart from the simplest console.log() used for logging, the Console object has a couple of other equally useful function. I have chosen and described the 5 most interesting but unpopular methods, which can be successfully utilized in everyday work.

Continue reading
11ec30dedeb7889af512461ba7ce6a45

How does our CSS architecture look like after getting rid of Bootstrap

In summer, several well-known companies such as GitHub, CodePen or Buffer have published blog posts about how the CSS architecture is designed in their applications.

Due to the fact that in September we finished transferring Shelly Cloud from Twitter Bootstrap (from version 2.3.2) to the styles developed by us and based on the Inuit framework, I wanted to share the experience that we've gained doing this.

Continue reading
11ec30dedeb7889af512461ba7ce6a45

How to create a "Follow Us" pop-up box using the ngAnimate library

The following article has been prepared based on AngularJS and ngAnimate version 1.2.12, so the provided code examples may not work properly with older or newer versions of these libraries.

Continue reading
Ebdeb6de770c069ff6f2b37780d2a340

Managing assets with Rails Assets

Up until recently, managing external CSS and JavaScript dependencies in Rails apps was a big pain. Solutions varied from just checking the latest downloaded version of a library into source control and forgetting about it to using Bower to manage dependencies.

Take a look at your vendor/assets directory. How old are the libraries there? How often do you remember to check for new versions? There could be some serious bugs discovered and fixed, maybe even security issues resolved.

Continue reading
D87b50f7d7d0b0314dc4714a247c2022

Synchronize your settings with Dropbox and Mackup

Most of the developers are creatures of habit. Once they get comfortable with an editor, a set of shortcuts or a terminal setup they tend to stick to it for a long time. In this post I will show how to share and keep application configs and so called dotfiles in sync across machines. It's very useful when you have a desktop at the office and a laptop at home.

To accomplish that we are going to use a simple tool called mackup and Dropbox. Mackup keeps your application settings in sync using Dropbox as a storage. It can be installed using homebrew or downloaded as a script, we will do the latter because we want to modify this script later on.

Continue reading
1bcc0f22f6de3bb0942c9a187e1d1ac1

Generating PDFs with custom fonts using wkhtmltopdf

Generating PDF files with custom fonts can be tricky. In this tutorial we will create a simple Rails app and tackle this problem with two tools: wicked_pdf and wkhtmltopdf.

Continue reading
Ebdeb6de770c069ff6f2b37780d2a340

Hide your staging environment from Google

If you deploy your application to a staging environment, chances are that it will eventually get picked up by Google and other search engines. This is undesired for many reasons, from other people discovering your unfinished work to bad SEO from duplicate content.

Continue reading