Virtual environments in Python language ★ Posted on August 14, 2020
Virtual environments are a beneficial concept that makes your coding much more accessible. There are many tools in Python for creating and managing virtual environments. This article analyses the native virtual environment created using the venv command on Linux and Windows. Another simplified and more user-friendly approach is to use Anaconda software (using command conda) or using IDE like PyCharm directly.
Helpful commands for Linux terminal with a quick introduction to Unix shell ★ Posted on July 17, 2020
If one chooses to do a software developer, he will sooner or later find out that there is a lot of need-to-know things. Among them are the commands of the bash shell (and the shell itself). It can save you a lot of time in the future if you learn them now. This post presents the most commonly used commands and use-cases for them. They are helpful not only for software developers but to everyone who works in IT.
Organizing work in software engineering projects (Agile, SCRUM and Waterfall) ★ Posted on June 12, 2020
Frameworks for organizing work - you cannot avoid it whenever you decide to manage a project in IT. What is the most effective way for organizing the work of your team? Probably none of the issues related to project management is covered by so many posts, videos on YouTube, articles in scientific journals. This article is about one concrete human perspective on project organization. It can help you decide how to run your project, consider available frameworks (particularly Waterfall, Agile and SCRUM frameworks), and present management tools.
Prediction of renewable energy from the software engineering perspective ★ Posted on May 25, 2020
Many open-source tools can help with the prediction of renewable energy production. For example, the Python library PVLIB for computation of production solar of photovoltaic panels implements essential scientific methods. However, if it comes to predicting energy from wind turbines, there is no similar library - but the computation itself is sufficiently simple - so everyone can write their methods. There is also a question of how precise predictions are, which requires a probabilistic approach.
Design of a system for on-demand processing of the large datasets ★ Posted on April 26, 2020
One of the common challenges of on-demand large datasets processing is the time required for data processing. The naive approach computes operation results on the same component as serves results (and horizontally scale the system when overloaded). The more complex (and generally speaking the only correct) approach is to use some asynchronous task queue based on distributed message passing (message broker). Another option is to stream data continuously as they come.
Helpful tools for code profiling in Python ★ Posted on April 16, 2020
Code profiling is one of the most important parts of the code optimisation process. Generally speaking, it is the program analysis where we are mainly interested in memory usage and time complexity of the program (or each of its parts). We can also be interested in how often we use some function (or how often we call it, what is the latency). There are a lot of principles and tools to perform these tasks. This article is mainly focused on stack tracing, line-by-line code analysis tools, and function call graphs.
Pros and Cons of using xarray when accessing NetCDF files ★ Posted on April 10, 2020
The famous library xarray is more or less standard in the data analyst branch. During the last few years, it has become prevalent. It has been deployed in many projects, often without any careful decision if it is needed or if there is any other way to treat the issue. One of the essential xarray functionality is the reading and writing of the NetCDF files. This is also a focus of this article where at the end, you should be capable of making the informed decision whether or not to use xarray.