<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Development - Category - Dimas Maulana</title>
    <link>https://dimasmaulana.pages.dev/categories/development/</link>
    <description>Dimas Maulana Website</description>
    <generator>Hugo 0.150.0 &amp; FixIt v0.4.3-20260130042349-e23a50d7</generator>
    <language>en</language>
    <lastBuildDate>Tue, 20 Aug 2024 10:38:00 +0700</lastBuildDate>
    <atom:link href="https://dimasmaulana.pages.dev/categories/development/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Unable to Create GitHub Project Items on iPhone Safari Browser</title>
      <link>https://dimasmaulana.pages.dev/posts/development/unable-to-create-github-project-items-on-iphone-safari-browser/</link>
      <pubDate>Tue, 20 Aug 2024 10:38:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/unable-to-create-github-project-items-on-iphone-safari-browser/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;GitHub mobile app does not allow creating project items, forcing users to access the web version via Safari browser. However, when using the board view on an iPhone running Safari, the &amp;ldquo;Add Item&amp;rdquo; input is not visible when scrolling down.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;solution-1-add-to-home-screen&#34;&gt;&lt;span&gt;Solution 1: Add to Home Screen&lt;/span&gt;&#xA;  &lt;a href=&#34;#solution-1-add-to-home-screen&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;ol&gt;&#xA;&lt;li&gt;Open &lt;code&gt;github.com&lt;/code&gt; from your iPhone&amp;rsquo;s Safari browser.&lt;/li&gt;&#xA;&lt;li&gt;Click the &amp;ldquo;Share&amp;rdquo; button on the bottom of the navigation bar.&lt;/li&gt;&#xA;&lt;li&gt;Select &amp;ldquo;Add to Home Screen.&amp;rdquo;&lt;/li&gt;&#xA;&lt;li&gt;On the &amp;ldquo;Add to Home Screen&amp;rdquo; page, click the &amp;ldquo;Add&amp;rdquo; button.&lt;/li&gt;&#xA;&lt;li&gt;Access GitHub from your home screen. You will now be using the PWA version without a navigation bar.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;solution-2-use-chrome-app&#34;&gt;&lt;span&gt;Solution 2: Use Chrome App&lt;/span&gt;&#xA;  &lt;a href=&#34;#solution-2-use-chrome-app&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Alternatively, you can also use the Google Chrome app on your iPhone, which displays the &amp;ldquo;Add Item&amp;rdquo; input correctly when accessing GitHub project boards.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Renaming Markdown Files Based on Front Matter Date Using Bash Script</title>
      <link>https://dimasmaulana.pages.dev/posts/development/renaming-markdown-files-based-on-front-matter-date-using-bash-script/</link>
      <pubDate>Fri, 01 Sep 2023 05:21:49 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/renaming-markdown-files-based-on-front-matter-date-using-bash-script/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Managing files with meaningful and structured names can greatly enhance organization and accessibility. Suppose you have a collection of Markdown files containing Front Matter sections, each with a &amp;ldquo;date&amp;rdquo; field. You want to rename these files using the date from their Front Matter section to create a consistent and informative naming scheme. This article will guide you through achieving this task using a bash script on macOS.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;prerequisites&#34;&gt;&lt;span&gt;Prerequisites&lt;/span&gt;&#xA;  &lt;a href=&#34;#prerequisites&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;Basic familiarity with the command line interface (CLI).&lt;/li&gt;&#xA;&lt;li&gt;A macOS environment with bash, grep, awk, and date utilities.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;scenario&#34;&gt;&lt;span&gt;Scenario&lt;/span&gt;&#xA;  &lt;a href=&#34;#scenario&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Let&amp;rsquo;s say you have a set of Markdown files in a folder. You want to rename these files based on the date mentioned in their Front Matter sections. Additionally, you want to exclude renaming any files named &amp;ldquo;README.md&amp;rdquo; or &amp;ldquo;template.md.&amp;rdquo;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Best Practices for Git Branch Naming Convention</title>
      <link>https://dimasmaulana.pages.dev/posts/development/best-practices-for-git-branch-naming-convention/</link>
      <pubDate>Thu, 08 Jun 2023 17:06:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/best-practices-for-git-branch-naming-convention/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In the world of software development, Git has become the go-to version control system for managing projects effectively. One aspect that greatly contributes to a streamlined development process is adopting a consistent and meaningful branch naming convention. In this article, we will delve into the best practices for Git branch naming, empowering teams to organize their work and collaborate efficiently.&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Branch Type&lt;/th&gt;&#xA;          &lt;th&gt;Branch Name Examples&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;develop&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;develop&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;main&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;main&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;feature&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;feature/user-authentication&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;feature/shopping-cart&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;feature/payment-integration&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;bugfix&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;bugfix/fix-login-issue&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;bugfix/1234&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;bugfix/calculate-total-error&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;release&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;release/1.0.0&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;release/alpha&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;release/beta&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;hotfix&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;hotfix/critical-bug&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;hotfix/4321&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;hotfix/typo-correction&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;1-develop-a-develop-branch&#34;&gt;&lt;span&gt;1. Develop a &lt;code&gt;develop&lt;/code&gt; Branch&lt;/span&gt;&#xA;  &lt;a href=&#34;#1-develop-a-develop-branch&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;To foster ongoing development work, establish a dedicated branch named &lt;code&gt;develop&lt;/code&gt;. This branch serves as the main staging area for integrating and testing new features before they are ready for production. By using this common convention, developers can easily identify where ongoing development work takes place.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Choosing the Right Language for Asynchronous Web APIs</title>
      <link>https://dimasmaulana.pages.dev/posts/development/choosing-the-right-language-for-asynchronous-web-apis/</link>
      <pubDate>Sat, 03 Jun 2023 19:36:56 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/choosing-the-right-language-for-asynchronous-web-apis/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Building powerful and inexpensive web APIs requires careful consideration of the programming language you use. This article compares various programming languages ​​for their suitability for handling asynchronous operations, scalability, and resource utilization. We dive deep into the strengths and limitations of languages ​​such as Node.js, Go, Java, Python, Ruby, and PHP to help you make informed decisions when choosing the right language for your project.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;nodejs&#34;&gt;&lt;span&gt;Node.js&lt;/span&gt;&#xA;  &lt;a href=&#34;#nodejs&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Event-driven asynchronous programming&#xA;Node.js is known for its asynchronous, event-driven programming model. It excels at handling concurrent requests by using a single thread and non-blocking I/O operations. However, due to its single-threaded nature, it may not be ideal for heavy CPU-based tasks.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Personal Website Outline</title>
      <link>https://dimasmaulana.pages.dev/posts/development/personal-website-outline/</link>
      <pubDate>Tue, 30 May 2023 16:50:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/personal-website-outline/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Within this article, you&amp;rsquo;ll find a prime example of a personal website outline that serves as a valuable reference. This exemplary outline showcases the best practices and design principles employed by experts in the field, offering inspiration and guidance for your web development projects.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;homepage&#34;&gt;&lt;span&gt;Homepage&lt;/span&gt;&#xA;  &lt;a href=&#34;#homepage&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Header:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Executing an Embedded Bash Script in Go with Interactive Input</title>
      <link>https://dimasmaulana.pages.dev/posts/development/executing-an-embedded-bash-script-in-go-with-interactive-input/</link>
      <pubDate>Fri, 26 May 2023 07:52:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/executing-an-embedded-bash-script-in-go-with-interactive-input/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;This article will delve further into the code and explain how to enable interactive input when executing the embedded Bash script. We&amp;rsquo;ll walk through the code and understand how to connect the Go program&amp;rsquo;s standard input to the command&amp;rsquo;s standard input, allowing interaction with the Bash script.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;1-overview-of-the-code&#34;&gt;&lt;span&gt;1. Overview of the Code&lt;/span&gt;&#xA;  &lt;a href=&#34;#1-overview-of-the-code&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;The provided code is a Go program that executes an embedded Bash script. It imports necessary packages such as &lt;code&gt;fmt&lt;/code&gt;, &lt;code&gt;log&lt;/code&gt;, &lt;code&gt;os&lt;/code&gt;, and &lt;code&gt;os/exec&lt;/code&gt; to handle command execution, input/output, and error handling.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Running an Embedded Bash Script with Command-Line Arguments in Go</title>
      <link>https://dimasmaulana.pages.dev/posts/development/running-an-embedded-bash-script-with-command-line-arguments-in-go/</link>
      <pubDate>Thu, 25 May 2023 22:07:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/running-an-embedded-bash-script-with-command-line-arguments-in-go/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In this article, we will explore how to embed a Bash script within a Go program and execute it while passing command-line arguments to the embedded script. This approach allows us to package the script directly within the Go binary, eliminating the need for an external script file. We will leverage the os/exec package and the Go embed feature to achieve this.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;prerequisites&#34;&gt;&lt;span&gt;Prerequisites&lt;/span&gt;&#xA;  &lt;a href=&#34;#prerequisites&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;Basic understanding of Go programming language&lt;/li&gt;&#xA;&lt;li&gt;Familiarity with executing shell scripts&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;step-1-embedding-the-bash-script&#34;&gt;&lt;span&gt;Step 1: Embedding the Bash Script&lt;/span&gt;&#xA;  &lt;a href=&#34;#step-1-embedding-the-bash-script&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;To embed the Bash script in the Go program, we can use the Go embed feature. Place the Bash script file, named &lt;code&gt;bash.sh&lt;/code&gt; in this example, alongside the Go source file. Annotate the script content using the &lt;code&gt;//go:embed&lt;/code&gt; directive to indicate that it should be embedded in the binary:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Enable Obfuscation on Vite Build with HTTP Headers</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-enable-obfuscation-on-vite-build-with-http-headers/</link>
      <pubDate>Thu, 25 May 2023 05:13:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-enable-obfuscation-on-vite-build-with-http-headers/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Obfuscation is a technique used to obscure code and make it harder for others to understand or reverse-engineer. If you&amp;rsquo;re using Vite as your build tool for a JavaScript project and want to enable obfuscation, this article will guide you through the process. Additionally, we&amp;rsquo;ll explore how to enhance the security of your obfuscated code by configuring HTTP headers appropriately.&lt;/p&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;step-1-install-required-packages&#34;&gt;&lt;span&gt;Step 1: Install Required Packages&lt;/span&gt;&#xA;  &lt;a href=&#34;#step-1-install-required-packages&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;p&gt;Step 1: Install Required Packages&#xA;Start by navigating to your project directory and opening the terminal. Then, run the following command to install the required dev dependencies:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hostname Naming Conventions</title>
      <link>https://dimasmaulana.pages.dev/posts/development/hostname-naming-conventions/</link>
      <pubDate>Sun, 23 Oct 2022 12:00:35 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/hostname-naming-conventions/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;h2 class=&#34;heading-element&#34; id=&#34;overview&#34;&gt;&lt;span&gt;Overview&lt;/span&gt;&#xA;  &lt;a href=&#34;#overview&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;A hostname naming convention ensures consistency, clarity, and scalability in IT infrastructure. The naming scheme follows a structured format that includes the function, location, and serial number of a host.&lt;/p&gt;</description>
    </item>
    <item>
      <title>React Beautiful DND Override Z Index When Dragging</title>
      <link>https://dimasmaulana.pages.dev/posts/development/react-beautiful-dnd-override-z-index-when-dragging/</link>
      <pubDate>Thu, 29 Sep 2022 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/react-beautiful-dnd-override-z-index-when-dragging/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In React Beautiful DND, you can override the &lt;code&gt;zIndex&lt;/code&gt; property when an item is being dragged by adding a &lt;code&gt;style&lt;/code&gt; property to the &lt;code&gt;provided.draggableProps&lt;/code&gt; object inside the &lt;code&gt;&amp;lt;Draggable&amp;gt;&lt;/code&gt; component. Setting the &lt;code&gt;zIndex&lt;/code&gt; to &lt;code&gt;0&lt;/code&gt; in this style will ensure that the dragged item has a lower &lt;code&gt;zIndex&lt;/code&gt; value compared to other elements, which can be useful for controlling the stacking order during the drag operation. Here&amp;rsquo;s the code snippet you provided with the relevant line highlighted:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Issue Status Description Naming</title>
      <link>https://dimasmaulana.pages.dev/posts/development/issue-status-description-naming/</link>
      <pubDate>Tue, 20 Sep 2022 05:36:46 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/issue-status-description-naming/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;When tracking and managing issues, it is important to clearly define their status to ensure efficient resolution. Below are the commonly used issue status descriptions and their meanings:&lt;/p&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;new&#34;&gt;&lt;span&gt;&lt;strong&gt;New&lt;/strong&gt;&lt;/span&gt;&#xA;  &lt;a href=&#34;#new&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;p&gt;An issue is marked as &amp;ldquo;New&amp;rdquo; when it has been reported but has not yet been assigned to any individual or group for investigation.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Query Repository Method Naming</title>
      <link>https://dimasmaulana.pages.dev/posts/development/query-repository-method-naming/</link>
      <pubDate>Mon, 29 Aug 2022 05:40:32 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/query-repository-method-naming/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Spring Data JPA provides a powerful method-naming convention for query generation. By following these conventions, developers can create readable and efficient queries without writing explicit SQL or JPQL. This article explores various query method naming strategies, including equality, similarity, comparison conditions, multiple condition expressions, sorting, and recent changes in CrudRepository.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;1-equality-condition-keywords&#34;&gt;&lt;span&gt;1. Equality Condition Keywords&lt;/span&gt;&#xA;  &lt;a href=&#34;#1-equality-condition-keywords&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Exact equality is a common condition in queries. We have several options to express &lt;code&gt;=&lt;/code&gt; or &lt;code&gt;IS&lt;/code&gt; operators:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Issue Title Naming</title>
      <link>https://dimasmaulana.pages.dev/posts/development/issue-title-naming/</link>
      <pubDate>Wed, 17 Aug 2022 09:21:20 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/issue-title-naming/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;h2 class=&#34;heading-element&#34; id=&#34;user-story-titles&#34;&gt;&lt;span&gt;User Story Titles&lt;/span&gt;&#xA;  &lt;a href=&#34;#user-story-titles&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;A user story defines a behavior or feature that a solution must implement to meet user needs. The recommended formats for user story titles are:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Can&#39;t Open SQLite on WSL2 Windows 11</title>
      <link>https://dimasmaulana.pages.dev/posts/development/cant-open-sqlite-on-wsl2-windows-11/</link>
      <pubDate>Wed, 13 Jul 2022 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/cant-open-sqlite-on-wsl2-windows-11/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;SQLite is a popular, lightweight, and serverless database engine used in various applications. However, when working with SQLite on a Windows Subsystem for Linux (WSL2) in Windows 11, you may encounter issues related to file locking. In this article, we will explore the problem, its possible cause, and a solution to resolve it.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;problems&#34;&gt;&lt;span&gt;Problems&lt;/span&gt;&#xA;  &lt;a href=&#34;#problems&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;The primary issue you might face when trying to open an SQLite file located on WSL2 is that the database file is locked. This can prevent you from performing read and write operations on the database, making it challenging to work with SQLite effectively.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Switch Virtual Desktop With Mouse Gesture on Windows 11</title>
      <link>https://dimasmaulana.pages.dev/posts/development/switch-virtual-desktop-with-mouse-gesture-on-windows-11/</link>
      <pubDate>Thu, 30 Jun 2022 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/switch-virtual-desktop-with-mouse-gesture-on-windows-11/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you want to switch virtual desktops with mouse gestures on Windows 11, you can use a third-party software called StrokeIt. StrokeIt is a mouse gesture recognition program that allows you to perform various actions by drawing gestures with your mouse.&lt;/p&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s how you can set up StrokeIt to switch virtual desktops on Windows 11:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Download and Install StrokeIt:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;You can download StrokeIt from its official website &lt;a href=&#34;http://www.tcbmi.com/strokeit/&#34; target=&#34;_blank&#34; rel=&#34;external nofollow noopener noreferrer&#34;&gt;here&lt;/a&gt;. Follow the installation instructions to set it up on your computer.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Login to a Shared Folder with Your Windows Account on Windows 11</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-login-to-a-shared-folder-with-your-windows-account-on-windows-11/</link>
      <pubDate>Wed, 15 Jun 2022 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-login-to-a-shared-folder-with-your-windows-account-on-windows-11/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you want to access a shared folder on Windows 11 using your Windows account password, follow these steps:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Open Settings&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Click on the &lt;strong&gt;Start&lt;/strong&gt; button (Windows logo) in the taskbar.&lt;/li&gt;&#xA;&lt;li&gt;Click on the &lt;strong&gt;Settings&lt;/strong&gt; (gear-shaped) icon to open the Windows Settings app.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Navigate to Accounts&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;In the Windows Settings app, click on the &lt;strong&gt;Accounts&lt;/strong&gt; category.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Change Sign-in Options&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Under the Accounts section, click on &lt;strong&gt;Sign-in options&lt;/strong&gt; in the left sidebar.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Disable Windows Hello (Recommended)&lt;/strong&gt;:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to See Currently Logged in Users in Windows 10 - 11</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-see-currently-logged-in-users-in-windows-10-11/</link>
      <pubDate>Tue, 17 May 2022 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-see-currently-logged-in-users-in-windows-10-11/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you want to see the currently logged-in users on a Windows 10 or Windows 11 system, you can use the Command Prompt and the &lt;code&gt;query user&lt;/code&gt; command. Here&amp;rsquo;s a step-by-step guide on how to do it:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Open Command Prompt:&lt;/strong&gt; Press &lt;code&gt;Win + X&lt;/code&gt; and select &amp;ldquo;Windows Terminal&amp;rdquo; or &amp;ldquo;Command Prompt&amp;rdquo; from the menu. You can also simply search for &amp;ldquo;Command Prompt&amp;rdquo; in the Windows search bar and open it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Building a Go Application with Docker: Optimized Dockerfile</title>
      <link>https://dimasmaulana.pages.dev/posts/development/building-a-go-application-with-docker-optimized-dockerfile/</link>
      <pubDate>Tue, 10 May 2022 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/building-a-go-application-with-docker-optimized-dockerfile/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In this article, we will walk through the creation of an optimized Dockerfile for building and running a Go application. This Dockerfile will focus on building only the binary of the Go application, resulting in a smaller and more efficient Docker image.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;## Dockerfile for Building a Go Application&#xA;&#xA;```Dockerfile&#xA;# Stage 1: Build the Go Binary&#xA;FROM golang:1.17 as builder&#xA;&#xA;# Set the working directory inside the container&#xA;WORKDIR /app&#xA;&#xA;# Copy the Go application source code into the container&#xA;COPY . .&#xA;&#xA;# Set environment variables&#xA;ENV CGO_ENABLED=0&#xA;&#xA;# Fetch dependencies and build the Go binary&#xA;RUN go get -d -v ./...&#xA;RUN go build -o /tmp/api-server .&#xA;&#xA;# Stage 2: Create a minimal runtime image&#xA;FROM scratch&#xA;&#xA;# Copy the binary from the builder stage into the minimal image&#xA;COPY --from=builder /tmp/api-server /usr/bin/api-server&#xA;&#xA;# Define the command to run when the container starts&#xA;CMD [&amp;#34;api-server&amp;#34;, &amp;#34;start&amp;#34;]&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;In this Dockerfile, we use a multi-stage build to optimize the final Docker image. Here&amp;rsquo;s a breakdown of what each section does:&lt;/p&gt;</description>
    </item>
    <item>
      <title>React: Scroll to Top Instantly After Router Transition</title>
      <link>https://dimasmaulana.pages.dev/posts/development/react-scroll-to-top-instantly-after-router-transition/</link>
      <pubDate>Sat, 30 Apr 2022 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/react-scroll-to-top-instantly-after-router-transition/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In a React application, it&amp;rsquo;s common to want to scroll to the top of the page instantly after a router transition, such as when navigating to a new page or route. This provides a smooth user experience and ensures that the user starts reading the new content from the top of the page. To achieve this, you can use JavaScript&amp;rsquo;s &lt;code&gt;window.scrollTo()&lt;/code&gt; method with the &lt;code&gt;behavior: &#39;instant&#39;&lt;/code&gt; option. In this article, we&amp;rsquo;ll explore how to implement this behavior in a React application.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Rename Author on All Commits in Git</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-rename-author-on-all-commits-in-git/</link>
      <pubDate>Fri, 22 Apr 2022 05:36:06 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-rename-author-on-all-commits-in-git/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In Git, there may be situations where you need to update or correct author information on all commits, such as changing email addresses or fixing incorrect names. This guide will explain how to rename authors on all commits using the git-filter-repo tool.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;requirements&#34;&gt;&lt;span&gt;Requirements&lt;/span&gt;&#xA;  &lt;a href=&#34;#requirements&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;ol&gt;&#xA;&lt;li&gt;git-filter-repo: You can install it from the official repository at &lt;a href=&#34;https://github.com/newren/git-filter-repo&#34; target=&#34;_blank&#34; rel=&#34;external nofollow noopener noreferrer&#34;&gt;https://github.com/newren/git-filter-repo&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;procedure&#34;&gt;&lt;span&gt;Procedure&lt;/span&gt;&#xA;  &lt;a href=&#34;#procedure&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;h3 class=&#34;heading-element&#34; id=&#34;step-1-create-a-mailmap-file&#34;&gt;&lt;span&gt;Step 1: Create a .mailmap File&lt;/span&gt;&#xA;  &lt;a href=&#34;#step-1-create-a-mailmap-file&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;p&gt;Create a file named &lt;code&gt;.mailmap&lt;/code&gt; in the root directory of your Git repository. This file will map the old author information to the new author information. The correct format for each entry is as follows:&lt;/p&gt;</description>
    </item>
    <item>
      <title>GIT Commit Message Naming</title>
      <link>https://dimasmaulana.pages.dev/posts/development/git-commit-message-naming/</link>
      <pubDate>Fri, 01 Apr 2022 04:51:17 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/git-commit-message-naming/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;h2 class=&#34;heading-element&#34; id=&#34;introduction&#34;&gt;&lt;span&gt;Introduction&lt;/span&gt;&#xA;  &lt;a href=&#34;#introduction&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;A well-structured commit message is crucial for maintaining a clean and readable project history. The Conventional Commits specification provides a standard format for commit messages, making it easier to generate changelogs, automate versioning, and improve collaboration. This document outlines the naming conventions and structure for Git commit messages.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Git Gitlab Flow</title>
      <link>https://dimasmaulana.pages.dev/posts/development/git-gitlab-flow/</link>
      <pubDate>Mon, 28 Mar 2022 06:17:30 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/git-gitlab-flow/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;GitLab Flow is a set of best practices for using Git with GitLab, combining elements of Git Flow and GitHub Flow to support various workflows. It emphasizes the use of feature branches for development, with integration to GitLab’s CI/CD pipeline for continuous testing and deployment.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;production-branch&#34;&gt;&lt;span&gt;Production Branch&lt;/span&gt;&#xA;  &lt;a href=&#34;#production-branch&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;flowchart TB&#xA;a--&amp;gt;b--&amp;gt;c--&amp;gt;d--&amp;gt;e&#xA;f--&amp;gt;g&#xA;c--deployment--&amp;gt;g&#xA;g--&amp;gt;h&#xA;a[development]&#xA;b[development]&#xA;c[development]&#xA;d[development]&#xA;e[development]&#xA;f[production]&#xA;g[production]&#xA;h[production]&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=&#34;heading-element&#34; id=&#34;environtment-branches&#34;&gt;&lt;span&gt;Environtment Branches&lt;/span&gt;&#xA;  &lt;a href=&#34;#environtment-branches&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;flowchart LR&#xA;a--&amp;gt;b--&amp;gt;c--&amp;gt;d&#xA;e--&amp;gt;f--&amp;gt;g--&amp;gt;h&#xA;i--&amp;gt;j--&amp;gt;k&#xA;a--deploy to\npre-prod--&amp;gt;e&#xA;c--deploy to\npre-prod--&amp;gt;g&#xA;e--production\ndeployment--&amp;gt;j&#xA;a[staging]&#xA;b[staging]&#xA;c[staging]&#xA;d[staging]&#xA;e[pre-prod]&#xA;f[pre-prod]&#xA;g[pre-prod]&#xA;h[pre-prod]&#xA;i[production]&#xA;j[production]&#xA;k[production]&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=&#34;heading-element&#34; id=&#34;release-branches&#34;&gt;&lt;span&gt;Release Branches&lt;/span&gt;&#xA;  &lt;a href=&#34;#release-branches&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;flowchart LR&#xA;a--&amp;gt;b--&amp;gt;c--&amp;gt;d--&amp;gt;e&#xA;a--&amp;gt;f--&amp;gt;g&#xA;c-.-chery-pick-.-&amp;gt;g&#xA;d--&amp;gt;i&#xA;a[main]&#xA;b[main]&#xA;c[main]&#xA;d[main]&#xA;e[main]&#xA;f[2.3-stable]&#xA;g[2.3-stable]&#xA;i[2.4-stable]&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>Issue Type</title>
      <link>https://dimasmaulana.pages.dev/posts/development/issue-type/</link>
      <pubDate>Mon, 28 Mar 2022 06:07:55 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/issue-type/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;h2 class=&#34;heading-element&#34; id=&#34;business-projects&#34;&gt;&lt;span&gt;Business Projects&lt;/span&gt;&#xA;  &lt;a href=&#34;#business-projects&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Business projects typically include the following issue types:&lt;/p&gt;</description>
    </item>
    <item>
      <title>User Roles Naming</title>
      <link>https://dimasmaulana.pages.dev/posts/development/user-roles-naming/</link>
      <pubDate>Sun, 27 Mar 2022 22:06:23 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/user-roles-naming/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Effective user role naming is essential for managing access control and permissions in systems, applications, and organizations. Well-structured role names enhance clarity, consistency, scalability, and security, ensuring that responsibilities and access levels are accurately represented.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;key-principles&#34;&gt;&lt;span&gt;Key Principles&lt;/span&gt;&#xA;  &lt;a href=&#34;#key-principles&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Clarity&lt;/strong&gt; – Role names should be self-explanatory and easily understood by all stakeholders.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Consistency&lt;/strong&gt; – Maintain uniform naming conventions across all roles to prevent confusion.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Scalability&lt;/strong&gt; – Design role names that accommodate future expansions or modifications.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Security&lt;/strong&gt; – Ensure that role names reflect the appropriate access levels without exposing sensitive information.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;example-role-hierarchy&#34;&gt;&lt;span&gt;Example Role Hierarchy&lt;/span&gt;&#xA;  &lt;a href=&#34;#example-role-hierarchy&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;flowchart LR&#xA;a[Site Visitor] --&amp;gt; b[Former Member]&#xA;a --&amp;gt; c[Registered Member]&#xA;a --&amp;gt; d[Known Visitor]&#xA;a --&amp;gt; e[Unknown Visitor]&#xA;c --&amp;gt; f[Premium Member]&#xA;c --&amp;gt; g[Trial Member]&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=&#34;heading-element&#34; id=&#34;explanation&#34;&gt;&lt;span&gt;Explanation&lt;/span&gt;&#xA;  &lt;a href=&#34;#explanation&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Site Visitor&lt;/strong&gt;: A general user without an account.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Former Member&lt;/strong&gt;: A user who previously had an account but is now inactive.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Registered Member&lt;/strong&gt;: An active user with a registered account.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Premium Member&lt;/strong&gt;: A user with a paid or upgraded membership.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Trial Member&lt;/strong&gt;: A user on a temporary trial plan.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Known Visitor&lt;/strong&gt;: A non-registered user recognized through tracking mechanisms.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Unknown Visitor&lt;/strong&gt;: A completely anonymous user.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;conclusion&#34;&gt;&lt;span&gt;Conclusion&lt;/span&gt;&#xA;  &lt;a href=&#34;#conclusion&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;p&gt;Adopting structured and meaningful role names improves system usability, security, and scalability. Organizations should define roles carefully to align with business needs while maintaining clear distinctions in access levels.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Get Yesterday&#39;s Date in Bash on Mac and Ubuntu</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-get-yesterdays-date-in-bash-on-mac-and-ubuntu/</link>
      <pubDate>Fri, 04 Mar 2022 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-get-yesterdays-date-in-bash-on-mac-and-ubuntu/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In Bash scripting, there are various ways to retrieve yesterday&amp;rsquo;s date on both Mac and Ubuntu systems. Below, we&amp;rsquo;ll demonstrate two different methods for each operating system.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;mac&#34;&gt;&lt;span&gt;Mac:&lt;/span&gt;&#xA;  &lt;a href=&#34;#mac&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;h3 class=&#34;heading-element&#34; id=&#34;method-1-using-date-with--v-option&#34;&gt;&lt;span&gt;Method 1: Using &lt;code&gt;date&lt;/code&gt; with &lt;code&gt;-v&lt;/code&gt; option&lt;/span&gt;&#xA;  &lt;a href=&#34;#method-1-using-date-with--v-option&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;yesterday=$(date -v-1d &amp;#43;%F)&#xA;echo &amp;#34;Yesterday&amp;#39;s date on Mac: $yesterday&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;In this method, we use the &lt;code&gt;-v&lt;/code&gt; option with the &lt;code&gt;date&lt;/code&gt; command to subtract 1 day from the current date and format it as &lt;code&gt;%F&lt;/code&gt;, which gives the date in YYYY-MM-DD format.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shell Bash Export variable</title>
      <link>https://dimasmaulana.pages.dev/posts/development/shell-bash-export-variable/</link>
      <pubDate>Fri, 04 Mar 2022 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/shell-bash-export-variable/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;It looks like you&amp;rsquo;re trying to use the &lt;code&gt;eval&lt;/code&gt; command in a Bash script to export variables loaded from a dotenv file using the &lt;code&gt;shdotenv&lt;/code&gt; tool. This is a common practice for setting environment variables from a configuration file. Here&amp;rsquo;s an explanation of what this code does:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;code&gt;shdotenv&lt;/code&gt; is likely a command or script that reads a dotenv file (usually named &lt;code&gt;.env&lt;/code&gt;) and sets environment variables based on the key-value pairs defined in that file. Dotenv files are commonly used to store configuration variables for applications.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Golang Interface{} and Type Assertions</title>
      <link>https://dimasmaulana.pages.dev/posts/development/golang-interface-and-type-assertions/</link>
      <pubDate>Sat, 26 Feb 2022 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/golang-interface-and-type-assertions/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In Go (Golang), the &lt;code&gt;interface{}&lt;/code&gt; type is an empty interface that can hold values of any type. It is often used when you need to work with values of unknown or varied types. Type assertions allow you to extract and work with the underlying concrete type of a value stored in an &lt;code&gt;interface{}&lt;/code&gt;. Here, we&amp;rsquo;ll explore how to use &lt;code&gt;interface{}&lt;/code&gt; and type assertions in Go.&lt;/p&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;storing-different-types-in-an-interface&#34;&gt;&lt;span&gt;Storing Different Types in an &lt;code&gt;interface{}&lt;/code&gt;&lt;/span&gt;&#xA;  &lt;a href=&#34;#storing-different-types-in-an-interface&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;p&gt;You can store values of different types in an &lt;code&gt;interface{}&lt;/code&gt;. Here&amp;rsquo;s an example:&lt;/p&gt;</description>
    </item>
    <item>
      <title>REST API Status Code Example</title>
      <link>https://dimasmaulana.pages.dev/posts/development/rest-api-status-code-example/</link>
      <pubDate>Fri, 25 Feb 2022 09:57:46 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/rest-api-status-code-example/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;h2 class=&#34;heading-element&#34; id=&#34;introduction&#34;&gt;&lt;span&gt;Introduction&lt;/span&gt;&#xA;  &lt;a href=&#34;#introduction&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;HTTP status codes are essential in REST APIs as they indicate the outcome of client requests. These standardized codes help clients understand whether their request was successful, requires further action, or encountered an error. Below is an overview of key HTTP status codes categorized by their respective classes.&lt;/p&gt;</description>
    </item>
    <item>
      <title>REST API Success Response Example</title>
      <link>https://dimasmaulana.pages.dev/posts/development/rest-api-success-response-example-/</link>
      <pubDate>Tue, 22 Feb 2022 22:03:47 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/rest-api-success-response-example-/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;h2 class=&#34;heading-element&#34; id=&#34;overview&#34;&gt;&lt;span&gt;Overview&lt;/span&gt;&#xA;  &lt;a href=&#34;#overview&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;This document provides an example of a successful response from a REST API when creating a new resource. The response follows a structured format, including essential details such as the resource ID, attributes, timestamps, and metadata.&lt;/p&gt;</description>
    </item>
    <item>
      <title>REST API Error Response Example</title>
      <link>https://dimasmaulana.pages.dev/posts/development/rest-api-error-response-example/</link>
      <pubDate>Tue, 22 Feb 2022 21:57:44 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/rest-api-error-response-example/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;REST APIs should provide clear and structured error responses to help clients understand and resolve issues effectively. Below are examples of different types of error responses that an API might return.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;single-error-responses&#34;&gt;&lt;span&gt;Single Error Responses&lt;/span&gt;&#xA;  &lt;a href=&#34;#single-error-responses&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;h3 class=&#34;heading-element&#34; id=&#34;incorrect-username-or-password&#34;&gt;&lt;span&gt;Incorrect Username or Password&lt;/span&gt;&#xA;  &lt;a href=&#34;#incorrect-username-or-password&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;{&#xA;    &amp;#34;type&amp;#34;: &amp;#34;/errors/incorrect-user-pass&amp;#34;,&#xA;    &amp;#34;title&amp;#34;: &amp;#34;Incorrect username or password.&amp;#34;,&#xA;    &amp;#34;status&amp;#34;: 401,&#xA;    &amp;#34;detail&amp;#34;: &amp;#34;Authentication failed due to incorrect username or password.&amp;#34;,&#xA;    &amp;#34;instance&amp;#34;: &amp;#34;/login/log/abc123&amp;#34;&#xA;}&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=&#34;heading-element&#34; id=&#34;validation-errors&#34;&gt;&lt;span&gt;Validation Errors&lt;/span&gt;&#xA;  &lt;a href=&#34;#validation-errors&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;h4 class=&#34;heading-element&#34; id=&#34;title-must-be-defined&#34;&gt;&lt;span&gt;Title Must Be Defined&lt;/span&gt;&#xA;  &lt;a href=&#34;#title-must-be-defined&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h4&gt;&lt;pre&gt;&lt;code&gt;{&#xA;    &amp;#34;data&amp;#34;: null,&#xA;    &amp;#34;error&amp;#34;: {&#xA;        &amp;#34;status&amp;#34;: 400,&#xA;        &amp;#34;name&amp;#34;: &amp;#34;ValidationError&amp;#34;,&#xA;        &amp;#34;message&amp;#34;: &amp;#34;title must be defined.&amp;#34;,&#xA;        &amp;#34;details&amp;#34;: {&#xA;            &amp;#34;errors&amp;#34;: [&#xA;                {&#xA;                    &amp;#34;path&amp;#34;: [&amp;#34;title&amp;#34;],&#xA;                    &amp;#34;message&amp;#34;: &amp;#34;title must be defined.&amp;#34;,&#xA;                    &amp;#34;name&amp;#34;: &amp;#34;ValidationError&amp;#34;&#xA;                }&#xA;            ]&#xA;        }&#xA;    }&#xA;}&lt;/code&gt;&lt;/pre&gt;&lt;h4 class=&#34;heading-element&#34; id=&#34;name-must-be-at-most-50-characters&#34;&gt;&lt;span&gt;Name Must Be At Most 50 Characters&lt;/span&gt;&#xA;  &lt;a href=&#34;#name-must-be-at-most-50-characters&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h4&gt;&lt;pre&gt;&lt;code&gt;{&#xA;    &amp;#34;data&amp;#34;: null,&#xA;    &amp;#34;error&amp;#34;: {&#xA;        &amp;#34;status&amp;#34;: 400,&#xA;        &amp;#34;name&amp;#34;: &amp;#34;ValidationError&amp;#34;,&#xA;        &amp;#34;message&amp;#34;: &amp;#34;name must be at most 50 characters&amp;#34;,&#xA;        &amp;#34;details&amp;#34;: {&#xA;            &amp;#34;errors&amp;#34;: [&#xA;                {&#xA;                    &amp;#34;path&amp;#34;: [&amp;#34;name&amp;#34;],&#xA;                    &amp;#34;message&amp;#34;: &amp;#34;name must be at most 50 characters&amp;#34;,&#xA;                    &amp;#34;name&amp;#34;: &amp;#34;ValidationError&amp;#34;&#xA;                }&#xA;            ]&#xA;        }&#xA;    }&#xA;}&lt;/code&gt;&lt;/pre&gt;&lt;h4 class=&#34;heading-element&#34; id=&#34;this-attribute-must-be-unique&#34;&gt;&lt;span&gt;This Attribute Must Be Unique&lt;/span&gt;&#xA;  &lt;a href=&#34;#this-attribute-must-be-unique&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h4&gt;&lt;pre&gt;&lt;code&gt;{&#xA;    &amp;#34;data&amp;#34;: null,&#xA;    &amp;#34;error&amp;#34;: {&#xA;        &amp;#34;status&amp;#34;: 400,&#xA;        &amp;#34;name&amp;#34;: &amp;#34;ValidationError&amp;#34;,&#xA;        &amp;#34;message&amp;#34;: &amp;#34;This attribute must be unique&amp;#34;,&#xA;        &amp;#34;details&amp;#34;: {&#xA;            &amp;#34;errors&amp;#34;: [&#xA;                {&#xA;                    &amp;#34;path&amp;#34;: [&amp;#34;name&amp;#34;],&#xA;                    &amp;#34;message&amp;#34;: &amp;#34;This attribute must be unique&amp;#34;,&#xA;                    &amp;#34;name&amp;#34;: &amp;#34;ValidationError&amp;#34;&#xA;                }&#xA;            ]&#xA;        }&#xA;    }&#xA;}&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;authentication-errors&#34;&gt;&lt;span&gt;Authentication Errors&lt;/span&gt;&#xA;  &lt;a href=&#34;#authentication-errors&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;h3 class=&#34;heading-element&#34; id=&#34;no-authorization-provided&#34;&gt;&lt;span&gt;No Authorization Provided&lt;/span&gt;&#xA;  &lt;a href=&#34;#no-authorization-provided&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;{&#xA;    &amp;#34;data&amp;#34;: null,&#xA;    &amp;#34;error&amp;#34;: {&#xA;        &amp;#34;status&amp;#34;: 403,&#xA;        &amp;#34;name&amp;#34;: &amp;#34;ForbiddenError&amp;#34;,&#xA;        &amp;#34;message&amp;#34;: &amp;#34;Forbidden&amp;#34;,&#xA;        &amp;#34;details&amp;#34;: {}&#xA;    }&#xA;}&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=&#34;heading-element&#34; id=&#34;invalid-authentication&#34;&gt;&lt;span&gt;Invalid Authentication&lt;/span&gt;&#xA;  &lt;a href=&#34;#invalid-authentication&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;{&#xA;    &amp;#34;data&amp;#34;: null,&#xA;    &amp;#34;error&amp;#34;: {&#xA;        &amp;#34;status&amp;#34;: 401,&#xA;        &amp;#34;name&amp;#34;: &amp;#34;UnauthorizedError&amp;#34;,&#xA;        &amp;#34;message&amp;#34;: &amp;#34;Missing or invalid credentials&amp;#34;,&#xA;        &amp;#34;details&amp;#34;: {}&#xA;    }&#xA;}&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;multiple-errors&#34;&gt;&lt;span&gt;Multiple Errors&lt;/span&gt;&#xA;  &lt;a href=&#34;#multiple-errors&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;h3 class=&#34;heading-element&#34; id=&#34;name-and-title-must-be-defined&#34;&gt;&lt;span&gt;Name and Title Must Be Defined&lt;/span&gt;&#xA;  &lt;a href=&#34;#name-and-title-must-be-defined&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;{&#xA;    &amp;#34;data&amp;#34;: null,&#xA;    &amp;#34;error&amp;#34;: {&#xA;        &amp;#34;status&amp;#34;: 400,&#xA;        &amp;#34;name&amp;#34;: &amp;#34;ValidationError&amp;#34;,&#xA;        &amp;#34;message&amp;#34;: &amp;#34;2 errors occurred&amp;#34;,&#xA;        &amp;#34;details&amp;#34;: {&#xA;            &amp;#34;errors&amp;#34;: [&#xA;                {&#xA;                    &amp;#34;path&amp;#34;: [&amp;#34;name&amp;#34;],&#xA;                    &amp;#34;message&amp;#34;: &amp;#34;name must be defined.&amp;#34;,&#xA;                    &amp;#34;name&amp;#34;: &amp;#34;ValidationError&amp;#34;&#xA;                },&#xA;                {&#xA;                    &amp;#34;path&amp;#34;: [&amp;#34;title&amp;#34;],&#xA;                    &amp;#34;message&amp;#34;: &amp;#34;title must be defined.&amp;#34;,&#xA;                    &amp;#34;name&amp;#34;: &amp;#34;ValidationError&amp;#34;&#xA;                }&#xA;            ]&#xA;        }&#xA;    }&#xA;}&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;field-specific-validation-errors&#34;&gt;&lt;span&gt;Field-Specific Validation Errors&lt;/span&gt;&#xA;  &lt;a href=&#34;#field-specific-validation-errors&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;h3 class=&#34;heading-element&#34; id=&#34;field-too-short&#34;&gt;&lt;span&gt;Field Too Short&lt;/span&gt;&#xA;  &lt;a href=&#34;#field-too-short&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;{&#xA;  &amp;#34;placement&amp;#34;: &amp;#34;field&amp;#34;,&#xA;  &amp;#34;title&amp;#34;: &amp;#34;value too short&amp;#34;,&#xA;  &amp;#34;detail&amp;#34;: &amp;#34;field username must be at least 4 symbols&amp;#34;,&#xA;  &amp;#34;location&amp;#34;: &amp;#34;username&amp;#34;,&#xA;  &amp;#34;field&amp;#34;: &amp;#34;username&amp;#34;,&#xA;  &amp;#34;code&amp;#34;: &amp;#34;validation.min&amp;#34;,&#xA;  &amp;#34;expression&amp;#34;: &amp;#34;min&amp;#34;,&#xA;  &amp;#34;argument&amp;#34;: &amp;#34;4&amp;#34;,&#xA;  &amp;#34;traceid&amp;#34;: &amp;#34;74681b27-b1ea-454d-9847-d27059e19119&amp;#34;,&#xA;  &amp;#34;stacktraces&amp;#34;: [&#xA; {&#xA;   &amp;#34;file&amp;#34;: &amp;#34;model/response.go&amp;#34;,&#xA;   &amp;#34;function&amp;#34;: &amp;#34;model.(*ErrorMessage).LogStacktraceWithErr&amp;#34;,&#xA;   &amp;#34;linenumber&amp;#34;: 22,&#xA;   &amp;#34;realerror&amp;#34;: null&#xA; },&#xA; {&#xA;   &amp;#34;file&amp;#34;: &amp;#34;helpers/validator.go&amp;#34;,&#xA;   &amp;#34;function&amp;#34;: &amp;#34;helpers.Validator&amp;#34;,&#xA;   &amp;#34;linenumber&amp;#34;: 58,&#xA;   &amp;#34;realerror&amp;#34;: null&#xA; },&#xA; {&#xA;   &amp;#34;file&amp;#34;: &amp;#34;handlers/registration.go&amp;#34;,&#xA;   &amp;#34;function&amp;#34;: &amp;#34;handlers.RegistrationHandler&amp;#34;,&#xA;   &amp;#34;linenumber&amp;#34;: 61,&#xA;   &amp;#34;realerror&amp;#34;: null&#xA; }&#xA;  ]&#xA;}&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=&#34;heading-element&#34; id=&#34;password-and-confirm-password-must-match&#34;&gt;&lt;span&gt;Password and Confirm Password Must Match&lt;/span&gt;&#xA;  &lt;a href=&#34;#password-and-confirm-password-must-match&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;{&#xA;  &amp;#34;placement&amp;#34;: &amp;#34;field&amp;#34;,&#xA;  &amp;#34;title&amp;#34;: &amp;#34;must be equal&amp;#34;,&#xA;  &amp;#34;detail&amp;#34;: &amp;#34;field password is not equal to field confirmpassword&amp;#34;,&#xA;  &amp;#34;location&amp;#34;: &amp;#34;password&amp;#34;,&#xA;  &amp;#34;field&amp;#34;: &amp;#34;password&amp;#34;,&#xA;  &amp;#34;code&amp;#34;: &amp;#34;validation.equal&amp;#34;,&#xA;  &amp;#34;expression&amp;#34;: &amp;#34;equal&amp;#34;,&#xA;  &amp;#34;argument&amp;#34;: &amp;#34;confirmpassword&amp;#34;,&#xA;  &amp;#34;traceid&amp;#34;: &amp;#34;e017ecb2-d72f-4f79-889f-6c42126970a8&amp;#34;,&#xA;  &amp;#34;stacktraces&amp;#34;: [&#xA; {&#xA;   &amp;#34;file&amp;#34;: &amp;#34;model/response.go&amp;#34;,&#xA;   &amp;#34;function&amp;#34;: &amp;#34;model.(*ErrorMessage).LogStacktraceWithErr&amp;#34;,&#xA;   &amp;#34;linenumber&amp;#34;: 22,&#xA;   &amp;#34;realerror&amp;#34;: null&#xA; },&#xA; {&#xA;   &amp;#34;file&amp;#34;: &amp;#34;helpers/validator.go&amp;#34;,&#xA;   &amp;#34;function&amp;#34;: &amp;#34;helpers.Validator&amp;#34;,&#xA;   &amp;#34;linenumber&amp;#34;: 58,&#xA;   &amp;#34;realerror&amp;#34;: null&#xA; },&#xA; {&#xA;   &amp;#34;file&amp;#34;: &amp;#34;handlers/registration.go&amp;#34;,&#xA;   &amp;#34;function&amp;#34;: &amp;#34;handlers.RegistrationHandler&amp;#34;,&#xA;   &amp;#34;linenumber&amp;#34;: 61,&#xA;   &amp;#34;realerror&amp;#34;: null&#xA; }&#xA;  ]&#xA;}&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=&#34;heading-element&#34; id=&#34;incorrect-email-format&#34;&gt;&lt;span&gt;Incorrect Email Format&lt;/span&gt;&#xA;  &lt;a href=&#34;#incorrect-email-format&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;{&#xA;  &amp;#34;placement&amp;#34;: &amp;#34;field&amp;#34;,&#xA;  &amp;#34;title&amp;#34;: &amp;#34;incorrect email format&amp;#34;,&#xA;  &amp;#34;detail&amp;#34;: &amp;#34;field email has incorrect value&amp;#34;,&#xA;  &amp;#34;location&amp;#34;: &amp;#34;email&amp;#34;,&#xA;  &amp;#34;field&amp;#34;: &amp;#34;email&amp;#34;,&#xA;  &amp;#34;code&amp;#34;: &amp;#34;validation.email&amp;#34;,&#xA;  &amp;#34;expression&amp;#34;: null,&#xA;  &amp;#34;argument&amp;#34;: null,&#xA;  &amp;#34;traceid&amp;#34;: &amp;#34;cecda6b8-7ce8-4054-8c06-9382320afd78&amp;#34;,&#xA;  &amp;#34;stacktraces&amp;#34;: [&#xA; {&#xA;   &amp;#34;file&amp;#34;: &amp;#34;model/response.go&amp;#34;,&#xA;   &amp;#34;function&amp;#34;: &amp;#34;model.(*ErrorMessage).LogStacktraceWithErr&amp;#34;,&#xA;   &amp;#34;linenumber&amp;#34;: 22,&#xA;   &amp;#34;realerror&amp;#34;: null&#xA; },&#xA; {&#xA;   &amp;#34;file&amp;#34;: &amp;#34;helpers/validator.go&amp;#34;,&#xA;   &amp;#34;function&amp;#34;: &amp;#34;helpers.Validator&amp;#34;,&#xA;   &amp;#34;linenumber&amp;#34;: 58,&#xA;   &amp;#34;realerror&amp;#34;: null&#xA; },&#xA; {&#xA;   &amp;#34;file&amp;#34;: &amp;#34;handlers/registration.go&amp;#34;,&#xA;   &amp;#34;function&amp;#34;: &amp;#34;handlers.RegistrationHandler&amp;#34;,&#xA;   &amp;#34;linenumber&amp;#34;: 61,&#xA;   &amp;#34;realerror&amp;#34;: null&#xA; }&#xA;  ]&#xA;}&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#xA;&lt;p&gt;These error responses provide a consistent structure, making it easier for clients to handle errors programmatically and display meaningful messages to users.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Golang Go Get Postgres Error</title>
      <link>https://dimasmaulana.pages.dev/posts/development/golang-go-get-postgres-error/</link>
      <pubDate>Tue, 22 Feb 2022 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/golang-go-get-postgres-error/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;You are dealing with error handling in Go when working with PostgreSQL using the &lt;code&gt;pq&lt;/code&gt; package. The code you provided demonstrates two different ways to handle and extract error information from a &lt;code&gt;pq.Error&lt;/code&gt; type.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s break down both of these code snippets:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Using Type Assertion:&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;pre&gt;&lt;code&gt;pqErr := err.(*pq.Error)&#xA;log.Println(pqErr.Code)&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;In this code, you are using a type assertion to check if the &lt;code&gt;err&lt;/code&gt; is of type &lt;code&gt;*pq.Error&lt;/code&gt;, and if it is, you extract the &lt;code&gt;Code&lt;/code&gt; field from the &lt;code&gt;pq.Error&lt;/code&gt; struct and log it. This approach assumes that &lt;code&gt;err&lt;/code&gt; is a &lt;code&gt;pq.Error&lt;/code&gt; type, and if it&amp;rsquo;s not, it will result in a runtime panic. So, it&amp;rsquo;s essential to be sure that &lt;code&gt;err&lt;/code&gt; is indeed of type &lt;code&gt;*pq.Error&lt;/code&gt; before using this approach.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bash Shell Ignore Error on particular Command</title>
      <link>https://dimasmaulana.pages.dev/posts/development/bash-shell-ignore-error-on-particular-command/</link>
      <pubDate>Mon, 21 Feb 2022 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/bash-shell-ignore-error-on-particular-command/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In Bash scripting, you can use the &lt;code&gt;|| true&lt;/code&gt; construct to ignore errors for a particular command or script. This is a common technique used to ensure that a script continues executing even if a specific command fails. Here&amp;rsquo;s how it works:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;particular_script || true&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;In this example, &lt;code&gt;particular_script&lt;/code&gt; is the command or script that you want to run, and &lt;code&gt;|| true&lt;/code&gt; is added at the end of the command. The &lt;code&gt;||&lt;/code&gt; operator is used for conditional execution. It means that if &lt;code&gt;particular_script&lt;/code&gt; fails (returns a non-zero exit status), the &lt;code&gt;true&lt;/code&gt; command will always execute, effectively ignoring the error and allowing the script to continue running.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Delve Dlv Not Restart When Update Files On Golang Cosmtrek Air 12710…</title>
      <link>https://dimasmaulana.pages.dev/posts/development/delve-dlv-not-restarting-when-updating-files-in-go-using-cosmtrekair-12710/</link>
      <pubDate>Mon, 21 Feb 2022 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/delve-dlv-not-restarting-when-updating-files-in-go-using-cosmtrekair-12710/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you&amp;rsquo;re facing issues with Delve (&lt;code&gt;dlv&lt;/code&gt;) not restarting when updating files in your Go project using Cosmtrek/Air version 1.27.10 and encountering a &amp;ldquo;port address already in use&amp;rdquo; error, there are a couple of solutions you can try. This problem often occurs due to lingering Delve processes that prevent the tool from restarting properly.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;solution-1-revert-to-a-previous-version&#34;&gt;&lt;span&gt;Solution 1: Revert to a Previous Version&lt;/span&gt;&#xA;  &lt;a href=&#34;#solution-1-revert-to-a-previous-version&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;You can revert to a previous version of Cosmtrek/Air where this issue might not exist. To do this, follow these steps:&lt;/p&gt;</description>
    </item>
    <item>
      <title>REST API Testing Strategy What Exactly Should You Test</title>
      <link>https://dimasmaulana.pages.dev/posts/development/rest-api-testing-strategy-what-exactly-should-you-test/</link>
      <pubDate>Sat, 19 Feb 2022 17:01:42 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/rest-api-testing-strategy-what-exactly-should-you-test/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;API testing is a crucial part of software quality assurance, ensuring that APIs function correctly, securely, and efficiently. This guide details key test actions, test scenario categories, and test flows to ensure a thorough validation of API behavior.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;api-test-actions&#34;&gt;&lt;span&gt;API Test Actions&lt;/span&gt;&#xA;  &lt;a href=&#34;#api-test-actions&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Each API test involves several key actions:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bash Script to Get the Directory of the Script File</title>
      <link>https://dimasmaulana.pages.dev/posts/development/bash-script-to-get-the-directory-of-the-script-file/</link>
      <pubDate>Thu, 17 Feb 2022 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/bash-script-to-get-the-directory-of-the-script-file/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In Bash scripting, it&amp;rsquo;s often useful to determine the directory where the script file is located. This can be particularly important if your script needs to access other files or resources relative to its own location. Here&amp;rsquo;s a Bash script snippet that accomplishes this task:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;#!/bin/bash&#xA;&#xA;# Get the directory of the script file&#xA;SCRIPT_DIR=$(cd -- &amp;#34;$(dirname -- &amp;#34;${BASH_SOURCE[0]}&amp;#34;)&amp;#34; &amp;amp;&amp;gt; /dev/null &amp;amp;&amp;amp; pwd)&#xA;&#xA;# Check if SCRIPT_DIR is empty or not&#xA;if [ -z &amp;#34;$SCRIPT_DIR&amp;#34; ]; then&#xA;  echo &amp;#34;Failed to determine the script directory.&amp;#34;&#xA;  exit 1&#xA;fi&#xA;&#xA;# Now, you can use SCRIPT_DIR for your operations&#xA;echo &amp;#34;The script is located in the directory: $SCRIPT_DIR&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Here&amp;rsquo;s a breakdown of what this script does:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Git Repository Naming</title>
      <link>https://dimasmaulana.pages.dev/posts/development/git-repository-naming/</link>
      <pubDate>Thu, 17 Feb 2022 05:48:49 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/git-repository-naming/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;This article explores best practices for naming Git repositories, ensuring clarity, consistency, and maintainability. It covers key considerations such as readability, versioning, project scope, and collaboration standards to help developers create effective repository names.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;microservices&#34;&gt;&lt;span&gt;Microservices&lt;/span&gt;&#xA;  &lt;a href=&#34;#microservices&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Better suited to a project team or department where multiple products exist and are made up of sub-components.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shell Bash Check If Environment Exist</title>
      <link>https://dimasmaulana.pages.dev/posts/development/shell-bash-check-if-environment-exist/</link>
      <pubDate>Tue, 15 Feb 2022 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/shell-bash-check-if-environment-exist/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Your provided code snippet appears to be a Bash script that checks if the &lt;code&gt;TARGET_PATH&lt;/code&gt; environment variable is empty and, if so, sets it to &lt;code&gt;~/go&lt;/code&gt; by appending an export statement to the &lt;code&gt;.bashrc&lt;/code&gt; file. This is a common technique to ensure that environment variables are set with default values if they are not already defined.&lt;/p&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s a breakdown of what the code does:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;code&gt;if [[ -z &amp;quot;${TARGET_PATH}&amp;quot; ]]; then&lt;/code&gt;: This line checks if the &lt;code&gt;TARGET_PATH&lt;/code&gt; environment variable is empty (i.e., its value is not set). The &lt;code&gt;-z&lt;/code&gt; flag is used to test if a string is empty.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shell Bash Check PATH environment exist</title>
      <link>https://dimasmaulana.pages.dev/posts/development/shell-bash-check-path-environment-exist/</link>
      <pubDate>Tue, 15 Feb 2022 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/shell-bash-check-path-environment-exist/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;It looks like you are trying to check if a specific directory is included in the &lt;code&gt;PATH&lt;/code&gt; environment variable in a Bash script. The code you provided is almost correct, but it has a small issue. You can modify it as follows to make it work correctly:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;CHECK_PATH=&amp;#34;/root/go/bin&amp;#34;&#xA;&#xA;if [[ &amp;#34;:$PATH:&amp;#34; == *&amp;#34;:$CHECK_PATH:&amp;#34;* ]]; then&#xA;    echo &amp;#34;Path found in PATH environment. Skipping configuration...&amp;#34;&#xA;else&#xA;    echo &amp;#34;Path not found in PATH environment. You may need to add it.&amp;#34;&#xA;fi&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Here&amp;rsquo;s a breakdown of the changes made:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Separating Business Model and Logic Ensuring SRP in Car Class Design</title>
      <link>https://dimasmaulana.pages.dev/posts/development/separating-business-model-and-logic-ensuring-srp-in-car-class-design/</link>
      <pubDate>Mon, 14 Feb 2022 21:32:58 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/separating-business-model-and-logic-ensuring-srp-in-car-class-design/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In software architecture, adhering to the &lt;strong&gt;Single Responsibility Principle (SRP)&lt;/strong&gt; is crucial to maintaining clean, modular, and maintainable code. One common mistake is merging business models with business logic, leading to unnecessary dependencies and reduced scalability. This article explores how to properly separate these concerns using an MVC-based approach for a &lt;strong&gt;Car&lt;/strong&gt; class and its related components.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;issue-business-model-breaking-srp&#34;&gt;&lt;span&gt;&lt;strong&gt;Issue: Business Model Breaking SRP&lt;/strong&gt;&lt;/span&gt;&#xA;  &lt;a href=&#34;#issue-business-model-breaking-srp&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;A Car class should represent a data model rather than handle business logic or external service interactions. However, integrating dependencies like &lt;code&gt;IFileSystemService&lt;/code&gt; into the Car class blurs the lines between the model and the business logic, leading to tightly coupled code that is harder to maintain and extend.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Rendering Empty Space in React</title>
      <link>https://dimasmaulana.pages.dev/posts/development/rendering-empty-space-in-react/</link>
      <pubDate>Fri, 11 Feb 2022 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/rendering-empty-space-in-react/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Sometimes in React, you may need to render empty space or create gaps between elements. There are several ways to achieve this, and one common method is to use HTML entities like &lt;code&gt;&amp;amp;nbsp;&lt;/code&gt; within your JSX code. In this article, we&amp;rsquo;ll explore how to render empty space in React using various techniques.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;1-using-html-entities&#34;&gt;&lt;span&gt;1. Using HTML Entities&lt;/span&gt;&#xA;  &lt;a href=&#34;#1-using-html-entities&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;As mentioned in the question, you can use HTML entities like &lt;code&gt;&amp;amp;nbsp;&lt;/code&gt; to render empty space in React components. Here&amp;rsquo;s an example:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Using Singular Form for Collection Repo/Folder Name in Idiomatic Go</title>
      <link>https://dimasmaulana.pages.dev/posts/development/using-singular-form-for-collection-repofolder-name-in-idiomatic-go/</link>
      <pubDate>Thu, 10 Feb 2022 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/using-singular-form-for-collection-repofolder-name-in-idiomatic-go/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In the world of Go programming, adhering to idiomatic coding practices is highly valued. One of these practices pertains to the naming of collection repository or folder names. The Go community recommends using the singular form for such names, and this convention is followed consistently in various Go projects. Let&amp;rsquo;s take a closer look at this best practice.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;singular-vs-plural&#34;&gt;&lt;span&gt;Singular vs. Plural&lt;/span&gt;&#xA;  &lt;a href=&#34;#singular-vs-plural&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;When organizing your Go packages into repositories or folders, you&amp;rsquo;ll often find situations where you have multiple related packages that belong to a common category. Examples could include packages for various utilities, components, or modules. In such cases, it&amp;rsquo;s recommended to use the singular form for the repository or folder name.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hide Menu Bar Icons On Mac</title>
      <link>https://dimasmaulana.pages.dev/posts/development/hide-menu-bar-icons-on-mac/</link>
      <pubDate>Wed, 09 Feb 2022 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/hide-menu-bar-icons-on-mac/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you want to hide menu bar icons on your Mac, you can use the &amp;ldquo;Hidden Bar&amp;rdquo; app from the Mac App Store. Here&amp;rsquo;s a step-by-step guide on how to do this:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Open the Mac App Store&lt;/strong&gt;: Click on the App Store icon in your Dock or use Spotlight search (Cmd + Space, then type &amp;ldquo;App Store&amp;rdquo;) to open the Mac App Store.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Search for Hidden Bar&lt;/strong&gt;: In the App Store, use the search bar in the top right corner to search for &amp;ldquo;Hidden Bar.&amp;rdquo;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Setting up Collabora Online CODE on Nextcloud</title>
      <link>https://dimasmaulana.pages.dev/posts/development/setting-up-collabora-online-code-on-nextcloud/</link>
      <pubDate>Wed, 09 Feb 2022 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/setting-up-collabora-online-code-on-nextcloud/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Collabora Online is an open-source office suite that can be integrated with Nextcloud to provide collaborative document editing features. In this guide, we will walk you through the process of setting up Collabora Online CODE on Nextcloud using Docker.&lt;/p&gt;&#xA;&lt;p&gt;Please note that this guide assumes you have Docker installed on your server and have Nextcloud already set up. If not, make sure to install Docker and set up Nextcloud before proceeding.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Unable To Use Httprequest When Upgrading From Dgrijalvajwt Go To Golang Jwtjwt Go Module</title>
      <link>https://dimasmaulana.pages.dev/posts/development/unable-to-use-httprequest-when-upgrading-from-dgrijalvajwt-go-to-golang-jwtjwt-go-module/</link>
      <pubDate>Mon, 31 Jan 2022 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/unable-to-use-httprequest-when-upgrading-from-dgrijalvajwt-go-to-golang-jwtjwt-go-module/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you are encountering issues when upgrading your Go application from using the &lt;code&gt;dgrijalva/jwt-go&lt;/code&gt; module to &lt;code&gt;golang-jwt/jwt&lt;/code&gt;, particularly when dealing with &lt;code&gt;http.Request&lt;/code&gt; objects, you might need to make some adjustments in your code. This guide provides a solution to this issue.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;error-in-the-code&#34;&gt;&lt;span&gt;Error in the Code&lt;/span&gt;&#xA;  &lt;a href=&#34;#error-in-the-code&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;You mentioned that you are facing an error in the following code:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How Mirror Gitlab to Github or GIT to GIT</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-mirror-gitlab-to-github-or-git-to-git/</link>
      <pubDate>Sun, 30 Jan 2022 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-mirror-gitlab-to-github-or-git-to-git/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;To mirror a GitLab repository to GitHub or to mirror one Git repository to another Git repository, you can follow the steps outlined in the provided code snippet. Here&amp;rsquo;s a breakdown of the process:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Clone the GitLab Repository as a Mirror:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;git clone --mirror git@your-gitlab-site.com:username/repo.git&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This command clones the GitLab repository with the &lt;code&gt;--mirror&lt;/code&gt; option, which is similar to &lt;code&gt;--bare&lt;/code&gt; but also copies all refs as-is. It&amp;rsquo;s useful for creating a full backup or moving the repository.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cant Open Port From Localhost To WSL Port On Windows</title>
      <link>https://dimasmaulana.pages.dev/posts/development/cant-open-port-from-localhost-to-wsl-port-on-windows/</link>
      <pubDate>Tue, 25 Jan 2022 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/cant-open-port-from-localhost-to-wsl-port-on-windows/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;h2 class=&#34;heading-element&#34; id=&#34;opening-ports-from-localhost-to-wsl-in-windows-using-wslhostpatcher&#34;&gt;&lt;span&gt;Opening Ports from Localhost to WSL in Windows using WSLHostPatcher&lt;/span&gt;&#xA;  &lt;a href=&#34;#opening-ports-from-localhost-to-wsl-in-windows-using-wslhostpatcher&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;When working with Windows Subsystem for Linux (WSL), you may encounter situations where you need to open a port from your localhost to a port in your WSL instance. This can be useful for various tasks, such as running web servers or accessing services within your WSL environment. One way to achieve this is by using a tool called &lt;strong&gt;WSLHostPatcher&lt;/strong&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Adding `data-bs-toggle` and `data-bs-target` Breaks Link in Bootstrap 5</title>
      <link>https://dimasmaulana.pages.dev/posts/development/adding-data-bs-toggle-and-data-bs-target-breaks-link-in-bootstrap-5/</link>
      <pubDate>Sun, 23 Jan 2022 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/adding-data-bs-toggle-and-data-bs-target-breaks-link-in-bootstrap-5/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In Bootstrap 5, when you try to add &lt;code&gt;data-bs-toggle&lt;/code&gt; and &lt;code&gt;data-bs-target&lt;/code&gt; attributes to a link (&lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; element) within a navigation bar (&lt;code&gt;&amp;lt;nav&amp;gt;&lt;/code&gt; element), you might encounter an issue where the link doesn&amp;rsquo;t work as expected. This can be frustrating, but it can be resolved with a few adjustments to your code.&lt;/p&gt;&#xA;&lt;p&gt;The &lt;code&gt;data-bs-toggle&lt;/code&gt; and &lt;code&gt;data-bs-target&lt;/code&gt; attributes are typically used for toggling Bootstrap components like dropdown menus and collapsible elements. When you add these attributes to a link, they can interfere with the link&amp;rsquo;s default behavior, preventing it from functioning correctly.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Postman Example</title>
      <link>https://dimasmaulana.pages.dev/posts/development/postman-example/</link>
      <pubDate>Fri, 21 Jan 2022 06:21:42 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/postman-example/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;h2 class=&#34;heading-element&#34; id=&#34;introduction&#34;&gt;&lt;span&gt;Introduction&lt;/span&gt;&#xA;  &lt;a href=&#34;#introduction&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Postman is a popular API testing tool that allows developers to automate and validate API responses efficiently. This guide provides examples of how to use variables, write tests, handle error responses, and perform asynchronous requests in Postman.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bootstrap 5 Wont Collapse The Navbar When Nav Link Clicked On React</title>
      <link>https://dimasmaulana.pages.dev/posts/development/bootstrap-5-wont-collapse-the-navbar-when-nav-link-clicked-on-react/</link>
      <pubDate>Wed, 19 Jan 2022 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/bootstrap-5-wont-collapse-the-navbar-when-nav-link-clicked-on-react/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;You want to implement a collapsible navbar in a React application using Bootstrap 5, and you&amp;rsquo;re encountering an issue where the navbar doesn&amp;rsquo;t collapse when a navigation link is clicked. This issue can occur due to various reasons, and I&amp;rsquo;ll provide some steps to help you troubleshoot and potentially fix the problem.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;1-check-bootstrap-installation&#34;&gt;&lt;span&gt;1. Check Bootstrap Installation&lt;/span&gt;&#xA;  &lt;a href=&#34;#1-check-bootstrap-installation&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Ensure that you have Bootstrap 5 properly installed and included in your project. You should have Bootstrap CSS and JavaScript files included in your HTML or imported in your JavaScript file.&lt;/p&gt;</description>
    </item>
    <item>
      <title>React Link To Wont Refresh Target Component</title>
      <link>https://dimasmaulana.pages.dev/posts/development/react-link-to-wont-refresh-target-component/</link>
      <pubDate>Wed, 19 Jan 2022 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/react-link-to-wont-refresh-target-component/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;It appears that you are trying to use React Router to navigate to another component and pass state information to that component. However, you&amp;rsquo;ve noticed that the target component is not refreshing when you navigate to it. This behavior is actually by design in React Router. When you navigate to a route using &lt;code&gt;&amp;lt;Link&amp;gt;&lt;/code&gt; or &lt;code&gt;navigate&lt;/code&gt;, React Router typically does not unmount and remount the component by default. Instead, it updates the URL and re-renders the current component with the new route&amp;rsquo;s props and state.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Beautify / Format Script on Postman</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-beautify-format-script-on-postman/</link>
      <pubDate>Mon, 17 Jan 2022 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-beautify-format-script-on-postman/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you want to beautify or format a script in Postman, you can follow these simple steps to make your code more organized and readable. Beautifying or formatting your script can help improve code maintainability and collaboration with team members.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Open Postman&lt;/strong&gt;: First, make sure you have Postman installed on your computer. If you don&amp;rsquo;t have it, you can download it from the &lt;a href=&#34;https://www.postman.com/downloads/&#34; target=&#34;_blank&#34; rel=&#34;external nofollow noopener noreferrer&#34;&gt;official Postman website&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Create or Open a Request&lt;/strong&gt;: Open Postman and create a new request or open an existing one that contains the script you want to beautify/format.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Chrome Bookmarks Create Duplicate Item When Sync With Two Windows…</title>
      <link>https://dimasmaulana.pages.dev/posts/development/chrome-bookmarks-create-duplicate-items-when-syncing-with-multiple-windows-machines-with-icloud-extensions-enabled/</link>
      <pubDate>Sat, 15 Jan 2022 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/chrome-bookmarks-create-duplicate-items-when-syncing-with-multiple-windows-machines-with-icloud-extensions-enabled/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you are experiencing issues where Chrome bookmarks are creating duplicates when syncing with multiple Windows machines, especially when both machines have iCloud extensions enabled, you are not alone. This can be a common problem for users who rely on iCloud to keep their bookmarks in sync across devices. However, there is a solution to this issue.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;problem-description&#34;&gt;&lt;span&gt;Problem Description&lt;/span&gt;&#xA;  &lt;a href=&#34;#problem-description&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;The problem occurs when you have two or more Windows machines running Google Chrome, and both machines have the iCloud extension enabled. When you create a new bookmark on one machine, it may get duplicated on the other machines, resulting in cluttered and redundant bookmarks.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Standardjs Jest Test Files Show Errors On Vscode With Create Create App</title>
      <link>https://dimasmaulana.pages.dev/posts/development/standardjs-jest-test-files-show-errors-on-vscode-with-create-create-app/</link>
      <pubDate>Fri, 14 Jan 2022 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/standardjs-jest-test-files-show-errors-on-vscode-with-create-create-app/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;You want to fix issues with ESLint configurations when working with Jest test files in a Create React App project within Visual Studio Code. This problem can occur due to the way ESLint and Jest interact in some setups. To resolve this, you can follow these steps:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Install ESLint Jest Plugin&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;p&gt;First, make sure you have the ESLint Jest plugin installed in your project. You can install it using npm or yarn:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Add Active Class When Specific Variables Equal On React</title>
      <link>https://dimasmaulana.pages.dev/posts/development/add-active-class-when-specific-variables-equal-on-react/</link>
      <pubDate>Sun, 09 Jan 2022 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/add-active-class-when-specific-variables-equal-on-react/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In React, you can conditionally add an &amp;ldquo;active&amp;rdquo; class to an element based on certain variables using conditional rendering. In your code snippet, it appears that you want to add the &amp;ldquo;active&amp;rdquo; class to a &lt;code&gt;list-group-item&lt;/code&gt; element when the &lt;code&gt;invoiceId&lt;/code&gt; is equal to &lt;code&gt;invoice.number&lt;/code&gt;. Here&amp;rsquo;s how you can achieve this in React:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;import React from &amp;#39;react&amp;#39;;&#xA;&#xA;function YourComponent({ invoiceId, invoice }) {&#xA;  return (&#xA;    &amp;lt;div&amp;gt;&#xA;      {/* ... Other JSX code ... */}&#xA;      &amp;lt;div className={`list-group-item list-group-item-action ${invoiceId === invoice.number ? &amp;#39;active&amp;#39; : &amp;#39;&amp;#39;}`}&amp;gt;&#xA;        {/* Your content for the list item */}&#xA;      &amp;lt;/div&amp;gt;&#xA;      {/* ... Other JSX code ... */}&#xA;    &amp;lt;/div&amp;gt;&#xA;  );&#xA;}&#xA;&#xA;export default YourComponent;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;In the code above:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Bundle Bootstrap 5 with Webpack</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-bundle-bootstrap-5-with-webpack/</link>
      <pubDate>Sun, 09 Jan 2022 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-bundle-bootstrap-5-with-webpack/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In this tutorial, we will walk you through the process of bundling Bootstrap 5 with Webpack, a popular JavaScript module bundler. By bundling Bootstrap with Webpack, you can efficiently manage and optimize your project&amp;rsquo;s JavaScript and CSS assets.&lt;/p&gt;&#xA;&lt;p&gt;Before we begin, make sure you have Node.js and npm (Node Package Manager) installed on your system. You will also need a basic understanding of using npm and Webpack in your project.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How To Bundle Bootstrap-Icons That Have Sass And Font Resources With…</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-bundle-bootstrap-icons-that-have-sass-and-font-resources-with/</link>
      <pubDate>Sun, 09 Jan 2022 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-bundle-bootstrap-icons-that-have-sass-and-font-resources-with/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;To bundle Bootstrap Icons that have Sass and font resources with Webpack in production mode, you&amp;rsquo;ll need to make a few modifications to your Webpack configuration. Here&amp;rsquo;s a step-by-step guide on how to achieve this:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Install Dependencies&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;p&gt;First, make sure you have the necessary dependencies installed. You&amp;rsquo;ll need &lt;code&gt;sass-loader&lt;/code&gt;, &lt;code&gt;css-loader&lt;/code&gt;, &lt;code&gt;style-loader&lt;/code&gt;, &lt;code&gt;postcss-loader&lt;/code&gt;, and &lt;code&gt;resolve-url-loader&lt;/code&gt; to handle Sass and CSS files. You may also need the &lt;code&gt;file-loader&lt;/code&gt; or &lt;code&gt;url-loader&lt;/code&gt; for fonts and other assets.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How To Remove generated license file webpack</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-remove-generated-license-file-webpack/</link>
      <pubDate>Sun, 09 Jan 2022 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-remove-generated-license-file-webpack/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;It appears that you want to remove the generation of license comments in your webpack bundle. To achieve this, you can set the &lt;code&gt;extractComments&lt;/code&gt; option of the TerserPlugin to &lt;code&gt;false&lt;/code&gt;. This will prevent the plugin from extracting and adding license comments to your bundle. Here&amp;rsquo;s how you can modify your webpack configuration:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;const path = require(&amp;#39;path&amp;#39;);&#xA;const TerserPlugin = require(&amp;#39;terser-webpack-plugin&amp;#39;);&#xA;&#xA;module.exports = {&#xA;   optimization: {&#xA;      minimize: true,&#xA;      minimizer: [&#xA;         new TerserPlugin({&#xA;            extractComments: false, // Set this option to false&#xA;         }),&#xA;      ],&#xA;   },&#xA;   entry: &amp;#39;./web/src/js/main.js&amp;#39;,&#xA;   output: {&#xA;      filename: &amp;#39;bundle.js&amp;#39;,&#xA;      path: path.resolve(__dirname, &amp;#39;web&amp;#39;, &amp;#39;static&amp;#39;, &amp;#39;assets&amp;#39;, &amp;#39;js&amp;#39;),&#xA;   }&#xA;};&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;By setting &lt;code&gt;extractComments&lt;/code&gt; to &lt;code&gt;false&lt;/code&gt;, the TerserPlugin will not include license comments in your minified bundle. This should help you achieve your goal of removing the generated license file from your webpack output.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Go HTML Template Active nav-link Bootstrap</title>
      <link>https://dimasmaulana.pages.dev/posts/development/go-html-template-active-nav-link-bootstrap/</link>
      <pubDate>Fri, 07 Jan 2022 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/go-html-template-active-nav-link-bootstrap/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In the provided HTML code snippet, it appears to be a part of a Bootstrap navigation menu that is using Go&amp;rsquo;s HTML template syntax to conditionally add the &amp;ldquo;active&amp;rdquo; class to a navigation link based on a condition. In this case, it is checking whether the current page&amp;rsquo;s title is equal to &amp;ldquo;Home&amp;rdquo; and adding the &amp;ldquo;active&amp;rdquo; class if the condition is true.&lt;/p&gt;&#xA;&lt;p&gt;Let me break down the code for you:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Check Whenever locked or not via SSH on Windows</title>
      <link>https://dimasmaulana.pages.dev/posts/development/check-whenever-locked-or-not-via-ssh-on-windows/</link>
      <pubDate>Fri, 24 Dec 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/check-whenever-locked-or-not-via-ssh-on-windows/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you&amp;rsquo;re looking to determine whether a Windows machine is locked or not via SSH, you can use PowerShell commands to achieve this. The &lt;code&gt;Get-Process&lt;/code&gt; command with the &lt;code&gt;logonui&lt;/code&gt; argument can be used to check the status of the &amp;ldquo;LogonUI&amp;rdquo; process, which is responsible for the Windows login screen. If the &amp;ldquo;LogonUI&amp;rdquo; process is running, it typically means that the user is logged in and the machine is not locked. If the process is not running, it might indicate that the machine is locked or at the login screen.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Lock Windows 11 Remotely Using sleepwatcher Mac</title>
      <link>https://dimasmaulana.pages.dev/posts/development/lock-windows-11-remotely-using-sleepwatcher-mac/</link>
      <pubDate>Fri, 24 Dec 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/lock-windows-11-remotely-using-sleepwatcher-mac/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In this guide, we will walk you through the process of remotely locking a Windows 11 computer from your Mac using &lt;code&gt;sleepwatcher&lt;/code&gt;. This will require SSH access to your Windows machine configured with a public key instead of a password. Follow these steps to set up remote locking:&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;prerequisites&#34;&gt;&lt;span&gt;Prerequisites&lt;/span&gt;&#xA;  &lt;a href=&#34;#prerequisites&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;SSH Configuration&lt;/strong&gt;: Ensure that you have SSH access to your Windows 11 computer from your Mac, and it is set up to use a public key for authentication instead of a password. If you haven&amp;rsquo;t set up SSH with public key authentication, you can find guides online for this process.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Setting Up Windows SSH Server With Public Key Authentication</title>
      <link>https://dimasmaulana.pages.dev/posts/development/setting-up-windows-ssh-server-with-public-key-authentication/</link>
      <pubDate>Fri, 24 Dec 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/setting-up-windows-ssh-server-with-public-key-authentication/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In this guide, we will walk you through the steps to set up an SSH server on a Windows system and configure it to use public key authentication instead of a password. This enhances security by eliminating the need for password-based access and relying on cryptographic keys for authentication.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;prerequisites&#34;&gt;&lt;span&gt;Prerequisites&lt;/span&gt;&#xA;  &lt;a href=&#34;#prerequisites&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Before you start, ensure you have the following:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fixing The Backtick Key Issue With Barrier From Mac Server To Windows 11 Client</title>
      <link>https://dimasmaulana.pages.dev/posts/development/fixing-the-backtick-key-issue-with-barrier-from-mac-server-to-windows-11-client/</link>
      <pubDate>Thu, 23 Dec 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/fixing-the-backtick-key-issue-with-barrier-from-mac-server-to-windows-11-client/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you&amp;rsquo;re experiencing issues with the backtick key (`) not working when using Barrier to connect a Mac Server to a Windows 11 Client, you&amp;rsquo;re not alone. This can be a frustrating problem, but fortunately, there is a solution.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Problem Description:&lt;/strong&gt;&#xA;When using Barrier, a software KVM (keyboard, video, mouse) switch, to control your Windows 11 Client from a Mac Server, the backtick key (`) might not function as expected. This issue can disrupt your workflow, especially if you rely on this key for tasks like entering command-line commands or writing code.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Add -- - after tabs on VSCODE using Regex-</title>
      <link>https://dimasmaulana.pages.dev/posts/development/add-after-tabs-on-vscode-using-regex-/</link>
      <pubDate>Sun, 19 Dec 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/add-after-tabs-on-vscode-using-regex-/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;To add &amp;ldquo;- &amp;quot; after tabs on Visual Studio Code (VSCode) using regex, you can follow these steps:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Open VSCode.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Press &lt;code&gt;Ctrl + H&lt;/code&gt; (or &lt;code&gt;Cmd + H&lt;/code&gt; on macOS) to open the Find and Replace panel.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;In the Find input box, input the following regular expression to match tabs at the beginning of each line:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;(^\t*)&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Make sure to enable the &amp;ldquo;Use Regular Expression&amp;rdquo; option by clicking the &lt;code&gt;.*&lt;/code&gt; icon in the Find panel.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Check apt unattended upgrades will run today</title>
      <link>https://dimasmaulana.pages.dev/posts/development/check-apt-unattended-upgrades-will-run-today/</link>
      <pubDate>Fri, 10 Dec 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/check-apt-unattended-upgrades-will-run-today/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;To check if unattended upgrades will run today, you can use the &lt;code&gt;systemctl list-timers&lt;/code&gt; command with the &lt;code&gt;apt-daily.timer&lt;/code&gt; unit. This will provide information about the timer and when it is scheduled to run. Here&amp;rsquo;s how you can do it:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;systemctl list-timers apt-daily.timer&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Running this command will display output similar to the following:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;NEXT                          LEFT     LAST                          PASSED       UNIT                      ACTIVATES&#xA;Wed 2023-09-01 06:25:00 UTC  12h left Tue 2023-08-31 06:25:00 UTC  11h ago     apt-daily.timer           apt-daily.service&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;In this example output, you can see information about the next scheduled run of the &lt;code&gt;apt-daily.timer&lt;/code&gt; unit, including the time remaining until it runs again. You can check the &amp;ldquo;NEXT&amp;rdquo; column to see when the timer is set to trigger next.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Postgres Enable Password Login on Local</title>
      <link>https://dimasmaulana.pages.dev/posts/development/postgres-enable-password-login-on-local/</link>
      <pubDate>Fri, 26 Nov 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/postgres-enable-password-login-on-local/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;To enable password login on a local PostgreSQL database, you need to modify the &lt;code&gt;pg_hba.conf&lt;/code&gt; file and then restart the PostgreSQL service. Here are the steps in markdown format:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;## Enable Password Login on Local PostgreSQL&#xA;&#xA;1. Open the `pg_hba.conf` file for editing using a text editor. You can use `vim` as you mentioned or any other text editor of your choice. Replace `/usr/local/var/postgres/pg_hba.conf` with the correct path to your `pg_hba.conf` file if it&amp;#39;s located elsewhere.&#xA;&#xA;   ```shell&#xA;   vim /usr/local/var/postgres/pg_hba.conf&lt;/code&gt;&lt;/pre&gt;&lt;ol start=&#34;2&#34;&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;In the &lt;code&gt;pg_hba.conf&lt;/code&gt; file, locate the line that corresponds to the local connection method. It typically looks like this:&lt;/p&gt;</description>
    </item>
    <item>
      <title>User Story BDD Cucumber CRUD Operations Example</title>
      <link>https://dimasmaulana.pages.dev/posts/development/user-story-bdd-cucumber-crud-operations-example-/</link>
      <pubDate>Wed, 24 Nov 2021 10:59:04 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/user-story-bdd-cucumber-crud-operations-example-/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;h2 class=&#34;heading-element&#34; id=&#34;basic&#34;&gt;&lt;span&gt;Basic&lt;/span&gt;&#xA;  &lt;a href=&#34;#basic&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;Feature: Create Employee&#xA;&#xA;  Scenario: WITH ALL REQUIRED FIELDS IS SUCCESSFUL&#xA;  &#xA;    Given user wants to create an employee with the following attributes&#xA;      | id  | firstName | lastName | dateOfBirth | startDate  | employmentType | email               |&#xA;      | 100 | Rachel    | Green    | 1990-01-01  | 2018-01-01 | Permanent      | rachel.green@fs.com |&#xA;&#xA;    And with the following phone numbers&#xA;      | id  | type   | isdCode | phoneNumber | extension |&#xA;      | 102 | Mobile | &amp;#43;1      | 2141112222  |           |&#xA;      | 103 | Office | &amp;#43;1      | 8362223000  | 333       |&#xA;&#xA;    When user saves the new employee &amp;#39;WITH ALL REQUIRED FIELDS&amp;#39;&#xA;    Then the save &amp;#39;IS SUCCESSFUL&amp;#39;&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=&#34;heading-element&#34; id=&#34;create-employee&#34;&gt;&lt;span&gt;Create Employee&lt;/span&gt;&#xA;  &lt;a href=&#34;#create-employee&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;Feature: Create Employee&#xA;&#xA;  Scenario Outline: &amp;lt;testCase&amp;gt; &amp;lt;expectedResult&amp;gt;&#xA;&#xA;    Given user wants to create an employee with the following attributes&#xA;      | id  | firstName   | lastName   | dateOfBirth   | startDate   | employmentType   | email   |&#xA;      | 110 | &amp;lt;firstName&amp;gt; | &amp;lt;lastName&amp;gt; | &amp;lt;dateOfBirth&amp;gt; | &amp;lt;startDate&amp;gt; | &amp;lt;employmentType&amp;gt; | &amp;lt;email&amp;gt; |&#xA;&#xA;    And with the following phone numbers&#xA;      | id  | type   | isdCode | phoneNumber | extension |&#xA;      | 111 | Mobile | &amp;#43;1      | 2141112222  |           |&#xA;      | 112 | Office | &amp;#43;1      | 8362223000  | 333       |&#xA;&#xA;    When user saves the new employee &amp;#39;&amp;lt;testCase&amp;gt;&amp;#39;&#xA;    Then the save &amp;#39;&amp;lt;expectedResult&amp;gt;&amp;#39;&#xA;&#xA;    Examples:&#xA;      | testCase                 | expectedResult | firstName | lastName | dateOfBirth | startDate  | employmentType | email               |&#xA;      | WITHOUT FIRST NAME       | FAILS          |           | Green    | 1990-01-01  | 2018-01-01 | Permanent      | rachel.green@fs.com |&#xA;      | WITHOUT LAST NAME        | FAILS          | Rachel    |          | 1990-01-01  | 2018-01-01 | Permanent      | rachel.green@fs.com |&#xA;      | WITHOUT DATE OF BIRTH    | FAILS          | Rachel    | Green    |             | 2018-01-01 | Permanent      | rachel.green@fs.com |&#xA;      | WITHOUT START DATE       | FAILS          | Rachel    | Green    | 1990-01-01  |            | Permanent      | rachel.green@fs.com |&#xA;      | WITHOUT EMPLOYMENT TYPE  | FAILS          | Rachel    | Green    | 1990-01-01  | 2018-01-01 |                | rachel.green@fs.com |&#xA;      | WITHOUT EMAIL            | FAILS          | Rachel    | Green    | 1990-01-01  | 2018-01-01 | Permanent      |                     |&#xA;      | WITH ALL REQUIRED FIELDS | IS SUCCESSFUL  | Rachel    | Green    | 1990-01-01  | 2018-01-01 | Permanent      | rachel.green@fs.com |&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=&#34;heading-element&#34; id=&#34;get-employee&#34;&gt;&lt;span&gt;Get Employee&lt;/span&gt;&#xA;  &lt;a href=&#34;#get-employee&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;Feature: Get Employee&#xA;&#xA;  Background:&#xA;&#xA;    Given an employee with the following attributes&#xA;      | id  | firstName | lastName | dateOfBirth | startDate  | employmentType | email               |&#xA;      | 200 | Rachel    | Green    | 1990-01-01  | 2018-01-01 | Permanent      | rachel.green@fs.com |&#xA;&#xA;    And with the following phone numbers&#xA;      | id  | type   | isdCode | phoneNumber | extension |&#xA;      | 201 | Mobile | &amp;#43;1      | 2141112222  |           |&#xA;      | 202 | Office | &amp;#43;1      | 8362223000  | 333       |&#xA;&#xA;    When employee already exists&#xA;&#xA;&#xA;  Scenario: GET BY ID&#xA;&#xA;    When user wants to get employee by id 200&#xA;    Then the get &amp;#39;IS SUCCESSFUL&amp;#39;&#xA;    &#xA;    And following employee is returned&#xA;      | id  | firstName | lastName | dateOfBirth | startDate  | employmentType | email               |&#xA;      | 200 | Rachel    | Green    | 1990-01-01  | 2018-01-01 | Permanent      | rachel.green@fs.com |&#xA;&#xA;    And following employee phone numbers are returned&#xA;      | id  | type   | isdCode | phoneNumber | extension |&#xA;      | 201 | Mobile | &amp;#43;1      | 2141112222  |           |&#xA;      | 202 | Office | &amp;#43;1      | 8362223000  | 333       |&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=&#34;heading-element&#34; id=&#34;update-employee&#34;&gt;&lt;span&gt;Update Employee&lt;/span&gt;&#xA;  &lt;a href=&#34;#update-employee&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;Feature: Update Employee&#xA;&#xA;  Background:&#xA;&#xA;    Given an employee with the following attributes&#xA;      | id  | firstName | lastName | dateOfBirth | startDate  | employmentType | email               |&#xA;      | 300 | Rachel    | Green    | 1990-01-01  | 2018-01-01 | Permanent      | rachel.green@fs.com |&#xA;&#xA;    And with the following phone numbers&#xA;      | id  | type   | isdCode | phoneNumber | extension |&#xA;      | 301 | Mobile | &amp;#43;1      | 2141112222  |           |&#xA;      | 302 | Office | &amp;#43;1      | 8362223000  | 333       |&#xA;&#xA;    When employee already exists&#xA;&#xA;&#xA;  Scenario Outline: &amp;lt;testCase&amp;gt; &amp;lt;expectedResult&amp;gt;&#xA;&#xA;    Given user wants to update an employee with the following attributes&#xA;      | id   | firstName   | lastName   | dateOfBirth   | startDate   | employmentType   | email   |&#xA;      | &amp;lt;id&amp;gt; | &amp;lt;firstName&amp;gt; | &amp;lt;lastName&amp;gt; | &amp;lt;dateOfBirth&amp;gt; | &amp;lt;startDate&amp;gt; | &amp;lt;employmentType&amp;gt; | &amp;lt;email&amp;gt; |&#xA;&#xA;    And with the following phone numbers&#xA;      | id  | type   | isdCode | phoneNumber | extension |&#xA;      | 301 | Mobile | &amp;#43;1      | 2141112222  |           |&#xA;      | 302 | Office | &amp;#43;1      | 8362223000  | 333       |&#xA;&#xA;    When user saves the employee &amp;#39;&amp;lt;testCase&amp;gt;&amp;#39;&#xA;    Then the save &amp;#39;&amp;lt;expectedResult&amp;gt;&amp;#39;&#xA;&#xA;    Examples:&#xA;      | testCase                 | expectedResult | id  | firstName | lastName | dateOfBirth | startDate  | employmentType | email               |&#xA;      | WITHOUT ID               | FAILS          |     | Rachel    | Green    | 1990-01-01  | 2018-01-01 | Permanent      | rachel.green@fs.com |&#xA;      | WITHOUT FIRST NAME       | FAILS          | 300 |           | Green    | 1990-01-01  | 2018-01-01 | Permanent      | rachel.green@fs.com |&#xA;      | WITHOUT LAST NAME        | FAILS          | 300 | Rachel    |          | 1990-01-01  | 2018-01-01 | Permanent      | rachel.green@fs.com |&#xA;      | WITHOUT DATE OF BIRTH    | FAILS          | 300 | Rachel    | Green    |             | 2018-01-01 | Permanent      | rachel.green@fs.com |&#xA;      | WITHOUT START DATE       | FAILS          | 300 | Rachel    | Green    | 1990-01-01  |            | Permanent      | rachel.green@fs.com |&#xA;      | WITHOUT EMPLOYMENT TYPE  | FAILS          | 300 | Rachel    | Green    | 1990-01-01  | 2018-01-01 |                | rachel.green@fs.com |&#xA;      | WITHOUT EMAIL            | FAILS          | 300 | Rachel    | Green    | 1990-01-01  | 2018-01-01 | Permanent      |                     |&#xA;      | WITH ALL REQUIRED FIELDS | IS SUCCESSFUL  | 300 | Rachel    | Green    | 1990-01-01  | 2018-01-01 | Permanent      | rachel.green@fs.com |&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=&#34;heading-element&#34; id=&#34;delete-employee&#34;&gt;&lt;span&gt;Delete Employee&lt;/span&gt;&#xA;  &lt;a href=&#34;#delete-employee&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;Feature: Delete Employee&#xA;&#xA;  Background:&#xA;&#xA;    Given an employee with the following attributes&#xA;      | id  | firstName | lastName | dateOfBirth | startDate  | employmentType | email               |&#xA;      | 400 | Rachel    | Green    | 1990-01-01  | 2018-01-01 | Permanent      | rachel.green@fs.com |&#xA;&#xA;    And with the following phone numbers&#xA;      | id  | type   | isdCode | phoneNumber | extension |&#xA;      | 401 | Mobile | &amp;#43;1      | 2141112222  |           |&#xA;      | 402 | Office | &amp;#43;1      | 8362223000  | 333       |&#xA;&#xA;    When employee already exists&#xA;&#xA;&#xA;  Scenario: DELETE BY ID&#xA;&#xA;    When user wants to delete employee by id 400&#xA;    Then the delete &amp;#39;IS SUCCESSFUL&amp;#39;&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=&#34;heading-element&#34; id=&#34;references&#34;&gt;&lt;span&gt;References&lt;/span&gt;&#xA;  &lt;a href=&#34;#references&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://medium.com/@bcarunmail/using-cucumber-datatable-for-crud-operations-7b00f7cac23f&#34; target=&#34;_blank&#34; rel=&#34;external nofollow noopener noreferrer&#34;&gt;https://medium.com/@bcarunmail/using-cucumber-datatable-for-crud-operations-7b00f7cac23f&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Troubleshooting Mouse Scrolling In Tmux Sessions On Iterm2</title>
      <link>https://dimasmaulana.pages.dev/posts/development/troubleshooting-mouse-scrolling-in-tmux-sessions-on-iterm2/</link>
      <pubDate>Sun, 21 Nov 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/troubleshooting-mouse-scrolling-in-tmux-sessions-on-iterm2/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you&amp;rsquo;re experiencing issues with mouse scrolling in your Tmux sessions on iTerm2, you can follow these steps to troubleshoot and resolve the problem:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Check iTerm2 Setting:&lt;/strong&gt;&#xA;Make sure that the &amp;ldquo;Scroll wheels send arrow keys when in alternate screen mode&amp;rdquo; option is enabled in iTerm2. You can find this setting in iTerm2&amp;rsquo;s preferences. Go to &lt;code&gt;iTerm2 &amp;gt; Preferences &amp;gt; Advanced&lt;/code&gt;, and ensure that the &amp;ldquo;Scroll wheels send arrow keys&amp;hellip;&amp;rdquo; option is set to &amp;ldquo;Yes.&amp;rdquo;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Enable Read Input When Debugging Golang on Visual Studio Code</title>
      <link>https://dimasmaulana.pages.dev/posts/development/enable-read-input-when-debugging-golang-on-visual-studio-code/</link>
      <pubDate>Fri, 19 Nov 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/enable-read-input-when-debugging-golang-on-visual-studio-code/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;It looks like you&amp;rsquo;re trying to set up debugging for a Golang application in Visual Studio Code, specifically focusing on enabling input reading during debugging. The configuration you&amp;rsquo;ve provided involves using the &lt;code&gt;launch.json&lt;/code&gt; and &lt;code&gt;task.json&lt;/code&gt; files to set up the debugger and tasks for your project.&lt;/p&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s a breakdown of the configuration you&amp;rsquo;ve shared:&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;launchjson-configuration&#34;&gt;&lt;span&gt;&lt;code&gt;launch.json&lt;/code&gt; Configuration&lt;/span&gt;&#xA;  &lt;a href=&#34;#launchjson-configuration&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;In this configuration, you&amp;rsquo;re defining a launch configuration to connect to a remote server for debugging. Here are the key attributes:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Troubleshooting Barrier SSL Certificate Not Found</title>
      <link>https://dimasmaulana.pages.dev/posts/development/troubleshooting-barrier-ssl-certificate-not-found/</link>
      <pubDate>Tue, 16 Nov 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/troubleshooting-barrier-ssl-certificate-not-found/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you are encountering issues with Barrier when SSL is enabled and you are getting an error related to the SSL certificate not being found, you can follow these steps to generate and configure the SSL certificate.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;generating-the-ssl-certificate&#34;&gt;&lt;span&gt;Generating the SSL Certificate&lt;/span&gt;&#xA;  &lt;a href=&#34;#generating-the-ssl-certificate&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;You can generate a self-signed SSL certificate for Barrier using OpenSSL. Here are the steps:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Wordpress Center Align Block Widget on Footer Widget</title>
      <link>https://dimasmaulana.pages.dev/posts/development/wordpress-center-align-block-widget-on-footer-widget/</link>
      <pubDate>Tue, 02 Nov 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/wordpress-center-align-block-widget-on-footer-widget/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;To center align a block widget in the footer of a WordPress website, you can use custom CSS code. Here&amp;rsquo;s how you can do it:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Access Your WordPress Dashboard:&lt;/strong&gt;&#xA;Log in to your WordPress admin dashboard.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Navigate to the Customizer:&lt;/strong&gt;&#xA;In the dashboard, go to &amp;ldquo;Appearance&amp;rdquo; and then click on &amp;ldquo;Customize.&amp;rdquo;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Open Additional CSS:&lt;/strong&gt;&#xA;Look for the &amp;ldquo;Additional CSS&amp;rdquo; option in the Customizer menu. This is where you can add your custom CSS code.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fixing SSL Issue in Nextcloud</title>
      <link>https://dimasmaulana.pages.dev/posts/development/fixing-ssl-issue-in-nextcloud/</link>
      <pubDate>Fri, 17 Sep 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/fixing-ssl-issue-in-nextcloud/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;You want to fixing two common issues related to Nextcloud SSL and an SVG error related to ImageMagick. Let&amp;rsquo;s break down these instructions into steps for clarity:&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;fixing-ssl-issue-in-nextcloud&#34;&gt;&lt;span&gt;Fixing SSL Issue in Nextcloud&lt;/span&gt;&#xA;  &lt;a href=&#34;#fixing-ssl-issue-in-nextcloud&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;If you&amp;rsquo;re encountering SSL-related issues in Nextcloud, you can try the following steps:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Backup and Restore WordPress with Docker Compose</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-backup-and-restore-wordpress-with-docker-compose/</link>
      <pubDate>Thu, 16 Sep 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-backup-and-restore-wordpress-with-docker-compose/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In this guide, we will walk you through the process of creating scripts to backup and restore a WordPress website running in Docker Compose. These scripts will help you safeguard your WordPress data and quickly restore it if needed.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;backup-wordpress-volumes&#34;&gt;&lt;span&gt;Backup WordPress Volumes&lt;/span&gt;&#xA;  &lt;a href=&#34;#backup-wordpress-volumes&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;h3 class=&#34;heading-element&#34; id=&#34;step-1-create-a-backup-script&#34;&gt;&lt;span&gt;Step 1: Create a Backup Script&lt;/span&gt;&#xA;  &lt;a href=&#34;#step-1-create-a-backup-script&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;p&gt;First, you need to create a backup script. This script will use the &lt;code&gt;futurice/docker-volume-backup&lt;/code&gt; Docker image to back up the volumes associated with your WordPress and MariaDB containers.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Trim the whitespace characters from a Bash variable</title>
      <link>https://dimasmaulana.pages.dev/posts/development/trim-the-whitespace-characters-from-a-bash-variable/</link>
      <pubDate>Thu, 16 Sep 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/trim-the-whitespace-characters-from-a-bash-variable/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In Bash, you can trim whitespace characters from a variable using various methods, as shown in your code. Here&amp;rsquo;s a breakdown of the different approaches:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Remove Leading and Trailing White Spaces:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;NEW_VARIABLE=&amp;#34;$(echo -e &amp;#34;${VARIABLE_NAME}&amp;#34; | tr -d &amp;#39;[:space:]&amp;#39;)&amp;#34;&#xA;# NEW_VARIABLE=&amp;#39;aaa  bbb&amp;#39;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This method uses the &lt;code&gt;tr&lt;/code&gt; command to delete all whitespace characters, both leading and trailing, in the variable &lt;code&gt;VARIABLE_NAME&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Remove Only Leading White Spaces:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;NEW_VARIABLE=&amp;#34;$(echo -e &amp;#34;${VARIABLE_NAME}&amp;#34; | sed -e &amp;#39;s/^[[:space:]]*//&amp;#39;)&amp;#34;&#xA;# NEW_VARIABLE=&amp;#39;aaa  bbb  &amp;#39;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Here, &lt;code&gt;sed&lt;/code&gt; is used to remove only the leading whitespace characters from the variable.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Change WordPress Site URL With WP-CLI</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-change-wordpress-site-url-with-wp-cli/</link>
      <pubDate>Wed, 15 Sep 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-change-wordpress-site-url-with-wp-cli/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you need to change the domain URL of your WordPress site, you can use WP-CLI, a powerful command-line tool for managing WordPress. Changing the site URL is a common task, especially when migrating your site to a new domain. Here&amp;rsquo;s a step-by-step guide on how to do it with WP-CLI.&lt;/p&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;1-backup-your-wordpress-database&#34;&gt;&lt;span&gt;1. Backup Your WordPress Database&lt;/span&gt;&#xA;  &lt;a href=&#34;#1-backup-your-wordpress-database&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;p&gt;Before making any changes, it&amp;rsquo;s crucial to create a backup of your WordPress database. This ensures that you can restore your site if anything goes wrong during the URL change process.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Accessing Windows or Mac Host IP in Docker</title>
      <link>https://dimasmaulana.pages.dev/posts/development/accessing-windows-or-mac-host-ip-in-docker/</link>
      <pubDate>Tue, 14 Sep 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/accessing-windows-or-mac-host-ip-in-docker/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;When working with Docker containers on Windows or Mac, you might need to access the IP address of the host machine from within the container. Docker provides two convenient DNS names that you can use to achieve this: &lt;code&gt;host.docker.internal&lt;/code&gt; and &lt;code&gt;gateway.docker.internal&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;using-hostdockerinternal&#34;&gt;&lt;span&gt;Using &lt;code&gt;host.docker.internal&lt;/code&gt;&lt;/span&gt;&#xA;  &lt;a href=&#34;#using-hostdockerinternal&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;p&gt;The DNS name &lt;code&gt;host.docker.internal&lt;/code&gt; allows you to access the IP address of the host machine from within a Docker container. This is particularly useful when you need to communicate with services running on the host, such as a development server.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Whatsapp Webjs Wont Reconnect After Macbook Sleep</title>
      <link>https://dimasmaulana.pages.dev/posts/development/whatsapp-webjs-wont-reconnect-after-macbook-sleep/</link>
      <pubDate>Thu, 26 Aug 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/whatsapp-webjs-wont-reconnect-after-macbook-sleep/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;You&amp;rsquo;re facing an issue with the &lt;code&gt;whatsapp-web.js&lt;/code&gt; library when trying to reconnect after your MacBook goes to sleep. The solution you&amp;rsquo;ve provided involves using a remote browser via Docker to run Chrome and then connecting &lt;code&gt;whatsapp-web.js&lt;/code&gt; to it using the &lt;code&gt;browserWSEndpoint&lt;/code&gt; option. This is a workaround to ensure that the connection is maintained even after your MacBook wakes up from sleep mode.&lt;/p&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s a breakdown of the steps and code you&amp;rsquo;ve provided:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Docker Compose docker-compose-yml Command Multiline</title>
      <link>https://dimasmaulana.pages.dev/posts/development/docker-compose-docker-compose-yml-command-multiline/</link>
      <pubDate>Wed, 25 Aug 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/docker-compose-docker-compose-yml-command-multiline/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Sure! The provided code snippet is meant to modify the Tomcat server information displayed when the server starts up. This can be achieved using Docker Compose by modifying the &lt;code&gt;docker-compose.yml&lt;/code&gt; file as follows:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;version: &amp;#39;3&amp;#39;&#xA;services:&#xA;  tomcat:&#xA;    image: tomcat:latest&#xA;    ports:&#xA;      - &amp;#34;8080:8080&amp;#34;&#xA;    command: &amp;gt;&#xA;      bash -c &amp;#34;mkdir -p /usr/local/tomcat/lib/org/apache/catalina/util/ &amp;amp;&amp;amp;&#xA;      echo server.info=PlantUML &amp;gt; /usr/local/tomcat/lib/org/apache/catalina/util/ServerInfo.properties &amp;amp;&amp;amp;&#xA;      catalina.sh run&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;In this Docker Compose configuration:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;We define a service named &lt;code&gt;tomcat&lt;/code&gt; based on the &lt;code&gt;tomcat:latest&lt;/code&gt; image.&lt;/li&gt;&#xA;&lt;li&gt;We map port 8080 from the host to port 8080 in the container to access the Tomcat server.&lt;/li&gt;&#xA;&lt;li&gt;The &lt;code&gt;command&lt;/code&gt; section is where the custom startup command is defined. The &lt;code&gt;&amp;gt;&lt;/code&gt; character is used to allow multiline commands.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The custom command consists of the following steps:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Mac Run PlantUML Server on Login</title>
      <link>https://dimasmaulana.pages.dev/posts/development/mac-run-plantuml-server-on-login/</link>
      <pubDate>Wed, 25 Aug 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/mac-run-plantuml-server-on-login/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;To run a PlantUML server on login for your Mac, you can follow these steps using Automator. This will ensure that the PlantUML server starts automatically every time you log in.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Step 1: Install PlantUML&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;First, make sure you have PlantUML installed on your Mac using Homebrew. You&amp;rsquo;ve already mentioned the command:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;brew install plant-uml&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Step 2: Create an Automator App&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Open &amp;ldquo;Automator&amp;rdquo; on your Mac. You can find it by searching for it in Spotlight or in the Applications folder.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Running Background Processes with Automator and Shell Scripts on Mac</title>
      <link>https://dimasmaulana.pages.dev/posts/development/running-background-processes-with-automator-and-shell-scripts-on-mac/</link>
      <pubDate>Wed, 25 Aug 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/running-background-processes-with-automator-and-shell-scripts-on-mac/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In this article, we&amp;rsquo;ll explore how to run background processes using Automator and shell scripts on a Mac. We&amp;rsquo;ll compare two methods, one using a basic shell command and the other employing the &lt;code&gt;nohup&lt;/code&gt; command for more robust background process management.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;method-1-using-a-basic-shell-command&#34;&gt;&lt;span&gt;Method 1: Using a Basic Shell Command&lt;/span&gt;&#xA;  &lt;a href=&#34;#method-1-using-a-basic-shell-command&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;To run a background process using a basic shell command in Automator, follow these steps:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cant Copy Textbox from Java Jar Swing on Mac</title>
      <link>https://dimasmaulana.pages.dev/posts/development/cant-copy-textbox-from-java-jar-swing-on-mac/</link>
      <pubDate>Wed, 18 Aug 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/cant-copy-textbox-from-java-jar-swing-on-mac/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you&amp;rsquo;re using a Java Jar Swing application on a Mac and find that you can&amp;rsquo;t copy text from a textbox using the standard keyboard shortcuts, such as CTRL+C for copy and Command+V for paste, there might be several reasons for this issue. Below, we&amp;rsquo;ll explore some potential solutions to help you resolve this problem.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;1-check-the-key-bindings&#34;&gt;&lt;span&gt;1. Check the Key Bindings&lt;/span&gt;&#xA;  &lt;a href=&#34;#1-check-the-key-bindings&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Java Swing applications often rely on custom key bindings for certain actions. It&amp;rsquo;s possible that the copy and paste actions in your application have been customized or overridden. To check this:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fixing Smooth Scroll Behavior Issue in Elementor WordPress on iOS Safari</title>
      <link>https://dimasmaulana.pages.dev/posts/development/fixing-smooth-scroll-behavior-issue-in-elementor-wordpress-on-ios-safari/</link>
      <pubDate>Tue, 03 Aug 2021 17:43:43 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/fixing-smooth-scroll-behavior-issue-in-elementor-wordpress-on-ios-safari/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Smooth scrolling is a popular web design feature that enhances user experience by creating a fluid transition when navigating through a web page. However, there are instances where smooth scrolling might not work as expected, especially on specific platforms or browsers. This article addresses the issue of smooth scroll behavior not working in Elementor WordPress on iOS Safari and provides a solution using the smoothscroll-polyfill library.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;identifying-the-issue&#34;&gt;&lt;span&gt;Identifying the Issue&lt;/span&gt;&#xA;  &lt;a href=&#34;#identifying-the-issue&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Smooth scrolling can sometimes behave inconsistently across different browsers and devices. One common issue is when smooth scroll doesn&amp;rsquo;t work on iOS Safari when using the Elementor page builder in WordPress. Users may notice a lack of smooth animation when scrolling, which can impact the overall user experience of the website.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Speak Text Selection With Difference Language on iOS</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-speak-text-selection-with-difference-language-on-ios/</link>
      <pubDate>Mon, 19 Jul 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-speak-text-selection-with-difference-language-on-ios/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;To speak text selections in different languages on iOS, you can create a shortcut using the Shortcuts app. Here&amp;rsquo;s a step-by-step guide on how to do it:&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;create-a-shortcut&#34;&gt;&lt;span&gt;Create a Shortcut&lt;/span&gt;&#xA;  &lt;a href=&#34;#create-a-shortcut&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Open the Shortcuts App&lt;/strong&gt;: If you don&amp;rsquo;t have it installed, you can download it from the App Store.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Troubleshooting Apache Error Ah00558</title>
      <link>https://dimasmaulana.pages.dev/posts/development/troubleshooting-apache-error-ah00558/</link>
      <pubDate>Tue, 13 Jul 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/troubleshooting-apache-error-ah00558/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;When running the &lt;code&gt;apachectl configtest&lt;/code&gt; command in Apache, you may encounter the following error message:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;AH00558: apache2: Could not reliably determine the server&amp;#39;s fully qualified domain name, using domain.com. Set the &amp;#39;ServerName&amp;#39; directive globally to suppress this message&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This error occurs when Apache is unable to determine the fully qualified domain name (FQDN) of your server. It&amp;rsquo;s a warning rather than a critical error, but it&amp;rsquo;s a good practice to address it to avoid potential issues. Here&amp;rsquo;s how you can resolve this issue:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Prevent Your Screen from Turning Off on Windows</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-prevent-your-screen-from-turning-off-on-windows/</link>
      <pubDate>Mon, 07 Jun 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-prevent-your-screen-from-turning-off-on-windows/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you find that your Windows computer screen is turning off too quickly and you want to prevent it from doing so, you can use the &lt;code&gt;powercfg&lt;/code&gt; command to override the default power settings. This can be particularly useful if you&amp;rsquo;re watching a movie, giving a presentation, or working on a task that requires your screen to remain active for an extended period of time. Here&amp;rsquo;s how you can create, delete, and list power request overrides using the &lt;code&gt;powercfg&lt;/code&gt; command.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How To Fix Postfix Error Bind 0000 Port 25 Address Already In Use</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-fix-postfix-error-bind-0000-port-25-address-already-in-use/</link>
      <pubDate>Sun, 06 Jun 2021 10:27:34 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-fix-postfix-error-bind-0000-port-25-address-already-in-use/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you&amp;rsquo;re encountering the &amp;ldquo;Postfix Error: bind 0.0.0.0 port 25: Address already in use&amp;rdquo; error message, it means that the default SMTP port 25 is already in use by another service on your server. To resolve this issue, you can change the port that Postfix listens on for incoming email connections. Here&amp;rsquo;s how to do it:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Open your &lt;code&gt;master.cf&lt;/code&gt; configuration file using a text editor. You can use the &lt;code&gt;vim&lt;/code&gt; editor as mentioned in your provided instructions:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Send Gmail Email With Postfix on Ubuntu</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-send-gmail-email-with-postfix-on-ubuntu/</link>
      <pubDate>Sun, 06 Jun 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-send-gmail-email-with-postfix-on-ubuntu/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In this guide, we will walk you through the steps to configure Postfix on an Ubuntu system to send emails through your Gmail account. This can be useful for various purposes, such as sending automated emails from your server. Follow these steps:&lt;/p&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;step-1-install-required-packages&#34;&gt;&lt;span&gt;Step 1: Install Required Packages&lt;/span&gt;&#xA;  &lt;a href=&#34;#step-1-install-required-packages&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;p&gt;First, you need to install the necessary packages. Open a terminal and run the following command:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sending Email via Console with Custom From Address on Mac Using Gmail</title>
      <link>https://dimasmaulana.pages.dev/posts/development/sending-email-via-console-with-custom-from-address-on-mac-using-gmail/</link>
      <pubDate>Sat, 05 Jun 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/sending-email-via-console-with-custom-from-address-on-mac-using-gmail/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you want to send an email via the console on your Mac using a custom &amp;ldquo;From&amp;rdquo; address with Gmail, you can use the &lt;code&gt;sendmail&lt;/code&gt; command. Gmail&amp;rsquo;s SMTP servers can be configured to allow sending emails from custom addresses. Here&amp;rsquo;s how you can send an email from the console with a custom &amp;ldquo;From&amp;rdquo; address using &lt;code&gt;sendmail&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;prerequisites&#34;&gt;&lt;span&gt;Prerequisites&lt;/span&gt;&#xA;  &lt;a href=&#34;#prerequisites&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;You should have a Gmail account set up.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Hear Your Own Microphone Voice on Mac</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-hear-your-own-microphone-voice-on-mac/</link>
      <pubDate>Fri, 04 Jun 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-hear-your-own-microphone-voice-on-mac/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you want to hear your own microphone voice on your Mac, you can easily do so using QuickTime Player. This can be useful for monitoring your audio input or for various recording and communication purposes. Follow these steps to set it up:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Open QuickTime Player:&lt;/strong&gt; You can find QuickTime Player in your Applications folder or by using Spotlight Search (press Command + Space, then start typing &amp;ldquo;QuickTime Player&amp;rdquo; and press Enter).&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Host Your Own Apple Contacts Account on Mac and iOS using Nextcloud</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-host-your-own-apple-contacts-account-on-mac-and-ios-using-nextcloud/</link>
      <pubDate>Fri, 04 Jun 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-host-your-own-apple-contacts-account-on-mac-and-ios-using-nextcloud/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you&amp;rsquo;re concerned about privacy or simply want more control over your contacts, hosting your own Apple Contacts account using Nextcloud is a great option. This allows you to store and sync your contacts securely on your own server. Here&amp;rsquo;s a step-by-step guide on how to set it up:&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;prerequisites&#34;&gt;&lt;span&gt;Prerequisites&lt;/span&gt;&#xA;  &lt;a href=&#34;#prerequisites&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Nextcloud Server&lt;/strong&gt;: You&amp;rsquo;ll need a Nextcloud server set up. You can either host your own Nextcloud server or use a Nextcloud hosting provider.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Host Your Own Apple Reminders on Mac and iOS</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-host-your-own-apple-reminders-on-mac-and-ios/</link>
      <pubDate>Fri, 04 Jun 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-host-your-own-apple-reminders-on-mac-and-ios/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you want to take control of your Apple Reminders and host them on your own server, you can do so by using Nextcloud, a popular open-source cloud platform. This guide will walk you through the process of setting up your own Apple Reminders service on your Mac and iOS devices.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;prerequisites&#34;&gt;&lt;span&gt;Prerequisites&lt;/span&gt;&#xA;  &lt;a href=&#34;#prerequisites&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Before you get started, make sure you have the following:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Log All Script Output Inside the Script Itself</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-log-all-script-output-inside-the-script-itself/</link>
      <pubDate>Thu, 03 Jun 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-log-all-script-output-inside-the-script-itself/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Logging script output is a common practice in shell scripting to keep track of what a script is doing, especially during debugging or troubleshooting. In this guide, we&amp;rsquo;ll show you how to log all script output inside the script itself using the &lt;code&gt;tee&lt;/code&gt; command and redirection.&lt;/p&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s a simple example of a script that echoes some text and logs its output:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;#!/bin/bash&#xA;&#xA;# Define the path to the debug log file&#xA;DEBUGLOG=&amp;#34;/path/to/debug.log&amp;#34;&#xA;&#xA;# Redirect all output (stdout and stderr) to the debug log using tee&#xA;{&#xA;    echo &amp;#34;test&amp;#34;&#xA;    echo &amp;#34;test 2&amp;#34;&#xA;    echo &amp;#34;test 3&amp;#34;&#xA;} 2&amp;gt;&amp;amp;1 | tee -a &amp;#34;$DEBUGLOG&amp;#34;&#xA;&#xA;# Additional script commands go here&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;In this script:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sending Email with Gmail and Custom From Address Using GNU Mail</title>
      <link>https://dimasmaulana.pages.dev/posts/development/sending-email-with-gmail-and-custom-from-address-using-gnu-mail/</link>
      <pubDate>Thu, 03 Jun 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/sending-email-with-gmail-and-custom-from-address-using-gnu-mail/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In this guide, we will walk you through the process of sending an email using Gmail as the SMTP server and customizing the &amp;ldquo;From&amp;rdquo; address using the GNU Mail command-line utility on a Ubuntu-based system. This can be useful if you want to send emails from a specific address other than your Gmail account.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;prerequisites&#34;&gt;&lt;span&gt;Prerequisites&lt;/span&gt;&#xA;  &lt;a href=&#34;#prerequisites&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Before you begin, make sure you have the following prerequisites:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Running a Command in a Different Folder</title>
      <link>https://dimasmaulana.pages.dev/posts/development/running-a-command-in-a-different-folder/</link>
      <pubDate>Tue, 01 Jun 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/running-a-command-in-a-different-folder/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In a Markdown article, you can explain how to run a command in a different folder using the &lt;code&gt;cd&lt;/code&gt; command in Unix-like operating systems. Here&amp;rsquo;s how you can structure your article:&lt;/p&gt;&#xA;&lt;p&gt;Sometimes, when working in a Unix-like operating system (such as Linux or macOS), you may need to execute a command from a different directory than your current one. This can be done using the &lt;code&gt;cd&lt;/code&gt; command along with the desired command you want to run. In this article, we&amp;rsquo;ll explore how to run a command in a different folder.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Set Up DNSCrypt Using bitbar-dnscrypt-proxy-switcher</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-set-up-dnscrypt-using-bitbar-dnscrypt-proxy-switcher/</link>
      <pubDate>Fri, 21 May 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-set-up-dnscrypt-using-bitbar-dnscrypt-proxy-switcher/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;&lt;strong&gt;DNSCrypt&lt;/strong&gt; is a protocol that encrypts DNS traffic between your computer and the DNS server, enhancing your online privacy and security. The &lt;strong&gt;bitbar-dnscrypt-proxy-switcher&lt;/strong&gt; is a convenient way to control DNSCrypt using &lt;a href=&#34;https://getbitbar.com/&#34; target=&#34;_blank&#34; rel=&#34;external nofollow noopener noreferrer&#34;&gt;BitBar&lt;/a&gt;, a Mac menu bar application that allows you to add various plugins for quick access to information and functionality. In this guide, we&amp;rsquo;ll walk you through the steps to set up DNSCrypt using bitbar-dnscrypt-proxy-switcher.&lt;/p&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;prerequisites&#34;&gt;&lt;span&gt;Prerequisites&lt;/span&gt;&#xA;  &lt;a href=&#34;#prerequisites&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;p&gt;Before you begin, make sure you have the following prerequisites installed on your Mac:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How To Disable Turbo Boost Without Asking Administrator Password On Turbo Boost Switcher</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-disable-turbo-boost-without-asking-administrator-password-on-turbo-boost-switcher/</link>
      <pubDate>Wed, 12 May 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-disable-turbo-boost-without-asking-administrator-password-on-turbo-boost-switcher/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you want to disable Turbo Boost on your Mac without having to enter the administrator password every time, you can use Turbo Boost Switcher and set it up to run as a root or as a service. Here are the steps to achieve this:&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;run-turbo-boost-switcher-as-root&#34;&gt;&lt;span&gt;Run Turbo Boost Switcher As Root&lt;/span&gt;&#xA;  &lt;a href=&#34;#run-turbo-boost-switcher-as-root&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Open the Terminal application. You can find it in the Applications folder under Utilities, or you can use Spotlight by pressing &lt;code&gt;Cmd + Space&lt;/code&gt; and typing &amp;ldquo;Terminal.&amp;rdquo;&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Prevent Auto Volume Changes on Google Meet in Chrome</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-prevent-auto-volume-changes-on-google-meet-in-chrome/</link>
      <pubDate>Fri, 30 Apr 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-prevent-auto-volume-changes-on-google-meet-in-chrome/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Google Meet is a popular video conferencing tool, but one common issue users encounter is auto volume adjustment, which can be quite annoying during meetings. Thankfully, there&amp;rsquo;s a Chrome extension called &amp;ldquo;Disable Automatic Gain Control&amp;rdquo; that can help you stop auto volume changes on Google Meet. In this guide, we&amp;rsquo;ll walk you through the steps to install and use this extension.&lt;/p&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;step-1-install-the-chrome-extension&#34;&gt;&lt;span&gt;Step 1: Install the Chrome Extension&lt;/span&gt;&#xA;  &lt;a href=&#34;#step-1-install-the-chrome-extension&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;p&gt;To get started, you&amp;rsquo;ll need to install the &amp;ldquo;Disable Automatic Gain Control&amp;rdquo; Chrome extension. Here&amp;rsquo;s how to do it:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How To Copy Exif Meta Data From One File To Another Using Exiftool</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-copy-exif-meta-data-from-one-file-to-another-using-exiftool/</link>
      <pubDate>Thu, 29 Apr 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-copy-exif-meta-data-from-one-file-to-another-using-exiftool/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Exiftool is a powerful command-line tool for manipulating and extracting metadata from a wide range of file types, including images and videos. In this guide, we will learn how to copy Exif metadata from one file to another using Exiftool.&lt;/p&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;prerequisites&#34;&gt;&lt;span&gt;Prerequisites&lt;/span&gt;&#xA;  &lt;a href=&#34;#prerequisites&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;p&gt;Before you begin, make sure you have Exiftool installed on your system. You can download it from the &lt;a href=&#34;https://exiftool.org/&#34; target=&#34;_blank&#34; rel=&#34;external nofollow noopener noreferrer&#34;&gt;Exiftool website&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Merge a Subtitle File Directly with a Movie on Mac using Subler</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-merge-a-subtitle-file-directly-with-a-movie-on-mac-using-subler/</link>
      <pubDate>Thu, 29 Apr 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-merge-a-subtitle-file-directly-with-a-movie-on-mac-using-subler/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Subler is a powerful and user-friendly application for macOS that allows you to add subtitle files directly to your movie files. This can be incredibly useful if you have a movie without built-in subtitles or if you want to replace the existing subtitles with a different language or better-quality subtitles. In this guide, we will walk you through the process of merging a subtitle file with a movie using Subler.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fixing Puppeteer libgbm.so.1 Error on Ubuntu</title>
      <link>https://dimasmaulana.pages.dev/posts/development/fixing-puppeteer-libgbm-so-1-error-on-ubuntu/</link>
      <pubDate>Mon, 12 Apr 2021 19:28:33 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/fixing-puppeteer-libgbm-so-1-error-on-ubuntu/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;When trying to run Puppeteer on Ubuntu, you may encounter the following error:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;error while loading shared libraries: libgbm.so.1: cannot open shared object file: No such file or directory&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This error occurs because the required library &lt;code&gt;libgbm.so.1&lt;/code&gt; is missing on your system. To resolve this issue, you need to install the &lt;code&gt;libgbm&lt;/code&gt; development package. Here&amp;rsquo;s a step-by-step guide on how to fix it:&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;step-1-update-package-lists&#34;&gt;&lt;span&gt;Step 1: Update Package Lists&lt;/span&gt;&#xA;  &lt;a href=&#34;#step-1-update-package-lists&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Before installing any packages, it&amp;rsquo;s always a good practice to update the package lists to ensure you are installing the latest versions available.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Sync with Rsync but Ignore .DS_Store Files</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-sync-with-rsync-but-ignore-dsstore-files/</link>
      <pubDate>Sat, 10 Apr 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-sync-with-rsync-but-ignore-dsstore-files/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Rsync is a powerful command-line tool for synchronizing files and directories between two locations. However, when syncing macOS files to another location, you may encounter pesky &lt;code&gt;.DS_Store&lt;/code&gt; files, which are hidden metadata files created by the Finder. To exclude these files from your rsync operation, you can use the &lt;code&gt;--exclude&lt;/code&gt; flag. Below is an example of how to sync files while ignoring &lt;code&gt;.DS_Store&lt;/code&gt; files:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;### Command Explanation&#xA;&#xA;Let&amp;#39;s break down the command step by step:&#xA;&#xA;- `rsync`: This is the command itself.&#xA;- `--force`: This option tells rsync to overwrite files without asking for confirmation.&#xA;- `-ahviP`: These are a combination of options:&#xA;  - `-a`: Archive mode, which preserves various attributes of files and directories.&#xA;  - `-h`: Output numbers in a human-readable format (e.g., 1K, 2M).&#xA;  - `-v`: Verbose mode, which displays detailed information about the sync process.&#xA;  - `-i`: Itemize changes, displaying a summary of the changes made.&#xA;  - `-P`: Equivalent to `--partial --progress`, it keeps partially transferred files and shows progress during transfer.&#xA;- `--exclude &amp;#39;.DS_Store&amp;#39;`: This flag tells rsync to exclude any file or directory named `.DS_Store`.&#xA;- `--delete`: This option deletes files in the destination that are not present in the source. Be cautious with this option as it can result in data loss if not used carefully.&#xA;- `/Users/dimas/Vaults/Photos/`: This is the source directory you want to sync.&#xA;- `/Volumes/example/Photos/`: This is the destination directory where you want to sync the files.&#xA;&#xA;### Usage Notes&#xA;&#xA;1. **Source and Destination Paths**: Make sure to replace `/Users/dimas/Vaults/Photos/` and `/Volumes/example/Photos/` with your actual source and destination paths.&#xA;&#xA;2. **Be Careful with --delete**: The `--delete` option can remove files in the destination that are not in the source. Use it with caution to avoid unintentional data loss.&#xA;&#xA;3. **Backup**: Before running any rsync command with the `--delete` option, ensure you have a backup of your data in case something goes wrong.&#xA;&#xA;4. **Hidden Files**: `.DS_Store` files are just one example of hidden files on macOS. You can use the same `--exclude` flag to exclude other hidden files or directories if needed.&#xA;&#xA;With this command, you can effectively synchronize your files and directories while excluding `.DS_Store` files, keeping your destination directory clean and clutter-free.&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Feel free to customize the command according to your specific needs, such as excluding other hidden files or directories or adjusting the sync options to suit your preferences.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Mac Install Default Path Languange</title>
      <link>https://dimasmaulana.pages.dev/posts/development/mac-install-default-path-languange/</link>
      <pubDate>Thu, 01 Apr 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/mac-install-default-path-languange/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;It looks like you want to provide instructions for installing Python 3 and Java 11 on a Mac using Homebrew and setting their default paths. Here&amp;rsquo;s a step-by-step guide in Markdown format:&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;installing-python-3&#34;&gt;&lt;span&gt;Installing Python 3&lt;/span&gt;&#xA;  &lt;a href=&#34;#installing-python-3&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Install Python 3 using Homebrew:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Enable Bash Autocompletion on Mac</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-enable-bash-autocompletion-on-mac/</link>
      <pubDate>Tue, 30 Mar 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-enable-bash-autocompletion-on-mac/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Bash autocompletion is a handy feature that can save you time and keystrokes when working in the terminal. It allows you to press the Tab key to automatically complete commands, file names, and more. Here, we&amp;rsquo;ll walk you through the process of enabling bash autocompletion on macOS using Homebrew.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;prerequisites&#34;&gt;&lt;span&gt;Prerequisites&lt;/span&gt;&#xA;  &lt;a href=&#34;#prerequisites&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Before you begin, ensure that you have Homebrew installed. If you don&amp;rsquo;t have it installed, you can get it from &lt;a href=&#34;https://brew.sh/&#34; target=&#34;_blank&#34; rel=&#34;external nofollow noopener noreferrer&#34;&gt;Homebrew&amp;rsquo;s official website&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Using Terminal Completion on iTerm2</title>
      <link>https://dimasmaulana.pages.dev/posts/development/using-terminal-completion-on-iterm2/</link>
      <pubDate>Tue, 30 Mar 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/using-terminal-completion-on-iterm2/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;iTerm2 is a popular terminal emulator for macOS that comes with a variety of features to enhance your command-line experience. One such feature is Terminal Completion, which allows you to quickly and efficiently complete commands, file paths, and more using keyboard shortcuts. In this article, we&amp;rsquo;ll explore how to use Terminal Completion in iTerm2 using the &lt;code&gt;Cmd + ;&lt;/code&gt; shortcut.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;what-is-terminal-completion&#34;&gt;&lt;span&gt;What is Terminal Completion?&lt;/span&gt;&#xA;  &lt;a href=&#34;#what-is-terminal-completion&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Terminal Completion, also known as tab completion, is a feature that helps you save time when typing commands in the terminal. It works by automatically suggesting and completing commands, file paths, directory names, and more as you type. This can be especially useful when working with long and complex commands or navigating through a directory structure with many nested folders.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Storing GIT Credentials Locally</title>
      <link>https://dimasmaulana.pages.dev/posts/development/storing-git-credentials-locally/</link>
      <pubDate>Mon, 29 Mar 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/storing-git-credentials-locally/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;When working with Git repositories, it&amp;rsquo;s often convenient to store your credentials locally to avoid repeatedly entering your username and password or personal access token. Git provides several methods for managing credentials, including caching and using credential helpers. Here, we&amp;rsquo;ll discuss how to store Git credentials locally on different operating systems and how to set a token for each project folder.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;storing-git-credentials-locally&#34;&gt;&lt;span&gt;Storing Git Credentials Locally&lt;/span&gt;&#xA;  &lt;a href=&#34;#storing-git-credentials-locally&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;h3 class=&#34;heading-element&#34; id=&#34;on-linux&#34;&gt;&lt;span&gt;On Linux&lt;/span&gt;&#xA;  &lt;a href=&#34;#on-linux&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;p&gt;To store Git credentials locally on a Linux system, you can use the &lt;code&gt;git config&lt;/code&gt; command with the &lt;code&gt;credential.helper&lt;/code&gt; setting set to &lt;code&gt;cache&lt;/code&gt;. This will cache your credentials for a specified period, typically 15 minutes, before requiring you to re-enter them.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Understanding Command Line Syntax</title>
      <link>https://dimasmaulana.pages.dev/posts/development/understanding-command-line-syntax/</link>
      <pubDate>Mon, 29 Mar 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/understanding-command-line-syntax/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;When working with command line interfaces (CLI), it&amp;rsquo;s essential to understand the syntax and formatting used to create and execute commands. The command line syntax can include special characters and conventions that dictate how commands should be structured and what elements are required or optional. Let&amp;rsquo;s break down the common command line syntax elements using examples from both a general explanation and a specific CLI usage sample.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;command-line-syntax-elements&#34;&gt;&lt;span&gt;Command Line Syntax Elements&lt;/span&gt;&#xA;  &lt;a href=&#34;#command-line-syntax-elements&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;h3 class=&#34;heading-element&#34; id=&#34;square-brackets--&#34;&gt;&lt;span&gt;Square Brackets [ ]&lt;/span&gt;&#xA;  &lt;a href=&#34;#square-brackets--&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;p&gt;The square brackets ( &lt;code&gt;[ ]&lt;/code&gt; ) in command line syntax indicate that the enclosed element, which can be a parameter, value, or information, is optional. Users have the choice to include one or more items within the square brackets or omit them entirely. It&amp;rsquo;s important not to type the square brackets themselves in the actual command line.&lt;/p&gt;</description>
    </item>
    <item>
      <title>List SSH Config Host</title>
      <link>https://dimasmaulana.pages.dev/posts/development/list-ssh-config-host/</link>
      <pubDate>Sun, 28 Mar 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/list-ssh-config-host/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In SSH configuration files, you can define multiple hosts with different settings. To list all the defined hosts in your SSH config file using the &lt;code&gt;sed&lt;/code&gt; command, you can use the following command:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;```bash&#xA;sed -n &amp;#39;/^#/!s/Host //p&amp;#39; ~/.ssh/config&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;&#xA;Here&amp;#39;s what this command does:&#xA;&#xA;- `sed` is a stream editor for filtering and transforming text.&#xA;- `-n` tells `sed` to suppress automatic printing.&#xA;- `/^#/!s/Host //p` is a `sed` expression:&#xA;  - `/^#/` matches lines that start with `#`, which are comments in the SSH config file.&#xA;  - `!` negates the match, so it selects lines that do not start with `#`.&#xA;  - `s/Host //` replaces the word &amp;#34;Host&amp;#34; with an empty string, effectively removing it from the line.&#xA;  - `p` instructs `sed` to print the modified lines.&#xA;&#xA;When you run this command, it will display a list of host names defined in your SSH config file, excluding any commented-out entries. This can be useful to quickly see the configured hosts on your system.&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>SSH Proxy Jump: Simplifying Secure SSH Connections</title>
      <link>https://dimasmaulana.pages.dev/posts/development/ssh-proxy-jump-simplifying-secure-ssh-connections/</link>
      <pubDate>Thu, 25 Mar 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/ssh-proxy-jump-simplifying-secure-ssh-connections/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Secure Shell (SSH) is a widely-used protocol for securely connecting to remote servers over an untrusted network, such as the internet. SSH ensures the confidentiality and integrity of data exchanged between the client and server. However, managing SSH connections to servers with complex network configurations can be challenging. This is where SSH Proxy Jump, also known as SSH Jump Host or SSH Bastion Host, comes in handy.&lt;/p&gt;&#xA;&lt;p&gt;SSH Proxy Jump allows you to connect to a target server through an intermediate server, known as a jump host or bastion host. This intermediate server acts as a gateway, helping you traverse complex network topologies while maintaining security. In this article, we&amp;rsquo;ll explore how to use SSH Proxy Jump both via the command line and through SSH configuration files.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Essential Vim Commands for Log Messages and Plugin Mapping Details</title>
      <link>https://dimasmaulana.pages.dev/posts/development/essential-vim-commands-for-log-messages-and-plugin-mapping-details/</link>
      <pubDate>Sun, 21 Mar 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/essential-vim-commands-for-log-messages-and-plugin-mapping-details/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Vim is a powerful text editor that offers a wide range of features and commands to enhance your productivity. In this article, we will explore two essential Vim commands that will help you manage log messages and check mapping details with plugins.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;1-viewing-log-messages&#34;&gt;&lt;span&gt;1. Viewing Log Messages&lt;/span&gt;&#xA;  &lt;a href=&#34;#1-viewing-log-messages&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;In Vim, log messages can be useful for debugging or understanding the history of your editing session. To view all log messages, you can use the &lt;code&gt;:messages&lt;/code&gt; command. Here&amp;rsquo;s how it works:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Connect Kubectl pods Kubernetes</title>
      <link>https://dimasmaulana.pages.dev/posts/development/connect-kubectl-pods-kubernetes/</link>
      <pubDate>Sat, 20 Mar 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/connect-kubectl-pods-kubernetes/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;To connect to a pod in Kubernetes using &lt;code&gt;kubectl port-forward&lt;/code&gt;, you can follow the command you provided:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;kubectl port-forward kubernetes-dashboard-7798c48646-ctrtl 8443:8443 --namespace=kube-system&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This command is useful when you want to access a service running inside a Kubernetes pod from your local machine. Here&amp;rsquo;s a breakdown of the command:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;kubectl port-forward&lt;/code&gt;: This is the command for port forwarding in Kubernetes.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;kubernetes-dashboard-7798c48646-ctrtl&lt;/code&gt;: This is the name of the pod you want to connect to. Replace it with the actual name of the pod you want to access.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;8443:8443&lt;/code&gt;: This specifies the port forwarding configuration. It forwards port 8443 on your local machine to port 8443 on the pod. You can adjust the port numbers as needed.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;--namespace=kube-system&lt;/code&gt;: This flag specifies the namespace in which the pod is located. In this case, it&amp;rsquo;s in the &lt;code&gt;kube-system&lt;/code&gt; namespace.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;After running this command, you can access the service running inside the pod on your local machine by connecting to &lt;code&gt;https://localhost:8443&lt;/code&gt; in your web browser. Make sure that the service you want to access is listening on port 8443 inside the pod for this to work.&lt;/p&gt;</description>
    </item>
    <item>
      <title>About Bash Profile And Bash.Rc On Mac OS</title>
      <link>https://dimasmaulana.pages.dev/posts/development/about-bashprofile-and-bashrc-on-mac-os/</link>
      <pubDate>Fri, 19 Mar 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/about-bashprofile-and-bashrc-on-mac-os/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;The macOS Terminal.app uses a series of scripts and configuration files to set up the shell environment before you see the command prompt. Here&amp;rsquo;s an overview of these files and how they are executed:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;/etc/profile&lt;/strong&gt;: This is a system-wide configuration file that is executed for all users when they start a new shell session. It sets up environment variables and configurations that are applicable to all users.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;/etc/bashrc&lt;/strong&gt;: This file is also system-wide and is typically sourced (executed) by &lt;code&gt;/etc/profile&lt;/code&gt;. It can contain additional configurations and environment variables that apply to all users and all shell sessions.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Moving Files from Google Drive Except Google Drive Files</title>
      <link>https://dimasmaulana.pages.dev/posts/development/moving-files-from-google-drive-except-google-drive-files/</link>
      <pubDate>Sun, 07 Feb 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/moving-files-from-google-drive-except-google-drive-files/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you want to move all files from Google Drive except for the ones with specific Google extensions (.gshortcut, .gdoc, .gsheet, .gslides, .gform, .gjam, .gmap, .gsite), you can use the &lt;code&gt;rsync&lt;/code&gt; command with the &lt;code&gt;--exclude&lt;/code&gt; option to specify the file extensions to be excluded. Additionally, you can exclude common system files like &amp;ldquo;Icon?&amp;rdquo; and &amp;ldquo;.DS_Store&amp;rdquo; to avoid transferring them. Here&amp;rsquo;s the command to achieve this:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;rsync -avP --exclude=&amp;#34;*.gshortcut&amp;#34; --exclude=&amp;#34;*.gdoc&amp;#34; --exclude=&amp;#34;*.gsheet&amp;#34; --exclude=&amp;#34;*.gslides&amp;#34; --exclude=&amp;#34;*.gform&amp;#34; --exclude=&amp;#34;*.gjam&amp;#34; --exclude=&amp;#34;*.gmap&amp;#34; --exclude=&amp;#34;*.gsite&amp;#34; --exclude=&amp;#34;Icon?&amp;#34; --exclude=&amp;#34;.DS_Store&amp;#34; --remove-source-files &amp;#34;Google Drive (example@gmail.com)/example/&amp;#34; ./temp&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Explanation of the command:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Running a Shell Script from Finder and Keeping the Filepath</title>
      <link>https://dimasmaulana.pages.dev/posts/development/running-a-shell-script-from-finder-and-keeping-the-filepath/</link>
      <pubDate>Fri, 22 Jan 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/running-a-shell-script-from-finder-and-keeping-the-filepath/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you&amp;rsquo;re a macOS user and want to run a shell script by double-clicking it in the Finder, you might encounter an issue with the working directory. By default, the working directory of the script becomes the user&amp;rsquo;s home directory, which can lead to unexpected behavior if your script relies on relative file paths. To ensure that your script runs with the correct working directory, you can include a specific command at the beginning of your script.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Running Selenium on Windows 10 from Ubuntu WSL</title>
      <link>https://dimasmaulana.pages.dev/posts/development/running-selenium-on-windows-10-from-ubuntu-wsl/</link>
      <pubDate>Fri, 22 Jan 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/running-selenium-on-windows-10-from-ubuntu-wsl/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you&amp;rsquo;re trying to run Selenium with Chrome headless on Ubuntu WSL and encountering issues, an alternative approach is to install the Selenium Standalone Server on your Windows 10 machine and then connect to it remotely from the Ubuntu WSL terminal. This can help you overcome the limitations of running Chrome headless directly within WSL.&lt;/p&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s a step-by-step guide on how to achieve this:&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;step-1-set-up-selenium-standalone-server-on-windows-10&#34;&gt;&lt;span&gt;Step 1: Set Up Selenium Standalone Server on Windows 10&lt;/span&gt;&#xA;  &lt;a href=&#34;#step-1-set-up-selenium-standalone-server-on-windows-10&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Install Java&lt;/strong&gt;: Ensure you have Java installed on your Windows 10 machine since Selenium requires it to run. You can download and install Java from the official website.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Resizing a File in Ubuntu by a Specific Size and Removing Lines from the Center</title>
      <link>https://dimasmaulana.pages.dev/posts/development/resizing-a-file-in-ubuntu-by-a-specific-size-and-removing-lines-from-the-center/</link>
      <pubDate>Tue, 12 Jan 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/resizing-a-file-in-ubuntu-by-a-specific-size-and-removing-lines-from-the-center/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;To resize a file to a specific size and remove lines from the center of the file in Ubuntu, you can use a combination of commands like &lt;code&gt;truncate&lt;/code&gt; and &lt;code&gt;head&lt;/code&gt; and &lt;code&gt;tail&lt;/code&gt;. Here&amp;rsquo;s how you can achieve this:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Resize the File to 10MB using &lt;code&gt;truncate&lt;/code&gt;:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;To resize a file to a specific size, you can use the &lt;code&gt;truncate&lt;/code&gt; command with the &lt;code&gt;--size&lt;/code&gt; (&lt;code&gt;-s&lt;/code&gt;) option. In this case, we want to resize the file &lt;code&gt;other_vhosts_access.log&lt;/code&gt; to 10MB:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tracing HTTPS Requests Using mitmproxy</title>
      <link>https://dimasmaulana.pages.dev/posts/development/tracing-https-requests-using-mitmproxy/</link>
      <pubDate>Mon, 11 Jan 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/tracing-https-requests-using-mitmproxy/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Mitmproxy is a powerful tool that allows you to intercept, modify, and inspect network traffic. It&amp;rsquo;s commonly used for debugging, security testing, and analyzing HTTP/HTTPS traffic. In this article, we&amp;rsquo;ll explore how to trace HTTPS requests using mitmproxy, both with a regular proxy and a transparent proxy setup.&lt;/p&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;prerequisites&#34;&gt;&lt;span&gt;Prerequisites&lt;/span&gt;&#xA;  &lt;a href=&#34;#prerequisites&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;p&gt;Before you start, make sure you have mitmproxy installed. You can install it using &lt;code&gt;pip&lt;/code&gt;:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Delete Old Journal Logs in Ubuntu</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-delete-old-journal-logs-in-ubuntu/</link>
      <pubDate>Fri, 01 Jan 2021 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-delete-old-journal-logs-in-ubuntu/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you&amp;rsquo;re running Ubuntu, you might accumulate a large amount of journal logs over time. These logs can take up valuable disk space. Fortunately, you can easily delete old journal logs to free up space on your system. Here&amp;rsquo;s how you can do it using the &lt;code&gt;journalctl&lt;/code&gt; command with the &lt;code&gt;--vacuum-time&lt;/code&gt; option.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;deleting-old-journal-logs&#34;&gt;&lt;span&gt;Deleting Old Journal Logs&lt;/span&gt;&#xA;  &lt;a href=&#34;#deleting-old-journal-logs&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;To delete old journal logs in Ubuntu, follow these steps:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bash Check if Shell on Interactive or Login</title>
      <link>https://dimasmaulana.pages.dev/posts/development/bash-check-if-shell-on-interactive-or-login/</link>
      <pubDate>Fri, 11 Dec 2020 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/bash-check-if-shell-on-interactive-or-login/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In Bash, you can check whether the shell is running in an interactive or login mode using the provided commands. Here&amp;rsquo;s an explanation of each command and what it checks for:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;code&gt;[[ $- == *i* ]] &amp;amp;&amp;amp; echo &#39;Interactive&#39; || echo &#39;Not interactive&#39;&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;This command checks the value of the special shell variable &lt;code&gt;$-&lt;/code&gt;, which contains a string of options and flags that are currently set for the shell.&lt;/li&gt;&#xA;&lt;li&gt;The &lt;code&gt;*i*&lt;/code&gt; pattern is used to check if the letter &amp;lsquo;i&amp;rsquo; appears anywhere in the value of &lt;code&gt;$-&lt;/code&gt;. If it does, it indicates that the shell is running in interactive mode.&lt;/li&gt;&#xA;&lt;li&gt;If &amp;lsquo;i&amp;rsquo; is found, it echoes &amp;lsquo;Interactive&amp;rsquo;, otherwise, it echoes &amp;lsquo;Not interactive&amp;rsquo;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;code&gt;shopt -q login_shell &amp;amp;&amp;amp; echo &#39;Login shell&#39; || echo &#39;Not login shell&#39;&lt;/code&gt;:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Fix Wrong Indentation When Pasting Source Code in VIM</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-fix-wrong-indentation-when-pasting-source-code-in-vim/</link>
      <pubDate>Fri, 11 Dec 2020 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-fix-wrong-indentation-when-pasting-source-code-in-vim/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;When copying and pasting source code into the VIM text editor, you might encounter issues with incorrect indentation due to the way VIM handles auto-indentation. This happens because VIM&amp;rsquo;s default behavior tries to adjust the indentation based on the surrounding code, which can lead to unwanted results when pasting code from external sources. To prevent this, you can use the &lt;code&gt;:set paste&lt;/code&gt; and &lt;code&gt;:set nopaste&lt;/code&gt; commands to toggle the paste mode. Here&amp;rsquo;s how to do it:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Wsl2 Ram Overload Om Host (draft)</title>
      <link>https://dimasmaulana.pages.dev/posts/development/wsl2-ram-overload-om-host-draftmd/</link>
      <pubDate>Tue, 08 Dec 2020 10:27:34 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/wsl2-ram-overload-om-host-draftmd/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;WSL 2 (Windows Subsystem for Linux 2) has gained significant popularity among developers for its ability to run a full Linux kernel alongside the Windows operating system. However, one common issue that users may face is RAM overload on the host machine. This can lead to performance degradation and even system crashes. One approach to mitigate this problem is by limiting memory and processor usage for WSL 2 by editing the &lt;code&gt;wsl.conf&lt;/code&gt; configuration file.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Kill Child Process and Parent Process Bash Linux</title>
      <link>https://dimasmaulana.pages.dev/posts/development/kill-child-process-and-parent-process-bash-linux/</link>
      <pubDate>Tue, 08 Dec 2020 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/kill-child-process-and-parent-process-bash-linux/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;you want a set of Bash commands for managing processes in a Linux environment. Here&amp;rsquo;s an explanation of what each command does:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Kill Child Process and Parent Process&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;pid=17844 &amp;amp;&amp;amp; pkill -TERM -P $pid &amp;amp;&amp;amp; kill $pid&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This command first assigns the value 17844 to the variable &lt;code&gt;pid&lt;/code&gt;. Then, it uses &lt;code&gt;pkill&lt;/code&gt; with the &lt;code&gt;-TERM&lt;/code&gt; option to send a termination signal to all processes with a parent process ID (PPID) equal to the value stored in &lt;code&gt;pid&lt;/code&gt;. Finally, it uses the &lt;code&gt;kill&lt;/code&gt; command to send a termination signal to the process with the PID stored in &lt;code&gt;pid&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Modifying Indentation in Vim</title>
      <link>https://dimasmaulana.pages.dev/posts/development/modifying-indentation-in-vim/</link>
      <pubDate>Tue, 08 Dec 2020 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/modifying-indentation-in-vim/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Indentation settings are crucial for maintaining consistent and readable code. In Vim, you can easily modify indentation preferences using various commands. Here&amp;rsquo;s a breakdown of your provided commands and their effects:&lt;/p&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;converting-tabs-to-spaces&#34;&gt;&lt;span&gt;Converting Tabs to Spaces&lt;/span&gt;&#xA;  &lt;a href=&#34;#converting-tabs-to-spaces&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;p&gt;To replace tabs with spaces, follow these steps:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Working with Background Processes in Linux Bash</title>
      <link>https://dimasmaulana.pages.dev/posts/development/working-with-background-processes-in-linux-bash/</link>
      <pubDate>Tue, 08 Dec 2020 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/working-with-background-processes-in-linux-bash/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In Linux, you can manage processes in the background using various commands and keyboard shortcuts. This article will walk you through how to list, stop, start, and bring background processes to the foreground, as well as how to kill running processes.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;listing-processes&#34;&gt;&lt;span&gt;Listing Processes&lt;/span&gt;&#xA;  &lt;a href=&#34;#listing-processes&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;To list the processes running on your system, you can use the &lt;code&gt;ps&lt;/code&gt; command. Here&amp;rsquo;s the basic syntax:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Timing Shell Commands in Bash</title>
      <link>https://dimasmaulana.pages.dev/posts/development/timing-shell-commands-in-bash/</link>
      <pubDate>Fri, 04 Dec 2020 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/timing-shell-commands-in-bash/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;When working in a Unix-like environment, timing the execution of shell commands is a useful way to measure the performance of various operations. Bash provides a couple of approaches for timing shell commands: using the &lt;code&gt;/usr/bin/time&lt;/code&gt; command or setting the &lt;code&gt;TIMEFORMAT&lt;/code&gt; variable.&lt;/p&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;using-usrbintime-command&#34;&gt;&lt;span&gt;Using &lt;code&gt;/usr/bin/time&lt;/code&gt; Command&lt;/span&gt;&#xA;  &lt;a href=&#34;#using-usrbintime-command&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;p&gt;The &lt;code&gt;/usr/bin/time&lt;/code&gt; command is a versatile utility that can provide information about the resources used by a process, including the execution time. To time a command using &lt;code&gt;/usr/bin/time&lt;/code&gt;, you can use the following syntax:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Unanttended Upgrade Docker</title>
      <link>https://dimasmaulana.pages.dev/posts/development/unanttended-upgrade-docker/</link>
      <pubDate>Thu, 03 Dec 2020 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/unanttended-upgrade-docker/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;To configure unattended upgrades for Docker on a Debian-based system, you can add the following line to the &lt;code&gt;50unattended-upgrades&lt;/code&gt; file. This will ensure that Docker packages are automatically updated when unattended-upgrades runs.&lt;/p&gt;&#xA;&lt;p&gt;Here are the steps to do this:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Open a terminal on your Debian-based system.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Use a text editor to open the &lt;code&gt;50unattended-upgrades&lt;/code&gt; file for editing. You&amp;rsquo;ll typically find this file in the &lt;code&gt;/etc/apt/apt.conf.d/&lt;/code&gt; directory.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;pre&gt;&lt;code&gt;sudo nano /etc/apt/apt.conf.d/50unattended-upgrades&lt;/code&gt;&lt;/pre&gt;&lt;ol start=&#34;3&#34;&gt;&#xA;&lt;li&gt;Add the following line to the file, which specifies that Docker packages should be automatically upgraded:&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;pre&gt;&lt;code&gt;Unattended-Upgrade::Allowed-Origins {&#xA;    &amp;#34;${distro_id}:${distro_codename}-security&amp;#34;;&#xA;    &amp;#34;${distro_id}:${distro_codename}-updates&amp;#34;;&#xA;    &amp;#34;Docker:${distro_codename}&amp;#34;;&#xA;};&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This configuration tells unattended-upgrades to include the Docker repository for automatic updates, in addition to the security and regular updates repositories for your distribution.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Removing Orphaned Packages on Debian/Ubuntu with Deborphan</title>
      <link>https://dimasmaulana.pages.dev/posts/development/removing-orphaned-packages-on-debianubuntu-with-deborphan/</link>
      <pubDate>Wed, 02 Dec 2020 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/removing-orphaned-packages-on-debianubuntu-with-deborphan/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;When you install and remove packages on a Debian-based Linux distribution like Debian or Ubuntu, sometimes you end up with orphaned packages - packages that were installed as dependencies for other software but are no longer needed. These orphaned packages can take up disk space and clutter your system. One tool that can help you identify and remove these orphaned packages is &lt;strong&gt;Deborphan&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;what-is-deborphan&#34;&gt;&lt;span&gt;What is Deborphan?&lt;/span&gt;&#xA;  &lt;a href=&#34;#what-is-deborphan&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Deborphan is a command-line tool for identifying and removing orphaned packages on Debian-based systems. It analyzes the package dependencies and checks which packages are no longer required by any other installed packages. Once it identifies these orphaned packages, you can choose to remove them, freeing up disk space and keeping your system clean.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Enabling Root as Default User in WSL on Windows 10</title>
      <link>https://dimasmaulana.pages.dev/posts/development/enabling-root-as-default-user-in-wsl-on-windows-10/</link>
      <pubDate>Tue, 24 Nov 2020 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/enabling-root-as-default-user-in-wsl-on-windows-10/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you want to set the default user in Windows Subsystem for Linux (WSL) to &amp;ldquo;root&amp;rdquo; instead of your regular user, you can achieve this using PowerShell or by modifying the WSL configuration file. Please note that running WSL as the root user is generally not recommended for security reasons, as it can expose your system to potential risks. Proceed with caution and only if you have a valid reason for doing so.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Git Patch Applying and Creating Patches in Git</title>
      <link>https://dimasmaulana.pages.dev/posts/development/git-patch-applying-and-creating-patches-in-git/</link>
      <pubDate>Thu, 19 Nov 2020 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/git-patch-applying-and-creating-patches-in-git/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In Git, patches are a way to capture and apply changes made to a codebase. They can be useful for sharing changes between developers or for applying changes across different branches. In this article, we&amp;rsquo;ll explore how to create and apply patches in Git.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;creating-patches&#34;&gt;&lt;span&gt;Creating Patches&lt;/span&gt;&#xA;  &lt;a href=&#34;#creating-patches&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;h3 class=&#34;heading-element&#34; id=&#34;patching-non-staged-files&#34;&gt;&lt;span&gt;Patching Non-Staged Files&lt;/span&gt;&#xA;  &lt;a href=&#34;#patching-non-staged-files&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;p&gt;To create a patch for changes that have not been staged yet, you can use the following command:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Vim Search and Replace String</title>
      <link>https://dimasmaulana.pages.dev/posts/development/vim-search-and-replace-string/</link>
      <pubDate>Thu, 19 Nov 2020 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/vim-search-and-replace-string/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Vim is a powerful text editor that offers various functionalities for searching and replacing strings within your text. Here are different ways to perform string replacements using Vim&amp;rsquo;s command mode:&lt;/p&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;replace-string-on-selected-line&#34;&gt;&lt;span&gt;Replace String on Selected Line&lt;/span&gt;&#xA;  &lt;a href=&#34;#replace-string-on-selected-line&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;p&gt;To replace a string on the currently selected line, you can use the &lt;code&gt;:s&lt;/code&gt; command. For instance, to replace all occurrences of &amp;ldquo;foo&amp;rdquo; with &amp;ldquo;bar&amp;rdquo; on the selected line, you can use the following command:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Setting Up Your Own Apple Notes Server</title>
      <link>https://dimasmaulana.pages.dev/posts/development/setting-up-your-own-apple-notes-server/</link>
      <pubDate>Sat, 10 Oct 2020 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/setting-up-your-own-apple-notes-server/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In this guide, we will walk you through the process of setting up your own Apple Notes server using Docker and the &lt;code&gt;tvial/docker-mailserver&lt;/code&gt; image. Please note that this setup will only provide an IMAP server, which can be used with Apple Notes for syncing your notes across devices. Let&amp;rsquo;s get started!&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;prerequisites&#34;&gt;&lt;span&gt;Prerequisites&lt;/span&gt;&#xA;  &lt;a href=&#34;#prerequisites&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Before you begin, make sure you have the following prerequisites:&lt;/p&gt;</description>
    </item>
    <item>
      <title>MAC OS Bash Path Location</title>
      <link>https://dimasmaulana.pages.dev/posts/development/mac-os-bash-path-location/</link>
      <pubDate>Thu, 24 Sep 2020 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/mac-os-bash-path-location/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In macOS, the system-wide PATH variable is defined by the contents of the &lt;code&gt;/etc/paths&lt;/code&gt; file and the files within the &lt;code&gt;/etc/path.d/&lt;/code&gt; directory. These files determine the order and locations where the system looks for executable files when you run a command in the Terminal.&lt;/p&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s a breakdown of each of these components:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;&lt;code&gt;/etc/paths&lt;/code&gt;&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;This file contains a list of directories, one per line. These directories are automatically included in the system-wide PATH variable.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Restricting WooCommerce Cart to Only Allow One Item</title>
      <link>https://dimasmaulana.pages.dev/posts/development/restricting-woocommerce-cart-to-only-allow-one-item/</link>
      <pubDate>Fri, 11 Sep 2020 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/restricting-woocommerce-cart-to-only-allow-one-item/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you&amp;rsquo;re running a WooCommerce store and want to ensure that customers can only have one item in their cart at a time, you can achieve this by adding a filter to your &lt;code&gt;functions.php&lt;/code&gt; file. This will empty the cart whenever a new item is added, allowing only one product to be present in the cart at any given time.&lt;/p&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;step-1-adding-the-filter&#34;&gt;&lt;span&gt;Step 1: Adding the Filter&lt;/span&gt;&#xA;  &lt;a href=&#34;#step-1-adding-the-filter&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;p&gt;Open your theme&amp;rsquo;s &lt;code&gt;functions.php&lt;/code&gt; file and add the following code:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Viewing Crash Logs on macOS</title>
      <link>https://dimasmaulana.pages.dev/posts/development/viewing-crash-logs-on-macos/</link>
      <pubDate>Sat, 18 Jul 2020 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/viewing-crash-logs-on-macos/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;macOS keeps crash logs to help diagnose and troubleshoot issues with applications and system services. These logs can provide valuable information when you&amp;rsquo;re experiencing problems or when an application unexpectedly quits. Here&amp;rsquo;s how to view crash logs on macOS:&lt;/p&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;using-the-finder&#34;&gt;&lt;span&gt;Using the Finder:&lt;/span&gt;&#xA;  &lt;a href=&#34;#using-the-finder&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Open Finder&lt;/strong&gt;: Click on the Finder icon in the Dock or press &lt;code&gt;Command + Space&lt;/code&gt;, then type &amp;ldquo;Finder&amp;rdquo; and hit &lt;code&gt;Return&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Refresh the Hosts File on a Mac</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-refresh-the-hosts-file-on-a-mac/</link>
      <pubDate>Sat, 11 Jul 2020 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-refresh-the-hosts-file-on-a-mac/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;The Hosts file on a Mac is a plain text file that maps hostnames to IP addresses. It can be useful for various purposes, such as blocking websites or redirecting domain names. If you&amp;rsquo;ve made changes to your Hosts file and they&amp;rsquo;re not taking effect, you may need to refresh the file or clear the DNS cache. Here&amp;rsquo;s how you can do it using the Terminal:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Open Terminal&lt;/strong&gt;: You can find Terminal in the Utilities folder within the Applications folder, or you can quickly access it using Spotlight (Cmd + Space, then type &amp;ldquo;Terminal&amp;rdquo;).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Forward All Parameters on Bash</title>
      <link>https://dimasmaulana.pages.dev/posts/development/forward-all-parameters-on-bash/</link>
      <pubDate>Fri, 10 Jul 2020 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/forward-all-parameters-on-bash/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In Bash, you can use the &lt;code&gt;&amp;quot;$@&amp;quot;&lt;/code&gt; special variable to forward all the parameters passed to a script or function. This allows you to pass all the arguments received by your script or function to another command. Here&amp;rsquo;s how you can use &lt;code&gt;&amp;quot;$@&amp;quot;&lt;/code&gt; in a Bash script or function:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;#!/bin/bash&#xA;&#xA;# Define a function that forwards all parameters to another command&#xA;forward_parameters() {&#xA;  # Call the desired command with all the parameters passed to this function&#xA;  some_command &amp;#34;$@&amp;#34;&#xA;}&#xA;&#xA;# Call the function and pass all the script&amp;#39;s arguments to it&#xA;forward_parameters &amp;#34;$@&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;In this example:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Install and Use WordPress CLI (wp-cli)</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-install-and-use-wordpress-cli-wp-cli/</link>
      <pubDate>Fri, 10 Jul 2020 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-install-and-use-wordpress-cli-wp-cli/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;WordPress CLI, or wp-cli, is a powerful command-line tool that allows you to manage your WordPress websites directly from the terminal. It&amp;rsquo;s particularly useful for tasks like plugin installation, theme management, and database maintenance. In this guide, we&amp;rsquo;ll walk you through the installation and basic usage of wp-cli on a Linux system.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;prerequisites&#34;&gt;&lt;span&gt;Prerequisites&lt;/span&gt;&#xA;  &lt;a href=&#34;#prerequisites&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Before you begin, ensure that you have the following prerequisites in place:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Read Env File Using Bash</title>
      <link>https://dimasmaulana.pages.dev/posts/development/read-env-file-using-bash/</link>
      <pubDate>Fri, 10 Jul 2020 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/read-env-file-using-bash/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;It looks like you&amp;rsquo;re trying to read the contents of a &lt;code&gt;.env&lt;/code&gt; file using a bash script. The provided script uses the &lt;code&gt;source&lt;/code&gt; command to load the variables from the &lt;code&gt;.env&lt;/code&gt; file into the current shell environment. Additionally, it uses &lt;code&gt;set -o allexport&lt;/code&gt; to automatically export all subsequently defined variables to the environment.&lt;/p&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s a breakdown of what each part of the script does:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;code&gt;set -o allexport&lt;/code&gt;: This command enables the &lt;strong&gt;allexport&lt;/strong&gt; option, which means that any variable defined after this point will be automatically exported to the environment. In this case, it&amp;rsquo;s used to ensure that the variables read from the &lt;code&gt;.env&lt;/code&gt; file will be available to the rest of the script and any subsequent commands.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bash Find and Replace (Substitute) String in a File</title>
      <link>https://dimasmaulana.pages.dev/posts/development/bash-find-and-replace-substitute-string-in-a-file/</link>
      <pubDate>Thu, 09 Jul 2020 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/bash-find-and-replace-substitute-string-in-a-file/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In Bash, you can use the &lt;code&gt;sed&lt;/code&gt; command to find and replace (substitute) strings within a file. This is a powerful text manipulation tool that allows you to make changes to a file&amp;rsquo;s content. Below, we&amp;rsquo;ll go over various examples of using &lt;code&gt;sed&lt;/code&gt; for find and replace operations.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;general-syntax&#34;&gt;&lt;span&gt;General Syntax&lt;/span&gt;&#xA;  &lt;a href=&#34;#general-syntax&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;The basic syntax for using &lt;code&gt;sed&lt;/code&gt; to find and replace is as follows:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Checking for Open and Used Ports</title>
      <link>https://dimasmaulana.pages.dev/posts/development/checking-for-open-and-used-ports/</link>
      <pubDate>Thu, 09 Jul 2020 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/checking-for-open-and-used-ports/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;When managing a system, it&amp;rsquo;s essential to know which ports are open and in use. This information can be vital for security and troubleshooting purposes. Here are several methods to check for open and used ports on a system, depending on your operating system and preference.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;option-1-using-the-lsof-command&#34;&gt;&lt;span&gt;Option 1: Using the &lt;code&gt;lsof&lt;/code&gt; Command&lt;/span&gt;&#xA;  &lt;a href=&#34;#option-1-using-the-lsof-command&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;The &lt;code&gt;lsof&lt;/code&gt; command (List Open Files) is a versatile tool for listing information about files and processes. It can also be used to identify open network ports. Below are examples of how to use &lt;code&gt;lsof&lt;/code&gt;:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Create HTTP Basic Authentication with .htpasswd and .htaccess in Apache</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-create-http-basic-authentication-with-htpasswd-and-htaccess-in-apache/</link>
      <pubDate>Thu, 09 Jul 2020 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-create-http-basic-authentication-with-htpasswd-and-htaccess-in-apache/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;HTTP Basic Authentication is a simple yet effective way to secure web pages or directories on your Apache web server. It requires users to enter a username and password to access protected content. In this guide, we&amp;rsquo;ll walk you through the steps to set up HTTP Basic Authentication using &lt;code&gt;.htpasswd&lt;/code&gt; and &lt;code&gt;.htaccess&lt;/code&gt; files on an Apache web server.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;prerequisites&#34;&gt;&lt;span&gt;Prerequisites&lt;/span&gt;&#xA;  &lt;a href=&#34;#prerequisites&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Before you begin, ensure you have the following:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Restore Deleted or Broken Apple Notes on Mac</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-restore-deleted-or-broken-apple-notes-on-mac/</link>
      <pubDate>Wed, 08 Jul 2020 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-restore-deleted-or-broken-apple-notes-on-mac/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you&amp;rsquo;ve accidentally deleted or encountered issues with your Apple Notes on your Mac, don&amp;rsquo;t worry; there&amp;rsquo;s a way to restore them. Apple Notes are not always stored in the obvious location, so follow these steps to recover your lost text or notes:&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Before proceeding, make sure you have a Time Machine (TM) backup of your Mac, as this method relies on it.&lt;/p&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;1-quit-the-notes-app-and-disconnect-from-the-internet&#34;&gt;&lt;span&gt;1. Quit the Notes App and Disconnect from the Internet&lt;/span&gt;&#xA;  &lt;a href=&#34;#1-quit-the-notes-app-and-disconnect-from-the-internet&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;First, close the Notes app if it&amp;rsquo;s open.&lt;/li&gt;&#xA;&lt;li&gt;Turn off your Wi-Fi or disconnect from the Internet to prevent your old notes from syncing during the restoration process.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;2-locate-the-apple-notes-folder&#34;&gt;&lt;span&gt;2. Locate the Apple Notes Folder&lt;/span&gt;&#xA;  &lt;a href=&#34;#2-locate-the-apple-notes-folder&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;Your iCloud notes are not stored in the typical &lt;code&gt;~/Library/Containers/com.apple.Notes&lt;/code&gt; location.&lt;/li&gt;&#xA;&lt;li&gt;Instead, navigate to &lt;code&gt;~/Library/Group Containers/group.com.apple.notes&lt;/code&gt;. This is where your iCloud-synced notes are stored.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;3-create-a-backup-of-the-notes-folder&#34;&gt;&lt;span&gt;3. Create a Backup of the Notes Folder&lt;/span&gt;&#xA;  &lt;a href=&#34;#3-create-a-backup-of-the-notes-folder&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;Copy the &lt;code&gt;group.com.apple.notes&lt;/code&gt; folder to a safe location, like your Desktop. This step ensures that you have a backup of your current notes configuration.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;4-restore-the-notes-folder-from-time-machine-backup&#34;&gt;&lt;span&gt;4. Restore the Notes Folder from Time Machine Backup&lt;/span&gt;&#xA;  &lt;a href=&#34;#4-restore-the-notes-folder-from-time-machine-backup&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;Access your Time Machine backup system.&lt;/li&gt;&#xA;&lt;li&gt;Locate and restore the &lt;code&gt;group.com.apple.notes&lt;/code&gt; folder to its original location, &lt;code&gt;~/Library/Group Containers/&lt;/code&gt;. This will revert your Notes app to a previous state where your lost notes should be available.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;5-open-the-notes-app&#34;&gt;&lt;span&gt;5. Open the Notes App&lt;/span&gt;&#xA;  &lt;a href=&#34;#5-open-the-notes-app&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;Launch the Notes app to access your restored notes.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;6-copy-and-paste-the-lost-text&#34;&gt;&lt;span&gt;6. Copy and Paste the Lost Text&lt;/span&gt;&#xA;  &lt;a href=&#34;#6-copy-and-paste-the-lost-text&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;To recover your lost text or notes, simply copy the content you need from the restored Notes app and paste it into another document, such as TextEdit.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;7-quit-the-notes-app-again&#34;&gt;&lt;span&gt;7. Quit the Notes App Again&lt;/span&gt;&#xA;  &lt;a href=&#34;#7-quit-the-notes-app-again&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;Close the Notes app once you&amp;rsquo;ve copied the desired text.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;8-delete-the-restored-notes-folder&#34;&gt;&lt;span&gt;8. Delete the Restored Notes Folder&lt;/span&gt;&#xA;  &lt;a href=&#34;#8-delete-the-restored-notes-folder&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;Delete the &lt;code&gt;group.com.apple.notes&lt;/code&gt; folder that you restored from your Desktop. This step is essential to ensure that you&amp;rsquo;re using the restored version of the Notes app.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;9-move-the-original-notes-folder-back&#34;&gt;&lt;span&gt;9. Move the Original Notes Folder Back&lt;/span&gt;&#xA;  &lt;a href=&#34;#9-move-the-original-notes-folder-back&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;Move the &lt;code&gt;group.com.apple.notes&lt;/code&gt; folder from your Desktop back to its original location, &lt;code&gt;~/Library/Group Containers/&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;10-reopen-the-notes-app&#34;&gt;&lt;span&gt;10. Reopen the Notes App&lt;/span&gt;&#xA;  &lt;a href=&#34;#10-reopen-the-notes-app&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;Launch the Notes app once more. You should now have access to your restored notes.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;11-reconnect-to-the-internet&#34;&gt;&lt;span&gt;11. Reconnect to the Internet&lt;/span&gt;&#xA;  &lt;a href=&#34;#11-reconnect-to-the-internet&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;Finally, turn your Wi-Fi or internet connection back on to allow your notes to sync with iCloud.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;By following these steps, you should be able to restore your deleted or broken Apple Notes on your Mac, ensuring that your important information is once again accessible.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Reset LaunchPad Mac Os</title>
      <link>https://dimasmaulana.pages.dev/posts/development/reset-launchpad-mac-os/</link>
      <pubDate>Wed, 08 Jul 2020 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/reset-launchpad-mac-os/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;You want to reset the Launchpad on your macOS using a terminal command. To make it easier for you, here&amp;rsquo;s a breakdown of the command you provided:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;# Reset Launchpad on macOS&#xA;&#xA;To reset the Launchpad on macOS, you can use the following terminal command:&#xA;&#xA;```shell&#xA;defaults write com.apple.dock ResetLaunchPad -bool true; killall Dock&lt;/code&gt;&lt;/pre&gt;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;defaults write&lt;/strong&gt;: This part of the command is used to write a value to a property list (.plist) file. In this case, you are writing a value to the com.apple.dock property list.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Block IP By Country and Allow Uptime Monitor</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-block-ip-by-country-and-allow-uptime-monitor/</link>
      <pubDate>Wed, 03 Jun 2020 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-block-ip-by-country-and-allow-uptime-monitor/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In this guide, we will walk you through the steps to block traffic from specific countries using Cloudflare while allowing access to your uptime monitor IPs. We will cover how to achieve this both in Cloudflare&amp;rsquo;s Firewall Rules and on an Apache web server.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;cloudflare-firewall-rules&#34;&gt;&lt;span&gt;Cloudflare Firewall Rules&lt;/span&gt;&#xA;  &lt;a href=&#34;#cloudflare-firewall-rules&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;h3 class=&#34;heading-element&#34; id=&#34;step-1-log-in-to-cloudflare&#34;&gt;&lt;span&gt;Step 1: Log in to Cloudflare&lt;/span&gt;&#xA;  &lt;a href=&#34;#step-1-log-in-to-cloudflare&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;ol&gt;&#xA;&lt;li&gt;Go to &lt;a href=&#34;https://www.cloudflare.com&#34; target=&#34;_blank&#34; rel=&#34;external nofollow noopener noreferrer&#34;&gt;Cloudflare&lt;/a&gt; and log in to your account.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;step-2-access-firewall-rules&#34;&gt;&lt;span&gt;Step 2: Access Firewall Rules&lt;/span&gt;&#xA;  &lt;a href=&#34;#step-2-access-firewall-rules&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;ol start=&#34;2&#34;&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;In the Cloudflare dashboard, click on your domain.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Connect VPN via shell Mac</title>
      <link>https://dimasmaulana.pages.dev/posts/development/connect-vpn-via-shell-mac/</link>
      <pubDate>Mon, 11 May 2020 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/connect-vpn-via-shell-mac/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;To connect to a VPN via the shell on a Mac, you can use the &lt;code&gt;networksetup&lt;/code&gt; command, as you&amp;rsquo;ve mentioned. However, please note that the commands you provided seem to be for setting up a PPPoE service, not for connecting to a VPN. If you want to connect to a VPN, you&amp;rsquo;ll need to use a different command. Below are the steps to connect to a VPN via the command line on macOS:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Clearing Old Simulator Files in Xcode</title>
      <link>https://dimasmaulana.pages.dev/posts/development/clearing-old-simulator-files-in-xcode/</link>
      <pubDate>Thu, 23 Apr 2020 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/clearing-old-simulator-files-in-xcode/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Over time, Xcode simulators can accumulate unused or outdated files, taking up valuable disk space on your machine. One effective way to free up space is by removing unavailable simulators using the &lt;code&gt;xcrun simctl&lt;/code&gt; command-line tool.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;using-xcrun-simctl-to-delete-unavailable-simulators&#34;&gt;&lt;span&gt;Using &lt;code&gt;xcrun simctl&lt;/code&gt; to Delete Unavailable Simulators&lt;/span&gt;&#xA;  &lt;a href=&#34;#using-xcrun-simctl-to-delete-unavailable-simulators&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;To remove unavailable simulators and their associated files, follow these steps:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Troubleshooting Unable to Install Ruby via rbenv Fixing Errors with cctools</title>
      <link>https://dimasmaulana.pages.dev/posts/development/troubleshooting-unable-to-install-ruby-via-rbenv-fixing-errors-with-cctools/</link>
      <pubDate>Thu, 09 Apr 2020 09:45:04 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/troubleshooting-unable-to-install-ruby-via-rbenv-fixing-errors-with-cctools/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you are encountering issues while trying to install Ruby via rbenv and see errors related to &amp;ldquo;cctools,&amp;rdquo; this article will guide you through the troubleshooting process to fix the problem. The error message you might encounter is:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;/usr/local/Cellar/cctools/855/bin/ranlib: object: apps/libapps.a(app_rand.o) malformed object (unknown load command 1)&#xA;ar: internal ranlib command failed&#xA;make[1]: *** [apps/libapps.a] Error 1&#xA;make: *** [all] Error 2&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The &amp;ldquo;cctools&amp;rdquo; package could potentially conflict with the Ruby installation process, causing this error. To resolve the issue, we will walk through the steps to uninstall the &amp;ldquo;cctools&amp;rdquo; package and proceed with installing Ruby via rbenv.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Install and Upgrade Google Chrome Browser on Ubuntu Server via Terminal</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-install-and-upgrade-google-chrome-browser-on-ubuntu-server-via-terminal/</link>
      <pubDate>Wed, 08 Apr 2020 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-install-and-upgrade-google-chrome-browser-on-ubuntu-server-via-terminal/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Google Chrome is one of the most popular web browsers, and you may want to install or upgrade it on your Ubuntu Server. However, since Ubuntu Server doesn&amp;rsquo;t have a graphical user interface (GUI), you&amp;rsquo;ll need to install Chrome via the command line. This guide will walk you through the process of installing Google Chrome and keeping it up to date on your Ubuntu Server.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;prerequisites&#34;&gt;&lt;span&gt;Prerequisites&lt;/span&gt;&#xA;  &lt;a href=&#34;#prerequisites&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Before you begin, ensure that you have the following:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Troubleshooting CocoaPods Installation Error on macOS Catalina</title>
      <link>https://dimasmaulana.pages.dev/posts/development/troubleshooting-cocoapods-installation-error-on-macos-catalina/</link>
      <pubDate>Tue, 07 Apr 2020 07:23:51 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/troubleshooting-cocoapods-installation-error-on-macos-catalina/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <category domain="https://dimasmaulana.pages.dev/categories/troubleshooting/">Troubleshooting</category>
      <description>&lt;p&gt;If you&amp;rsquo;re encountering an error related to &lt;code&gt;ffi&lt;/code&gt; while installing CocoaPods on macOS Catalina, you can follow these steps to resolve the issue.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;step-1-install-ffi-with-a-specific-version&#34;&gt;&lt;span&gt;Step 1: Install FFI with a specific version**&lt;/span&gt;&#xA;  &lt;a href=&#34;#step-1-install-ffi-with-a-specific-version&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;sudo gem install ffi -v &amp;#39;1.10.0&amp;#39;&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=&#34;heading-element&#34; id=&#34;step-2-install-cocoapods&#34;&gt;&lt;span&gt;Step 2: Install CocoaPods**&lt;/span&gt;&#xA;  &lt;a href=&#34;#step-2-install-cocoapods&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;sudo gem install cocoapods -n /usr/local/bin&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=&#34;heading-element&#34; id=&#34;step-3-install-cocoapods-binary&#34;&gt;&lt;span&gt;Step 3: Install CocoaPods Binary**&lt;/span&gt;&#xA;  &lt;a href=&#34;#step-3-install-cocoapods-binary&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;sudo gem install cocoapods-binary&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;If you&amp;rsquo;re still facing issues after following the above steps, you can try uninstalling all gems and then reinstalling CocoaPods. Here&amp;rsquo;s how you can do it:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fixing ffi error when installing CocoaPods on macOS Catalina</title>
      <link>https://dimasmaulana.pages.dev/posts/development/fixing-ffi-error-when-installing-cocoapods-on-macos-catalina/</link>
      <pubDate>Tue, 07 Apr 2020 07:23:32 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/fixing-ffi-error-when-installing-cocoapods-on-macos-catalina/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you encounter an error related to &amp;ldquo;ffi&amp;rdquo; when trying to install CocoaPods on macOS Catalina, follow these steps to resolve the issue:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Install ffi version 1.10.0:&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;pre&gt;&lt;code&gt;sudo gem install ffi -v &amp;#39;1.10.0&amp;#39;&lt;/code&gt;&lt;/pre&gt;&lt;ol start=&#34;2&#34;&gt;&#xA;&lt;li&gt;Install CocoaPods:&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;pre&gt;&lt;code&gt;sudo gem install cocoapods -n /usr/local/bin&lt;/code&gt;&lt;/pre&gt;&lt;ol start=&#34;3&#34;&gt;&#xA;&lt;li&gt;Install CocoaPods-binary:&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;pre&gt;&lt;code&gt;sudo gem install cocoapods-binary&lt;/code&gt;&lt;/pre&gt;&lt;ol start=&#34;4&#34;&gt;&#xA;&lt;li&gt;If you still face issues after following the above steps, it&amp;rsquo;s recommended to uninstall all gems and then reinstall them:&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;pre&gt;&lt;code&gt;sudo gem list --no-version | xargs -L 1 sudo gem uninstall -n /usr/local/bin -ax&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Note: The command above will uninstall all gems from the default gem path. If you have gems installed in other locations, you may need to handle those manually.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Delete a Local Time Machine Snapshot on macOS</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-delete-a-local-time-machine-snapshot-on-macos/</link>
      <pubDate>Wed, 04 Mar 2020 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-delete-a-local-time-machine-snapshot-on-macos/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Time Machine is a powerful backup tool on macOS that automatically creates local snapshots of your data in addition to regular backups on an external drive. These local snapshots can be helpful, but they can also take up valuable disk space. If you need to delete a local Time Machine snapshot on your Mac, follow these steps.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;step-1-open-terminal&#34;&gt;&lt;span&gt;Step 1: Open Terminal&lt;/span&gt;&#xA;  &lt;a href=&#34;#step-1-open-terminal&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;To delete a local snapshot, you&amp;rsquo;ll need to use Terminal, which is a command-line interface on macOS. You can find Terminal in the &amp;ldquo;Utilities&amp;rdquo; folder within the &amp;ldquo;Applications&amp;rdquo; folder.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Free Up Disk Space When Unable to Install Xcode</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-free-up-disk-space-when-unable-to-install-xcode/</link>
      <pubDate>Tue, 14 Jan 2020 19:04:39 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-free-up-disk-space-when-unable-to-install-xcode/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <category domain="https://dimasmaulana.pages.dev/categories/troubleshooting/">Troubleshooting</category>
      <description>&lt;p&gt;When trying to install Xcode, one common issue that users encounter is running out of disk space. This can be frustrating, especially if you need Xcode for development purposes. However, there are steps you can take to free up disk space and resolve this issue. One effective method is to remove the &lt;code&gt;com.apple.appstore&lt;/code&gt; folder from the &lt;code&gt;~/Library/Caches&lt;/code&gt; directory. This article will guide you through the process of deleting this folder to make space for Xcode installation.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Difference Between Programmer, Developer and Software Engineer</title>
      <link>https://dimasmaulana.pages.dev/posts/development/difference-between-programmer-developer-and-software-engineer/</link>
      <pubDate>Sun, 29 Dec 2019 06:31:54 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/difference-between-programmer-developer-and-software-engineer/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Here&amp;rsquo;s a table outlining some of the key differences between programmers, developers, and software engineers:&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;&lt;/th&gt;&#xA;          &lt;th&gt;Programmer&lt;/th&gt;&#xA;          &lt;th&gt;Developer&lt;/th&gt;&#xA;          &lt;th&gt;Software Engineer&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Focus&lt;/td&gt;&#xA;          &lt;td&gt;Writing code&lt;/td&gt;&#xA;          &lt;td&gt;Building software systems&lt;/td&gt;&#xA;          &lt;td&gt;Designing and developing complex software systems&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Skills&lt;/td&gt;&#xA;          &lt;td&gt;Expertise in one or more programming languages&lt;/td&gt;&#xA;          &lt;td&gt;Proficiency in a wide range of programming languages and technologies&lt;/td&gt;&#xA;          &lt;td&gt;Strong foundation in computer science principles and software engineering methodologies&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Responsibility&lt;/td&gt;&#xA;          &lt;td&gt;Implementing code based on specifications&lt;/td&gt;&#xA;          &lt;td&gt;Developing software solutions that meet business needs and solve problems&lt;/td&gt;&#xA;          &lt;td&gt;Ensuring software systems meet functional and non-functional requirements and are scalable, reliable, and maintainable&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Role&lt;/td&gt;&#xA;          &lt;td&gt;Typically works on smaller projects or specific programming tasks&lt;/td&gt;&#xA;          &lt;td&gt;Works on larger software projects, collaborating with a team to create a complete solution&lt;/td&gt;&#xA;          &lt;td&gt;Often takes a leadership role in software development projects and is responsible for the design, architecture, and implementation of complex software systems&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Education&lt;/td&gt;&#xA;          &lt;td&gt;Can have a degree in computer science, but not always required&lt;/td&gt;&#xA;          &lt;td&gt;Usually has a degree in computer science, software engineering, or a related field&lt;/td&gt;&#xA;          &lt;td&gt;Typically has a degree in software engineering or computer science with a focus on software engineering&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Job Titles&lt;/td&gt;&#xA;          &lt;td&gt;Programmer Analyst, Application Programmer, Software Developer&lt;/td&gt;&#xA;          &lt;td&gt;Full Stack Developer, Web Developer, Mobile Developer&lt;/td&gt;&#xA;          &lt;td&gt;Software Engineer, Senior Software Engineer, Lead Software Engineer&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;</description>
    </item>
    <item>
      <title>Reset Mac Dock Settings</title>
      <link>https://dimasmaulana.pages.dev/posts/development/reset-mac-dock-settings/</link>
      <pubDate>Thu, 28 Nov 2019 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/reset-mac-dock-settings/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you need to reset your Mac&amp;rsquo;s Dock settings to their default values, you can use the following commands:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;defaults delete com.apple.dock&#xA;killall Dock&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This will remove any customizations you&amp;rsquo;ve made to your Dock and return it to its default configuration.&lt;/p&gt;&#xA;&lt;h1 class=&#34;heading-element&#34; id=&#34;set-mac-dock-icon-size&#34;&gt;&lt;span&gt;Set Mac Dock Icon Size&lt;/span&gt;&#xA;  &lt;a href=&#34;#set-mac-dock-icon-size&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h1&gt;&lt;p&gt;You can adjust the icon size of your Mac&amp;rsquo;s Dock to your preference. Here are commands to set different icon sizes:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Creating Large Files Using Terminal</title>
      <link>https://dimasmaulana.pages.dev/posts/development/creating-large-files-using-terminal/</link>
      <pubDate>Fri, 01 Nov 2019 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/creating-large-files-using-terminal/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;To create large files on macOS, you can use the Terminal app. Follow these steps:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Open Terminal&lt;/strong&gt;: You can find Terminal in the Utilities folder within the Applications folder, or simply search for it using Spotlight.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Navigate to the Desired Directory&lt;/strong&gt;: Use the &lt;code&gt;cd&lt;/code&gt; command to navigate to the directory where you want to create the large file. For example, to navigate to your home directory, use:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;cd ~&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Create the Large File&lt;/strong&gt;: To create a large file filled with zeroes, you can use the &lt;code&gt;dd&lt;/code&gt; command. The following command creates a file named &amp;ldquo;hugefile&amp;rdquo; with a block size of 100MB:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Securely Erasing Free Space on a Mac Hard Drive</title>
      <link>https://dimasmaulana.pages.dev/posts/development/securely-erasing-free-space-on-a-mac-hard-drive/</link>
      <pubDate>Thu, 03 Oct 2019 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/securely-erasing-free-space-on-a-mac-hard-drive/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;When you delete files from your Mac&amp;rsquo;s hard drive, they are not immediately erased; instead, the space they occupied is marked as available for new data. Until new data overwrites that space, the old files can potentially be recovered using specialized software. To ensure that your sensitive data is completely irrecoverable, you can use the &lt;code&gt;diskutil secureErase&lt;/code&gt; command in the Terminal.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Important Note:&lt;/strong&gt; The following instructions involve using Terminal commands, which can have serious consequences if used incorrectly. Make sure to follow the steps carefully and double-check the commands before executing them.&lt;/p&gt;</description>
    </item>
    <item>
      <title>SSH Tunneling Auto Reconnect Alive</title>
      <link>https://dimasmaulana.pages.dev/posts/development/ssh-tunneling-auto-reconnect-alive/</link>
      <pubDate>Tue, 01 Oct 2019 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/ssh-tunneling-auto-reconnect-alive/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;SSH tunneling is a powerful technique for securely forwarding network traffic from one machine to another. It&amp;rsquo;s commonly used to access resources on a remote server as if they were local, especially in scenarios where you need to securely access services behind a firewall or from a different network. To ensure the SSH tunnel remains stable and automatically reconnects when there are interruptions, you can use tools like &lt;code&gt;autossh&lt;/code&gt; in combination with server and client-side configurations.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Unable to Update Xcode Due to Insufficient Space Even with Sufficient Storage</title>
      <link>https://dimasmaulana.pages.dev/posts/development/unable-to-update-xcode-due-to-insufficient-space-even-with-sufficient-storage/</link>
      <pubDate>Sat, 21 Sep 2019 07:01:37 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/unable-to-update-xcode-due-to-insufficient-space-even-with-sufficient-storage/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <category domain="https://dimasmaulana.pages.dev/categories/troubleshooting/">Troubleshooting</category>
      <description>&lt;p&gt;If you are encountering issues while updating Xcode on your Mac, specifically the error message &amp;ldquo;Not Enough Space,&amp;rdquo; despite having ample storage available, there might be a workaround you can try. In some cases, Time Machine local snapshots could be occupying space on your system, preventing the update from proceeding. The following steps outline a potential solution to clear local snapshots and allow the Xcode update to proceed smoothly.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;clearing-time-machine-local-snapshots&#34;&gt;&lt;span&gt;Clearing Time Machine Local Snapshots&lt;/span&gt;&#xA;  &lt;a href=&#34;#clearing-time-machine-local-snapshots&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Open Terminal on your Mac. You can find it in the Applications &amp;gt; Utilities folder or use Spotlight search to locate it quickly.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Change Wordpress URL</title>
      <link>https://dimasmaulana.pages.dev/posts/development/change-wordpress-url/</link>
      <pubDate>Fri, 20 Sep 2019 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/change-wordpress-url/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;You want to change the URL of your WordPress website from &amp;rsquo;example.com&amp;rsquo; to &amp;rsquo;target-example.com&amp;rsquo;. To achieve this, you can follow the provided SQL commands. However, it&amp;rsquo;s essential to be cautious when making direct database changes like this, as it can potentially break your WordPress site if not done correctly. Always back up your database before making any changes.&lt;/p&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s the provided code in Markdown format for better readability:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;### Change WordPress URL&#xA;&#xA;To change the WordPress URL from &amp;#39;example.com&amp;#39; to &amp;#39;target-example.com&amp;#39;, you can use SQL commands to update the necessary database tables. Before proceeding, make sure to back up your WordPress database for safety.&#xA;&#xA;1. Update the `wp_options` table:&#xA;   ```sql&#xA;   UPDATE wp_options SET option_value = replace(option_value, &amp;#39;example.com&amp;#39;, &amp;#39;target-example.com&amp;#39;) WHERE option_name = &amp;#39;home&amp;#39; OR option_name = &amp;#39;siteurl&amp;#39;;&lt;/code&gt;&lt;/pre&gt;&lt;ol start=&#34;2&#34;&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Update the &lt;code&gt;wp_posts&lt;/code&gt; table for post GUIDs:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Updating Chrome Remote Desktop on Docker</title>
      <link>https://dimasmaulana.pages.dev/posts/development/updating-chrome-remote-desktop-on-docker/</link>
      <pubDate>Thu, 12 Sep 2019 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/updating-chrome-remote-desktop-on-docker/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you&amp;rsquo;re looking to update Chrome Remote Desktop within a Docker container, you can follow these steps:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Access Your Docker Container:&lt;/strong&gt; First, use the &lt;code&gt;docker exec&lt;/code&gt; command to access the Docker container where Chrome Remote Desktop is installed. Replace &lt;code&gt;container_name&lt;/code&gt; with the actual name of your container.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;docker exec -it container_name /bin/bash&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Download the Updated Package:&lt;/strong&gt; Once inside the container, utilize &lt;code&gt;wget&lt;/code&gt; to download the latest Chrome Remote Desktop package.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Setting Up Time Machine Backup on Ubuntu Server 18.04 with Samba 4.8</title>
      <link>https://dimasmaulana.pages.dev/posts/development/setting-up-time-machine-backup-on-ubuntu-server-1804-with-samba-48/</link>
      <pubDate>Tue, 10 Sep 2019 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/setting-up-time-machine-backup-on-ubuntu-server-1804-with-samba-48/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Time Machine is a backup solution developed by Apple for macOS. You can set up a Time Machine backup destination on your Ubuntu Server 18.04 using Samba 4.8 to allow Macs on your network to back up their data. Here&amp;rsquo;s a step-by-step guide to help you achieve this:&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;1-install-samba-48&#34;&gt;&lt;span&gt;1. Install Samba 4.8&lt;/span&gt;&#xA;  &lt;a href=&#34;#1-install-samba-48&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;First, install Samba 4.8 by adding the PPA repository and updating your package list:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Resize an LVM Logical Volume to Use Maximum Free Space</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-resize-an-lvm-logical-volume-to-use-maximum-free-space/</link>
      <pubDate>Mon, 26 Aug 2019 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-resize-an-lvm-logical-volume-to-use-maximum-free-space/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In Linux, Logical Volume Management (LVM) allows you to dynamically resize logical volumes to efficiently manage your storage. If you have free space available in your Volume Group and want to expand a logical volume to use this space, follow these steps:&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;checking-disk-space&#34;&gt;&lt;span&gt;Checking Disk Space&lt;/span&gt;&#xA;  &lt;a href=&#34;#checking-disk-space&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Before resizing the logical volume, it&amp;rsquo;s essential to check the available free space and the current usage using the &lt;code&gt;df -h&lt;/code&gt; command:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Creating Compressed Archives for Each Folder with Title</title>
      <link>https://dimasmaulana.pages.dev/posts/development/creating-compressed-archives-for-each-folder-with-title/</link>
      <pubDate>Sat, 24 Aug 2019 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/creating-compressed-archives-for-each-folder-with-title/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;When dealing with a directory full of subdirectories, there might be instances where you want to package each subdirectory&amp;rsquo;s contents into separate compressed files. This can be particularly useful for organization, sharing, or backup purposes. One way to achieve this is by utilizing the power of shell commands, and specifically, the &lt;code&gt;tar&lt;/code&gt; command along with some other utilities.&lt;/p&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;the-command-breakdown&#34;&gt;&lt;span&gt;The Command Breakdown&lt;/span&gt;&#xA;  &lt;a href=&#34;#the-command-breakdown&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;p&gt;The command in question accomplishes this task through a combination of the &lt;code&gt;find&lt;/code&gt; and &lt;code&gt;tar&lt;/code&gt; commands. Here&amp;rsquo;s a breakdown of each component and its role:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Add Elementor on Wordpress OceanWP Modal</title>
      <link>https://dimasmaulana.pages.dev/posts/development/add-elementor-on-wordpress-oceanwp-modal/</link>
      <pubDate>Fri, 23 Aug 2019 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/add-elementor-on-wordpress-oceanwp-modal/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;To create a modal with Elementor in the OceanWP theme using the &amp;ldquo;Anywhere Elementor&amp;rdquo; plugin, you can follow these steps:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Install and Activate Plugins:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;First, make sure you have the OceanWP theme and Elementor plugin installed and activated on your WordPress website.&lt;/li&gt;&#xA;&lt;li&gt;Install and activate the &amp;ldquo;Anywhere Elementor&amp;rdquo; plugin if you haven&amp;rsquo;t already. You can find and install it from the WordPress Plugin Repository.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Create a Modal:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;In your WordPress dashboard, go to the &amp;ldquo;Templates&amp;rdquo; section under &amp;ldquo;Elementor.&amp;rdquo;&lt;/li&gt;&#xA;&lt;li&gt;Click on &amp;ldquo;Add New&amp;rdquo; to create a new template for your modal.&lt;/li&gt;&#xA;&lt;li&gt;Give your template a name and click &amp;ldquo;Create Template.&amp;rdquo;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Design Your Modal:&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Create an Infinite Animation Loop in Elementor Motion</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-create-an-infinite-animation-loop-in-elementor-motion/</link>
      <pubDate>Fri, 23 Aug 2019 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-create-an-infinite-animation-loop-in-elementor-motion/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you&amp;rsquo;re using Elementor and want to create an infinite animation loop for an element using the Elementor Motion Effects feature, you can achieve this by applying some custom CSS classes. In this tutorial, we&amp;rsquo;ll guide you through the process step by step.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;step-1-add-the-custom-css&#34;&gt;&lt;span&gt;Step 1: Add the Custom CSS&lt;/span&gt;&#xA;  &lt;a href=&#34;#step-1-add-the-custom-css&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;To create an infinite animation loop, you&amp;rsquo;ll need to add the following custom CSS code to your WordPress website. This code sets the &lt;code&gt;animation-iteration-count&lt;/code&gt; property to &lt;code&gt;infinite&lt;/code&gt;, which means the animation will loop indefinitely:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Modify URL on Wordpress OceanWP Logo Banner</title>
      <link>https://dimasmaulana.pages.dev/posts/development/modify-url-on-wordpress-oceanwp-logo-banner/</link>
      <pubDate>Fri, 23 Aug 2019 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/modify-url-on-wordpress-oceanwp-logo-banner/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;To modify the URL on the WordPress OceanWP logo banner, you can follow these steps:&lt;/p&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;step-1-create-a-child-theme&#34;&gt;&lt;span&gt;Step 1: Create a Child Theme&lt;/span&gt;&#xA;  &lt;a href=&#34;#step-1-create-a-child-theme&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;p&gt;Creating a child theme is essential to ensure that your customizations are not lost when the parent theme is updated. Here&amp;rsquo;s how to create a child theme:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Creating a Default VirtualHost Configuration in Apache</title>
      <link>https://dimasmaulana.pages.dev/posts/development/creating-a-default-virtualhost-configuration-in-apache/</link>
      <pubDate>Thu, 22 Aug 2019 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/creating-a-default-virtualhost-configuration-in-apache/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;When setting up an Apache web server, it&amp;rsquo;s important to handle requests that don&amp;rsquo;t match any specific hostname. This is achieved through a default VirtualHost configuration. Learn how to create a default VirtualHost to efficiently manage such requests.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;VirtualHost *:80&amp;gt;&#xA;   ServerName default&#xA;   DocumentRoot /var/www/default&#xA;   &amp;lt;Directory /var/www/default&amp;gt;&#xA;       Options FollowSymLinks&#xA;       AllowOverride None&#xA;       Require all granted&#xA;   &amp;lt;/Directory&amp;gt;&#xA;&amp;lt;/VirtualHost&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;In this guide, you&amp;rsquo;ll discover how to set up the default VirtualHost configuration, enabling your server to handle unmatched requests effectively. This approach ensures a seamless user experience and proper organization of your web server.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Send Email using teminal bash on Ubuntu 18-04</title>
      <link>https://dimasmaulana.pages.dev/posts/development/send-email-using-teminal-bash-on-ubuntu-18-04/</link>
      <pubDate>Wed, 21 Aug 2019 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/send-email-using-teminal-bash-on-ubuntu-18-04/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;The provided command is almost correct for sending an email using the &lt;code&gt;sendEmail&lt;/code&gt; utility in the terminal on Ubuntu 18.04. However, there are a couple of issues with the formatting. Here&amp;rsquo;s the corrected version of the command in markdown format as you requested:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;# Send Email using Terminal Bash on Ubuntu 18.04&#xA;&#xA;First, install the necessary packages:&#xA;&#xA;```bash&#xA;sudo apt install sendEmail libio-socket-ssl-perl libnet-ssleay-perl&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Then, you can use the &lt;code&gt;sendEmail&lt;/code&gt; command to send an email as follows:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Mute a Video Using FFmpeg</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-mute-a-video-using-ffmpeg/</link>
      <pubDate>Tue, 20 Aug 2019 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-mute-a-video-using-ffmpeg/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In this tutorial, we&amp;rsquo;ll walk you through the process of muting a video using FFmpeg, a powerful command-line tool for video and audio processing. There are several ways to mute a video with FFmpeg, depending on your specific needs. We&amp;rsquo;ll cover muting a single video file and muting multiple video files in a folder while preserving metadata, including GPS information.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;mute-a-single-video-file&#34;&gt;&lt;span&gt;Mute a Single Video File&lt;/span&gt;&#xA;  &lt;a href=&#34;#mute-a-single-video-file&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;To mute a single video file, you can use the following FFmpeg command:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Return Forbidden if Apache HTTPS is Accessed Directly Using IP</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-return-forbidden-if-apache-https-is-accessed-directly-using-ip/</link>
      <pubDate>Mon, 19 Aug 2019 19:04:39 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-return-forbidden-if-apache-https-is-accessed-directly-using-ip/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <category domain="https://dimasmaulana.pages.dev/categories/troubleshooting/">Troubleshooting</category>
      <description>&lt;p&gt;Here&amp;rsquo;s an example of how you can configure your Apache web server to return a &amp;ldquo;403 Forbidden&amp;rdquo; error if the HTTPS is accessed directly using the IP address. This configuration assumes that you have the &lt;code&gt;mod_ssl&lt;/code&gt; module installed and enabled in your Apache server.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;step-1-create-or-edit-the-apache-configuration-file&#34;&gt;&lt;span&gt;Step 1: Create or Edit the Apache Configuration File&lt;/span&gt;&#xA;  &lt;a href=&#34;#step-1-create-or-edit-the-apache-configuration-file&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Open the Apache configuration file in a text editor. The location of the configuration file may vary depending on your operating system and Apache installation. Common locations include:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Customizing Tmux Behavior and SSH Banner Display</title>
      <link>https://dimasmaulana.pages.dev/posts/development/customizing-tmux-behavior-and-ssh-banner-display/</link>
      <pubDate>Mon, 19 Aug 2019 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/customizing-tmux-behavior-and-ssh-banner-display/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Tmux is a versatile terminal multiplexer that allows you to manage multiple terminal sessions within a single window. Additionally, you can customize Tmux behavior to suit your preferences and automate tasks. This article presents a collection of Bash scripts designed to customize Tmux behavior and display an SSH banner when starting Tmux. Let&amp;rsquo;s explore each script&amp;rsquo;s purpose and functionality.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;script-1-show-ssh-banner-on-start-tmux&#34;&gt;&lt;span&gt;Script 1: Show SSH Banner on Start Tmux&lt;/span&gt;&#xA;  &lt;a href=&#34;#script-1-show-ssh-banner-on-start-tmux&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;if [[ -z &amp;#34;$TMUX&amp;#34; ]]; then&#xA;    tmux has-session &amp;amp;&amp;gt; /dev/null&#xA;    if [ $? -eq 1 ]; then&#xA;        shopt -q login_shell &amp;amp;&amp;amp; exec tmux new&#xA;        exit&#xA;    else&#xA;        shopt -q login_shell &amp;amp;&amp;amp; exec tmux attach&#xA;        exit&#xA;    fi&#xA;else&#xA;    TMUX_WINDOW=$(tmux display-message -p &amp;#39;#{session_windows}&amp;#39;)&#xA;    if [ $TMUX_WINDOW == &amp;#34;1&amp;#34; ]; then&#xA;        shopt -q login_shell &amp;amp;&amp;amp; run-parts /etc/update-motd.d/&#xA;    fi&#xA;fi&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This script is designed to display an SSH banner when starting Tmux. It checks whether the &lt;code&gt;TMUX&lt;/code&gt; environment variable is empty, which indicates that Tmux is not currently running. If Tmux is not running and the current shell is a login shell, it starts a new Tmux session. If Tmux is already running, it attaches to the existing session. If there&amp;rsquo;s only one window in the Tmux session, the script runs the &lt;code&gt;/etc/update-motd.d/&lt;/code&gt; script to show a message of the day for SSH sessions.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Filtering Windows Events by User Account</title>
      <link>https://dimasmaulana.pages.dev/posts/development/filtering-windows-events-by-user-account/</link>
      <pubDate>Sun, 04 Aug 2019 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/filtering-windows-events-by-user-account/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In Windows, you can filter events in the event logs based on specific criteria, such as the user account associated with an event. This can be particularly useful for security and auditing purposes. Below are examples of XML queries that filter Windows events by user account using XPath expressions.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;example-1-filter-successful-logon-events-event-id-4624-by-user-account&#34;&gt;&lt;span&gt;Example 1: Filter Successful Logon Events (Event ID 4624) by User Account&lt;/span&gt;&#xA;  &lt;a href=&#34;#example-1-filter-successful-logon-events-event-id-4624-by-user-account&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;This example demonstrates how to filter successful logon events (Event ID 4624) in the Security event log for a specific user account, in this case, &amp;ldquo;john.doe.&amp;rdquo;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sharing Docker Daemon from Windows to Local Network</title>
      <link>https://dimasmaulana.pages.dev/posts/development/sharing-docker-daemon-from-windows-to-local-network/</link>
      <pubDate>Sun, 17 Mar 2019 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/sharing-docker-daemon-from-windows-to-local-network/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;To share the Docker Daemon running on a Windows machine with other devices on your local network, you can use the &lt;code&gt;netsh&lt;/code&gt; command to perform port forwarding. This will allow you to access the Docker Daemon remotely using the machine&amp;rsquo;s IP address and the forwarded port. Here&amp;rsquo;s how you can do it:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Open Command Prompt as Administrator&lt;/strong&gt;: To execute the &lt;code&gt;netsh&lt;/code&gt; command, you need administrative privileges. Right-click on the Command Prompt and choose &amp;ldquo;Run as administrator.&amp;rdquo;&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Allow Root Login in Ubuntu 18.04</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-allow-root-login-in-ubuntu-1804/</link>
      <pubDate>Sun, 10 Mar 2019 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-allow-root-login-in-ubuntu-1804/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In Ubuntu 18.04, the root account is typically disabled for security reasons. However, there might be situations where you need to enable root login temporarily. Please note that enabling root login should be done with caution, and it&amp;rsquo;s recommended to only do so when absolutely necessary. Here&amp;rsquo;s a step-by-step guide on how to allow root login in Ubuntu 18.04:&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Step 1: Set the Root Password&lt;/strong&gt;&#xA;Before enabling root login, you need to set a password for the root account. Open a terminal and run the following command:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Introduction to rsync</title>
      <link>https://dimasmaulana.pages.dev/posts/development/introduction-to-rsync/</link>
      <pubDate>Tue, 05 Mar 2019 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/introduction-to-rsync/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;&lt;code&gt;rsync&lt;/code&gt; is a powerful and widely used command-line utility in Unix-like operating systems that facilitates efficient and reliable file synchronization and data transfer between directories or across different machines. It is particularly useful for remote backups, mirroring, and incremental transfers. The name &amp;ldquo;rsync&amp;rdquo; stands for &amp;ldquo;remote synchronization.&amp;rdquo;&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;basic-syncing&#34;&gt;&lt;span&gt;Basic Syncing&lt;/span&gt;&#xA;  &lt;a href=&#34;#basic-syncing&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;h3 class=&#34;heading-element&#34; id=&#34;syncing-folder-src-into-dest&#34;&gt;&lt;span&gt;Syncing Folder &lt;code&gt;src&lt;/code&gt; into &lt;code&gt;dest&lt;/code&gt;&lt;/span&gt;&#xA;  &lt;a href=&#34;#syncing-folder-src-into-dest&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;p&gt;To synchronize the contents of a local folder &lt;code&gt;src&lt;/code&gt; into another local folder &lt;code&gt;dest&lt;/code&gt;, you can use the following command:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Working with Tar Compressed Archives in Linux</title>
      <link>https://dimasmaulana.pages.dev/posts/development/working-with-tar-compressed-archives-in-linux/</link>
      <pubDate>Tue, 05 Mar 2019 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/working-with-tar-compressed-archives-in-linux/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In Linux, the &lt;code&gt;tar&lt;/code&gt; command is commonly used for archiving and extracting files and directories. Tar archives can be compressed to save space using various compression algorithms like gzip (&lt;code&gt;*.tar.gz&lt;/code&gt;) or bzip2 (&lt;code&gt;*.tar.bz2&lt;/code&gt;). This guide will cover how to create, extract, and work with tar compressed archives in Linux.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;compressing-files-and-directories-with-tar&#34;&gt;&lt;span&gt;Compressing Files and Directories with Tar&lt;/span&gt;&#xA;  &lt;a href=&#34;#compressing-files-and-directories-with-tar&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;h3 class=&#34;heading-element&#34; id=&#34;1-create-a-tar-archive&#34;&gt;&lt;span&gt;1. Create a Tar Archive&lt;/span&gt;&#xA;  &lt;a href=&#34;#1-create-a-tar-archive&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;p&gt;To create a tar archive of a folder, use the &lt;code&gt;tar -cvpf&lt;/code&gt; command:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Compress Each Folder with one archive if archive is not exist</title>
      <link>https://dimasmaulana.pages.dev/posts/development/compress-each-folder-with-one-archive-if-archive-is-not-exist/</link>
      <pubDate>Sun, 03 Mar 2019 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/compress-each-folder-with-one-archive-if-archive-is-not-exist/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;The provided command is a shell script written in Bash that iterates through directories in the current directory, checks if an archive file (.tar.gz) already exists for each directory, and if not, it creates a compressed archive of the directory using the &lt;code&gt;tar&lt;/code&gt; command.&lt;/p&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s an explanation of what the script does:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;for dir in `find . -maxdepth 1 -type d  | grep -v &amp;#34;^\.$&amp;#34; `; do&#xA;    if ! [ -e ${dir}.tar.gz ] ; then&#xA;        tar -cvzf ${dir}.tar.gz ${dir}&#xA;    fi&#xA;done&lt;/code&gt;&lt;/pre&gt;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;code&gt;for dir in &lt;/code&gt;find . -maxdepth 1 -type d  | grep -v &amp;ldquo;^.$&amp;rdquo; &lt;code&gt;; do&lt;/code&gt;: This line starts a loop that iterates through all subdirectories (excluding the current directory) in the current directory.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Delete Except Newest Files Bash</title>
      <link>https://dimasmaulana.pages.dev/posts/development/delete-except-newest-files-bash/</link>
      <pubDate>Sun, 03 Mar 2019 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/delete-except-newest-files-bash/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;The provided Bash commands are useful for listing and deleting files, including dotfiles, except for the newest ones. Here&amp;rsquo;s a breakdown of what each command does:&lt;/p&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;list-all-files-except-the-newest-three&#34;&gt;&lt;span&gt;List all files except the newest three:&lt;/span&gt;&#xA;  &lt;a href=&#34;#list-all-files-except-the-newest-three&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;ls -t | tail -n &amp;#43;4&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;ls -t&lt;/code&gt;: Lists all files in the current directory sorted by modification time in descending order (newest first).&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;tail -n +4&lt;/code&gt;: Displays all lines starting from the fourth line. In this context, it shows all files except the newest three.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;delete-those-files&#34;&gt;&lt;span&gt;Delete those files:&lt;/span&gt;&#xA;  &lt;a href=&#34;#delete-those-files&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;ls -t | tail -n &amp;#43;4 | xargs rm --&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;xargs&lt;/code&gt;: Takes the output from the previous command (the list of files to delete) and passes them as arguments to the &lt;code&gt;rm&lt;/code&gt; (remove) command.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;rm --&lt;/code&gt;: Deletes the specified files.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;list-all-dotfiles-except-the-newest-three&#34;&gt;&lt;span&gt;List all dotfiles except the newest three:&lt;/span&gt;&#xA;  &lt;a href=&#34;#list-all-dotfiles-except-the-newest-three&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;ls -At | tail -n &amp;#43;4&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;ls -At&lt;/code&gt;: Lists all files, including dotfiles, sorted by modification time in descending order.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;tail -n +4&lt;/code&gt;: Displays all lines starting from the fourth line. It shows all dotfiles except the newest three.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;delete-dotfiles&#34;&gt;&lt;span&gt;Delete dotfiles:&lt;/span&gt;&#xA;  &lt;a href=&#34;#delete-dotfiles&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;ls -At | tail -n &amp;#43;4 | xargs rm --&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;xargs&lt;/code&gt;: Takes the output from the previous command (the list of dotfiles to delete) and passes them as arguments to the &lt;code&gt;rm&lt;/code&gt; (remove) command.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;rm --&lt;/code&gt;: Deletes the specified dotfiles.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;It&amp;rsquo;s important to use these commands with caution, especially the ones that involve deletion (&lt;code&gt;xargs rm --&lt;/code&gt;). Deleting files is irreversible, and there&amp;rsquo;s no easy way to recover them if you make a mistake. Make sure you&amp;rsquo;re in the correct directory and that you are certain about the files you want to delete before running these commands.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Setting up avahi-daemon on Ubuntu for hostname resolution</title>
      <link>https://dimasmaulana.pages.dev/posts/development/setting-up-avahi-daemon-on-ubuntu-for-hostname-resolution/</link>
      <pubDate>Thu, 31 Jan 2019 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/setting-up-avahi-daemon-on-ubuntu-for-hostname-resolution/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Avahi is an open-source implementation of zero-configuration networking, also known as Bonjour or mDNS, which allows devices to automatically discover and communicate with each other on a local network without requiring any manual configuration. This guide will walk you through the process of setting up avahi-daemon on Ubuntu, enabling you to reach the hostname &lt;code&gt;ubuntu.local&lt;/code&gt; from the host OS, Samba, and through network discovery.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Step 1: Install Avahi Packages&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Open a terminal and execute the following command to install the required Avahi packages:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Wordpress Roadmap</title>
      <link>https://dimasmaulana.pages.dev/posts/development/wordpress-roadmap/</link>
      <pubDate>Sun, 22 Apr 2018 13:19:28 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/wordpress-roadmap/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;WordPress is a powerful content management system (CMS) that enables developers to create dynamic websites. To become proficient in WordPress development, one must follow a structured roadmap covering both front-end and back-end technologies. Below is a detailed roadmap to mastering WordPress development.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt; flowchart TB&#xA;  Start((Start)) --&amp;gt; HTMLCSS(HTML / CSS)&#xA;  HTMLCSS --&amp;gt; FE(Front End)&#xA;  FE --- FELEVEL{Level}&#xA;  FE --&amp;gt; BackEnd&#xA;  subgraph FE[Front End]&#xA;   direction TB&#xA;   FELEVEL --&amp;gt; Javascript&#xA;   Javascript --&amp;gt; jQuery&#xA;   Javascript --&amp;gt; AJAX&#xA;   FELEVEL --&amp;gt; React&#xA;   React --&amp;gt; REST(REST API)&#xA;  end&#xA;  subgraph BackEnd[Back End]&#xA;   PHP --&amp;gt; WPCore(WP Core)&#xA;   WPCore --&amp;gt; MySQL&#xA;  end&#xA;  BackEnd --&amp;gt; Finish((Finish))&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=&#34;heading-element&#34; id=&#34;1-getting-started&#34;&gt;&lt;span&gt;1. Getting Started&lt;/span&gt;&#xA;  &lt;a href=&#34;#1-getting-started&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Before diving into WordPress, it is essential to have a strong foundation in basic web technologies:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Accept HTTPS Self Certificate on Local via Apache2</title>
      <link>https://dimasmaulana.pages.dev/posts/development/accept-https-self-certificate-on-local-via-apache2/</link>
      <pubDate>Sun, 25 Mar 2018 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/accept-https-self-certificate-on-local-via-apache2/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;When you&amp;rsquo;re working on a local development environment and need to accept self-signed HTTPS certificates through Apache2, you can use the following configuration in your virtual host file. This setup allows you to bypass certificate verification for local testing purposes.&lt;/p&gt;&#xA;&lt;p&gt;Assuming you already have a virtual host set up in your Apache2 configuration, here are the steps to configure it to accept self-signed HTTPS certificates:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Enable the &lt;code&gt;proxy&lt;/code&gt; and &lt;code&gt;proxy_http&lt;/code&gt; modules:&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Docker Run -It --Rm --Name Certbot -v --Root-Docker-Composes-Server</title>
      <link>https://dimasmaulana.pages.dev/posts/development/docker-run-it-rm-name-certbot-v-root-docker-composes-server/</link>
      <pubDate>Wed, 14 Mar 2018 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/docker-run-it-rm-name-certbot-v-root-docker-composes-server/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;You want to run Docker commands to request a wildcard SSL certificate from Let&amp;rsquo;s Encrypt using Certbot and to create or renew a certificate for a specific domain. Here&amp;rsquo;s a breakdown of the commands and what they do:&lt;/p&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;requesting-a-wildcard-certificate-with-certbot&#34;&gt;&lt;span&gt;Requesting a Wildcard Certificate with Certbot&lt;/span&gt;&#xA;  &lt;a href=&#34;#requesting-a-wildcard-certificate-with-certbot&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;docker run -it --rm --name certbot -v &amp;#34;/root/docker-composes/server/apache/letsencrypt:/etc/letsencrypt&amp;#34; -v &amp;#34;/var/lib/letsencrypt:/var/lib/letsencrypt&amp;#34; -v &amp;#34;/var/www/html:/var/www/html&amp;#34; certbot/certbot --manual --preferred-challenges dns certonly --server https://acme-v02.api.letsencrypt.org/directory&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;docker run&lt;/code&gt;: This command starts a new Docker container.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;-it&lt;/code&gt;: This flag enables an interactive terminal session.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;--rm&lt;/code&gt;: This flag removes the container when it exits.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;--name certbot&lt;/code&gt;: Specifies the name of the container as &amp;ldquo;certbot.&amp;rdquo;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;-v&lt;/code&gt;: This flag mounts volumes from the host to the container. You are mounting the following directories:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;&amp;quot;/root/docker-composes/server/apache/letsencrypt&amp;quot;&lt;/code&gt; to &lt;code&gt;&amp;quot;/etc/letsencrypt&amp;quot;&lt;/code&gt; inside the container.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;&amp;quot;/var/lib/letsencrypt&amp;quot;&lt;/code&gt; to &lt;code&gt;&amp;quot;/var/lib/letsencrypt&amp;quot;&lt;/code&gt; inside the container.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;&amp;quot;/var/www/html&amp;quot;&lt;/code&gt; to &lt;code&gt;&amp;quot;/var/www/html&amp;quot;&lt;/code&gt; inside the container.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;certbot/certbot&lt;/code&gt;: Specifies the Docker image to use, which is the Certbot image.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;--manual&lt;/code&gt;: Indicates that you want to perform manual DNS challenges to prove domain ownership.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;--preferred-challenges dns&lt;/code&gt;: Specifies that you prefer DNS challenges for domain verification.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;certonly&lt;/code&gt;: Instructs Certbot to obtain certificates without installing them.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;--server https://acme-v02.api.letsencrypt.org/directory&lt;/code&gt;: Sets the Let&amp;rsquo;s Encrypt ACME server&amp;rsquo;s URL for certificate issuance.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;creatingrenewing-a-certonly-certificate&#34;&gt;&lt;span&gt;Creating/Renewing a Certonly Certificate&lt;/span&gt;&#xA;  &lt;a href=&#34;#creatingrenewing-a-certonly-certificate&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;certbot certonly --webroot -w /var/www/html/ -d example.com&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;certbot certonly&lt;/code&gt;: This command tells Certbot to obtain a certificate without installing it.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;--webroot&lt;/code&gt;: Specifies the webroot plugin for authentication and authorization.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;-w /var/www/html/&lt;/code&gt;: Specifies the webroot path where Certbot should place challenge files.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;-d example.com&lt;/code&gt;: Specifies the domain (example.com in this case) for which you want to obtain or renew the certificate.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;These commands allow you to request a wildcard SSL certificate and create or renew a standard SSL certificate using Certbot in a Docker container. Make sure to replace &amp;ldquo;example.com&amp;rdquo; with your actual domain name when running the second command.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fixing Tmux Generating Random Characters on Click or Scroll</title>
      <link>https://dimasmaulana.pages.dev/posts/development/fixing-tmux-generating-random-characters-on-click-or-scroll/</link>
      <pubDate>Sun, 18 Feb 2018 08:22:16 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/fixing-tmux-generating-random-characters-on-click-or-scroll/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <category domain="https://dimasmaulana.pages.dev/categories/troubleshooting/">Troubleshooting</category>
      <description>&lt;p&gt;Tmux is a popular terminal multiplexer that allows users to manage multiple terminal sessions within a single window. However, some users may encounter an issue where Tmux generates random characters when clicking or scrolling within the terminal. This can be frustrating and disrupt the user&amp;rsquo;s workflow. In this article, we will explore a solution to fix this problem.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;solution&#34;&gt;&lt;span&gt;Solution&lt;/span&gt;&#xA;  &lt;a href=&#34;#solution&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;To resolve the issue of Tmux generating random characters on click or scroll, you can follow the steps outlined below:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Stripping EXIF Data from Images using ImageMagick</title>
      <link>https://dimasmaulana.pages.dev/posts/development/stripping-exif-data-from-images-using-imagemagick/</link>
      <pubDate>Wed, 22 Nov 2017 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/stripping-exif-data-from-images-using-imagemagick/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;When working with images, especially those captured by digital cameras or smartphones, you might encounter a lot of metadata embedded within the image files. This metadata often includes valuable information such as camera settings, date and time of capture, and even geolocation. This information is stored in a format known as Exchangeable Image File Format (EXIF). While EXIF data can be useful, there are situations where you might want to remove it for privacy, security, or optimization reasons.&lt;/p&gt;</description>
    </item>
    <item>
      <title>CLI Remove old backup file max 5 older</title>
      <link>https://dimasmaulana.pages.dev/posts/development/cli-remove-old-backup-file-max-5-older/</link>
      <pubDate>Thu, 12 Oct 2017 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/cli-remove-old-backup-file-max-5-older/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;We have provided a set of command-line instructions for managing backup files. These commands are designed to remove older backup files based on certain criteria. Let me break down each of the commands for you:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Removing Old Backup Files Using &lt;code&gt;ls&lt;/code&gt;, &lt;code&gt;tail&lt;/code&gt;, and &lt;code&gt;xargs&lt;/code&gt;:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;ls -t1 | tail -n &amp;#43;11 | xargs -d &amp;#39;\n&amp;#39; rm&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This command is used to list files in a directory by their modification time in descending order (&lt;code&gt;-t1&lt;/code&gt;). Then, it uses &lt;code&gt;tail&lt;/code&gt; to exclude the top 10 files (keeping the 11th and onwards), and finally, it uses &lt;code&gt;xargs&lt;/code&gt; to remove these older files.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Updating Video Metadata Based on Modified Date Using Exiftool</title>
      <link>https://dimasmaulana.pages.dev/posts/development/updating-video-metadata-based-on-modified-date-using-exiftool/</link>
      <pubDate>Mon, 09 Oct 2017 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/updating-video-metadata-based-on-modified-date-using-exiftool/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In this article, we&amp;rsquo;ll explore how to update the metadata of video files (in this case, MP4 files) based on their modified date using the powerful Exiftool command-line utility. Metadata can include various information about the video, such as creation date, author, and more. Sometimes, it&amp;rsquo;s necessary to adjust or correct this metadata. Here, we&amp;rsquo;ll focus on modifying the date-related metadata using Exiftool.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;prerequisites&#34;&gt;&lt;span&gt;Prerequisites&lt;/span&gt;&#xA;  &lt;a href=&#34;#prerequisites&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Before you begin, make sure you have Exiftool installed on your system. You can download it from the official website: &lt;a href=&#34;https://exiftool.org/&#34; target=&#34;_blank&#34; rel=&#34;external nofollow noopener noreferrer&#34;&gt;Exiftool&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Pulling the Latest Versions of All Docker Images</title>
      <link>https://dimasmaulana.pages.dev/posts/development/pulling-the-latest-versions-of-all-docker-images/</link>
      <pubDate>Sun, 17 Sep 2017 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/pulling-the-latest-versions-of-all-docker-images/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In Docker, it&amp;rsquo;s essential to keep your images up to date, especially when using various containers and applications. One way to do this efficiently is by pulling the latest versions of all Docker images with a single command. In this article, we&amp;rsquo;ll walk you through the process using a command-line interface (CLI).&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;prerequisites&#34;&gt;&lt;span&gt;Prerequisites&lt;/span&gt;&#xA;  &lt;a href=&#34;#prerequisites&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Before proceeding, make sure you have Docker installed and configured on your system. You can download and install Docker from the official website: &lt;a href=&#34;https://www.docker.com/get-started&#34; target=&#34;_blank&#34; rel=&#34;external nofollow noopener noreferrer&#34;&gt;Docker Download&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Updating and Upgrading Brew Cask Apps via Command Line Interface</title>
      <link>https://dimasmaulana.pages.dev/posts/development/updating-and-upgrading-brew-cask-apps-via-command-line-interface/</link>
      <pubDate>Sat, 05 Aug 2017 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/updating-and-upgrading-brew-cask-apps-via-command-line-interface/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you&amp;rsquo;re a macOS user who relies on Homebrew and Brew Cask for managing software packages and applications, keeping everything up to date is crucial. This guide outlines how to update and upgrade Brew Cask apps through the command line interface (CLI). Follow the steps below to ensure that your software is always current.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;prerequisites&#34;&gt;&lt;span&gt;Prerequisites&lt;/span&gt;&#xA;  &lt;a href=&#34;#prerequisites&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Before you start updating and upgrading your Brew Cask apps, make sure you have already updated Homebrew itself. To do this, open your terminal and run:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Disabling Auto Traffic Promotion in Google Cloud App Engine</title>
      <link>https://dimasmaulana.pages.dev/posts/development/disabling-auto-traffic-promotion-in-google-cloud-app-engine/</link>
      <pubDate>Fri, 09 Jun 2017 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/disabling-auto-traffic-promotion-in-google-cloud-app-engine/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;When deploying applications to Google Cloud App Engine, you might want to disable the automatic traffic promotion feature, which promotes the latest deployed version to receive 100% of the traffic by default. This can be useful when you want to manually control when a new version of your application should start receiving traffic. To disable auto traffic promotion, you can use the following command in your terminal:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;$ gcloud config set app/promote_by_default false&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This command configures your Google Cloud CLI (&lt;code&gt;gcloud&lt;/code&gt;) to not automatically promote the latest deployed version. Here&amp;rsquo;s what each part of the command does:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Disable/Enable updatedb.mlocate to Reduce Disk IO</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-disableenable-updatedbmlocate-to-reduce-disk-io/</link>
      <pubDate>Mon, 13 Mar 2017 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-disableenable-updatedbmlocate-to-reduce-disk-io/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;The &lt;code&gt;updatedb.mlocate&lt;/code&gt; service is responsible for updating the mlocate database, which can sometimes consume a significant amount of disk I/O. Here, we&amp;rsquo;ll explain how to disable and enable this service as well as provide a tip for customizing which directories are indexed.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;disable-updatedbmlocate&#34;&gt;&lt;span&gt;Disable updatedb.mlocate&lt;/span&gt;&#xA;  &lt;a href=&#34;#disable-updatedbmlocate&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;To disable the &lt;code&gt;updatedb.mlocate&lt;/code&gt; service, follow these steps:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Install PHP on Windows and Enable Modules</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-install-php-on-windows-and-enable-modules/</link>
      <pubDate>Sun, 12 Mar 2017 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-install-php-on-windows-and-enable-modules/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In this guide, we will walk you through the process of installing PHP on a Windows machine using Chocolatey (choco) package manager. We will also show you how to enable the necessary modules in the &lt;code&gt;php.ini&lt;/code&gt; configuration file to run popular PHP applications like the Laravel framework.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;prerequisites&#34;&gt;&lt;span&gt;Prerequisites&lt;/span&gt;&#xA;  &lt;a href=&#34;#prerequisites&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Before you begin, make sure you have the following prerequisites in place:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maven Could Not Detect Google Cloud SDK on Eclipse</title>
      <link>https://dimasmaulana.pages.dev/posts/development/maven-could-not-detect-google-cloud-sdk-on-eclipse/</link>
      <pubDate>Sat, 25 Feb 2017 07:31:01 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/maven-could-not-detect-google-cloud-sdk-on-eclipse/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <category domain="https://dimasmaulana.pages.dev/categories/troubleshooting/">Troubleshooting</category>
      <description>&lt;p&gt;If you&amp;rsquo;re encountering an issue where Maven cannot detect the Google Cloud SDK on Eclipse, there are a few solutions you can try to resolve the problem. In this blog post, we will explore three different solutions that you can use to fix this issue.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;solution-1-use-automator-script&#34;&gt;&lt;span&gt;Solution 1: Use Automator Script&lt;/span&gt;&#xA;  &lt;a href=&#34;#solution-1-use-automator-script&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;The first solution involves using an Automator script to set the &lt;code&gt;GOOGLE_CLOUD_SDK_HOME&lt;/code&gt; environment variable before launching Eclipse. Follow the steps below:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Setting Up Environment Variables on macOS Yosemite Using Launch Agent</title>
      <link>https://dimasmaulana.pages.dev/posts/development/setting-up-environment-variables-on-macos-yosemite-using-launch-agent/</link>
      <pubDate>Sat, 25 Feb 2017 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/setting-up-environment-variables-on-macos-yosemite-using-launch-agent/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In previous releases of macOS (Mavericks, Mountain Lion, Lion, &amp;hellip;), configuring environment variables required editing the &lt;code&gt;/etc/launchd.conf&lt;/code&gt; file. However, starting from macOS Yosemite, this method is no longer effective. To successfully configure environment variables on Yosemite and later versions, follow these steps:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Create a Launch Agent Property List (plist) File:&#xA;Create a plist file named &lt;code&gt;my.startup.plist&lt;/code&gt; in the &lt;code&gt;~/Library/LaunchAgents/&lt;/code&gt; directory. This directory is specific to user-based launch agent configurations.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Define the Plist Structure:&#xA;The content of the &lt;code&gt;my.startup.plist&lt;/code&gt; file should adhere to the XML-based property list format. This format is used to specify various attributes that dictate the behavior of launch agents.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Docker Command Remove / Clean Up</title>
      <link>https://dimasmaulana.pages.dev/posts/development/docker-command-remove-clean-up/</link>
      <pubDate>Wed, 22 Feb 2017 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/docker-command-remove-clean-up/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;When working with Docker, it&amp;rsquo;s essential to clean up unused containers, images, and other resources to free up disk space and keep your system tidy. Here are three options for cleaning up Docker resources:&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;option-1-using-docker-clean&#34;&gt;&lt;span&gt;Option 1: Using &lt;code&gt;docker-clean&lt;/code&gt;&lt;/span&gt;&#xA;  &lt;a href=&#34;#option-1-using-docker-clean&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;You can use a third-party tool called &lt;a href=&#34;https://github.com/ZZROTDesign/docker-clean&#34; target=&#34;_blank&#34; rel=&#34;external nofollow noopener noreferrer&#34;&gt;docker-clean&lt;/a&gt; to help you clean up Docker resources more efficiently. This tool provides a simple command to remove stopped containers, dangling volumes, and unused images.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Solving Laravel HTTPS to HTTP Proxy Issue</title>
      <link>https://dimasmaulana.pages.dev/posts/development/solving-laravel-https-to-http-proxy-issue/</link>
      <pubDate>Mon, 20 Feb 2017 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/solving-laravel-https-to-http-proxy-issue/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;When you&amp;rsquo;re dealing with a setup where a client communicates with an SSL load balancer over HTTPS, and the load balancer talks to a backend server over HTTP, you might encounter issues with Laravel generating URLs with an &lt;code&gt;http://&lt;/code&gt; schema. To address this issue, you can implement the following workaround:&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;step-1-modify-routesphp&#34;&gt;&lt;span&gt;Step 1: Modify &lt;code&gt;routes.php&lt;/code&gt;&lt;/span&gt;&#xA;  &lt;a href=&#34;#step-1-modify-routesphp&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Open your Laravel project&amp;rsquo;s &lt;code&gt;routes.php&lt;/code&gt; file and add the following code snippet at the top of the file:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Understanding Docker Run Arguments: -i, -t, and --attach</title>
      <link>https://dimasmaulana.pages.dev/posts/development/understanding-docker-run-arguments-i-t-and-attach/</link>
      <pubDate>Mon, 20 Feb 2017 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/understanding-docker-run-arguments-i-t-and-attach/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;When working with Docker, you often use various command-line arguments to customize the behavior of containers when they are launched. Three commonly used arguments are &lt;code&gt;-i&lt;/code&gt;, &lt;code&gt;-t&lt;/code&gt;, and &lt;code&gt;--attach&lt;/code&gt;. These arguments are often used together, and they serve different purposes in controlling how your container interacts with the terminal and user input.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;-i---interactive-mode&#34;&gt;&lt;span&gt;&lt;code&gt;-i&lt;/code&gt; - Interactive Mode&lt;/span&gt;&#xA;  &lt;a href=&#34;#-i---interactive-mode&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;The &lt;code&gt;-i&lt;/code&gt; flag stands for &amp;ldquo;interactive.&amp;rdquo; When you include this flag in your &lt;code&gt;docker run&lt;/code&gt; command, it tells Docker to keep STDIN (standard input) open, allowing you to interact with the container&amp;rsquo;s command or application. Here&amp;rsquo;s what it means in more detail:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Force Select Text from a Screen Session on Terminal Mac</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-force-select-text-from-a-screen-session-on-terminal-mac/</link>
      <pubDate>Fri, 17 Feb 2017 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-force-select-text-from-a-screen-session-on-terminal-mac/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Sometimes, when you&amp;rsquo;re working in a terminal on your Mac and using the &lt;code&gt;screen&lt;/code&gt; command to manage multiple shell sessions, you may encounter situations where you need to select and copy text from within a &lt;code&gt;screen&lt;/code&gt; session. However, the usual text selection methods like click and drag may not work as expected within a &lt;code&gt;screen&lt;/code&gt; session. In such cases, you can use the &lt;code&gt;Fn&lt;/code&gt; key in combination with the &lt;code&gt;Left Click&lt;/code&gt; to force select text within a &lt;code&gt;screen&lt;/code&gt; session.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Make Google App Engine Local Development Server Available on network</title>
      <link>https://dimasmaulana.pages.dev/posts/development/make-google-app-engine-local-development-server-available-on-network/</link>
      <pubDate>Fri, 17 Feb 2017 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/make-google-app-engine-local-development-server-available-on-network/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;To make the Google App Engine Local Development Server available on your network using Maven, you need to configure the &lt;code&gt;appengine-maven-plugin&lt;/code&gt; with the appropriate host and port settings. By default, the local development server runs on &lt;code&gt;localhost&lt;/code&gt;, which means it&amp;rsquo;s only accessible from the same machine where it&amp;rsquo;s running. To make it accessible from other devices on your network, you should set the host to &lt;code&gt;0.0.0.0&lt;/code&gt; to bind it to all available network interfaces.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Understanding the Difference Between Bug and Defect</title>
      <link>https://dimasmaulana.pages.dev/posts/development/understanding-the-difference-between-bug-and-defect/</link>
      <pubDate>Mon, 06 Feb 2017 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/understanding-the-difference-between-bug-and-defect/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In software development, the terms &amp;ldquo;bug&amp;rdquo; and &amp;ldquo;defect&amp;rdquo; are often used interchangeably, but they have distinct meanings that can impact how issues are categorized and addressed. To clarify the difference, let&amp;rsquo;s explore each term and provide examples for better comprehension.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;bug&#34;&gt;&lt;span&gt;Bug&lt;/span&gt;&#xA;  &lt;a href=&#34;#bug&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;A &lt;strong&gt;bug&lt;/strong&gt; is a problem or issue in a software application that occurs as a result of a coding error. It represents an unintended behavior that arises from mistakes made during the implementation phase of development. Bugs can manifest as crashes, data corruption, unexpected behaviors, or any issue where the software does not perform as intended due to a coding mistake.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Removing Git History Commit</title>
      <link>https://dimasmaulana.pages.dev/posts/development/removing-git-history-commit/</link>
      <pubDate>Sat, 04 Feb 2017 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/removing-git-history-commit/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you want to remove Git commit history and start fresh with a new branch while keeping your current files, you can follow these steps:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;1. **Create a New Orphan Branch:**&#xA;&#xA;   ```shell&#xA;   git checkout --orphan newBranch&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This creates a new branch called &lt;code&gt;newBranch&lt;/code&gt; with no commit history.&lt;/p&gt;&#xA;&lt;ol start=&#34;2&#34;&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Add and Commit Your Current Files:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;git add -A  # Add all files and changes&#xA;git commit -m &amp;#34;Initial commit&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This stages and commits all your current files to the new branch.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Creating an L2TP over IPSec VPN</title>
      <link>https://dimasmaulana.pages.dev/posts/development/creating-an-l2tp-over-ipsec-vpn/</link>
      <pubDate>Tue, 17 Jan 2017 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/creating-an-l2tp-over-ipsec-vpn/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;I&amp;rsquo;m unable to access external websites or specific URLs, including the one you provided. However, I can certainly help you create a markdown article explaining how to set up L2TP over IPSec and how to port forward the necessary ports. Here&amp;rsquo;s a guide on how to do it:&lt;/p&gt;&#xA;&lt;h1 class=&#34;heading-element&#34; id=&#34;creating-an-l2tp-over-ipsec-vpn&#34;&gt;&lt;span&gt;Creating an L2TP over IPSec VPN&lt;/span&gt;&#xA;  &lt;a href=&#34;#creating-an-l2tp-over-ipsec-vpn&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h1&gt;&lt;p&gt;In this guide, we will walk you through the process of setting up your own L2TP (Layer 2 Tunneling Protocol) VPN over IPSec (Internet Protocol Security). This will allow you to establish a secure connection to your home network or server from a remote location.&lt;/p&gt;</description>
    </item>
    <item>
      <title>GPG Key Import to another PC</title>
      <link>https://dimasmaulana.pages.dev/posts/development/gpg-key-import-to-another-pc/</link>
      <pubDate>Tue, 17 Jan 2017 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/gpg-key-import-to-another-pc/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;We have provided a set of commands for working with GPG keys, encrypting and decrypting files, and extracting tar archives. These commands are useful for various tasks related to data security and file management. Here&amp;rsquo;s a breakdown of each command with a brief explanation:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;scp example-backup-enc-privkey.asc root@192.168.1.6:~/&#xA;gpg --import example-backup-enc-privkey.asc&#xA;gpg --edit-key john@example.com&#xA;&#xA;&amp;gt; trust&#xA;5&#xA;quit&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;The &lt;code&gt;scp&lt;/code&gt; command is used to securely copy the GPG private key file (&lt;code&gt;example-backup-enc-privkey.asc&lt;/code&gt;) to another PC with the specified IP address and destination folder (&lt;code&gt;~&lt;/code&gt; denotes the user&amp;rsquo;s home directory).&lt;/p&gt;</description>
    </item>
    <item>
      <title>SSH Through A Router Without Port Forwarding</title>
      <link>https://dimasmaulana.pages.dev/posts/development/ssh-through-a-router-without-port-forwarding/</link>
      <pubDate>Fri, 30 Dec 2016 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/ssh-through-a-router-without-port-forwarding/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you want to establish an SSH connection to your &amp;ldquo;linux server&amp;rdquo; from the outside without configuring port forwarding on your router, you can use SSH remote port forwarding. This technique allows you to connect to an external server (let&amp;rsquo;s call it &amp;ldquo;my_other_server&amp;rdquo;) and have it forward traffic back to your &amp;ldquo;linux server.&amp;rdquo; Here&amp;rsquo;s how you can do it:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;SSH from linux_server to my_other_server:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Open a terminal on your &amp;ldquo;linux server&amp;rdquo; and use the following command to initiate an SSH connection to &amp;ldquo;my_other_server,&amp;rdquo; specifying remote port forwarding:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Configure Postfix to use Gmail as a Mail Relay</title>
      <link>https://dimasmaulana.pages.dev/posts/development/configure-postfix-to-use-gmail-as-a-mail-relay/</link>
      <pubDate>Wed, 20 Jul 2016 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/configure-postfix-to-use-gmail-as-a-mail-relay/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you have a Gmail account, you can configure your Mail Transfer Agent (MTA) to relay outgoing mail through Gmail. This provides you with the reliability and infrastructure of Gmail for sending emails from the command line. In this tutorial, we&amp;rsquo;ll use Postfix as our MTA, which is a secure and open-source mail transfer agent. We&amp;rsquo;ll cover instructions for various operating systems.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#39;images/Configure%20Postfix%20to%20use%20Gmail%20as%20a%20Mail%20Relay-2016-07-20.gif&#39; alt=&#34;Configure Postfix to use Gmail as a Mail Relay&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Change HOME Directory to User Profile Directory CYGWIN</title>
      <link>https://dimasmaulana.pages.dev/posts/development/change-home-directory-to-user-profile-directory-cygwin/</link>
      <pubDate>Sun, 10 Jul 2016 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/change-home-directory-to-user-profile-directory-cygwin/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;You want to change the home directory for users in Cygwin to their Windows profile directory. You&amp;rsquo;ve already identified the relevant configuration file, &lt;code&gt;/etc/nsswitch.conf&lt;/code&gt;, and the &lt;code&gt;db_home&lt;/code&gt; parameter. Here&amp;rsquo;s how you can change the home directory to the Windows profile directory using this configuration:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Open &lt;code&gt;/etc/nsswitch.conf&lt;/code&gt;&lt;/strong&gt;: Use your preferred text editor (e.g., &lt;code&gt;nano&lt;/code&gt;, &lt;code&gt;vim&lt;/code&gt;, or &lt;code&gt;notepad&lt;/code&gt;) to open the &lt;code&gt;/etc/nsswitch.conf&lt;/code&gt; file in Cygwin.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Edit the &lt;code&gt;db_home&lt;/code&gt; parameter&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;p&gt;Locate the line that starts with &lt;code&gt;db_home:&lt;/code&gt;. You&amp;rsquo;ve already made the necessary change, but make sure it looks like this:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Configure Locales in Ubuntu</title>
      <link>https://dimasmaulana.pages.dev/posts/development/configure-locales-in-ubuntu/</link>
      <pubDate>Wed, 22 Jun 2016 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/configure-locales-in-ubuntu/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#39;images/Configure%20Locales%20in%20Ubuntu-2016-06-22.png&#39; alt=&#34;Configure Locales in Ubuntu&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Locales (language settings) can be configured for Ubuntu from the command line. This guide is applicable to Ubuntu 11.10 and provides steps for displaying current settings, available locales, and adjusting locales as needed.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;displaying-the-current-settings&#34;&gt;&lt;span&gt;Displaying the Current Settings&lt;/span&gt;&#xA;  &lt;a href=&#34;#displaying-the-current-settings&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;You can check the current locale settings using the &lt;code&gt;locale&lt;/code&gt; command:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Installing VirtualBox as a Service on Windows using NSSM</title>
      <link>https://dimasmaulana.pages.dev/posts/development/installing-virtualbox-as-a-service-on-windows-using-nssm/</link>
      <pubDate>Wed, 22 Jun 2016 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/installing-virtualbox-as-a-service-on-windows-using-nssm/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In this article, we will guide you through the process of installing VirtualBox as a Windows service using NSSM (Non-Sucking Service Manager) and starting a Virtual Machine automatically as a service. This can be useful for scenarios where you need a Virtual Machine to run in the background, even when the user is not logged in.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;prerequisites&#34;&gt;&lt;span&gt;Prerequisites&lt;/span&gt;&#xA;  &lt;a href=&#34;#prerequisites&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Before we begin, ensure that you have the following prerequisites in place:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Setting up an HTTPS Proxy with Apache</title>
      <link>https://dimasmaulana.pages.dev/posts/development/setting-up-an-https-proxy-with-apache/</link>
      <pubDate>Wed, 22 Jun 2016 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/setting-up-an-https-proxy-with-apache/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In this article, we will walk you through the process of setting up an HTTPS proxy using Apache. An HTTPS proxy can be useful for various purposes, such as load balancing, reverse proxying, or providing an additional layer of security for your web applications.&lt;/p&gt;&#xA;&lt;p&gt;To configure Apache as an HTTPS proxy, you will need to make use of the &lt;code&gt;mod_proxy&lt;/code&gt; and &lt;code&gt;mod_proxy_http&lt;/code&gt; modules, along with the SSL-related settings. Below are the steps to configure Apache as an HTTPS proxy with the provided SSL settings:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Configuring Samba Share in Linux</title>
      <link>https://dimasmaulana.pages.dev/posts/development/configuring-samba-share-in-linux/</link>
      <pubDate>Wed, 08 Jun 2016 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/configuring-samba-share-in-linux/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Samba is a widely-used software suite that enables file and printer sharing between Windows and Linux systems. The primary configuration file for Samba is typically located at &lt;code&gt;/etc/samba/smb.conf&lt;/code&gt;. This article will guide you through setting up a Samba share on Linux, utilizing the provided information.&lt;/p&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;samba-configuration-path&#34;&gt;&lt;span&gt;Samba Configuration Path&lt;/span&gt;&#xA;  &lt;a href=&#34;#samba-configuration-path&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;p&gt;The main configuration file for Samba is usually located at &lt;code&gt;/etc/samba/smb.conf&lt;/code&gt;. This file contains various settings that control the behavior of Samba, including share definitions, authentication settings, and access controls.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Adding a Non-Root User to Execute Docker Commands</title>
      <link>https://dimasmaulana.pages.dev/posts/development/adding-a-non-root-user-to-execute-docker-commands/</link>
      <pubDate>Tue, 07 Jun 2016 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/adding-a-non-root-user-to-execute-docker-commands/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In Docker, it&amp;rsquo;s common to want non-root users to execute Docker commands without needing to use &lt;code&gt;sudo&lt;/code&gt; each time. This is achieved by adding the user to the &lt;code&gt;docker&lt;/code&gt; group. Here are the steps to do that:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Open a Terminal&lt;/strong&gt;: First, open a terminal on your Linux system.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Check If the &lt;code&gt;docker&lt;/code&gt; Group Exists&lt;/strong&gt;: Run the following command to check if the &lt;code&gt;docker&lt;/code&gt; group already exists:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;cat /etc/group | grep docker&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;If it doesn&amp;rsquo;t exist, you will not see any output from this command.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Fix Chrome Certificate HSTS Issue</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-fix-chrome-certificate-hsts-issue/</link>
      <pubDate>Fri, 20 May 2016 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-fix-chrome-certificate-hsts-issue/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you are encountering an issue with Chrome&amp;rsquo;s HSTS (HTTP Strict Transport Security) certificate for a specific website, you can follow these steps to resolve it. HSTS is a security feature that enforces HTTPS connections for websites, and sometimes it can lead to certificate errors. Here&amp;rsquo;s a step-by-step guide on how to fix it:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Open Google Chrome and go to the address bar.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Type the following URL and press Enter:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Login to any user as root</title>
      <link>https://dimasmaulana.pages.dev/posts/development/login-to-any-user-as-root/</link>
      <pubDate>Thu, 21 Apr 2016 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/login-to-any-user-as-root/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;It looks like you&amp;rsquo;re trying to log in as the root user and then switch to another user, &lt;code&gt;www-data&lt;/code&gt;, with the &lt;code&gt;su&lt;/code&gt; command in a Unix-like operating system. Here&amp;rsquo;s a breakdown of what&amp;rsquo;s happening in your provided commands:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;code&gt;$ su&lt;/code&gt;: This command is used to switch to another user account. When executed without specifying a username, it assumes you want to switch to the root user.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;code&gt;Password:&lt;/code&gt;: You&amp;rsquo;ll be prompted to enter the root user&amp;rsquo;s password. You should enter the root password to proceed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Port Forward Docker-Machine to Localhost</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-port-forward-docker-machine-to-localhost/</link>
      <pubDate>Tue, 08 Mar 2016 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-port-forward-docker-machine-to-localhost/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Port forwarding allows you to expose services running inside a virtual machine, such as Docker-Machine, to your local machine. In this example, we&amp;rsquo;ll use VirtualBox and Docker-Machine to forward port 8080 from the virtual machine to localhost.&lt;/p&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;prerequisites&#34;&gt;&lt;span&gt;Prerequisites&lt;/span&gt;&#xA;  &lt;a href=&#34;#prerequisites&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;p&gt;Before you begin, make sure you have the following:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Location of Cron Logs on Ubuntu 14.04</title>
      <link>https://dimasmaulana.pages.dev/posts/development/ocation-of-cron-logs-on-ubuntu-1404/</link>
      <pubDate>Thu, 07 Jan 2016 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/ocation-of-cron-logs-on-ubuntu-1404/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Cron logs on Ubuntu 14.04 are typically stored in the &lt;code&gt;/var/log/syslog&lt;/code&gt; file. However, if you wish to separate cron-related logs into their own file, you can follow the steps you&amp;rsquo;ve provided to create a dedicated log file for cron messages. Here&amp;rsquo;s how you can do it:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Open the &lt;code&gt;50-default.conf&lt;/code&gt; file in the &lt;code&gt;/etc/rsyslog.d/&lt;/code&gt; directory:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;cd /etc/rsyslog.d/&#xA;sudo nano 50-default.conf&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Uncomment the line that corresponds to cron messages. Remove the &amp;ldquo;#&amp;rdquo; symbol at the beginning of the line:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Viewing All Git Diffs with Vimdiff</title>
      <link>https://dimasmaulana.pages.dev/posts/development/viewing-all-git-diffs-with-vimdiff/</link>
      <pubDate>Wed, 06 Jan 2016 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/viewing-all-git-diffs-with-vimdiff/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you&amp;rsquo;re a developer using Git for version control and you&amp;rsquo;re looking for a powerful way to visualize the differences between different versions of your code, Vimdiff is a handy tool to have in your toolkit. Vimdiff is a feature-rich text editor that comes with built-in support for comparing and highlighting differences between files, making it an ideal choice for inspecting code changes. In this article, we&amp;rsquo;ll explore how to set up Vimdiff as a diff tool for Git and how to make the most of its features for effective code comparison.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Troubleshooting SSHD Connection Issues with Public Key in Cygwin</title>
      <link>https://dimasmaulana.pages.dev/posts/development/troubleshooting-sshd-connection-issues-with-public-key-in-cygwin/</link>
      <pubDate>Thu, 24 Dec 2015 23:19:58 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/troubleshooting-sshd-connection-issues-with-public-key-in-cygwin/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <category domain="https://dimasmaulana.pages.dev/categories/troubleshooting/">Troubleshooting</category>
      <description>&lt;p&gt;Cygwin provides a Unix-like environment for Windows, including an implementation of OpenSSH, which allows you to establish secure remote connections using the SSH (Secure Shell) protocol. However, connecting to Cygwin&amp;rsquo;s SSH server (sshd) using public key authentication can sometimes present challenges. This blog post will guide you through a troubleshooting process to resolve issues related to connecting to Cygwin sshd with public key authentication.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;step-1-update-etcsshd_config&#34;&gt;&lt;span&gt;Step 1: Update /etc/sshd_config&lt;/span&gt;&#xA;  &lt;a href=&#34;#step-1-update-etcsshd_config&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;ol&gt;&#xA;&lt;li&gt;Open the Cygwin terminal and navigate to the Cygwin installation directory (typically C:\cygwin64 or C:\cygwin).&lt;/li&gt;&#xA;&lt;li&gt;Locate the &amp;ldquo;sshd_config&amp;rdquo; file in the etc directory. The full path should be something like C:\cygwin64\etc\sshd_config.&lt;/li&gt;&#xA;&lt;li&gt;Open the &amp;ldquo;sshd_config&amp;rdquo; file using a text editor (e.g., Notepad++).&lt;/li&gt;&#xA;&lt;li&gt;Look for the &amp;ldquo;StrictModes&amp;rdquo; option and set it to &amp;ldquo;no.&amp;rdquo; This allows more relaxed permission checking for the authorized_keys file.&lt;/li&gt;&#xA;&lt;li&gt;Save the changes and close the text editor.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;step-2-generate-ssh-key-pair&#34;&gt;&lt;span&gt;Step 2: Generate SSH Key Pair&lt;/span&gt;&#xA;  &lt;a href=&#34;#step-2-generate-ssh-key-pair&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;ol&gt;&#xA;&lt;li&gt;If you haven&amp;rsquo;t already done so, generate an SSH key pair on the client machine using the &amp;ldquo;ssh-keygen&amp;rdquo; command. Make sure to choose a strong passphrase to protect your private key.&lt;/li&gt;&#xA;&lt;li&gt;By default, the key pair will be saved in the &amp;ldquo;.ssh&amp;rdquo; directory in the user&amp;rsquo;s home directory (e.g., C:\Users\YourUsername.ssh).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;step-3-copy-public-key-to-cygwin-server&#34;&gt;&lt;span&gt;Step 3: Copy Public Key to Cygwin Server&lt;/span&gt;&#xA;  &lt;a href=&#34;#step-3-copy-public-key-to-cygwin-server&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;ol&gt;&#xA;&lt;li&gt;In the Cygwin terminal, navigate to the user&amp;rsquo;s home directory (e.g., cd ~).&lt;/li&gt;&#xA;&lt;li&gt;Create the &amp;ldquo;.ssh&amp;rdquo; directory if it doesn&amp;rsquo;t exist: mkdir .ssh&lt;/li&gt;&#xA;&lt;li&gt;Use the &amp;ldquo;scp&amp;rdquo; command to copy the public key to the Cygwin server: scp &amp;lt;public_key_file&amp;gt; user@server:/home/user/.ssh/authorized_keys&#xA;Replace &amp;ldquo;&amp;lt;public_key_file&amp;gt;&amp;rdquo; with the path to your public key file.&#xA;Replace &amp;ldquo;user&amp;rdquo; with your username on the Cygwin server.&#xA;Replace &amp;ldquo;server&amp;rdquo; with the hostname or IP address of the Cygwin server.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;step-4-restart-sshd-service&#34;&gt;&lt;span&gt;Step 4: Restart SSHD Service&lt;/span&gt;&#xA;  &lt;a href=&#34;#step-4-restart-sshd-service&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;ol&gt;&#xA;&lt;li&gt;In the Cygwin terminal, run the following command to restart the sshd service: net stop sshd &amp;amp;&amp;amp; net start sshd&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;step-5-test-ssh-connection&#34;&gt;&lt;span&gt;Step 5: Test SSH Connection&lt;/span&gt;&#xA;  &lt;a href=&#34;#step-5-test-ssh-connection&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;ol&gt;&#xA;&lt;li&gt;On the client machine, open a new terminal or command prompt.&lt;/li&gt;&#xA;&lt;li&gt;Run the following command to connect to the Cygwin server using SSH: ssh user@server&#xA;Replace &amp;ldquo;user&amp;rdquo; with your username on the Cygwin server.&#xA;Replace &amp;ldquo;server&amp;rdquo; with the hostname or IP address of the Cygwin server.&lt;/li&gt;&#xA;&lt;li&gt;If the connection is successful and prompts for the passphrase, enter the passphrase associated with your private key.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;conclusion&#34;&gt;&lt;span&gt;Conclusion&lt;/span&gt;&#xA;  &lt;a href=&#34;#conclusion&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;By following the troubleshooting steps outlined in this blog post, you should be able to connect to the Cygwin sshd server using public key authentication. Remember to ensure that the &amp;ldquo;StrictModes&amp;rdquo; option in the sshd_config file is set to &amp;ldquo;no&amp;rdquo; to allow more flexible permission checking for the authorized_keys file. Generating an SSH key pair, copying the public key to the Cygwin server, and restarting the sshd service are critical steps in establishing a successful SSH connection.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Add Command Line Interface (CLI) Args On PhantomJS</title>
      <link>https://dimasmaulana.pages.dev/posts/development/add-command-line-interface-cli-args-on-phantomjs/</link>
      <pubDate>Wed, 16 Dec 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/add-command-line-interface-cli-args-on-phantomjs/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;To add a command-line interface (CLI) and command-line arguments (args) to PhantomJS when using Selenium WebDriver in Node.js, you can modify your existing code as follows. I&amp;rsquo;ll provide you with a step-by-step guide and also explain the changes made:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;const webdriver = require(&amp;#39;selenium-webdriver&amp;#39;);&#xA;const { Builder } = webdriver;&#xA;const phantomjs = require(&amp;#39;phantomjs-prebuilt&amp;#39;);&#xA;&#xA;// Define your PhantomJS command-line arguments here&#xA;const phantomjsArgs = [&#xA;  &amp;#39;--load-images=false&amp;#39;,&#xA;  // Add any other arguments you need here&#xA;];&#xA;&#xA;// Set up capabilities with the CLI arguments&#xA;const capabilities = webdriver.Capabilities.phantomjs();&#xA;capabilities.set(&amp;#39;phantomjs.cli.args&amp;#39;, phantomjsArgs);&#xA;&#xA;// Set the path to the PhantomJS executable&#xA;const phantomjsPath = phantomjs.path;&#xA;capabilities.set(&amp;#39;phantomjs.binary.path&amp;#39;, phantomjsPath);&#xA;&#xA;// Create a WebDriver instance with the configured capabilities&#xA;const driver = new Builder()&#xA;  .withCapabilities(capabilities)&#xA;  .build();&#xA;&#xA;// Example usage: navigate to a webpage&#xA;driver.get(&amp;#39;https://example.com&amp;#39;)&#xA;  .then(() =&amp;gt; {&#xA;    console.log(&amp;#39;Page title:&amp;#39;, driver.getTitle());&#xA;  })&#xA;  .catch(error =&amp;gt; {&#xA;    console.error(&amp;#39;Error:&amp;#39;, error);&#xA;  });&#xA;&#xA;// Don&amp;#39;t forget to quit the driver when done&#xA;driver.quit();&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Here are the changes made to your original code:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Check Whenever Wifi Is Connected And Send Email When Its Connected</title>
      <link>https://dimasmaulana.pages.dev/posts/development/check-whenever-wifi-is-connected-and-send-email-when-its-connected/</link>
      <pubDate>Wed, 16 Dec 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/check-whenever-wifi-is-connected-and-send-email-when-its-connected/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Thank you for providing the information and the modified Bash script. Below, I&amp;rsquo;ll provide a breakdown of the script&amp;rsquo;s functionality and highlight the changes made for clarity. This will be presented in Markdown format as requested.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;bash-script-check-wifi-connection-and-send-email&#34;&gt;&lt;span&gt;Bash Script: Check WiFi Connection and Send Email&lt;/span&gt;&#xA;  &lt;a href=&#34;#bash-script-check-wifi-connection-and-send-email&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;This Bash script checks whether the WiFi connection is active and sends an email when it reconnects. Here&amp;rsquo;s an overview of the script&amp;rsquo;s key points and improvements:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Change Default Form Root When Sending Email From Mail Or Mailx</title>
      <link>https://dimasmaulana.pages.dev/posts/development/change-default-form-root-when-sending-email-from-mail-or-mailx/</link>
      <pubDate>Tue, 15 Dec 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/change-default-form-root-when-sending-email-from-mail-or-mailx/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In order to change the default sender name when sending an email using the &lt;code&gt;mail&lt;/code&gt; or &lt;code&gt;mailx&lt;/code&gt; command, you can follow these steps. This will allow you to replace the default &amp;ldquo;root&amp;rdquo; with your desired name. Please note that these instructions are typically applicable to Unix-like systems such as Linux.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Change the Full Name&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;p&gt;To change the full name associated with your user account, you can use the &lt;code&gt;chfn&lt;/code&gt; (change finger) command. Open your terminal and run the following command, replacing &lt;code&gt;&amp;quot;Your Full Name&amp;quot;&lt;/code&gt; with the name you want to use as the sender:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Change From Value On Cron Email</title>
      <link>https://dimasmaulana.pages.dev/posts/development/change-from-value-on-cron-email/</link>
      <pubDate>Tue, 15 Dec 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/change-from-value-on-cron-email/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Certainly! To update a cron task and customize the email sent from it, you can use the following command with the &lt;code&gt;&amp;lt;CRON COMMAND&amp;gt;&lt;/code&gt; replaced by your actual command:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;CRON COMMAND&amp;gt; | mail -E -s &amp;#34;Subject&amp;#34; -r &amp;#34;CUSTOM FORM NAME &amp;lt;user@mail.com&amp;gt;&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This command will execute &lt;code&gt;&amp;lt;CRON COMMAND&amp;gt;&lt;/code&gt; and send the output as an email with the specified subject and sender address.&lt;/p&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s a breakdown of the command:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;code&gt;&amp;lt;CRON COMMAND&amp;gt;&lt;/code&gt;: Replace this with the actual command you want to run on a schedule using cron.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Silence Result Of Command</title>
      <link>https://dimasmaulana.pages.dev/posts/development/silence-result-of-command/</link>
      <pubDate>Tue, 15 Dec 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/silence-result-of-command/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;When you want to silence the result of a command in a Unix-like shell environment, you can use the &lt;code&gt;&amp;gt; /dev/null&lt;/code&gt; or &lt;code&gt;2&amp;gt; /dev/null&lt;/code&gt; redirection techniques, depending on whether you want to suppress standard output (stdout) or standard error (stderr) respectively. Here&amp;rsquo;s how you can use them:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;To silence standard output (stdout) of a command, use &lt;code&gt;&amp;gt; /dev/null&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;command &amp;gt; /dev/null&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This will discard the normal output of the command.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;To silence standard error (stderr) of a command, use &lt;code&gt;2&amp;gt; /dev/null&lt;/code&gt;:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fail2ban Block SSH Public Key Connection Attempt</title>
      <link>https://dimasmaulana.pages.dev/posts/development/fail2ban-block-ssh-public-key-connection-attempt/</link>
      <pubDate>Fri, 27 Nov 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/fail2ban-block-ssh-public-key-connection-attempt/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;You want to configure for Fail2ban to block SSH public key connection attempts using a custom filter and jail configuration. This setup is designed to identify and block IP addresses that attempt to make SSH key-based connections and fail authentication multiple times. Let&amp;rsquo;s break down your configuration step by step.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;jail-configuration-jaillocal&#34;&gt;&lt;span&gt;Jail Configuration (jail.local)&lt;/span&gt;&#xA;  &lt;a href=&#34;#jail-configuration-jaillocal&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;In your &lt;code&gt;jail.local&lt;/code&gt; configuration, you have defined a custom jail section for SSH key-based authentication:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Configure Fail2Ban to Send Email Notifications when Banning IP Addresses</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-configure-fail2ban-to-send-email-notifications-when-banning-ip-addresses/</link>
      <pubDate>Fri, 27 Nov 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-configure-fail2ban-to-send-email-notifications-when-banning-ip-addresses/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Fail2Ban is a powerful tool for protecting your server against brute-force attacks by banning IP addresses that repeatedly fail authentication attempts. While it can efficiently ban these IPs, you might also want to receive email notifications when such bans occur. This guide will walk you through configuring Fail2Ban to send email notifications when it bans an IP address.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;prerequisites&#34;&gt;&lt;span&gt;Prerequisites&lt;/span&gt;&#xA;  &lt;a href=&#34;#prerequisites&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Before you begin, ensure you have the following:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How To Use Fail2Ban To Block Laravel Auth Attempts And Other Auth/Login URL Access</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-use-fail2ban-to-block-laravel-auth-attempts-and-other-authlogin-url-access/</link>
      <pubDate>Fri, 27 Nov 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-use-fail2ban-to-block-laravel-auth-attempts-and-other-authlogin-url-access/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Fail2Ban is a valuable security tool that can help protect your server from unauthorized access attempts, including those targeting Laravel&amp;rsquo;s authentication system. In this article, we&amp;rsquo;ll guide you through setting up Fail2Ban to block authentication attempts and access to the &lt;code&gt;/auth/login&lt;/code&gt; URL.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;prerequisites&#34;&gt;&lt;span&gt;Prerequisites&lt;/span&gt;&#xA;  &lt;a href=&#34;#prerequisites&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Before we get started, make sure you have the following prerequisites in place:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Troubleshooting Vim Issues on Bash in Windows 10</title>
      <link>https://dimasmaulana.pages.dev/posts/development/troubleshooting-vim-issues-on-bash-in-windows-10/</link>
      <pubDate>Fri, 27 Nov 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/troubleshooting-vim-issues-on-bash-in-windows-10/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you&amp;rsquo;re encountering issues while running Vim with Vundle on Bash in Windows 10, such as the &amp;ldquo;Unknown Command ^M&amp;rdquo; error, NERDTree problems, mouse dragging not working, or font issues, this guide will help you troubleshoot and resolve these issues.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;1-fixing-the&#34;&gt;&lt;span&gt;1. &lt;strong&gt;Fixing the &amp;ldquo;Unknown Command ^M&amp;rdquo; Error&lt;/strong&gt;&lt;/span&gt;&#xA;  &lt;a href=&#34;#1-fixing-the&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;The &amp;ldquo;Unknown Command ^M&amp;rdquo; error is often caused by inconsistent line endings in your Vim files. To resolve this issue, you can configure Git to use consistent line endings.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bash Configurations Demystified</title>
      <link>https://dimasmaulana.pages.dev/posts/development/bash-configurations-demystified/</link>
      <pubDate>Fri, 20 Nov 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/bash-configurations-demystified/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Bash configurations on Linux and macOS can be confusing for many people, myself included. I&amp;rsquo;ve written this short guide to remind you and me both of a reasonable set of conventions you could follow.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;login-shell-vs-non-login-shell&#34;&gt;&lt;span&gt;Login Shell vs. Non-login Shell&lt;/span&gt;&#xA;  &lt;a href=&#34;#login-shell-vs-non-login-shell&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;When logging in via the console (e.g., an SSH session, the scary console login after you&amp;rsquo;ve messed up your GUI settings, etc.), you are starting a login shell. If you open a terminal application (e.g., xterm, etc.) from your desktop, then you are starting a non-login shell (except on macOS, discussed later).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Using The Mouse For Vim In An Xterm</title>
      <link>https://dimasmaulana.pages.dev/posts/development/using-the-mouse-for-vim-in-an-xterm/</link>
      <pubDate>Thu, 19 Nov 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/using-the-mouse-for-vim-in-an-xterm/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you prefer working in an xterm rather than the GUI version of Vim, you might encounter some inconveniences. One common issue is copying text from Vim within the xterm, which includes line numbers. The GUI version of Vim handles this better, as it selects only the text, leaving out the line numbers. However, you can achieve similar functionality in the xterm version of Vim by adding the following line to your &lt;code&gt;vimrc&lt;/code&gt;:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bower Default Bower Components Suddenly Changed To Src Vendor</title>
      <link>https://dimasmaulana.pages.dev/posts/development/bower-default-bowercomponents-suddenly-changed-to-src-vendor/</link>
      <pubDate>Sat, 05 Sep 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/bower-default-bowercomponents-suddenly-changed-to-src-vendor/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you&amp;rsquo;ve suddenly noticed that the default Bower directory &lt;code&gt;bower_components&lt;/code&gt; has changed to &lt;code&gt;src/vendor&lt;/code&gt; in your project, there could be a few reasons for this unexpected behavior. One common reason is the presence of a &lt;code&gt;.bowerrc&lt;/code&gt; file in your project&amp;rsquo;s parent directory, which might be overriding the default configuration. Here&amp;rsquo;s how you can resolve this issue:&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;step-1-check-for-bowerrc-files&#34;&gt;&lt;span&gt;Step 1: Check for &lt;code&gt;.bowerrc&lt;/code&gt; Files&lt;/span&gt;&#xA;  &lt;a href=&#34;#step-1-check-for-bowerrc-files&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;First, navigate to your project&amp;rsquo;s root directory and its parent directories to check for any &lt;code&gt;.bowerrc&lt;/code&gt; files. These files can contain Bower configuration settings that override the defaults. You may have one in the project root or in any parent directories.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Navigate Scroll Up And Down On Screen SSH</title>
      <link>https://dimasmaulana.pages.dev/posts/development/navigate-scroll-up-and-down-on-screen-ssh/</link>
      <pubDate>Sat, 06 Jun 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/navigate-scroll-up-and-down-on-screen-ssh/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;When working in an SSH session or terminal, you can navigate and scroll up and down on the screen using a combination of keyboard shortcuts and Vim-like commands. Here&amp;rsquo;s how to do it:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Ctrl + A, ESC:&lt;/strong&gt; This combination is used to enter the &amp;ldquo;copy mode&amp;rdquo; in the terminal. Pressing &lt;code&gt;Ctrl + A&lt;/code&gt; followed by &lt;code&gt;ESC&lt;/code&gt; allows you to navigate and scroll using Vim-like keybindings.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Vim-like Commands:&lt;/strong&gt; Once you are in copy mode, you can use the following Vim-like commands to navigate and scroll:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Troubleshooting a Hanging Cron Job in Ubuntu&#39;s APT Script</title>
      <link>https://dimasmaulana.pages.dev/posts/development/troubleshooting-a-hanging-cron-job-in-ubuntu-s-apt-script/</link>
      <pubDate>Sun, 03 May 2015 07:09:52 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/troubleshooting-a-hanging-cron-job-in-ubuntu-s-apt-script/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <category domain="https://dimasmaulana.pages.dev/categories/troubleshooting/">Troubleshooting</category>
      <description>&lt;p&gt;Cron jobs are an essential part of automating tasks on a Unix-like operating system. However, occasionally, you may encounter issues where a cron job hangs or fails to run as expected. In this blog post, we&amp;rsquo;ll address a specific scenario where a cron job hangs in the APT script on Ubuntu and provide a solution to resolve it.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;step-1-locate-the-apt-cron-job-script&#34;&gt;&lt;span&gt;Step 1: Locate the APT Cron Job Script&lt;/span&gt;&#xA;  &lt;a href=&#34;#step-1-locate-the-apt-cron-job-script&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;The APT script is responsible for automatically updating the package lists and installing updates on Ubuntu systems. To begin troubleshooting, open a terminal and run the following command to locate the script:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Auto Check Connection And Restart Network Manager If Down</title>
      <link>https://dimasmaulana.pages.dev/posts/development/auto-check-connection-and-restart-network-manager-if-down/</link>
      <pubDate>Sun, 03 May 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/auto-check-connection-and-restart-network-manager-if-down/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;h2 class=&#34;heading-element&#34; id=&#34;introduction&#34;&gt;&lt;span&gt;Introduction&lt;/span&gt;&#xA;  &lt;a href=&#34;#introduction&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;In this article, we will create a simple script and a cron job to automatically check the connection status of your wireless network (Wi-Fi) and restart the Network Manager service if the connection is down. This can be particularly useful to ensure that your network remains stable and connected, especially in situations where the Wi-Fi connection tends to drop or become unreliable.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How To Resolve Dynclient Timeout In DDClient And Email Failure Notifications</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-resolve-dynclient-timeout-in-ddclient-and-email-failure-notifications/</link>
      <pubDate>Sun, 03 May 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-resolve-dynclient-timeout-in-ddclient-and-email-failure-notifications/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you&amp;rsquo;re encountering Dynclient timeout issues with DDClient and want to set up email notifications for failures, you can follow these steps to resolve the problem:&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;step-1-open-ddclient-configuration-file&#34;&gt;&lt;span&gt;Step 1: Open DDClient Configuration File&lt;/span&gt;&#xA;  &lt;a href=&#34;#step-1-open-ddclient-configuration-file&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Use a text editor to open the DDClient configuration file. You can use the &lt;code&gt;vim&lt;/code&gt; editor as you mentioned in your command:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Routing Forward IP</title>
      <link>https://dimasmaulana.pages.dev/posts/development/routing-forward-ip/</link>
      <pubDate>Sun, 03 May 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/routing-forward-ip/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;It looks like you&amp;rsquo;re configuring some iptables rules for routing and forwarding traffic between two networks with specific IP address ranges. These rules are designed to allow traffic to flow between the &amp;ldquo;wi.red.net.work&amp;rdquo; network and the &amp;ldquo;wire.less.net.work&amp;rdquo; network through two interfaces, &amp;ldquo;eth0&amp;rdquo; and &amp;ldquo;wlan0.&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s a breakdown of the rules you&amp;rsquo;ve provided:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;The first rule:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;iptables -I FORWARD -i eth0 -o wlan0 -s wi.red.net.work/24 -d wire.less.net.work/24 -j ACCEPT&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This rule allows traffic coming from the &amp;ldquo;wi.red.net.work&amp;rdquo; network (source) going to the &amp;ldquo;wire.less.net.work&amp;rdquo; network (destination) to be forwarded from the &amp;ldquo;eth0&amp;rdquo; interface to the &amp;ldquo;wlan0&amp;rdquo; interface. The &lt;code&gt;-j ACCEPT&lt;/code&gt; part at the end indicates that this traffic should be accepted and forwarded.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Map a Network Drive onto Ubuntu 14.04 Permanently</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-map-a-network-drive-onto-ubuntu-1404-permanently/</link>
      <pubDate>Sat, 02 May 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-map-a-network-drive-onto-ubuntu-1404-permanently/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;&lt;em&gt;Published on August 11, 2014&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#39;images/How%20To%20Map%20A%20Network%20Drive%20Onto%20Ubuntu%2014-04%20Permanently-2015-05-02.png&#39; alt=&#34;Network Drive Mapping&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;In this simple tutorial, we will guide you on how to map a network drive, using a Windows share as an example, onto Ubuntu 14.04 LTS with read and write permissions permanently. We will be performing all actions in a terminal window. If you&amp;rsquo;re not familiar with Linux commands, don&amp;rsquo;t worry; just paste the provided commands into the terminal and hit enter to execute them. We will also include screenshots to make the process clearer.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Send Postfix Email with a Custom Form Name using the -r Option</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-send-postfix-email-with-a-custom-form-name-using-the-r-option/</link>
      <pubDate>Sat, 02 May 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-send-postfix-email-with-a-custom-form-name-using-the-r-option/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;When it comes to sending email notifications from a server, it&amp;rsquo;s important to convey information in a clear and recognizable manner. In this article, we&amp;rsquo;ll explore how to send a Postfix email with a custom form name using the &lt;code&gt;-r&lt;/code&gt; option. This will allow us to define a sender name that helps recipients easily identify the source of the email. We&amp;rsquo;ll go through the process step by step, explaining each component and its significance.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sharing a Folder with Samba on Unity</title>
      <link>https://dimasmaulana.pages.dev/posts/development/sharing-a-folder-with-samba-on-unity/</link>
      <pubDate>Sat, 02 May 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/sharing-a-folder-with-samba-on-unity/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Sharing folders using Samba on a Unity desktop environment is a convenient way to enable file sharing between Linux and Windows systems. Samba is an open-source software suite that provides seamless integration between Linux/Unix servers and Windows clients. Here&amp;rsquo;s a step-by-step guide on how to share a folder using Samba in the Unity desktop environment:&lt;/p&gt;&#xA;&lt;h3 class=&#34;heading-element&#34; id=&#34;step-1-install-samba&#34;&gt;&lt;span&gt;Step 1: Install Samba&lt;/span&gt;&#xA;  &lt;a href=&#34;#step-1-install-samba&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;p&gt;If you haven&amp;rsquo;t already, you need to install Samba on your system. Open a terminal and run the following command to install Samba:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Automatic Screen For SSH Login</title>
      <link>https://dimasmaulana.pages.dev/posts/development/automatic-screen-for-ssh-login/</link>
      <pubDate>Mon, 20 Apr 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/automatic-screen-for-ssh-login/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;You can enhance your SSH experience by automatically starting a screen or byobu session when you log in via SSH. This can help you maintain your sessions, especially when working on remote servers. Here&amp;rsquo;s how to set it up:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Edit Your &lt;code&gt;~/.bashrc&lt;/code&gt; File&lt;/strong&gt;:&#xA;Open your &lt;code&gt;~/.bashrc&lt;/code&gt; file for editing using your preferred text editor. You can use a command like &lt;code&gt;nano ~/.bashrc&lt;/code&gt; or &lt;code&gt;vim ~/.bashrc&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Add the following code snippet&lt;/strong&gt; to the end of your &lt;code&gt;~/.bashrc&lt;/code&gt; file:&lt;/p&gt;</description>
    </item>
    <item>
      <title>CHMOD Directories Or Files Only</title>
      <link>https://dimasmaulana.pages.dev/posts/development/chmod-directories-or-files-only/</link>
      <pubDate>Sat, 18 Apr 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/chmod-directories-or-files-only/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;When you need to modify file permissions recursively in a directory, you can use the &lt;code&gt;chmod&lt;/code&gt; command along with the &lt;code&gt;find&lt;/code&gt; command in Linux. Here are some commonly used commands to give different permissions to directories and files:&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;recursively-give-directories-read--execute-privileges&#34;&gt;&lt;span&gt;Recursively Give Directories Read &amp;amp; Execute Privileges&lt;/span&gt;&#xA;  &lt;a href=&#34;#recursively-give-directories-read--execute-privileges&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;To recursively give &lt;strong&gt;directories&lt;/strong&gt; read and execute privileges (755), you can use the following command:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How To Protect SSH With Fail2Ban On Ubuntu 12.04</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-protect-ssh-with-fail2ban-on-ubuntu-1204/</link>
      <pubDate>Sat, 18 Apr 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-protect-ssh-with-fail2ban-on-ubuntu-1204/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Servers are not immune to security threats, especially when it comes to SSH (Secure Shell) access. Brute force attacks can compromise your server&amp;rsquo;s security. Fail2Ban is a tool that automatically defends your virtual private server (VPS) by monitoring log files and responding to malicious behavior. In this guide, we&amp;rsquo;ll walk you through setting up Fail2Ban on Ubuntu 12.04 to protect your SSH access.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;step-1-install-fail2ban&#34;&gt;&lt;span&gt;Step 1: Install Fail2Ban&lt;/span&gt;&#xA;  &lt;a href=&#34;#step-1-install-fail2ban&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;First, you need to install Fail2Ban using &lt;code&gt;apt-get&lt;/code&gt;:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Kill User Session (Kill SSH Session Too)</title>
      <link>https://dimasmaulana.pages.dev/posts/development/kill-user-session-kill-ssh-session-too/</link>
      <pubDate>Sat, 18 Apr 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/kill-user-session-kill-ssh-session-too/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;It&amp;rsquo;s essential to exercise caution when terminating user sessions or SSH sessions, as abruptly killing processes can lead to data loss or corruption. However, if you need to forcefully terminate a user&amp;rsquo;s session and their associated SSH session, you can follow the steps you&amp;rsquo;ve outlined. Below is a more detailed explanation of the commands you&amp;rsquo;ve mentioned:&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;1. Terminate the User&amp;rsquo;s Sessions:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;To terminate a specific user&amp;rsquo;s sessions, you can use the &lt;code&gt;pkill&lt;/code&gt; command followed by the &lt;code&gt;-u&lt;/code&gt; option with the username.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Open SSH Server Connection Drops Out After Few or N Minutes of Inactivity</title>
      <link>https://dimasmaulana.pages.dev/posts/development/open-ssh-server-connection-drops-out-after-few-or-n-minutes-of-inactivity/</link>
      <pubDate>Sat, 18 Apr 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/open-ssh-server-connection-drops-out-after-few-or-n-minutes-of-inactivity/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;&lt;strong&gt;Author:&lt;/strong&gt; NIXCRAFT&lt;br&gt;&#xA;&lt;strong&gt;Published Date:&lt;/strong&gt; October 16, 2006&lt;br&gt;&#xA;&lt;strong&gt;Last Updated:&lt;/strong&gt; October 16, 2006&lt;br&gt;&#xA;&lt;strong&gt;Category:&lt;/strong&gt; HOWTO, TIPS, TROUBLESHOOTING&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;If you&amp;rsquo;ve experienced your OpenSSH server connection dropping out after a few minutes or a specific period of inactivity, don&amp;rsquo;t worry; it&amp;rsquo;s not a bug but rather a security feature. This behavior is usually due to a packet filter or NAT (Network Address Translation) device timing out your TCP connection as a security measure. This issue typically occurs when using SSH protocol version 2.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Secure Your OwnCloud Server</title>
      <link>https://dimasmaulana.pages.dev/posts/development/secure-your-owncloud-server/</link>
      <pubDate>Sat, 18 Apr 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/secure-your-owncloud-server/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Securing your OwnCloud server is crucial to protect your data from potential threats. In this guide, we will focus on two key aspects: automatically installing security updates and preventing brute-force password hacking attempts.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;automatically-install-security-updates&#34;&gt;&lt;span&gt;Automatically Install Security Updates&lt;/span&gt;&#xA;  &lt;a href=&#34;#automatically-install-security-updates&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;No software package is flawless, and security vulnerabilities may exist in your server&amp;rsquo;s software stack, from the Linux kernel to the SSL library. However, many of these vulnerabilities have patches available, and the primary reason they get exploited is due to delayed or neglected security updates.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Understanding File Permissions In Ubuntu</title>
      <link>https://dimasmaulana.pages.dev/posts/development/understanding-file-permissions-in-ubuntu/</link>
      <pubDate>Sat, 18 Apr 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/understanding-file-permissions-in-ubuntu/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;File permissions in Ubuntu and other Unix-like operating systems are crucial for controlling access to files and directories. They determine who can read, write, or execute a file or directory. You can use the &lt;code&gt;ls&lt;/code&gt; command with the &lt;code&gt;-l&lt;/code&gt; option to display detailed information about file permissions. Here&amp;rsquo;s what each part of the output means:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;ls -l /path/to/file&#xA;-rwxr-xr-x 1 10490 floppy 17242 May  8  2013 acroread&lt;/code&gt;&lt;/pre&gt;&lt;ol&gt;&#xA;&lt;li&gt;The first character &lt;code&gt;-&lt;/code&gt; represents the type of object it is. Here, it&amp;rsquo;s a regular file. Other possible values include:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;d&lt;/code&gt;: Directory&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;c&lt;/code&gt;: Character device&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;l&lt;/code&gt;: Symbolic link&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;p&lt;/code&gt;: Named pipe (FIFO)&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;s&lt;/code&gt;: Socket&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;b&lt;/code&gt;: Block device&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;D&lt;/code&gt;: Door (door file)&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;-&lt;/code&gt;: Regular file&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;The next three characters &lt;code&gt;rwx&lt;/code&gt; represent permissions for the &lt;strong&gt;owner&lt;/strong&gt; of the file. Specifically:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Setting Up DDClient With CloudFlare On Ubuntu 14.04 LTS</title>
      <link>https://dimasmaulana.pages.dev/posts/development/setting-up-ddclient-with-cloudflare-on-ubuntu-1404-lts/</link>
      <pubDate>Fri, 17 Apr 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/setting-up-ddclient-with-cloudflare-on-ubuntu-1404-lts/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In this guide, we will walk through the steps to install and configure DDClient on Ubuntu 14.04 LTS to work with CloudFlare. DDClient is a dynamic DNS update client that allows you to automatically update your DNS records on CloudFlare when your IP address changes. This can be useful if you are hosting a server on a dynamic IP address.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;prerequisites&#34;&gt;&lt;span&gt;Prerequisites&lt;/span&gt;&#xA;  &lt;a href=&#34;#prerequisites&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Before you begin, make sure you have the following:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Kill All SSH Tunneling Connection</title>
      <link>https://dimasmaulana.pages.dev/posts/development/kill-all-ssh-tunneling-connection/</link>
      <pubDate>Wed, 15 Apr 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/kill-all-ssh-tunneling-connection/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;It&amp;rsquo;s important to be cautious when using the &lt;code&gt;killall&lt;/code&gt; command, especially with &lt;code&gt;sudo&lt;/code&gt;, as it can terminate processes indiscriminately. Killing SSH connections might disrupt legitimate connections and potentially cause issues.&lt;/p&gt;&#xA;&lt;p&gt;If you need to terminate specific SSH tunneling connections, it&amp;rsquo;s better to identify the process IDs (PIDs) associated with those connections and then use &lt;code&gt;kill&lt;/code&gt; with the specific PIDs. Here&amp;rsquo;s a safer way to do it:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;List SSH Processes&lt;/strong&gt;: First, list the SSH processes to identify the ones you want to terminate. You can use the &lt;code&gt;ps&lt;/code&gt; command with &lt;code&gt;grep&lt;/code&gt; to filter SSH processes:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Managing Users in Ubuntu</title>
      <link>https://dimasmaulana.pages.dev/posts/development/managing-users-in-ubuntu/</link>
      <pubDate>Mon, 13 Apr 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/managing-users-in-ubuntu/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;User management is an essential part of maintaining a secure and organized Ubuntu system. This guide provides you with various commands and procedures for managing users on your Ubuntu system.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;listing-all-users&#34;&gt;&lt;span&gt;Listing All Users&lt;/span&gt;&#xA;  &lt;a href=&#34;#listing-all-users&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;To list all users on your system, you can use the following command:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Copying Files between Local and Remote Machines using SCP</title>
      <link>https://dimasmaulana.pages.dev/posts/development/copying-files-between-local-and-remote-machines-using-scp/</link>
      <pubDate>Tue, 07 Apr 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/copying-files-between-local-and-remote-machines-using-scp/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Secure Copy Protocol (SCP) is a command-line tool that allows you to securely copy files and directories between your local machine and a remote server over SSH. Here&amp;rsquo;s how you can use SCP to copy files in both directions: from your local machine to a remote server and from a remote server to your local machine.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;copying-from-local-to-remote-upload&#34;&gt;&lt;span&gt;Copying from Local to Remote (Upload)&lt;/span&gt;&#xA;  &lt;a href=&#34;#copying-from-local-to-remote-upload&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;To copy a file from your local machine to a remote server, use the following command:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Enable Ubuntu Boot Verbose Mode</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-enable-ubuntu-boot-verbose-mode/</link>
      <pubDate>Tue, 07 Apr 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-enable-ubuntu-boot-verbose-mode/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you want to see detailed boot messages instead of the splash screen when your Ubuntu system starts up, you can enable verbose mode by following these steps:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Open a terminal window.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Edit the Grub configuration file by running the following command:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;sudo nano /etc/default/grub&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This will open the Grub configuration file in the Nano text editor.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;In the Grub configuration file, look for the line that starts with &lt;code&gt;GRUB_CMDLINE_LINUX_DEFAULT&lt;/code&gt;. This line controls the display of the splash screen during boot.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Make Network Manager Start Automatically</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-make-network-manager-start-automatically/</link>
      <pubDate>Tue, 07 Apr 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-make-network-manager-start-automatically/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;Network Manager is an essential service in many Linux distributions that allows you to manage network connections easily. Sometimes, you might encounter an issue where Network Manager doesn&amp;rsquo;t start automatically at boot. One common reason for this issue is misconfigurations in the Network Manager service file.&lt;/p&gt;&#xA;&lt;p&gt;In this article, we&amp;rsquo;ll guide you on how to ensure Network Manager starts automatically at boot by removing the &lt;code&gt;static-network-up&lt;/code&gt; line from the Network Manager service configuration file.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Long Waiting up for 60 second network</title>
      <link>https://dimasmaulana.pages.dev/posts/development/long-waiting-up-for-60-second-network/</link>
      <pubDate>Tue, 07 Apr 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/long-waiting-up-for-60-second-network/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you want to modify the &lt;code&gt;/etc/init/failsafe.conf&lt;/code&gt; file to reduce the waiting time for the network to come up during system startup. Specifically, you want to remove the &lt;code&gt;sleep 40&lt;/code&gt; and &lt;code&gt;sleep 50&lt;/code&gt; commands from the network waiting section. Here&amp;rsquo;s how you can do it:&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Modifying system configuration files can have unintended consequences and may impact the stability and functionality of your system. Please make sure you have a backup of the original file and proceed with caution.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Troubleshooting Virtual Network Failure on Verbose Boot</title>
      <link>https://dimasmaulana.pages.dev/posts/development/troubleshooting-virtual-network-failure-on-verbose-boot/</link>
      <pubDate>Tue, 07 Apr 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/troubleshooting-virtual-network-failure-on-verbose-boot/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;If you&amp;rsquo;re encountering a virtual network failure during a verbose boot, where you see detailed messages about the networking initialization process, you may need to take specific actions to resolve the issue. One possible solution is to remove or rename the &lt;code&gt;/etc/init/networking.conf&lt;/code&gt; file. Here&amp;rsquo;s a step-by-step guide on how to do this:&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Before proceeding, make sure you have administrative privileges on your system.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;step-1-access-the-command-line&#34;&gt;&lt;span&gt;Step 1: Access the Command Line&lt;/span&gt;&#xA;  &lt;a href=&#34;#step-1-access-the-command-line&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;You&amp;rsquo;ll need to access the command line interface of your system to perform these actions. You can usually do this by opening a terminal or console window. If you&amp;rsquo;re already logged in, proceed to the next step.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Automate SSH Login Notification via Email</title>
      <link>https://dimasmaulana.pages.dev/posts/development/automate-ssh-login-notification-via-email/</link>
      <pubDate>Mon, 06 Apr 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/automate-ssh-login-notification-via-email/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;You can enhance your system&amp;rsquo;s security by setting up an automated email notification whenever someone logs in via SSH. This can help you stay informed about unauthorized access to your system. Below is a guide on how to implement this feature.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This guide assumes you have administrative access to your system and are familiar with basic Linux commands.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;1-edit-etcprofile&#34;&gt;&lt;span&gt;1. Edit &lt;code&gt;/etc/profile&lt;/code&gt;&lt;/span&gt;&#xA;  &lt;a href=&#34;#1-edit-etcprofile&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;First, open the &lt;code&gt;/etc/profile&lt;/code&gt; file in a text editor as the root user:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Connect to MySQL via SSH Tunnel in Linux</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-connect-to-mysql-via-ssh-tunnel-in-linux/</link>
      <pubDate>Mon, 06 Apr 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-connect-to-mysql-via-ssh-tunnel-in-linux/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;When you need to connect to a MySQL server from outside your local network, using an SSH tunnel can provide a secure and convenient method for access. In this guide, we will walk you through the steps to connect to a MySQL server via SSH tunnel on a Linux system. This method can be particularly useful if you are trying to access a remote MySQL server hosted by a service provider like Quintagroup.&lt;/p&gt;</description>
    </item>
    <item>
      <title>SSH Tunneling Made Easy</title>
      <link>https://dimasmaulana.pages.dev/posts/development/ssh-tunneling-made-easy/</link>
      <pubDate>Mon, 06 Apr 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/ssh-tunneling-made-easy/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;&lt;strong&gt;By Frank Wiles&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Setting up a simple SSH tunnel can be incredibly useful, yet finding a straightforward guide can be surprisingly challenging. In this Quick-Tip, I&amp;rsquo;ll walk you through the process using OpenSSH on a Linux/Unix system. With SSH tunneling, you can securely route all your local traffic through a remote server where you have an account.&lt;/p&gt;&#xA;&lt;p&gt;One common use case for SSH tunneling is redirecting outbound email traffic to a personal server. This can help you avoid the hassle of changing SMTP servers, dealing with SMTP-AUTH, and other complications when you&amp;rsquo;re behind firewalls. Hotel firewalls, wireless access points, and various NATing devices you encounter while traveling don&amp;rsquo;t always cooperate. Here&amp;rsquo;s how to do it:&lt;/p&gt;</description>
    </item>
    <item>
      <title>SSH Two Factor Authentication with Google Authenticator</title>
      <link>https://dimasmaulana.pages.dev/posts/development/ssh-two-factor-authentication-with-google-authenticator/</link>
      <pubDate>Mon, 06 Apr 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/ssh-two-factor-authentication-with-google-authenticator/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In the past, setting up true two-factor authentication (2FA) for SSH access has been a bit of a challenge. However, with the release of OpenSSH 6.2, full and proper support for 2FA is now available. This article explains how to set up SSH 2FA using Google Authenticator on Ubuntu, which greatly enhances the security of your SSH access.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;quick-start&#34;&gt;&lt;span&gt;Quick Start&lt;/span&gt;&#xA;  &lt;a href=&#34;#quick-start&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;To get started, follow these steps:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Creating A Bash Alias For Php Artisan</title>
      <link>https://dimasmaulana.pages.dev/posts/development/creating-a-bash-alias-for-php-artisan/</link>
      <pubDate>Sat, 28 Mar 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/creating-a-bash-alias-for-php-artisan/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In Bash, you can create aliases to simplify and automate common commands. The alias you want to create is for the &lt;code&gt;php artisan&lt;/code&gt; command, which is often used in Laravel projects. Here are the steps to create a Bash alias for &lt;code&gt;php artisan&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Open Your Bash Configuration File:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;To create a system-wide alias that applies to all users, you should modify the &lt;code&gt;/etc/bashrc&lt;/code&gt; or &lt;code&gt;/etc/bash.bashrc&lt;/code&gt; file. You&amp;rsquo;ll typically need root or superuser privileges to edit these files. Use a text editor to open the file, for example:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Setting up Free HTTPS Connection with Cloudflare and Google App Engine using AJAX</title>
      <link>https://dimasmaulana.pages.dev/posts/development/setting-up-free-https-connection-with-cloudflare-and-google-app-engine-using-ajax/</link>
      <pubDate>Sat, 28 Mar 2015 06:00:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/setting-up-free-https-connection-with-cloudflare-and-google-app-engine-using-ajax/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;In this article, we will walk you through the steps to establish a free HTTPS connection between Cloudflare and Google App Engine (GAE) while making use of AJAX requests. We&amp;rsquo;ll also address the common issue of a redirect loop that can occur when enabling Cloudflare&amp;rsquo;s Full SSL.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;prerequisites&#34;&gt;&lt;span&gt;Prerequisites&lt;/span&gt;&#xA;  &lt;a href=&#34;#prerequisites&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Before you begin, make sure you have the following:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fixing Seed Class not found Exception in Laravel 5</title>
      <link>https://dimasmaulana.pages.dev/posts/development/fixing-seed-class-not-found-exception-in-laravel-5/</link>
      <pubDate>Wed, 25 Mar 2015 21:54:09 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/fixing-seed-class-not-found-exception-in-laravel-5/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <category domain="https://dimasmaulana.pages.dev/categories/troubleshooting/">Troubleshooting</category>
      <description>&lt;p&gt;When working with Laravel 5 and attempting to run a database seed, you may encounter a &amp;ldquo;Seed Class not found&amp;rdquo; exception. This error typically occurs when Laravel is unable to locate the specified seed class. However, there is a straightforward solution to this problem. In this blog post, we will explore the steps to resolve the &amp;ldquo;Seed Class not found&amp;rdquo; exception in Laravel 5.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;step-1-run-composer-dump-autoload&#34;&gt;&lt;span&gt;Step 1: Run Composer Dump-Autoload&lt;/span&gt;&#xA;  &lt;a href=&#34;#step-1-run-composer-dump-autoload&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;The first step is to run the following command in your project&amp;rsquo;s root directory:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Build an Android Jar Library</title>
      <link>https://dimasmaulana.pages.dev/posts/development/how-to-build-an-android-jar-library/</link>
      <pubDate>Thu, 29 Nov 2012 08:39:39 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/how-to-build-an-android-jar-library/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;To build an Android Jar library, you can follow these steps:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Create a &lt;code&gt;build.xml&lt;/code&gt; file with the following content:&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;pre&gt;&lt;code&gt;&amp;lt;project name=&amp;#34;AndroidUtils&amp;#34; default=&amp;#34;dist&amp;#34; basedir=&amp;#34;.&amp;#34;&amp;gt;&#xA;    &amp;lt;description&amp;gt;Android Sample Library&amp;lt;/description&amp;gt;&#xA;    &#xA;    &amp;lt;!-- Setting global properties for this build --&amp;gt;&#xA;    &amp;lt;property name=&amp;#34;src&amp;#34; location=&amp;#34;src&amp;#34; /&amp;gt;&#xA;    &amp;lt;property name=&amp;#34;bin&amp;#34; location=&amp;#34;bin&amp;#34; /&amp;gt;&#xA;&#xA;    &amp;lt;target name=&amp;#34;dist&amp;#34;&amp;gt;&#xA;        &amp;lt;jar destfile=&amp;#34;android-utilities-v1.jar&amp;#34; basedir=&amp;#34;bin/classes&amp;#34;&amp;gt;&#xA;            &amp;lt;!-- Use ** to include the directory recursively --&amp;gt;&#xA;            &amp;lt;include name=&amp;#34;android/**&amp;#34; /&amp;gt;&#xA;            &amp;lt;exclude name=&amp;#34;android/utilities/v1/R.class&amp;#34; /&amp;gt;&#xA;            &amp;lt;exclude name=&amp;#34;android/utilities/v1/R$*.class&amp;#34; /&amp;gt;&#xA;        &amp;lt;/jar&amp;gt;&#xA;    &amp;lt;/target&amp;gt;&#xA;&amp;lt;/project&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;ol start=&#34;2&#34;&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Save the &lt;code&gt;build.xml&lt;/code&gt; file in the root directory of your Android library project.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Merging Git Without History and Resolving Conflicts Using Theirs</title>
      <link>https://dimasmaulana.pages.dev/posts/development/merging-git-without-history-and-resolving-conflicts-using-theirs/</link>
      <pubDate>Thu, 29 Nov 2012 08:38:39 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/merging-git-without-history-and-resolving-conflicts-using-theirs/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;When merging Git branches, it is sometimes desirable to combine the changes from one branch into another without preserving the commit history of the merged branch. Additionally, conflicts may arise during the merge process that need to be resolved using the &amp;ldquo;theirs&amp;rdquo; strategy, which means accepting the changes from the branch being merged in.&lt;/p&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s a step-by-step guide on how to perform such a merge:&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;step-1-perform-the-merge-with-squash&#34;&gt;&lt;span&gt;Step 1: Perform the Merge with Squash&lt;/span&gt;&#xA;  &lt;a href=&#34;#step-1-perform-the-merge-with-squash&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;To merge the changes from one branch into another without preserving the commit history, you can use the &lt;code&gt;--squash&lt;/code&gt; option with the &lt;code&gt;git merge&lt;/code&gt; command. The &lt;code&gt;--squash&lt;/code&gt; option condenses all the commits from the merged branch into a single commit in the target branch.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Accessing Localhost on Android Emulator</title>
      <link>https://dimasmaulana.pages.dev/posts/development/accessing-localhost-on-android-emulator/</link>
      <pubDate>Thu, 29 Nov 2012 08:38:00 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/accessing-localhost-on-android-emulator/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;When working with the Android emulator, you might need to access the localhost running on your host computer from within the emulator. The default IP address to reach the host computer from the emulator is &lt;code&gt;10.0.2.2&lt;/code&gt;. In this article, we&amp;rsquo;ll explore how to access localhost on the Android emulator using this IP address.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading-element&#34; id=&#34;prerequisites&#34;&gt;&lt;span&gt;Prerequisites&lt;/span&gt;&#xA;  &lt;a href=&#34;#prerequisites&#34; class=&#34;heading-mark&#34;&gt;&#xA;    &lt;svg class=&#34;octicon octicon-link&#34; viewBox=&#34;0 0 16 16&#34; version=&#34;1.1&#34; width=&#34;16&#34; height=&#34;16&#34; aria-hidden=&#34;true&#34;&gt;&lt;path d=&#34;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&#34;&gt;&lt;/path&gt;&lt;/svg&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;Before proceeding, ensure that you have the following:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Android Emulator Database and Persistence Data: CellObject SQLite &amp; XML Reader Plugin for Eclipse</title>
      <link>https://dimasmaulana.pages.dev/posts/development/android-emulator-database-and-persistence-data-cellobject-sqlite-xml-reader-plugin-for-eclipse/</link>
      <pubDate>Thu, 29 Nov 2012 08:36:49 +0700</pubDate>
      <guid>https://dimasmaulana.pages.dev/posts/development/android-emulator-database-and-persistence-data-cellobject-sqlite-xml-reader-plugin-for-eclipse/</guid>
      <category domain="https://dimasmaulana.pages.dev/categories/development/">Development</category>
      <description>&lt;p&gt;When developing Android applications, it is often necessary to work with databases and persistence data. Android provides a powerful database management system called SQLite, which allows developers to store and retrieve structured data efficiently. In addition, Android applications may also use XML files to store configuration data or other types of persistent information.&lt;/p&gt;&#xA;&lt;p&gt;To facilitate the development process and enable easy access to these databases and XML files, a plugin called CellObject SQLite &amp;amp; XML Reader is available for the Eclipse Integrated Development Environment (IDE). This plugin enhances the capabilities of Eclipse by providing features for reading and manipulating SQLite databases and XML files directly within the IDE.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
