<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Posts on myblog</title>
		<link>http://blog.pdan.dev/posts/</link>
		<description>Recent content in Posts on myblog</description>
		<generator>Hugo</generator>
		<language>en-US</language>
		
		
		
		
			<lastBuildDate>Fri, 14 Aug 2026 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="http://blog.pdan.dev/posts/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Fortinet</title>
				<link>http://blog.pdan.dev/posts/forticlient/</link>
				<pubDate>Fri, 14 Nov 2025 00:00:00 +0000</pubDate>
				<guid>http://blog.pdan.dev/posts/forticlient/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;images/00.png&#34; alt=&#34;img00&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;configuring-the-lan-interface-including-dhcp-server&#34;&gt;Configuring the LAN interface, including DHCP server&lt;/h3&gt;&#xA;&lt;p&gt;Network &amp;gt; Interfaces &amp;gt; doble-click on &lt;code&gt;port5&lt;/code&gt;&#xA;&lt;img src=&#34;images/01.webp&#34; alt=&#34;img01&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Alias: &lt;code&gt;LAN-HQ&lt;/code&gt; Role: &lt;code&gt;LAN&lt;/code&gt; IP/Netmask &lt;code&gt;172.16.10.1/24&lt;/code&gt;&#xA;&lt;img src=&#34;images/02.webp&#34; alt=&#34;img02&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Administrative Access IPV4 : &lt;code&gt;HTTPS&lt;/code&gt;, &lt;code&gt;PING&lt;/code&gt;, &lt;code&gt;SSH&lt;/code&gt; after Enable DHCP Server&#xA;&lt;img src=&#34;images/03.webp&#34; alt=&#34;img03&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Address range: &lt;code&gt;172.16.10.21-172.16.10.256&lt;/code&gt;&#xA;&lt;img src=&#34;images/04.webp&#34; alt=&#34;img04&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Comments: &lt;code&gt;Lan port connected to HQ&lt;/code&gt; and click &lt;code&gt;OK&lt;/code&gt;&#xA;&lt;img src=&#34;images/05.webp&#34; alt=&#34;img05&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Double-click on &lt;code&gt;port6&lt;/code&gt;&#xA;&lt;img src=&#34;images/06.webp&#34; alt=&#34;img06&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Alias: &lt;code&gt;WAN-ISP&lt;/code&gt; Role: &lt;code&gt;WAN&lt;/code&gt;&#xA;&lt;img src=&#34;images/07.webp&#34; alt=&#34;img07&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;IP/Netmask: &lt;code&gt;172.16.20.1/30&lt;/code&gt; and IPV4: &lt;code&gt;SSH&lt;/code&gt;&#xA;&lt;img src=&#34;images/08.webp&#34; alt=&#34;img08&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Comments: &lt;code&gt;WAN port connected to ISP&lt;/code&gt; and click &lt;code&gt;OK&lt;/code&gt;&#xA;&lt;img src=&#34;images/09.webp&#34; alt=&#34;img09&#34;&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Configuration of the LAN and WAN interfaces is complete.&lt;/p&gt;</description>
			</item>
			<item>
				<title>GO API</title>
				<link>http://blog.pdan.dev/posts/go-api/</link>
				<pubDate>Wed, 19 May 2021 00:00:00 +0000</pubDate>
				<guid>http://blog.pdan.dev/posts/go-api/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;images/01.webp&#34; alt=&#34;img01&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt; &lt;/p&gt;&#xA;&lt;h2 id=&#34;making-get-requests-and-handling-responses-in-go&#34;&gt;Making GET Requests and Handling Responses in Go&lt;/h2&gt;&#xA;&lt;p&gt; &lt;/p&gt;&#xA;&lt;h3 id=&#34;making-get-requests-and-handling-responses&#34;&gt;Making GET Requests and Handling Responses&lt;/h3&gt;&#xA;&lt;p&gt;Welcome to the second lesson in our journey of interacting with &lt;code&gt;APIs&lt;/code&gt; using Go. In the previous lesson, we established a strong understanding of &lt;code&gt;RESTful APIs&lt;/code&gt; and how &lt;code&gt;HTTP requests&lt;/code&gt; facilitate interactions with them. We used &lt;code&gt;curl&lt;/code&gt; to interact directly with an API endpoint. Now, we will automate this process using Go&amp;rsquo;s &lt;code&gt;net/http&lt;/code&gt; package. This lesson will guide you through making HTTP requests in Go, equipping you with essential skills for web development and API integration.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Git</title>
				<link>http://blog.pdan.dev/posts/git/</link>
				<pubDate>Tue, 18 May 2021 00:00:00 +0000</pubDate>
				<guid>http://blog.pdan.dev/posts/git/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;images/git1.svg&#34; alt=&#34;git1&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Create a repository in an existing directory:&lt;/p&gt;&#xA;&lt;p&gt;Linux:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;cd home user my_project&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;MacOS:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;cd Users user my_project&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Windows:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;cd C:/Users/user/my_project&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;then run the command:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;git init&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Add existing files under version control:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;git add *.c&#xA;git add LICENSE&#xA;git commit -m ‘Initial project version’&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Clone an existing repository&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;git clone https://github.com/libgit2/libgit2&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Clone the repository to a directory named mylibgit:&#xA;$ git clone &lt;a href=&#34;https://github.com/libgit2/libgit2&#34;&gt;https://github.com/libgit2/libgit2&lt;/a&gt; mylibgit&lt;/p&gt;&#xA;&lt;h2 id=&#34;working-with-git&#34;&gt;Working with Git&lt;/h2&gt;&#xA;&lt;h3 id=&#34;git-add&#34;&gt;Git Add&lt;/h3&gt;&#xA;&lt;p&gt;Add existing files under version control:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ git status&#xA;&#xA;On branch main&#xA;Your branch is up to date with &amp;#39;origin/main&amp;#39;.&#xA;&#xA;nothing to commit, working tree clean  &#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Adding README + status:&lt;/p&gt;</description>
			</item>
			<item>
				<title>GO</title>
				<link>http://blog.pdan.dev/posts/go/</link>
				<pubDate>Tue, 18 May 2021 00:00:00 +0000</pubDate>
				<guid>http://blog.pdan.dev/posts/go/</guid>
				<description>&lt;p&gt;   &lt;/p&gt;&#xA;&lt;p&gt;   &lt;/p&gt;&#xA;&lt;p&gt;   &lt;/p&gt;&#xA;&lt;p&gt;   &lt;/p&gt;&#xA;&lt;h1 id=&#34;introduction-to-programming-with-go&#34;&gt;Introduction to Programming with Go&lt;/h1&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/01.webp&#34; alt=&#34;img01&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;taking-your-first-step-in-go-programming&#34;&gt;Taking Your First Step in Go Programming&lt;/h2&gt;&#xA;&lt;p&gt;Can you feel the excitement coursing through your veins? You&amp;rsquo;re on the verge of diving into the world of programming. Let&amp;rsquo;s get started!&lt;/p&gt;&#xA;&lt;h4 id=&#34;what-youll-learn&#34;&gt;What You&amp;rsquo;ll Learn&lt;/h4&gt;&#xA;&lt;p&gt;&lt;strong&gt;Go&lt;/strong&gt; is a powerful language that enables us to build a range of applications and solve real-world problems. As we embark on this journey, we&amp;rsquo;ll first learn to create a basic program in Go — a simple &lt;code&gt;fmt.Println&lt;/code&gt; statement. This program will offer a friendly greeting to the world, setting the pace for our future explorations.&lt;/p&gt;</description>
			</item>
			<item>
				<title>GO for Beginners</title>
				<link>http://blog.pdan.dev/posts/go-for-beginners/</link>
				<pubDate>Tue, 18 May 2021 00:00:00 +0000</pubDate>
				<guid>http://blog.pdan.dev/posts/go-for-beginners/</guid>
				<description>&lt;p&gt;   &lt;/p&gt;&#xA;&lt;p&gt;   &lt;/p&gt;&#xA;&lt;p&gt;   &lt;/p&gt;&#xA;&lt;p&gt;   &lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/01.webp&#34; alt=&#34;img01&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;   &lt;/p&gt;&#xA;&lt;p&gt;   &lt;/p&gt;&#xA;&lt;h2 id=&#34;getting-started-with-go-syntax-and-your-first-program&#34;&gt;Getting Started with Go: Syntax and Your First Program&lt;/h2&gt;&#xA;&lt;p&gt;   &lt;/p&gt;&#xA;&lt;p&gt;   &lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Go Syntax Basics&lt;/strong&gt;&#xA;In &lt;code&gt;Go&lt;/code&gt;, we use statements to perform actions. These are usually terminated by a new line or a semicolon (&lt;code&gt;;&lt;/code&gt;). The semicolon in the end of the statement is optional and used rarely. &lt;code&gt;Go&lt;/code&gt; uses curly braces (&lt;code&gt;{ }&lt;/code&gt;) to group statements into blocks.&lt;/p&gt;&#xA;&lt;p&gt;Take a look at this simple &lt;code&gt;Go&lt;/code&gt; syntax example:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-go&#34; data-lang=&#34;go&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;package&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;fmt&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;func&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;fmt&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;Println&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Hello, Go World!&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;In this example, &lt;code&gt;package main&lt;/code&gt; specifies that it&amp;rsquo;s the main entry point of the &lt;code&gt;Go&lt;/code&gt; application. &lt;code&gt;import &amp;quot;fmt&amp;quot;&lt;/code&gt; instructs &lt;code&gt;Go&lt;/code&gt; to use the &lt;code&gt;fmt&lt;/code&gt; library for formatted I/O operations, and in the &lt;code&gt;main&lt;/code&gt; function, we print &lt;code&gt;&amp;quot;Hello, Go World!&amp;quot;&lt;/code&gt;. Though you may not fully understand this code just yet, we will explore each part of it step-by-step in forthcoming lessons.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Microsoft Graph</title>
				<link>http://blog.pdan.dev/posts/microsoft-graph/</link>
				<pubDate>Fri, 14 Aug 2026 00:00:00 +0000</pubDate>
				<guid>http://blog.pdan.dev/posts/microsoft-graph/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;images/Graph%20API%20logo.png&#34; alt=&#34;img01&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;microsoft-graph&#34;&gt;Microsoft GRAPH&lt;/h2&gt;&#xA;&lt;h3 id=&#34;install&#34;&gt;Install&lt;/h3&gt;&#xA;&lt;p&gt;Install module&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Install-Module Microsoft.Graph -Scope CurrentUser&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Connect to Graph and tenant&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Disconnect-MgGraph -ErrorAction SilentlyContinue&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Connect-MgGraph `&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    -TenantId &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;YOUR_ACCOUNT.onmicrosoft.com&amp;#34;&lt;/span&gt; `&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    -Scopes &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;RoleManagement.Read.Directory&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Directory.Read.All&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;See All Global Administrator&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$role = Get-MgDirectoryRole -Filter &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;displayName eq &amp;#39;Global Administrator&amp;#39;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Get-MgDirectoryRoleMember -DirectoryRoleId $role.Id -All |&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ForEach-Object {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Get-MgUser -UserId $_.Id `&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        -Property DisplayName,UserPrincipalName,AccountEnabled&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;} |&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Where-Object {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    $_.UserPrincipalName &lt;span style=&#34;color:#f92672&#34;&gt;-ne&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;admin@temworld25.onmicrosoft.com&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;} |&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Select-Object DisplayName,UserPrincipalName,AccountEnabled |&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Format-Table -AutoSize&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Check what tenant you connected&lt;/p&gt;</description>
			</item>
			<item>
				<title>Exchange online</title>
				<link>http://blog.pdan.dev/posts/exchange-online/</link>
				<pubDate>Wed, 21 Jan 2026 00:00:00 +0000</pubDate>
				<guid>http://blog.pdan.dev/posts/exchange-online/</guid>
				<description>&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Install-Module ExchangeOnlineManagement -Scope CurrentUser&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Connect to Exchange online&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Connect-ExchangeOnline -UserPrincipalName admin@example.com&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Get-MailboxFolderPermission office@example\ןמוי&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Get-MailboxFolderPermission office@example\ןמוי | fl&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Check guest permission&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Get-MailboxPermission user1@example.com &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# В Simple.com PowerShell&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Add-MailboxFolderPermission -Identity user1@domain1.com&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;:&lt;/span&gt;\Calendar -User guest@domain2.eu -AccessRights Editor&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Get-MailboxFolderStatics office@1all.co.il | Select-Object Name, FolderPath&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;connect-to-microsoftgraph&#34;&gt;Connect to Microsoft.Graph&lt;/h2&gt;&#xA;&lt;p&gt;Install module Microsoft.Graph&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Install-Module Microsoft.Graph -Scope CurrentUser&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Microsoft.Graph is the official PowerShell module (Microsoft Graph PowerShell SDK) designed to manage Microsoft cloud services through a single Microsoft Graph API interface.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Database Design</title>
				<link>http://blog.pdan.dev/posts/database-design/</link>
				<pubDate>Fri, 10 Oct 2025 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/database-design/</guid>
				<description>&lt;p&gt;   &lt;/p&gt;&#xA;&lt;p&gt;   &lt;/p&gt;&#xA;&lt;p&gt;   &lt;/p&gt;&#xA;&lt;p&gt;   &lt;/p&gt;&#xA;&lt;h2 id=&#34;database-design&#34;&gt;Database Design&lt;/h2&gt;&#xA;&lt;h3 id=&#34;oltp-and-olap&#34;&gt;OLTP and OLAP&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;How should we organize and manage data?&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Schemas: How should my data be logically organized?&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Normalization: Should my data have minimal dependency and redundancy?&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Views: What joins will be done most often?&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Access control: Should all users of the data have the same level of access?&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;DBMS: How do I pick between all the SQL and NoSQL options?&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;and more!&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;It depends on the intended use the date&lt;/p&gt;</description>
			</item>
			<item>
				<title>PostgreSQL</title>
				<link>http://blog.pdan.dev/posts/postgresql/</link>
				<pubDate>Thu, 09 Oct 2025 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/postgresql/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;images/00.png&#34; alt=&#34;img00&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;   &lt;/p&gt;&#xA;&lt;p&gt;   &lt;/p&gt;&#xA;&lt;h2 id=&#34;postgresql-summary-stats-and-window-functions&#34;&gt;PostgreSQL Summary stats and window functions&lt;/h2&gt;&#xA;&lt;h3 id=&#34;introduction-to-windows-functions&#34;&gt;Introduction to windows functions&lt;/h3&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/01.webp&#34; alt=&#34;img01&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/02.webp&#34; alt=&#34;img02&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/03.webp&#34; alt=&#34;img03&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;   &lt;/p&gt;&#xA;&lt;p&gt;   &lt;/p&gt;&#xA;&lt;h4 id=&#34;window-functions&#34;&gt;Window functions&lt;/h4&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Perform calculations across a set of table rows that are somehow related to the current row&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Similar to &lt;code&gt;GROUP BY&lt;/code&gt; aggregation, but all rows remain in the output (no grouping)&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;strong&gt;Uses&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Fetching values from preceding or following rows (e.g. fetching the previous row&amp;rsquo;s value)&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Determining reigning champion status&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Calculating growth over time&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Assigning ordinal ranks (1st, 2nd, etc.) to rows based on their values&amp;rsquo; positions in a sorted list&lt;/p&gt;</description>
			</item>
			<item>
				<title>SQL</title>
				<link>http://blog.pdan.dev/posts/sql/</link>
				<pubDate>Wed, 01 Oct 2025 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/sql/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;images/00.svg&#34; alt=&#34;img00&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;   &lt;/p&gt;&#xA;&lt;p&gt;   &lt;/p&gt;&#xA;&lt;p&gt;   &lt;/p&gt;&#xA;&lt;p&gt;   &lt;/p&gt;&#xA;&lt;h2 id=&#34;joining-data-in-sql&#34;&gt;Joining Data in SQL&lt;/h2&gt;&#xA;&lt;h3 id=&#34;inner-joins&#34;&gt;Inner JOINs&lt;/h3&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/101.webp&#34; alt=&#34;img101&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/100.webp&#34; alt=&#34;img100&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/102.webp&#34; alt=&#34;img102&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/104.webp&#34; alt=&#34;img104&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/103.webp&#34; alt=&#34;img103&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/105.webp&#34; alt=&#34;img105&#34;&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;SELECT&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;FROM&lt;/span&gt; cities&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;-- Inner join to countries&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;INNER&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;JOIN&lt;/span&gt; countries&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;-- Match on country codes&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;ON&lt;/span&gt; cities.country_code &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; countries.code;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;-- Select name fields (with alias) and region &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;SELECT&lt;/span&gt; city.name, country.name, region&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;FROM&lt;/span&gt; cities &lt;span style=&#34;color:#66d9ef&#34;&gt;AS&lt;/span&gt; city&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;INNER&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;JOIN&lt;/span&gt; countries &lt;span style=&#34;color:#66d9ef&#34;&gt;AS&lt;/span&gt; country&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;ON&lt;/span&gt; city.country_code &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; country.code;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;-- Select fields with aliases&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;SELECT&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;c&lt;/span&gt;.code &lt;span style=&#34;color:#66d9ef&#34;&gt;AS&lt;/span&gt; country_code, &lt;span style=&#34;color:#66d9ef&#34;&gt;c&lt;/span&gt;.name, e.&lt;span style=&#34;color:#66d9ef&#34;&gt;year&lt;/span&gt;, e.inflation_rate &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;FROM&lt;/span&gt; countries &lt;span style=&#34;color:#66d9ef&#34;&gt;AS&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;c&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;-- Join to economies (alias e)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;INNER&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;JOIN&lt;/span&gt; economies &lt;span style=&#34;color:#66d9ef&#34;&gt;AS&lt;/span&gt; e &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;-- Match on code field using table aliases&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;ON&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;c&lt;/span&gt;.code &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; e.code;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;SELECT&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;c&lt;/span&gt;.name &lt;span style=&#34;color:#66d9ef&#34;&gt;AS&lt;/span&gt; country, l.name &lt;span style=&#34;color:#66d9ef&#34;&gt;AS&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;language&lt;/span&gt;, official&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;FROM&lt;/span&gt; countries &lt;span style=&#34;color:#66d9ef&#34;&gt;AS&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;c&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;INNER&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;JOIN&lt;/span&gt; languages &lt;span style=&#34;color:#66d9ef&#34;&gt;AS&lt;/span&gt; l&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;-- Match using the code column&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;USING&lt;/span&gt; (code);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;   &lt;/p&gt;</description>
			</item>
			<item>
				<title>Bash</title>
				<link>http://blog.pdan.dev/posts/bash/</link>
				<pubDate>Thu, 18 Sep 2025 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/bash/</guid>
				<description>&lt;p&gt;   &lt;/p&gt;&#xA;&lt;p&gt;   &lt;/p&gt;&#xA;&lt;p&gt;   &lt;/p&gt;&#xA;&lt;p&gt;   &lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/img1.png&#34; alt=&#34;img&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;   &lt;/p&gt;&#xA;&lt;p&gt;   &lt;/p&gt;&#xA;&lt;p&gt;   &lt;/p&gt;&#xA;&lt;p&gt;   &lt;/p&gt;&#xA;&lt;p&gt;   &lt;/p&gt;&#xA;&lt;h2 id=&#34;using-variables-in-shell-scripts&#34;&gt;Using Variables in Shell Scripts&lt;/h2&gt;&#xA;&lt;p&gt;Welcome back to the world of shell scripting. In the previous lesson, you crafted your very first shell script that printed &amp;ldquo;Hello, World!&amp;rdquo; to the screen. Today, we will take the next step by exploring how to use &lt;strong&gt;variables&lt;/strong&gt; in shell scripts. This lesson will introduce you to variable declaration, reassignment, and some basic arithmetic operations.&lt;/p&gt;&#xA;&lt;p&gt;Using variables can make your scripts more dynamic and flexible, allowing you to store information, reuse values, and perform calculations. Let&amp;rsquo;s get started!&lt;/p&gt;</description>
			</item>
			<item>
				<title>Windows Server Terminal (RDS)</title>
				<link>http://blog.pdan.dev/posts/windows-terminal-free/</link>
				<pubDate>Thu, 01 May 2025 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/windows-terminal-free/</guid>
				<description>&lt;h2 id=&#34;termenal-for-free&#34;&gt;Termenal for Free&lt;/h2&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/0.webp&#34; alt=&#34;img0&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;add-terminal-to--domain&#34;&gt;Add Terminal to  Domain&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;set DNS of DC server (if not work disable IPv6)&#xA;&lt;img src=&#34;images/1.webp&#34; alt=&#34;img1&#34;&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Change&#xA;&lt;img src=&#34;images/3.webp&#34; alt=&#34;img3&#34;&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Choose domain my domain &lt;code&gt;dan.local&lt;/code&gt;&#xA;&lt;img src=&#34;images/4.webp&#34; alt=&#34;img4&#34;&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Done !&#xA;&lt;img src=&#34;images/6.webp&#34; alt=&#34;img6&#34;&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;troubleshooter-problems&#34;&gt;Troubleshooter Problems&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;If  doesn&amp;rsquo;t connect to domain - disable ipv6&#xA;&lt;img src=&#34;images/5.webp&#34; alt=&#34;img5&#34;&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Network Level Authentication&#xA;&lt;img src=&#34;images/7.webp&#34; alt=&#34;img7&#34;&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Run &lt;code&gt;sysdm.cpl&lt;/code&gt;&#xA;&lt;img src=&#34;images/9.webp&#34; alt=&#34;img9&#34;&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Disable NLA&#xA;&lt;img src=&#34;images/8.webp&#34; alt=&#34;img8&#34;&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;create-terminal-and-adds-roles&#34;&gt;Create Terminal and Adds Roles&lt;/h3&gt;&#xA;&lt;ol start=&#34;10&#34;&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Manage &amp;gt; Add Roles and Features&#xA;&lt;img src=&#34;images/10.webp&#34; alt=&#34;img10&#34;&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Next&#xA;&lt;img src=&#34;images/11.webp&#34; alt=&#34;img11&#34;&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Select Role-based or feature-based installation and Next&#xA;&lt;img src=&#34;images/12.webp&#34; alt=&#34;img12&#34;&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Next&#xA;&lt;img src=&#34;images/13.webp&#34; alt=&#34;img13&#34;&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Remote Desktop Services , Next&#xA;&lt;img src=&#34;images/14.webp&#34; alt=&#34;img14&#34;&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; NET. Framework 4.8 Features, Next&#xA;&lt;img src=&#34;images/15.webp&#34; alt=&#34;img15&#34;&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Windows Server</title>
				<link>http://blog.pdan.dev/posts/windows-server-2025/</link>
				<pubDate>Thu, 13 Mar 2025 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/windows-server-2025/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;images/logo.svg&#34; alt=&#34;img1&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;First i need change on server dns on localhost&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/2.png&#34; alt=&#34;img2&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;After change the name of server and restart&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/3.png&#34; alt=&#34;img3&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;add-dc&#34;&gt;Add DC&lt;/h2&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/4.png&#34; alt=&#34;img4&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Next&#xA;&lt;img src=&#34;images/5.png&#34; alt=&#34;img5&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Next&#xA;&lt;img src=&#34;images/6.png&#34; alt=&#34;img6&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Next&#xA;&lt;img src=&#34;images/7.png&#34; alt=&#34;img7&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Next&#xA;&lt;img src=&#34;images/8.png&#34; alt=&#34;img8&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Next&#xA;&lt;img src=&#34;images/9.png&#34; alt=&#34;img9&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Next&#xA;&lt;img src=&#34;images/10.png&#34; alt=&#34;img10&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Next&#xA;&lt;img src=&#34;images/11.png&#34; alt=&#34;img11&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Install&#xA;&lt;img src=&#34;images/12.png&#34; alt=&#34;img12&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wait&#xA;&lt;img src=&#34;images/13.png&#34; alt=&#34;img13&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Promote this server to a domain controller&#xA;&lt;img src=&#34;images/14.png&#34; alt=&#34;img14&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;dan.local name of my dc&#xA;&lt;img src=&#34;images/15.png&#34; alt=&#34;img15&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Next&#xA;&lt;img src=&#34;images/16.png&#34; alt=&#34;img16&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Next&#xA;&lt;img src=&#34;images/17.png&#34; alt=&#34;img17&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Next&#xA;&lt;img src=&#34;images/18.png&#34; alt=&#34;img18&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Next&#xA;&lt;img src=&#34;images/19.png&#34; alt=&#34;img19&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Next&#xA;&lt;img src=&#34;images/20.png&#34; alt=&#34;img20&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Install&#xA;&lt;img src=&#34;images/21.png&#34; alt=&#34;img21&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wait&#xA;&lt;img src=&#34;images/22.png&#34; alt=&#34;img22&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Done !&lt;/p&gt;&#xA;&lt;h3 id=&#34;dns-reverse-ip&#34;&gt;DNS Reverse IP&lt;/h3&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/23.png&#34; alt=&#34;img23&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;DNS &amp;gt; Reverse Lookup Zone &amp;gt; New Zone&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/24.png&#34; alt=&#34;img24&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Next&#xA;&lt;img src=&#34;images/25.png&#34; alt=&#34;img25&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Next&#xA;&lt;img src=&#34;images/26.png&#34; alt=&#34;img26&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Next&#xA;&lt;img src=&#34;images/27.png&#34; alt=&#34;img27&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Enter Zone IP my its &lt;code&gt;192.168.1&lt;/code&gt;&#xA;&lt;img src=&#34;images/28.png&#34; alt=&#34;img28&#34;&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>MacOS</title>
				<link>http://blog.pdan.dev/posts/macos/</link>
				<pubDate>Sat, 01 Mar 2025 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/macos/</guid>
				<description>&lt;h2 id=&#34;macos-sequoia&#34;&gt;MacOS Sequoia&lt;/h2&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/0.svg&#34; alt=&#34;img0&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/1.webp&#34; alt=&#34;img1&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;install-anydesk-and-allow-permissions&#34;&gt;Install Anydesk and Allow Permissions&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Open  &lt;a href=&#34;https://anydesk.com&#34;&gt;https://anydesk.com&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/2.webp&#34; alt=&#34;img2&#34;&gt;&lt;/p&gt;&#xA;&lt;ol start=&#34;2&#34;&gt;&#xA;&lt;li&gt;Click-on &lt;code&gt;Allow&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/3.webp&#34; alt=&#34;img3&#34;&gt;&lt;/p&gt;&#xA;&lt;ol start=&#34;3&#34;&gt;&#xA;&lt;li&gt;Double-click on icon&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/4.webp&#34; alt=&#34;img4&#34;&gt;&lt;/p&gt;&#xA;&lt;ol start=&#34;4&#34;&gt;&#xA;&lt;li&gt;Double-click on &lt;code&gt;anydesk.dmg&lt;/code&gt; and drag &lt;code&gt;Anydesk&lt;/code&gt; on &lt;code&gt;Applications&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/5.webp&#34; alt=&#34;img5&#34;&gt;&lt;/p&gt;&#xA;&lt;ol start=&#34;5&#34;&gt;&#xA;&lt;li&gt;Double-click on icon &lt;code&gt;Applications&lt;/code&gt; after double-click on icon &lt;code&gt;Anydesk&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/6.webp&#34; alt=&#34;img6&#34;&gt;&lt;/p&gt;&#xA;&lt;ol start=&#34;6&#34;&gt;&#xA;&lt;li&gt;Click on &lt;code&gt;Open&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/7.webp&#34; alt=&#34;img7&#34;&gt;&lt;/p&gt;&#xA;&lt;ol start=&#34;7&#34;&gt;&#xA;&lt;li&gt;Click on &lt;code&gt;Allow&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/8.webp&#34; alt=&#34;img8&#34;&gt;&lt;/p&gt;&#xA;&lt;ol start=&#34;8&#34;&gt;&#xA;&lt;li&gt;Now need give permission for &lt;code&gt;Screen Recording&lt;/code&gt; and &lt;code&gt;Accessibility&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/9.webp&#34; alt=&#34;img9&#34;&gt;&lt;/p&gt;&#xA;&lt;ol start=&#34;9&#34;&gt;&#xA;&lt;li&gt;Switch it to ON and enter your password&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/10.webp&#34; alt=&#34;img10&#34;&gt;&lt;/p&gt;&#xA;&lt;ol start=&#34;10&#34;&gt;&#xA;&lt;li&gt;Click on &lt;code&gt;Ouit &amp;amp; Reopen&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/11.webp&#34; alt=&#34;img11&#34;&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>AutoHotKey</title>
				<link>http://blog.pdan.dev/posts/autohotkey/</link>
				<pubDate>Wed, 22 Jan 2025 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/autohotkey/</guid>
				<description>&lt;p&gt;For complex sites with redirects to another site, where each user has a unique token in the GET request metadata, making it impossible to store credentials in the browser cache since the page is different each time.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/0.svg&#34; alt=&#34;img0&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;download-autohotkey&#34;&gt;Download AutoHotkey&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;we need to download it from the website. &lt;a href=&#34;https://www.autohotkey.com&#34;&gt;https://www.autohotkey.com&lt;/a&gt; (download all versions.)&#xA;&lt;img src=&#34;images/1.png&#34; alt=&#34;img01&#34;&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;simple-script&#34;&gt;Simple Script&lt;/h3&gt;&#xA;&lt;p&gt;create simple script for autoconnect for website&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Open new text document and copy &amp;amp; past &lt;code&gt;dan&lt;/code&gt; and &lt;code&gt;pasword&lt;/code&gt; replace it with yours and save it like &lt;code&gt;myscript.ahk&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-ahk&#34; data-lang=&#34;ahk&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Run, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;https://*****.co.il/*****/default.php&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Sleep, &lt;span style=&#34;color:#ae81ff&#34;&gt;5000&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt; ; We will wait 5 sec for the site to load (you can increase the time if necessary)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;; Automatic input&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Send, dan&lt;span style=&#34;color:#75715e&#34;&gt; ; Enter your username&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Send, {Tab}&lt;span style=&#34;color:#75715e&#34;&gt; ; Switching to the password entry field&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Send, Mypassword&lt;span style=&#34;color:#75715e&#34;&gt; ; Enter your password&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Send, {Enter}&lt;span style=&#34;color:#75715e&#34;&gt; ; Press Enter to enter&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start=&#34;2&#34;&gt;&#xA;&lt;li&gt;Save it like &lt;code&gt;myscript.ahk&lt;/code&gt; or your custom name&#xA;&lt;img src=&#34;images/5.png&#34; alt=&#34;img05&#34;&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;convert-fileahk-to-fileexe&#34;&gt;Convert file.ahk to file.exe&lt;/h3&gt;&#xA;&lt;p&gt;Now we want to run it where there is no AutoHotKey program. so we need to turn it into an &lt;code&gt;.exe&lt;/code&gt; file.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Exchange 2019</title>
				<link>http://blog.pdan.dev/posts/exchange-2019/</link>
				<pubDate>Fri, 13 Dec 2024 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/exchange-2019/</guid>
				<description>&lt;h2 id=&#34;add-new-user-to-ad-for-exchange&#34;&gt;Add New User to AD for Exchange&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Tools &amp;gt; Active Directory Users and Computers&#xA;&lt;img src=&#34;images/1.png&#34; alt=&#34;img1&#34;&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Create New User &lt;code&gt;exchange&lt;/code&gt;&#xA;&lt;img src=&#34;images/2.png&#34; alt=&#34;img2&#34;&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Password never expires&#xA;&lt;img src=&#34;images/3.png&#34; alt=&#34;img3&#34;&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/4.png&#34; alt=&#34;img4&#34;&gt;&lt;/p&gt;&#xA;&lt;ol start=&#34;4&#34;&gt;&#xA;&lt;li&gt;Users &amp;gt; exchange &amp;gt; Right click &amp;gt;  Member of &amp;gt; Add &lt;code&gt;Domain Admins&lt;/code&gt;, &lt;code&gt;Schema Admins&lt;/code&gt;, &lt;code&gt;Enterprise Admins&lt;/code&gt;&amp;gt; OK&#xA;&lt;img src=&#34;images/5.png&#34; alt=&#34;img5&#34;&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/6.png&#34; alt=&#34;img6&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;on-echange-2019-server&#34;&gt;On Echange 2019 Server&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Add to DNS DC to server for me its 192.168.1.220&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/7.png&#34; alt=&#34;img7&#34;&gt;&lt;/p&gt;&#xA;&lt;ol start=&#34;2&#34;&gt;&#xA;&lt;li&gt;Dont forget disable dhcpv6 and join to domain&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/8.png&#34; alt=&#34;img8&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/9.png&#34; alt=&#34;img9&#34;&gt;&lt;/p&gt;&#xA;&lt;ol start=&#34;3&#34;&gt;&#xA;&lt;li&gt;Download and Install Net Framework 4.8&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;https://support.microsoft.com/en-us/topic/microsoft-net-framework-4-8-offline-installer-for-windows-9d23f658-3b97-68ab-d013-aa3c3e7495e0&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img src=&#34;images/10.png&#34; alt=&#34;img10&#34;&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Whatsapp</title>
				<link>http://blog.pdan.dev/posts/whatsapp/</link>
				<pubDate>Fri, 13 Dec 2024 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/whatsapp/</guid>
				<description>&lt;h3 id=&#34;whatsapp-link-generator&#34;&gt;Whatsapp Link Generator&lt;/h3&gt;&#xA;&lt;p&gt;Open text copy &amp;amp; past and change name to &lt;code&gt;whatsapp.html&lt;/code&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-javascript&#34; data-lang=&#34;javascript&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;!&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;DOCTYPE&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;html&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;html&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;lang&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;en&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;head&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;meta&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;charset&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;UTF-8&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;meta&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;viewport&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;content&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;width=device-width, initial-scale=1.0&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;title&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;WhatsApp&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Link&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Generator&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;/title&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;style&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#a6e22e&#34;&gt;body&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;display&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;flex&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;flex&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;direction&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;column&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;justify&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;content&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;center&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;align&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;items&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;center&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;text&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;align&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;center&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;height&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;100&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;vh&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;margin&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;font&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;family&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Arial&lt;/span&gt;, &lt;span style=&#34;color:#a6e22e&#34;&gt;sans&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;serif&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;background&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;color&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;black&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;color&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;white&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        .&lt;span style=&#34;color:#a6e22e&#34;&gt;ascii&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;art&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;font&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;family&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;monospace&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;white&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;space&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;pre&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;line&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;height&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1.2&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;margin&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;bottom&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;20&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;px&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;color&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;lime&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#a6e22e&#34;&gt;label&lt;/span&gt;, &lt;span style=&#34;color:#a6e22e&#34;&gt;input&lt;/span&gt;, &lt;span style=&#34;color:#a6e22e&#34;&gt;button&lt;/span&gt;, &lt;span style=&#34;color:#a6e22e&#34;&gt;p&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;margin&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;top&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;px&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#a6e22e&#34;&gt;input&lt;/span&gt;, &lt;span style=&#34;color:#a6e22e&#34;&gt;button&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;background&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;color&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;white&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;color&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;black&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;border&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;none&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;padding&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;px&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;px&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;border&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;radius&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;px&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#a6e22e&#34;&gt;button&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;hover&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;background&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;color&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;gray&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;color&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;white&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#a6e22e&#34;&gt;a&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;color&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;cyan&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;/style&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;/head&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;body&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;h1&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;WhatsApp&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Link&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Generator&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;/h1&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;div&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;class&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;ascii-art&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;/$$      /&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;                   &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;               &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;$$$$$$&lt;/span&gt;                     &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;$&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;                  &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;              &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;$$__&lt;/span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;                    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;$$$&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$$$$$$&lt;/span&gt;   &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;$$$$$$&lt;/span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;$$$$$$&lt;/span&gt;   &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;$$$$$$$&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;  &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;$$$$$$&lt;/span&gt;   &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;$$$$$$&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$__&lt;/span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;____&lt;/span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_&lt;/span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;$$_&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;  &lt;span style=&#34;color:#e6db74&#34;&gt;/$$_____/&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$$$$$$$&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;$$__&lt;/span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;$$__&lt;/span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$$$_&lt;/span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;$$$$&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;  &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;$$$$$$$&lt;/span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;   &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;$$$$$$&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$__&lt;/span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;  &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;  &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$$&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;$$$&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;$$__&lt;/span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;____&lt;/span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;   &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;$$$$$$$&lt;/span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;$$$$&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;//$$$$$$$/| $$  | $$| $$$$$$$/| $$$$$$$/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;__&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;     &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;__&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/|&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;__&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;__&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_______&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;   &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;___&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;_______&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;__&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;__&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/|&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$____&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$____&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                                                              &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;      &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                                                              &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$$&lt;/span&gt;      &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                                                              &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;__&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;__&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;      &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;/div&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;label&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;phoneNumber&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;Enter&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;the&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;phone&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;number&lt;/span&gt; (&lt;span style=&#34;color:#66d9ef&#34;&gt;in&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;the&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;format&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;972&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;XXXXXXXXXXXXXXX&lt;/span&gt;)&lt;span style=&#34;color:#f92672&#34;&gt;:&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;/label&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;input&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;type&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;text&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;id&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;phoneNumber&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;placeholder&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;972XXXXXXXXX&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;button&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;onclick&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;generateLink()&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;Create&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;link&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;/button&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;p&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;id&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;output&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;/p&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;script&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;function&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;generateLink&lt;/span&gt;() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;phoneInput&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; document.&lt;span style=&#34;color:#a6e22e&#34;&gt;getElementById&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;phoneNumber&amp;#39;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;phoneNumber&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;phoneInput&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;value&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;trim&lt;/span&gt;();&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;/^[0-9]{11,15}$/&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;test&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;phoneNumber&lt;/span&gt;)) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#a6e22e&#34;&gt;alert&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;Please enter the correct phone number in international format (without +).&amp;#39;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#a6e22e&#34;&gt;phoneNumber&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;startsWith&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;9720&amp;#39;&lt;/span&gt;) &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;phoneNumber&lt;/span&gt;[&lt;span style=&#34;color:#ae81ff&#34;&gt;4&lt;/span&gt;] &lt;span style=&#34;color:#f92672&#34;&gt;===&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;5&amp;#39;&lt;/span&gt;) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#a6e22e&#34;&gt;phoneNumber&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;972&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;phoneNumber&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;slice&lt;/span&gt;(&lt;span style=&#34;color:#ae81ff&#34;&gt;4&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;link&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;`https://web.whatsapp.com/send/?phone=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;phoneNumber&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;amp;text&amp;amp;type=phone_number&amp;amp;app_absent=0`&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;outputElement&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; document.&lt;span style=&#34;color:#a6e22e&#34;&gt;getElementById&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;output&amp;#39;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#a6e22e&#34;&gt;outputElement&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;innerHTML&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;`Link: &amp;lt;a href=&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;link&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34; target=&amp;#34;_blank&amp;#34;&amp;gt;Open WhatsApp&amp;lt;/a&amp;gt;`&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;/script&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;/body&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;/html&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;for example :&lt;/p&gt;</description>
			</item>
			<item>
				<title>Windows Server 2025 LAPS</title>
				<link>http://blog.pdan.dev/posts/windows-server-laps/</link>
				<pubDate>Fri, 13 Dec 2024 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/windows-server-laps/</guid>
				<description>&lt;h2 id=&#34;local-administrator-password-solution-laps&#34;&gt;Local Administrator Password Solution (LAPS)&lt;/h2&gt;&#xA;&lt;p&gt;The &amp;ldquo;Local Administrator Password Solution&amp;rdquo; (LAPS) provides management of local account passwords of domain joined computers. Passwords are stored in Active Directory (AD) and protected by ACL, so only eligible users can read it or request its reset.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Download Legacy LAPS for old windows servers&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.microsoft.com/en-us/download/details.aspx?id=46899&#34;&gt;https://www.microsoft.com/en-us/download/details.aspx?id=46899&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Important&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;The legacy Microsoft LAPS product is deprecated as of Windows 11 23H2 and later. Installation of the legacy Microsoft LAPS Microsoft Installer (MSI) package is blocked on newer OS versions, and Microsoft no longer considers code changes for the legacy Microsoft LAPS product.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Windows Server Core</title>
				<link>http://blog.pdan.dev/posts/windows-server-core/</link>
				<pubDate>Fri, 13 Dec 2024 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/windows-server-core/</guid>
				<description>&lt;h2 id=&#34;only-for-proxmox&#34;&gt;Only for proxmox&lt;/h2&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;egrep -wo &amp;#39;vmx|svm&amp;#39; /proc/cpuinfo&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;vmx — Intel VT-x&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;svm — AMD-V&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Enable nested virtualization for KVM&lt;/p&gt;&#xA;&lt;p&gt;Intel:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;cat /sys/module/kvm_intel/parameters/nested&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;AMD:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;cat /sys/module/kvm_amd/parameters/nested&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;&#xA;&lt;p&gt;need be 1&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;nano /etc/pve/qemu-server/100.conf&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;need be&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;cpu: host&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;💥 Command will enable the RDP connections through the firewall on Server Core:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;netsh advfirewall firewall set rule group=&amp;#34;remote desktop&amp;#34; new enable=Yes &#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;💥 Command Edit the value in the registry to enable remote desktop :&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;cscript C:\Windows\System32\Scregedit.wsf /ar 0 &#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;install-hyper-v&#34;&gt;Install Hyper-V&lt;/h3&gt;&#xA;&lt;p&gt;install hyper-v and management tools&lt;/p&gt;</description>
			</item>
			<item>
				<title>Windows Server Domain Change</title>
				<link>http://blog.pdan.dev/posts/windows-server-change-domain/</link>
				<pubDate>Fri, 13 Dec 2024 00:00:00 +0000</pubDate>
				<guid>http://blog.pdan.dev/posts/windows-server-change-domain/</guid>
				<description>&lt;h2 id=&#34;dns&#34;&gt;DNS&lt;/h2&gt;&#xA;&lt;h3 id=&#34;add-new-name&#34;&gt;Add New Name&lt;/h3&gt;&#xA;&lt;p&gt;Add new name my name its &lt;code&gt;mynewzone.local&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/01.webp&#34; alt=&#34;img01&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/02.webp&#34; alt=&#34;img02&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/03.webp&#34; alt=&#34;img03&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/04.webp&#34; alt=&#34;img04&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/05.webp&#34; alt=&#34;img05&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/06.webp&#34; alt=&#34;img06&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/07.webp&#34; alt=&#34;img07&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/08.webp&#34; alt=&#34;img08&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;add-new-_msdcs&#34;&gt;Add new _msdcs&lt;/h3&gt;&#xA;&lt;p&gt;Add new name my name its &lt;code&gt;_msdcs.mynewzone.local&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/02.webp&#34; alt=&#34;img02&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/03.webp&#34; alt=&#34;img03&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/04.webp&#34; alt=&#34;img04&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/09.webp&#34; alt=&#34;img09&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/06.webp&#34; alt=&#34;img06&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/10.webp&#34; alt=&#34;img10&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/11.webp&#34; alt=&#34;img11&#34;&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>OpenWrt</title>
				<link>http://blog.pdan.dev/posts/openwrt/</link>
				<pubDate>Fri, 01 Nov 2024 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/openwrt/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;images/OpenWrt_Logo.svg&#34; alt=&#34;img&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt; &#xA; &lt;/p&gt;&#xA;&lt;p&gt; &#xA; &lt;/p&gt;&#xA;&lt;h2 id=&#34;bri-r3-mini&#34;&gt;BRI-R3 Mini&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://wiki.banana-pi.org/Getting_Started_with_BPI-R3_MINI&#34;&gt;https://wiki.banana-pi.org/Getting_Started_with_BPI-R3_MINI&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://downloads.openwrt.org/snapshots/targets/mediatek/filogic/&#34;&gt;https://downloads.openwrt.org/snapshots/targets/mediatek/filogic/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://firmware-selector.openwrt.org/?version=SNAPSHOT&amp;amp;target=mediatek%2Ffilogic&amp;amp;id=bananapi_bpi-r3-mini&#34;&gt;https://firmware-selector.openwrt.org/?version=SNAPSHOT&amp;amp;target=mediatek%2Ffilogic&amp;amp;id=bananapi_bpi-r3-mini&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://openwrt.org/toh/sinovoip/bananapi_bpi_r3_mini?s%5B%5D=bananapi&amp;amp;s%5B%5D=bpi&amp;amp;s%5B%5D=r3&amp;amp;s%5B%5D=mini&#34;&gt;https://openwrt.org/toh/sinovoip/bananapi_bpi_r3_mini?s[]=bananapi&amp;amp;s[]=bpi&amp;amp;s[]=r3&amp;amp;s[]=mini&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt; &#xA; &lt;/p&gt;&#xA;&lt;p&gt; &#xA; &lt;/p&gt;&#xA;&lt;h3 id=&#34;unbrick-nand-from-emmc-u-boot&#34;&gt;Unbrick Nand from Emmc U-Boot&lt;/h3&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;usb start&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;usb storage&#xA;&#xA;Device 0: Vendor: SanDisk Rev: 1.00 Prod: Cruzer Blade&#xA;            Type: Removable Hard Disk&#xA;            Capacity: 14664.0 MB = 14.3 GB (30031872 x 512)&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;usb tree&#xA;&#xA;USB device tree:&#xA;  1  Hub (5 Gb/s, 0mA)&#xA;  |  U-Boot XHCI Host Controller&#xA;  |&#xA;  +-2  Mass Storage (480 Mb/s, 200mA)&#xA;       SanDisk Cruzer Blade 03025908011622061257&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;ls usb 0:1 &#xA;&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;fatload usb 0:1 $loadaddr openwrt-mediatek-filogic-bananapi_bpi-r3-mini-snand-factory.bin&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;fatload usb 0:1 $loadaddr mtk-bpi-r3mini-NAND-20231115-single-image.bin&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;nand erase 0x0 0x8000000&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;nand write $loadaddr 0 0x8000000&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;switch to nand&lt;/p&gt;</description>
			</item>
			<item>
				<title>Gmail</title>
				<link>http://blog.pdan.dev/posts/gmail/</link>
				<pubDate>Wed, 10 Jul 2024 20:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/gmail/</guid>
				<description>&lt;p&gt;Settings :&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/pop3.webp&#34; alt=&#34;img01&#34;&gt;&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;pop.gmail.com&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;smtp.gmail.com&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;POP3 = 995 &#xA;SMTP = 587&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;WEB:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;https://myaccount.google.com/apppasswords&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img src=&#34;images/web.webp&#34; alt=&#34;img02&#34;&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>NFS</title>
				<link>http://blog.pdan.dev/posts/nfs/</link>
				<pubDate>Mon, 01 Apr 2024 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/nfs/</guid>
				<description>&lt;h2 id=&#34;install-server-nfs&#34;&gt;Install Server NFS&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;update&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo apt update&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;ol start=&#34;2&#34;&gt;&#xA;&lt;li&gt;install nfs server&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo apt install nfs-kernal-server&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;ol start=&#34;3&#34;&gt;&#xA;&lt;li&gt;view if nfs ok&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;rpcinfo -p | grep nfs&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;ol start=&#34;4&#34;&gt;&#xA;&lt;li&gt;other ways view if ok&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;cat /proc/filesystems | grep nfs&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;ol start=&#34;5&#34;&gt;&#xA;&lt;li&gt;enable nfs-server start after restart&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo systemctl enable nfs-server&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;ol start=&#34;6&#34;&gt;&#xA;&lt;li&gt;create folder&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo mkdir /mnt/nfs&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;chown nobody:nogroup /mnt/nfs&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;ol start=&#34;7&#34;&gt;&#xA;&lt;li&gt;admin privilege on folder&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo chmod -R 777 /mnt/nfs&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;ol start=&#34;8&#34;&gt;&#xA;&lt;li&gt;edit exports file&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo nano /etc/exports&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;ol start=&#34;9&#34;&gt;&#xA;&lt;li&gt;The /etc/exports Options&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;General Options&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Description&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;secure&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Requires request originate on secure ports, those less than 1024. This is on by default.&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;insecure&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Turns off the secure option.&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;ro&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Allows only read-only access. This is the default.&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;rw&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Allows read/write access.&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;sync&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Performs all writes when requested. This is the default.&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;async&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Performs all writes when the server is ready.&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;no_wdelay&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Performs writes immediately, not checking to see if they are related.&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;wdelay&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Checks to see if writes are related, and, if so, waits to perform them together. Can degrade performance. This is the default.&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;hide&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Automatically hides an exported directory that is the subdirectory of another exported directory. The subdirectory has to be explicitly mounted to be accessed. Mounting the parent directory does not allow access. This is the default.&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;no_hide&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Does not hide an exported directory that is the subdirectory of another exported directory (opposite of hide). Only works for single hosts and can be unreliable.&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;subtree_check&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Checks parent directories in a file system to validate an exported subdirectory. This is the default.&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;no_subtree_check&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Does not check parent directories in a file system to validate an exported subdirectory.&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;insecure_locks&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Does not require authentication of locking requests. Used for older NFS versions.&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;User ID Mapping&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Description&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;all_squash&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Maps all UIDs and GIDs to the anonymous user. Useful for NFS-exported public FTP directories, news spool directories, and so forth.&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;no_all_squash&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;The opposite option to all_squash. This is the default setting.&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;root_squash&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Maps requests from remote root user to the anonymous UID/GID. This is the default.&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;no_root_squash&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Turns off root squashing. Allows the root user to access as the remote root.&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;anonuid&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;anongid&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Sets explicitly the UID and GID of the anonymous account used for all_squash and root_squash options. The defaults are nobody and nogroup.&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;exemple:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Rclone Gdrive Windows 10</title>
				<link>http://blog.pdan.dev/posts/rclone-gdrive/</link>
				<pubDate>Mon, 01 Apr 2024 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/rclone-gdrive/</guid>
				<description>&lt;h2 id=&#34;create-api-for-google-drive&#34;&gt;Create API for Google Drive&lt;/h2&gt;&#xA;&lt;p&gt;go to&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;https://console.cloud.google.com/&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;api &amp;amp; services&#xA;&lt;img src=&#34;images/1.webp&#34; alt=&#34;1&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;open new project&#xA;&lt;img src=&#34;images/2.webp&#34; alt=&#34;2&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Create new project &lt;code&gt;Google Drive&lt;/code&gt;&#xA;&lt;img src=&#34;images/3.webp&#34; alt=&#34;3&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Open &lt;code&gt;Enable Apis and Services&lt;/code&gt;&#xA;&lt;img src=&#34;images/4.webp&#34; alt=&#34;4&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/5.webp&#34; alt=&#34;5&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Enable Google Drive&#xA;&lt;img src=&#34;images/6.webp&#34; alt=&#34;6&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/7.webp&#34; alt=&#34;7&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/8.webp&#34; alt=&#34;8&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/9.webp&#34; alt=&#34;9&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Next&#xA;&lt;img src=&#34;images/10.webp&#34; alt=&#34;10&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/11.webp&#34; alt=&#34;11&#34;&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Don`t forget add test accaunt&#xA;&lt;img src=&#34;images/20.webp&#34; alt=&#34;20&#34;&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/12.webp&#34; alt=&#34;12&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Create new credentials&#xA;&lt;img src=&#34;images/13.webp&#34; alt=&#34;13&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/14.webp&#34; alt=&#34;14&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/15.webp&#34; alt=&#34;15&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Save password&#xA;&lt;img src=&#34;images/16.webp&#34; alt=&#34;16&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;download-rclone&#34;&gt;Download RClone&lt;/h3&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;https://rclone.org/downloads/&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img src=&#34;images/17.webp&#34; alt=&#34;17&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;download-nssm&#34;&gt;Download NSSM&lt;/h3&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;https://nssm.cc/download&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img src=&#34;images/18.webp&#34; alt=&#34;18&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;copy &lt;code&gt;nssm.exe&lt;/code&gt; to rclone folder&#xA;&lt;img src=&#34;images/19.webp&#34; alt=&#34;19&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;configuration-rclone&#34;&gt;Configuration RClone&lt;/h3&gt;&#xA;&lt;p&gt;open &lt;code&gt;cmd&lt;/code&gt;&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;C:\Users\Burzum&amp;gt;cd Downloads&#xA;&#xA;C:\Users\Burzum\Downloads&amp;gt;cd rclone-v1.67.0-windows-amd64&#xA;&#xA;C:\Users\Burzum\Downloads\rclone-v1.67.0-windows-amd64&amp;gt;rclone config&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;No remotes found, make a new one?&lt;/p&gt;</description>
			</item>
			<item>
				<title>Sleeping-Hacker</title>
				<link>http://blog.pdan.dev/posts/hacker/</link>
				<pubDate>Sat, 04 Nov 2023 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/hacker/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;images/ofek.jpg&#34; alt=&#34;ofek1&#34;&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Ansible</title>
				<link>http://blog.pdan.dev/posts/ansible/</link>
				<pubDate>Sun, 03 Sep 2023 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/ansible/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;images/ansible1.svg&#34; alt=&#34;Ansible1&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Host&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;[frontend_servers]&#xA;reactjs_one ansible_host=192.168.1.200 ansible_user=ubuntu ansible_ssh_private_key=~/.ssh/id_rsa&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;ansible -i hosts frontend_servers -m ping&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ansible.cfg&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;[defaults]&#xA;host_key_checking = False&#xA;inventory         = ./hosts&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;reactjs.yaml&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;---&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;- &lt;span style=&#34;color:#f92672&#34;&gt;hosts&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;frontend_servers&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;vars&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;project_path&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;/var/www&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;repository&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;gitlab.com/danpoznanski/example.git&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;tasks&lt;/span&gt;: &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    - &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Yarn | GPG&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;apt_key&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;url&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;https://dl.yarnpkg.com/debian/pubkey.gpg&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;state&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;present&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    - &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Yarn | Ensure Debian sources list file exists&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;file&lt;/span&gt;: &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;path&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;/etc/apt/sources.list.d/yarn.list&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;owner&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;root&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;mode&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;0644&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;state&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;touch&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    - &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Yarn | Update APT cache&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;apt&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;update_cache&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;yes&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    - &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;Install the packages YARN, NPM, NodeJS, Nginx&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;apt&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;pkg&lt;/span&gt;: [&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;yarn&amp;#39;&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;npm&amp;#39;&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;nodejs&amp;#39;&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;nginx&amp;#39;&lt;/span&gt;]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    - &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;Delete the html file&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;file&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;path&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;{{project_path}}/html&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;state&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;absent&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    - &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;Set some variable&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;set_fact&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;release_path&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;{{ project_path }}/releases/{{ lookup(&amp;#39;pipe&amp;#39;,&amp;#39;date +%Y%m%d%H%M%S&amp;#39;,) }}&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;current_path&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;{{ project_path }}/html&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    - &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;Create project path&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;file&lt;/span&gt;: &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#ae81ff&#34;&gt;dest={{ project_path }}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#ae81ff&#34;&gt;mode=0755&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#ae81ff&#34;&gt;recurse=yes&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#ae81ff&#34;&gt;state=directory&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    - &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;Retrieve current release folder&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;command&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;readlink -f html&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;register&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;current_release_path&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;ignore_errors&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;yes&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;args&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;chdir&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;{{ project_path }}&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    - &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;Create Release folder&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;file&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#ae81ff&#34;&gt;dest={{ release_path }}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#ae81ff&#34;&gt;mode=0755&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#ae81ff&#34;&gt;recurse=yes&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#ae81ff&#34;&gt;state=directory&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    - &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;Clone the repository&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;git&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;repo&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;{{ repository }}&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;dest&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;{{ release_path }}&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    - &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;YARN install dependencies&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;command&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;yarn install&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;args&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;chdir&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;{{ release_path }}&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    - &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;Yarn build&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;command&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;yaen build&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;args&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;chdir&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;{{ release_path }}&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    - &lt;span style=&#34;color:#f92672&#34;&gt;name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;Update symlink&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;file&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#ae81ff&#34;&gt;scr={{ release_path }}/build&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#ae81ff&#34;&gt;dest={{ current_path }}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#ae81ff&#34;&gt;state=link&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;run playbook &lt;code&gt;-b&lt;/code&gt; or &lt;code&gt;--become&lt;/code&gt; its sudo&lt;/p&gt;</description>
			</item>
			<item>
				<title>Docker</title>
				<link>http://blog.pdan.dev/posts/docker/</link>
				<pubDate>Sun, 03 Sep 2023 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/docker/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;images/docker1.svg&#34; alt=&#34;docker1&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;install-using-the-apt-repository&#34;&gt;Install using the Apt repository&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# Add Docker&amp;#39;s official GPG key:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo apt-get update&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo apt-get install ca-certificates curl gnupg&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo install -m &lt;span style=&#34;color:#ae81ff&#34;&gt;0755&lt;/span&gt; -d /etc/apt/keyrings&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo chmod a+r /etc/apt/keyrings/docker.gpg&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# Add the repository to Apt sources:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;echo &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;deb [arch=&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;dpkg --print-architecture&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34; signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;  &amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;. /etc/os-release &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; echo &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;$VERSION_CODENAME&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34; stable&amp;#34;&lt;/span&gt; | &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  sudo tee /etc/apt/sources.list.d/docker.list &amp;gt; /dev/null&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo apt-get update&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;simple-commands&#34;&gt;Simple commands&lt;/h2&gt;&#xA;&lt;p&gt;watch version&lt;/p&gt;</description>
			</item>
			<item>
				<title>Ngrok</title>
				<link>http://blog.pdan.dev/posts/ngrok/</link>
				<pubDate>Sun, 03 Sep 2023 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/ngrok/</guid>
				<description>&lt;h2 id=&#34;ngrok-on-ubuntu&#34;&gt;Ngrok on Ubuntu&lt;/h2&gt;&#xA;&lt;p&gt;sign up on ngrok website&lt;/p&gt;&#xA;&lt;p&gt;after download ngrok Unzip&lt;/p&gt;&#xA;&lt;p&gt;create folders and file&lt;/p&gt;&#xA;&lt;p&gt;root/.config/ngrok/ngrok.yml&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-yml&#34; data-lang=&#34;yml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# in ngrok.yml&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;authtoken&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;2UoPmLJDDOzSLlTA3obRZuswHTN_ZbmHcjZYLDdsPShY5KYP&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;version&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;region&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;us&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;for config&#xA;&lt;code&gt;./ngrok config edit&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;to run&#xA;&lt;code&gt;./ngrok http 8080 &lt;/code&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>SonarQube</title>
				<link>http://blog.pdan.dev/posts/sonarqube/</link>
				<pubDate>Sun, 03 Sep 2023 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/sonarqube/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;images/sonarqube1.svg&#34; alt=&#34;sonarqube1&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;install-sonarqube-on-ubuntu&#34;&gt;Install SonarQube on Ubuntu&lt;/h2&gt;&#xA;&lt;h3 id=&#34;modify-kernel-system-limits&#34;&gt;Modify Kernel System Limits&lt;/h3&gt;&#xA;&lt;p&gt;SonarQube uses Elasticsearch to store its indices in an MMap FS directory. It requires some changes to the system defaults.&lt;/p&gt;&#xA;&lt;p&gt;Edit the sysctl configuration file&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo nano /etc/sysctl.conf&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Add the following lines:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;vm.max_map_count&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;262144&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;fs.file-max&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;65536&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ulimit -n &lt;span style=&#34;color:#ae81ff&#34;&gt;65536&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ulimit -u &lt;span style=&#34;color:#ae81ff&#34;&gt;4096&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Save and exit the file&lt;/p&gt;&#xA;&lt;p&gt;Reboot the system to apply the changes&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo reboot&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;install-java&#34;&gt;install Java&lt;/h3&gt;&#xA;&lt;p&gt;See vesion&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;java-version&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;install java 17 need for sonarqube 10  for sonarqube 9 need java 11&lt;/p&gt;</description>
			</item>
			<item>
				<title>Loki</title>
				<link>http://blog.pdan.dev/posts/loki/</link>
				<pubDate>Tue, 01 Aug 2023 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/loki/</guid>
				<description>&lt;p&gt;&lt;em&gt;&lt;strong&gt;The architecture of Loki&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/loki1.webp&#34; alt=&#34;loki1&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;A brief overview of components in Loki architecture:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Promtail - It is the log collection agent that runs on each node of a Kubernetes cluster.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Distributor - The first component to receive logs from promtail.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Ingestor - It builds compressed chunks of log data and flushes them out as chunks.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Querior - It handles the read path, scanning the index to figure out which chunks match&lt;/p&gt;</description>
			</item>
			<item>
				<title>Prometheus</title>
				<link>http://blog.pdan.dev/posts/prometheus/</link>
				<pubDate>Tue, 01 Aug 2023 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/prometheus/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;images/prometheus1.svg&#34; alt=&#34;prometheus1&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;prometheus&#34;&gt;Prometheus&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Prometheus - database of time series&lt;/li&gt;&#xA;&lt;li&gt;Exporter - instrument for get metric&lt;/li&gt;&#xA;&lt;li&gt;Alertmanager - notification and everything is connected with it&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Basic startup parameters&lt;/p&gt;&#xA;&lt;p&gt;We will start looking at the configuration file in the next task, but now let&amp;rsquo;s look at the main Prometheus startup keys:&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;--config.file=&amp;quot;prometheus.yml&amp;quot;&lt;/code&gt; - which configuration file to use;&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;--web.listen-address=&amp;quot;0.0.0.0:9090&amp;quot;&lt;/code&gt; - the address that the embedded web server will listen to;&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;--web.enable-admin-api&lt;/code&gt; - enable or disable administrative API via web-interface;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Puppet</title>
				<link>http://blog.pdan.dev/posts/puppet/</link>
				<pubDate>Tue, 01 Aug 2023 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/puppet/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;images/Puppet1.svg&#34; alt=&#34;Puppet1&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;crm-configuration-management-system&#34;&gt;CRM Configuration Management System&lt;/h2&gt;&#xA;&lt;p&gt;Diagram of Work Puppet Push/Pull&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/Puppet2.svg&#34; alt=&#34;Puppet2&#34;&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Consul</title>
				<link>http://blog.pdan.dev/posts/consul/</link>
				<pubDate>Mon, 08 May 2023 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/consul/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;images/consul1.svg&#34; alt=&#34;consul1&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Consul provides feature such as:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Service discovery&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Tagging&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Health checks&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Secure Service Communication&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Multi Datacenter&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;System-wide key/value storage&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/consul2.webp&#34; alt=&#34;consul2&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;server-vs-client&#34;&gt;Server vs Client&lt;/h2&gt;&#xA;&lt;p&gt;Server:&lt;/p&gt;&#xA;&lt;p&gt;running on individual machine&lt;/p&gt;&#xA;&lt;p&gt;form a failsafe cluster&lt;/p&gt;&#xA;&lt;p&gt;communicating with client machine&lt;/p&gt;&#xA;&lt;p&gt;Client:&lt;/p&gt;&#xA;&lt;p&gt;working on machine were running service&lt;/p&gt;&#xA;&lt;p&gt;checking health of server&lt;/p&gt;&#xA;&lt;p&gt;sending information on server&lt;/p&gt;&#xA;&lt;p&gt;example config registration service&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;`&lt;/span&gt;{ &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;service&amp;#34;&lt;/span&gt;:{&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;web&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;tags&amp;#34;&lt;/span&gt;:[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;be&amp;#34;&lt;/span&gt;], &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;port&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;80&lt;/span&gt;,&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;check&amp;#34;&lt;/span&gt;:{&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;args&amp;#34;&lt;/span&gt;: [&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;curl&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;localhost&amp;#34;&lt;/span&gt;], &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;interval&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;10s&amp;#34;&lt;/span&gt; }}}&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;`&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;instal-consul&#34;&gt;Instal consul&lt;/h2&gt;&#xA;&lt;p&gt;create account consul&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;useradd -s /bin/false -m consul&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;download binar file &lt;a href=&#34;https://developer.hashicorp.com/consul/downloads&#34;&gt;https://developer.hashicorp.com/consul/downloads&lt;/a&gt; for ubuntu&lt;/p&gt;</description>
			</item>
			<item>
				<title>ELK Stack</title>
				<link>http://blog.pdan.dev/posts/elk-stack/</link>
				<pubDate>Mon, 08 May 2023 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/elk-stack/</guid>
				<description>&lt;h2 id=&#34;elk-stack&#34;&gt;ELK Stack&lt;/h2&gt;&#xA;&lt;h2 id=&#34;elasticsearch&#34;&gt;Elasticsearch&lt;/h2&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/elk2.svg&#34; alt=&#34;elk2&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;is search and analytics engine that is widely used for full-text search, log and event data analysis&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;storage&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;analytics&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;search&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Shard - shard is a basic unit of storage and search&lt;/p&gt;&#xA;&lt;p&gt;Indexer - logical space for storing shards&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/elk1.svg&#34; alt=&#34;elk1&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Logstach&lt;/p&gt;&#xA;&lt;p&gt;Kibana&lt;/p&gt;&#xA;&lt;p&gt;Download and install the Debian package manually&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.11.1-amd64.deb&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.11.1-amd64.deb.sha512&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;shasum -a &lt;span style=&#34;color:#ae81ff&#34;&gt;512&lt;/span&gt; -c elasticsearch-8.11.1-amd64.deb.sha512 &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo dpkg -i elasticsearch-8.11.1-amd64.deb&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;after install take password from cli&lt;/p&gt;</description>
			</item>
			<item>
				<title>Vagrant</title>
				<link>http://blog.pdan.dev/posts/vagrant/</link>
				<pubDate>Wed, 03 May 2023 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/vagrant/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;images/vagrant1.svg&#34; alt=&#34;vagrant1&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;&#xA;&lt;p&gt;vagrantfile&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-vagrantfile&#34; data-lang=&#34;vagrantfile&#34;&gt;vagrant.configure(&amp;#34;2&amp;#34;) do |config|&#xA;  &#xA;  config.vm.provider :virtualbox do |v|&#xA;    v.memory = 2048&#xA;  end&#xA;&#xA;  config.vm.define &amp;#34;reactjsserver&amp;#34; do |db|&#xA;    db.vm.box = &amp;#34;ubuntu/focal64&amp;#34;&#xA;    db.vm.hostname = &amp;#34;reactjsserver&amp;#34;&#xA;    db.vm.network :private_network, ip: &amp;#34;10.10.10.10&amp;#34;&#xA;    db.vm.provision &amp;#34;ansible&amp;#34; do |ansible&amp;#34;&#xA;        ansible.playbook = &amp;#34;OneServer/reactjs.yaml&amp;#34;&#xA;        ansible.become = true&#xA;    end &#xA;  end&#xA;end&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;run vagrant&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;vargant up&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;connect to vagrant virtualmachine&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;vagrant ssh&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;ss -tlpn&lt;/code&gt; see all ports&lt;/p&gt;&#xA;&lt;p&gt;see all boxes&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;vagrant box list&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;delete virtual machine&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;vagrant destroy&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;search-boxes&#34;&gt;Search Boxes&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://app.vagrantup.com/boxes/search&#34;&gt;https://app.vagrantup.com/boxes/search&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Proxmox</title>
				<link>http://blog.pdan.dev/posts/proxmox/</link>
				<pubDate>Mon, 01 May 2023 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/proxmox/</guid>
				<description>&lt;h2 id=&#34;before-create-datacenter&#34;&gt;Before Create Datacenter&lt;/h2&gt;&#xA;&lt;p&gt;add ssh public key to hosts&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;nano /etc/ssh/ssh_config&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;PermitRootLogin yes&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;copy key to node1&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ssh-copy-id -i root@192.168.1.128&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;copy key to node2&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ssh-copy-id -i root@192.168.1.129&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;copy key t node3&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ssh-copy-id -i root@192.168.1.130&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;config-local-dns&#34;&gt;Config Local DNS&lt;/h3&gt;&#xA;&lt;p&gt;&lt;strong&gt;Node1&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;connect to ssh&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;ssh root@192.168.1.129&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;nano /etc/hosts &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;192.168.1.128 pve1.local pve1&#xA;192.168.1.129 pve2.local pve2&#xA;192.168.1.130 pve3.local pve3&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;&#xA;&lt;p&gt;test for ping  &lt;code&gt;ping pve2&lt;/code&gt; and &lt;code&gt;ping pve3&lt;/code&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;Wrong Repository&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;nano /etc/apt/sources.list&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;# deb https://enterprise.proxmox.com/debian/pve stretch pve-enterprise&#xA;&#xA;dev https://download.proxmox.com/debian/pve stretch no-subscription &#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;install htop and mc&lt;/p&gt;</description>
			</item>
			<item>
				<title>Vault</title>
				<link>http://blog.pdan.dev/posts/vault/</link>
				<pubDate>Mon, 01 May 2023 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/vault/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;images/0.svg&#34; alt=&#34;vault0&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;vault-overview-use-cases-architecture-basics&#34;&gt;Vault Overview. Use-cases. Architecture Basics&lt;/h2&gt;&#xA;&lt;h3 id=&#34;description&#34;&gt;&lt;strong&gt;Description&lt;/strong&gt;&lt;/h3&gt;&#xA;&lt;p&gt;We are glad to welcome you to the first task of the mini-workshop on HashiCorp Vault.&lt;/p&gt;&#xA;&lt;p&gt;Today we will look at:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;What are secrets and why keep them? What is Vault and what problems does it solve?&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Vault Architecture Basics (Seal/Unseal, Tokens, Secret Engines, ACLs, etc.)&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;What are the analogues of Vault?&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Practice: install Vault on a Linux virtual machine and configure the KV Secret engine there&lt;/p&gt;</description>
			</item>
			<item>
				<title>Terraform</title>
				<link>http://blog.pdan.dev/posts/terraform/</link>
				<pubDate>Mon, 03 Apr 2023 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/terraform/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;images/terraform1.svg&#34; alt=&#34;terraform1&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;structura of terraform:&lt;/p&gt;&#xA;&lt;p&gt;main.tf&lt;/p&gt;&#xA;&lt;p&gt;outputs.tf&lt;/p&gt;&#xA;&lt;p&gt;terraform.tfstate&lt;/p&gt;&#xA;&lt;p&gt;terraform.tfstate.backup&lt;/p&gt;&#xA;&lt;p&gt;variable.tf&lt;/p&gt;&#xA;&lt;p&gt;used for create new project &lt;code&gt;terraform init&lt;/code&gt; command in Terraform initializes a new or existing Terraform configuration, setting up the environment, downloading necessary plugins, modules, and configuring the backend to prepare for managing infrastructure as code.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cd /path/to/your/terraform/project&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;terraform init&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;terraform plan&lt;/code&gt; command in Terraform creates an execution plan that outlines the actions Terraform will take to modify the infrastructure according to the configuration files. It shows the changes, additions, modifications, or deletions of resources without actually applying these changes, allowing users to review and validate the proposed modifications before execution.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Victoria Metrics</title>
				<link>http://blog.pdan.dev/posts/victoria-metrics/</link>
				<pubDate>Sun, 01 Jan 2023 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/victoria-metrics/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;images/victoria1.svg&#34; alt=&#34;victoria1&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;pre-setting&#34;&gt;Pre-setting&lt;/h2&gt;&#xA;&lt;p&gt;Installing packages&#xA;Let&amp;rsquo;s make sure some packages are available:&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;tar&lt;/code&gt; - to unpack the archive with the binary.&#xA;&lt;code&gt;wget&lt;/code&gt; - to download the archive.&#xA;&lt;code&gt;curl&lt;/code&gt; - to execute queries to test the system.&#xA;Depending on the Linux distribution, the installation will be slightly different.&lt;/p&gt;&#xA;&lt;p&gt;for DEB-based systems (Astra Linux / Debian / Ubuntu):&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;apt install tar wget curl&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;for RPM-based systems (RED OS / Rocky Linux / CentOS):&lt;/p&gt;</description>
			</item>
			<item>
				<title>Shadowsock &#43; V2Ray</title>
				<link>http://blog.pdan.dev/posts/shadowsocks/</link>
				<pubDate>Tue, 06 Sep 2022 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/shadowsocks/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;images/shadowsocks3.svg&#34; alt=&#34;shadowsocks3&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;server-shadowsocks-classic&#34;&gt;Server Shadowsocks Classic&lt;/h2&gt;&#xA;&lt;p&gt;First uprgade system&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;apt update &amp;amp;&amp;amp; apt uprgade -y&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Install need packets&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;apt install shadowsocks-libev -y&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;View what your ip address&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;ip -br a&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Edit options parametrs you can change port and all ip &lt;code&gt;&amp;quot;::1&amp;quot;, &amp;quot;127.0.0.1&amp;quot;&lt;/code&gt; for example &amp;ldquo;185.85.85.85&amp;rdquo;&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;nano /etc/shodowsocks-libev/config.json&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;server&amp;#34;&lt;/span&gt;:[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;::1&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;127.0.0.1&amp;#34;&lt;/span&gt;],&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;mode&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;tcp_and_udp&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;server_port&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;8388&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;local_port&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;1080&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;password&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;12345678 &amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;timeout&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;60&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;method&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;chacha20-ietf-poly1305&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;server&amp;#34;&lt;/span&gt;:[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;185.85.85.85&amp;#34;&lt;/span&gt;],&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;mode&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;tcp_and_udp&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;server_port&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;8388&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;local_port&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;1080&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;password&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;12345678 &amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;timeout&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;60&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;method&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;chacha20-ietf-poly1305&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;after change restart service:&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;service shadowsocks-libev restart &lt;/code&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Gitlab</title>
				<link>http://blog.pdan.dev/posts/gitlab/</link>
				<pubDate>Thu, 01 Sep 2022 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/gitlab/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;images/gitlab.svg&#34; alt=&#34;gitlab&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://gitlab.com/rluna-gitlab/gitlab-ce&#34;&gt;https://gitlab.com/rluna-gitlab/gitlab-ce&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;For Ubuntu 20.04 and 22.04, &lt;code&gt;arm64&lt;/code&gt; packages are also available and will be automatically used on that platform when using the GitLab repository for installation.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo apt-get update&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo apt-get install -y curl openssh-server ca-certificates tzdata perl&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Next, install Postfix (or Sendmail) to send notification emails. If you want to use another solution to send emails please skip this step and configure an external SMTP server after GitLab has been installed&lt;/p&gt;</description>
			</item>
			<item>
				<title>DHCPv6</title>
				<link>http://blog.pdan.dev/posts/dhcpv6/</link>
				<pubDate>Sun, 01 May 2022 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/dhcpv6/</guid>
				<description>&lt;h2 id=&#34;pv6-address-types&#34;&gt;Pv6 Address Types&lt;/h2&gt;&#xA;&lt;h3 id=&#34;the-ipv6-address-space&#34;&gt;The IPv6 Address Space&lt;/h3&gt;&#xA;&lt;p&gt;As we already learned, IPv6 addresses are 128-bit long, which means that there are 340 undecillion possible addresses (the exact number is shown below).&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;340,282,366,920,938,463,463,374,607,431,768,211,456&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;or reference, in IPv4 with its 32-bit address space, there are 4.29 billion possible addresses.&lt;/p&gt;&#xA;&lt;p&gt;The Internet Assigned Numbers Authority (IANA) allocates only a small portion of the whole IPv6 space. IANA provides global unicast addresses that start with leading leftmost bits 001. A small portion of the addresses starting with 000 and 111 are allocated for special types. All other possible addresses are reserved for future use and are currently not being allocated.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Hack &amp; Tricks</title>
				<link>http://blog.pdan.dev/posts/hacks--tricks/</link>
				<pubDate>Sun, 01 May 2022 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/hacks--tricks/</guid>
				<description>&lt;h2 id=&#34;whatsapp-link&#34;&gt;Whatsapp link&lt;/h2&gt;&#xA;&lt;p&gt;exemple:&#xA;&lt;a href=&#34;https://wa.me/972501234567&#34;&gt;https://wa.me/972501234567&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Steam OS</title>
				<link>http://blog.pdan.dev/posts/steamos/</link>
				<pubDate>Sun, 01 May 2022 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/steamos/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;images/SteamOS.svg&#34; alt=&#34;steamos&#34;&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;installing-portproton&#34;&gt;Installing PORTPROTON:&lt;/h1&gt;&#xA;&lt;p&gt;All command do in terminal&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;out from mode &amp;ldquo;Read only&amp;rdquo;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo steamos-readonly disable&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start=&#34;2&#34;&gt;&#xA;&lt;li&gt;Initialize the key&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo pacman-key --init&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start=&#34;3&#34;&gt;&#xA;&lt;li&gt;Custom Keys&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo pacman-key -u&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start=&#34;4&#34;&gt;&#xA;&lt;li&gt;adding keys from the repository&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo pacman-key --populate&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start=&#34;5&#34;&gt;&#xA;&lt;li&gt;Install the &lt;code&gt;.cab&lt;/code&gt; unzipping program&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo pacman -S cabextract&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start=&#34;6&#34;&gt;&#xA;&lt;li&gt;Install dependencies&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo pacman -Syu bash icoutils wget bubblewrap zstd cabextract bc tar openssl gamemode desktop-file-utils curl dbus freetype2 gdk-pixbuf2 ttf-font zenity lsb-release nss xorg-xrandr vulkan-driver vulkan-icd-loader lsof lib32-freetype2 lib32-libgl lib32-gcc-libs lib32-libx11 lib32-libxss lib32-alsa-plugins lib32-libgpg-error lib32-nss lib32-vulkan-driver lib32-vulkan-icd-loader lib32-gamemode lib32-openssl&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start=&#34;7&#34;&gt;&#xA;&lt;li&gt;Installing the program&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wget -c &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;https://github.com/Castro-Fidel/PortWINE/raw/master/portwine_install_script/PortProton_1.0&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; sh PortProton_1.0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start=&#34;8&#34;&gt;&#xA;&lt;li&gt;Returning &amp;ldquo;Read-Only&amp;rdquo; mode&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo steamos-readonly enable&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
			</item>
			<item>
				<title>VMware</title>
				<link>http://blog.pdan.dev/posts/vmware/</link>
				<pubDate>Sun, 01 May 2022 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/vmware/</guid>
				<description>&lt;h2 id=&#34;compobility&#34;&gt;Compobility&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.vmware.com/resources/compatibility/search.php&#34;&gt;https://www.vmware.com/resources/compatibility/search.php&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;vsan&#34;&gt;vSAN&lt;/h2&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/vmware2.png&#34; alt=&#34;vmware2&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;vSAN Calculator&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://vsan.virtualappliances.eu/&#34;&gt;https://vsan.virtualappliances.eu/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/vsan4.webp&#34; alt=&#34;vware3&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/vmware4.svg&#34; alt=&#34;vware4&#34;&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;10TB HDD neeed 1TB SSD cache&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Resistance formula (N = Dead Disk) N x 2 + 1&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;esxi-shell-cli&#34;&gt;ESXi Shell CLI&lt;/h2&gt;&#xA;&lt;p&gt;Troubleshooting Mode Options &amp;gt; Enable ESXI Shell&lt;/p&gt;&#xA;&lt;p&gt;to enter to shell &lt;code&gt;Alt&lt;/code&gt; + &lt;code&gt;F1&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;to exit from Shell &lt;code&gt;Alt&lt;/code&gt; + &lt;code&gt;F2&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;List Commands&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;esxcli&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;List of adapters&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;esxcli nic list&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;List of vSwitch&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;esxcli network vswitch list&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;List of standard vSwitch&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;esxcli network vswitch standard list&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;List of distributed vSwitch&lt;/p&gt;</description>
			</item>
			<item>
				<title>Windows Server</title>
				<link>http://blog.pdan.dev/posts/windows-server/</link>
				<pubDate>Sun, 01 May 2022 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/windows-server/</guid>
				<description>&lt;h2 id=&#34;before&#34;&gt;Before&lt;/h2&gt;&#xA;&lt;p&gt;Server Manager &amp;gt; Local Server &amp;gt; Computer name &amp;gt; Change &amp;gt; &lt;code&gt;YOUR_NAME&lt;/code&gt; &amp;gt; [OK]&lt;/p&gt;&#xA;&lt;p&gt;Firewall off&lt;/p&gt;&#xA;&lt;p&gt;Ethernet &amp;gt; (Right click on) Ethernet &amp;gt; Properties &amp;gt; Internet Protocol Version 4 IPv4&lt;/p&gt;&#xA;&lt;p&gt;IP address: 192.168.1.3&lt;/p&gt;&#xA;&lt;p&gt;Subnet Mask 255.255.255.0&lt;/p&gt;&#xA;&lt;p&gt;Default gateway: 192.168.1.1&lt;/p&gt;&#xA;&lt;p&gt;DNS: 8.8.8.8&lt;/p&gt;&#xA;&lt;h3 id=&#34;create-active-directory&#34;&gt;Create Active Directory&lt;/h3&gt;&#xA;&lt;p&gt;Manage &amp;gt; Add Roles and Features Wizard &amp;gt;&lt;/p&gt;&#xA;&lt;p&gt;Next &amp;gt; Next &amp;gt; Next &amp;gt;&lt;/p&gt;&#xA;&lt;p&gt;[x] Active Directory Domain Services&lt;/p&gt;&#xA;&lt;p&gt;[x] include management tools (if applicable)&lt;/p&gt;</description>
			</item>
			<item>
				<title>Windows Server CA</title>
				<link>http://blog.pdan.dev/posts/windows-server-ca/</link>
				<pubDate>Sun, 01 May 2022 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/windows-server-ca/</guid>
				<description>&lt;p&gt;In this Tutorial we’re going to configure a Two-Tier Enterprise PKI with Microsoft Server 2019 intended for Lab use. The advantage of a Two-Tier Enterprise PKI Hierarchy is that clients only trust the Root CA.  So if a Subordinate server gets compromised the Root CA does not have to be replaced. During normal operation the Root CA will be offline and Certificate requests are handled by the Subordinate CA. The Root CA is a non-domain joined device and will only be turned on issue a certificate for the Subordinate CA or to update the  Certificate Revocation List (CRL).&lt;/p&gt;</description>
			</item>
			<item>
				<title>Windows Server WDS</title>
				<link>http://blog.pdan.dev/posts/windows-server-wds/</link>
				<pubDate>Sun, 01 May 2022 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/windows-server-wds/</guid>
				<description>&lt;h2 id=&#34;windows-server-wds&#34;&gt;Windows Server WDS&lt;/h2&gt;&#xA;&lt;h3 id=&#34;create-automatically-install-images&#34;&gt;Create Automatically Install Images&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;First download &amp;ldquo;ADK download for Windows 10&amp;rdquo; from Microsoft&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Install &lt;code&gt;adksetup.exe&lt;/code&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Select the features you want change&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; - Deployment Tools&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/wds1.webp&#34; alt=&#34;wds1&#34;&gt;&lt;/p&gt;&#xA;&lt;ol start=&#34;4&#34;&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Need Take &lt;code&gt;install.wim&lt;/code&gt; from windows_10.iso but we have only in &amp;hellip; source\install.esd&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Mount windows.iso go to folder &amp;ldquo;souces&amp;rdquo; and copy install.esd to c:\&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;We need cover from &lt;code&gt;install.esd&lt;/code&gt; to &lt;code&gt;install.wim&lt;/code&gt; and we need know index of windows version&lt;/p&gt;&#xA;&lt;ol start=&#34;6&#34;&gt;&#xA;&lt;li&gt;open Deployment and Images Tools Environment&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;dism /get-wiminfo /wimfile:c:\install.esd&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;ol start=&#34;7&#34;&gt;&#xA;&lt;li&gt;after take your nember of index  what you want  and cover from  &lt;code&gt;.esd&lt;/code&gt; format to &lt;code&gt;.vim&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;dism /export image /sourceimagefile:c:\install.esd /sourceindex:3 /destinationimagefile:c:\install.wim /compress:mix /checkintegrity&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;ol start=&#34;8&#34;&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;now we need create file config for it go to &lt;a href=&#34;https://www.windowsafg.com/&#34;&gt;site1&lt;/a&gt; or &lt;a href=&#34;https://schneegans.de/windows/unattend-generator/&#34;&gt;site2&lt;/a&gt; after generate file config and download with name  &amp;ldquo;Autounattend.xml&amp;rdquo;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Windows Server APP-V</title>
				<link>http://blog.pdan.dev/posts/windows-app-v/</link>
				<pubDate>Sun, 01 May 2022 00:00:00 +0000</pubDate>
				<guid>http://blog.pdan.dev/posts/windows-app-v/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;images/img.svg&#34; alt=&#34;img0&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;tools-for-create-app-v--and-office&#34;&gt;Tools for Create APP-V &amp;amp; and Office&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Download ADK for Windows.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install&#34;&gt;https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install&lt;/a&gt;&lt;/p&gt;&#xA;&lt;ol start=&#34;2&#34;&gt;&#xA;&lt;li&gt;Download Office Deployment Tool&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.microsoft.com/en-us/download/details.aspx?id=49117&#34;&gt;https://www.microsoft.com/en-us/download/details.aspx?id=49117&lt;/a&gt;&lt;/p&gt;&#xA;&lt;ol start=&#34;3&#34;&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;install and open&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;code&gt;outlook.xml&lt;/code&gt; its config for 32 bit outlook&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;lt;!-- Office 365 client configuration file sample. To be used for Office 365 ProPlus apps, &#xA;     Office 365 Business apps, Project Pro for Office 365 and Visio Pro for Office 365. &#xA;&#xA;     For detailed information regarding configuration options visit: http://aka.ms/ODT. &#xA;     To use the configuration file be sure to remove the comments&#xA;&#xA;     The following sample allows you to download and install the 64 bit version of the Office 365 ProPlus apps &#xA;     and Visio Pro for Office 365 directly from the Office CDN using the Current Channel&#xA;     settings  --&amp;gt;&#xA;&#xA;&amp;lt;Configuration&amp;gt;&#xA;  &amp;lt;Add OfficeClientEdition=&amp;#34;32&amp;#34; Channel=&amp;#34;PerpetualVL2024&amp;#34;&amp;gt;&#xA;    &amp;lt;Product ID=&amp;#34;Outlook2024Volume&amp;#34;&amp;gt;&#xA;      &amp;lt;Language ID=&amp;#34;he-il&amp;#34; /&amp;gt;&#xA;    &amp;lt;/Product&amp;gt;&#xA;  &amp;lt;/Add&amp;gt;&#xA;&#xA;  &amp;lt;!--  &amp;lt;Updates Enabled=&amp;#34;TRUE&amp;#34; Channel=&amp;#34;Current&amp;#34; /&amp;gt; --&amp;gt;&#xA;&#xA;  &amp;lt;!--  &amp;lt;Display Level=&amp;#34;None&amp;#34; AcceptEULA=&amp;#34;TRUE&amp;#34; /&amp;gt;  --&amp;gt;&#xA;&#xA;  &amp;lt;!--  &amp;lt;Property Name=&amp;#34;AUTOACTIVATE&amp;#34; Value=&amp;#34;1&amp;#34; /&amp;gt;  --&amp;gt;&#xA;&#xA;&amp;lt;/Configuration&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;(all file download files in folder &lt;code&gt;office&lt;/code&gt;)&lt;/p&gt;</description>
			</item>
			<item>
				<title>Jenkins</title>
				<link>http://blog.pdan.dev/posts/jenkins/</link>
				<pubDate>Fri, 08 May 2020 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/jenkins/</guid>
				<description>&lt;h2 id=&#34;jenkins&#34;&gt;Jenkins&lt;/h2&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/jenkins.svg&#34; alt=&#34;jenkins&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Check for the latest updates and install &lt;code&gt;wget&lt;/code&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo apt-get update &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo apt install wget&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;configuring-limits&#34;&gt;Configuring limits&lt;/h3&gt;&#xA;&lt;p&gt;Edit the file &lt;code&gt;limit.conf&lt;/code&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo vi /etc/security/limits.conf&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Adding content:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;jenkins      soft     core    unlimited&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;jenkins      hard     hard    unlimited&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;jenkins      soft     fsize   unlimited&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;jenkins      soft     fsize   unlimited&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;jenkins      soft     nofile  &lt;span style=&#34;color:#ae81ff&#34;&gt;4096&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;jenkins      hard     nofile  &lt;span style=&#34;color:#ae81ff&#34;&gt;8192&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;jenkins      soft     nproc   &lt;span style=&#34;color:#ae81ff&#34;&gt;30654&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;jenkins      hard     nproc   &lt;span style=&#34;color:#ae81ff&#34;&gt;30654&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;configure-the-firewall&#34;&gt;Configure the firewall&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo apt-get install ufw&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo ufw allow OpenSSH&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo ufw allow &lt;span style=&#34;color:#ae81ff&#34;&gt;8080&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo ufw enable&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Check ufw’s status to confirm the new rules:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Simple Linux Routing</title>
				<link>http://blog.pdan.dev/posts/simple_linux_routing/</link>
				<pubDate>Wed, 06 May 2020 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/simple_linux_routing/</guid>
				<description>&lt;p&gt;to see all routing&lt;/p&gt;&#xA;&lt;h2 id=&#34;all-routing-command&#34;&gt;All Routing command&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ip route show&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;for see all routing for ip v6&lt;/p&gt;&#xA;&lt;h3 id=&#34;routing-for-ip-v6&#34;&gt;Routing for ip v6&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ip -6 route show&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;old-command-to-see-routing&#34;&gt;Old command to see routing&lt;/h3&gt;&#xA;&lt;p&gt;Route - an obsolete utility included in the net-tools package. used to display the routing table and build static routes&lt;/p&gt;&#xA;&lt;p&gt;you need install net-tools (apt install net-tools)&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;route -n&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;for v6 ip&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;route -n -6&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;routel - its utility for display routing its script for &lt;code&gt;ip route&lt;/code&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Windows</title>
				<link>http://blog.pdan.dev/posts/windows/</link>
				<pubDate>Tue, 07 Jan 2020 21:29:01 +0800</pubDate>
				<guid>http://blog.pdan.dev/posts/windows/</guid>
				<description>&lt;p&gt;   &lt;/p&gt;&#xA;&lt;p&gt;   &lt;/p&gt;&#xA;&lt;p&gt;   &lt;/p&gt;&#xA;&lt;p&gt;   &lt;/p&gt;&#xA;&lt;h2 id=&#34;ip&#34;&gt;IP&lt;/h2&gt;&#xA;&lt;p&gt;free ip address&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-cmd&#34; data-lang=&#34;cmd&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ipconfig / release&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;see all ip address&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;ipconfig / all&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;renew dns&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;ipconfig / flushdns&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;renew ip to other&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;ipconfig / renew&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;set DNS to interface&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;netsh int ip set dns name=&amp;#34;name_of_network_interface&amp;#34; static 8.8.8.8 8.8.4.4&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;fix net reset winsock&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;netsh winsock reset&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;   &lt;/p&gt;&#xA;&lt;p&gt;   &lt;/p&gt;&#xA;&lt;h2 id=&#34;aggregation-link-in-windows-7-10&#34;&gt;Aggregation link in Windows 7-10&lt;/h2&gt;&#xA;&lt;p&gt;Open PowerShell as Administrator:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Get-NetAdapter&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Create a New NetSwithTeam&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;NetSwitchTeam -Name &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;MyTeam&amp;#34;&lt;/span&gt; -TeamMembers &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Enternet1&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Enternet2&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;to remove&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Remove-NetSwitchTeam -Name &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;MyTeam&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;see config&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Get-NetSwitchTeam&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;   &lt;/p&gt;&#xA;&lt;p&gt;   &lt;/p&gt;&#xA;&lt;h2 id=&#34;wim-capture-image&#34;&gt;Wim Capture Image&lt;/h2&gt;&#xA;&lt;p&gt;need external disk image capture to &lt;code&gt;d:\&lt;/code&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Nginx</title>
				<link>http://blog.pdan.dev/posts/nginx/</link>
				<pubDate>Tue, 18 Jun 2019 00:00:00 +0000</pubDate>
				<guid>http://blog.pdan.dev/posts/nginx/</guid>
				<description>&lt;p&gt;&amp;mdash;&amp;mdash;&amp;mdash;&amp;ndash; redirect site to yandex.ru&#xA;/etc/nginx/sites-enebled&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;server&#xA;listen 80;&lt;/p&gt;&#xA;&lt;p&gt;server_nane nginx.srwx.net;&lt;/p&gt;&#xA;&lt;p&gt;return 301 &amp;ldquo;&lt;a href=&#34;http://ya.ru&#34;&gt;http://ya.ru&lt;/a&gt;&amp;rdquo;;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;test config&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;nginx -t&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;curl -D - -o /dev/null -s &lt;a href=&#34;http://nginx.srwx.net&#34;&gt;http://nginx.srwx.net&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;cat etc/nginx/sites-enabled&lt;/p&gt;&#xA;&lt;p&gt;nginx reload&lt;/p&gt;&#xA;&lt;h1 id=&#34;location&#34;&gt;Location&lt;/h1&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;location /test &lt;span style=&#34;color:#f92672&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;201&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;TEST&amp;#34;&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;password and user&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;location /restricted &lt;span style=&#34;color:#f92672&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  auth_basic &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Restrictred&amp;#34;&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  auth_basic_user_file .htpasswd; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;proxy to yandex on main domain&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;location /admin &lt;span style=&#34;color:#f92672&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  proxy_pass http://ya.ru;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;balance beetwen servers&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;upstream app &lt;span style=&#34;color:#f92672&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  server 127.0.0.1:8080;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  server 10.10.21.12:8080;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;server &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  listen &lt;span style=&#34;color:#ae81ff&#34;&gt;80&lt;/span&gt; default_server;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  server_nane nginx.srwx.net;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  location /admin &lt;span style=&#34;color:#f92672&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    proxy_pass http://app;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Makes the site faster and gives the static css&lt;/p&gt;</description>
			</item>
			<item>
				<title>Linux Basic Command and Map</title>
				<link>http://blog.pdan.dev/posts/linux-command/</link>
				<pubDate>Sat, 18 May 2019 00:00:00 +0000</pubDate>
				<guid>http://blog.pdan.dev/posts/linux-command/</guid>
				<description>&lt;h3 id=&#34;process&#34;&gt;Process&lt;/h3&gt;&#xA;&lt;p&gt;all process &lt;code&gt;ps -auxf&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;see all zombie process &lt;code&gt;ps -aux | grep &#39;Z&#39;&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;see systemd&#xA;&lt;code&gt;ps -p 1&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;SIGKILL &amp;ndash;9&#xA;SIGKILL &amp;ndash;15&lt;/p&gt;&#xA;&lt;p&gt;kill -9 PID&lt;/p&gt;&#xA;&lt;h3 id=&#34;symlink--hardlink&#34;&gt;Symlink &amp;amp; Hardlink&lt;/h3&gt;&#xA;&lt;p&gt;Symlink example:&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;ln original_file symlink1&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;for Read: &lt;code&gt;readlink symlink1&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;for search &lt;code&gt;find . -type l&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;for see inode &lt;code&gt;stat original_file&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;Hardlink example:&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;ln original_file hardlink1&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;see number of &lt;strong&gt;inode&lt;/strong&gt; &amp;lsquo;stat original_file&amp;rsquo;&lt;/p&gt;&#xA;&lt;p&gt;see how many hardlinks &lt;code&gt;find . -inum 672135&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;inode - inode is a data structure that stores information about a file or directory in a file system.&lt;/p&gt;</description>
			</item>
			<item>
				<title></title>
				<link>http://blog.pdan.dev/posts/android/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>http://blog.pdan.dev/posts/android/</guid>
				<description>&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;adb devices&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;adb reboot bootloader&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&lt;/code&gt;&lt;/pre&gt;</description>
			</item>
			<item>
				<title></title>
				<link>http://blog.pdan.dev/posts/docker-windows/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>http://blog.pdan.dev/posts/docker-windows/</guid>
				<description>&lt;p&gt;docker pull mcr.microsoft.com/windows/nanoserver:ltsc2025&lt;/p&gt;&#xA;&lt;p&gt;docker pull mcr.microsoft.com/windows:ltsc2019-amd64&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://mcr.microsoft.com/&#34;&gt;https://mcr.microsoft.com/&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title></title>
				<link>http://blog.pdan.dev/posts/k3s/images/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>http://blog.pdan.dev/posts/k3s/images/</guid>
				<description>&lt;p&gt;What you’ll need&#xA;2 CPUs or more&#xA;2GB of free memory&#xA;20GB of free disk space&#xA;Internet connection&#xA;Container or virtual machine manager, such as: Docker, QEMU, Hyperkit, Hyper-V, KVM, Parallels, Podman, VirtualBox, or VMware Fusion/Workstation&lt;/p&gt;&#xA;&lt;h2 id=&#34;install&#34;&gt;install&lt;/h2&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo install minikube-linux-amd64 /usr/local/bin/minikube&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;start-your-cluster&#34;&gt;Start your cluster&lt;/h3&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;minikube start&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Interact with your cluster&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;kubectl get po -A&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;or&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;minikube kubectl -- get po -A&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;You can also make your life easier by adding the following to your shell config:&lt;/p&gt;</description>
			</item>
			<item>
				<title></title>
				<link>http://blog.pdan.dev/posts/kubernetis/images/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>http://blog.pdan.dev/posts/kubernetis/images/</guid>
				<description></description>
			</item>
			<item>
				<title></title>
				<link>http://blog.pdan.dev/posts/node.js/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>http://blog.pdan.dev/posts/node.js/</guid>
				<description>&lt;h2 id=&#34;install-ubuntu&#34;&gt;Install Ubuntu&lt;/h2&gt;&#xA;&lt;p&gt;for snap version :&lt;/p&gt;&#xA;&lt;p&gt;on site &lt;code&gt;https://snapcraft.io/node&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;to install version 20 :&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo snap install node --channel=20/stable --classic&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;for nmv version :&lt;/p&gt;&#xA;&lt;p&gt;on site &lt;code&gt;https://github.com/nvm-sh/nvm&lt;/code&gt; after all close &lt;code&gt;terminal&lt;/code&gt; !&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;what your version&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;nmv ls &#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;see all version on&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;nmv ls-remote&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;for install&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;nvm install v18.18.0&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;switch between system snap or nvm&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;nvm use system&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Then install Node.js:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo apt install nodejs&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Check that the install was successful by querying &lt;code&gt;node&lt;/code&gt; for its version number:&lt;/p&gt;</description>
			</item>
			<item>
				<title></title>
				<link>http://blog.pdan.dev/posts/windows-server-gpo/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>http://blog.pdan.dev/posts/windows-server-gpo/</guid>
				<description>&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Computer Configuration&#xA;└── Policies&#xA;    ├── Administrative Templates&#xA;    │   └── Windows Components&#xA;    │       └── Remote Desktop Services&#xA;    │           └── Remote Desktop Session Host&#xA;    │               └── Connections&#xA;    │                   └── Allow users to connect remotely using Remote Desktop Services → Enabled&#xA;    │&#xA;    ├── System&#xA;    │   └── Remote Assistance → Configure Offer Remote Assistance → Disabled (if you need)&#xA;    │&#xA;    └── Windows Settings&#xA;        ├── Security Settings&#xA;        │   ├── Local Policies&#xA;        │   │   └── User Rights Assignment&#xA;        │   │       └── Allow log on through Remote Desktop Services → Добавь:&#xA;        │   │             - Administrators&#xA;        │   │             - Remote Desktop Users&#xA;        │   │&#xA;        │   └── Windows Firewall with Advanced Security&#xA;        │       └── Inbound Rules → Включи:&#xA;        │             - Remote Desktop - User Mode (TCP-In)&#xA;        │             - Remote Desktop - User Mode (UDP-In)&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Computer Configuration&#xA;└── Preferences&#xA;    └── Control Panel Settings&#xA;        └── Local Users and Groups&#xA;            └── New → Local Group&#xA;Action: Update&#xA;&#xA;Group name: Remote Desktop Users&#xA;&#xA;Add: dan\dan&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;gpresult /h C:\gpo-report.html&#xA;start C:\gpo-report.html&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
			</item>
			<item>
				<title></title>
				<link>http://blog.pdan.dev/posts/yaml/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>http://blog.pdan.dev/posts/yaml/</guid>
				<description>&lt;h2 id=&#34;list&#34;&gt;list&lt;/h2&gt;&#xA;&lt;p&gt;variant1:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;list_one&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  - &lt;span style=&#34;color:#ae81ff&#34;&gt;foo &lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  - &lt;span style=&#34;color:#ae81ff&#34;&gt;bar&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;or variant2:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;list_one_other&lt;/span&gt;: [&lt;span style=&#34;color:#ae81ff&#34;&gt;foo, bar]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;dictionary&#34;&gt;Dictionary&lt;/h2&gt;&#xA;&lt;p&gt;variant1:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;map_one&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;foo&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;one&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;bar&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;two&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;or variant2:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;map_one_another:{foo: one, bar: two}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;strings&#34;&gt;Strings&lt;/h2&gt;&#xA;&lt;p&gt;variants:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;string_one&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;Hello World&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;string_two&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;«Hello World»&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;string_three&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;Hello World&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;## bool&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;variant&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;```yaml&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;bool_one&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;yes&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;bool_two&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;no&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;bool_three&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;True&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;bool_four&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;bool_five&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;bool_string&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;«yes»&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;bool_dig_yes&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;bool_dig_no&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;text&#34;&gt;Text&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;long_text&lt;/span&gt;: &amp;gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;  support for reading&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;  and &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;  writing&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;or&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;long_text&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;# or \&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#ae81ff&#34;&gt;support reading and writing&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;environments&#34;&gt;environments&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;foo&lt;/span&gt;: &lt;span style=&#34;color:#75715e&#34;&gt;&amp;amp;default_setting&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;env&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;dev&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;db&lt;/span&gt;: &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;host&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;localhost&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;db_name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;test&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;port&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;5432&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;dev&lt;/span&gt;: &lt;span style=&#34;color:#75715e&#34;&gt;*default_settings&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;stage&lt;/span&gt;: &lt;span style=&#34;color:#75715e&#34;&gt;*default_settings&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;stage&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;: &lt;span style=&#34;color:#75715e&#34;&gt;*default_settings&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;env&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;stage&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;app&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;port&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;8080&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;multiple-documents&#34;&gt;Multiple documents&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;---&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;foo&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;hello world&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;---&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;foo&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;hello world2&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;-*/&amp;ndash;&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
