<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: a gorde</title>
    <description>The latest articles on DEV Community by a gorde (@axtant).</description>
    <link>https://dev.to/axtant</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F532699%2F4f55b337-2dc2-4db0-b066-3442dc7ef0cc.jpeg</url>
      <title>DEV Community: a gorde</title>
      <link>https://dev.to/axtant</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/axtant"/>
    <language>en</language>
    <item>
      <title>Build Your Own Cloud Database in Minutes</title>
      <dc:creator>a gorde</dc:creator>
      <pubDate>Tue, 24 Mar 2026 18:38:06 +0000</pubDate>
      <link>https://dev.to/axtant/build-your-own-cloud-database-in-minutes-1dk0</link>
      <guid>https://dev.to/axtant/build-your-own-cloud-database-in-minutes-1dk0</guid>
      <description>&lt;p&gt;This is a step-by-step guide for making a private cloud database for your projects for start you just need a cloud server&lt;/p&gt;

&lt;p&gt;usecase:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;perfect for personal project, centralized database&lt;/li&gt;
&lt;li&gt;full control&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  A. Install PostgreSQL on VM
&lt;/h3&gt;

&lt;p&gt;Im using OVH Cloud as a VM with ubuntu.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Update the package list to get info on the newest versions of packages&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt update

&lt;span class="c"&gt;# Install PostgreSQL database server and additional utilities/extensions&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; postgresql postgresql-contrib

&lt;span class="c"&gt;# Start the PostgreSQL service immediately&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;systemctl start postgresql

&lt;span class="c"&gt;# Enable PostgreSQL to start automatically on every system boot&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;systemctl &lt;span class="nb"&gt;enable &lt;/span&gt;postgresql
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  B. Create a database and user
&lt;/h2&gt;

&lt;p&gt;1- Start PostgreSQL 17&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Start the PostgreSQL cluster (version 17, cluster name "main")&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;pg_ctlcluster 17 main start

&lt;span class="c"&gt;# List all PostgreSQL clusters with their version, name, port, status, and data directory&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;pg_lsclusters
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Ref Screenshot&lt;/em&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8jevax3t34qrwjgwygis.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8jevax3t34qrwjgwygis.png" alt=" " width="800" height="58"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2- Create DB and user&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="o"&gt;#&lt;/span&gt; &lt;span class="n"&gt;Creating&lt;/span&gt; &lt;span class="k"&gt;database&lt;/span&gt; &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="n"&gt;setting&lt;/span&gt; &lt;span class="k"&gt;user&lt;/span&gt;
&lt;span class="err"&gt;$&lt;/span&gt; &lt;span class="n"&gt;sudo&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;u&lt;/span&gt; &lt;span class="n"&gt;postgres&lt;/span&gt; &lt;span class="n"&gt;psql&lt;/span&gt;
&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;DATABASE&lt;/span&gt; &lt;span class="n"&gt;twohype&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;USER&lt;/span&gt; &lt;span class="n"&gt;twohype_user&lt;/span&gt; &lt;span class="k"&gt;WITH&lt;/span&gt; &lt;span class="n"&gt;PASSWORD&lt;/span&gt; &lt;span class="s1"&gt;'yourpassword'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;GRANT&lt;/span&gt; &lt;span class="k"&gt;ALL&lt;/span&gt; &lt;span class="k"&gt;PRIVILEGES&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="k"&gt;DATABASE&lt;/span&gt; &lt;span class="n"&gt;twohype&lt;/span&gt; &lt;span class="k"&gt;TO&lt;/span&gt; &lt;span class="n"&gt;twohype_user&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="n"&gt;q&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;3.1- Allow remote connections&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Open the main PostgreSQL 17 configuration file in the nano text editor&lt;/span&gt;
&lt;span class="c"&gt;# Find and enable; listen_addresses = '*'&lt;/span&gt;

&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;nano /etc/postgresql/17/main/postgresql.conf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzpbgmj6iigiz4ghav4ca.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzpbgmj6iigiz4ghav4ca.png" alt=" " width="671" height="220"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.2- Allow remote connections&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Open the host-based configuration file&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;nano /etc/postgresql/17/main/pg_hba.conf

&lt;span class="c"&gt;# Add at the bottom:&lt;/span&gt;
host    all             all             0.0.0.0/0               md5
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Ref Screenshot&lt;/em&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8vq7qurx440zs2luyuj9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8vq7qurx440zs2luyuj9.png" alt=" " width="642" height="144"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4- Restart and open firewall
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Restart the PostgreSQL service&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;systemctl restart postgresql@17-main

&lt;span class="c"&gt;# Allow incoming TCP traffic on port 5432&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;ufw allow 5432/tcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Note: if your not with root user you might have to enable rule from your VM console&lt;/p&gt;

&lt;p&gt;Voilà! You've just got your personal cloud-based database, which you can use anywhere with&lt;br&gt;
&lt;code&gt;DATABASE_URL="postgresql://twohype_user:yourpassword@YOUR_VM_IP:5432/twohype"&lt;/code&gt;&lt;/p&gt;

</description>
      <category>postgres</category>
      <category>learning</category>
    </item>
    <item>
      <title>oops</title>
      <dc:creator>a gorde</dc:creator>
      <pubDate>Tue, 17 Feb 2026 14:37:05 +0000</pubDate>
      <link>https://dev.to/axtant/oops-4ld3</link>
      <guid>https://dev.to/axtant/oops-4ld3</guid>
      <description>&lt;p&gt;No this is OOPS concepts;&lt;/p&gt;

&lt;p&gt;1) Abstraction&lt;br&gt;
abstraction hiding implementations details and only showing functionality.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;interface one{
     void start();
     // Focus on “what” not “how”
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;2) Encapsulation&lt;br&gt;
 a wrapper which creates the object of the class with private variables but public getters/setters.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class Student {
    private int age;

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;3) Polymorphism&lt;br&gt;
Two Types &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;1
compile time (it overloads the methods)
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int add(int a, int b)
double add(double a, double b)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;2
runtime (it overriders the method)
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class Animal {
    void sound() {
        System.out.println("Barking")}
}

class Dog extends Animal {
    void sound() {
        System.out.println("Bark");
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;4) Inheritance&lt;br&gt;
easy its just in the word it inherit...Hierarchy&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class Animal {
    void eat() {}
}

class Dog extends Animal {
    void bark() {}
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>oop</category>
      <category>programming</category>
    </item>
    <item>
      <title>Java Concepts #1 (Java8, Mircro-services, String)</title>
      <dc:creator>a gorde</dc:creator>
      <pubDate>Mon, 16 Feb 2026 12:47:05 +0000</pubDate>
      <link>https://dev.to/axtant/java-concepts-1-java8-mircro-services-string-3hid</link>
      <guid>https://dev.to/axtant/java-concepts-1-java8-mircro-services-string-3hid</guid>
      <description>&lt;h2&gt;
  
  
  About me
&lt;/h2&gt;

&lt;p&gt;In my previous company, I worked on multiple phases of product lifecycle. I worked on database migration from DB2 to Oracle for a banking client, then contributed to building a microservices-based service manager integrated with RabbitMQ, and also handled maintenance and bug fixes for legacy JSP applications.&lt;/p&gt;




&lt;h2&gt;
  
  
  Java 8
&lt;/h2&gt;

&lt;p&gt;It felt like a big leap forward. Java 1.8 was stacked and released for improved code readability, reduced boilerplate, and enhanced performance.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;some of the features was&lt;/em&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Streams API&lt;/strong&gt; a game changer for clean, realizable code and whole boilerplate reduction. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lambda expression&lt;/strong&gt; are basically short, inline way of writing functions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Default and Static Methods&lt;/strong&gt; in Interfaces aka Functional Interfaces to support Lambda expression.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Where I've used it? I've benefited from lambdas when working with collection like filtering a list of transactions in one line instead of writing loops.&lt;/p&gt;

&lt;p&gt;and yes some additional changes were;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;New Date and Time API&lt;/li&gt;
&lt;li&gt;Method References&lt;/li&gt;
&lt;li&gt;Optional Class&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Microservice architecture
&lt;/h2&gt;

&lt;p&gt;micro - small &amp;amp; service - logic &lt;br&gt;
consider small logics are together combining to make one application. Suppose this as building a factory where every function working separately and support each others work inside, for example packing department as one microservice and Quality Control department as a another together they are can we called as factory or an application.&lt;/p&gt;
&lt;h3&gt;
  
  
  how do you handle inter-service communication ?
&lt;/h3&gt;

&lt;p&gt;classic question but you need to understand what does it takes, Inter-service comms can be handled in two main ways; Asynchronous and Synchronous&lt;/p&gt;
&lt;h2&gt;
  
  
  Strings
&lt;/h2&gt;

&lt;p&gt;Remember as immutable: String is immutable, means onces an object is created, its value cannot be changed. Any modification creates a new object in memory.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;String str = "Hello readers";
String str1 = "Hello readers";
String str2 = new String("Hello readers"); // creates new object

sout(str == Str1) // true
sout(str == strs2) // false
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Before Java 7 String was stored in the PermGen space.&lt;br&gt;
PermGen (Permanent Generation) is a special heap space separated from the main heap memory.&lt;/p&gt;

&lt;p&gt;Reasons being:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PermGen had a fixed size&lt;/li&gt;
&lt;li&gt;Poor tuning and management &lt;/li&gt;
&lt;li&gt;Not Designed for GC's &lt;/li&gt;
&lt;li&gt;Memory fragmentation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;While the entire PermGen was removed completely in java 8 and replaced with &lt;strong&gt;MetaSpace&lt;/strong&gt; for better scalability, performance, and easier management.&lt;/p&gt;

&lt;p&gt;While String begin immutable,&lt;br&gt;
&lt;strong&gt;StringBuilder&lt;/strong&gt; and &lt;strong&gt;StringBuffer&lt;/strong&gt; are mutable, means their content can be modified without creating a new object.&lt;/p&gt;

</description>
      <category>java</category>
      <category>microservices</category>
    </item>
  </channel>
</rss>
