Journal

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

  • Engagement, Feedback, and the Cost of Support

    Community feedback, even imperfect, and a clear vision of your audience is the fuel for better docs and sustainable engagement.

    Reading this recent post from a respected developer — on a very different scale, of course — reminded me how challenging it is to build and sustain an online community.

    Like Daniel describes, engagement often comes in the form of low‑effort questions: tickets opened without context, issues raised without reading the documentation, or requests for features that don’t align with the project’s vision. These interactions can be draining, but they also highlight something important — people care enough to reach out. Indifference would be far worse.

    In fact, even imperfect feedback is one of the most valuable sources for improving documentation and clarifying boundaries. Every question, whether well‑formed or not, points to a gap in understanding that can be addressed.

    Another key factor is having a clear vision of the audience we want to serve. Beginners seeking guidance, professional developers looking for advanced features, or decision‑makers evaluating solutions — each segment brings a different level of feedback and engagement. Defining this target audience is crucial, because it determines how we interpret questions, what kind of support we provide, and how we encourage the right kind of participation. Too often, projects lack this clarity, which makes community management even harder.

    That balance is why the Webinoly community remains private. It allows us to filter noise, focus on meaningful exchanges with committed supporters, and channel the energy from all kinds of feedback into constructive improvements that strengthen the project for everyone.

  • Low-Level Programming

    Most professional programmers today don’t know—and often don’t care—about low-level programming.

    The Upside: Abstractions Empower

    Abstractions democratize programming. They allow more people to build software without needing to master the intricacies of registers or instruction sets. This accessibility accelerates innovation in areas like AI, web development, and mobile apps, where speed-to-market often matters more than hardware-level optimization.

    The Downside: A Shrinking Pool of Experts

    But there’s a cost. Fewer engineers understand the “bare metal,” and that creates bottlenecks in critical domains—operating systems, compilers, embedded systems, and performance-sensitive applications. The industry isn’t collapsing because most developers don’t know assembly, but it is becoming increasingly dependent on a smaller group of specialists who do. That concentration of knowledge is risky. If fewer people understand the foundations, the resilience of the ecosystem suffers.

    Recommended lecture: C Skill Issue

  • Website traffic analytics are never truly reliable

    They don’t even qualify as a valid statistical sample.

    Between VPNs, ad blockers, privacy‑focused browsers, disabled JavaScript, and server‑side filters against “spam” requests, what you see in your favorite analytics tool is only a small fraction of real traffic, and even that fraction is distorted.

    Client‑side vs. server‑side analytics each have pros and cons depending on your goals. Yet most people don’t even realize server‑side analytics exist.

  • 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.