Added a visitor counter
After setting up this Hugo site, I wanted to spruce it up a bit by bringing back a throwback from classic websites back in the day: a visitor counter. Below are some notes on that as I get more accustomed to working with Hugo.
The backend
I prepared a backend to handle the visitor count.
Making a request to the backend will increment and return the visitor count.
I hosted the backend on Google’s Cloud Run platform.
I chose this platform for the backend because it’s serverless and at this point would fall under the free tier of usage, i.e. cost me zero dollars.
Also, I wanted to go through the exercise of setting up a serverless backend.
I’ll make a separate post about the details later.
For now, all we need to know for this discussion is that the backend is accessible by a URL.
In order to make it available to frontend Javascript, I will put it in the DOM.
I decided to put it in a meta
tag in the head
of the HTML document.
The ananke theme has a predefined block that pulls in a partial file if it’s available, so I placed the following snippet in layouts/partials/head-additions.html
:
Figuring Out Hugo
Here are some notes from setting up a basic Hugo site with the ananke
theme.
I followed the official quickstart guide but had to figure out a few things along that way, which I make a note of below.
Theme setup as Hugo module
The quickstart has you setting the ananke theme up as a Git submodule, but apparently this is the old way of doing things. The new recommended way of installing themes is to set it up as a Hugo module. From a high level, you
Bitwise XOR of All Pairings
Problem
You have two arrays of non-negative integers nums1
and nums2
. Let nums3
be the array of the XOR of all pairings between nums1
and nums2
. Return the XOR of all integers in nums3
.
Approach
The description is essentially one big XOR sum of XOR’d pairs, which makes me think this is an exercise in the properties of XOR. Since XOR is commutative, we can just ignore the fact that the numbers are paired and tally the overall frequency of each number. If the frequency is even, that number goes to 0, otherwise the number stays.