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.
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.
(Personal) API Clients (Anit-)Patterns
You’re building open source API client? That’s great ❤️ I like you already. But please keep in mind:
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.
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.
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.
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 ;).
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).