01caa77a1f122a1371fed292cab37c72

Multi-model searching using Elasticsearch vol. 1

For one of our projects I had to do some complex searching. To cut a long story short, admin users wanted a way to quickly search and assign one record of two models to another record. The client wanted searching to happen with only one text input. After considering the complexity of searching by every possible column, and the importance of speed, I decided to use Elasticsearch. This was my first experience with this search engine and I would like to share my ideas about how to implement it and organise the code. There is a lot of stuff to cover, so I’ll split it into 3 parts: installing and indexing data, simple searching by multiple models and, finally, making searching "more intelligent". Let’s see now how to get started with Elasticsearch.

Continue reading
Afd10449c8a73947a45c76c7ff5c2ba5

8 random Ionic tips

Ionic is a leading hybrid mobile app development framework. With Ionic 2 still in its infancy and multitude of production apps that will need maintenance, the current version is not going away any time soon. I've been developing Ionic apps for about a year now. This blogpost presents 8 random tips which I wish I had known when I started to play with it.

Continue reading
5122e54437a4b89911623dfbe9a2f3c4

When involvement rhymes with enjoyment

“If you do what you love, you'll never work a day in your life.”

I’m sure you've heard this quote more than once. This popular saying, from Steve Jobs (or Albert Einstein or Marc Anthony depending on which 'reliable' internet source you use), illustrates how important it is to choose the right thing to do in your life.

If you make the right choice, then your life will be paradise. You will spend every single day doing something you love. You will greet every single day with a smile. If you choose wrongly, then every single day you will struggle to do things you don’t like just to earn money. It will be hell on earth!

It’s like being in a relationship. If you find your perfect match - your soulmate, the love of your life - then you will always be happy, and all your problems will disappear. You will understand each other without words, and there will be no arguments, and no silent treatment.

Bullshit!

Continue reading
Afd10449c8a73947a45c76c7ff5c2ba5

Instant code updates for Cordova iOS apps

One of the many advantages of a hybrid approach to mobile apps development is instant code updates. In this article, I will guide you through setting up a basic updates mechanism from scratch. With little adjustment it will work for every Cordova (PhoneGap, Ionic) iOS project. You can follow the steps or download a complete github repo to tinker with it yourself. Some basic Objective-C knowledge will be necessary to follow the guide.

Continue reading
01caa77a1f122a1371fed292cab37c72

Search with autocomplete using Twitter Typeahead

Adding simple, easy to customize and reliable autocomplete functionality has always been one of the topics that I thought wasn't very clear for Rails applications. During my last project, I finally decided that I would do some serious research and find one solution that I could use later without hesitation. And here it is: my choice is to use Twitter typeahead.js library.

Continue reading
Afd10449c8a73947a45c76c7ff5c2ba5

Intro to digital nomading

My favourite definition of the term digital nomad is 'Someone who flies across half the globe to look for good wifi in Starbucks'.

Working remotely comes with a lot of perks. Deploying to production in your pyjamas or fixing a critical bug while sipping coffee in your favourite bar may sound appealing, however, having worked more than a year remotely, I still had the feeling that I wasn't making the most of it. Recently I decided to give something more extreme a try. Continue working while travelling in Thailand? Why not?

Continue reading
11ec30dedeb7889af512461ba7ce6a45

Readline Editor

Last weekend I watched a really enjoyable talk about the Readline editor by George Brocklehurst. It interested me enough to do some extra investigation. This article shares the results of my little research.

Continue reading
01caa77a1f122a1371fed292cab37c72

The most important lesson

Before working for Ragnarson I was a Rails developer for nearly 2 years. When I finally became one of the "Perfect Programmers", I considered myself a guy who knew enough stuff to take another step forward. I felt ready for new challenges. But it quickly turned out that there was one important skill I was missing which was not related to any technical knowledge. In simple terms, I can say now that I wasn't 100% professional about my work. But what exactly does that mean?

Continue reading
40716cc1589577b8eb672d97953c264f

Problems with typical Rails controllers and before actions

One of the most common practices when writing controllers in Rails is using before_actions to keep them DRY. Sure, repeating code is a bad practice and leads to maintenance nightmare, but what happens when the readability drastically deteriorates after making the code DRY to the max? Is it still worth it? Let's see how it applies to controllers, what are the consequences and possible solutions

Continue reading
11ec30dedeb7889af512461ba7ce6a45

How we built Ruby PaaS - Part II: Gem and web interface

This is the second post of the series on our blog, in which I'll present to you the part of our infrastructure that is visible to the users. Here you can find links to past and, when we publish them, future posts:

Continue reading