<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Development notes</title>
    <link>https://dev-pages.info/</link>
    <description>Recent content on Development notes</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <lastBuildDate>Thu, 19 Feb 2026 15:07:00 +0100</lastBuildDate>
    
        <atom:link href="https://dev-pages.info/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Expanding VM Disk in Proxmox with LVM</title>
      <link>https://dev-pages.info/expanding-vm-disk-in-proxmox-with-lvm/</link>
      <pubDate>Thu, 19 Feb 2026 15:07:00 +0100</pubDate>
      
      <guid>https://dev-pages.info/expanding-vm-disk-in-proxmox-with-lvm/</guid>
      <description>&lt;p&gt;LVM (Logical Volume Manager) is a disk management system in Linux that adds a flexible abstraction layer between physical disks and filesystems. This guide covers how to expand a VM disk in Proxmox when using LVM inside the guest.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How to Convert Template to VM in Proxmox</title>
      <link>https://dev-pages.info/how-to-convert-template-to-vm-in-proxmox/</link>
      <pubDate>Sat, 14 Feb 2026 15:07:48 +0100</pubDate>
      
      <guid>https://dev-pages.info/how-to-convert-template-to-vm-in-proxmox/</guid>
      <description>Connect to Proxmox via ssh and run the following commands.
List All Templates qm list | grep template Convert Template to VM Note: If the template has linked clones running, you should stop them first before converting.
qm set 800 --template 0 Convert VM Back to Template qm template 800 Rename Template qm set 801 --name ubuntu-srv-tmp Destroy Template If the template has linked clones or unreferenced disks, use the --purge and --destroy-unreferenced-disks flags:</description>
    </item>
    
    <item>
      <title>Backup Docker Volumes to the NAS</title>
      <link>https://dev-pages.info/backup-docker-volumes-to-the-nas/</link>
      <pubDate>Tue, 13 Jun 2023 22:41:43 +0200</pubDate>
      
      <guid>https://dev-pages.info/backup-docker-volumes-to-the-nas/</guid>
      <description>This guide will walk you through the process of setting up a backup solution for your Docker volumes using an NFS shared folder on a Synology NAS. We will cover the steps from preparing the NFS shared folder to configuring a cron task for automated backups.
Prepare the NFS Shared Folder on the Synology Open the Control Panel of your Synology NAS.
Navigate to Shared Folder and click on Create.</description>
    </item>
    
    <item>
      <title>Troubleshooting Proxmox Installation Issues: Fixing Black Screen Problem</title>
      <link>https://dev-pages.info/troubleshooting-proxmox-installation-issues-fixing-black-screen-problem/</link>
      <pubDate>Sat, 20 May 2023 17:18:35 +0200</pubDate>
      
      <guid>https://dev-pages.info/troubleshooting-proxmox-installation-issues-fixing-black-screen-problem/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Encountering difficulties during the installation process can be frustrating, especially when you&amp;rsquo;re eager to set up your Proxmox server. One common issue is a black screen that appears after initiating the installation. In this blog post, I&amp;rsquo;ll share two effective solutions to help you overcome this problem specifically when using a 4K monitor and an older graphics card. Follow these steps in order, starting with the first solution. If it doesn&amp;rsquo;t resolve the issue, proceed to the second solution.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Rsync: How tobackup local iCloud folder to Synology</title>
      <link>https://dev-pages.info/rsync-backup-icloud-to-synology/</link>
      <pubDate>Fri, 10 Dec 2021 21:06:56 +0300</pubDate>
      
      <guid>https://dev-pages.info/rsync-backup-icloud-to-synology/</guid>
      <description>&lt;p&gt;This post describes how to backup a local folder from iCloud to a Synology NAS using &lt;code&gt;rsync&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;rsync&lt;/code&gt; is a console tool that copies files either to or from a remote host or locally on the current host (it does not support copying files between two remote hosts).&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How to fix Permission denied (publickey) error</title>
      <link>https://dev-pages.info/how-to-fix-permission-denied-publickey-error/</link>
      <pubDate>Sat, 17 Jul 2021 22:02:49 +0300</pubDate>
      
      <guid>https://dev-pages.info/how-to-fix-permission-denied-publickey-error/</guid>
      <description>&lt;p&gt;This blog post describes how to fix &amp;ldquo;Permission denied (publickey)&amp;rdquo; error while logging in via ssh using a public key.&lt;/p&gt;
&lt;p&gt;Ensure you have access to the server via Web console, like Quemu Terminal on Digital Ocean, or have physical access to the server.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How to publish RSS updates to Twitter</title>
      <link>https://dev-pages.info/how-to-publish-rss-updates-to-twitter/</link>
      <pubDate>Mon, 07 Jun 2021 18:09:11 +0300</pubDate>
      
      <guid>https://dev-pages.info/how-to-publish-rss-updates-to-twitter/</guid>
      <description>&lt;p&gt;Integrated &lt;a href=&#34;https://github.com/umputun/rss2twitter&#34;&gt;rss2twitter&lt;/a&gt; for publishing RSS updates from my blog to Twitter.
Easy to install and easy to use.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Ubuntu: How to fix the error &#39;essential package ubuntu-minimal could not be located&#39;</title>
      <link>https://dev-pages.info/ubuntu-fix-essential-package-error/</link>
      <pubDate>Mon, 07 Jun 2021 00:26:44 +0300</pubDate>
      
      <guid>https://dev-pages.info/ubuntu-fix-essential-package-error/</guid>
      <description>&lt;p&gt;I got the error related to the &lt;code&gt;Invalid package information. the essential package &#39;ubuntu-minimal&#39; could not be located&lt;/code&gt; while upgrading Ubuntu 16.04 to the next version.&lt;/p&gt;
&lt;p&gt;This blog post describes how to fix such an error on the Digital Ocean droplet.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How to perform stress test for Raspberry Pi on Ubuntu</title>
      <link>https://dev-pages.info/raspberry-pi-stress-test/</link>
      <pubDate>Thu, 03 Jun 2021 12:30:20 +0300</pubDate>
      
      <guid>https://dev-pages.info/raspberry-pi-stress-test/</guid>
      <description>&lt;p&gt;Some time ago, I wondered how to perform a stress test on my Raspberry Pi and see stats in real-time on the graphs. Most popular results in Google contained bash script with plain text output. Some of the scripts did not work because of a missed package for Raspberry. Thankfully for my friend, I found a tool named &lt;code&gt;s-tui&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;This blog post describes how easily perform a stress test on Raspberry Pi 4 with &lt;code&gt;s-tui&lt;/code&gt;. By default, it works as a monitor. To run a stress test in &lt;code&gt;s-tui&lt;/code&gt;, we need to install the &lt;code&gt;stress&lt;/code&gt; package. In that case, it will show us graphs with CPU load and CPU temperature under the stress test.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s get started.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How to install Docker and Docker Compose on Raspberry Pi 4</title>
      <link>https://dev-pages.info/how-to-install-docker-and-docker-compose-on-raspberry-pi-4/</link>
      <pubDate>Wed, 02 Jun 2021 21:34:39 +0300</pubDate>
      
      <guid>https://dev-pages.info/how-to-install-docker-and-docker-compose-on-raspberry-pi-4/</guid>
      <description>This blog post describes how to install Docker and docker-compose on Raspberry Pi 4. In short, to install docker and docker-compose we need to make sure that our system is up to date, install required dependencies, and install docker with docker-compose. Also, we can add our user to the docker group to run docker without sudo.
Make sure system is up to date sudo apt update &amp;amp;&amp;amp; sudo apt upgrade -y Install required dependencies sudo apt install python3 python3-pip libffi-dev libssl-dev -y Install Docker curl -sSL https://get.</description>
    </item>
    
    <item>
      <title>RabbitMQ Cheat Sheets</title>
      <link>https://dev-pages.info/rabbitmq-cheat-sheets/</link>
      <pubDate>Fri, 06 Nov 2020 15:01:16 +0300</pubDate>
      
      <guid>https://dev-pages.info/rabbitmq-cheat-sheets/</guid>
      <description>&lt;p&gt;This is a small cheat sheets for &lt;a href=&#34;https://www.rabbitmq.com/&#34;&gt;RabbitMQ&lt;/a&gt;. More detailed explanations and detailes examples can be found in the official tutorial and documentation. Links can be found at the bottom of this blog post.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Go Slices and Maps</title>
      <link>https://dev-pages.info/go-slices-and-maps/</link>
      <pubDate>Sun, 25 Oct 2020 20:18:42 +0300</pubDate>
      
      <guid>https://dev-pages.info/go-slices-and-maps/</guid>
      <description>&lt;p&gt;This post describes some slice and maps features which may be opaue.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Methods and Interfaces in Go</title>
      <link>https://dev-pages.info/methods-and-interfaces-in-go/</link>
      <pubDate>Thu, 30 Apr 2020 22:43:33 +0300</pubDate>
      
      <guid>https://dev-pages.info/methods-and-interfaces-in-go/</guid>
      <description>&lt;p&gt;This post is a small cheatsheet for Methods and Interfaces in Go. Here I provide main features and describe what methods, interfaces, pointer receiver and value receiver are.&lt;/p&gt;
&lt;p&gt;There are no detailed explanations or tricky examples about how to use them. For such content please see other resources.&lt;/p&gt;
&lt;p&gt;At the end of the page, there is a small list of useful links to read&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How to fix login issue with Grafana</title>
      <link>https://dev-pages.info/how-to-fix-login-issue-grafana/</link>
      <pubDate>Sat, 25 Apr 2020 01:47:07 +0300</pubDate>
      
      <guid>https://dev-pages.info/how-to-fix-login-issue-grafana/</guid>
      <description>&lt;p&gt;This post describes how to restore the &lt;code&gt;admin&lt;/code&gt;&amp;rsquo;s user password for &lt;code&gt;Grafana&lt;/code&gt; installed with &lt;code&gt;sqlite&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;For other SQL databases, connection to DB will look differently but SQL query may be used the same.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Setup Github Actions for Hugo</title>
      <link>https://dev-pages.info/setup-github-actions-for-hugo/</link>
      <pubDate>Sun, 19 Apr 2020 17:35:37 +0300</pubDate>
      
      <guid>https://dev-pages.info/setup-github-actions-for-hugo/</guid>
      <description>&lt;p&gt;This blog-post describes how to set up &lt;a href=&#34;https://github.com/features/actions&#34;&gt;Github Actions&lt;/a&gt; for building and deploying &lt;a href=&#34;https://gohugo.io/&#34;&gt;Hugo&lt;/a&gt; using Docker container.&lt;/p&gt;
&lt;p&gt;The described approach is a starting point for further improvements but it will automate the deployment of new blog posts to a remote server where your blog is hosted.&lt;/p&gt;
&lt;p&gt;This blog post doesn&amp;rsquo;t explain every line of the configuration but describes the used approach and refer to the official Github Action documentation.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Ubuntu: How to fix Virtual Box Vboxdrv Error</title>
      <link>https://dev-pages.info/ubuntu-how-to-fix-virtual-box-vboxdrv-error/</link>
      <pubDate>Thu, 09 Apr 2020 22:26:53 +0300</pubDate>
      
      <guid>https://dev-pages.info/ubuntu-how-to-fix-virtual-box-vboxdrv-error/</guid>
      <description>&lt;p&gt;While running &lt;code&gt;sudo /sbin/vboxconfig&lt;/code&gt; the following error may occur:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;vboxdrv.sh: Stopping VirtualBox services.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;vboxdrv.sh: Starting VirtualBox services.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;vboxdrv.sh: Building VirtualBox kernel modules.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;vboxdrv.sh: failed: Look at /var/log/vbox-setup.log to find out what went wrong.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;There were problems setting up VirtualBox.  To re-start the set-up process, run
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  /sbin/vboxconfig
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;as root.  If your system is using EFI Secure Boot you may need to sign the
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kernel modules &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;vboxdrv, vboxnetflt, vboxnetadp, vboxpci&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt; before you can load
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; them. Please see your Linux system&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&amp;#39;&lt;/span&gt;s documentation &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; more information.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;To fix it, run the following command:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Intellij Idea Hotkeys worth knowing</title>
      <link>https://dev-pages.info/intellij-idea-hot-keys-worth-knowing/</link>
      <pubDate>Tue, 14 Jan 2020 21:42:44 +0300</pubDate>
      
      <guid>https://dev-pages.info/intellij-idea-hot-keys-worth-knowing/</guid>
      <description>&lt;p&gt;Here is a list of useful Hotkeys for IntelliJ IDEA which will help to navigate over IDE and code in a more productive way&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How to Enable Nvidia CUDA for Davinci Resolve on Linux</title>
      <link>https://dev-pages.info/how-to-enable-nvidia-cuda-for-davinci-resolve-linux/</link>
      <pubDate>Tue, 27 Aug 2019 22:28:18 +0300</pubDate>
      
      <guid>https://dev-pages.info/how-to-enable-nvidia-cuda-for-davinci-resolve-linux/</guid>
      <description>This post describes how to fix the error No OpenCL Hardware Acceleration Detected on Linux.
First of all make sure that latest NVidia drivers, nvidia-modules, nvidia-kernels are installed for the latest driver version.
For Ubuntu 19.04, nvidia 418 drivers and linux kernel 5.0.0-25 the terminal command will look like:
sudo apt install nvidia-kernel-common-418 nvidia-dkms-418 linux-modules-nvidia-418-5.0.0-25-generic Install NVidia Cuda toolkit To install nvidia cuda toolkit use the following:
sudo apt install nvidia-cuda-toolkit Do Logout after successfull toolkit installation.</description>
    </item>
    
    <item>
      <title>Tuxguitar No Sound</title>
      <link>https://dev-pages.info/tuxguitar-no-sound/</link>
      <pubDate>Fri, 21 Jun 2019 21:36:27 +0300</pubDate>
      
      <guid>https://dev-pages.info/tuxguitar-no-sound/</guid>
      <description>In case if there is no sound in TuxGuitar in linux, do the following
1 Install package tuxguitar-jsa
sudo apt install tuxguitar-jsa 2 Update MIDI port into TuxGuitar settings
Go to Tools -&amp;gt; Settings. A new window with TexGuitar configs will be opened. Find Sound section and change MIDI port to Gervill:
Close Settings window and verify everything works fine.</description>
    </item>
    
    <item>
      <title>Referrals</title>
      <link>https://dev-pages.info/link/digitalocean/</link>
      <pubDate>Sat, 26 Jan 2019 20:44:01 +0300</pubDate>
      
      <guid>https://dev-pages.info/link/digitalocean/</guid>
      <description>A search engnine that respects your privacy.</description>
    </item>
    
    <item>
      <title>Wasteland 2 Director&#39;s Cut: Can&#39;t save or enter at Ranger Citadel under Linux</title>
      <link>https://dev-pages.info/linux-fix-loading-citadel-in-wasteland-2/</link>
      <pubDate>Fri, 18 Jan 2019 17:27:51 +0000</pubDate>
      
      <guid>https://dev-pages.info/linux-fix-loading-citadel-in-wasteland-2/</guid>
      <description>The Linux version of Wasteland 2: Director&#39;s Cut has a weird bug which doesn&amp;rsquo;t allow either to save or enter (sometimes) into Ranger Citadel location. This is an engine-level issue in the used Unity version: Unity loads into memory multiple copies of the sames game files.
To fix this issue we need to update permissions for max open file limits in Linux. Open /etc/security/limits.conf file as root user (or using sudo) and add the following 2 lines at the end of the file:</description>
    </item>
    
    <item>
      <title>Visual Studio Code: How to enable fonts ligatures in Ubuntu</title>
      <link>https://dev-pages.info/linux-how-to-enable-fonts-ligatures/</link>
      <pubDate>Thu, 10 Jan 2019 19:53:26 +0000</pubDate>
      
      <guid>https://dev-pages.info/linux-how-to-enable-fonts-ligatures/</guid>
      <description>Visual Code supports fonts ligatures out of the box. But also an appropriate font with ligatures support is required. Fira Code is one of such fonts. Fira Code can be used not only in Visual Studio Code but also in other editors and IDE (e.g. Intellij Idea).
First of all we need to install Fira Code. For Ubuntu based distributions it&amp;rsquo;s better to install font from official repositories. (With other installations ligatures didn&amp;rsquo;t work for me).</description>
    </item>
    
    <item>
      <title>How to change font size in Skype for Linux</title>
      <link>https://dev-pages.info/how-to-change-font-size-in-skype-for-linux/</link>
      <pubDate>Thu, 20 Dec 2018 20:27:21 +0000</pubDate>
      
      <guid>https://dev-pages.info/how-to-change-font-size-in-skype-for-linux/</guid>
      <description>Skype for Linux doesn&amp;rsquo;t scale fonts well on monitor with high DPI out of the box. Below I provide 2 solutions how to increase font size.
Increase Electron&amp;rsquo;s fonts Because Skype for Linux uses Electron under the hood, which is just a web browser, we can increase font by using Ctrl + Shift + =. Or via menu:
Using such approach menu will still have a small font.
Scale Skype window Another approach is to scale the whole Skype window.</description>
    </item>
    
    <item>
      <title>How to enable high DPI mode in Firefox</title>
      <link>https://dev-pages.info/enabling-high-dpi-mode-in-firefox/</link>
      <pubDate>Thu, 20 Dec 2018 20:02:00 +0000</pubDate>
      
      <guid>https://dev-pages.info/enabling-high-dpi-mode-in-firefox/</guid>
      <description>In our days High DPI monitors become more popular. But unfortunately, still there are issues with some applications on such monitors mostly on all operating systems. �And Firefox on Linux is not an exclusion.
All what is written bellow mostly relevant to Firefox on Linux, because on Windows and Mac OS Firefox looks good out of the box on high DPI monitors.
Right now (when I&amp;rsquo;m writing this) in Linux only KDE can scale monitors out of the box.</description>
    </item>
    
    <item>
      <title>How to run Spring Boot and MongoDB in Docker using Docker Compose</title>
      <link>https://dev-pages.info/how-to-run-spring-boot-and-mongodb-in-docker-using-docker-compose/</link>
      <pubDate>Tue, 26 Dec 2017 08:44:33 +0000</pubDate>
      
      <guid>https://dev-pages.info/how-to-run-spring-boot-and-mongodb-in-docker-using-docker-compose/</guid>
      <description>Into the previous post How to run Spring Boot and MongoDB in Docker container I described how to start Spring Boot web application and MongoDB in docker using Dockerfiles. Described approach works, but has some drawbacks: we need to remember all commands and repeat them from time to time. Into this tutorial I&amp;rsquo;ll describe how to build locally a Docker image with Java application and run it together with MongoDB in Docker containers using Docker Compose.</description>
    </item>
    
    <item>
      <title>Linux: how to make Bluetooth working</title>
      <link>https://dev-pages.info/ubuntu-bluetooth/</link>
      <pubDate>Mon, 06 Nov 2017 13:00:49 +0000</pubDate>
      
      <guid>https://dev-pages.info/ubuntu-bluetooth/</guid>
      <description>This post describes step by step solution of how to make Bluetooth working on Lenovo V580c in linux distributions: Ubuntu 17.10 and Manjero 2017. My Lenovo laptop uses BCM43142 chipset.
Find bluetoth chipset and device ID First of all we need to make sure that we have appropriate Chipset. Open terminal and enter the following command:
lsusb | grep Bluetooth The output will look like:
Bus 001 Device 004: ID 105b:e065 Foxconn International, Inc.</description>
    </item>
    
    <item>
      <title>Scala expressions and definitions cheatsheet</title>
      <link>https://dev-pages.info/scala-categories-of-expressions-cheatsheet/</link>
      <pubDate>Wed, 13 Sep 2017 21:00:55 +0000</pubDate>
      
      <guid>https://dev-pages.info/scala-categories-of-expressions-cheatsheet/</guid>
      <description>Intro This is a cheatsheet of Scala expressions and definitions from Coursera online course Functional Programming Principles in Scala
What is Expression Expression is any bit of Scala code that yields a result. In other words expression evaluates to a result or results in a value
Categories of expressions An identifier such as x, isValid A literal, like 0, 2, abc A function application, like sqrt(x) An operator application, like -x, x+y A selection, like math.</description>
    </item>
    
    <item>
      <title>VSCode: How to change the font size</title>
      <link>https://dev-pages.info/vscode-how-to-change-the-font-size/</link>
      <pubDate>Mon, 22 May 2017 19:07:36 +0000</pubDate>
      
      <guid>https://dev-pages.info/vscode-how-to-change-the-font-size/</guid>
      <description>Visual Studio Code is a lightweight but powerful source code editor which runs on your desktop and is available for Windows, macOS and Linux. It&amp;rsquo;s developed by Microsoft. Here a guide how to change the Editor&amp;rsquo;s font and the font of the hole application (tabs, explorer, etc).
This article describes how to change the VSCode&amp;rsquo;s fonts.
How to open setting There 2 way of opening VSCode&amp;rsquo;s setting:
Over main menu or hot keys: go to File -&amp;gt; Preferences -&amp;gt; Setting (or click on Ctrl + Alt + S) Over setting.</description>
    </item>
    
    <item>
      <title>Principles of Object Oriented Design</title>
      <link>https://dev-pages.info/principles-of-object-oriented-design/</link>
      <pubDate>Tue, 10 Jan 2017 07:53:47 +0000</pubDate>
      
      <guid>https://dev-pages.info/principles-of-object-oriented-design/</guid>
      <description>Intro Here is a list of main principles of Object Oriented Design (OOD) with short description of them. I&amp;rsquo;ll provide detailed descriptions for some of the principles in later posts. OOD principles can be divided into two groups. The first group well known and named SOLID (has 5 principles) and describes class design. The second group (6 principles) is related to the packaging of the application. Principles from these group describe how package and component design helps us to organize large application into packages or components.</description>
    </item>
    
    <item>
      <title>Partitioning in Relational databases</title>
      <link>https://dev-pages.info/partitioning-in-relational-databases/</link>
      <pubDate>Wed, 21 Dec 2016 07:08:59 +0000</pubDate>
      
      <guid>https://dev-pages.info/partitioning-in-relational-databases/</guid>
      <description>Introduction Partitioning is a process of dividing a table into multiple smaller pieces, where each piece of such a database object is called a partition. This tutorial describes what is Partitioning and provided an example of Range partitioning in PostgreSQL database.
Benefits of partitioning Query performance could be increased when: most of the heavily accessed rows of the table are in a single partition or a small number of partitions. queries or updates access a large percentage of a single partition because of sequential scan of that partition instead of using an index and random access reads scattered across the whole table Seldom-used data can be migrated to cheaper and slower storage media Performing maintenance operations on one or more partitions can be made more quickly.</description>
    </item>
    
    <item>
      <title>How to run Spring Boot and MongoDB in  Docker container</title>
      <link>https://dev-pages.info/how-to-run-spring-boot-and-mongodb-in-docker-container/</link>
      <pubDate>Sun, 11 Dec 2016 16:40:42 +0000</pubDate>
      
      <guid>https://dev-pages.info/how-to-run-spring-boot-and-mongodb-in-docker-container/</guid>
      <description>Introduction This tutorial describes how to run Spring Boot application and Mongo DB in Docker containers.
For a demo purposes we&amp;rsquo;ll use the following project: spring-mongo-demo. All sources can be found on Github.
Our goal is to run our Spring Boot application and MongoDB in its own containers.
Some words about Demo project Demo project (spring-boot-demo) is very simple and does the following: it saves the users into Mongo DB. A new added user is displayed in the Users table on the bottom of the page: Requirements We need:</description>
    </item>
    
    <item>
      <title>How to install Docker on Ubuntu 16.04</title>
      <link>https://dev-pages.info/how-to-install-docker-on-ubuntu-16-04/</link>
      <pubDate>Sat, 10 Dec 2016 20:52:50 +0000</pubDate>
      
      <guid>https://dev-pages.info/how-to-install-docker-on-ubuntu-16-04/</guid>
      <description>Introduction Docker is software containerization platform which makes it easier to create, deploy, and run applications by using containers. It&amp;rsquo;s the most popular containerization platform in our days. More details about Docker could be found on Docker official web site or Wikipedia.
This tutorial describes only how to install Docker on Ubuntu 16.04. Installation process on other distribution looks very similar but can have some differences. How to use Docker will be described into future tutorials.</description>
    </item>
    
    <item>
      <title>SQL Query explain plan and Optimization</title>
      <link>https://dev-pages.info/sql-query-explain-plan-and-optimization/</link>
      <pubDate>Mon, 05 Dec 2016 19:20:00 +0000</pubDate>
      
      <guid>https://dev-pages.info/sql-query-explain-plan-and-optimization/</guid>
      <description>Query optimization is determination by relational database the most efficient way to execute a given query by considering the possible query plans. Mostly query optimizer is used by databases for optimizing the query in the best possible way. User doesn&amp;rsquo;t work directly with query optimizer. But some queries can be optimized by exploring its execution plan.
Prepare test data Before we dive into queries optimizations and explain plan, let&amp;rsquo;s prepare a table with test data.</description>
    </item>
    
    <item>
      <title>Indexes into Relational Databases</title>
      <link>https://dev-pages.info/indexes-into-relational-databases/</link>
      <pubDate>Tue, 29 Nov 2016 18:35:55 +0000</pubDate>
      
      <guid>https://dev-pages.info/indexes-into-relational-databases/</guid>
      <description>A database index is a data structure that improves the speed of data retrieval operations on a database table (increase database performance). But such performance has a cost of additional writes to hard drive and storage space to maintain the index data structure. In nutshell, index is a quick path to a single row into database. Indexes allow us to go directly to he required column without scanning the entire database table.</description>
    </item>
    
    <item>
      <title>How to start Ghost as a service on Ubuntu 16.04</title>
      <link>https://dev-pages.info/how-to-start-ghost-as-a-service-on-ubuntu-16-04/</link>
      <pubDate>Tue, 29 Nov 2016 17:36:01 +0000</pubDate>
      
      <guid>https://dev-pages.info/how-to-start-ghost-as-a-service-on-ubuntu-16-04/</guid>
      <description>Official Ghost documentation Deploying Ghost describes how to start Ghost as a service using script for /etc/init.d. This approach work well only for Ubuntu prior version 16.04. In this tutorial I&amp;rsquo;ll describe how to start Ghost as a service using new systemd service manager.
Requirements Ghost should be already installed. *How to install Ghost described here: How to install Ghost on Ubuntu 16.04. Ghost is installed in /var/www/ghost Create systemd script Open terminal as root (or sudo user).</description>
    </item>
    
    <item>
      <title>SQL Transactions and ACID</title>
      <link>https://dev-pages.info/sql-transactions-and-acid/</link>
      <pubDate>Sun, 27 Nov 2016 14:50:12 +0000</pubDate>
      
      <guid>https://dev-pages.info/sql-transactions-and-acid/</guid>
      <description>Transaction is a sequence of one or more SQL operations treated as a logical unit. Transaction could be completed either entirely successfully or not executed at all. Transactions and locking are important aspects of database for supporting multiple users. Into this tutorial we&amp;rsquo;ll take a look atTransaction, ACID, Isolation Levels.
ACID Transaction must have the following properties called ACID, which means the following:
Atomicity: means that transaction must happen as a single unit and exactly once.</description>
    </item>
    
    <item>
      <title>PostgreSQL functions</title>
      <link>https://dev-pages.info/postgresql-functions/</link>
      <pubDate>Wed, 23 Nov 2016 23:14:00 +0000</pubDate>
      
      <guid>https://dev-pages.info/postgresql-functions/</guid>
      <description>PostgreSQL has a lot of built-in functions, such as Trigonometric Functions, String Functions, IP address functions, etc. But we&amp;rsquo;re not limited by built-in functions. PostgreSQL (as well as other RDBMS) allows creating custom functions. In this tutorial we will take a look at user-defined functions.
PostgreSQL supports the following programming languages for writing functions:
SQL PL/pgSQL C PL/Python PL/Tcl some other languages Create functions with PL/pgSQL Functions written in PL/pgSQL can contain a variable declaration, conditional and looping constructions, exception handling and so on.</description>
    </item>
    
    <item>
      <title>How to install Maven on Windows 10</title>
      <link>https://dev-pages.info/how-to-install-maven-on-windows-10/</link>
      <pubDate>Wed, 23 Nov 2016 17:45:00 +0000</pubDate>
      
      <guid>https://dev-pages.info/how-to-install-maven-on-windows-10/</guid>
      <description>Maven is build tool primary for Java projects. In this tutorial I will describe how to install maven on Windows 10 operating system.
Download and install Java To use maven we need to install Java first. If maven is used for Java projects java jdk should be installed, otherwise jre would be enough. Jdk or Jre could be found here.
Download maven After Java (jre or jdk) is installed we need to download Apache Maven from official web site https://maven.</description>
    </item>
    
    <item>
      <title>Git cheat sheet</title>
      <link>https://dev-pages.info/git-cheat-sheet/</link>
      <pubDate>Tue, 22 Nov 2016 20:38:33 +0000</pubDate>
      
      <guid>https://dev-pages.info/git-cheat-sheet/</guid>
      <description>Git is distributed version control system It is very powerful tool and has a lot of features. Also there&amp;rsquo;re a lot GUI tools for working with git. But in this post I&amp;rsquo;ll show how to work with git from terminal (console) in Linux or using git-bash in Windows.
The list of commands will be updated periodically.
Identifying yourself To add user name and email globally:
git config --global user.name &amp;#34;John Doe&amp;#34; git config --global user.</description>
    </item>
    
    <item>
      <title>PostgreSQL data types cheat sheet</title>
      <link>https://dev-pages.info/postgresql-data-types-cheat-sheet/</link>
      <pubDate>Sun, 06 Nov 2016 14:52:39 +0000</pubDate>
      
      <guid>https://dev-pages.info/postgresql-data-types-cheat-sheet/</guid>
      <description>In this tutorial I will show main PostgreSQL data types such as Boolean, Character, Number, Temporal. Also I will describe when and how we can use them.
By the way, Postgres is not limited by the mentioned data types. It also supports such types like JSON, Monetary, Geometric , Network Addresses, etc. The full list of supported data types could be found here: Data Types
Boolean Data Type The boolean type (could be shortened to bool) can store only 2 possible values true or false and NULLin case when value is unknown.</description>
    </item>
    
    <item>
      <title>Java: Ambitious method call</title>
      <link>https://dev-pages.info/java-ambitious-method-call/</link>
      <pubDate>Sun, 30 Oct 2016 18:25:36 +0000</pubDate>
      
      <guid>https://dev-pages.info/java-ambitious-method-call/</guid>
      <description>Ambicious method call error occurs when Java compiler doesn&amp;rsquo;t know which of the overloaded method to call. Let&amp;rsquo;s assume that we have the following overloaded methods: first method accepts the String parameter and prints it. The second method accepts Integer parameter and also prints it.
public void print(String param) { System.out.println(&amp;#34;Printing parameter + &amp;#34;param&amp;#34; + &amp;#34; as String&amp;#34;); } and
public void print(Integer param) { System.out.println(&amp;#34;Printing parameter + &amp;#34; + param + &amp;#34; as Integer&amp;#34;); } Calling one of the methods into the following way print(null) will attempt to the error like this:</description>
    </item>
    
    <item>
      <title>SQL Data Definition Language for Database in PostgreSQL</title>
      <link>https://dev-pages.info/sql-data-definition-language-for-database-in-postgresql/</link>
      <pubDate>Fri, 14 Oct 2016 19:47:42 +0000</pubDate>
      
      <guid>https://dev-pages.info/sql-data-definition-language-for-database-in-postgresql/</guid>
      <description>As was described into my previous post SQL Commands Types cheat sheet Data Definition Language, or just DDL, is a set of commands for creating, deleting, renaming databases and tables. In this tutorial I will describe how to use DDL with databases(schemes). PostgreSQL will be used for demonstration.
How to setup PostgreSQL (and PgAdmin3) on Ubuntu please refer to this tutorial: How to install PostgreSQL on Ubuntu 16.04
CREATE database CREATE DATABASE blog; PostgreSQL will create a database named blog with default parameters.</description>
    </item>
    
    <item>
      <title>How to add a swap file on Ubuntu 16.04</title>
      <link>https://dev-pages.info/how-to-add-a-swap-file-on-ubuntu-16-04/</link>
      <pubDate>Wed, 12 Oct 2016 15:40:00 +0000</pubDate>
      
      <guid>https://dev-pages.info/how-to-add-a-swap-file-on-ubuntu-16-04/</guid>
      <description>Into one of my posts (How to install Ghost on Ubuntu 16.04) I mentioned that error Killedt:iconv-lite → gunz may occur because of using npm on VPS instance with low RAM. I&amp;rsquo;ve got such error while installing Ghost on VPS instance with 512MB of RAM. That happened because npm run out of memory and Linux OOM killer started to kill processed to get memory back to the system. Such problem could be resolved by increasing RAM from 512MB to 1GB or by creating a swap file.</description>
    </item>
    
    <item>
      <title>SQL Commands Types cheat sheet</title>
      <link>https://dev-pages.info/sql-commands-types-cheat-sheet/</link>
      <pubDate>Tue, 11 Oct 2016 14:39:00 +0000</pubDate>
      
      <guid>https://dev-pages.info/sql-commands-types-cheat-sheet/</guid>
      <description>SQL language includes four types of command. In this tutorial I will describe them shortly.
Data Definition Language (DDL) DDL is a set of commands for creating, deleting, renaming databases and tables.
CREATE Creates a new database or a table. ALTER Modifies the structure of a database or a table. DROP	Deletes a database or a table. TRUNCATE Removes all table records, including allocated table spaces. Data Manipulation Language (DML) DML is a set of commands for inserting, deleting, updating and selecting data from the database.</description>
    </item>
    
    <item>
      <title>How to install PostgreSQL on Ubuntu 16.04</title>
      <link>https://dev-pages.info/how-to-install-postgresql-on-ubuntu-16-04/</link>
      <pubDate>Mon, 10 Oct 2016 17:05:00 +0000</pubDate>
      
      <guid>https://dev-pages.info/how-to-install-postgresql-on-ubuntu-16-04/</guid>
      <description>PostgreSQL is a powerful, open source object-relational database system which runs on all major operating systems, including Linux, UNIX and Windows. It is fully ACID compliant, has full support for foreign keys, joins, views, triggers, and stored procedures (in multiple languages).
In this guide, I will describe how to install and configure PostgreSQL on Ubuntu 16.04.
Before installing PostgreSQL let&amp;rsquo;s ensure that our system is up to date.
sudo apt-get update sudo apt-get upgrade Installation Almost all Linux repositories contain PostgreSQL and we can install PostgreSQL from there.</description>
    </item>
    
    <item>
      <title>How to install maven on OpenSUSE</title>
      <link>https://dev-pages.info/how-to-install-maven-on-opensuse/</link>
      <pubDate>Sun, 09 Oct 2016 00:18:56 +0000</pubDate>
      
      <guid>https://dev-pages.info/how-to-install-maven-on-opensuse/</guid>
      <description>By default OpenSUSE Linux distribution doesn&amp;rsquo;t have Maven into its repositories because of tons of dependencies which needed for Maven. But in spite of this Maven installation is straightforward in OpenSUSE.
In this tutorial I will show how to install Maven from its official web site.
First of all we need to download Maven from the official web site. There 2 types of archives there: tar.gz and zip. In this tutorial we will install Maven from the tar.</description>
    </item>
    
    <item>
      <title>Git: How to remove merged branches locally</title>
      <link>https://dev-pages.info/git-how-to-remove-merged-branches-locally/</link>
      <pubDate>Sat, 08 Oct 2016 22:56:08 +0000</pubDate>
      
      <guid>https://dev-pages.info/git-how-to-remove-merged-branches-locally/</guid>
      <description>Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Also Git is a very powerful tool.
Git supports branches. And branches in git cost almost nothing. As a result when we create a new feature, we create a &amp;ldquo;feature branch&amp;rdquo;, work there. When a feature is complete the &amp;ldquo;feature branch&amp;rdquo; is merged to development or master branch.</description>
    </item>
    
    <item>
      <title>How to install Ghost on Ubuntu 16.04</title>
      <link>https://dev-pages.info/how-to-install-ghost-on-ubuntu-16-04/</link>
      <pubDate>Sat, 08 Oct 2016 17:00:00 +0000</pubDate>
      
      <guid>https://dev-pages.info/how-to-install-ghost-on-ubuntu-16-04/</guid>
      <description>Ghost is an opensource lightweight publishing platform for blogging. It uses NodeJS, Ember.js and Handlebars under the hood.
In this tutorial I will describe how to install Ghost on Ubuntu 16.04 VPS instance. If VPS instance has less than 1 GB of RAM installation could be a little bit tricky.
Without further ado let&amp;rsquo;s get started.
Update Ubuntu Before installing any new software it&amp;rsquo;s better to have our system up to date .</description>
    </item>
    
  </channel>
</rss>
