random thoughts

Upgrading to Rails 5 - bunch of random tips

After like 3 weeks of not touching code I decided to refresh my pet project a little bit, below are random issues you might encounter while trying to upgrade your old Rails 4 app to Rails 5.

Upgrading to Rails 5 - bunch of random tips

How to merge PDFs to a single page

Recently I have been selling a lot of my stuff. Simply getting rid of unused or unneeded things - and mostly I’m packing & sending it to other parts of the country by using a package carrier that requires printing labels. The standard drill. But those labels are kinda smallish, you can fit like 4 on single A4 page (it’s like a horizontal strip kid of thing).

Ok so I’m sending 3 packages and I get 3 pdfs to print with huge amount of white space. I don’t own a printer anymore (sold it as well), I need to go photocopy point, technically speaking I could simply go and ask them to print 3 separate documents. But the environment and extra 20 cents - I just couldn’t stand it :P.

How to merge PDFs to a single page

(Personal) API Clients (Anit-)Patterns

You’re building open source API client? That’s great ❤️ I like you already. But please keep in mind:

(Personal) API Clients (Anit-)Patterns

Goodbye Jekyll, Welcome Hugo

Pfew, after over a year of inactivity it’s time to refresh this site a little bit. It was on my todo list for over a while now.

Goodbye Jekyll, Welcome Hugo

Power to the masses

You can’t deny docker hype isn’t going anywhere any time soon. For a software that is barely 3 years (!) old it have already made quite impressive impact in the widely known IT ecosystem. I was fiddling with docker around a year ago for the first time and I wasn’t impressed (I won’t deny I’m mostly a consumer of open source world) - things did break, setup was awkward and tooling immature.
Power to the masses

Put some Go in your Ruby so you don't Rust

Lately I have been looking for some solid alternatives to Ruby, and I must admit up-front - Rails spoiled me, badly.

I was hungry for some performance boosts, and let’s face it - dynamically typed languages can get you until some point.

I played with few popular modern languages (manually dealing with memory management? No thank you sir) and tried to hook them into Rails application.

Put some Go in your Ruby so you don't Rust

How to alter big postgres table

Lately I had to migrate pretty fat (300GB+ data and 150GB+ of index data) postgres table - application grew, we had to get rid of one pretty big column that was redundant now, change main composite index, change one column type etc. etc. The problem was - do it without significant amount of downtime.

You can google up tons of solutions, but let me walk through approach I chose - hopefully you will find it somewhat useful.

How to alter big postgres table

Getting the best of your Rails continuous integration

You’re using CI? Great! You are not? It’s perfect time to start ;-). Continuous integration (along with continuous deployment) is pretty simple and pretty awesome idea. Can basic setup where you simply run tests, and assuming tests passed whole thing gets deployed into production server(s) be done better? Lately I gave some thought to the whole deployment process in our company. The whole development process in fact. I think todays web development got soooo complicated when compared what it was few years ago.
Getting the best of your Rails continuous integration

Graceful unauthorized pdf redirect with devise (custom failure app)

Let’s say your users are trying to access some pdf files that you’re serving inline with wicked_pdf or any other gem of you choice that is a wrapper for wkhtmltopdf. But they have to sign in first.

What happens when you use devise and you hit pdf url as unauthorized user? By default your app will respond with 401 Unauthorized which will get converted into invalid pdf file and this kinda not what you want. Probably ;).

Graceful unauthorized pdf redirect with devise (custom failure app)

Migrating from MacOS to Ubuntu

Reasoning

I’m not a huge fan of Apple products, been using mostly linux during my professional career (d’oh). I can appreciate the overall hardware build quality (well - at least when it lasts), easy of use (it just works) and all that jazz, but after working on MBA for two years I decided to look around for new machine that would serve me for another few years (hopefully).

Migrating from MacOS to Ubuntu