DrupalCon North America 2021 is a great thing!

I would like to tell you that if you missed DrupalCon, you missed a lot. First of all, this DrupalCon is different from DrupalCons of the past years. You can say, there was online DrupalCon last year. Hm… that was Global, this time it is North American. The difference in time zones. Sessions are not spread across the day, they are scheduled in the intersection of timezones.

Europe, West Cost, and East Cost, even Africa and South America could attend. I’ve met people from abroad: many foreigners, it was a good time…

In fact troubleshooting Kubernetes ingress controller is easy and it could save you a lot of time. You just need to know when it is a good idea to do so. Here is an example when you may need it: a request produces an error, but no error logs are reported by the pod responsible for it.

When I was building a Drupal site, I noticed that adding a new field on the page produced 502 Bad Gateway Error. I thought the problem was in the field type that caused a fatal PHP error, but usually such errors are reported…

Recently I have been working on a project with a need for a scalable and resilient Varnish cluster. The interesting thing about such a project is the use of Kubernetes as a platform for our application stack. During the work on such project, I learned a lot of things, including the use of Go lang in Kubernetes controller as well as an understanding of how Varnish works.

What is Varnish?

Varnish is a layer of HTTP cache that caches requests mostly for anonymous users before they hit an application layer. Typically Varnish cache is stored in RAM, which helps to achieve higher performance…

Photo by Silvio Kundt on Unsplash

KubeCon 2019 has just ended. It has been a huge event that gathered thousands of people and hundreds of sponsors. It was problematic to choose which sessions I wanted to go because of their enormous amount.

During the KubeCon I have learned many tools, paradigms, concepts, and ideas that can be used to develop for and operate a Kubernetes cluster. This article covers the following topics:

  • Cluster management
  • Reusable declarative configuration
  • GitOps
  • Service mesh
  • Edge proxy
  • Monitoring and logging
  • Tracing and debugging
  • Development
  • Edge computing
  • Distributed computing
  • Serverless computing
  • Machine learning

Ready? Let’s begin!

Cluster management

Rancher allows running your Kubernetes cluster…

Once I was working on the cybersecurity project that involved installing the security sensors behind the corporate firewall. These security sensors should communicate to the central endpoint in the cloud and receive commands about software updates using Ansible scripts.

The alternative

Maybe now the solution would be in using SALTSTACK, but at that time I didn’t know that, so I decided to reinvent a new solution that may be a promising technology in the future.

The technology

It was based on the huproxy project developed in the depth of Google. Huproxy consists of the sever and the client part. The server part allows multiple…

Validation is needed to make sure that the content of a struct or a type is in the format you require. In the case of user registration, you may want to check that email is valid and password is strong. Validation is useful when unmarshalling form data, YAML, or JSON into a struct.

There are multiple methods to validate structs and types in Golang. One of the most promising methods is validation using tags and reflection.

The most popular implementation of such method is go-playground/validator package. However, it is not without limitations. In this article, I am going to…

Before I started writing this blog post, I had been trying to find a good example for my task using these search queries: “infinite queue in Golang”, “endless generator in Go”, “Go job scheduler” but nothing useful came up, so I decided to develop my own approach.


In my task I need to schedule N jobs to be executed repeatedly in the background with some specific requirements:

  • N jobs are added to the job queue upon the Go program start.
  • Jobs should be executed in parallel pool of M workers.
  • A distinct job can only be executed once at a…

I was surprised there is no documentation on how to create custom JSON callback/route/endpoint in WordPress. There is a way to do it using REST API, but it requires an authentication to view REST endpoint.

I was trying to do something easier and simpler and to allow anyone in the web to view this endpoint. Here is a solution.

And here is a demo of how it works.

As you can see from this picture, json-callback outputs GET parameters in the JSON format.

With a recent iOS upgrade to version 12, I’ve noticed that Apple changed the algorithm of how songs are shuffled. Now Music app gives a priority to songs that were added recently, which probably means it is using the weighted random selection algorithm giving a bigger weight to songs that were added recently.

UPDATE: There is a simpler way of achieving the same result, see update in the bottom of the article.

That made me think of implementing my own weighted random selection algorithm that can be used for a similar purpose. I drafted a simple algorithm that appeared to…

In the previous blog post, Paying less for more in Drupal Commerce through the Authorize.Net SIM/DPM, I described the vulnerability found in the Drupal Commerce Authnet SIM/DPM module. This time I decided to look into other eCommerce platforms and to find similar vulnerabilities.

I’ve picked the WooCommerce, an eCommerce plugin for Wordpress, which became very popular over the recent years. There are several paid modules that integrate WooCommerce and Authorize.net, but they cost around $70 and their source code may be closed. So I decided not to analyse them and to concentrate more on the Open Source products.

Fortunately I’ve…

Vadym Myrgorod

Software 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