As I’m still fooling around with my old pet project I decided to sum up current setup I’m on - from the basic things like where I host my stuff to what kind of tools/products I use, and how much does it cost me in the end (spoiler: I’m cheap as hell :P) So let’s see it. 1. Hosting Bare-metal, I’m an old folk and I change vendors whenever I feel I need to ;-).
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.
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.
You’re building open source API client? That’s great ❤️ I like you already. But please keep in mind:
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.
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.
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.
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’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.
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 ;). This can be fairly easy resolved with the help of custom failure_app. Let the code speak for itself: