An Excel interop trick

Yesterday I had a nice little evening spent with a silent failure of my program. The program needed to create an Excel document, save it and export as a PDF. It should also run periodically and automatically, so as a scheduled task right? Yes, and it works fine for me on my Windows 10 PC, but on clients Windows Server 2012? Not really.

Read More

Be careful with cache

There’s a well known saying that goes like this: There are only two hard things in Computer Science: cache invalidation and naming things *. This is a post about the first one.

Today I experienced a cache invalidation issue where I was presented with cached data instead of a fresh data which was different. This prevented me from fixing an issue which only my colleague discovered and for a minute we were confused with what was happening.

This just remembered me to be careful next time when I’m thinking about caching things. It’s extremely important that you know when to invalidate cache. If you don’t determine that moment correctly you are about to put a nasty bug in your product and frustrate your users.

* https://martinfowler.com/bliki/TwoHardThings.html

Back to Heroku

A year and a half ago I moved my backend service from Heroku to Openshift. The reasons were that it didn’t put services to sleep state in free tier. At that time it just looked it offers more for the same price. A month ago Openshift upgraded their service from version 2 to 3, or something like that. They wanted me to do the migration of my service. This is what happened next :) …

Read More

Developers and UI texts

This post is inspired by uninformative user facing texts in software. Being a software developer, I know that there are situations when we are not aware of how meaningless the text we write can be to the rest of the world. This is an excuse post to all the users affected by such messages and also a reminder to other developers that they should be careful how they communicate with their users.

Read More