Following the principles of open science, it is typical for computer science researchers to share source code, tools or datasets accompanying a research paper. Being one of the most popular platforms, GitHub is often used to fulfill this task. While finding the repository associated with a paper usually is not difficult (researchers share the link in the camera-ready version of their paper), the reverse task - the discovery of the associated paper - is a more complicated task. To facilitate this process, researchers often add the citation to the paper to the main README file. However, for quite a while, GitHub facilitates this task allowing one to create a special citation file. The GitHub platform checks the presence of this file in each repository and adds a dropdown button with citation options if it finds it there. In this article, I explain how to add such citation files to your repository.
Although many researchers now prefer to write their papers using various SaaS solutions, such as Overleaf, I still promote an old-style way when everything is installed on your computer. Of course, this approach has some pros and cons. However, in this article, I am not going to discuss them and will concentrate instead on the topic of how to configure forward and inverse search. In particular, I will show how to do this for my setup with LaTeX Workshop, a VS Code extension facilitating text writing in TeX, and Okular, a PDF viewer available for Linux and Windows platforms.
As you may know, I am a long user of an Ubuntu-flavored operating system (Kubuntu). So as I need a stable system, I usually stick with the Long Term Support (LTS) releases. Currently, my laptop runs Kubuntu 20.04.
At my new working place, people actively use calendar/email facilities. Hence, I have to start using an email client that supports this functionality. Our IT support recommends using Thunderbird, and I followed their advice. As usual in Linux distros, I have installed a Thunderbird version using my package manager and configured my email client according to the recommendations.
However, after I started to use it, I have faced issues in calendar functionality (e.g., its inability to synchronize event data) that were very difficult to triage. I checked some forums looking for explanations of some particular error codes and how to resolve them. There, I discovered that the calendar sub-system was improved considerably in Thunderbird 91.0. I checked my version of Thunderbird, and it was 78.13.x. After I found that, I decided to update Thunderbird. However, at that time, I did not manage to find a Personal Package Archive (PPA) or a deb file with this newer version. Therefore, I decided to wait until a new Ubuntu version (21.10) would be released because I thought it might bring Thunderbird 91. Unfortunately, this did not happen for older releases, and I decided to install Thunderbird 91 manually. In this article, I describe how I updated Thunderbird from version 78 to 91.
Several weeks ago during a compilation process, I noticed that my laptop became very hot under my palms. At first, I did not pay any attention to this, however, when it became uncomfortable to work I started to worry. My first thought was that the laptop got dusted and cannot remove the heat effectively. But then I noticed that I did not hear the fan noise when the load on the CPU increases, and I decided that my cooler is either broken or blocked. I was almost about to start disassembling my laptop, but luckily I decided to check the temperature using Linux utilities. There I found out that, despite I feel the laptop being hot, the sensor [
temp1] showed that the CPU temperature was normal (showing all the time the temperature of 45°C). This looked suspicious, and I checked other sensors measurements and found out that the [
coretemp-isa-0000] sensors showed more correct temperature values, which in addition reacted on load increase. In this article, I want to describe, how I forced my system to react also on the values from these additional sensors and cooled down my laptop.
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.
Last several years I use git as my version control system (VCS) both for personal and work projects. If you are working in a team, usage of a VCS brings you a lot of benefits like change tracking, history viewing, merge issues resolving, etc. However, I have found it very handy to use even for personal projects: with git I can try different solutions simultaneously and then select the better one. Moreover, I can easily remember what I have done for a project recently. This task becomes much easier if commit messages for repository changes are written clearly and in accordance with the patterns and rules recommended by the VCS. Developers have already developed the best practices how to write commit messages. I refer the interested reader, e.g., to the article written by Chris Beams. In this article, I explain how VSCode can help writing commit messages in accordance with the rules.
In the previous article, I have described my approach to configure Python workspace. I mentioned there that I do not use poetry because it “cannot be used to specify dependencies when you work with Jupyter notebooks”. However, people (@BasicWolf and @iroln) from the Russian tech website Habr recommended me to look at poetry closer, as it apparently can fulfil all my requirements. “Two heads are better than one”, and I started to explore this tool deeper. Indeed, I have managed to fulfil all my requirements with this tool but with some configurations. In this post, I describe how to configure it to meet my requirements and how to use it.
I like Python. For the last several years, I have used it extensively in my research. There are a lot of useful libraries, and it is an equally powerful language for writing simple scripts, producing large systems, doing data analysis and machine learning. It is very laconic and allows you to use different programming paradigms. It is quite easy to start developing in Python: modern operating systems are either already supplied with a Python interpreter or provide you with an easy way to install it. However, when you start developing more professionally using this language, you discover that its ecosystem is quite complicated. In this article, I try to shed a bit more light on the topic how to configure Python workspace.
From time to time, I experiment with different tools. In order to have the same environment and to keep my working machine clean from the garbage left after such experiments, I do my investigations in a virtualized environment. Usually, my guest operating system (OS) is Ubuntu Server because I usually use this OS in the cloud. Thus, to completely resemble my experience in the cloud I should have terminal access to the guest operating system. Unfortunately, by default after you have installed a guest virtual machine (VM) you do not have network access to it. Therefore, in this article I will show how to configure VirtualBox and guest OSes so that you get access to your virtual machines from the host, e.g., through terminal.