All Posts

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

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.

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.

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.

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 ;). This can be fairly easy resolved with the help of custom failure_app. Let the code speak for itself:

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).

WAN DHCP mystery on Tomato software

Lately I’ve been messing with my home network - long story short I ended up buying new router because my old Buffalo WZR-HP-G300NH was starting to having problems with wifi signal strength out of the blue. So I ended up with NetGear N300 v2 running Tomato by Shibby and a smaller one TP-LINK WR710N for the other room. And here is the kicker - none of routers was able to obtain IP address on WAN port via DHCP (after cloning mac address of wan port, as mac was filtered by my Internet provided).