We should all strive to handle all possible errors in our programs and display nice error messages to the users, but one can hardly be sure that nothing will ever go wrong. That’s why I believe we should try to embed a debug mode that users can take advantage of when submitting the issue or […]
This is a simple example of adding a conditional and partial unique index to Rails applications backed by PostgreSQL.
Tomorrow starts the famous African Ruby conference Rubyfuza in Cape Town and since I am attending I decided I will do a final 1.1 release of InvoicePrinter from South Africa just before everything begins. So here we are, this is a 1.1 “Cape Town” release.
Database migrations are the tricky part of any deployment. They make zero-time deploys problematic. They requires special attention since they can break stuff. Some might choose to run migrations automatically, some of us run them manually. But one thing is almost always true; the production code without migrations should not ever run. So how not […]
PDF should be this nice universal format that many government institution now work with. But what if they require you to fill in XFA forms inside their template PDFs? The ones I need to fill for my insurance company are certainly not supported in the standard Document Viewer shipped with Fedora. This weekend I tried […]
Are you a freelancer? You don’t need to leave your command line to create invoices for your clients. InvoicePrinter is a Ruby library for producing PDF invoices without too much hassle. If you haven’t seen it before, you can read more about it in the announcement or its GitHub page. With the upcoming 1.1.0 release […]
Refinements is a Ruby 2.0 answer to monkey patches that can take control of your program without you realizing it. Next time you will be tempted to monkey patch something, think twice and consider using refinements.
At work we use ActiveModel::Serializer to serialize ActiveRecord objects into JSON:API-like responses for our APIs. The problem is that ActiveModel::Serializer is clever enough to dasherize our hash keys (so they can be accessed as properties instead of  brackets syntax) and our hash keys are actually real keys that we have to serve untouched.
Not so long ago I announced first stable release of InvoicePrinter. I wanted to say that the API is stable and people to experiment with it. I am happy to see that the project got already over 3 hundred stars and 20 forks. Wow, thanks! This kind of support motivates me to work on the […]
After some time with 1.0.0.rc1 I am releasing a final 1.0.0 of InvoicePrinter. So what it is it, what does it mean and what’s next?