<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Stan Kukučka</title>
    <description>The latest articles on DEV Community by Stan Kukučka (@stankukucka).</description>
    <link>https://dev.to/stankukucka</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F356279%2Fa4e8323f-53f7-4564-80ba-8c5cc1df5a07.png</url>
      <title>DEV Community: Stan Kukučka</title>
      <link>https://dev.to/stankukucka</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/stankukucka"/>
    <language>en</language>
    <item>
      <title>วิธีทำ SEO ให้อันดับข้อมูลเด่นสุดเมื่อเทียบกับคู่แข่ง (ตั๋วเครื่องบิน)</title>
      <dc:creator>Stan Kukučka</dc:creator>
      <pubDate>Sat, 13 Apr 2024 16:54:40 +0000</pubDate>
      <link>https://dev.to/stankukucka/withiitham-seo-competitor-analysis-tawekhruuengbinraakhaathuuk-24b0</link>
      <guid>https://dev.to/stankukucka/withiitham-seo-competitor-analysis-tawekhruuengbinraakhaathuuk-24b0</guid>
      <description>&lt;p&gt;การวิเคราะห์ SEO ให้อันดับข้อมูลเด่นสุดเมื่อเทียบกับคู่แข่งนั้น สามารถให้ข้อมูลเชิงลึกด้านประสิทธิภาพในการค้นหาของสิ่งของคุณเปรียบเทียบกับคู่แข่ง กระบวนการนี้ก็ยังเปิดเผยแหล่งที่มาของการเข้าชมของคู่แข่งของคุณอีกด้วย นอกจากนี้ ก็ยังช่วยให้คุณกำหนดกลยุทธ์และลำดับความสำคัญของ SEO ของคุณเช่นกัน หากยังมีเวลาพอให้ทำในบางกรณี&lt;/p&gt;

&lt;h2&gt;
  
  
  ผลลัพธ์จากการใช้ฮีทแมปของ SERP - ตั๋วเครื่องบิน
&lt;/h2&gt;

&lt;p&gt;ตรงนี้จะเป็นด้านผลที่ได้รับจากการใช้ความพยายามสักนิดในการเขียนเล่นกับโค้ด Python ปะมาณสองสามบรรทัด&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F86ltihcyr48fu3yubnnx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F86ltihcyr48fu3yubnnx.png" alt="Image description" width="800" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  มาเริ่มกันเลย
&lt;/h2&gt;

&lt;p&gt;ในบทความนี้ ผมจะทำการอธิบายว่าคุณจะสามารถหาผลประโยชน์อะไรได้บ้างจากการใช้ไลบรารี Python &lt;a href="https://pypi.org/project/advertools/"&gt;Advertools&lt;/a&gt; (โดย &lt;a href="https://www.linkedin.com/in/eliasdabbas/"&gt;Elias Dabbas&lt;/a&gt;) ในการปรับปรุงความสามารถในการวิเคราะห์เชิงและวิชวลไลซ์กระบวนการแข่งขันของคุณได้อย่างไร นอกจากนี้ คุณจะได้รับรางวัลจากการใช้ฮีทแมป SERP แบบโต้ตอบได้ ที่จะทำการแสดงสิ่งที่ถูกครอบคลุมต่างๆให้เห็น รวมทั้งลักษณะและอันดับโดยเฉลี่ยของคู่แข่งที่คุณต้องการศึกษา เรามาเริ่มเซ็ตสภาพแวดล้อมกันเลยดีกว่า &lt;/p&gt;

&lt;h2&gt;
  
  
  วิธีการติดตั้ง Jupyter Lab
&lt;/h2&gt;

&lt;p&gt;สำหรับบทเรียนนี้ ผมจะเน้นไปด้านการตั้งค่าสภาพต่างๆให้เหมาะสมในการนำมาใช้กับ &lt;code&gt;OSX&lt;/code&gt; โดยที่ผมจะเป็นคนเลือกสภาพแวดล้อมและพื้นที่ทำงานของ Jupyter Lab มาใช้ คุณสามารถข้ามขั้นตอนนี้ แล้วตรงไปที่ส่วนการเขียนโค้ดไปได้เลย หากว่าคุณคุ้นเคยกับ &lt;a href="https://colab.research.google.com/"&gt;Google Colab&lt;/a&gt; อยู่แล้ว&lt;/p&gt;

&lt;p&gt;มาเริ่มต้นด้วยการติดตั้งแบบง่ายๆลงบน &lt;code&gt;Terminal&lt;/code&gt; ของคุณ ตอนนี้แค่ไปที่ &lt;code&gt;Applications &amp;gt; Utilities&lt;/code&gt; แล้วมองหา &lt;a href="https://support.apple.com/guide/terminal/welcome/mac"&gt;Terminal.app&lt;/a&gt; ให้เปิด &lt;code&gt;Terminal&lt;/code&gt; แล้วเพิ่มตอมมานง่ายๆนี้ลงไปเพื่อเริ่มการติดตั้ง&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;brew install jupyterlab
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;หากคุณใช้ Linux เป็นโอเอส คุณก็สามารถใช้คำสั่งเดิมนี้ หรือจะลองวิธีอื่นในการติดตั้ง Jupyter Lab บนแพลตฟอร์มที่คุณต้องการตามที่มีไว้ให้ใน&lt;a href="https://jupyter.org/install"&gt;หน้าเพจการติดตั้ง&lt;/a&gt;หลัก&lt;/p&gt;

&lt;h2&gt;
  
  
  จะเริ่มใช้ Jupyter Lab ยังไง
&lt;/h2&gt;

&lt;p&gt;ทั้งหมดนี้คือทุกสิ่งที่จำเป็นได้รับการติดตั้งลงบนระบบของคุณ ตอนนี้เหลือแค่ป้อนคำสั่งนี้ลงใน &lt;code&gt;Terminal&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;jupyter lab
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ในเบราว์เซอร์เริ่มต้นของคุณจะมีการเปิดแท็บที่มี &lt;code&gt;http://localhost:8888&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  มาเริ่มเขียนโค้ดกันเลย
&lt;/h2&gt;

&lt;p&gt;ไปที่ &lt;code&gt;File &amp;gt; New &amp;gt; Notebook&lt;/code&gt; จะมีแท็บใหม่เปิดขึ้นมาให้สำหรับคุณ สิ่งแรกที่คุณต้องทำคือติดตั้งไลบรารีก่อนในการที่จะเล่นกับตัวแปรที่จำเป็น&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;การติดตั้งไลบรารี&lt;/strong&gt;&lt;br&gt;
ไลบรารีเหล่านี้จะถูกติดตั้งไว้ใน &lt;code&gt;Jupiter Lab&lt;/code&gt; โดยจะมีความแตกต่างเล็กน้อยหากเทียบกับเหล่าคำสั่ง &lt;code&gt;Terminal&lt;/code&gt; มาตรฐานทั่วไป โดยคุณต้องเอ็นเทอร์ก่อนคำสั่ง &lt;code&gt;!&lt;/code&gt; (เครื่องหมายอัศเจรีย์)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;!pip install advertools
!pip install adviz
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ในหน้า &lt;code&gt;Jupiter Lab&lt;/code&gt; ของคุณจะมีลักษณะเช่นนี้ หากต้องการเรียกใช้คำสั่ง คุณจะต้องกำลังเปิดหน้าฟิลด์ที่กำลังใช้งานที่มีโค้ดของคุณอยู่ แล้วกด &lt;code&gt;Shift + Enter&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F940fv9xjj48m7mym9ea1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F940fv9xjj48m7mym9ea1.png" alt="Image description" width="366" height="96"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;หากต้องการป้อนโค้ดต่อไป คุณต้องกดที่ไอคอน &lt;code&gt;+&lt;/code&gt; ตรงด้านบนซะก่อน เพื่อเพิ่มช่องว่างใหม่สำหรับป้อนซินแท็กซ์โค้ดอันใหม่&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;การอิมพอร์ทนำเข้าแพ็คเกจ&lt;/strong&gt;&lt;br&gt;
อะไรที่ติดตั้งไปแล้วจะต้องผ่านการอิมพอร์ทนำเข้ามาซะก่อนถึงจะใช้ได้ ดังนั้นเราจะทำการนำเข้า &lt;code&gt;pandas&lt;/code&gt;, &lt;code&gt;advertools&lt;/code&gt;, &lt;code&gt;adviz&lt;/code&gt; และ &lt;code&gt;plotly&lt;/code&gt; เข้าสู่ช่องใหม่ของโค้ดนี้&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import pandas as pd
import advertools as adv
import adviz
import plotly.express as px
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;การตั้งค่าเครื่องมือค้นหาเซิร์จเอนจิ้นและคีย์ API โดยเฉพาะ&lt;/strong&gt;&lt;br&gt;
คุณจะต้องทำการตั้งค่า ID ของเครื่องเซิร์จเอ็นจิ้นโดยเฉพาะนี้ซะก่อน (ตรงโค้ด cx) เพื่อทำการคิวรี่เซิร์จเอ็นจิ้นที่คุณต้องการผ่าน API จากนั้นค่อยตามด้วยรายการคีย์เวิร์ดที่คุณต้องการรับผลลัพธ์มาดูหลังจากที่ทำไปแล้ว ไปที่ &lt;a href="https://programmablesearchengine.google.com/controlpanel/create"&gt;Programmable search engine&lt;/a&gt; homepageเพื่อดูว่าจะ &lt;code&gt;ค้นหาอะไร?&lt;/code&gt; เลือก &lt;code&gt;○ ค้นหาทั้งเว็บ&lt;/code&gt; ใน&lt;code&gt;การตั้งค่าการค้นหา&lt;/code&gt; เลือก &lt;code&gt;○ ค้นหารูปภาพ&lt;/code&gt; และ &lt;code&gt;○ การค้นหาแบบปลอดภัย&lt;/code&gt; กดติ๊กเครื่องหมาย &lt;code&gt;reCAPTCHA&lt;/code&gt; แล้วกด&lt;code&gt;สร้าง&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;จากสคริปต์ทั้งหมดนี้ คุณแค่คัดลอกเฉพาะส่วนหลัง &lt;code&gt;cx=&lt;/code&gt; นี้ก็พอ&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;script async src="https://cse.google.com/cse.js?cx=YOUR-SEARCH-ENGINE-ID"&amp;gt;
&amp;lt;/script&amp;gt;
&amp;lt;div class="gcse-search"&amp;gt;&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;หากต้องการให้มี API ในการค้นหาโดยเฉพาะ ให้ไปที่&lt;a href="https://developers.google.com/custom-search/v1/overview#api_key"&gt;ตรงนี้&lt;/a&gt;แล้วกด &lt;code&gt;Get a Key&lt;/code&gt; โค้ดที่คุณได้คัดลอกไปนั้นจะอ้างอิงถึง &lt;code&gt;key&lt;/code&gt; ในสคริปต์ สิ่งที่จะถูกส่งไปยังฟิลด์ &lt;code&gt;Jupyter lab&lt;/code&gt; ก็คือโค้ดสุดท้ายอันนี้&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cx = "YOUR-SEARCH-ENGINE-ID"
key = "YOUR-CUSTOM-SEARCH-API-KEY"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;เช็คคีย์เวิร์ดด้วยการใช้ API&lt;/strong&gt;&lt;br&gt;
ในส่วนนี้ เราจะทำการคิวรี่ API ผ่านการใช้ &lt;code&gt;Advertools&lt;/code&gt; เป็น &lt;code&gt;adv&lt;/code&gt; โดยใช้ &lt;code&gt;serp_goog&lt;/code&gt; เป็นตัวช่วย ผมจะสร้างตัวแปร &lt;code&gt;dataz&lt;/code&gt; ไว้จัดเก็บผลลัพธ์ โดยคุณสามารถตั้งชื่อตัวแปรนั้นยังไงก็ได้ โดยค่า &lt;code&gt;gl=["th”]&lt;/code&gt; จะเป็นตัวกำหนดค่าใน &lt;code&gt;Google&lt;/code&gt; ที่คุณต้องการค้นหา ซึ่งในกรณีนี้ก็คือ &lt;code&gt;Google.co.th&lt;/code&gt; ในส่วนโค้ดสุดท้ายของคุณนี้ ถ้าอยากคุณจะเพิ่มคีย์เวิร์ดเพิ่มเติมเข้าไปอีกก็ได้ โดยวัตถุประสงค์ของโค้ดนี้ ผมได้เลือกเพียงแค่บางส่วนเท่านั้น ถ้าคุณอยากที่จะทดลองอะไรเพิ่มเติมก็ตามแต่&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dataz = adv.serp_goog(cx=cx,
                       key=key,
                       gl=["th"],
                       q=["จอง ตั๋ว เครื่องบิน",
                          "จอง ตั๋ว เครือ ง บิน",
                          "ตั๋ว เครื่อง บิน",
                          "จองตั๋ว",
                          "จองตั๋วล่วงหน้า",
                          "จองตั๋วออนไลน์",
                          "จอง ตั๋ว เครื่อง เครื่องบิน",
                          "ตั๋ว ถูก",
                          "ตั๋วเครื่องบิราคถูก",
                         ])
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;เมื่อคุณเรียกใช้ฟิลด์นี้ด้วย &lt;code&gt;Shift + Enter&lt;/code&gt; กระบวนการคิวรี่ก็จะเริ่มขึ้น คุณแค่รอก็พอ&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;หากอยากจะรู้ว่าคุณสามารถตั้งค่าอะไรอีกบ้างในการใช้ &lt;code&gt;serp_goog&lt;/code&gt; ให้ป้อนช่องว่างของ Jupyter Lab &lt;code&gt;adv.serp_goog?&lt;/code&gt; (ที่มี ? เครื่องหมายคำถาม)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;วาดแผนที่ฮีทแมปโดยใช้ SERP&lt;/strong&gt;&lt;br&gt;
ส่วนโค้ดตรงนี้จะตรงๆไปเลย จะให้มันเยอะกว่านี้ก็ได้ คุณก็สามารถแก้ไขผ่าน &lt;code&gt;fig&lt;/code&gt; ค่าเกือบทั้งหมดที่คุณจะเห็นจะเป็นฮีทแมป &lt;code&gt;SERP&lt;/code&gt; แต่สำหรับกรณีนี้ ผมจะทำให้มันง่ายที่สุดเท่าที่จะทำได้ หากเราใช้ &lt;code&gt;fig.layout.title&lt;/code&gt; เราก็จะสามารถทำการกำหนดชื่อของแผนที่ฮีทแมปได้ ผมตั้งชื่อตัวแปรนี้ว่า dataz ผ่าน &lt;code&gt;serp_heatmap&lt;/code&gt; ที่ตรงนี้ เราจะทำการกำหนดผลลัพธ์จำนวนหนึ่งให้เป็น &lt;code&gt;num_domains&lt;/code&gt; (จำนวนโดเมน) ทั้งหมดนี้ คือสิ่งที่เราต้องตั้งค่าเพื่อสร้างฮีทแมปของ SERP&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;adviz.serp_heatmap(dataz,
                   num_domains=10)
fig = adviz.serp_heatmap(dataz)
fig.layout.title = "ผลลัพธ์จากการใช้ฮีทแมปของ SERP - ตั๋วเครื่องบิน"
fig
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  ผลลัพธที่โต้ตอบได้แบบฮีทแมป SERP - ตั๋วเครื่องบิน
&lt;/h2&gt;

&lt;p&gt;ตามที่แสดงไว้ตรงข้างต้น ตอนนี้คุณควรจะเห็นผลลัพธ์ที่เป็นแบบฮีทแมป SERP ในฟิลด์ใหม่ของ Jupyter Lab ได้แล้ว โดยมันจะเป็นแบบอินเตอร์แรคทีฟคือสามารถโต้ตอบได้อย่างสมบูรณ์ เพราะงั้น คุณจะสามารถวางเมาส์เหนือวงกลมเพื่อดูว่าคีย์เวิร์ดใดในตำแหน่งใดที่ถูกเรียกใช้ในแต่ละโดเมน ดังที่แสดงใน&lt;a href="https://kukucka.work/serp-competition-analysis-airline-tickets-thailand-2024/"&gt;แผนที่ฮีทแมป SERP แบบโต้ตอบได้&lt;/a&gt;อันนี้&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ผลลัพธ์ที่ไม่เสถียรในฮีทแมป SERP&lt;/strong&gt;&lt;br&gt;
ผลลัพธ์อาจแตกต่างกันไปขึ้นกับวันที่คุณทำการวิเคราะห์ เนื่องจากเว็บไซต์ส่วนใหญ่ผลิตเนื้อหาและอัลกอริทึมของ Google สะท้อนถึงการเปลี่ยนแปลง และคำนวณความครอบคลุมและตำแหน่งใหม่สำหรับแต่ละโดเมน/เว็บไซต์ต่างๆที่เกิดขึ้น (เว็บไซต์ข่าวอัปเดตบ่อยที่สุด) แทบจะทันที&lt;/p&gt;

&lt;p&gt;ยกตัวอย่างเช่น ก่อนเทศกาลวันหยุด วันตรุษจีน หรือวันหยุดประจำชาติไทยอื่นๆ สามารถทำให้การจัดอันดับเว็บไซต์บางแห่งดีขึ้นมาอย่างแปลกหูแปลกตาก็ได้ เพราะเว็บนั้นอาจมีข้อเสนอโปรโมชั่นที่เกี่ยวข้องกับ (จุดหมายปลายทาง) พิเศษให้ เลยทำให้เครื่องมือค้นหาจะดำเนินการโดยรวมผลพิเศษนี้ไปด้วย&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;วิธีปรับเปลี่ยนผลลัพธ์ของฮีทแมป SERP ให้เป็นไปตามตามโดเมนระดับบนสุด&lt;/strong&gt;&lt;br&gt;
หากคุณต้องการจำกัดผลลัพธ์ในฮีทแมป SERP ให้มันแคบลงเหลือแค่เฉพาะโดเมนจากประเทศใดประเทศหนึ่งเท่านั้น หรือจะพูดว่าอยากจำกัดแค่ผลการค้นหาเฉพาะจากเอกสารที่มาจากประเทศใดประเทศหนึ่ง คุณอาจใช้ตัวดำเนินการบูลีนในค่าของพารามิเตอร์ &lt;code&gt;cr&lt;/code&gt; โดยโค้ดทั้งหมดนี่มีไว้เพื่อจำกัดโดเมนที่มาจากประเทศไทยเท่านั้น คือ &lt;code&gt;cr=["countryTH"]&lt;/code&gt; (วางไว้ตรงโค้ดที่คุณระบุว่าเป็นคีย์หลัก) จากนั้น Google Search จะทำการกำหนดประเทศของเอกสารโดยการวิเคราะห์โดเมนด้านบนสุด (TLD) จาก URL ของเอกสาร และตำแหน่งทางภูมิศาสตร์ของที่อยู่ IP ของเว็บเซิร์ฟเวอร์&lt;/p&gt;

&lt;p&gt;ขอขอบคุณ San สำหรับงานแปลบทความนี้ และ &lt;a href="https://unsplash.com/@gohrhyyan?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=CreditCopyTextGratitude"&gt;Goh Rhy Yan&lt;/a&gt; สำหรับภาพปกจาก Unsplash&lt;/p&gt;

</description>
      <category>python</category>
      <category>thai</category>
      <category>analyst</category>
      <category>pip</category>
    </item>
    <item>
      <title>How to do an SEO Competitor Analysis (Presidential Elections)</title>
      <dc:creator>Stan Kukučka</dc:creator>
      <pubDate>Mon, 01 Apr 2024 06:00:12 +0000</pubDate>
      <link>https://dev.to/stankukucka/how-to-do-an-seo-competitor-analysis-presidential-elections-in-slovakia-2024-20p0</link>
      <guid>https://dev.to/stankukucka/how-to-do-an-seo-competitor-analysis-presidential-elections-in-slovakia-2024-20p0</guid>
      <description>&lt;p&gt;Conducting an SEO competitor analysis can provide valuable insights into your performance in search compared to your competitors. This process also uncovers the sources of traffic for your competitors. Furthermore, it helps you determine your SEO priorities and strategy if it's not too late in some cases.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final result of SERP Heatmap - Presidential Elections in Slovakia 2024
&lt;/h2&gt;

&lt;p&gt;This will be the result of your effort while playing around with a few lines of Python code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F44edr0lcqq9v95ofd9z0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F44edr0lcqq9v95ofd9z0.png" alt="Image description" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Let's start
&lt;/h2&gt;

&lt;p&gt;In this article, I'll explore how you can leverage the Python library &lt;a href="https://pypi.org/project/advertools/"&gt;Advertools&lt;/a&gt; (from &lt;a href="https://www.linkedin.com/in/eliasdabbas/"&gt;Elias Dabbas&lt;/a&gt;) to enhance your competitive analysis visualization capabilities. Additionally, you'll be rewarded by an interactive SERP heatmap demonstrating coverage, appearance and average ranking for competitors you would like to observe. Let's start to set the environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to install Jupyter Lab
&lt;/h2&gt;

&lt;p&gt;For this tutorial, I focus on setting up an environment in &lt;code&gt;OSX&lt;/code&gt;. In this case, I choose Jupyter Lab environment and working space. You can skip this if you are familiar with &lt;a href="https://colab.research.google.com/"&gt;Google Colab&lt;/a&gt; and head right to the coding section.&lt;/p&gt;

&lt;p&gt;Let's start with a simple installation in your &lt;code&gt;Terminal&lt;/code&gt;. Now just head to &lt;code&gt;Applications &amp;gt; Utilities&lt;/code&gt; and look for &lt;a href="https://support.apple.com/guide/terminal/welcome/mac"&gt;Terminal.app&lt;/a&gt;. Open the &lt;code&gt;Terminal&lt;/code&gt; and add this simple command to start the installation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;brew install jupyterlab
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you are using Linux you can use the same command or try a different way to install Jupyter Lab on a platform you prefer as mentioned on the official &lt;a href="https://jupyter.org/install"&gt;installation page&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to start Jupyter Lab
&lt;/h2&gt;

&lt;p&gt;All needed has been installed onto your system. Now enter this command into &lt;code&gt;Terminal&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;jupyter lab
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In your default browser will open a tab with &lt;code&gt;http://localhost:8888&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Let's start writing the code
&lt;/h2&gt;

&lt;p&gt;Head to &lt;code&gt;File &amp;gt; New &amp;gt; Notebook&lt;/code&gt;. A new tab will open for you. First thing first you need to install libraries to play around with the needed variables. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Installing libraries&lt;/strong&gt;&lt;br&gt;
These libraries will be installed into &lt;code&gt;Jupiter Lab&lt;/code&gt;. There is a tiny difference when it comes to standard &lt;code&gt;Terminal&lt;/code&gt; commands. &lt;br&gt;
You have to enter before the command &lt;code&gt;!&lt;/code&gt;(exclamation).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;!pip install advertools
!pip install adviz
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In your &lt;code&gt;Jupiter Lab&lt;/code&gt; environment it will look like this. To run the command you stay in the active field where your code is and hit &lt;code&gt;Shift + Enter&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fquxir0s3apjonl8g0c52.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fquxir0s3apjonl8g0c52.png" alt="Image description" width="366" height="96"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To continue to enter the rest of the code you need to hit the &lt;code&gt;+&lt;/code&gt; icon on the top to add a new empty field for new code syntax.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Importing packages&lt;/strong&gt;&lt;br&gt;
What has been installed needs to be imported. So we'll import &lt;code&gt;pandas&lt;/code&gt;, &lt;code&gt;advertools&lt;/code&gt;, &lt;code&gt;adviz&lt;/code&gt; and &lt;code&gt;plotly&lt;/code&gt;. Enter into the new field this code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import pandas as pd
import advertools as adv
import adviz
import plotly.express as px
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Setting up Custom search engine and API key&lt;/strong&gt;&lt;br&gt;
You have to set the Custom search engine ID (in code known as cx) to query your preferred search engine via API then later on with the list of your keywords you would like to see results for. Visit &lt;a href="https://programmablesearchengine.google.com/controlpanel/create"&gt;Programmable search engine homepage&lt;/a&gt; for &lt;code&gt;What to search?&lt;/code&gt; select &lt;code&gt;○ Search the entire web&lt;/code&gt;, for &lt;code&gt;Search settings&lt;/code&gt; select &lt;code&gt;○ Image search&lt;/code&gt; and &lt;code&gt;○ SafeSearch&lt;/code&gt;. Tick reCAPTCHA and press &lt;code&gt;Create&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;From the whole script, you have to copy just the part after &lt;code&gt;cx=&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;script async src="https://cse.google.com/cse.js?cx=YOUR-SEARCH-ENGINE-ID"&amp;gt;
&amp;lt;/script&amp;gt;
&amp;lt;div class="gcse-search"&amp;gt;&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To have Custom Search API head &lt;a href="https://developers.google.com/custom-search/v1/overview#api_key"&gt;here&lt;/a&gt; and press &lt;code&gt;Get a Key&lt;/code&gt;. The code you'll copy is referred to &lt;code&gt;key&lt;/code&gt; in the script. What goes to the Jupyter lab field is in final this code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cx = "YOUR-SEARCH-ENGINE-ID"
key = "YOUR-CUSTOM-SEARCH-API-KEY"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Check keywords via API&lt;/strong&gt;&lt;br&gt;
In this part, we are going to query API via &lt;code&gt;Advertools&lt;/code&gt; as &lt;code&gt;adv&lt;/code&gt; with the help of &lt;code&gt;serp_goog&lt;/code&gt;. I created the variable &lt;code&gt;dataz&lt;/code&gt; where results will be stored. You can name it whatever you want. The value &lt;code&gt;gl=["sk"]&lt;/code&gt; defines what &lt;code&gt;Google&lt;/code&gt; you want to query. In this case, it is &lt;code&gt;Google.sk&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;In your final code, you can add more keywords. For code purposes, I choose just a few. In my final code, I entered quite a lot of variations of keywords and presidential candidates' names. Feel free to experiment.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dataz = adv.serp_goog(cx=cx,
                    key=key,
                    gl=["sk"],
                    q=["prezidentské voľby preukaz",
                       "prezidetske volby preukaz",
                       "prezidentské voľby voličský preukaz",
                       "prezidentské voľby kandidáti",
                       "voľby 2024",
                       "prezidentské voľby",
                       "prezidentské voľby slovensko",
                       "prezidentské voľby 2024",
                       "prezidentské voľby slovensko 2024",     
                      ])
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When you run this field with &lt;code&gt;Shift + Enter&lt;/code&gt; the process of querying will start. You have to wait.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;To know what else you can set up for &lt;code&gt;serp_goog&lt;/code&gt; enter an empty field of Jupyter Lab &lt;code&gt;adv.serp_goog?&lt;/code&gt; (with ? question mark)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Draw SERP Heatmap&lt;/strong&gt;&lt;br&gt;
This code is straightforward. It can be more robust and you can modify via &lt;code&gt;fig&lt;/code&gt; almost all values you will see in the SERP Heatmap, but for this case, I kept it as simple as it can be. With &lt;code&gt;fig.layout.title&lt;/code&gt; we define &lt;code&gt;title&lt;/code&gt; of the heatmap. I call variable &lt;code&gt;dataz&lt;/code&gt; via &lt;code&gt;serp_heatmap&lt;/code&gt;. Here we define a number of results as &lt;code&gt;num_domains&lt;/code&gt; (number of domains). That's all that we have to set up to draw the SERP Heatmap.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;adviz.serp_heatmap(dataz,
                   num_domains=10)
fig = adviz.serp_heatmap(dataz)
fig.layout.title = "SERP Heatmap - Presidential Elections 2024 in Google.sk"
fig
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Interactive result of SERP Heatmap - Presidential Elections
&lt;/h2&gt;

&lt;p&gt;As shown at the beginning you should now see the result of the SERP Heatmap in the new field of Jupyter Lab. It's fully interactive, so you can hover over the circles to see what keywords on what position have been triggered for each domain as shown on this &lt;a href="https://kukucka.work/slovak-presidential-elections-2024/"&gt;Interactive SERP Heatmap&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Unstable results of SERP Heatmap&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Results can vary based on the date you run your analysis because most of the websites produce content and Google algorithms reflect changes and recalculate coverage and position for each domain/website (mostly frequently updated news websites) almost simultaneously. For example, before the first round of the Presidential election in Slovakia, there were lots of results from domains like &lt;code&gt;Wikipedia&lt;/code&gt;, &lt;code&gt;Twitter&lt;/code&gt;, &lt;code&gt;Facebook&lt;/code&gt; or &lt;code&gt;Instagram&lt;/code&gt; mostly for candidates names.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;How to modify SERP Heatmap results based on top-level domain&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you want to narrow your results in the SERP Heatmap just to domains from a specific country in other words restrict search results to documents originating in a particular country, you may use boolean operators in the &lt;code&gt;cr&lt;/code&gt; parameter's value. The whole code for domains originating just from Slovakia is &lt;code&gt;cr=["countrySK"]&lt;/code&gt; (place it in the code where you specify keywords). Google Search then determines the country of a document by analyzing the top-level domain (TLD) of the document's URL, and the geographic location of the Web server's IP address.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Thanks to &lt;a href="https://unsplash.com/@slelham?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=CreditCopyTextGratitude"&gt;Steven Lelham&lt;/a&gt; for the cover image from Unsplash.&lt;/p&gt;

</description>
      <category>python</category>
      <category>serp</category>
      <category>seo</category>
      <category>analysis</category>
    </item>
    <item>
      <title>Hosting Checker - How to find out where the website is hosted via Terminal?</title>
      <dc:creator>Stan Kukučka</dc:creator>
      <pubDate>Wed, 03 May 2023 20:40:08 +0000</pubDate>
      <link>https://dev.to/stankukucka/hosting-checker-how-to-find-out-where-the-website-is-hosted-1mda</link>
      <guid>https://dev.to/stankukucka/hosting-checker-how-to-find-out-where-the-website-is-hosted-1mda</guid>
      <description>&lt;p&gt;It can be some basic background check or a serious need to identify what hosting is used for certain web services. It can be practical to identify why is a certain website so quick to load or try to decide what hosting service will be best for a similar online service you have found.&lt;/p&gt;

&lt;p&gt;There is tons of online service that claim to detect the hosting service of a particular website. Mostly named "hosting checkers". But you don't have certainty if the returned result is valid.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where is your or other website hosted?
&lt;/h2&gt;

&lt;p&gt;To this question, you can have a few different answers. Hosting is mostly a collection of a variety of different services. It is possible to have all your hosting services "made" in a single company. But it's not uncommon to see a having website and each of its hosting services provided through several hosting companies. As an example, services can vary to these:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Domain Registration&lt;/li&gt;
&lt;li&gt;Hosted DNS&lt;/li&gt;
&lt;li&gt;Web hosting&lt;/li&gt;
&lt;li&gt;CDN&lt;/li&gt;
&lt;li&gt;Email Hosting&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In this short article, we are going to focus on the website's &lt;code&gt;web hosting detection&lt;/code&gt; via terminal command prompt.&lt;/p&gt;

&lt;h2&gt;
  
  
  Website hosting checker background
&lt;/h2&gt;

&lt;p&gt;This quick guide will provide you with instructions on how you can run a web hosting check with a simple command. Before a needs to be done brief installation procedure and then you can jump on research to find out who is hosting the website you would like to know about.You have to do these:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Install Nmap the Network Mapper - Free Security Scanner&lt;/li&gt;
&lt;li&gt;Enter specific command into Terminal&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This quick tut will focus on the installation process for OSX systems.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to install Nmap the Network Mapper
&lt;/h2&gt;

&lt;p&gt;Nmap binaries for Apple macOS (x86-64) are available in &lt;a href="https://nmap.org/download.html#macosx" rel="noopener noreferrer"&gt;this Mac OS X Binaries section&lt;/a&gt;. You can find out the latest stable release installer is &lt;code&gt;nmap-7.93.dmg&lt;/code&gt;. Download it and open the &lt;code&gt;dmg&lt;/code&gt; file to start the installation.&lt;/p&gt;

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

&lt;p&gt;You'll be blocked by default in your system. So you have to head to &lt;code&gt;System Settings &amp;gt; Privacy &amp;amp; Security&lt;/code&gt; and scroll down to the &lt;code&gt;Security&lt;/code&gt; section where you can notice this message to approve with the &lt;code&gt;Open Anyway&lt;/code&gt; button.&lt;/p&gt;

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

&lt;h2&gt;
  
  
  Let's start with hosting checker in your Terminal
&lt;/h2&gt;

&lt;p&gt;Now just head to &lt;code&gt;Applications &amp;gt; Utilities&lt;/code&gt; and look for &lt;a href="https://support.apple.com/guide/terminal/welcome/mac" rel="noopener noreferrer"&gt;Terminal.app&lt;/a&gt;. Open the &lt;code&gt;Terminal&lt;/code&gt; and add this simple command that starts with &lt;code&gt;nmap&lt;/code&gt; then you enter the domain name without &lt;code&gt;HTTP/S&lt;/code&gt; and &lt;code&gt;WWW&lt;/code&gt; prefixes and at the end you run nmap script &lt;code&gt;--script whois-ip&lt;/code&gt;. The whole command looks like hereunder.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

nmap yourwebsite.com --script whois-ip


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;You will get a long list of open ports where at the end will pops-up these Host script results like in this example.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

Host script results:
| whois-ip: Record found at whois.arin.net
| netrange: 75.1.0.0 - 75.1.134.255
| netname: AMAZO-2
| orgname: Amazon.com, Inc.
| orgid: AMAZO-2
| country: US stateprov: WA
| orgtechname: Amazon EC2 Network Operations
|_orgtechemail: amzn-noc-contact@amazon.com


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Based on the &lt;code&gt;netname&lt;/code&gt; or &lt;code&gt;orgname&lt;/code&gt; you can easily identify what hosting is your desired website on. To be more specific in a technocratic way &lt;code&gt;netrange&lt;/code&gt; will provide a range of IPs.&lt;/p&gt;

&lt;p&gt;And that's all. The whole magic. How to check website hosting via the terminal anytime you need. No need to rely on random online tools with uncertain results.&lt;/p&gt;

&lt;p&gt;Thanks to &lt;a href="https://unsplash.com/@tvick?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=CreditCopyTextGratitude" rel="noopener noreferrer"&gt;Taylor Vick&lt;/a&gt; for the cover image from Unsplash.&lt;/p&gt;

</description>
      <category>terminal</category>
      <category>security</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Install and create virtualenv via terminal</title>
      <dc:creator>Stan Kukučka</dc:creator>
      <pubDate>Sat, 12 Mar 2022 19:33:30 +0000</pubDate>
      <link>https://dev.to/stankukucka/install-and-create-virtualenv-via-terminal-mgo</link>
      <guid>https://dev.to/stankukucka/install-and-create-virtualenv-via-terminal-mgo</guid>
      <description>&lt;p&gt;What virtual environment is? Let's jump into this topic. I'll try to explain it as simplistic as possible with some comparison and plain explanatory style.&lt;/p&gt;

&lt;p&gt;Imagine your system is some sort of space you are executing your programs. It's a space where you run some sort of other stuff you would like to work with. There are plenty of other things you can run from a developer's perspective. Each of these things can be installed on your system. But what will happen when you'll install each of this dev stuff on your system. Yes, that can be a quite big mass I would say. And in some cases, there can happen even version conflict someday.&lt;/p&gt;

&lt;p&gt;So to avoid this there is a simple solution. That's why the virtual environment comes to play. As naming sayin' it will create some sort of virtual box for dev stuff you would like to install. It can be anything, python3, Django or your next flask project with a specific setup.&lt;/p&gt;

&lt;p&gt;Note: If you have already installed some dev tools you can simply skip the "Install Xcode with Homebrew" section for sure cos there is a high probability you have it on your system.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install Xcode with Homebrew
&lt;/h2&gt;

&lt;p&gt;This step is just easy simple copy-paste work. Simply paste this "looong" command from &lt;a href="https://brew.sh/"&gt;brew.sh&lt;/a&gt; website and hit enter to execute.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Some stuff will flick in front of you in the terminal and then you'll be asked for the next step.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Press RETURN to continue or any other key to abort
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After this, you'll be asked for a system password to enter into the terminal to continue. At this stage be patient. There will be a quite long time to download all stuff and you'll be notified about it with this simple info text.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Downloading Command Line Tools for Xcode
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then you'll be notified with this pop-up tiny window to install some other Command-Line for Xcode.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fnyxzgm6esepblvdd47jz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fnyxzgm6esepblvdd47jz.png" alt="Alt Text" width="776" height="102"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Installing Command Line Tools for Xcode
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And then after all process when it's done you'll see this.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Done with Command Line Tools for Xcode
Done.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And be asked for the password again. Then after waiting please for Homebrew's instalment of its core stuff.&lt;/p&gt;

&lt;p&gt;The last thing you'll be notified of is this terminal output. And it's all done. I hardly recommend restarting the whole system cos I have recognized virtual environment installation issues without having passed such.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;==&amp;gt; Next steps:
- Run `brew help` to get started
- Further documentation: 
    https://docs.brew.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Install Virtual Environtment
&lt;/h2&gt;

&lt;p&gt;This is simple straight forward. Just execute &lt;code&gt;pip3 install virtualenv&lt;/code&gt; with &lt;code&gt;sudo&lt;/code&gt; command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo pip3 install virtualenv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Create First Environment
&lt;/h2&gt;

&lt;p&gt;Let's start to create the first general main directory with the name "virtualenvs" and enter it in the directory.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir virtualenvs
cd virtualenvs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, I'll create a virtual environment for Flask which is simply a Python-based system for quick web app development. But it can be anything else you would like to have in a separate work environment and you can name it whatever you want to.&lt;/p&gt;

&lt;p&gt;Because of this purpose, we going to install the Flask directory name will be the same.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;virtualenv flask
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will create &lt;code&gt;flask&lt;/code&gt; directory as space for virtual environment. We are going to activate this virtual environment for the further installation process. In other words, we will activate this environment to be able to install inside directory other python dependencies and libraries for further steps. &lt;/p&gt;

&lt;p&gt;In this case for activation of the environment just type this command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;source flask/bin/activate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You'll recognize your command prompt starting with &lt;code&gt;(flask)&lt;/code&gt; it means your virtual environment has been activated.&lt;/p&gt;

&lt;p&gt;To deactivate virtual environment just type &lt;code&gt;deactivate&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;deactivate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;At this point, tut could end. Activated &lt;code&gt;flask&lt;/code&gt; environment is at its final. And now in the next step, you can install Flask, Python, Scrapy or whatever you would like to into your separated virtual environment.&lt;/p&gt;

&lt;p&gt;Thanks to &lt;a href="https://unsplash.com/photos/ChqyREhd6aE?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=CreditCopyTextGratitude"&gt;Michał Parzuchowski&lt;/a&gt; for the cover image from Unsplash.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Google Trends with Python 📊</title>
      <dc:creator>Stan Kukučka</dc:creator>
      <pubDate>Sat, 20 Nov 2021 21:26:31 +0000</pubDate>
      <link>https://dev.to/stankukucka/google-trends-with-python-5fh7</link>
      <guid>https://dev.to/stankukucka/google-trends-with-python-5fh7</guid>
      <description>&lt;p&gt;Thinking these days how we probably started to value more building blocks of our existence. As it started to feel more integrated into our existence as follows - health, water, food and often mentioned Covid that limited our ability to travel for some regions. To have overall knowledge of how does it goes worldwide there is well known &lt;a href="https://trends.google.com/trends"&gt;Google Trends&lt;/a&gt; online tool to work with. But there is something special for those who are in love with Python. Beautiful graphing library &lt;a href="https://plotly.com/python/"&gt;Plotly&lt;/a&gt; licensed under the MIT license. &lt;/p&gt;

&lt;h2&gt;
  
  
  Scripts to Download
&lt;/h2&gt;

&lt;p&gt;Here is a simple installation prepared to work with on my GitHub repository with a &lt;code&gt;requirements.txt&lt;/code&gt; file and a short script to plot data into a nice histogram data form. &lt;a href="https://github.com/stanislav-kukucka/google-trends-analysis/tree/main/google-trends-analysis"&gt;Simply download these two files&lt;/a&gt; as follows so save these to your desktop into some working directory &lt;code&gt;google-trends-analysis.py&lt;/code&gt; and &lt;code&gt;requirements.txt&lt;/code&gt; Create a directory named &lt;code&gt;google-trends-analysis&lt;/code&gt; and save these files into.&lt;/p&gt;

&lt;h2&gt;
  
  
  Activate Virtualenv
&lt;/h2&gt;

&lt;p&gt;I do assume you already have &lt;code&gt;virtualenv&lt;/code&gt; installed, but if not just execute &lt;code&gt;sudo pip3 install virtualenv&lt;/code&gt;. Enter into &lt;code&gt;google-trends-analysis&lt;/code&gt; directory with &lt;code&gt;cd google-trends-analysis&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd google-trends-analysis
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To make all stuff properly done activate &lt;code&gt;virtualenv&lt;/code&gt; with the creation of working virtual environment directory called &lt;code&gt;venv&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;virtualenv venv 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Your &lt;code&gt;google-trends-analysis&lt;/code&gt; directory looks like now like on picture hereunder.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvghnq1nlpsvvo7ljrujr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvghnq1nlpsvvo7ljrujr.png" alt="Image description" width="349" height="207"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now activate this working environment.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;source venv/bin/activate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Pytrends and Plotly Libraries to Install
&lt;/h2&gt;

&lt;p&gt;All libraries needed to run Google Trends and Plotly correctly are saved in &lt;code&gt;requirements.txt&lt;/code&gt; file. Now execute installation in a virtual environment we already activated.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip3 install -r requirements.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will take a while to pass all installations. You'll see in your terminal how all libraries are installed to properly run the script.&lt;/p&gt;

&lt;p&gt;After installation to run &lt;code&gt;google-trends-analysis.py&lt;/code&gt; script hereunder just type this command and enjoy response in your browser IP 127.0.0.1 on a random port.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python3 google-trends-analysis.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is how it will look like, a nicely plotted graph in the final result. (Graph images by author)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnka8n9npv2vtuv07rnxa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnka8n9npv2vtuv07rnxa.png" alt="Image description" width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmnc6r4namln60syh7aok.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmnc6r4namln60syh7aok.png" alt="Image description" width="800" height="445"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks to &lt;a href="https://unsplash.com/@edwardhowellphotography?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=CreditCopyTextGratitude"&gt;Edward Howell&lt;/a&gt; for the cover image from Unsplash.&lt;/p&gt;

</description>
      <category>python</category>
      <category>gratitude</category>
      <category>tutorial</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Uptime of macOS system via terminal</title>
      <dc:creator>Stan Kukučka</dc:creator>
      <pubDate>Sat, 13 Nov 2021 20:10:48 +0000</pubDate>
      <link>https://dev.to/stankukucka/uptime-of-macos-system-via-terminal-4jip</link>
      <guid>https://dev.to/stankukucka/uptime-of-macos-system-via-terminal-4jip</guid>
      <description>&lt;p&gt;You are logged into your system. In this case, it's macOS. You are facing just a simple question. Are you the only one who is logged in? I would like to give you an answer to this simple question with a bit of explanation. Here in upcoming lines, there will be a bit of theory background behind it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your System Uptime
&lt;/h2&gt;

&lt;p&gt;In case your system is healthy (understand as an official system with applied updates), you are the only physical user logged in. You can check this logged in information with a simple command you will enter into the terminal. But there is a trick in that, will explain in next lines hereunder. Open your &lt;code&gt;Terminal.app&lt;/code&gt; you'll find out in &lt;code&gt;Finder&lt;/code&gt; in the section &lt;code&gt;Applications&lt;/code&gt; and &lt;code&gt;Utilities&lt;/code&gt;. For more informations check official &lt;a href="https://support.apple.com/guide/terminal/welcome/mac"&gt;Terminal User Guide&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;By entering &lt;code&gt;uptime&lt;/code&gt; command you'll be informed in one line output about the current time, number of days your system is up, number of logged-in users etc.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;uptime
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you'll enter this very same command into the terminal in capital form as &lt;code&gt;UPTIME&lt;/code&gt;, you'll receive a more readable summary of the logged-in sessions by the user.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;UPTIME
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The same output can be given by entering &lt;code&gt;w&lt;/code&gt; command into the terminal.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;w
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Minimum of logged-in users
&lt;/h2&gt;

&lt;p&gt;Do remember you will always have a minimum of 2 logged-in users. By default when you open another terminal session it will be counted as another active user logged in. In other words, if you open four-terminal sessions, you will see 4 users logged in +1 as the default logged-in user I have written about.&lt;/p&gt;

</description>
      <category>systems</category>
      <category>help</category>
      <category>security</category>
    </item>
    <item>
      <title>How to install pip3 on mac</title>
      <dc:creator>Stan Kukučka</dc:creator>
      <pubDate>Sat, 13 Nov 2021 19:54:00 +0000</pubDate>
      <link>https://dev.to/stankukucka/how-to-install-pip3-on-mac-2hi4</link>
      <guid>https://dev.to/stankukucka/how-to-install-pip3-on-mac-2hi4</guid>
      <description>&lt;h1&gt;
  
  
  What is it about
&lt;/h1&gt;

&lt;p&gt;Most of the installations you are going to use during your developer processes use PIP3 especially when you dig into the programming language Python.&lt;/p&gt;

&lt;p&gt;The reason is simple, PIP is a package manager for this language. It allows you to manage libraries and dependencies that are added to the standard library, but not just that. It helps you to install those whos are missing during your development process.&lt;/p&gt;

&lt;h1&gt;
  
  
  Difference between PIP and PIP3
&lt;/h1&gt;

&lt;p&gt;As these are more likely to look like shortcuts to something they are. PIP is a &lt;a href="https://en.wikipedia.org/wiki/Recursive_acronym"&gt;recursive acronym&lt;/a&gt; that stands for PIP install packages. &lt;/p&gt;

&lt;p&gt;PIP is understood as a soft link for a particular installer. Your operation system will use one of your Python versions depending on what exactly is known as first in the system PATH variable. &lt;/p&gt;

&lt;p&gt;To know what it is and where it is on this particular path it simply types this command to view the system file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nano ~/.zshrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When you run the PIP3 command, you can be sure that this particular module or dependency will be installed in Python3. &lt;/p&gt;

&lt;h1&gt;
  
  
  How to install with Brew
&lt;/h1&gt;

&lt;p&gt;If you installed previously most of the stuff on your mac with help of Brew then this command is for you. If not start simply by adding this command from &lt;a href="https://brew.sh/"&gt;https://brew.sh/&lt;/a&gt; into the terminal prompt.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This first installation process is awkwardly long, but don't get bored. Just wait and approve by entering what does it ask for. Then just go ahead with this simple command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;brew install python3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can check the version of your PIP3 by entering this straightforward code as &lt;code&gt;-V&lt;/code&gt; stays for the version number to request.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip3 -V
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You'll receive a PIP3 version number with a path to the last installation process.&lt;/p&gt;

&lt;h1&gt;
  
  
  Installation as another way around
&lt;/h1&gt;

&lt;p&gt;You can make it without using brew just simply downloading an official file from Python Packaging Authority - Pypa.io.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl -O https://bootstrap.pypa.io/get-pip.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And then after simply executing installation with the command mentioned hereunder.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo python3 get-pip.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The installation will pass and here you are. PIP3 is on your system as final. Ready to install and roll out your new python script with help of libraries and dependencies.&lt;/p&gt;

&lt;p&gt;Thanks to &lt;a href="https://unsplash.com/@andrewruiz?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=CreditCopyTextGratitude"&gt;Andrew Ruiz&lt;/a&gt; for the cover image from Unsplash.&lt;/p&gt;

</description>
      <category>python</category>
      <category>help</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Face detection in Python - On your own in few lines of code</title>
      <dc:creator>Stan Kukučka</dc:creator>
      <pubDate>Tue, 02 Nov 2021 21:51:22 +0000</pubDate>
      <link>https://dev.to/stankukucka/face-detection-in-python-on-your-own-in-few-lines-of-code-3a0l</link>
      <guid>https://dev.to/stankukucka/face-detection-in-python-on-your-own-in-few-lines-of-code-3a0l</guid>
      <description>&lt;p&gt;Let's do some face detection to a picture you would love to play with. It can be even a painting from Wikipedia you have already downloaded. In this brief tutorial, I'll go step by step to provide you solution to such a recognition potential that python as a programming language and its libraries have.&lt;/p&gt;

&lt;p&gt;Inspiration and part of the source of code comes from this &lt;a href="https://github.com/blobcity/ai-seed/blob/main/Audio%20Visual/Problems/FaceDetection_OpenCV.ipynb"&gt;jupiter notebook file&lt;/a&gt;. The purpose of this article was to enrich the whole process with steps I have been missing and can be helpful for the reader or tester of this detection to easily pass through.&lt;/p&gt;

&lt;p&gt;I would like to go step by step with this installation, cos if you'll try to do this on a fresh system there will be missing quite a lot of installing libraries to have this all properly working for you. So let's start with brew.&lt;/p&gt;

&lt;h2&gt;
  
  
  Let's Install Brew installation environment
&lt;/h2&gt;

&lt;p&gt;The easiest way how to install all that's needed is to start with &lt;a href="https://brew.sh"&gt;Brew&lt;/a&gt;. It installs the stuff you need that Apple didn’t. Copy and paste a bunch of the long code from this website and execute it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then after just simply update all installation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;brew update
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Let's Install Python3
&lt;/h2&gt;

&lt;p&gt;Now we can install Python3 cos what? Cos we have brew already installed and that's why it will be super easy. The next step is to update pip into pip3 cos we have python3 installation finalised. With sudo it will ask for a system password, so just simply provide your pwd.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;brew install python3
sudo pip3 install --upgrade pip
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Install Environment
&lt;/h2&gt;

&lt;p&gt;For the next work, we'll need a virtual environment. To understand what it is try to imagine some virtual container where all installations will go into.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip3 install virtualenv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Create Virtualenv
&lt;/h2&gt;

&lt;p&gt;We will start with directory creation to where all next installations will go to.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir facevirtual
cd facevirtual
virtualenv facevirtual
source facevirtual/bin/activate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After execution of the last command, you'll activate &lt;code&gt;facevirtual&lt;/code&gt; environment so your command prompt will look like this.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;(facevirtual) username@123 facevirtual % 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Install needed Libraries
&lt;/h2&gt;

&lt;p&gt;Create in &lt;code&gt;facevirtual&lt;/code&gt; directory txt file named &lt;code&gt;requirements.txt&lt;/code&gt; and paste inside this bunch of the code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cycler==0.10.0
kiwisolver==1.3.2
matplotlib==3.4.3
numpy==1.21.2
opencv-python==4.5.3.56
Pillow==8.3.2
pyparsing==2.4.7
python-dateutil==2.8.2
six==1.16.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These are necessary to work with the script correctly and have all, that it ask for. To execute it just type into the terminal this simple command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip3 install -r requirements.txt  
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will help you to execute the script, we will create, withou asking for additional installation.&lt;/p&gt;

&lt;h2&gt;
  
  
  How To Create Cascade Classifier
&lt;/h2&gt;

&lt;p&gt;Now we need Haar-cascade Classifier. It's a machine-learning algorithm already trained with tons of images. We gonna use a classifier that considers the human frontal faces to recognize in our target image.&lt;/p&gt;

&lt;p&gt;Open &lt;a href="https://github.com/opencv/opencv/tree/master/data/haarcascades"&gt;this link&lt;/a&gt; and look for &lt;code&gt;haarcascade_frontalface_default.xml&lt;/code&gt;. Easier for you to save this &lt;a href="https://raw.githubusercontent.com/opencv/opencv/master/data/haarcascades/haarcascade_frontalface_default.xml"&gt;click this link&lt;/a&gt; and press save as to download file into &lt;code&gt;facevirtual&lt;/code&gt; directory&lt;/p&gt;

&lt;h2&gt;
  
  
  We need image and script
&lt;/h2&gt;

&lt;p&gt;Let's download image from the internet. It will be Rembrandt's painting Syndics of the Drapers. Here is a &lt;a href="https://en.wikipedia.org/wiki/Syndics_of_the_Drapers%27_Guild#/media/File:Rembrandt_-_De_Staalmeesters-_het_college_van_staalmeesters_(waardijns)_van_het_Amsterdamse_lakenbereidersgilde_-_Google_Art_Project.jpg"&gt;link to the image&lt;/a&gt; to save this image into &lt;code&gt;facevirtual&lt;/code&gt; directory as &lt;code&gt;test.jpg&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;Now create a python file. Let's name it &lt;code&gt;face-recognition.py&lt;/code&gt; and save into this for now empty file this bunch of the code you see hereunder. &lt;/p&gt;

&lt;p&gt;No need to edit anything in script just be knowledged that &lt;code&gt;cv2.CascadeClassifier('haarcascade_frontalface_default.xml')&lt;/code&gt; load Cascade Classifier and it is responsible for detecting frontal faces on our source picture. The last thing to know that &lt;code&gt;img = cv2.imread('test.jpg')&lt;/code&gt; load the image we already saved from Wikipedia to process.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;cv2&lt;/span&gt; &lt;span class="c1"&gt;#For importing OpenCV library
&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;matplotlib.pyplot&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;plt&lt;/span&gt; &lt;span class="c1"&gt;#For plotting the image
&lt;/span&gt;
&lt;span class="c1"&gt;# Read Cascade Classifier
&lt;/span&gt;&lt;span class="n"&gt;face_cascade&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;CascadeClassifier&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;haarcascade_frontalface_default.xml&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Reading source image to process, update name of image with your own
&lt;/span&gt;&lt;span class="n"&gt;img&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;imread&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;test.jpg&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Detect faces
&lt;/span&gt;&lt;span class="n"&gt;faces&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;face_cascade&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;detectMultiScale&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;image&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;img&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;scaleFactor&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;1.1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;minNeighbors&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Draw bounding box around the faces
&lt;/span&gt;&lt;span class="nf"&gt;for &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;w&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;faces&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
      &lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rectangle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;img&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;w&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Showing number of faces detected in the image
&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;faces&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;faces are detected!&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# In this step it does plotting the image with faces detected
&lt;/span&gt;&lt;span class="n"&gt;finalimg&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;cvtColor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;img&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;COLOR_RGB2BGR&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;figure&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;figsize&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;imshow&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;finalimg&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;axis&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;off&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;show&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Execute the script and see results.
&lt;/h2&gt;

&lt;p&gt;In this final step just type into a terminal command to execute the script we already created and wait for a while for the result. No need to install anything else cos we already fulfil his requirements with help of &lt;code&gt;requirements.txt&lt;/code&gt; file to install all necessary libraries.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python3 face-recognition.py 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You should be rewarded with an image where all faces on the painting are marked with a blue square. In the terminal, you'll find information on how many faces has been marked so the text will be as hereunder.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;6 faces are detected!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Thanks to &lt;a href="https://en.wikipedia.org/wiki/Syndics_of_the_Drapers%27_Guild#/media/File:Rembrandt_-_De_Staalmeesters-_het_college_van_staalmeesters_(waardijns)_van_het_Amsterdamse_lakenbereidersgilde_-_Google_Art_Project.jpg"&gt;Wikipedia&lt;/a&gt; for the cover image.&lt;/p&gt;

</description>
      <category>python</category>
      <category>opensource</category>
      <category>tutorial</category>
      <category>terminal</category>
    </item>
    <item>
      <title>Google Search Console can't fetch sitemap on GitHub Pages</title>
      <dc:creator>Stan Kukučka</dc:creator>
      <pubDate>Mon, 01 Nov 2021 17:26:11 +0000</pubDate>
      <link>https://dev.to/stankukucka/google-search-console-cant-fetch-sitemap-on-github-pages-31kn</link>
      <guid>https://dev.to/stankukucka/google-search-console-cant-fetch-sitemap-on-github-pages-31kn</guid>
      <description>&lt;p&gt;You decided to build your website and you did the decision to publish your tweaked website to &lt;a href="https://docs.github.com/en/pages/getting-started-with-github-pages/creating-a-github-pages-site" rel="noopener noreferrer"&gt;GitHub pages&lt;/a&gt;. That's cool hosting for your static website to choose from. &lt;/p&gt;

&lt;p&gt;You do want to now see this page and other related pages indexed in Google as soon as possible. So you verified your page with Google Search Console with one of the options it offers. It is &lt;a href="https://support.google.com/webmasters/answer/9008080?hl=en#html_verification&amp;amp;zippy=%2Chtml-file-upload" rel="noopener noreferrer"&gt;uploading an HTML file&lt;/a&gt; to your GitHub account right next to other website files or &lt;a href="https://support.google.com/webmasters/answer/9008080?hl=en#meta_tag_verification" rel="noopener noreferrer"&gt;adding a meta tag&lt;/a&gt; to your site's homepage. &lt;/p&gt;

&lt;p&gt;That's great. But what if you would like to fetch the website's &lt;code&gt;sitemap XML&lt;/code&gt; file and it won't work for you as good as you want this way?&lt;/p&gt;

&lt;h2&gt;
  
  
  Google search console won't fetch your sitemap XML
&lt;/h2&gt;

&lt;p&gt;There has been notified some indexation delays regards to Google index speed to process new pages on its own. To beat this issue, the best way is to submit &lt;code&gt;sitemap XML&lt;/code&gt; into Google Search Console to let know google bot about your website's structure - pages your website has. But what if after adding &lt;code&gt;sitemap XML&lt;/code&gt; file it shows up in the submitted sitemaps section "Couldn't fetch" info?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;There is no need to upload to GitHub pages file called &lt;code&gt;.nojekyll&lt;/code&gt; as some advice has been found pointing out to this practice.&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;h2&gt;
  
  
  Create robots.txt file on Github Pages
&lt;/h2&gt;

&lt;p&gt;To let know Google bot about your sitemap just simple create on a root level of GitHub pages file named &lt;code&gt;robots.txt&lt;/code&gt; and write there this information. &lt;/p&gt;

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

&lt;p&gt;First is about where your &lt;code&gt;sitemap XML&lt;/code&gt; file is located and the rest of the information sayin' that your website si crawlable by any other crawlers (bots) in other words it's not blocking some specific bots from accessing content provided on a &lt;code&gt;sitemap XML&lt;/code&gt; file as well.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

Sitemap: https://your-website-url.github.io/sitemap.xml

User-agent: *
Disallow:


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;After you created this &lt;code&gt;robots.txt&lt;/code&gt; file you can add a new sitemap into Google Search Console again and after apx. 12 hours will be fetched for sure.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Another way around is submitting a &lt;code&gt;sitemap XML&lt;/code&gt; file the way to enter the whole URL string of your website with &lt;code&gt;sitemap XML&lt;/code&gt; file at the end of &lt;code&gt;&lt;a href="https://www.google.com/ping?sitemap=" rel="noopener noreferrer"&gt;https://www.google.com/ping?sitemap=&lt;/a&gt;&lt;/code&gt; like this hereunter.  &lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

https://www.google.com/ping?sitemap=&amp;lt;complete_url_of_sitemap&amp;gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

https://www.google.com/ping?sitemap=https://your-website-url.github.io/sitemap.xml


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Then enter this into your browser where you'll be notified about it as follows "Sitemap Notification Received". This will tell to Google bot to ping your &lt;code&gt;sitemap XML&lt;/code&gt; URL and to process it.&lt;/p&gt;

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

&lt;p&gt;And that's it, whole magic is at the very end of this article. Next morning your &lt;code&gt;sitemap XML&lt;/code&gt; file will be fetched as needed.&lt;/p&gt;

&lt;p&gt;Thanks to &lt;a href="https://unsplash.com/@richygreat?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=CreditCopyTextGratitude" rel="noopener noreferrer"&gt;Richy Great&lt;/a&gt; for the cover image from Unsplash.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>help</category>
      <category>tutorial</category>
      <category>github</category>
    </item>
    <item>
      <title>How Does Your Search Query Transit to Search Engine 🔍</title>
      <dc:creator>Stan Kukučka</dc:creator>
      <pubDate>Sat, 26 Dec 2020 20:35:53 +0000</pubDate>
      <link>https://dev.to/stankukucka/how-does-your-search-query-travel-to-search-engine-2160</link>
      <guid>https://dev.to/stankukucka/how-does-your-search-query-travel-to-search-engine-2160</guid>
      <description>&lt;p&gt;This might be a spooky topic to write about, but I kept this topic in my drafts for a quite long, long, long time.&lt;/p&gt;

&lt;p&gt;I don't want to pick up some movie examples that many of us have seen about the internet and privacy. Privacy is these days quite a hot topic not just regards to mainstream social media, but as well to some known leaks that went public.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I have asked myself, after several tests and findings, do network itself can manipulate (even track) and modify search results of what we are looking for on our favorite search engine? &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Disclaimer 1: In some parts of these topics, I'll just scratch the surface, to do not write in technical jargon as much.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The first part of the article will cover the basic theory of how does keyword search and autosuggest works and gently touches privacy setup when you first time run your favorite search engine.&lt;/p&gt;

&lt;p&gt;While the second part will be talking about the technical aspect of the internet network you are using.&lt;/p&gt;

&lt;p&gt;This article and topic itself will be of most interest to those readers coming in with interest of SEO and internet network. The ideal reader will have experience with technical SEO and terminal commands.&lt;/p&gt;

&lt;h2&gt;
  
  
  Search Engine "Magic"
&lt;/h2&gt;

&lt;p&gt;You may wonder how the search engine is giving you ideas as you type your questions into the search input field. Search engine collect overall searches of search queries on a frequent basis then calculates similarity as homonyms and plurality to offer you then potential query suggestions you may then feel it is some sort of magic, in other words, he tries to whisper you what to type. Behind this magic, there is sophisticated calculation into what we are not going to dig in this article for now.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tracking and collecting
&lt;/h2&gt;

&lt;p&gt;It's one of the many technical prove that search engines track and collect your search queries and store them for other internal processes then after. A number of queries are a trigger to calculate and to display more popular queries higher in the list of suggested queries and this same query count can correspond to the popularity of the query itself.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fq7wkf6viyn1q1821jk9f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fq7wkf6viyn1q1821jk9f.png" alt="Alt Text" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It depends on the search engine you are going to choose from, but mostly when you launch the browser for the first time and type your favorite search engine, you'll be notified about privacy options for search activity within products that certain search engine can cover. This privacy setting can vary and differs from search engine to search engine and do not always touch just cookies setup.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fx8ak879ewtsvslim4te0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fx8ak879ewtsvslim4te0.png" alt="Alt Text" width="691" height="594"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  A calculations to offer results
&lt;/h2&gt;

&lt;p&gt;These queries the user insert into the input field of a search engine (A) then after input try to provide to the user result that corresponds to search query as the product in a product database to yield from (B) as shown on the picture below. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Product in the case of the search engine (Google, Bing, Duckduckgo, Baidu or other) is represented as search engine results page (list of websites) in case of e-shop search it can be a list of products (Amazon, eBay). A more descriptive process can be found in patent explanation number US10832310B2. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In the case of search engines, this website search result page calculation is more likely to be sophisticated (is not explained in this patent mentioned above) than in the case of common e-shops nearby, you are using to buy from.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fn0vtbbig8anb0kooug5d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fn0vtbbig8anb0kooug5d.png" alt="Alt Text" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How Does Your Search Query Travel
&lt;/h2&gt;

&lt;p&gt;Once the user realizes information input into the input field for searching via the device (A: mobile, tablet, laptop), then after this information is transmitted to (B) the one search server.&lt;/p&gt;

&lt;p&gt;This search query is represented as a URL search string in the top part of your browser and travels to the search server. To see the path how does your "search query string travel" there is a command for that.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;There is a simple network diagnostic tool for showing how many different devices are between you (device you are requesting from) and target (destination server). &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It sending ping (ICMP - Internet control message protocol) displaying these devices - routers encountered represented as hops. There is command &lt;code&gt;traceroute&lt;/code&gt; in Mac OSX system for your default &lt;a href="https://en.wikipedia.org/wiki/Terminal_(macOS)"&gt;Terminal.app&lt;/a&gt; or &lt;code&gt;tracepath&lt;/code&gt; (in IPv4 format) for other Linux based systems. To see this in form of IPv6 use &lt;code&gt;traceroute6&lt;/code&gt; command. For windows it's &lt;code&gt;tracert&lt;/code&gt; command. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This command can be helpful for a penetration tester when determining what devices are on a network, but it's true that this can be often blocked by routers in the network what make this trace highly inaccurate in many cases and just briefly informative.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;traceroute
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fput8c61u8oaw04ii641z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fput8c61u8oaw04ii641z.png" alt="Alt Text" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Command will show what does happen in reality when you look for something on your favourite search engine and you try to request search query on such a search engine.&lt;/p&gt;

&lt;p&gt;In this example, there are six hops till you hit google server to provide your answer. There can be more hops as shown in the example and sometimes you can receive a response without identification represented as these three stars &lt;code&gt;* * *&lt;/code&gt; as this tool is not super accurate.&lt;/p&gt;

&lt;p&gt;So in reality, this command can return you in terminal something like this example hereunder that has been modified for publication purpose.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;traceroute to your-search-engine (123.123.12.12), 64 hops max, 52 byte packets
 1  123.45.6.7 (123.45.6.7)  39.080 ms  36.643 ms  31.633 ms
 2  123.45.6.8 (123.45.6.8)  66.296 ms  31.786 ms  33.905 ms
 3  ab-cd-1.efgh2.ij6-klmno.pr456.net (123.12.0.1)  58.625 ms  51.051 ms  39.540 ms
 4  ab-cd-2.efgh3.ij7-klmno.pr456.net (123.12.0.1)  43.920 ms  51.837 ms  42.051 ms
 5  * * *
 6  ab-cd-4.efgh5.ij9-klmno.pr456.net (123.12.0.1)  57.162 ms  58.907 ms  64.653 ms
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Would you like to know what these IPs,URLs or let's say devices are? Look for &lt;a href="https://nmap.org/download.html#macosx"&gt;Nmap tool&lt;/a&gt; for example to download the latest install file regards to operation system you are running.&lt;/p&gt;

&lt;p&gt;Then run &lt;code&gt;nmap -O -sV&lt;/code&gt; to execute the basic Nmap scan report in your terminal. This command will run for remote operation system detection as &lt;code&gt;-O&lt;/code&gt; part of code stays for and will try to determine the version of the service running on port as &lt;code&gt;-sV&lt;/code&gt; part of code claim. Yes and don't forget it needs to be executed with &lt;code&gt;sudo&lt;/code&gt; at beginning and IP address or URL you have found from &lt;code&gt;traceroute&lt;/code&gt; output at the end. The whole command looks like this.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo nmap -O -sV IP-ADDRESS-OR-URL-YOU-WANT-CHECK
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Can Network's Routers Track Your Search?
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Disclaimer 2: I have included basic pieces of information on several commands. I have not extensively dug into penetration tests and their healthy or unhealthy variety of white or black hat techniques. I will be relying on just tiny speculation for these as well as my personal experiences with certain tests, programming language, knowledge and experience i'm deeper in.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It really depends on how these routers are set up. In other words, it's a question of network setup and infrastructure of your ISP - Internet Service Provider (of your home internet service or internet service of your mobile provider, type of logs that these services capture) as well. And a really specific topic is your own home wifi router (its firmware) or device (mobile or laptop) with specific hardware, firmware or operation system you are running on that may realize their own routers visits (hops). &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F9e20duvnp82ktc1m03uz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F9e20duvnp82ktc1m03uz.png" alt="Alt Text" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To rephrase it all, your input, the search url string may travel from the device first somewhere that you don't even know, even your search intent may be secured in browser terminology.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do these devices (routers) may track search queries?&lt;/strong&gt; The answer will they might. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Same as search engine stores and process your search query input, these devices (based on their setup and maintainer privacy decision) may collect your search query strings, internet behaviour , without letting you know. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Do these devices (routers) influent search engine result order?&lt;/strong&gt; The answer will be positive with some specific condition. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It is one of the many other factors that influent the calculation of search results after you execute your search query but not the main one, but can have the manipulative influence to modify your search results order for sure.&lt;/p&gt;

&lt;p&gt;Good example, how to change path trough these devices to your search engine is to change your DNS setup or turn on VPN.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Closin' of privacy topic
&lt;/h2&gt;

&lt;p&gt;There can be a positive effort in search engine's data privacy towards users that can be not just limited by the ISP provider you are using but the local infrastructure you are plugged in. As your search may be "somehow" safe while you do your own personal research, you may look for artistic inspiration, or if some technical thing is already patented, browsing all that with HTTPS turned on in your favorite browser it may be collected and results of search engine modified by network setup even before you hit your favorite search engine to provide you an answer. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Maybe it can be that simple, that each search is our personal lowball. Maybe just try typing something really special into your search engine and then going out for a walk to see what'll happen. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Sayin' hello and sending tribute to the author of &lt;a href="https://en.wikipedia.org/wiki/Nineteen_Eighty-Four"&gt;1984 book&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>performance</category>
      <category>theycoded</category>
      <category>healthydebate</category>
    </item>
    <item>
      <title>Raspberry Pi DNS Settings Update 🔌</title>
      <dc:creator>Stan Kukučka</dc:creator>
      <pubDate>Wed, 16 Dec 2020 20:22:55 +0000</pubDate>
      <link>https://dev.to/stankukucka/raspberry-pi-dns-settings-update-27k2</link>
      <guid>https://dev.to/stankukucka/raspberry-pi-dns-settings-update-27k2</guid>
      <description>&lt;h2&gt;
  
  
  Enter Raspberry Pi with SSH.
&lt;/h2&gt;

&lt;p&gt;Let's connect to Raspberry Pi over &lt;code&gt;SSH&lt;/code&gt; with this simple command and then enter the password we keep for that whatever is your device connected over &lt;code&gt;WIFI&lt;/code&gt; or via &lt;code&gt;UTP&lt;/code&gt; cable.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ssh pi@raspberrypi.local
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Modify DNS info
&lt;/h2&gt;

&lt;p&gt;Go to a specific configuration file named &lt;code&gt;dhcpcd&lt;/code&gt; and edit it via &lt;code&gt;nano&lt;/code&gt; command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo nano /etc/dhcpcd.conf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Look for the &lt;code&gt;static domain_name_servers&lt;/code&gt; string that at the beginning holds the &lt;code&gt;#&lt;/code&gt; sign. It means the whole string is commented in other words not used as a command. Remove commenting sign as &lt;code&gt;#&lt;/code&gt; and edit whole domain name server as you wish. You can go with Google's Public DNS servers that stay for &lt;code&gt;8.8.4.4.&lt;/code&gt; and &lt;code&gt;8.8.8.8&lt;/code&gt; or select Public DNS servers on Cloudflare that stays for &lt;code&gt;1.1.1.1&lt;/code&gt;. Choose just one provider to paste. So based on your preference you will edit the whole string as follows. In the end, the whole string should look like this for Cloudflare's option.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;static domain_name_servers=1.1.1.1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or like this for Google's option.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;static domain_name_servers=8.8.4.4 8.8.8.8
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Press &lt;code&gt;CTRL + X&lt;/code&gt; and as you'll be asked to "Save modified buffer?" press &lt;code&gt;Y&lt;/code&gt; and then &lt;code&gt;ENTER&lt;/code&gt;. No need to restart the whole Raspberry Pi device, just restart the &lt;code&gt;dhcpcd&lt;/code&gt; service.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo service dhcpcd restart
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To check if the domain name server's update was accepted and passed correctly use this last command to execute &lt;code&gt;resolv&lt;/code&gt; file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo nano /etc/resolv.conf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You should be seeing something like &lt;code&gt;# Generated by resolvconf&lt;/code&gt; info and under it &lt;code&gt;nameserver&lt;/code&gt; updated informations. That's all.&lt;/p&gt;

&lt;p&gt;Thank your lucky stars. Reading this whole DNS-awesomesauce brief tutorial.&lt;/p&gt;

&lt;p&gt;Thanks to &lt;a href="https://unsplash.com/@tvick?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=CreditCopyTextGratitude"&gt;Taylor Vick&lt;/a&gt; for the cover image from Unsplash.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Connect To Your Raspberry Pi From a Mac 🧰</title>
      <dc:creator>Stan Kukučka</dc:creator>
      <pubDate>Wed, 16 Dec 2020 20:17:36 +0000</pubDate>
      <link>https://dev.to/stankukucka/how-to-connect-to-raspberry-pi-on-macos-374n</link>
      <guid>https://dev.to/stankukucka/how-to-connect-to-raspberry-pi-on-macos-374n</guid>
      <description>&lt;h2&gt;
  
  
  Your Laptop and Raspberry Pi connected
&lt;/h2&gt;

&lt;p&gt;You are close to making this happen. Your &lt;a href="https://dev.to/stankukucka/how-create-raspberry-pi-os-using-raspberry-pi-imager-9m0"&gt;Raspberry Pi OS is already copied onto an SD card&lt;/a&gt; (as explained in previous tutorial) and plugged into a Raspberry Pi slot. There are a few steps to make this piece of tiny hardware work for you. So let's make this magic real, let's slice and dice it whole.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enable SSH on Raspberry Pi
&lt;/h2&gt;

&lt;p&gt;In this step, you definitely need to connect your Raspberry Pi into power with Micro-USB-B on one side with standard USB on other side and plugin at least a USB mouse and yeah, don't leave your HDMI port empty to plug in some monitor too. The whole Raspberry OS should boot into the nice and tight interface. Click on the berry icon on the very left top corner and lead your mouse to &lt;code&gt;Preferences &amp;gt; Raspberry Pi Configuration&lt;/code&gt; as seen on the next screenshot.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fitu0lqchfkrtn13v486l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fitu0lqchfkrtn13v486l.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This window will pop-up in the middle of your screen. There is a place to rename your Raspberry device in the section named as Hostname or keep it default as &lt;code&gt;raspberrypi&lt;/code&gt;. Remember this Hostname serve device connection in connection command, so if you rename it here don't forget to rewrite in command too. Example for SSH connection where whole command to serve device is &lt;a href="mailto:pi@raspberrypi.local"&gt;pi@raspberrypi.local&lt;/a&gt;, but will come to this point later.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fnphil3tlv48o0wmi5swl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fnphil3tlv48o0wmi5swl.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To activate SSH click on the &lt;code&gt;Interfaces&lt;/code&gt; on the top part of the window and press the radio button &lt;code&gt;Enabled&lt;/code&gt; where SSH info is mentioned. SSH itself will help us to connect to Raspberry via terminal when it is connected to local network via UTP cabel or via wifi without monitor plugged into device later on.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fwup24aym0o6h2mr0fdmf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fwup24aym0o6h2mr0fdmf.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Plug in Raspberry
&lt;/h2&gt;

&lt;p&gt;There are two ways how to plug in your "razz" into the network. The first and the starting step as we are going to with is our first choice. Connect via UTP cable, in case we have the same port on the laptop.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fjkkn4b7308ld7r8agpaq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fjkkn4b7308ld7r8agpaq.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Connect to Raspberry
&lt;/h2&gt;

&lt;p&gt;There is no need to identify the IP address of your Raspberry Pi device. Just simply use SSH command and try to connect to &lt;code&gt;raspberrypi.local&lt;/code&gt; with this command hereunder.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

ssh pi@raspberrypi.local


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;You'll be notified with this command hereunder.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

Are you sure you want to continue connecting (yes/no/[fingerprint])? yes


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Type &lt;code&gt;yes&lt;/code&gt; and you'll be asked for password.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

pi@raspberrypi.local's password: 


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Default password to Raspberry device is &lt;code&gt;raspberry&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now type &lt;code&gt;exit&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;In this step we are going to get rid of the default password to make it more safer. So you'll log in again into Raspberry Pi via SSH, but with the additional command &lt;code&gt;passwd&lt;/code&gt; to set up a new password.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

ssh pi@raspberrypi.local passwd


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Pass the whole process of changing the actual password into the new one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Turn on Wifi
&lt;/h2&gt;

&lt;p&gt;If you are looking for wifi activation you should be already connected to Raspberry via SSH on UTP cable. Then paste this command to activate the configuration interface in the terminal.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

sudo raspi-config


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This &lt;code&gt;Software configuration tool&lt;/code&gt; will show up. Just select the first option as follows &lt;code&gt;1 System Options&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fcbijohc6hv8ys0k025mb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fcbijohc6hv8ys0k025mb.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then head to &lt;code&gt;S1 Wireless LAN&lt;/code&gt; to setup wifi to connect to.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F6nn4k0fga4yhde8m0ik5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F6nn4k0fga4yhde8m0ik5.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You'll be asked for SSID as the name of the wifi.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fl1qryn185v7my4h2bz9l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fl1qryn185v7my4h2bz9l.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Enter passphrase to log into wifi.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fz8ubo1rtc56nwaxandj0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fz8ubo1rtc56nwaxandj0.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here will system freeze for a while then after you confirm the password just press simple &lt;code&gt;FINISH&lt;/code&gt; in the main interface.&lt;/p&gt;

&lt;h2&gt;
  
  
  Connected over wifi
&lt;/h2&gt;

&lt;p&gt;Now you can unplug UTP cable and let connect to your Raspberry Pi over SSH again. Your laptop and Raspberry Pi needs to be on the same wifi. You'll be notified by this informations hereunder.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

Warning: Permanently added the ECDSA host key for IP address 'HERE IS YOUR MAC ADDRESS' to the list of known hosts.


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;And just enter the password to get into your "Razz" again. Be ready to follow this process anytime you reinstall the system of your laptop in other words connect to Raspberry Pi over UTP cable first, set up a wifi connection, and then you can easily realize an SSH connection via wifi.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ready to roll with your "Razz"
&lt;/h2&gt;

&lt;p&gt;Now is your Raspberry fully connected via wifi (or you can connect via UTP cable if you prefer). Check how long the device is up with this command.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

uptime


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;You can disconnect from the device with &lt;code&gt;exit&lt;/code&gt; command when you'll stop the connection, but Raspberry Pi will still keep running.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

exit
Connection to raspberrypi.local closed.


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Or to turn off the device entirely with a simple command.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

sudo halt


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;To give your Raspberry time to rest for your next upcoming projects.&lt;/p&gt;

&lt;p&gt;Thanks to &lt;a href="https://unsplash.com/@harrisonbroadbent?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=CreditCopyTextGratitude" rel="noopener noreferrer"&gt;Harrison Broadbent&lt;/a&gt; for the cover image from Unsplash.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
