Logs tell us important stories, but they also ramble a lot. If we can’t find a log it is as if we didn’t log it.

Image for post
Image for post

In my last 2 articles about maintenance, we have talked about properly handling exceptions and how to log properly. Both subjects are simple enough, but done improperly will make our application unmaintainable.

In this article, I won’t explain how to configure these log aggregation and analysis tool. We rather are going to see the difference between the various tools I have tested. This way we can choose which tool we wish to have. There is plenty of tutorials on how to set up the tools.

Why aggregate logs

It is true for things we own, it’s also true for logs. For most small applications we can search and find logs using a simple grep command on the server. Most often this is enough. But when we start having multiple files and multiple servers, with thousands of users, finding the right log might start to become a problem. Log aggregation will help us find these logs.

Magento has been the reference for making an e-commerce website. But things change

Image for post
Image for post

Those who know me know very well that I don’t like much Magento. I have been working with Magento1 for the last 6 years and worked on Magento2 websites since it was published.

In my opinion, there are multiple technical reasons why Magento2 is a failure, and I have written a few articles on this subject.

But in this article, I will give you 5 reasons why as a shop owner you should not use Magento2.

The reasons

1 — Native bugs

Magento 2 has a lot of bugs, in the CE and the EE edition. This can easily bee seen in their GitHub

A lot of these issues are actually people asking support, but there are also a lot of true issues that will affect your e-commerce. For example, this bug #3625 which can cause the price displayed in the mini cart to be wrong. The bug was submitted in 2016 and confirmed on Magento 2.0. This bug is still present in magento 2.4. …

Maintenance 102

An application that logs properly will make maintenance easier.

Image for post
Image for post

In the first chapter, we saw how to handle exceptions and how to log them to:

  • not leak sensitive data to the user.
  • have user user-friendly messages displayed for your users.
  • have all the details for easy troubleshooting.

In this second article, we will see what needs to be logged beside exceptions, how to log them, and why we are logging them.

The examples in the article are in PHP, using the PSR-3: Logger Interface; but the logging concepts we will discuss are common to all languages.

What to Log & How to Log

To decide what needs to be logged, we must first decide why we are logging the information. …

Maintainability 101

Let’s see together why it’s important and how it can change the way you code.

Image for post
Image for post

This is an article I wrote a few years ago on my personal blog after stumbling on a Pull Request that was accepted on Akeneo. I wanted to revisit this article, as I still see this error often in code I review and even in software I use. I have tried to improve upon my first variation.

Let’s first see the Pull Request at the origin of this article; PIM-7915: Display a modal on deletion error

This pull request adds a nice catch try.

try {
} catch (\Exception $exception) {
return new JsonResponse(['message' => $exception->getMessage()], 500);

This merge request dates from the 6th of January 2019; and the code is still present in the 4.0 version of Akeneo. …

Am I crazy assuming you are doing pagination wrong? I mean how hard is pagination? it’s so simple how can you do it wrong?

Well, you might not be doing it wrong, but you are probably using LIMIT with OFFSET to do pagination. That has performance limitations you might not be aware of and you probably can do better or you need to secure some of your URL's.

You do not believe me? Well just check this graph down below.

Image for post
Image for post

This is done on a small dataset of a 100.000 lines with small 10 line pages. Using both Limit & Offset for the first data series and the alternative method which I have called “optimized” which in reality is called keyset pagination or seek pagination where only a Limit is used. …

Image for post
Image for post

First of all, this is my first article on medium. Hourayyy!

Until now I have been blogging on my personal website; https://oliver-decramer.com but without a lot of success.

I will be from now on, blogging here on what I consider “Important”. So some technical stuff or even maybe some fantasy. Time will tell exactly what I will publish.

To get into the subject; I am today, undecided whatever Magento2 is worse then Magento1.

Well, let’s see, In on one hand we have Magento1:

  • stable
  • relatively fast
  • easy to deploy;


  • it’s deprecated
  • not xsd for xml’s
  • no…


Oliver de Cramer

Passionate web developer. Symfony lover. Writing as a hobby. Sad Magento 2 developer

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store