Agile software development: back to the roots

I am sure that most programmers are nowadays familiar with the term “agile software development”. If it happens that you have experienced some “agile” methodology in a few companies and have made a few discussions about this “agile” idea with a few other programmers from other companies, you may have noticed (at least, sometimes) the…

GraphQL: an offspring with good genes

GraphQL, as most new programming techniques (or styles or libraries), is trying for the last couple of years to find its place into the world of software development. The problem arises when people try to evaluate new techniques without taking into account the past of the relevant technological sector. Even when a new technique really…

MySQL and the UTF-8 disharmony

The problem: In case you may not know this, MySQL’s “utf8” is not the same as UTF-8 ! And, to my knowledge, this is happening in all MySQL flavors (MySQL, MariaDB, PerconaDB, etc). The “utf8” (also known as “utf8mb3”) encoding supports up to three bytes per character. The real UTF-8 encoding uses up to four…

Thoughts on static properties and methods

Static properties The implications: Static properties got a bad reputations because, as many other things in software development, people were using them without fully understanding their potential implications. Let’s see some of these implications in PHP, (trying to widen our view in other languages when required) so that we understand what are we talking about….

Handling enumerated values

From time to time we come across the need to define class properties that take values from a limited set of values. A set of values that rarely (or never) changes and when it changes it changes only manually (by the developer) and not as a result of the running application. Usually, these values are…