In the article, I show the differences in the website analytic metrics collected on the server- and client-side. It contains several dynamic values (e.g., pageviews or visits number, the date range, etc.) scattered throughout the text. To update them, I need to pass through the content and adjust them manually. So as I plan to bring the data in this post up to date regularly (I get new input every day), this task cumulatively could consume a lot of my time. Therefore, I have decided that the data in the post should be updated automatically. In this article, I describe how I have achieved this goal.
Some time ago, I wrote an article showing how much data is missed if you rely on only client-side web analytics numbers. To maintain this previous blog post in an actual state, I planned to update it from time to time. However, as you might expect, pretty soon, I got bored collecting manually Cloudflare and Google Analytics data and inserting it into a spreadsheet. As a normal human, I have decided to automate the process. Luckily, both systems provide the APIs that you can use to query and download the data. However, during the development of the data collection script, I discovered several limitations that inclined me to write a new blog post instead of updating the old one.
One of the reasons developers love Rust is its well-developed ecosystem. Clippy, a linter for the Rust code, is one of the main components in this ecosystem. It performs additional checks of the developed code reporting found issues and explaining how to fix them (and sometimes it even can fix them automatically). Its usage may be beneficial for Rust beginners and even professionals. In this article, I describe this tool and explain how to start using it.
Rust has been recently named as the most loved language on Stackoverflow one more time. Currently it is not widely used in professional development, therefore developers often develop small programs to try it out. One obvious choice for these programs are different command line utilities, thus the number of such tools developed in Rust constantly grows. On crates.io, there is even a separate category devoted to these programs. Therefore, I have decided to write an article about the utilities I find useful in order to have their list in one place. I plan to update this article as I try more utils.
In this article, I present a solution to a weird issue that made me unable to install a utility using the cargo tool.
In the previous article comparing the JAMstack services of two popular providers, I have mentioned that one of my incentives of moving to Cloudflare was its basic server-side analytics provided even for the free tier users. Extended analytics is available on both Cloudflare and Netlify as a paid option: on Cloudflare you have to subscribe to one of the paid accounts (the cheapest is “Pro” plan that costs 20 US Dollars per month); on Netlify you can either subscribe to “Business” plan for 99 US Dollars per member per month, or you can enable this feature for every your site for just 9 US Dollars a month. If you need an accurate web analytics data, I definitely recommend you choosing one of these options because, as my analysis in this article shows, the client-side analytics solutions (e.g., Google Analytics, Yandex Metrica or Microsoft Clarity) overlook a large portion of visitors' interactions due to different anti-tracking solutions (e.g., personally I use uBlock Origin plugin for my web-browser). In this article, I show how much data you may overlook.
For the last three years, I used Netlify to host my website. I was pretty happy with the services this company provides, especially considering that they were free of charge for me. However, recently Cloudflare has also launched its JAMstack platform called Cloudflare Pages, and I decided to try it myself in order to discover its pros and cons. In this article, I compare the services provided by these companies from a blogger perspective, and share my opinion when each of them should be used.
In the article describing Tmux, as an example I have shown the script that creates an environment for writing content for my Hugo website. However, this script is not very convenient if I need to start writing a new blog post (the action that I do most often): I have to create an environment, then I must create new directory for a post, copy there a template and modify the parameters in the preamble (at least, I have to add the date and the title). Therefore, in order to facilitate this process I have developed a new script used to create an environment for writing new blog posts. In this article, I share this script and explain how it works so that you can adapt my experience in your setup.
This tutorial describes how to wheel your Wowchemy-based website to a new commenting engine called giscus.
This is the time for me to start looking for a new position. The first thing to do when you start this process, is to update your CV and resume. Although a lot of people (including myself until recently) think that these are two identical documents, in reality they are not. Resume is a short (max 3 pages) concise summary of your experience and achievements that show how you fit the future position. HR people screen tons of documents everyday, and they want to know if a person fits the position from the first glance. In CV, you describe your experience in details, mentioning all the projects that you have participated in, your contributions, what technologies have been used, etc. Moreover, if you have an academic experience, you list there all your publications and academic achievements. As a result, your CV could be quite long especially if you have huge experience, a lot of publications or both. Thus, if you have been chosen the interviewers may understand your experience in details.
Still, both these documents may share the same sections like education and working experience. In order to follow the DRY (don’t repeat yourself) principle and unify the style of my CV and resume, this time I have made them using the same LaTeX template called moderncv. In this article, I explain how I maintain these two documents together and list the modifications that I have made.