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.
The last several years Microsoft’s Visual Studio Code (VSCode) is my favorite text editor. Thanks to the amazing “LaTeX Workshop” plugin, I started using it as a LaTeX editor to write my research papers, and eventually I moved most of my everyday routines there. Currently, I use it for Python and Rust (I’ve just started) development, web development. Even this post I write in this editor due to its great support of markdown language.
The opportunity to use one editor for so many different tasks is made possible by its great plugin subsystem and all those people, who have been spending hours and hours (thank you!!!) to develop wonderful extensions. With the lapse of time, your Extensions side bar tab will be populated with tens of different extensions, which are quite difficult to remember all. In this post, I will explain how to manage extensions, in particular, how to list all installed extensions, download them for offline use, and install them.
The code snippets are also available in the GitHub repository.
On June 4th, 2019, Google released Chrome 75. One of the advertised features of this version is “Reader Mode” that allows you to concentrate on the content of a website removing irrelevant content from a page. In this article, I explain how to start using this mode and what are the drawbacks.
When you are working with PDF documents, it is often required to merge them together, rotate some pages or select some of them, etc. This functionality is helpful when you care about the nature and want to avoid printing some pages. It is quite often when some authorities ask you to print a PDF document, sign just one page and send them back a scanned copy. In this situation, the PDFtk utility can be very useful. In this article, I describe some commands I use from time to time.