Posts

Starting New Python Project in VSCode

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.

Using VSCode as a Default Git Editor

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.

Configuring Python Workspace: Poetry

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.

Configuring Python Workspace

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.

Configuring Network between Host and Guest VM in VirtualBox

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.

My Approach to Task/Time Management. Part 3: Productivity and Focus

In this series of articles, I describe my approach and tools for time and task management. In the third part, I share my experience on how to put yourself into the flow state, stay focused and perform better.

My Approach to Task/Time Management. Part 2: Tool set

In this series of articles, I describe my approach and tools for time and task management. In the second part, I explain what tools I use and how I do it.

My Approach to Task/Time Management. Part 1: Framework

In this series of articles, I describe my approach and tools for time and task management. In the first part, I describe the framework that I use for my task/time management and reveal the foundation of my approach.

Managing VSCode Extensions

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.

Reader Mode in Google Chrome

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.