Posts

Clearing Output Data in Jupyter Notebooks using Pre-commit Framework
Recently, I have participated in a project at AI Superior aimed at the analysis of a dataset with sensitive data. So as the data have to remain private, initially we shared the dataset through a secure channel and took measures to prevent its accidental distribution (we put the dataset in a separate directory and configured git to ignore this folder and other directories containing intermediate processing results). However, working on this project I have noticed that Jupyter notebook, that is a kind of standard tool used for data analysis, may be a source of sensitive data leakage.
VSCode Snippets to Speed Up Time/Task Management Files Creation
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.
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.