<?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: Connor Van Etten</title>
    <description>The latest articles on DEV Community by Connor Van Etten (@connor-ve).</description>
    <link>https://dev.to/connor-ve</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%2F1055032%2Fd2cd25d4-3f21-44d7-b4c5-f9312d33c09f.jpeg</url>
      <title>DEV Community: Connor Van Etten</title>
      <link>https://dev.to/connor-ve</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/connor-ve"/>
    <language>en</language>
    <item>
      <title>How to make glass... with CSS!</title>
      <dc:creator>Connor Van Etten</dc:creator>
      <pubDate>Fri, 10 May 2024 21:01:34 +0000</pubDate>
      <link>https://dev.to/connor-ve/how-to-make-glass-with-css-418j</link>
      <guid>https://dev.to/connor-ve/how-to-make-glass-with-css-418j</guid>
      <description>&lt;h2&gt;
  
  
  Glass  using CSS




&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;tldr&lt;/strong&gt; : 5 lines of code are all that is need to achieve this effect. click here to skip the &lt;strong&gt;amazing&lt;/strong&gt; explanation. :sad:&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%2F2x90rp27hbem7vuhkmdf.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%2F2x90rp27hbem7vuhkmdf.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One of the newer trends, I frequently see with websites and apps are log in screens or components with a Glass Effect. Overall the concept should be simple but when I first was learning CSS it took me a while to find a tried and true way to achieve this effect. In this article we are gonna to detail how to get a Glass Effect shown above to help you modernize your websites! &lt;/p&gt;
&lt;h2&gt;
  
  
  Basic setup
&lt;/h2&gt;

&lt;p&gt;For this tutorial we are going to be focusing on the CSS mainly, but if you would like to follow in a local project, below I will show my HTML. &lt;/p&gt;

&lt;pre class="highlight html"&gt;&lt;code&gt;

&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;id= &lt;/span&gt;&lt;span class="s"&gt;"container"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt; Fake Company, Inc. &lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt; Login &lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
  Email
&lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"form-control"&lt;/span&gt; &lt;span class="na"&gt;placeholder=&lt;/span&gt;&lt;span class="s"&gt;"johndoe@gmail.com"&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"fullscreen-search-term"&lt;/span&gt; &lt;span class="na"&gt;autocomplete=&lt;/span&gt;&lt;span class="s"&gt;"off"&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  Password
&lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"password"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"form-control"&lt;/span&gt; &lt;span class="na"&gt;placeholder=&lt;/span&gt;&lt;span class="s"&gt;"Password"&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"fullscreen-search-term"&lt;/span&gt; &lt;span class="na"&gt;autocomplete=&lt;/span&gt;&lt;span class="s"&gt;"off"&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href = &lt;/span&gt;&lt;span class="s"&gt;"#"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;forgot password?&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;button&amp;gt;&lt;/span&gt; Sign in &lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class = &lt;/span&gt;&lt;span class="s"&gt;"center-text"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  or continue with
  &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;id= &lt;/span&gt;&lt;span class="s"&gt;"box"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;i&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"fa-brands fa-google"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/i&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&amp;lt;i&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"fa-brands fa-github"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;i&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"fa-brands fa-facebook"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/i&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class = &lt;/span&gt;&lt;span class="s"&gt;"center-text"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  Dont have an account? &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href = &lt;/span&gt;&lt;span class="s"&gt;"#"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Register for free&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;


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

&lt;p&gt;This is a basic setup for a login screen, with &lt;strong&gt;no functionality&lt;/strong&gt;, as it is purely esoteric. One thing to note is for the buttons on the bottom showing the logos for Google, GitHub and Facebook I do have font-awesome imported into the project. In my html the syntax for each is located in the class definitions of the  tags. &lt;/p&gt;

&lt;p&gt;There is no JS associated with my example, though keep in mind to make this work in a &lt;em&gt;real world&lt;/em&gt; application you will need to add functions to the buttons and input fields. &lt;/p&gt;

&lt;h2&gt;
  
  
  CSS Styling
&lt;/h2&gt;

&lt;p&gt;Within my code I have a decent amount of filler CSS to handle the formatting of this Login Screen. Mainly I am using &lt;code&gt;display: flex;&lt;/code&gt; to format my elements, along with some padding and margin definitions. If you have any questions with flexbox or flex feel free to leave a comment, and I can do a dedicated post regarding that! &lt;/p&gt;

&lt;p&gt;To achieve the glass effect focus on the &lt;code&gt;#container&lt;/code&gt; id within my CSS portion. In my code below I have removed all formatting properties. &lt;/p&gt;

&lt;pre class="highlight css"&gt;&lt;code&gt;

&lt;span class="nf"&gt;#container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c"&gt;/* Only Glass Effect Relevant Code */&lt;/span&gt;
  &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#c8c8c82&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;-webkit-backdrop-filter&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;blur&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;5px&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="py"&gt;backdrop-filter&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;blur&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;5px&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nl"&gt;box-shadow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1px&lt;/span&gt; &lt;span class="m"&gt;1px&lt;/span&gt; &lt;span class="m"&gt;5px&lt;/span&gt; &lt;span class="m"&gt;1px&lt;/span&gt; &lt;span class="m"&gt;#13131354&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1px&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt; &lt;span class="m"&gt;#e9e9e94&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;


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

&lt;p&gt;Lets break down each of the properties defined above : &lt;/p&gt;

&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

background-color: #c8c8c82c;


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

&lt;p&gt;Most are familiar with background-color, but using this property you are also able to add transparency to your div. In my example I chose to use hex to set my color and opacity, but &lt;code&gt;rgba&lt;/code&gt; or &lt;code&gt;hsla&lt;/code&gt; will suffice. For the desired effect you will want to set the main color to a white to grey (I prefer &lt;code&gt;#c8c8c8&lt;/code&gt; or &lt;code&gt;rgb(200,200,200)&lt;/code&gt;) and an opacity around 30%. &lt;/p&gt;

&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

-webkit-backdrop-filter: blur(5px)
backdrop-filter: blur(5px)


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

&lt;p&gt;This is where you get that frosted glass look from your div. Adding a backdrop filter will impact the look of the elements behind your transparent div. Within that filter we set it blur the images 5px. Feel free to edit this &lt;code&gt;px&lt;/code&gt; as a higher &lt;code&gt;px&lt;/code&gt; will increase the blur. &lt;/p&gt;

&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

box-shadow: 1px 1px 5px 1px #13131354;


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

&lt;p&gt;To separate the login screen from the background a box-shadow will ad this depth. The first two &lt;code&gt;px&lt;/code&gt; declaration handle the x and y offset of your box-shadow. For my current example I chose 1px as not to make it two distracting. Next the &lt;code&gt;5px&lt;/code&gt; represents the blur radius aka how much you want to blur the box-shadow. Lastly I have the color set with an opacity of roughly 30%. &lt;/p&gt;

&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

border: 1px solid #e9e9e94f;


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

&lt;p&gt;Lastly as a personal preference, adding a border to your glass element can give it a solid edge and add to the effect. I would use the same color you have chose for the background along with a similar opacity. &lt;/p&gt;

&lt;p&gt;Using these 5 properties on your container you are able to make a glass-like element for your new project! &lt;/p&gt;

&lt;h2&gt;
  
  
  Quick Guide
&lt;/h2&gt;

&lt;p&gt;In recap to add a glass effect to your &lt;/p&gt; using CSS add these properties. 
&lt;pre class="highlight css"&gt;&lt;code&gt;

&lt;span class="nf"&gt;#container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c"&gt;/* Only Glass Effect Relevant Code */&lt;/span&gt;
  &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#c8c8c82&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;-webkit-backdrop-filter&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;blur&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;5px&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="py"&gt;backdrop-filter&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;blur&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;5px&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nl"&gt;box-shadow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1px&lt;/span&gt; &lt;span class="m"&gt;1px&lt;/span&gt; &lt;span class="m"&gt;5px&lt;/span&gt; &lt;span class="m"&gt;1px&lt;/span&gt; &lt;span class="m"&gt;#13131354&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1px&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt; &lt;span class="m"&gt;#e9e9e94&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you need a different color for your element please feel free to edit the first 6 numbers, without touch the opacity definitions. &lt;/p&gt;
&lt;h2&gt;
  
  
  Live Demo / Remake
&lt;/h2&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/connor-ve/embed/rNgNgqz?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Thank you for reading !
&lt;/h2&gt;

&lt;p&gt;If you like my work or articles please leave a like and comment! Additionally if you would like me to cover any Web Development, Game Development, or Programming Topic let me know! &lt;/p&gt;



</description>
    </item>
    <item>
      <title>AWS Services Guide : Introduction</title>
      <dc:creator>Connor Van Etten</dc:creator>
      <pubDate>Fri, 11 Aug 2023 03:26:37 +0000</pubDate>
      <link>https://dev.to/connor-ve/aws-services-guide-introduction-27o4</link>
      <guid>https://dev.to/connor-ve/aws-services-guide-introduction-27o4</guid>
      <description>&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%2F0qj5asoez5nggrw8k9uk.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%2F0qj5asoez5nggrw8k9uk.png" alt="AWS Hello" width="800" height="921"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Hi there!
&lt;/h2&gt;

&lt;p&gt;Welcome to my comprehensive blog series where we will be discussing and exploring the vast ecosystem of AWS Services. With over 200+ current AWS services being offered it can be difficult to know what you need and what is offered for your needs. This series is tailored to provide you with a clear and insightful understanding of AWS's offering and how you can integrate them into your next project. My goal is to equip you with the tools, knowledge and insights necessary to make informed decisions when architecting, implementing, and optimizing your cloud infrastructure on AWS. We will be breaking down the most fundamental services, their features, use cases, best practices and common errors. After each services if covered I will also give an example or way to integrate this service into a real world implementation.&lt;/p&gt;

&lt;p&gt;Join me as we unravel the cloud-powered potential of AWS services. The future of technology is in the cloud, and together, we'll navigate its possibilities, one service at a time.&lt;/p&gt;

&lt;p&gt;Stay tuned for the first installment, where I will be detailing AWS Identity and Access Management or better known as &lt;strong&gt;AWS IAM&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Feel free to explore this guide out of order as it will not be chronological!  &lt;/p&gt;

</description>
    </item>
    <item>
      <title>Starter Project Idea: Conway's Game of Life</title>
      <dc:creator>Connor Van Etten</dc:creator>
      <pubDate>Mon, 22 May 2023 06:56:21 +0000</pubDate>
      <link>https://dev.to/connor-ve/starter-project-idea-conways-game-of-life-1jfi</link>
      <guid>https://dev.to/connor-ve/starter-project-idea-conways-game-of-life-1jfi</guid>
      <description>&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%2F01vhanqg5pfhwrqple3i.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%2F01vhanqg5pfhwrqple3i.png" alt="My Website" width="800" height="849"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Code and Active Deployment&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://codingwithconnor.com/ConwaysLife/"&gt;Deployment&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Crvanetten15/ConwaysLife"&gt;Github Implementation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Back in 1970, &lt;a href="https://en.wikipedia.org/wiki/John_Horton_Conway"&gt;John Conway&lt;/a&gt; devised a simulation of cellular automation. The simulation or game was based around a grid with cells in it that either would be dead or alive based on a set of rules. The future status of a cell was determined by its neighboring cells before it. Given these simple rules there are immense mathematical combinations for the games outcomes. The rules state that :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Any live cell with fewer than two live neighbors dies, as if by underpopulation.&lt;/li&gt;
&lt;li&gt;Any live cell with two or three live neighbors lives on to the next generation.&lt;/li&gt;
&lt;li&gt;Any live cell with more than three live neighbors dies, as if by overpopulation.&lt;/li&gt;
&lt;li&gt;Any dead cell with exactly three live neighbors becomes a live cell, as if by reproduction.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why Build your Own
&lt;/h2&gt;

&lt;p&gt;When I was learning coding I found that Conway's game of life provided a new programmer a good template for learning more about the basics within their given language. For starters, although the rules are simple it forces a young programmer the need to start thinking algorithmically. "How am I going to check the spaces around a cell?", "How do I update all cells at once?",  etc. are questions this project forces you to ask and answer. Next it provides a good basis for working with data structures, and although there are multiple data structures one could use, choosing the right one will make the process of development easier. Next depending on how far you go with this project you can include user input, a start and stop or added features that will add the need to deal with event handling and a working user interface. Creation of a game also makes you look at the modularity of your code and how well it is organized. It forces you to have to reuse functions, objects, or code blocks which will only benefit you going forward. Lastly, depending on the language you choose to work with it will give you experience in visualization of our code by displaying the grid of cells.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I recommend You Do
&lt;/h2&gt;

&lt;p&gt;For this specific project I would use a language that allows for easy visualization as your end project you would like to be seen by others. The two that come to mind are JavaScript, as you can place it in a web browser to see or python as they have several libraries for creating GUI windows (tKinter and PyQT). Next I would brush up on your knowledge of this languages basic data structures such as arrays or lists as they will come in handy for your development process. Next I would research the game itself, as I did a very quick overview above you might want to make an effort to understand the simulation itself. Lastly, if you are completely lost look to either my code above or this amazing &lt;a href="https://www.youtube.com/watch?v=FWSR_7kZuYg&amp;amp;pp=ygUaQ29ud2F5IGdhbWUgb2YgbGlmZSBjb2Rpbmc%3D"&gt;video&lt;/a&gt; by The Coding Train as they were my inspiration for doing this project years ago. &lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;All in all, when learning programming I feel it is best to build something. For me this was a great project in the early part of my learning and helped me develop a good foundation for me to build upon in my future years. I would say when starting try as much as you can to create this without looking up a solution or my code as it won't exercise your coding muscles as much. Please feel free to take a look at my development which is linked above if you want to see a working final product. &lt;/p&gt;

&lt;h2&gt;
  
  
  Thank You for Reading!
&lt;/h2&gt;

&lt;p&gt;If you end up making your own Game of Life please comment below as I would love to see it. If you enjoyed reading or have any questions please like and/or comment below. Cheers 👋&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>webdev</category>
      <category>python</category>
    </item>
    <item>
      <title>How to use Keyword Arguments in Python</title>
      <dc:creator>Connor Van Etten</dc:creator>
      <pubDate>Mon, 22 May 2023 06:17:07 +0000</pubDate>
      <link>https://dev.to/connor-ve/how-to-use-keyword-arguments-in-python-gcl</link>
      <guid>https://dev.to/connor-ve/how-to-use-keyword-arguments-in-python-gcl</guid>
      <description>&lt;h2&gt;
  
  
  Introduction to Kwargs
&lt;/h2&gt;

&lt;p&gt;In python, keyword arguments aka kwargs give developers the power create a function that can accept a variable number of arguments. Unlike the normal set up for a function where the argument amount is strictly defined, kwargs allow one to pass a dynamic set of key-value pairs in as arguments. This is extremely helpful for use-cases where your function may have optional or varying parameters. &lt;/p&gt;

&lt;h2&gt;
  
  
  Overview of Usage and Syntax
&lt;/h2&gt;

&lt;p&gt;To use kwargs, we need to add a special keyword parameter into the argument of the function, &lt;code&gt;**kwargs&lt;/code&gt;. When this is set, it will give you the option to add any key-pair argument into the argument section when you call said function. Inside of your function using kwargs these values will be treated like a dictionary, allowing you to access them. Using standard dictionary operations like &lt;code&gt;kwargs['key']&lt;/code&gt; or &lt;code&gt;kwargs.get('key')&lt;/code&gt; you are able to retrieve the value giving to the function. It should be noted the word kwargs is not required but it is considered the best practice. Any variable name could be used in replace of it as long as you add &lt;code&gt;**&lt;/code&gt; to the front of it in the argument section. &lt;/p&gt;

&lt;h2&gt;
  
  
  Examples of Usage
&lt;/h2&gt;

&lt;p&gt;Lets say you have a function to print out characteristics of different types of pets. Now that gives us a wide range of inputs that we would need to accept to get all the information given. Using kwargs we are able to handle all of these inputs simply.&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="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;print_pets&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;kwargs&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Name: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;kwargs&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Age: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;kwargs&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;age&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Type: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;kwargs&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print_pets&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Copper&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;golden retriever&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Name: Copper
Age: 12
Type: golden retriever
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now lets say we wanted to add another pet to this function but we don't know how old they are? With kwargs we don't need to include it in the arguments. In this case will will have to change the internal code as using the []'s to index the dictionary does not handle missing values even know kwargs does. Replacing these brackets with the get() function will fix this error though!&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="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;print_pets&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;kwargs&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Name: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;kwargs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Age: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;kwargs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;age&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Type: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;kwargs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print_pets&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Betsy&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;poodle&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Name: Betsy
Age: None
Type: poodle
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Also, it should be noted that you can still place explicit arguments into the function for functions that would be considered required. Using our previous example lets make the name of our pet required for the function while making the rest optional.&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="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;print_pets&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;kwargs&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Name: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Age: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;kwargs&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;age&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Type: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;kwargs&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print_pets&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Copper&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;golden retriever&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Name: Copper
Age: 12
Type: golden retriever
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Kwargs can offer a wide range of benefits when programming within Python. It allows for much more readable function calls that can dynamically change for the users needs. They offer a familiar way to handle the arguments of a function by internally placing them in a dictionary for use. They have several use-cases that would be a nightmare without this functionality. One in particular is when creating APIs and allowing the user to be able to customize their queries and responses based on their given arguments. This not only benefits the user but you as a developer as you are starting to make more readable and concise code!&lt;/p&gt;

&lt;p&gt;Thank you for reading my article! If you learned something new or have an thoughts, please like and comment. Cheers 👋&lt;/p&gt;

</description>
      <category>python</category>
      <category>programming</category>
      <category>api</category>
    </item>
    <item>
      <title>How to center a &lt;div&gt; every time!</title>
      <dc:creator>Connor Van Etten</dc:creator>
      <pubDate>Mon, 22 May 2023 05:19:54 +0000</pubDate>
      <link>https://dev.to/connor-ve/how-to-center-a-every-time-43ki</link>
      <guid>https://dev.to/connor-ve/how-to-center-a-every-time-43ki</guid>
      <description>&lt;p&gt;I'm sure we have all been there! Starting web development and you are tasked with placing an item in the center of the screen or box. Searching Stack Overflow and the internet will give you many valid ways to place this div in the center, but for me, these have been the easiest to use and remember.&lt;/p&gt;

&lt;p&gt;Using the display property, we can break down the behavior of the elements within the body or container you are trying to center. When setting the display property, we want to put the CSS code inside the element that contains the div we are looking to center, not the div itself. In our recommended styles, we will use both the flex and grid displays, but they will both satisfy the need to center your div.&lt;/p&gt;

&lt;h1&gt;
  
  
  Display Flex :
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.wrapper&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;flex&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;justify-content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;align-items&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The first way I center div's is using a flex display with the properties justify-content and align-items, both set to center. justify-content will handle the centering of the x-axis, while align-items will take care of the y-axis.&lt;/p&gt;

&lt;h1&gt;
  
  
  Display Grid :
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.wrapper&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;place-items&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;My other preferred way to center div's is using a grid display. This one is even easier to commit to memory as after you set display to grid, you just need to set place-items to center. This will both horizontally and vertically center your div inside the element.&lt;/p&gt;

&lt;h3&gt;
  
  
  Thank you for Reading!
&lt;/h3&gt;

</description>
      <category>webdev</category>
      <category>css</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Lambda Functions in Python Explained</title>
      <dc:creator>Connor Van Etten</dc:creator>
      <pubDate>Sat, 22 Apr 2023 22:49:39 +0000</pubDate>
      <link>https://dev.to/connor-ve/lambda-functions-in-python-explained-4a91</link>
      <guid>https://dev.to/connor-ve/lambda-functions-in-python-explained-4a91</guid>
      <description>&lt;p&gt;Another fancy trick within Python, lambda functions add another way to execute a block of code in one line. So, what are lambda functions and how do we use them?&lt;/p&gt;

&lt;h2&gt;
  
  
  What are Lambdas?
&lt;/h2&gt;

&lt;p&gt;Lambda functions are small anonymous functions that can take multiple arguments and perform a singular expression on them. The format for a lambda function involves the keyword "lambda", the argument names, and the expression itself after a colon (:).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lambda Formatting&lt;/strong&gt;&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="k"&gt;lambda&lt;/span&gt; &lt;span class="nf"&gt;argument&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="n"&gt;expression&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;While traditional functions generally have a return statement, a lambda will merely return the value of its expression after running. Let's take a look at an example of using a lambda.&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="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)(&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This example above will return the value 12 (4*3) when called. Note that since this is an anonymous function, we cannot call it by itself, and we have to encase the function in parentheses, and then the number in the parentheses to the right will be input. Now, this seems kind of pointless as the value given is not utilized. Now let's take a look at a way we can make this function more usable through your program.&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="n"&gt;lamb&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;3&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;lamb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this case, we add a variable to hold this lambda function, and therefore we are able to use it elsewhere. Using the same lambda function as our first example, we give that add a variable to hold the function. Then we can use the variable name to run our lambda function from it. Again, this idea will not often be used as it may be more readable to write a full function and just call that for this use case, but it is important to understand you can do this. Now let's look at two of the more useful and common ways to use a lambda.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lambda Functions with Iterables
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;example_list&lt;/span&gt; &lt;span class="o"&gt;=&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="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;example_list&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;lambda&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;x&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;example_list&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;example_list&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;output =&amp;gt; [1, 4, 9, 16, 25, 36, 49, 64]&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The biggest and most helpful use case of a lambda function would be with Iterables. Above we see an example of wanting to work our way through a list and replace the value of each element with its squared value. If you are unfamiliar with the map function, its purpose is to take in a function as its first argument and performs it on all the elements in the second argument and returns an object that can be set to a list or tuple. In the example above, we could define a separate function or a loop to perform this action, but you will notice that pairing a lambda and map make this very condensed.&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="n"&gt;example_list&lt;/span&gt; &lt;span class="o"&gt;=&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="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;example_list&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;lambda&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;x&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;example_list&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;example_list&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;output =&amp;gt; [4, 8]&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Above we have another example of how to use a lambda with an iterable. Again, we start with the same list, and we are editing it using the filter function. Similarly to the map function, this takes a condition and an iterable, and will return an object containing all elements that were true for the condition. In this case, we want a list of all the elements that are divisible by 4. Now, we could use a separately defined function again, but a lambda makes our code much more concise.&lt;/p&gt;

&lt;h2&gt;
  
  
  Thank you!
&lt;/h2&gt;

&lt;p&gt;If you enjoyed reading or learned something, let me know below! Thank you for taking the time to check out my guide. Cheers!&lt;/p&gt;

</description>
      <category>python</category>
      <category>lambda</category>
      <category>programming</category>
    </item>
    <item>
      <title>Are you using VS Code Shortcuts?</title>
      <dc:creator>Connor Van Etten</dc:creator>
      <pubDate>Sat, 15 Apr 2023 04:24:52 +0000</pubDate>
      <link>https://dev.to/connor-ve/are-you-using-vs-code-shortcuts-592b</link>
      <guid>https://dev.to/connor-ve/are-you-using-vs-code-shortcuts-592b</guid>
      <description>&lt;h2&gt;
  
  
  Overview :
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;li&gt;Shortcuts&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;TLDR;&lt;/code&gt;&lt;br&gt;
Using the mouse although a valid way to navigate VS Code, tends to slow me down. Being able to add keyboard shortcuts to your VS Code workflow can improve your coding efficiency. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;One thing as a developer that I believe to be important is &lt;strong&gt;efficiency&lt;/strong&gt;. Code efficiency for specific problems is important, but so is the speed of code production in our work. How fast a programmer is able to produce a file or method can be extremely beneficial. For this article, I'd like to share some ways you might be able to become more efficient within your own development process, specifically within Visual Studio Code. &lt;/p&gt;

&lt;p&gt;Within programming there tends to be a negative stigma between developers that use a mouse when editing code and navigating there environment and those who only use a keyboard. Now although I don't condone gatekeeping or looking down on other programmers for the way they make there code, there seems to be some benefit to using only the keyboard &lt;em&gt;(atleast for me)&lt;/em&gt;. The main benefit can be sometimes be seen is performance. &lt;/p&gt;

&lt;p&gt;When using a mouse it can feel like I am "&lt;em&gt;taking a break&lt;/em&gt;" from my normal coding to select an item, but it tends to hinder my workflow. As I switch between two different motor skills I tend to spend an extra half-second or two adjusting to my new peripheral. Now this being said I have seen programmers who are able to still maintain a consistent and effortless workflow using both their mouse and keyboard, but I feel more often than not it slows me down. Now you may be thinking, its milliseconds of time and overall it's not a big deal, but time does compound over a day. &lt;/p&gt;

&lt;p&gt;It reminds me of the quote "A death by a million cuts". In this comparison, the little cuts are time wasted from using our mouse, and although insignificant in the moment, they will add up to a more significant amount of time wasted. As for me I wanted to make sure that I was more efficient as I developed code within my chosen environment. The way I achieved this was through keyboard shortcuts. Not having to remove my hand from the keyboard to open windows, select files, etc. has limited the amount of "&lt;em&gt;breaks&lt;/em&gt;" I usually needed to take with my mouse. Luckily, VS Code comes preloaded with a large amount of premade commands that you can start utilizing now. In the next section I will share my used shortcuts to help improve my development speed! &lt;/p&gt;

&lt;h2&gt;
  
  
  Shortcuts
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Windows Guide&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;For MacOS replace Ctrl with ⌘&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Show Command Palette&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;Ctrl + Shift + P&lt;/code&gt;&lt;br&gt;
-or-&lt;br&gt;
&lt;code&gt;F1&lt;/code&gt;&lt;br&gt;
This is the command for when you forget all other commands. This shortcut opens a menu with all the commands available by search. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quick Open / Go to File&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;Ctrl+P&lt;/code&gt;&lt;br&gt;
When you need to open a new file within your directory, this shortcut gives you a menu of all files to select.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Close Editor&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;Ctrl + W&lt;/code&gt;&lt;br&gt;
If you have finished all development on the file in the current editor window, use this shortcut to close that tab.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cut Line&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;Ctrl + X&lt;/code&gt;&lt;br&gt;
Lets say you don't want to keep copying, and deleting all your console.log()'s, this is the shortcut for you. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Go to Line&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;Ctrl + T&lt;/code&gt;&lt;br&gt;
More of a specific shortcut but after it is entered you may tell VS Code what line you would like to be redirected to. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;New File&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;Ctrl + N&lt;/code&gt;&lt;br&gt;
Once the directory is made and opened, use this shortcut to make a new file in the current folder. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Select All Occurrences of Selection&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;Ctrl + Shift + L&lt;/code&gt;&lt;br&gt;
Especially helpful when you want to change all occurrences of a selection. Remember hitting &lt;code&gt;ESC&lt;/code&gt; will remove the extra cursors!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open Integrated Terminal&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;Ctrl + backquote&lt;/code&gt;&lt;br&gt;
For beginner programmers sometimes the terminal is scary, but trust me the more familiar you are with it the better off you are. This shortcut will get you there!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Toggle Sidebar Visibility&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;Ctrl + B&lt;/code&gt;&lt;br&gt;
Definitely a necessary shortcut for those who have only one screen or work on a laptop. Remember this shortcut is a toggle, therefore if it is missing this will make it reappear. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open Keyboard Shortcut Preferences&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;Ctrl + K  Ctrl + S&lt;/code&gt;&lt;br&gt;
Lastly, if you feel that any shortcuts involve the wrong keys for your preference use this shortcut to open preferences and change them. &lt;/p&gt;

&lt;h2&gt;
  
  
  Thank you for Reading!
&lt;/h2&gt;

&lt;p&gt;Feel free to comment if you have any other commands that you use daily that I may have missed! Cheers!&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>tutorial</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Find Instagram Users Who Don't Follow You Back With Python</title>
      <dc:creator>Connor Van Etten</dc:creator>
      <pubDate>Wed, 12 Apr 2023 02:42:00 +0000</pubDate>
      <link>https://dev.to/connor-ve/find-users-who-dont-follow-you-back-with-python-451k</link>
      <guid>https://dev.to/connor-ve/find-users-who-dont-follow-you-back-with-python-451k</guid>
      <description>&lt;h3&gt;
  
  
  Quick Start
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Download User Data from &lt;a href="https://www.instagram.com"&gt;Instagram&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Retrieve Data from Insta via email&lt;/li&gt;
&lt;li&gt;Locate Following and Followers file&lt;/li&gt;
&lt;li&gt;Run Script&lt;/li&gt;
&lt;li&gt;Code Below&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Download User Data
&lt;/h4&gt;

&lt;p&gt;To access your user data from instagram, please go to &lt;a href="https://www.instagram.com"&gt;Instagram.com&lt;/a&gt;, and log into your account. Follow the order below : &lt;/p&gt;

&lt;p&gt;☰ → Settings → Privacy and Security → Data Download → Request Download&lt;/p&gt;

&lt;p&gt;Once here it will give you the option to download your data as either an HTML or a JSON file. For our python code to work properly, please select JSON and then hit next and enter your password to send data. &lt;/p&gt;

&lt;h4&gt;
  
  
  Retrieve Data from Insta via email
&lt;/h4&gt;

&lt;p&gt;When email is recieved, please select download information to the desired loaction on your computer.&lt;/p&gt;

&lt;p&gt;Next locate the file within your downloads. &lt;/p&gt;

&lt;h4&gt;
  
  
  Locate Following and Followers file
&lt;/h4&gt;

&lt;p&gt;Follow the path with the given folder to find your Followers.json and Following.json file. &lt;/p&gt;

&lt;p&gt;From here we need to add these two files to a folder that contains our main.py file. &lt;/p&gt;

&lt;h4&gt;
  
  
  Run Script
&lt;/h4&gt;

&lt;p&gt;Once the files are located within the correct folder with our python script all the is needed to do is run your python script. Enter the terminal, locate the directory and run &lt;code&gt;python main.py&lt;/code&gt;. This will return the list of people who you are following who do not follow you back.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enjoy! Thank you for reading!
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Code :
&lt;/h2&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;json&lt;/span&gt;

&lt;span class="c1"&gt;# get information from followers file
&lt;/span&gt;&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;followers.json&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;  
    &lt;span class="n"&gt;follower&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;load&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 

&lt;span class="c1"&gt;# get information from following file
&lt;/span&gt;&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;following.json&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;g&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;  
    &lt;span class="n"&gt;following&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;load&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;g&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 

&lt;span class="n"&gt;followers_list&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
&lt;span class="n"&gt;following_list&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;follower&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;relationships_followers&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;
  &lt;span class="n"&gt;followers_list&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;string_list_data&lt;/span&gt;&lt;span class="sh"&gt;'&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="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;value&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;following&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;relationships_following&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;
  &lt;span class="n"&gt;following_list&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;string_list_data&lt;/span&gt;&lt;span class="sh"&gt;'&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="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;value&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

&lt;span class="n"&gt;followers_list&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sort&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;following_list&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sort&lt;/span&gt;&lt;span class="p"&gt;()&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;followers_list&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;following_list&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="n"&gt;please_unfollow&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;range&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;following_list&lt;/span&gt;&lt;span class="p"&gt;)):&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;following_list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;_&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;followers_list&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;please_unfollow&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;following_list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;_&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;range&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;please_unfollow&lt;/span&gt;&lt;span class="p"&gt;)):&lt;/span&gt;
  &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;please_unfollow&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;_&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;span class="nf"&gt;exit&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;range&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;please_unfollow&lt;/span&gt;&lt;span class="p"&gt;)):&lt;/span&gt;
  &lt;span class="n"&gt;curr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;check&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;please_unfollow&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;_&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
  &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;curr&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;,&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;curr&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;curr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;curr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;,&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;''&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;K&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;curr&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;please_unfollow&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;_&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;official_account&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
    &lt;span class="k"&gt;continue&lt;/span&gt;
  &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;M&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;curr&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;please_unfollow&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;_&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;official_account&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
    &lt;span class="k"&gt;continue&lt;/span&gt;

&lt;span class="c1"&gt;# Check if user is "official" aka a professional account adjust if needed.
&lt;/span&gt;  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nf"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;curr&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;2000&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;please_unfollow&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;_&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;official_account&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
  &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;curr&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# remove all occurences of 'official_account' in please_unfollow
&lt;/span&gt;&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;official_account&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;please_unfollow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
  &lt;span class="n"&gt;please_unfollow&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;remove&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;official_account&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;please_unfollow&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>python</category>
      <category>tutorial</category>
      <category>programming</category>
    </item>
    <item>
      <title>Ternary Operators in under 200 words!</title>
      <dc:creator>Connor Van Etten</dc:creator>
      <pubDate>Mon, 10 Apr 2023 04:11:19 +0000</pubDate>
      <link>https://dev.to/connor-ve/ternary-operators-in-under-200-words-2e6l</link>
      <guid>https://dev.to/connor-ve/ternary-operators-in-under-200-words-2e6l</guid>
      <description>&lt;p&gt;Have you ever wanted to write an if-else statement in one line? &lt;br&gt;
Welcome to Ternary Operators! The basic format of a Ternary Operator follows the pseudo code below :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;(conditional) ? true-value : false-value
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This simple concept allows a user to pass a conditional and replace that line of code with either the true or false value. This can either return a function or even a value if needed. &lt;br&gt;
For example :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;x = (conditional) ? true-value : false-value
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will set the value of x to either the true value if the conditional is true and vice versa if the conditional is false. &lt;/p&gt;

&lt;p&gt;In each language, ternary operators have slightly different syntax in relation to the &lt;code&gt;?&lt;/code&gt; and &lt;code&gt;:&lt;/code&gt; but let's review what the syntax looks like in both Python and Java below: &lt;/p&gt;

&lt;h2&gt;
  
  
  Python Implementation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;hello&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;val&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;goodbye&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Java Implementation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;val&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;?&lt;/span&gt; &lt;span class="s"&gt;"hello"&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"goodbye"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now go out there and start using Ternary Operators where you see fit! If you are unaware whether your language of choice uses them, please check out this &lt;a href="https://en.wikipedia.org/wiki/Ternary_conditional_operator#Programming_languages_without_the_conditional_operator"&gt;list&lt;/a&gt;!&lt;/p&gt;

</description>
      <category>java</category>
      <category>python</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>MacOS Terminal and Alternatives</title>
      <dc:creator>Connor Van Etten</dc:creator>
      <pubDate>Mon, 10 Apr 2023 03:33:47 +0000</pubDate>
      <link>https://dev.to/connor-ve/macos-terminal-and-alternatives-4e59</link>
      <guid>https://dev.to/connor-ve/macos-terminal-and-alternatives-4e59</guid>
      <description>&lt;h2&gt;
  
  
  Terminal and Alternatives
&lt;/h2&gt;

&lt;p&gt;The first part of customization, involves the app you use to connect to your command line. Below I will list the default app, and how to open up its customization preferences, along with other alternatives that offer more features. &lt;/p&gt;

&lt;h3&gt;
  
  
  Terminal App (Default)
&lt;/h3&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%2F45b44f6oibg182mung8f.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%2F45b44f6oibg182mung8f.png" alt="Image description" width="470" height="470"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;&lt;a href="https://support.apple.com/guide/terminal/welcome/mac"&gt;link&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A lot of developer who use the default terminal window are unaware that there is a large amount of customization hidden in the preferences. By using the keyboard shortcut &lt;code&gt;command + ,&lt;/code&gt; you can open up the preferences of your terminal app. This will allow you to change profiles, font styles and size, and much more. Now within the default app you are given some features including Multiple tabs and windows, a history of all commands, and keyboard shortcuts. &lt;/p&gt;
&lt;h3&gt;
  
  
  iTerm2
&lt;/h3&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%2Fub8kpgxas9e7u2nd7bsg.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%2Fub8kpgxas9e7u2nd7bsg.png" alt="Image description" width="225" height="225"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;&lt;a href="https://iterm2.com/"&gt;link&lt;/a&gt;&lt;/em&gt;&lt;br&gt;
Commands to Install :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew update
brew &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--cask&lt;/span&gt; iterm2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Main features that iTerm2 includes are split pane terminals that can even run their own prompts, a mouse-less copy and paste, search functionality without terminal output, and multiple window and tab support for ease of use. &lt;/p&gt;

&lt;h3&gt;
  
  
  WARP
&lt;/h3&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%2F4zv58zk8irhtjwcqvm4b.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%2F4zv58zk8irhtjwcqvm4b.png" alt="Image description" width="280" height="280"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;&lt;a href="https://www.warp.dev/"&gt;link&lt;/a&gt;&lt;/em&gt;&lt;br&gt;
Commands to Install :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew update
brew &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--cask&lt;/span&gt; warp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Although WARP does need a account to run, it does offer a lot of features including Multiple Shell Support &lt;em&gt;(bash, zsh, fish)&lt;/em&gt;, integration with tools like git and homebrew, autocompletion for text within terminal, a built-in file browser to help you navigate to open files directly in WARP, and more.&lt;/p&gt;

&lt;h3&gt;
  
  
  Hyper
&lt;/h3&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%2Fxynpzhbvmre59m5kqo00.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%2Fxynpzhbvmre59m5kqo00.png" alt="Image description" width="256" height="256"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;&lt;a href="https://hyper.is/"&gt;link&lt;/a&gt;&lt;/em&gt;&lt;br&gt;
Commands to Install :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew update
brew &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--cask&lt;/span&gt; hyper
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Hyper is a cross-platform terminal emulator built using HTML, CSS and JS that is able to provide you with hyper customizable themes, shell support for most shells &lt;em&gt;(bash, zsh, fish)&lt;/em&gt; and search functionality to help review your terminal output. &lt;/p&gt;

&lt;h2&gt;
  
  
  Thank You For Reading!
&lt;/h2&gt;

&lt;p&gt;If you took the time to try out any of these new terminal apps, please reply with your favorite of these! If I left a application off of this list, let me know in the comments! Cheers! &lt;/p&gt;

</description>
      <category>terminal</category>
      <category>macos</category>
      <category>cli</category>
      <category>programming</category>
    </item>
    <item>
      <title>Set up VS Code as your SSH Client</title>
      <dc:creator>Connor Van Etten</dc:creator>
      <pubDate>Thu, 30 Mar 2023 19:16:46 +0000</pubDate>
      <link>https://dev.to/connor-ve/set-up-vs-code-as-your-ssh-client-7nc</link>
      <guid>https://dev.to/connor-ve/set-up-vs-code-as-your-ssh-client-7nc</guid>
      <description>&lt;h1&gt;
  
  
  Visual Studio SSH Client Tutorial
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Table Of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Quick Install&lt;/li&gt;
&lt;li&gt;What is a SSH Client&lt;/li&gt;
&lt;li&gt;VS Code Preparation&lt;/li&gt;
&lt;li&gt;SSH key&lt;/li&gt;
&lt;li&gt;VS Code Configuration&lt;/li&gt;
&lt;li&gt;Using Remote SSH&lt;/li&gt;
&lt;li&gt;Thank You&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Quick Installation
&lt;/h2&gt;

&lt;p&gt;For those who are just interested in installing as fast as possible here is the quick guide. If that isn't you, feel free to select What is a SSH Client, to be redirected to the comprehensive guide. &lt;/p&gt;

&lt;p&gt;First install Remote-SSH to Visual Studio Code either through this &lt;a href="https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh" rel="noopener noreferrer"&gt;link&lt;/a&gt; or searching it in the extensions tab. &lt;/p&gt;

&lt;p&gt;Navigate to the &lt;strong&gt;.ssh&lt;/strong&gt; directory in MacOS Terminal or Windows PowerShell :&lt;/p&gt;

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

&lt;span class="nb"&gt;cd&lt;/span&gt; .ssh


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

&lt;/div&gt;

&lt;p&gt;&lt;em&gt;If folder is not present create folder using &lt;code&gt;mkdir .ssh&lt;/code&gt; or &lt;code&gt;md .ssh&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Create your ssh key inside our .ssh folder : &lt;/p&gt;

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

ssh-keygen


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

&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Press enter for all three prompts&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Send your ssh key to your remote server : &lt;/p&gt;

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

&lt;span class="nb"&gt;cat&lt;/span&gt; ~/.ssh/id_rsa.pub | ssh USERNAME@HOST &lt;span class="s1"&gt;'cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys'&lt;/span&gt;


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

&lt;/div&gt;

&lt;p&gt;&lt;em&gt;This will ask for your password, please enter.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Open VS Code, then open the command palette via the keyboard shortcut below : &lt;br&gt;
&lt;em&gt;MacOS&lt;/em&gt;&lt;/p&gt;

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

cmd + shift + p


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

&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Windows&lt;/em&gt; &lt;/p&gt;

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

ctrl + shift + p 


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

&lt;/div&gt;

&lt;p&gt;Search &lt;code&gt;Remote-SSH: Open SSH Configuration File&lt;/code&gt; and enter the configuration file. Paste the text below into the file and fill in your information for your user (USER), host (HOST) and a given identification name (REMOTEHOST). &lt;/p&gt;

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

Host REMOTEHOST
    Hostname HOST
    User USER
    IdentityFile ~/.ssh/id_rsa


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

&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Save the file with &lt;code&gt;cmd + s&lt;/code&gt; or &lt;code&gt;ctrl + s&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;To run click the &lt;em&gt;&amp;gt;&amp;lt;&lt;/em&gt; in the bottommost left of your VS Code Window. Select either &lt;code&gt;Connect to Host&lt;/code&gt; or &lt;code&gt;Connect Current Window to Host&lt;/code&gt; and select your identification name. &lt;/p&gt;

&lt;p&gt;Once connected you are free to use the requested remote server for all of your development needs. You able to use the HOST CLI from the terminal within VS Code or your terminal of choice. &lt;/p&gt;

&lt;p&gt;If you reach any road blocks, do not hesitate to reach out to by commenting or contacting me through &lt;a href="https://www.linkedin.com/in/crvanetten/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is a SSH Client?
&lt;/h2&gt;

&lt;p&gt;SSH which is an acronym for Secure Shell, and is a network protocol. The purpose of SSH is to give users the ability to access a remote computer securely over a non-secure network. Using SSH a user or administrator is able to access a remote server safely for use. By default SSH comes installed on Unix, Mac and Linux and is able to be added to Windows easily (&lt;a href="https://learn.microsoft.com/en-us/windows/terminal/tutorials/ssh" rel="noopener noreferrer"&gt;tutorial&lt;/a&gt;). If you would like to test out using SSH within your command line interface, you can play around with it through Terminal on Mac or Command Prompt on windows. Try out these commands to learn how it can work from the command line. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Open the SSH manual&lt;/em&gt;&lt;/p&gt;

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

man ssh


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

&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Connect to a remote server&lt;/em&gt;&lt;/p&gt;

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

ssh bandit0@bandit.labs.overthewire.org -p 2220


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

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;disclaimer:&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;the server you are connecting to is provided by OverTheWire and is intended for educational purposes relating to Cyber Security. For the purposes of this tutorial it shows you a example of how to log into a server using ssh as a command&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Now that we are briefly aware of what SSH is and what it is used for lets tackle the idea of a SSH Client. In fact what we have completed above is an SSH Client, using OpenSSH through the terminal. A SSH Client is any software/application that allows the user to connect to a remote server. For ease of use, a lot of administrators or developers choose to use SSH Clients that offer a GUI instead of purely CLI based connections. Some popular SSH Clients include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://mobaxterm.mobatek.net/download.html" rel="noopener noreferrer"&gt;MobaXTerm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.bitvise.com/ssh-client-download" rel="noopener noreferrer"&gt;BitVise&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.putty.org" rel="noopener noreferrer"&gt;puTTY&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://winscp.net/eng/index.php" rel="noopener noreferrer"&gt;WINscp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now although these clients do have perks and are completely viable options for most use cases, in my opinion they were a bit clunky to develop with. The main issue I saw with using a client above is that you are limited to the tools that are local to that server if you are not an administrator of that server. For example, your Text Editors will stay &lt;a href="https://www.nano-editor.org/docs.php" rel="noopener noreferrer"&gt;nano&lt;/a&gt; or &lt;a href="https://www.vim.org/docs.php" rel="noopener noreferrer"&gt;Vim&lt;/a&gt; which for most Computer Science Students can be a pain to start on. Also, as I progressed in my CS coursework I noticed several projects being easier to work locally on my VS Code setup than running on the remote server. &lt;/p&gt;

&lt;p&gt;This should be a comprehensive guide to help you set up Visual Studio Code as your client manager for any remote connectivity needs. If you have any questions please reach out to my contact information that is located both above and below. If this is helpful to you please consider showing this article some love and sharing it! Cheers!&lt;/p&gt;




&lt;h2&gt;
  
  
  Visual Studio Code Setup
&lt;/h2&gt;

&lt;p&gt;As we will be using VS Code as our preferred way to SSH to our host, the first thing we need to do is install it to our local machine. Please click &lt;a href="https://code.visualstudio.com/download" rel="noopener noreferrer"&gt;here&lt;/a&gt; to be redirected to the VS Code download page. From here select the correct download for the current operating system on your device (Windows, MacOS, or Linux). &lt;/p&gt;

&lt;p&gt;Assuming this is your first time using VS Code consider taking the time to check out my other guide on it's configuration and uses. &lt;/p&gt;

&lt;p&gt;To make sure we are set up to connect to our remote server we will be using one extension to assist us with that process. To download our needed extension, either click &lt;a href="https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh" rel="noopener noreferrer"&gt;Remote - SSH&lt;/a&gt; or open your extensions tab in VS Code and type "Remote - SSH" in. Proceed to download the extension to your machine!&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%2Fnv5bkbd6hsnn2dz18pg4.jpg" 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%2Fnv5bkbd6hsnn2dz18pg4.jpg" alt="RemoteSSHpage"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For the time being we are all ready for our next steps! &lt;/p&gt;




&lt;h2&gt;
  
  
  Setting Up SSH keys
&lt;/h2&gt;

&lt;p&gt;Our next step will be setting up a &lt;a href="https://jumpcloud.com/blog/what-are-ssh-keys" rel="noopener noreferrer"&gt;SSH key&lt;/a&gt; from our machine to your remote server so we no longer need to log in using our password. This gives VS Code the ability to open up your session directly.  &lt;/p&gt;

&lt;p&gt;Below I will have both MacOS and Windows commands detailed, as those are what I am familiar with. If you are running linux I assume that the commands used within our MacOS instruction will work as we are using very basic commands that they both share. To use the commands below in MacOS please use terminal, while if you are using Windows please use PowerShell. &lt;/p&gt;

&lt;h3&gt;
  
  
  Commands
&lt;/h3&gt;

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

&lt;span class="nb"&gt;cd&lt;/span&gt; .ssh
ssh-keygen
&lt;span class="nb"&gt;cat&lt;/span&gt; ~/.ssh/id_rsa.pub | ssh USERNAME@HOST &lt;span class="s1"&gt;'cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys'&lt;/span&gt;


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

&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Details and Instructions&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Note, that we redirecting into the .ssh folder to create a ssh key. By default not all Operating System's have this folder, if you run into an error when entering the folder run &lt;code&gt;ls -a&lt;/code&gt; on MacOS terminal and &lt;code&gt;dir -Force&lt;/code&gt; in Windows PowerShell to show hidden/dot folders. If it is not shown, run &lt;code&gt;mkdir .ssh&lt;/code&gt; on MacOS and &lt;code&gt;md .ssh&lt;/code&gt; on Windows to create the folder.&lt;/p&gt;

&lt;p&gt;When you run &lt;code&gt;ssh-keygen&lt;/code&gt; you will be asked 3 questions regarding configuration of your key. For our purposes, hit enter for each prompt. Congrats you have successfully created your key.  &lt;/p&gt;

&lt;p&gt;Next we will want to give your SSH key to the remote server so that they can identify what computer is logging it. This will bypass your login going forward. &lt;/p&gt;

&lt;p&gt;For this to occur we need to run two commands within our terminal, specifically from our &lt;strong&gt;.ssh&lt;/strong&gt; directory. For ease of use I have piped the two commands together as they are shown below:&lt;/p&gt;

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

cat ~/.ssh/id_rsa.pub | ssh USERNAME@HOST 'cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys'


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

&lt;/div&gt;

&lt;p&gt;If all is well, after this is ran with your username it will ask for your password to access our server. Enter your password for the host and the key will be able to be sent to your servers .ssh folder. &lt;/p&gt;

&lt;p&gt;To test if this is working properly, you can attempt to login to your host through your Terminal or PowerShell &lt;em&gt;(command below)&lt;/em&gt;. If it doesn't ask for your passcode and immediately log in you are good!&lt;/p&gt;

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

ssh USERNAME@HOST


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

&lt;/div&gt;




&lt;h2&gt;
  
  
  Finalizing Visual Studio Code
&lt;/h2&gt;

&lt;p&gt;Now that we have our full setup your SSH key VS Code will be able to log directly into your remote server to act as a SSH Client. For the next steps we need to configure your host settings so Visual Studio Code knows where we are logging into. &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%2Fod3t4rkv0fswp9fvruak.jpg" 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%2Fod3t4rkv0fswp9fvruak.jpg" alt="CommandPalette"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For this part, open visual studio and run the command &lt;code&gt;cmd + shift + p&lt;/code&gt; or &lt;code&gt;ctrl + shift + p&lt;/code&gt;. For those familiar with VS Code they will know this allows us to search any command or setting within the Editor. Then we want to search "Remote-SSH: Open SSH Configuration File" and select this command. It will then ask you for the location of your config file to which I would recommend going with the defaulted directory in your recommended options. &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%2Fhcdwszrmgnmpg7w2firt.jpg" 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%2Fhcdwszrmgnmpg7w2firt.jpg" alt="FilePath"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click on the desired directory and you will be taken to the configuration file for the Remote-SSH Extension. Below I will showcase what to paste into the file, but be sure to replace the USER and HOST with your information. In the first line, you are able to name your Remote Host whatever you would like. If you don't care to rename it I have labeled it REMOTEHOST.  Once done with this, hit &lt;code&gt;cmd + s&lt;/code&gt; or &lt;code&gt;ctrl + s&lt;/code&gt; to save your config file. You are now free to exit this file. &lt;/p&gt;

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

&lt;span class="n"&gt;Host&lt;/span&gt; &lt;span class="n"&gt;REMOTEHOST&lt;/span&gt;
    &lt;span class="n"&gt;Hostname&lt;/span&gt; &lt;span class="n"&gt;HOST&lt;/span&gt;
    &lt;span class="n"&gt;User&lt;/span&gt; &lt;span class="n"&gt;USER&lt;/span&gt;
    &lt;span class="n"&gt;IdentityFile&lt;/span&gt; ~/.&lt;span class="n"&gt;ssh&lt;/span&gt;/&lt;span class="n"&gt;id_rsa&lt;/span&gt;


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

&lt;/div&gt;




&lt;h2&gt;
  
  
  Using VS Code as SSH Client
&lt;/h2&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%2Fmsrdhfdobed5xklcjb3s.jpg" 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%2Fmsrdhfdobed5xklcjb3s.jpg" alt="RSSHbutton"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now to use VS Code as your client, you need to run Remote SSH and select the name of your host from your list of hosts.  To do this please click the &lt;strong&gt;&amp;gt;&amp;lt;&lt;/strong&gt; in the bottom left of your window on visual studio code. To enter your remote connection please select either 'Connect to Host' or 'Connect Current Window to Host' then select REMOTEHOST or your given server name. This will open up your connection to the server, and give you the option to select which folders you would like to see when it is established. Dont be concerned if the first time takes a minute to connect as this is normal. &lt;/p&gt;

&lt;p&gt;Once connected you are free to use the requested remote server for all of your development needs. You able to use the HOST from the terminal within VS Code or your terminal of choice. &lt;/p&gt;

&lt;h2&gt;
  
  
  Thank You for Reading
&lt;/h2&gt;

&lt;p&gt;If you reach any road blocks, do not hesitate to reach out to by commenting or contacting me through &lt;a href="https://www.linkedin.com/in/crvanetten/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Happy Coding! 👋&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>ssh</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
