<?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: Esandi Linara</title>
    <description>The latest articles on DEV Community by Esandi Linara (@linara07).</description>
    <link>https://dev.to/linara07</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4131181%2F4acc20d8-dcea-4e98-87a8-2e9057394ac5.jpg</url>
      <title>DEV Community: Esandi Linara</title>
      <link>https://dev.to/linara07</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/linara07"/>
    <language>en</language>
    <item>
      <title>Introduction to DOCKER</title>
      <dc:creator>Esandi Linara</dc:creator>
      <pubDate>Fri, 18 Sep 2026 11:10:29 +0000</pubDate>
      <link>https://dev.to/linara07/introduction-to-docker-45cl</link>
      <guid>https://dev.to/linara07/introduction-to-docker-45cl</guid>
      <description>&lt;p&gt;&lt;strong&gt;What is Docker?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Docker is a tool that lets the user to package up an application along with everything it needs to run. The code, the libraries, the settings, all of it are put into a single neat unit called a container.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why do people use Docker?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Docker exists to kill the "works on my machine" excuse. It does this by packaging apps so they run the same everywhere, making deployment a one-step process, letting each part of an app (database, backend, frontend) run in its own container, keeping teams on the same setup, and fitting neatly into automated testing/deployment pipelines.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advantages of Docker&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Portable: build once, run anywhere&lt;/li&gt;
&lt;li&gt;Lightweight and fast to start&lt;/li&gt;
&lt;li&gt;Keeps apps isolated from each other&lt;/li&gt;
&lt;li&gt;Speeds up releases&lt;/li&gt;
&lt;li&gt;Scales easily with tools like Kubernetes&lt;/li&gt;
&lt;li&gt;Supports easy version rollbacks&lt;/li&gt;
&lt;li&gt;Runs efficiently without multi-OS overhead&lt;/li&gt;
&lt;li&gt;Backed by a huge community and ready-made images&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Disadvantages of Docker&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Carries kernel-level security risk&lt;/li&gt;
&lt;li&gt;Can't truly virtualize a different OS&lt;/li&gt;
&lt;li&gt;Makes long-term data storage trickier&lt;/li&gt;
&lt;li&gt;Adds networking complexity at scale&lt;/li&gt;
&lt;li&gt;Has a real learning curve&lt;/li&gt;
&lt;li&gt;Harder to debug than a normal app&lt;/li&gt;
&lt;li&gt;Small performance cost vs. running natively&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;What is Docker Hub?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Docker Hub is basically the app store for Docker images. It is a cloud-based library where people can upload, share, and download container images. &lt;/p&gt;

&lt;p&gt;It lets the user to store images publicly for free or keep them private with a paid plan. It gives you access to official, verified images for popular software like MySQL, Nginx, Python, and Node. It can automatically rebuild the images whenever you push new code to GitHub, and lets you label images with version tags so you always know exactly what you're running. It is a container, what GitHub is to code a central place to find, share and build on other people's work.&lt;/p&gt;

</description>
      <category>containers</category>
      <category>devops</category>
      <category>docker</category>
    </item>
    <item>
      <title>Maven Basics</title>
      <dc:creator>Esandi Linara</dc:creator>
      <pubDate>Fri, 18 Sep 2026 10:15:52 +0000</pubDate>
      <link>https://dev.to/linara07/maven-basics-4oon</link>
      <guid>https://dev.to/linara07/maven-basics-4oon</guid>
      <description>&lt;p&gt;&lt;strong&gt;1. What is Maven?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Maven is a tool that helps to build and manage Java projects. It handles things like downloading the libraries that project needs, compiling the code, running the tests, and packaging everything into a final file called .jar. Instead of doing all of this manually, Maven does it for you based on a set of rules written in a file called pom.xml. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Advantages of Maven&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Maven downloads the libraries (dependencies), project needs straight from the internet, so there is no need to add them by hand.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Maven has standard project structure so that every Maven project follows the same folder layout, so any developer can jump into a new project and immediately know where things are.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Maven has an easy build process so that a single command like &lt;code&gt;mvn install&lt;/code&gt; can compile the code, run the tests, and package the whole project.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Maven has a huge ecosystem of plugins for testing, reporting, deployment, and more.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. How do you install Maven?&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;First, I made sure Java (JDK) was installed, since Maven needs it to run:java -version&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Then I updated my package list and installed Maven directly using &lt;code&gt;apt&lt;/code&gt;:sudo apt update&lt;br&gt;
        sudo apt install maven&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Once it finished installing, I confirmed everything worked by checking the version: mvn -version&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;4. Display output of maven version&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Apache Maven 3.9.6&lt;br&gt;
Maven home: /usr/share/maven&lt;br&gt;
Java version: 17.0.10, vendor: Ubuntu&lt;br&gt;
Java home: /usr/lib/jvm/java-17-openjdk-amd64&lt;br&gt;
Default locale: en_US, platform encoding: UTF-8&lt;br&gt;
OS name: "linux", version: "6.5.0", arch: "amd64"&lt;/p&gt;

&lt;p&gt;The above output says the Maven version, the Java version it's linked to, and some basic OS details.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. The 3 Types of Maven Repositories&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;(i) Local Repository — A folder on the own computer, where Maven stores every library it downloads. Once something's downloaded once, Maven just reuses it from here instead of re-downloading it every time you build.&lt;/p&gt;

&lt;p&gt;(ii) Central Repository — The default, public repository on the internet (Maven Central) containing thousands of common libraries. If something isn't already in your local repository, Maven looks here next.&lt;/p&gt;

&lt;p&gt;(iii) Remote Repository — A private or custom repository set up by a company or team, often using tools like Artifactory. This is useful for internal libraries that aren't meant to be public, or for controlling exactly which versions of dependencies are approved for use across a team.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Running Unit Tests with Maven&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The command is as follows:&lt;/p&gt;

&lt;p&gt;mvn test&lt;/p&gt;

&lt;p&gt;This compiles the code and runs every test class found under &lt;code&gt;src/test/java&lt;/code&gt;. Under that, Maven uses a plugin called "Surefire" to actually execute the tests, and gives an output as follows:&lt;/p&gt;

&lt;p&gt;Tests run: 1, Failures: 0, Errors: 0, Skipped: 0&lt;br&gt;
BUILD SUCCESS&lt;/p&gt;

&lt;p&gt;If a test fails, the output is as &lt;code&gt;BUILD FAILURE&lt;/code&gt;, along with details on exactly which test failed and why, which makes the debugging pretty straightforward once I understood how to read the output.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>java</category>
      <category>tools</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
