Raspberry Pi: VLC – Failed To Allocate CMA Buffer

Recently i got an issue on my RPi4 with a VLC media player that was crashing if i was trying to switch between a fullscreen and a windowed mode and scroll a video.

Also i couldn’t play some movies as the VLC was playing the audio track only but not the video one.

In the both cases if i was running the VLC from a terminal there were errors about some failures to allocate buffer objects from a CMA. (more…)

Reset Visual Studio Code

There are several reasons why you may want to reset a Visual Studio Code (VSCode).

Probably your VSCode is sometimes acting weird and the reason of this is a bunch of settings and configurations that you’re not quite sure where they came from.

Or maybe your VSCode is extremely slow? May the poor performance be caused by some extensions?

In any case most of the issues can be solved by restoring the default settings, uninstalling extensions or by “factory reset” of the Visual Studio Code and in this note i will show how to do this. (more…)

Split Screen in Windows

In Widows you can split screen by simply dragging a window all the way to one side or corner of the screen until it snaps into place and then select another windows to fill the other parts of your screen.

This way you can split a single monitor into 2, 3 or even 4 screens and work with different windows or applications simultaneously.

If you tend to split windows a lot – the most efficient way is to use keyboard shortcuts.

This note is a cheat-sheet with the split-screen keyboard shortcuts for Windows. (more…)

GitLab CI/CD: Trigger Pipeline Manually & API

By default, GitLab CI/CD pipelines are executed automatically on pushing new commits to a repository and don’t require any intervention once created.

However, there are also times when you need to trigger pipelines manually, without updating the project.

In this note i will show how to trigger the GitLab CI/CD pipelines manually through the GitLab’s user interface and through the API using cURL, Webhook or from another project’s .gitlab-ci.yml. (more…)

GitLab CI/CD: Build Docker Image & Push to Registry

GitLab CI/CD can be used with Docker to build Docker images.

For example, you can create a Docker image of your application and push it to a GitLab’s Container Registry.

In this note i am showing an example of how to create a new repository in GitLab with a CI/CD pipeline that will be used for building a “Hello World” Docker image and pushing it to a registry. (more…)

GitLab CI/CD: “Hello World” – Example

GitLab CI/CD is a part of GitLab that is used for continuous integration (CI), delivery (CD) and deployment (CD).

With GitLab CI/CD, you can automatically build, test and publish your software with no third-party application or integration needed.

In this note i am showing an example of how to create a new repository in GitLab with a “Hello World” CI/CD pipeline that will be triggered automatically on each commit and push to remote. (more…)

GitLab CI/CD: Print All Environment Variables

Environment variables are extremely useful as they bring a lot of flexibility to CI/CD jobs and pipelines in GitLab.

There are some predefined variables that are available in every GitLab CI/CD pipeline and custom variables that can be defined in different ways.

In this short note i will show how to list all the environment variables in GitLab CI/CD and print their values. (more…)

Reinstall GRUB from Live USB (UEFI + LVM)

There are many reasons why you may need to reinstall GRUB: corrupted boot partition; GRUB got overridden after Windows installation; some unsupported Linux kernel parameters have been set in a GRUB configuration file and the system is not booting anymore but this can’t be fixed from a GRUB menu as it is not showing up, etc.

In this note i am describing a particular case of how to repair GRUB by reinstalling it from a live USB if a broken system is configured to boot in UEFI mode and a system’s disk is partitioned to LVM.

I have tested this GRUB reinstallation on Ubuntu Linux, though all of the commands below should work for the other Linux systems as well. (more…)