GitHub Sponsorship

GitHub has recently started their Sponsors program and I was lucky to get an invite pretty early on when it’s still in a closed beta phase. I received the invite on August 30th and it took me exactly one month to finally fill out my profile and get it published....

Continue reading...

Introducing dry-schema

Two years ago (!!!) I published a post on discourse.dry-rb.org explaining my plans for dry-validation 1.0.0 and in this post I mentioned that there will be a new gem called dry-schema that dry-validation will use for its schemas. It’s crazy how time flies because I swear I thought it was...

Continue reading...

A quick​ recap and plans for the future

Hi, I’m back! I haven’t written anything on this blog since November 2016, which is sad but it is what it is. I’ve got so much to tell you. A lot happened during this time, and I’ll try to summarize it here and also talk a bit about my plans...

Continue reading...

Duck typing vs type safety in Ruby

Duck typing is one of the virtues of the Ruby language, it adds a lot of flexibility to the code, and allows us to use objects of different type in places where only specific methods are needed. Even though the idea behind duck typing may seem to be straight-forward, it...

Continue reading...

Abstractions and the role of a framework

This is a follow-up to the discussion that was started last week after I published “My time with Rails is up”. Since this article received a lot of feedback, over 1000 comments on various sites and even more tweets, despite my greatest efforts, I didn’t manage to reply to everything....

Continue reading...

My time with Rails is up

Please also read my follow-up about abstractions and the role of a framework Last year I made a decision that I won’t be using Rails anymore, nor I will support Rails in gems that I maintain. Furthermore, I will do my best to never have to work with Rails again at...

Continue reading...

Invalid Object Is An Anti-Pattern

The idea of an object that validates its own state has been made very popular by Rails’ ActiveRecord. We can see this pattern in many places, not only in ORM libraries but in many other gems whenever some sort of validation is needed. Have you ever thought about why we’re...

Continue reading...

Introducing dry-validation

We started experimenting with a new validation library under dry-rb organization a couple of months ago, and last month I released the first version of dry-validation. Since then I worked hard on improving it and adding support for i18n. Today, I released dry-validation 0.3.0 with a couple of bug fixes,...

Continue reading...

Ditch Your ORM

I’ve been promoting a functional approach in Ruby for a while now and even though it includes many different techniques and patterns, there’s this one idea, one fundamental idea that changes everything – immutability. But what does it even mean in Ruby? To freeze everything? That would be too slow,...

Continue reading...

Encapsulating Business Transactions With Transflow

It’s a known fact that when you deal with a big problem it’s good to split it into smaller problems, solve them in isolation using separate components and use an integration layer to combine them into a single unit. Unfortunately it’s easier said than done. In an OO language like...

Continue reading...