Posts

Comparing Netlify and Cloudflare Pages

The core idea of the JAMstack architecture (JavaScript, API and Markup) is to substitute dynamic webpages with pre-rendered from a template static pages that use different services exposed through Javascript API to offer dynamic features. During the last several years, the JAMstack architecture has been becoming more and more popular especially due to the proliferation of serverless paradigm. This architecture also gains its interest among bloggers who appreciate full control over their websites. Seeing the rapid development of JAMstack, several companies have started offering services for this architecture: automated builds, build previews, CDN, caching, SSL certificate provisions, hosting. Using these platforms, it is now quite easy for developer-bloggers to launch a website. To my point of view, these platforms may take a piece of a pie from traditional blogging platforms.

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.

Tmux Script to Create New Post Environment

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.

Maintaining CV and Resume Simultaneously with LaTeX and ModernCV Template

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.

Kubuntu: Configuring Timer Widget

I like to work using an adapted Pomodoro technique, therefore I added a timer widget to my desktop (I use Kubuntu as my operating system). Unfortunately, in Kubuntu by default when the timer ends, there is no sound notification about this event. Moreover, the set of predefined timer intervals does not fit my needs. In this short post, I explain how to make the timer widget more comfortable.

Closures in Rust

Today, I want to note down my thoughts on closures. Closures are important in Rust, because they are extensively used in iterator adapters paramount in development highly performant programs. However, to my point of view this topic is not well-covered in The Book. This may be a reason why it is considered among the most difficult parts of the language. In this post, I will try to shed more light on it, hopefully making it more clear to Rust learners. Note that I am still a novice to the language, and my understanding may not be fully correct.