<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>EsmaeelE - Free Software enthusiast</title>
    <subtitle>DevOps, Kubernetes, and Infrastructure Automation</subtitle>
    <link rel="self" type="application/atom+xml" href="https://esmaeele.github.io/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://esmaeele.github.io"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2026-07-08T00:00:00+00:00</updated>
    <id>https://esmaeele.github.io/atom.xml</id>
    <entry xml:lang="en">
        <title>Kubectl Commands</title>
        <published>2026-07-08T00:00:00+00:00</published>
        <updated>2026-07-08T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              EsmaeelE
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esmaeele.github.io/blog/kubectl-commands/"/>
        <id>https://esmaeele.github.io/blog/kubectl-commands/</id>
        
        <content type="html" xml:base="https://esmaeele.github.io/blog/kubectl-commands/">&lt;h1 id=&quot;kubectl-commands&quot;&gt;Kubectl Commands&lt;&#x2F;h1&gt;
&lt;p&gt;Quick reference for common kubectl commands.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;cluster-info&quot;&gt;Cluster Info&lt;&#x2F;h2&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;kubectl&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; cluster-info&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;kubectl&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; get nodes&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;kubectl&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; get namespaces&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h2 id=&quot;pods&quot;&gt;Pods&lt;&#x2F;h2&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;kubectl&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; get pods -o wide&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;kubectl&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; describe pod&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;pod-nam&lt;&#x2F;span&gt;&lt;span&gt;e&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;kubectl&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; logs&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;pod-nam&lt;&#x2F;span&gt;&lt;span&gt;e&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; -f&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;kubectl&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; exec -it&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;pod-nam&lt;&#x2F;span&gt;&lt;span&gt;e&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; -- &#x2F;bin&#x2F;sh&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;kubectl&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; delete pod&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;pod-nam&lt;&#x2F;span&gt;&lt;span&gt;e&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h2 id=&quot;deployments&quot;&gt;Deployments&lt;&#x2F;h2&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;kubectl&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; get deployments&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;kubectl&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; describe deployment&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;nam&lt;&#x2F;span&gt;&lt;span&gt;e&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;kubectl&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; scale deployment&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;nam&lt;&#x2F;span&gt;&lt;span&gt;e&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; --replicas=3&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;kubectl&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; rollout status deployment&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;nam&lt;&#x2F;span&gt;&lt;span&gt;e&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;kubectl&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; rollout history deployment&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;nam&lt;&#x2F;span&gt;&lt;span&gt;e&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;kubectl&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; rollout undo deployment&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;nam&lt;&#x2F;span&gt;&lt;span&gt;e&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h2 id=&quot;services&quot;&gt;Services&lt;&#x2F;h2&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;kubectl&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; get svc&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;kubectl&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; describe svc&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;nam&lt;&#x2F;span&gt;&lt;span&gt;e&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;kubectl&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; get endpoints&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;nam&lt;&#x2F;span&gt;&lt;span&gt;e&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h2 id=&quot;debugging&quot;&gt;Debugging&lt;&#x2F;h2&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;kubectl&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; get events --sort-by=&amp;#39;.lastTimestamp&amp;#39;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;kubectl&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; top pods&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;kubectl&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; top nodes&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;kubectl&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; port-forward&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;pod-nam&lt;&#x2F;span&gt;&lt;span&gt;e&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; 8080:80&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h2 id=&quot;useful-aliases&quot;&gt;Useful Aliases&lt;&#x2F;h2&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #CBA6F7;&quot;&gt;alias&lt;&#x2F;span&gt;&lt;span&gt; k&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span&gt;kubectl&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #CBA6F7;&quot;&gt;alias&lt;&#x2F;span&gt;&lt;span&gt; kgp&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;&amp;#39;kubectl get pods&amp;#39;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #CBA6F7;&quot;&gt;alias&lt;&#x2F;span&gt;&lt;span&gt; kgs&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;&amp;#39;kubectl get svc&amp;#39;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #CBA6F7;&quot;&gt;alias&lt;&#x2F;span&gt;&lt;span&gt; kgd&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;&amp;#39;kubectl get deployments&amp;#39;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #CBA6F7;&quot;&gt;alias&lt;&#x2F;span&gt;&lt;span&gt; kd&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;&amp;#39;kubectl describe&amp;#39;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #CBA6F7;&quot;&gt;alias&lt;&#x2F;span&gt;&lt;span&gt; kx&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;&amp;#39;kubectl exec -it&amp;#39;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Docker Commands</title>
        <published>2026-07-07T00:00:00+00:00</published>
        <updated>2026-07-07T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              EsmaeelE
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esmaeele.github.io/blog/docker-commands/"/>
        <id>https://esmaeele.github.io/blog/docker-commands/</id>
        
        <content type="html" xml:base="https://esmaeele.github.io/blog/docker-commands/">&lt;h1 id=&quot;docker-commands&quot;&gt;Docker Commands&lt;&#x2F;h1&gt;
&lt;p&gt;Essential Docker commands for daily use.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;images&quot;&gt;Images&lt;&#x2F;h2&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;docker&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; images&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;docker&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; pull&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;imag&lt;&#x2F;span&gt;&lt;span&gt;e&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;docker&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; build -t&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;nam&lt;&#x2F;span&gt;&lt;span&gt;e&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; .&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;docker&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; rmi&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;imag&lt;&#x2F;span&gt;&lt;span&gt;e&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;docker&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; image prune -a&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h2 id=&quot;containers&quot;&gt;Containers&lt;&#x2F;h2&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;docker&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; ps&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;docker&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; ps -a&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;docker&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; run -d --name&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;nam&lt;&#x2F;span&gt;&lt;span&gt;e&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; -p 8080:80&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;imag&lt;&#x2F;span&gt;&lt;span&gt;e&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;docker&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; stop&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;containe&lt;&#x2F;span&gt;&lt;span&gt;r&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;docker&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; start&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;containe&lt;&#x2F;span&gt;&lt;span&gt;r&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;docker&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; rm&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;containe&lt;&#x2F;span&gt;&lt;span&gt;r&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;docker&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; container prune&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h2 id=&quot;volumes&quot;&gt;Volumes&lt;&#x2F;h2&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;docker&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; volume ls&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;docker&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; volume create&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;nam&lt;&#x2F;span&gt;&lt;span&gt;e&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;docker&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; volume rm&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;nam&lt;&#x2F;span&gt;&lt;span&gt;e&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;docker&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; run -v&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;volum&lt;&#x2F;span&gt;&lt;span&gt;e&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;:&#x2F;data&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;imag&lt;&#x2F;span&gt;&lt;span&gt;e&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h2 id=&quot;networks&quot;&gt;Networks&lt;&#x2F;h2&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;docker&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; network ls&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;docker&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; network create&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;nam&lt;&#x2F;span&gt;&lt;span&gt;e&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;docker&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; network rm&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;nam&lt;&#x2F;span&gt;&lt;span&gt;e&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;docker&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; network inspect&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;nam&lt;&#x2F;span&gt;&lt;span&gt;e&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h2 id=&quot;logs-debug&quot;&gt;Logs &amp;amp; Debug&lt;&#x2F;h2&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;docker&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; logs&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;containe&lt;&#x2F;span&gt;&lt;span&gt;r&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; -f&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;docker&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; exec -it&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;containe&lt;&#x2F;span&gt;&lt;span&gt;r&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; &#x2F;bin&#x2F;sh&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;docker&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; stats&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;docker&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; inspect&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; &amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;containe&lt;&#x2F;span&gt;&lt;span&gt;r&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h2 id=&quot;cleanup&quot;&gt;Cleanup&lt;&#x2F;h2&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;docker&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; system df&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;docker&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; system prune -a&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;docker&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; volume prune&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Fixing Page Order When Cropping Two-Column Persian PDFs</title>
        <published>2026-06-20T00:00:00+00:00</published>
        <updated>2026-06-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              EsmaeelE
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esmaeele.github.io/blog/cropbook/"/>
        <id>https://esmaeele.github.io/blog/cropbook/</id>
        
        <content type="html" xml:base="https://esmaeele.github.io/blog/cropbook/">&lt;h1 id=&quot;fixing-page-order-when-cropping-two-column-persian-pdfs&quot;&gt;Fixing Page Order When Cropping Two-Column Persian PDFs&lt;&#x2F;h1&gt;
&lt;p&gt;Some e-book readers render two-column scanned PDFs poorly. Splitting each spread into individual
pages fixes readability — but for Persian (right-to-left) books, a naive split leaves the pages in
the wrong order.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;Credit to &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;jadi.net&#x2F;2012&#x2F;02&#x2F;linux-convert-pdf-to-one-column&#x2F;&quot;&gt;Jadi&#x27;s original post&lt;&#x2F;a&gt; for the
&lt;code&gt;convert&lt;&#x2F;code&gt;-based approach — this uses &lt;code&gt;mutool&lt;&#x2F;code&gt; instead, which handles the splitting in one step.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;1-split-each-two-column-page-into-two-single-pages&quot;&gt;1. Split Each Two-Column Page Into Two Single Pages&lt;&#x2F;h2&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;sudo&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; apt install mupdf-tools&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;mutool&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; poster -x&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FAB387;&quot;&gt; 2&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; haj_sayah.pdf output.pdf&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;strong&gt;What this does:&lt;&#x2F;strong&gt; Splits each two-column spread into two separate single-column pages.&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;2-fix-the-resulting-page-order&quot;&gt;2. Fix the Resulting Page Order&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;strong&gt;Why it breaks:&lt;&#x2F;strong&gt; Persian is written right-to-left, so pages in a Persian book are ordered in
reverse relative to a left-to-right book. &lt;code&gt;mutool poster&lt;&#x2F;code&gt; splits pages assuming left-to-right order,
which works fine for English books but scrambles the order for Persian ones.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;The fix:&lt;&#x2F;strong&gt; Swap each even page with the odd page next to it.&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;sudo&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; apt install pdftk&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;pdftk&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; output.pdf shuffle even odd output haj_sayyah_.pdf&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;3-restore-the-original-cover&quot;&gt;3. Restore the Original Cover&lt;&#x2F;h2&gt;
&lt;p&gt;The shuffle step also reorders the cover. Swap it back from the original file:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;pdftk&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; A=haj_sayyah_.pdf B=haj_sayah.pdf cat B1 A3-end output out1.pdf&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;result&quot;&gt;Result&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;code&gt;out1.pdf&lt;&#x2F;code&gt; is the final, correctly-ordered, single-column file — readable page by page on any e-reader.&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Step&lt;&#x2F;th&gt;&lt;th&gt;Command&lt;&#x2F;th&gt;&lt;th&gt;Purpose&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;1&lt;&#x2F;td&gt;&lt;td&gt;&lt;code&gt;mutool poster -x 2&lt;&#x2F;code&gt;&lt;&#x2F;td&gt;&lt;td&gt;Split columns&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;2&lt;&#x2F;td&gt;&lt;td&gt;&lt;code&gt;pdftk shuffle even odd&lt;&#x2F;code&gt;&lt;&#x2F;td&gt;&lt;td&gt;Fix RTL order&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;3&lt;&#x2F;td&gt;&lt;td&gt;&lt;code&gt;pdftk cat B1 A3-end&lt;&#x2F;code&gt;&lt;&#x2F;td&gt;&lt;td&gt;Restore cover&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>آرشیو LPIC</title>
        <published>2026-06-20T00:00:00+00:00</published>
        <updated>2026-06-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              EsmaeelE
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esmaeele.github.io/blog/hooshmandi/"/>
        <id>https://esmaeele.github.io/blog/hooshmandi/</id>
        
        <content type="html" xml:base="https://esmaeele.github.io/blog/hooshmandi/">&lt;h1 id=&quot;arshyw-dwrh-lpic1-z-pymn-hwshmndy-rd&quot;&gt;آرشیو دورهٔ LPIC1 از پیمان هوشمندی راد&lt;&#x2F;h1&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right; line-height: 2.2;&quot;&gt;
&lt;p&gt;یکی از آموزش‌های خوب برای شروع گنو&#x2F;لینوکس دوره‌ای است که پیمان هوشمندی برای موسسهٔ gotoclass آماده کرده است.&lt;&#x2F;p&gt;
&lt;p&gt;از آنجایی که این دوره از اینترنت حذف شده و درخواست‌های گه‌گاه برای داشتن آن، از دوست خوبم &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Amirh14123&quot;&gt;امیرحسین&lt;&#x2F;a&gt; خواستم که نسخه‌ای از آن را روی گوگل درایو قرار دهد تا دسترسی پذیر شود.&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left; margin-top: 1.5rem;&quot;&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;drive.google.com&#x2F;file&#x2F;d&#x2F;1gbmkv-keICYdnap5uYssB5RVno4EzGmb&#x2F;view&quot;&gt;Download Link&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Networking Lab with MikroTik RouterOS</title>
        <published>2026-06-20T00:00:00+00:00</published>
        <updated>2026-06-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              EsmaeelE
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esmaeele.github.io/blog/mikrotik/"/>
        <id>https://esmaeele.github.io/blog/mikrotik/</id>
        
        <content type="html" xml:base="https://esmaeele.github.io/blog/mikrotik/">&lt;h1 id=&quot;networking-lab-with-mikrotik-routeros&quot;&gt;Networking Lab with MikroTik RouterOS&lt;&#x2F;h1&gt;
&lt;p&gt;MikroTik RouterOS is a good, low-cost way to get hands-on with networking concepts without buying
physical hardware. This post covers running it as a VM, exposing its WebUI and SSH through a
reverse proxy, and connecting to it from the host machine.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;prerequisites&quot;&gt;Prerequisites&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Component&lt;&#x2F;th&gt;&lt;th&gt;Version&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Host OS&lt;&#x2F;td&gt;&lt;td&gt;Debian GNU&#x2F;Linux (stable)&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Hypervisor&lt;&#x2F;td&gt;&lt;td&gt;VirtualBox&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;RouterOS&lt;&#x2F;td&gt;&lt;td&gt;MikroTik x86 ISO&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;p&gt;Download the ISO from the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;mikrotik.com&#x2F;&quot;&gt;MikroTik website&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;1-create-the-vm&quot;&gt;1. Create the VM&lt;&#x2F;h2&gt;
&lt;p&gt;In VirtualBox, create a new VM with type &lt;strong&gt;Other&#x2F;Unknown (64-bit)&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Enable &lt;strong&gt;VT-x&lt;&#x2F;strong&gt; in system settings&lt;&#x2F;li&gt;
&lt;li&gt;Attach &lt;code&gt;mikrotik-7.10.1.iso&lt;&#x2F;code&gt; to the CD drive&lt;&#x2F;li&gt;
&lt;li&gt;Boot and press &lt;code&gt;i&lt;&#x2F;code&gt; then &lt;code&gt;Enter&lt;&#x2F;code&gt; to install&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;2-first-boot&quot;&gt;2. First Boot&lt;&#x2F;h2&gt;
&lt;p&gt;Log in to the console:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;user: admin&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;password: (empty)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Request an IP from the internal DHCP server:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;&#x2F;ip&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; dhcp-client add interface=ether1 disabled=no&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;&#x2F;ip&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; address print&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Expected output:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[admin@MikroTik] &amp;gt; ip&#x2F;address&#x2F;print&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;Flags: D - DYNAMIC&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;Columns: ADDRESS, NETWORK, INTERFACE&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;#   ADDRESS           NETWORK      INTERFACE&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;0 D 10.0.2.15&#x2F;24      10.0.2.0     ether1&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;3-port-forwarding&quot;&gt;3. Port Forwarding&lt;&#x2F;h2&gt;
&lt;p&gt;VirtualBox&#x27;s NAT network can forward ports from the host to the guest.&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Service&lt;&#x2F;th&gt;&lt;th&gt;Host IP&lt;&#x2F;th&gt;&lt;th&gt;Host Port&lt;&#x2F;th&gt;&lt;th&gt;Guest IP&lt;&#x2F;th&gt;&lt;th&gt;Guest Port&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;SSH&lt;&#x2F;td&gt;&lt;td&gt;127.0.0.1&lt;&#x2F;td&gt;&lt;td&gt;9090&lt;&#x2F;td&gt;&lt;td&gt;10.0.2.15&lt;&#x2F;td&gt;&lt;td&gt;22&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;WebUI&lt;&#x2F;td&gt;&lt;td&gt;127.0.0.1&lt;&#x2F;td&gt;&lt;td&gt;8080&lt;&#x2F;td&gt;&lt;td&gt;10.0.2.15&lt;&#x2F;td&gt;&lt;td&gt;80&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;p&gt;Traffic hitting &lt;code&gt;localhost:9090&lt;&#x2F;code&gt; and &lt;code&gt;localhost:8080&lt;&#x2F;code&gt; now redirects to the guest.&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;4-access-methods&quot;&gt;4. Access Methods&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;option-a-nginx-reverse-proxy&quot;&gt;Option A: Nginx Reverse Proxy&lt;&#x2F;h3&gt;
&lt;p&gt;Create &lt;code&gt;&#x2F;etc&#x2F;nginx&#x2F;conf.d&#x2F;local_proxy.conf&lt;&#x2F;code&gt;:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;server {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    listen 80;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    server_name webfig.ir;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    location &#x2F; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        proxy_pass http:&#x2F;&#x2F;127.0.0.1:8080&#x2F;;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;sudo&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; nginx -t&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;sudo&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; systemctl restart nginx&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Add to &lt;code&gt;&#x2F;etc&#x2F;hosts&lt;&#x2F;code&gt;:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;127.0.0.1       webfig.ir&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Now &lt;code&gt;http:&#x2F;&#x2F;webfig.ir&lt;&#x2F;code&gt; reaches the MikroTik WebUI.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;option-b-simpleproxy-no-nginx&quot;&gt;Option B: SimpleProxy (No Nginx)&lt;&#x2F;h3&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;sudo&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; apt install simpleproxy&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;sudo&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; simpleproxy -L webfig.ir:80 -R 127.0.0.1:8080&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h3 id=&quot;option-c-ssh&quot;&gt;Option C: SSH&lt;&#x2F;h3&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;ssh&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; -p&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FAB387;&quot;&gt; 9090&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; admin@127.0.0.1&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Add to &lt;code&gt;~&#x2F;.ssh&#x2F;config&lt;&#x2F;code&gt; for convenience:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;Host mikrotik&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    HostName 127.0.0.1&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    User admin&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    Port 9090&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    KexAlgorithms diffie-hellman-group-exchange-sha256&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Then just:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;ssh&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; mikrotik&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h3 id=&quot;option-d-winbox-via-wine&quot;&gt;Option D: Winbox via Wine&lt;&#x2F;h3&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;sudo&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; apt install wine&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;wine&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; winbox64.exe&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;references&quot;&gt;References&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;askubuntu.com&#x2F;a&#x2F;1001801&#x2F;678872&quot;&gt;AskUbuntu: Port forwarding&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;manpages.ubuntu.com&#x2F;manpages&#x2F;lunar&#x2F;en&#x2F;man1&#x2F;simpleproxy.1.html&quot;&gt;SimpleProxy manpage&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.baeldung.com&#x2F;linux&#x2F;mapping-hostnames-ports&quot;&gt;Baeldung: Mapping hostnames&#x2F;ports&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;superuser.com&#x2F;a&#x2F;1670774&#x2F;1787481&quot;&gt;SuperUser: MikroTik SSH&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Run Multiple Debian VMs with Vagrant and VirtualBox</title>
        <published>2026-06-20T00:00:00+00:00</published>
        <updated>2026-06-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              EsmaeelE
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esmaeele.github.io/blog/vagrant/"/>
        <id>https://esmaeele.github.io/blog/vagrant/</id>
        
        <content type="html" xml:base="https://esmaeele.github.io/blog/vagrant/">&lt;h1 id=&quot;run-multiple-debian-vms-with-vagrant-and-virtualbox&quot;&gt;Run Multiple Debian VMs with Vagrant and VirtualBox&lt;&#x2F;h1&gt;
&lt;p&gt;This guide sets up &lt;strong&gt;3 Debian virtual machines&lt;&#x2F;strong&gt; with working &lt;code&gt;vagrant ssh&lt;&#x2F;code&gt;, using &lt;strong&gt;VirtualBox&lt;&#x2F;strong&gt;
as the provider. The box choice and shell provisioner below are what makes SSH work reliably on
Debian — both trip people up if skipped.&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;1-vagrantfile&quot;&gt;1. Vagrantfile&lt;&#x2F;h2&gt;
&lt;p&gt;Save this as &lt;code&gt;Vagrantfile&lt;&#x2F;code&gt; in your project directory. It defines the 3 VMs in a loop rather than
repeating the same block three times:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;ruby&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F9E2AF;font-style: italic;&quot;&gt;Vagrant&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;configure&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;&amp;quot;2&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: #CBA6F7;&quot;&gt; do&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt; |&lt;&#x2F;span&gt;&lt;span&gt;config&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;|&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #9399B2;font-style: italic;&quot;&gt;  # Only this Debian box works reliably with Vagrant SSH + VirtualBox&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  config&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;vm&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;box&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; &amp;quot;generic&#x2F;debian12&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;  (&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FAB387;&quot;&gt;1&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;..&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FAB387;&quot;&gt;3&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;).&lt;&#x2F;span&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;each&lt;&#x2F;span&gt;&lt;span style=&quot;color: #CBA6F7;&quot;&gt; do&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt; |&lt;&#x2F;span&gt;&lt;span&gt;i&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;|&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    config&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;vm&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;define&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; &amp;quot;debian&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;#{&lt;&#x2F;span&gt;&lt;span&gt;i&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #CBA6F7;&quot;&gt; do&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt; |&lt;&#x2F;span&gt;&lt;span&gt;vm&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;|&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;      vm&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;vm&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;hostname&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; &amp;quot;debian&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;#{&lt;&#x2F;span&gt;&lt;span&gt;i&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;      vm&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;vm&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;network&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; &amp;quot;private_network&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F38BA8;&quot;&gt; ip&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; &amp;quot;192.168.56.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;#{&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FAB387;&quot;&gt;149&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; +&lt;&#x2F;span&gt;&lt;span&gt; i&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;}&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;      vm&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;vm&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;provider&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; &amp;quot;virtualbox&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #CBA6F7;&quot;&gt; do&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt; |&lt;&#x2F;span&gt;&lt;span&gt;vb&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;|&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        vb&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;memory&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FAB387;&quot;&gt; 1024&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        vb&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;cpus&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FAB387;&quot;&gt; 1&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #CBA6F7;&quot;&gt;      end&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #9399B2;font-style: italic;&quot;&gt;      # Required to be able to SSH into the guest machines&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;      vm&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;vm&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;provision&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; &amp;quot;shell&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F38BA8;&quot;&gt; inline&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; &amp;lt;&amp;lt;-SHELL&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;        chmod&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FAB387;&quot;&gt; 700&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; &#x2F;home&#x2F;vagrant&#x2F;.ssh&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;        chmod&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FAB387;&quot;&gt; 600&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; &#x2F;home&#x2F;vagrant&#x2F;.ssh&#x2F;authorized_keys&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;        chown&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; -R vagrant:vagrant &#x2F;home&#x2F;vagrant&#x2F;.ssh&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;      SHELL&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #CBA6F7;&quot;&gt;    end&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #CBA6F7;&quot;&gt;  end&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #CBA6F7;&quot;&gt;end&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;This produces &lt;code&gt;debian1&lt;&#x2F;code&gt;, &lt;code&gt;debian2&lt;&#x2F;code&gt;, &lt;code&gt;debian3&lt;&#x2F;code&gt; on &lt;code&gt;192.168.56.150&lt;&#x2F;code&gt;, &lt;code&gt;.151&lt;&#x2F;code&gt;, &lt;code&gt;.152&lt;&#x2F;code&gt; respectively —
same result as writing out three separate blocks, less to maintain.&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;2-usage&quot;&gt;2. Usage&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;strong&gt;Destroy any previous VMs and clear old state:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;vagrant&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; destroy -f&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;rm&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; -rf .vagrant&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;strong&gt;Start all 3 VMs:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;vagrant&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; up&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;strong&gt;SSH into each VM:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;vagrant&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; ssh debian1&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;vagrant&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; ssh debian2&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;vagrant&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; ssh debian3&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;strong&gt;Stop all VMs:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;vagrant&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; halt&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;strong&gt;Remove all VMs permanently:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;vagrant&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; destroy -f&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;3-notes&quot;&gt;3. Notes&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Use &lt;strong&gt;&lt;code&gt;generic&#x2F;debian12&lt;&#x2F;code&gt;&lt;&#x2F;strong&gt; — other boxes (like &lt;code&gt;debian&#x2F;bookworm64&lt;&#x2F;code&gt;) can leave &lt;code&gt;authorized_keys&lt;&#x2F;code&gt;
empty and break SSH.&lt;&#x2F;li&gt;
&lt;li&gt;The &lt;strong&gt;shell provisioner block&lt;&#x2F;strong&gt; is required on Debian to set correct SSH permissions; without it,
&lt;code&gt;vagrant ssh&lt;&#x2F;code&gt; fails.&lt;&#x2F;li&gt;
&lt;li&gt;Each VM uses a &lt;strong&gt;private network&lt;&#x2F;strong&gt; for predictable IPs.&lt;&#x2F;li&gt;
&lt;li&gt;Tested with &lt;strong&gt;VirtualBox 7.x&lt;&#x2F;strong&gt; and the Vagrant AppImage on Linux, macOS, and Windows.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>حتی یا حتا</title>
        <published>2026-06-20T00:00:00+00:00</published>
        <updated>2026-06-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              EsmaeelE
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esmaeele.github.io/notes/hata/"/>
        <id>https://esmaeele.github.io/notes/hata/</id>
        
        <content type="html" xml:base="https://esmaeele.github.io/notes/hata/">&lt;h1 id=&quot;hty-y-ht&quot;&gt;(حتی) یا (حتا)؟&lt;&#x2F;h1&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right; line-height: 2.2;&quot;&gt;
&lt;h2 id=&quot;bznshr-nwshthy-z-fdl-llh-nkhwl-l-azd&quot;&gt;بازنشر نوشته‌ای از فضل الله نکولعل آزاد&lt;&#x2F;h2&gt;
&lt;p&gt;در اواسط دهه‌ی پنجاه در مجله‌ی (سپید و سیاه) خواندم؛ تعدادی از ادبا پذیرفته‌اند که واژگانی چون: «موسی، عیسی، کبری، حتی» را به ضرورت لفظ می‌توان به صورت «موسا، عیسا، کبرا، حتا» نوشت!&lt;&#x2F;p&gt;
&lt;p&gt;پس از آن چند تن از ادبای (مجله‌ی سخن) نیز به چنین موضوعی اشاره کردند که موضوع مطرح شده‌ی آنها هم به باد فراموشی سپرده شد و بی‌نتیجه ماند!&lt;&#x2F;p&gt;
&lt;p&gt;یک دهه‌ی پیش نیز ادبایی که با ماهنامه‌ی ادبی «آدینه» همکاری می‌کردند؛ چنین پیشنهادی را پذیرفتند و با فرهنگستان ادب فارسی در میان گذاشتند اما به علت توقیف ماهنامه‌ی «آدینه» در سال ۱۳۷۷ پیگیری آن موضوع ادامه نیافت و همچنان پروژه‌ای نیمه تمام باقی ماند!&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;دکتر محمد رضا باطنی منتقد نکته سنج در کتاب «زبان و تفکر» می‌گوید:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;یکی از مشکلات زبان فارسی، بیشتر ناشی از وجود وام گرفتن از واژگان عربی است! اصلاح خط کار آسانی نیست، زیرا گذشته از اشکالات فنی، موضوعی است که در باره‌ی آن سوءتفاهم‌های زیادی وجود دارد و با احساسات شخصی و ملی افراد برخورد پیدا می‌کند. مسئله‌ی اصلاح خط، امری است زبان‌شناسی، ولی به‌رغم همه‌ی این گرفتاری‌ها و مخالفت‌ها خط فارسی باید تغییر کند یا اصلاح شود. خط امروز ما بسیار نارساست و برای منظورهای علمی و دقیق قابل اطمینان نیست.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;نوشتن «الف» به‌جای «ی» در واژگانی چون (حتّی، موسی، عیسی، تقاضی، تمنّی، تقوی، نجوی، فتوی، تماشی، مصلّی، مبتلی، شوری، مبری، هوی، مسمّی) که امروزه به‌صورت (حتّا، موسا، عیسا، تقاضا، تمنّا، تقوا، نجوا، فتوا، تماشا، مصلّا، مبتلا، شورا، مبرّا، هوا، مسمّا) می‌نویسند؛ سابقه‌ی طولانی دارد.&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;محمد تقی بهار با استناد به موارد فوق در کتاب «بهار و ادب فارسی جلد دوم، ۱۳۷۲ خورشیدی» می‌گوید:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;با الف نوشتن کلماتی که در عربی به «یاء مقصوره» نوشته می‌شود؛ کاملاً منطقی است و در تتبعاتی که شده، بارها دیده‌ام که متقدمان در قرون سابق این کلمات را با الف نوشته‌اند.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;&lt;strong&gt;جان کلام&lt;&#x2F;strong&gt; این‌که؛ ابداً بر تغییر طرز نوشتار (حتّیٰ) به (حتّا) اشکالی روا نیست.&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;h2 id=&quot;pywndh&quot;&gt;پیوند‌ها&lt;&#x2F;h2&gt;
&lt;p&gt;فضل الله نکو لعل آزاد&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;www.lalazad.blogfa.com&quot;&gt;lalazad.blogfa.com&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;www.fazlollahnekoolalazad.blogfa.com&quot;&gt;fazlollahnekoolalazad.blogfa.com&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>ادبیات</title>
        <published>2026-06-20T00:00:00+00:00</published>
        <updated>2026-06-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              EsmaeelE
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esmaeele.github.io/notes/literature/"/>
        <id>https://esmaeele.github.io/notes/literature/</id>
        
        <content type="html" xml:base="https://esmaeele.github.io/notes/literature/">&lt;h1 id=&quot;drbrh-khtb-w-dbyt&quot;&gt;دربارهٔ کتاب و ادبیات&lt;&#x2F;h1&gt;
&lt;p&gt;ماریو بارگاس یوسا (Mario Vargas Llosa) نویسندهٔ اهل پرو و برندهٔ نوبل ادبیات سال ۲۰۱۰، دلایل زیر را برای مطالعهٔ کتاب و داستان بیان کرده است.&lt;&#x2F;p&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right; line-height: 2.2;&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;کتاب خواندن فرآیندی جادویی است که به من فرصت می‌دهد چند بار زندگی کنم.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;زندگی فقط همین دور و بر نیست، محدود نیست و زندگی واقعی توسط نویسندگان بزرگ ترسیم شده است.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;کتاب خوب بلند پروازی انسان را تحریک می‌کند و یادگیری خواندن مهم‌ترین اتفاق زندگی است.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;زندگی با کتاب غنی می‌شود و مطالعه سبب احساس نزدیکی به سایر فرهنگ‌ها است.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;ادبیات بهترین سلاح در برابر تعصب است. کتاب خوب بهترین دفاع در برابر عقاید تحریف شدهٔ مردم، زبان‌ها، باور‌ها و رسوم است.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;همه انسانیم و توسط موانع و مشکلات مختلف به چالش کشیده می‌شویم. مشکلاتی که باید برای بقا و ادامهٔ زندگی بر آن‌ها غلبه کنیم.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;ادبیات دشمن طبیعی دیکتاتوری است. خواندن حس امید به آینده به انسان می‌دهد.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;مطالعه بهترین نوع سرگرمی است. ترکیب کلمات رنگ و بوی جادویی می‌گیرد و دریچه‌ای برای زندگی بهتر می‌گشاید.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;خواندن شالودهٔ تربیت انسان آزاد است.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;مطالعهٔ کتاب‌های خوب از ما انسان بهتری می‌سازد.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;div&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>ترجمه</title>
        <published>2026-06-20T00:00:00+00:00</published>
        <updated>2026-06-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              EsmaeelE
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esmaeele.github.io/notes/motarjem/"/>
        <id>https://esmaeele.github.io/notes/motarjem/</id>
        
        <content type="html" xml:base="https://esmaeele.github.io/notes/motarjem/">&lt;h1 id=&quot;brkhy-z-mtrjmhy-khwb-yrny&quot;&gt;برخی از مترجم‌های خوب ایرانی&lt;&#x2F;h1&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right; line-height: 2;&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;محمد قاضی&lt;&#x2F;strong&gt; — کتاب خاطرات یک مترجم، داستان جذاب زندگی شخصی&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;نجف دریابندری&lt;&#x2F;strong&gt; — کتاب مستطاب آشپزی&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;بیژن اشتری&lt;&#x2F;strong&gt; — انقلاب‌های ۱۹۸۹&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;div&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>National Anthem</title>
        <published>2026-06-20T00:00:00+00:00</published>
        <updated>2026-06-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              EsmaeelE
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esmaeele.github.io/notes/national-anthem/"/>
        <id>https://esmaeele.github.io/notes/national-anthem/</id>
        
        <content type="html" xml:base="https://esmaeele.github.io/notes/national-anthem/">&lt;h1 id=&quot;srwdhy-mly-qrdaetr-z-anchae-fkhr-mykhnyd&quot;&gt;سرودهای ملی؛ قراضەتر از آنچە فکر میکنید&lt;&#x2F;h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;یادداشت:&lt;&#x2F;strong&gt; این نوشته بازنشر مقاله‌ای است که پیشتر در پایگاه تریبون چپ منتشر شده بود و اینجا آرشیو شده است.
بدیهی است این انتشار به معنای تایید یا رد مطالب نیست.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;سرودهای ملی دیررس، عقبماندگی و کینەتوزی بورژوازی مناطق گوناگون را منعکس میکنند. این پدیدە را در مورد سرودهای فارسی “ای ایران” و کۆردی “ئەی ڕقیب” بررسی میکنیم.
خاطرم هست کە در تظاهراتهای دانشگاە تهران، در دهەی ٤٠ (١٩٦٠)، معدودی دانشجویان طرفدار جبهەی ملی، برای خواندن این سرود، دلیل و توجیە میآوردند کە “اسم شاە توش نیست”! جو دانشگاە چپ بود و این سرود مقبول نبود. امروز هم این سرود تنها مقبول ناسیونالیستهای رنگارنگ ایرانیست. عکس العمل خشماگین طرفداران سلطنت هم در برابر انتقاد از این سرود تنها بە معنی لنگی استدلال است وگرنە، آنوقتها ساواکشان چندان روی خوشی بە این سرود کە “اسم شاە توش نبود”، نشان نمیداد.
این سرود در اوائل دهەی ٢٠ خورشیدی و در جو ناسیونالیستی آنوقت پاگرفت. نام ایران برای این کشور، هنوز دهسالە هم نشدە بود و ناسیونالیسم ایرانی هنوز در حال شکل گرفتن بود. نام ایران، بە جای “پرشیا” و بە جای “ممالک محروسەی پادشاهی”، در زمان رضاخان و در سال ١٩٣٥ بە تصویب مجلس رسید.
این نامگذاریها، خاص ایران نبودە و در همین یکی دوقرن اخیر نامهای جدید فراوانی در جغرافیای سیاسی جهان ظهور کردەاند: ترکیە بەجای امپراتوری عثماني و روم شرقی؛ عربستان سعودی بە جای نجد و حجاز؛ سوریە و لبنان و… بە جای شام و پاکستان کە نام بخشی از هند شد، در همان اوان ظهور کردند. ایتالیا در جائیکە قدیمها امپراتوری رم بود، اسپانیا بە جای اندلۆس و آلمان بە جای پروس و بسیاری اسامی جدید دیگر هم از آنجملە اند.
سرزمینی کە ایران شد، طی تاریخ دستخوش تغیرات فراوان جغرافیای سیاسی بودە، نامهای متعددی داشتەاست. این نامها، چەبسا در زمان طولانیتری از این هشتاد سال کە نام ایران بر این سرزمین گذاشتە شدە، رایج بودە اند. کشورهای دیگر، از یونان باستان گرفتە تا انگلستان و غیرە، تا قبل از ١٩٣٥، نام “پرشیا” را بەکار میبردەاند. درخود این سرزمین هم نامهای مختلفی رایج بودە کە مثلا بخش مرکزی این سرزمین، عراق نام داشتە و برای آنکە با عراق امروزی (عراق عرب) اشتباە نشود، آنرا عراق عجم مینامیدند (اینکە شمالیها، تهرانیها را اراکی مینامیدەاند و نیز نام شهر اراک، خود نشانەهائیست). برای انتخاب این نام، بە شاهنامە استناد شدەاست؛ اما ایران شاهنامە، آن بخشی از سرزمینهای فریدون بودە کە بە فرزند اول او، ایرج سپردەشد (در برابر توران کە سهم تور، پسر دوم فریدون بودە و بقیە کە سهم سلم، پسر سوم فریدون شد). بنا براین، ایران سرزمین منسوب بە ایرج و یا بە روایتی بە معنی اینجا ویا سرزمینهای دوروبر، جاهائی را شامل میشدە کە امروز، بیشتر، در قلمرو افغانستان و تاجیکستان قرار دارند. تهمینە، مادر سهراب و همسر رستم، دختر شاە سمنگان است. رستم سیستانیست اما مازندران در خارج قلمرو او و در اختیار قلدری بە نام دیو سفید است. سیاوش و افراسیاب و کاوس شاە و اسفندیار، هیچیک، نە شیرازی یا اصفهانی کە از آسیای مرکزی و آنطرف جیحون بودەاند! ناصر خسرو و سعدی کە سفرنامە نوشتە اند اسمی از ایران نبردەاند. مولوی، یا رومی نامیدە شدە یا بلخی! او هیچوقت ایرانی نامیدە نشدە! شاید همین مختصر کافیست کە نشان دهد کە ایران بە معنی دولت-ملت فعلی ایران، ساختەی جنبش ناسیونالیستي دورەی رضاخان است؛ از ازل وجود نداشتە و ابدی هم نیست! آنهم کپیەی دیرهنگامی است از دولت-ملتهای دوران شکوفائی سرمایەداری در اروپا.
از آنجا کە در قرن بیستم، سرمایەداری بە یک سیستم کهنە، امپریالیستی و درستیز با پیشرو بودن و در ستیز با ارزشهای دمکراتیک تبدیل شدە بود، دولت-ملتهای سدەی بیستم و بعد از جنگهای جهانی، نە پیشرو بلکە ارتجاعی و ضد دمکراتیک از آب درآمدند؛ مثلا اسرائیل، مصر، دولت پینۆشە و یا اندونزی. حتی دولتهائی نظیر امریکا، فرانسە و روسیە هم ضد دمکراتیک و ضد مردمی شدند. در حال حاضر، در کنار دولتهای موجود، تروریسم دولتی و داعشی و مافیاهای مالی ومافیاهای مواد مخدر تصویر را پیچیدەترهم کردەاند. اما بە بررسي سرودهای ملي برگردیم:
هفت-هشت سالی پس از نامگذاری ایران، سرود “ای ایران” هم ساختەشد کە بەما بقبولانند کە “در راە” این مخلوق آنها، “کی ارزشی دارد این جان ما؟” در راە سرزمینی کە مالکیتی و اختیاری در آن نداریم، جان ما ارزشی ندارد چرا کە این وطن ماست و مثل هر وطن دیگری، فوایدش برای بورژوازیست و جنگ و خانمانسوزی و فقر فلاکتش برای ماست! “جان من فدای خاک پاک میهنم” اما شاهنشاهان و قدرتمندان، نە تنها جانی فدا نمیکنند بلکە شاهان قاجار شمال ارس و اترک را بە تزار روس و هرات را بە انگلستان آنوقت تقدیم کردند و محمد رضاشاە هم بحرین را بە امپریالیسم انگلیس بخشید! جمهوری اسلامی سرمایە هم بر دوش همین ناسیونالیسم، بر ارتش شاهنشاهی مونتاژ شد و در تاریخ ٣٥ سالەاش ریسمان از گردەی ما کشیدە است. شاهزادەی پهلوی، ریاکارانە اعلام کرد کە حاضر بودە، در رکاب این حکومت، بە عنوان خلبان، عراقیان را در جنگی بمباران کند کە هشت سال فلاکت و میلیونها کشتە مجروح بە مردم دو کشور تحمیل کرد!
در متن سرود “ای ایران” اگر دقیق شویم میبینیم کە نظیر دیگر سرودهای دیرهنگام ملی، شانە بە شانەی فاشیسم میزند:&lt;&#x2F;p&gt;
&lt;p&gt;ای ایران ای مرز پر گهر
ای خاكت سرچشمه هنر
دور از تو اندیشه بدان
پاینده مانی و جاودان
ای … دشمن ارتو سنگ خاره ای من آهنم
جان من فدای خاك پاك میهنم
مهر تو چون شد پیشه ام
دور از تو نیست اندیشه ام
در راه تو ، كی ارزشی دارد این جان ما
پاینده باد خاك ایران ما
سنگ كوهت دُر و گوهر است
خاك دشتت بهتر از زر است
مهرت از دل كی برون كنم
برگو بی مهر تو چون كنم
تا … گردش جهان و دور آسمان بپاست
نور ایزدی همیشه رهنمای ماست
مهر تو چون شد پیشه ام
دور از تو نیست ، اندیشه ام
در راه تو ، كی ارزشی دارد اين جان ما
پاینده باد خاك ايران ما
ایران ای خرم بهشت من
روشن از تو سرنوشت من
گر آتش بارد به پیكرم
جز مهرت بر دل نپرورم
از … آب و خاك و مهر تو سرشته شد دلم
مهرت ار برون رود چه می شود دلم
مهر تو چون ، شد پیشه ام
دور از تو نیست ، انديشه ام
در راه تو ، كی ارزشی دارد اين جان ما
پاینده باد خاك ایران ما&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;انگار این تنها ایران است کە پرگهر است؛ و سرچشمەی هنر است و بە سرزمینهای دیگر هنر صادر میکند!سنن خونریزانە و کلە منارها و بیست هزار جفت چشم درآوردن (آغامحمدخان در کرمان و همزمان با انقلاب کبیر فرانسە)؛ سینەزنی در سوگواری سیاوش باستانی وبعداهم در سوگواری حسین اسلامي؛ سرقت مسلحانەی الماسهای کوە نور و دریای نور از هندوستان توسط نادر افشار و … هم ربطی بە آقایان ندارد و یا بعضا جزو افتخارات است! منظور من، نسبت دادن این فرهنگ ضد انسانی بە “ایران” نیست! این فرهنگ متعلق بە طبقات دارا و دزدان مسلح آنان در طول تاریخ بودەاست؛ چە فارس زبان بودە باشند چە عرب زبان و یا یونانی؛ این، فرهنگ مشترک دزدان تروریست طبقەی تاراجگر است. آتش زدن آتن بە دستور خشایار و یا تخت جمشید بە دستور اسکندر، نە ایرانیست نە یونانی! غارت هندوستان بەدستور نادر و یا ریسمان کشیدن از گردەی مردمان عرب بە دستور شاهپور ساسانی (کە با افتخار تمام بر سنگ هم نقش کردەاند) نە ایرانی بلکە فرهنگ اعلیحضرتانەی سارقان مسلح است. بە همین ترتیب، تاراج و کشتار مغول و عرب راهم، نە بە حساب مردمان سرزمینهای دیگر کە باید بە حساب حاکمان آن ماجراها نوشت؛ حاکمانی کە فرهنگ مشترک جهانیشان، تاراج و کشتار و ترور و تخریب است.
همچنین است در مورد خلاقیتهای مثبت؛ حافظ و سعدی هم نظایری در سایر سر زمینها و بە سایر زبانها، داشتە اند و چە بسا کە در آثار شکسپیر چیزهائی بهتر از”جدال سعدی” پروردەی نعمت شاهان “با مدعی” و یا بهتر از ایدەهائی چون “زن و اژدها هردو در خاک بە…” فردوسی، پیدا کنیم. رودکی فارس و ابوالعلای عرب شعر زیبا میآفرینند و هزاران نمونە از فرهنگ زیبا و پیشرو بە فارسی و نظایر آن بە زبانهای دیگر کە پرداختن بە آنها در مجال این نوشتە نیست، نشانەی جهانی بودن فرهنگ طبقات پیشرو در هر زمان بودەاست.
اینکە خاک “بهتر از زر” ایران، “سرچشمەی هنر” است غرور کاذبی بیش نیست! اینجاست کە هنرمندان پیشروی چون فریدون فرهی و دوست شاعرش (کە متاسفانە نامش در خاطرم نیست) سرودی جایگزین در برابر سرود “ای ایران” آفریدەاند و ازجملە، گفتە اند: “خاکت مثل خاک دیگراست”.&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;لینک سرود با صدای فریدون فرهی:
(لینک در دسترس نیست)&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;و متن نوشتاری سرود چنین است:
ای ایران مرزت چه ها کشید
چه خون ها در دامنت چکید
دور از تو شد مهر مردمان
کی برپا مانی در این جهان&lt;&#x2F;p&gt;
&lt;p&gt;ای دشمن تو آشنا و در همین سراست
در کمین عشق و حس و جان و خون ماست&lt;&#x2F;p&gt;
&lt;p&gt;بر حال خویش اندیشه کن
راهی نوین را پیشه کن
در راه نو آزادگی را مبر از میان
ویرانه کن ریشه فربران&lt;&#x2F;p&gt;
&lt;p&gt;آزادی بهتر ز گوهر است
کی در تو انسان برابر است
خود برتر از دیگران مبین
خاکت مثل خاک دیگر است&lt;&#x2F;p&gt;
&lt;p&gt;تا عیش و نوش و سور حاکمان سرای توست
فقر و مرگ و جنگ و غارت از برای توست&lt;&#x2F;p&gt;
&lt;p&gt;بر حال خویش اندیشه کن
راهی نوین را پیشه کن
در راه نو آزادگی را مبر از میان
ویرانه کن ریشه فربران&lt;&#x2F;p&gt;
&lt;p&gt;ایران مهر تو برون کنم
تا کی این دل از تو خون کنم
تا زندان هست و شکنجه هست
بر گو با ظلم تو چون کنم
تا گردش جهان به دور آسمان به پاست
سرنگونی ستمگران شعار ماست
بر حال خویش اندیشه کن
راهی نوین را پیشه کن
در راه نو آزادگی را مبر از میان
ویرانه کن ریشه فربران&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;سرودهای ملی دیگر هم حال بهتری ندارند. پرداختن بە همەی آنها، البتە، هدف این نوشتە نیست؛ اما چنانکە بالا هم اشارە شد، نگاهی بە سرود ملی کۆردي “ئەی ڕەقیب” را، با توجە بە نقش فعال ناسیونالیسم کۆرد در تحولات جاری، مفید میدانم.&lt;&#x2F;p&gt;
&lt;p&gt;ذیلا متن نوشتاری سرود را {با ترجمەی فارسی} میبینید:&lt;&#x2F;p&gt;
&lt;p&gt;ئەی‌ ڕەقیب ھەر ماوە قەومی کورد زمان {ای رقیب،(بدان کە) قوم کۆردزبان هموارە زندە است}
نایشکێنێ دانەریی تۆپی زەمان {آفرینندەی توپ زمان را یارای شکستنش نیست}
کەس نەڵێ کورد مردووە، کورد زیندووە {کسی ن(باید ب)گوید کۆرد مردەست؛ کە کۆرد زندەست}
زیندووە قەت نانەوێ ئاڵا‌کەمان {زندەست؛ هرگز خم نگردد پرچممان}
ئێمە ڕۆڵەی ڕەنگی سوور و شۆڕشین {ما فرزندان رنگ سرخ و انقلابیم}
سەیری کە خوێناوییە ڕابردوومان {ببین کە گذشتەی ما (چقدر) خونین است}
کەس نەڵێ کورد مردووە، کورد زیندووە {کسی ن(باید ب)گوید کۆرد مردەست؛ کە کۆرد زندەست}
زیندووە قەت نانەوێ ئاڵا‌کەمان {زندەست؛ هرگز خم نگردد پرچممان}
لاوی کورد ھەستایە سەر‌ پێ، وەک دلێر {جوان کۆرد بەپاخاست همچون دلیر}
تا بە خوێن نەخشی بکا تاجی ژیان {تا کە با خون، تاج زند گی را نقش بخشد}
کەس نەڵێ کورد مردووە، کورد زیندووە {کسی ن(باید ب)گوید کۆرد مردەست؛ کە کۆرد زندەست}
زیندووە قەت نانەوێ ئاڵا‌کەمان {زندەست و هرگز خم نگردد پرچم ما}
ئێمە رۆڵەی میدیا و کەیخوسرەوین {ما فرزندان ماد و کیخسرو یم}
دینمان، ئایینمان ھەر نیشتمان {دین ما و آئین ما فقط میهن}
کەس نەڵێ کورد مردووە، کورد زیندووە {کسی ن(باید ب)گوید کۆرد مردەست؛ کە کۆرد زندەست}
زیندووە قەت نانەوێ ئاڵا‌کەمان {زندەست؛ هرگز خم نگردد پرچممان}
لاوی کورد ھەر ‌حازر و ئامادەیە {جوان کۆرد هموارە حاضر و آمادە است}
گیان فیدایە، گیان فیدا، ھەر گیان فیدا {جانفداست، جانفداست، هموارە جانفدا}ا
کەس نەڵێ کورد مردووە، کورد زیندووە {کسی ن(باید ب)گوید کۆرد مردەست؛ کە کۆرد زندەست}
زیندووە قەت نانەوێ ئاڵا‌کەمان {زندەست؛ هرگز خم نگردد پرچممان}&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;اینهمە شاخ و شانە کشیدن برای “رقیب” و حاتم بخشی بە حساب جان و خون جوانان کۆرد، آشکارا بوی خون میدهد! ظاهرا مخاطب این شاخ و شانەکشیدنها هم مردمان همسایە یا نگونبختان متعلق بە عنوان دیگری هستند. این نفرت پراکنی، تنها بە نفع طبقەایست کە حکۆمتش بر تفرقەی ستمکشان استوار است.
بنا بە یک سایت طرفدار حزب بارزانی، بە نام “ڕووداو”، مٶرخ بیستم نوامبر ٢٠١٤، اخیرا در پارلمان کردستان عراق زمزمەی اعتراض ناسیونالیستهای ترکمان و کلدانی بلند شدە. البتە این اعتراض، بەهیچوجە متوجە نفرت پراکنی و بەخون تشنگی سرود نیست بلکە از موضع ناسیونالیسم نارس دیگریست و معترض است کە این سرود، تنها برای کردهاست و “دیگر ملیتهای” کردستان را در بر نمیگیرد و باید عوض شود! این اعتراض، با چشم غرەی تهدید آمیز رئیس پارلمان کردستان پاسخ گرفتە و بنا بر اظهار سخنگوی مطبوعاتی وی “این خط قرمز است و این سرود عوض نخواهد شد!” چندی پیش هم جنجالی بر سر یک قانون برپا شد کە برای کسانی کە هنگام پخش این سرود، بە نشانەی احترام، پا نشوند مجازات مقرر میکرد!&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;این حقایق، بە اضافەی تحولات ژئۆپلیتیک در جهان و مشخصتر در خاورمیانە، نشان میدهد کە دوران شکوفائی ناسیونالیسم و سرودهای ملی، مدتهاست بەسرآمدە و جنبشهای اجتماعی نوینی بە صحنە آمدەاند: از طرفی، سرمایەداری بازار بزرگ، نیازی بە مرزهای ملی ندارد هیچ بلکە آنها را،اساسا، محترم نمیشمارد! ترەهم برای حقوق دمکراتیک و حتی خود دمکراسی، خورد نمیکند! دست درازیها و تاراجگریهای امپریالیستی، نە تنها مدتهاست، با ارزشهای دمکراتیک وداع گفتە بلکە تنها برای ریاکاری و تروریسم دولتی از اسم دمکراسی استفادە میکنند؛ منافع ملی و محلی سایر مناطق راهم آشکارا، آماج تاراج و جنگهای جهانی و منطقەئی خود قراردادەاند. سرمایەهای کوچک هم ابدا قدرت رقابت ندارند تا برای این “رقیب” شاخ و شانە بکشند! شاخ و شانە کشیدنها، تنها برای ستمدیدگان همسایەاست. مشکلات مردم فلسطین و کردستان و غیرە برای بورژوازی، نە مشکلاتی برای حل کردن بلکە امکاناتی برای تفرقەی زحمتکشان است و بە همین خاطر لاینحل تر هم میشوند. از طرف دیگر، چارەی ستم ملی و دیگر مسائل دمکراتیک نظیر برابری زن و مرد، در دورەی حاضر، بر عهدەی جنبشهای مدرن مردمی، کارگری و کمونیستی است کە هیچ نفع طبقاتی در هیچگونە نابرابری و ستم ندارند.
ارزش مصرف این سرودها برای بورژوازی، اما، در کارکرد تفرقەافکنانەی آنهاست کە با آگاهی روزافزون مردمانیکە در گروهها، مذاهب و ملل مختلف دستەبندی شدەاند، این کارگردهم، کم کم تە میکشد! مردم و بە خصوص کارگران آگاە، روز بە روز بیشتر در مییابند کە چە اندازە بە اتحاد مبارزاتی خود علیە سرمایە و علیە قلدریهای سیاسي، نظامی، اقتصادي و فرهنگی آن نیاز دارند تا در رفع هرگونە ستم و نابرابری، ازجملە ستم ملی بە پیروزی برسند.
سرودیکە متوجە آرمان آزادی و برابری انسانهاست، سرود انترناسیونال، سرود همبستگی بین المللی کارگران است کە بیش از ١٤٠ سال اتحاد طبقاتی علیە ستم و استثمار و رهائی و آزادی کل بشریت را ندا دادەاست:&lt;&#x2F;p&gt;
&lt;p&gt;انترناسیونال&lt;&#x2F;p&gt;
&lt;p&gt;سرود بین المللی کارگران
شعر از اوژن پواتیه
ترجمه فارسی از: مصلح ربوار
تنظیم شدە با آهنگ اصلی سرود، برای اجراء:&lt;&#x2F;p&gt;
&lt;p&gt;خیزید محنت زدگان جهان
بردگان گرسنگی
آگاهی غرد چو آتشفشان
برخروشاند زندگی
برپا گشته توفان آخرین
بروبیم کهنه جهان برخیز
برخیز برپا داریم نظم نوین
هیچیم کنون گردیم همه چیز
پیش به سوی آخرین پیکار
همچو یک تن ای همرزمان
با انترناسیونال
آزادگردد انسان
ناجی در آسمان نجوئیم
نه شاه نه شیخ نه آسمان
خود به رهاییمان برشوریم
آفرینندگان ای کارگران
جان از بند جهل و
دستاوردکار
از چنگ رهزن رها کنیم
دمیم خود برآتش این پیکار
آهن را گرماگرم کوبیم
پیش به سوی آخرین پیکار
همچو یک تن ای همرزمان
با انترناسیونال
آزادگردد انسان
مائیم کارگران و زحمتکشان
اردوی بیشمار کار
باید از آن ما شود جهان
نه بیکارگان خونخوار
تاکی نوشند از شیره ی جان ما
نابود گردانیم کرکسان
آنگاه دمد آفتاب فردا
درخشد جاودان بر انسان!
پیش به سوی آخرین پیکار
همچو یک تن ای همرزمان
با انترناسیونال
آزادگردد انسان&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;این نوشتە، ابتدا هفتەی پیش، در نشریە کمونیست شمارەی هفتم منتشر شدەبود.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>نقل قول</title>
        <published>2026-06-20T00:00:00+00:00</published>
        <updated>2026-06-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              EsmaeelE
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esmaeele.github.io/notes/nql-qwl/"/>
        <id>https://esmaeele.github.io/notes/nql-qwl/</id>
        
        <content type="html" xml:base="https://esmaeele.github.io/notes/nql-qwl/">&lt;h1 id=&quot;khlmt-qsr&quot;&gt;کلمات قصار&lt;&#x2F;h1&gt;
&lt;hr &#x2F;&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right; line-height: 2.2;&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;آفرینش فرهنگی و هنری (نیز) شکلی از مبارزه است.
— خسرو ناقد&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;&#x2F;div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left; margin-top: 1.5rem;&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;Kulturelles und Künstlerisches Schaffen ist ein Art Widerstand&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Cultural and artistic work is a kind of resistance&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;&#x2F;div&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>مقالات فارسی</title>
        <published>2026-06-20T00:00:00+00:00</published>
        <updated>2026-06-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              EsmaeelE
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esmaeele.github.io/notes/poet/"/>
        <id>https://esmaeele.github.io/notes/poet/</id>
        
        <content type="html" xml:base="https://esmaeele.github.io/notes/poet/">&lt;h1 id=&quot;mthl-w-hkhm-frsy&quot;&gt;امثال و حکم فارسی&lt;&#x2F;h1&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right; line-height: 2.5;&quot;&gt;
&lt;p&gt;به عذر و توبه توان رستن از عذاب خدای
و لیک نمی‌توان از زبان مردم&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;ترسم نرسی به کعبه ای اعرابی
کین ره که تو می‌روی به ترکستان است&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;به یک ناتراشیده در مجلسی برنجد
دل هوشمندان بسی&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;اگر برکه‌ای پر کنند از گلاب
سگی در وی افتد کند منجلاب&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;غریبی گرت ماست پیش آورد
دو پیمانه آب است و یک چمچه دوغ&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;اگر راست می‌خواهی از من شنو
جهان دیده بسیار گوید دروغ&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;به دریا در منافع بی‌شمار است
وگر خواهی سلامت در کنار است&lt;&#x2F;p&gt;
&lt;p&gt;&lt;small style=&quot;display: block; text-align: center; margin-top: 1rem; color: var(--text-muted);&quot;&gt;کشتی‌ها در ساحل امن‌ترند ولی کشتی را برای ماندن در ساحل نساختند&lt;&#x2F;small&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;hr &#x2F;&gt;
&lt;h1 id=&quot;grg-w-nsn&quot;&gt;گرگ و انسان&lt;&#x2F;h1&gt;
&lt;div dir=&quot;rtl&quot; style=&quot;text-align: right; font-size: 1.1em; line-height: 2.5;&quot;&gt;
&lt;p&gt;گفت دانایی که گرگی خیره سر
هست پنهان در نهاد هر بشر&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;لاجرم جاری است پیگاری سترگ
روز و شب مابین این انسان و گرگ&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;زور بازو چاره این گرگ نیست
صاحب اندیشه داند چاره چیست&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;ای بسا انسان رنجور پریش
سخت پیچیده گلوی گرگ‌خویش&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;وی بسا زور آفرین مرد دلیر
هست در چنگال گرگ‌خود اسیر&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;هرگرکه گرگش را دراندازد به خاک
رفته رفته می‌شود انسان پاک&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;وانکه از گرگش خورد هردم شکست
گرچه انسان مینماید گرگ هست&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;هر که با گرگش مدارا می‌کند
خلق و خوی گرگ پیدا می‌کند&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;در جوانی جان گرگت را بگیر
وای اگر این گرگ گردد با تو پیر&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;روز پیری گرچه باشی همچو شیر
ناتوانی در مصاف گرگ پیر&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;مردمان گر یکدگر را می‌درند
گرگ‌هاشان رهنما و رهبر اند&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;این که انسان هست این سان دردمند
گرگ‌ها فرمانروایی می‌کنند&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;وین ستمکاراند که با هم محرمند
گرگ‌ها فرمانروایی می‌کنند&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;گرگ‌ها همراه و انسان‌ها غریب
با که باید گفت این حال غریب&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;p&gt;&lt;small style=&quot;display: block; text-align: center; margin-top: 2rem; color: var(--text-muted);&quot;&gt;از اشعار ادبیات فارسی&lt;&#x2F;small&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>MikroTik Lab</title>
        <published>2026-06-20T00:00:00+00:00</published>
        <updated>2026-06-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              EsmaeelE
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esmaeele.github.io/projects/mikrotik-lab/"/>
        <id>https://esmaeele.github.io/projects/mikrotik-lab/</id>
        
        <content type="html" xml:base="https://esmaeele.github.io/projects/mikrotik-lab/">&lt;h1 id=&quot;mikrotik-networking-lab&quot;&gt;MikroTik Networking Lab&lt;&#x2F;h1&gt;
&lt;p&gt;A virtual networking lab using MikroTik RouterOS in VirtualBox for practicing routing, firewall rules, and network configurations.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;features&quot;&gt;Features&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;MikroTik RouterOS VM setup&lt;&#x2F;li&gt;
&lt;li&gt;SSH and WebUI access&lt;&#x2F;li&gt;
&lt;li&gt;Nginx reverse proxy configuration&lt;&#x2F;li&gt;
&lt;li&gt;VLAN and routing labs&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;requirements&quot;&gt;Requirements&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;VirtualBox&lt;&#x2F;li&gt;
&lt;li&gt;MikroTik RouterOS ISO&lt;&#x2F;li&gt;
&lt;li&gt;Debian&#x2F;Ubuntu host&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;links&quot;&gt;Links&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;&#x2F;blog&#x2F;mikrotik&#x2F;&quot;&gt;Blog Post&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Kubernetes Lab Setup</title>
        <published>2026-06-15T00:00:00+00:00</published>
        <updated>2026-06-15T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              EsmaeelE
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esmaeele.github.io/projects/k8s-lab/"/>
        <id>https://esmaeele.github.io/projects/k8s-lab/</id>
        
        <content type="html" xml:base="https://esmaeele.github.io/projects/k8s-lab/">&lt;h1 id=&quot;kubernetes-lab-setup&quot;&gt;Kubernetes Lab Setup&lt;&#x2F;h1&gt;
&lt;p&gt;Automated provisioning of an AWS EKS cluster for learning and testing.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-it-does&quot;&gt;What it does&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Provisions EKS cluster with Terraform&lt;&#x2F;li&gt;
&lt;li&gt;Installs monitoring stack (Prometheus, Grafana)&lt;&#x2F;li&gt;
&lt;li&gt;Configures ArgoCD for GitOps&lt;&#x2F;li&gt;
&lt;li&gt;Includes sample application for testing&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;tech-stack&quot;&gt;Tech Stack&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Component&lt;&#x2F;th&gt;&lt;th&gt;Tool&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;IaC&lt;&#x2F;td&gt;&lt;td&gt;Terraform&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Containers&lt;&#x2F;td&gt;&lt;td&gt;Kubernetes, Helm&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;CI&#x2F;CD&lt;&#x2F;td&gt;&lt;td&gt;ArgoCD&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Monitoring&lt;&#x2F;td&gt;&lt;td&gt;Prometheus, Grafana&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h2 id=&quot;quick-start&quot;&gt;Quick Start&lt;&#x2F;h2&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;terraform&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; init&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #89B4FA;font-style: italic;&quot;&gt;terraform&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; apply&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h2 id=&quot;links&quot;&gt;Links&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;esmaeelE&quot;&gt;GitHub Repo&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>About</title>
        <published>2026-01-01T00:00:00+00:00</published>
        <updated>2026-01-01T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              EsmaeelE
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esmaeele.github.io/about/"/>
        <id>https://esmaeele.github.io/about/</id>
        
        <content type="html" xml:base="https://esmaeele.github.io/about/">&lt;h1 id=&quot;esmaeele&quot;&gt;EsmaeelE&lt;&#x2F;h1&gt;
&lt;p&gt;&lt;strong&gt;Systems Engineer &amp;amp; Free Software Enthusiast&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;I build and maintain infrastructure that runs quietly in the background — the kind that just works. Over the past 8+ years I have worked across the full infrastructure stack, from bare-metal servers to Kubernetes clusters in the cloud. My focus is on automation, reliability, and keeping operations clean and repeatable.&lt;&#x2F;p&gt;
&lt;p&gt;I believe in open-source software, simple tooling, and writing things down so they can be shared.&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;what-i-work-on&quot;&gt;What I Work On&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Building and maintaining &lt;strong&gt;CI&#x2F;CD pipelines&lt;&#x2F;strong&gt; that ship code safely&lt;&#x2F;li&gt;
&lt;li&gt;Operating &lt;strong&gt;Kubernetes clusters&lt;&#x2F;strong&gt; and container workloads at scale&lt;&#x2F;li&gt;
&lt;li&gt;Managing &lt;strong&gt;infrastructure as code&lt;&#x2F;strong&gt; with Terraform and Ansible&lt;&#x2F;li&gt;
&lt;li&gt;Setting up &lt;strong&gt;monitoring and observability&lt;&#x2F;strong&gt; with Prometheus, Grafana, and the ELK stack&lt;&#x2F;li&gt;
&lt;li&gt;Automating repetitive tasks — if it can be scripted, it should be&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;tech-stack&quot;&gt;Tech Stack&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Category&lt;&#x2F;th&gt;&lt;th&gt;Tools&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Containers&lt;&#x2F;td&gt;&lt;td&gt;Kubernetes, Docker, Helm&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;IaC&lt;&#x2F;td&gt;&lt;td&gt;Terraform, Ansible, SaltStack&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;CI&#x2F;CD&lt;&#x2F;td&gt;&lt;td&gt;GitLab CI, GitHub Actions&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Cloud&lt;&#x2F;td&gt;&lt;td&gt;AWS, Linux&#x2F;RHEL&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Monitoring&lt;&#x2F;td&gt;&lt;td&gt;Prometheus, Grafana, ELK&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Databases&lt;&#x2F;td&gt;&lt;td&gt;PostgreSQL, MariaDB&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Languages&lt;&#x2F;td&gt;&lt;td&gt;Bash, Python&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;connect&quot;&gt;Connect&lt;&#x2F;h2&gt;
&lt;div style=&quot;display: flex; gap: 1.5rem; flex-wrap: wrap; align-items: center; margin-top: 0.5rem;&quot;&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;esmaeelE&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot; title=&quot;GitHub&quot; style=&quot;display: inline-flex; align-items: center; gap: 0.4rem; text-decoration: none; color: inherit;&quot;&gt;
&lt;svg xmlns=&quot;http:&#x2F;&#x2F;www.w3.org&#x2F;2000&#x2F;svg&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; width=&quot;20&quot; height=&quot;20&quot;&gt;
    &lt;path d=&quot;M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22&quot; &#x2F;&gt;
&lt;&#x2F;svg&gt;
GitHub
&lt;&#x2F;a&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;stackexchange.com&#x2F;users&#x2F;10166230&#x2F;esmaeele?tab=accounts&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot; title=&quot;Stack Overflow&quot; style=&quot;display: inline-flex; align-items: center; gap: 0.4rem; text-decoration: none; color: inherit;&quot;&gt;
&lt;svg xmlns=&quot;http:&#x2F;&#x2F;www.w3.org&#x2F;2000&#x2F;svg&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; width=&quot;20&quot; height=&quot;20&quot;&gt;
    &lt;path d=&quot;M2.913 16.041v6.848h17.599v-6.848M7.16 18.696h8.925M7.65 13.937l8.675 1.8M9.214 9.124l8.058 3.758M12.086 4.65l6.849 5.66M15.774 1.111l5.313 7.162&quot; &#x2F;&gt;
&lt;&#x2F;svg&gt;
Stack Overflow
&lt;&#x2F;a&gt;
&lt;a href=&quot;mailto:esmaeelEE@protonmail.com&quot; title=&quot;Email&quot; style=&quot;display: inline-flex; align-items: center; gap: 0.4rem; text-decoration: none; color: inherit;&quot;&gt;
&lt;svg xmlns=&quot;http:&#x2F;&#x2F;www.w3.org&#x2F;2000&#x2F;svg&quot; viewBox=&quot;0 0 24 21&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; width=&quot;20&quot; height=&quot;20&quot;&gt;
    &lt;path d=&quot;M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z&quot;&gt;&lt;&#x2F;path&gt;
    &lt;polyline points=&quot;22,6 12,13 2,6&quot;&gt;&lt;&#x2F;polyline&gt;
&lt;&#x2F;svg&gt;
Email
&lt;&#x2F;a&gt;
&lt;&#x2F;div&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Kubernetes Migration Lab: VMs to EKS</title>
        <published>2025-11-10T00:00:00+00:00</published>
        <updated>2025-11-10T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              EsmaeelE
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://esmaeele.github.io/blog/k8/"/>
        <id>https://esmaeele.github.io/blog/k8/</id>
        
        <content type="html" xml:base="https://esmaeele.github.io/blog/k8/">&lt;p&gt;&lt;strong&gt;This is a personal lab writeup, not a claimed production project.&lt;&#x2F;strong&gt; I set it up to practice the
workflow and tooling involved in a VM-to-Kubernetes migration, using a small sample service rather
than a real company&#x27;s infrastructure.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;goal&quot;&gt;Goal&lt;&#x2F;h2&gt;
&lt;p&gt;Get hands-on with the pieces that make up a typical Kubernetes migration, end to end:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Provision an EKS cluster with &lt;strong&gt;Terraform&lt;&#x2F;strong&gt; instead of clicking through the AWS console.&lt;&#x2F;li&gt;
&lt;li&gt;Package the service with &lt;strong&gt;Helm&lt;&#x2F;strong&gt; so config is versioned and repeatable.&lt;&#x2F;li&gt;
&lt;li&gt;Wire up &lt;strong&gt;ArgoCD&lt;&#x2F;strong&gt; for GitOps-style deployment instead of manual &lt;code&gt;kubectl apply&lt;&#x2F;code&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;Add &lt;strong&gt;Prometheus&lt;&#x2F;strong&gt; and &lt;strong&gt;Grafana&lt;&#x2F;strong&gt; for cluster and application metrics.&lt;&#x2F;li&gt;
&lt;li&gt;Run the pipeline through &lt;strong&gt;GitHub Actions&lt;&#x2F;strong&gt; so image builds and Helm releases are automated.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;h2 id=&quot;what-i-practiced&quot;&gt;What I practiced&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Writing Terraform modules for VPC, subnets, and an EKS control plane, and tearing it down cleanly
afterward (&lt;code&gt;terraform destroy&lt;&#x2F;code&gt;) to avoid runaway AWS costs on a personal account.&lt;&#x2F;li&gt;
&lt;li&gt;Structuring a Helm chart with separate &lt;code&gt;values&lt;&#x2F;code&gt; files per environment, and using &lt;code&gt;helm diff&lt;&#x2F;code&gt; to
review changes before they hit the cluster.&lt;&#x2F;li&gt;
&lt;li&gt;Pointing ArgoCD at a Git repo and watching it reconcile drift instead of trusting manual deploys.&lt;&#x2F;li&gt;
&lt;li&gt;Setting resource requests&#x2F;limits and a basic HorizontalPodAutoscaler, then load-testing to see
when pods actually scaled.&lt;&#x2F;li&gt;
&lt;li&gt;Hooking up the kube-prometheus-stack and building a couple of Grafana dashboards for pod restarts
and request latency.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;what-i-d-still-want-to-test-on-a-real-workload&quot;&gt;What I&#x27;d still want to test on a real workload&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Zero-downtime cutover strategies (blue&#x2F;green vs. canary) under real traffic, not synthetic load.&lt;&#x2F;li&gt;
&lt;li&gt;Database migration alongside the app — stateful services are the part this lab skipped entirely.&lt;&#x2F;li&gt;
&lt;li&gt;Cost comparison against the VM baseline with real numbers, not estimates.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;notes-for-next-time&quot;&gt;Notes for next time&lt;&#x2F;h2&gt;
&lt;p&gt;Terraform state management got messy once I started iterating quickly — next time I&#x27;d set up remote
state with locking from the start instead of retrofitting it. ArgoCD&#x27;s health checks also needed
tuning for a custom readiness probe; the defaults reported &quot;healthy&quot; before the app was actually
ready to take traffic.&lt;&#x2F;p&gt;
</content>
        
    </entry>
</feed>
