Last week Proc#<< and Proc#>> got merged into Ruby 2.6. This opens the door for function composition. Here’s my opinion as to why this is a great leap forward for Ruby and what needs to improve.
Composition vs. inheritanceRuby is an object-oriented language (among others), meaning it has the...
7 min read
Best image uploader for Rails — Revisited
Three years ago I wrote about how to choose the right uploader gem for your project. Since the time the original article has been published, all mentioned libraries got updated, one got deprecated, and two new libraries have appeared. I feel it's time to revisit this topic.
Why do we use uploader...
11 min read
Licensing software
Recently I've started working on a small Ruby library. While I was sketching the architecture of it to I was listening to some lectures from Richard M. Stallman which got me thinking about how I should license my library.
Note: I'm by no means a legal expert. Everything written here is what I've...
7 min read
Do you really need WebSockets?
Over the years I've had this conversation a couple of times. This post will explain why we use WebSockets, how they can be used, what alternatives exist and when to use them.
Every time I worked on a project where we had to implement any kind of a "real-time" component, usually a chat or an...
13 min read
RabbitMQ is more than a Sidekiq replacement
I've had gripes with Sidekiq because of which I switched to RabbitMQ. Here are my thoughts and experiences after a year of using it in production.
I got inspired to write this post by the overwhelming response I received for my talk at the local Ruby user group.
Why do we need Sidekiq or...
8 min read
Supercharging services architectures with RabbitMQ
When I first started using RabbitMQ I didn't understand its usefulness beyond a job queue, but it's helped me to grow and manage services architectures without headaches.
Services ArchitectureIn web development, a services architecture describes a single application that consists of multiple,...
6 min read
Tips to improve your tests
Peoples' test suites often get out of hand. Having thousands of tests that run for hours on some CI should be a thing of the past. There doesn't exist code that's too hard to test or code that can't fail. You shouldn't waste your time waiting for your test suite, or chasing some bug you are...
10 min read
Hacking privacy into Facebook’s Messenger in 24 hours
Hackathons are great. When a friend of mine asked me if I wanted to go with him to Copenhacks I had no idea that we would spend 24 hours reverse engineering Facebook's Messenger, let alone win first place.
The journey to CopenhagenWe usually go to a lot of hackathons and coding competitions, but...