Journal

This is a personal/technical journal, semi-unfiltered thoughts, nothing professional, don’t take it seriously…

  • The NGINX nonsense

    Nonsense business strategy… Isn’t it?

    In the NGINX pre-built official packages, the Brotli module is only included in Nginx Plus, not in the open-source version, as if Brotli were a premium feature and not an open-source project.

    On the other hand, the Cache Purge module is a premium feature included only in Nginx Plus. However, you can find a similar module included in Debian and Ubuntu Nginx packages, and it appears to be promoted by the Official NGINX channels.

  • Phoning Home: Tracking Users

    A grey area in the GDPR compliance and a common practice in popular plugins.

    Practical example: You have a popular plugin installed in your self-hosted WordPress.org site, and you have explicitly enabled the “Disable Tracking” option in the plugin settings.

    Then you see, the plugin is constantly sending requests to an external domain, including some data in the URL query strings, like WP and PHP version.

    Also, as you might know, the IP and domain it will be recorded in the server logs.

    This is a relatively easy way to track users, and maybe the best way to keep track of real-active users, like a heartbeat!

    Under the GDPR, collecting IP addresses is generally considered personal data, especially if they can be used to identify or indirectly identify an individual. User consent is required unless the processing is strictly necessary for the basic technical functioning of a website (e.g., session management or security). In such cases, consent is not required, and the processing may be based on a legitimate interest or fall under the “strictly necessary” exemption.

    There is an issue in Yoast SEO, if you want to see how Joost de Valk reacts… In fact, they deliberately lie in their documentation.

    * This is not an isolated case, it’s a common practice you will find in different forms.

  • Red Flags: WordPress plugins/themes

    This is a checklist of what I see before choosing a WordPress.org plugin, theme, service, etc…

    Focus: I hate these All-in-One overbloated solutions you end up using half of the things…

    External Resources: Loading elements from external domains: fonts, images, JS scripts and CSS stylesheets from an external domain, phoning home, etc.

    Maintainance: The latest PHP version is still not supported or your server log is full of errors and warnings.

    Performance: Heavy usage of JS scripts or unnecessary CSS loaded on every page even if not needed. A ton of libraries loaded by default just to make a few things.

    Bugs at first sight: The default settings don’t work and you need to do some extra-configurations to make it work. There’s not a clear path to customize the most basic settings.

    They should do what it’s supposed to do with no surprises at first sight… No need to tricks and hacks to make it work!

    Browser Inspector Test: Console and network tabs… are you seeing errors? Something that pops to your eye? Time, size, status?

    Bug Resolution: Breaking/Critical bugs that are even included in the docs, if you found this, then do this, if the installation fails, then here is the hack, change this line, etc… And I’m not talking about edge cases!

    Additionally, they often fail to acknowledge even the most minor bug reports, as they are preoccupied with developing new features. These are not critical issues, nor the end of the world, but you can see the coding philosophy behind the product. I bet you will find many problems stemming from erratic behavior.

    require-trusted-types-for: It stops working when this line is included in the CSP HTTP header for ‘scripts’. Not critical, but take it as a good sign if it works!

    Documentation: Poorly documented features. Every detail should be carefully documented. Also, good documentation saves money because it prevents people from seeking higher levels of support that involve more people, which most of the time results in a negative experience.

    UI / UX: Old and outdated-looking software, disordered, difficult to navigate. Everyone loves a clean and clear interface and an easy way to ask a question when needed.

    Maturity: Project launched recently. Battle-tested projects are more prone to having fewer critical bugs and also ensure they will remain active in the near future.

    Segment of Market: They are trying to impress unexperienced people… What segment of the market are they trying to serve: beginners, fanatics, small agencies, experienced high-level devs and engineers, corporate level, etc.

    Healthy Community: Not a good sign when you find external people/users that lives in the forum…

    Growing a professional community it’s a challenge! People tend to act in strange ways when they feel part of a community; it’s a human need, that, sadly, for some people, the digital world becomes the only way to satisfy this need.