Splash screens in Android

We are developing an Android app. Of course, the natural thing to do is to add a splash screen. We did, but it sucked, so I googled how to do it well.

We need enough technical debt

I think developers tend to think that having technical debt is always a bad thing. It might. But sometimes it isn’t. Having piles of debt is certainly bad, but I think having none could be equally problematic.

When the session is timing out in both server and client

If you keep a session controlled by the server (with an expiration timeout) and a separate session logic on the client (also with an expiration timeout), keeping them both synchronized is too complicated and probably unnecessary.

How to determine last Monday's date in BigQuery

Today I spent enough time coming up with a way to determine last Monday's date in BigQuery. Today is Monday, so the formula should return today's date if called. Yesterday it should have returned the 27th of last month.

Opting for the false negatives

Businesses like to be busy, of course. Everyone is happy around, money trickles in, new faces, better clients, and a bunch other positive stuff.

Differential Synchronization

Keeping two or more copies of the same document synchronized with each other in real-time is a complex challenge. This paper describes the differential synchronization algorithm. Differential synchronization offers scalability, fault-tolerance, and responsive collaborative editing across an unreliable network.

Mobile browsers are not the problem. Web pages are

I just finished reading an article by The Verge about how The mobile web sucks.

Utilization is not the final answer

Utilization represents how much time you are actually working on stuff that makes money. When you aren't 100% "utilized", it means that some of your time is spent doing "non-billable" work.

Free Python course if you rush and use my code

If that's the case, you might want to check the "Learn Python GUI programming using Qt framework" course by Udemy.

When cookies don't work and you have to stay late a couple of nights

Most of the time you can't think about what's hidden around the corner. It doesn't matter how much time you spend thinking about doing something, you won't be able to properly measure the effort until the job is done.

I don't have enough time to develop but that's alright

I've always wanted to write while drunk, sitting on a plane, waiting for a storm to go away before taking off.

Programming challenge: boolean parenthesizations

I thought I wasn't going to be able to post a challenge this week, because I'm traveling out of the country (with no Internet connection most likely.) However, last week I implemented the possibility to publish future posts in the blog, and this is how this one was created.

Adam Harris about the RSS feed

Adam Harris asks regarding my previous post about moving the RSS feed generation to a static process:

Moving from dynamicly generated to a static RSS feed

Things are always easier with few users hitting your code (remember, I wrote the blog engine displaying the text you are reading right now.) One of my goals have always been to not pay for Google App Engine, and host this site as cheapest as I can.

Programming challenge: towers of Hanoi

I'm sorry I missed last weekend's programming challenge. I was on vacation and away from a computer (which was great!) I'll also be absent next weekend since I'll be traveling to Cuba, so I apologize in advance.

Red warning messages are there for a reason

On May 26th Google completely removed OAuth1 support (they deprecated it back in 2012, but everything still worked until last week.) At my company, we have a couple of applications that relied on OAuth1 to access Google Spreadsheets.

20 common mistakes when doing Test-Driven Development

These are based on my own experience as a developer and what I've heard and seen from other people working with me.

My first public speaking engagement was great!

Yesterday I was honored to give a presentation about Test-Driven Development at the Agile Transformation Summit 2015 (ATS 2015) that took place at Nova Southeastern University in Fort Lauderdale, FL.

Solution to the position of the element

Here is my solution to last Sunday's programming challenge about finding the position of an element in an array (You can read the challenge here.)

Have you reached all your potential as a programmer?

Think for a second how do you always try to solve a particular problem. To oversimplify this, I'm going to divide it in two different groups:

Programming challenge: the position of the element

Let's try something simple this week (because it's Memorial Day week. I promise to rise the bar next week):

Solution to merging overlapping intervals

Here is my solution to last Sunday's programming challenge about merging overlapping intervals (You can read the challenge here.)

The Google App Engine Pipeline API

The Google App Engine Pipeline API connects together complex workflows (including human tasks). The goals are flexibility, workflow reuse, and testability.

In case you are looking to learn about Git and GitHub

(The following is part of a documentation repository we are creating internally at my company to help onboard new team members on different technical areas.)

Programming challenge: merging overlapping intervals

Given a collection of intervals, write a function that merges all overlapping intervals and prints them out.