In the series of articles on my time/task management approach, one article is dedicated to the tool set (VSCode + OrgMode) I use to track my tasks and performance. Since then, a number of people has asked me to share the templates of the week, month and year files what I did after the first request. However, recently I have discovered an approach that allows me to speed up the creation of the year, month and week files. In this article, I share the details of this improvement.
In the previous article, I have described how poetry can be used to configure Python workspace and to create a new Python package project. Although poetry creates the structure of a package and adds some boilerplate code, in order to develop this package in VSCode we need to do some additional configurations. In this post, I describe how to start developing a new Python package project in VSCode.
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.