<?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: TNZ-5</title>
    <description>The latest articles on DEV Community by TNZ-5 (@tnz5).</description>
    <link>https://dev.to/tnz5</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%2F570708%2Fd72c921d-d7cd-44ba-848d-42e257526f57.png</url>
      <title>DEV Community: TNZ-5</title>
      <link>https://dev.to/tnz5</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tnz5"/>
    <language>en</language>
    <item>
      <title>Getting Started With AWS Services Using LocalStack</title>
      <dc:creator>TNZ-5</dc:creator>
      <pubDate>Mon, 17 Jul 2023 10:11:29 +0000</pubDate>
      <link>https://dev.to/tnz5/getting-started-with-aws-services-using-localstack-573d</link>
      <guid>https://dev.to/tnz5/getting-started-with-aws-services-using-localstack-573d</guid>
      <description>&lt;h2&gt;
  
  
  Introducing  Localstack
&lt;/h2&gt;

&lt;p&gt;In simple words localstack "Is a cloud service emulator used for testing and developing cloud applications"&lt;/p&gt;

&lt;p&gt;The reason for something like LocalStack to exist is pretty simple to mock AWS APIs and their responses for local development. In the heated debate of determining the best way to train resource for larger Enterprise localstack has a pretty convincing argument. &lt;/p&gt;

&lt;p&gt;Imagine a large enterprise that onboards a few thousand developers a year. Some percentage of them will need to learn how AWS works. How do you build effective guardrails that let them develop against the platform without introducing a whole bunch of friction? Or without running the risk of cost overruns and data leakage?&lt;/p&gt;

&lt;h2&gt;
  
  
  Before Getting Started
&lt;/h2&gt;

&lt;p&gt;I will be using Windows through out this tutorial. The steps though for any operating system will be the same. ( Sorry Linux / macOS community )&lt;/p&gt;

&lt;p&gt;My windows information :&lt;/p&gt;

&lt;p&gt;OsName    :                      Microsoft Windows 10 Pro         OsVersion  :                     10.0.19044&lt;br&gt;&lt;br&gt;
OsHardware :                     10.0.1904&lt;br&gt;&lt;br&gt;
AbstractionLayer  :              1.2251&lt;/p&gt;

&lt;p&gt;Also for for this tutorial we would be using WSL 2 backend for Docker. So enable your WSL 2 service if it  isn't enabled. You could check whether WSL 2 is enabled or not by typing the following command into your terminal&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;wsl –-list --verbose
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Confirm the version of the distro version is set to 2. &lt;/p&gt;

&lt;p&gt;By default the WSL is disabled If you want to enable WSL services you can follow this guide at &lt;a href="https://woshub.com/install-wsl-windows-subsystem-linux/#:~:text=By%20default%2C%20WSL%20is%20disabled,OK%2C%20and%20restart%20your%20computer.&amp;amp;text=Then%20you%20need%20to%20restart%20your%20computer" rel="noopener noreferrer"&gt;Install WSL On Windows&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you like to change your WSL distro you could follow the step highlighted at &lt;a href="https://learn.microsoft.com/en-us/windows/wsl/install" rel="noopener noreferrer"&gt;Install WSL | Microsoft Learn&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Moreover you need &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;python&lt;/code&gt; (Python 3.7 up to 3.11 supported)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;pip&lt;/code&gt; (Python package manager)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It will aid the installation of localstack. &lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1 :  Installing Docker
&lt;/h2&gt;

&lt;p&gt;Docker's primary focus is to automate the deployment of applications inside software containers and the automation of operating system level virtualization. It's more lightweight than standard Containers and boots up in seconds.&lt;/p&gt;

&lt;p&gt;You can learn more about Details of Docker and Docker containers at &lt;a href="https://docs.docker.com/get-started/" rel="noopener noreferrer"&gt;Overview | Docker Documentation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As fall as installation is concerned I would recommend getting Docker Desktop app for windows at &lt;a href="https://docs.docker.com/desktop/install/windows-install/" rel="noopener noreferrer"&gt;Install Docker Desktop on Windows | Docker Documentation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Alternatively you could manually install docker if you feel like it following the steps at &lt;a href="https://docs.docker.com/engine/install/" rel="noopener noreferrer"&gt;Install Docker Engine | Docker Documentation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once docker is successfully installed you can verify the installation by opening the Docker Desktop installation or by typing the following command in your terminal.&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;Here is the docker version I am using &lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Client:&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Server:&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Cloud integration:&lt;/td&gt;
&lt;td&gt;v1.0.25&lt;/td&gt;
&lt;td&gt;Engine:&lt;/td&gt;
&lt;td&gt;Docker Desktop 4.9.0 (80466)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Version:&lt;/td&gt;
&lt;td&gt;20.10.16&lt;/td&gt;
&lt;td&gt;Version:&lt;/td&gt;
&lt;td&gt;20.10.16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;API version:&lt;/td&gt;
&lt;td&gt;1.41&lt;/td&gt;
&lt;td&gt;API version:&lt;/td&gt;
&lt;td&gt;1.41 (minimum version 1.12)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Go version:&lt;/td&gt;
&lt;td&gt;go1.17.10&lt;/td&gt;
&lt;td&gt;Go version:&lt;/td&gt;
&lt;td&gt;go1.17.10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Git commit:&lt;/td&gt;
&lt;td&gt;aa7e414&lt;/td&gt;
&lt;td&gt;Git commit:&lt;/td&gt;
&lt;td&gt;f756502&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Built:&lt;/td&gt;
&lt;td&gt;Thu May 12 09:17:07 2022&lt;/td&gt;
&lt;td&gt;Built:&lt;/td&gt;
&lt;td&gt;Thu May 12 09:15:42 2022&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OS/Arch:&lt;/td&gt;
&lt;td&gt;windows/amd64&lt;/td&gt;
&lt;td&gt;OS/Arch:&lt;/td&gt;
&lt;td&gt;linux/amd64&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Context:&lt;/td&gt;
&lt;td&gt;default&lt;/td&gt;
&lt;td&gt;Experimental:&lt;/td&gt;
&lt;td&gt;false&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Experimental:&lt;/td&gt;
&lt;td&gt;true&lt;/td&gt;
&lt;td&gt;containerd:&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Version:&lt;/td&gt;
&lt;td&gt;1.6.4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;GitCommit:&lt;/td&gt;
&lt;td&gt;212e8b6fa2f44b9c21b2798135fc6fb7c53efc16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;runc:&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Version:&lt;/td&gt;
&lt;td&gt;1.1.1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;GitCommit:&lt;/td&gt;
&lt;td&gt;v1.1.1-0-g52de29d&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;docker-init:&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Version:&lt;/td&gt;
&lt;td&gt;0.19.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;GitCommit:&lt;/td&gt;
&lt;td&gt;de40ad0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Step 2 : Installing LocalStack
&lt;/h2&gt;

&lt;p&gt;You can install the LocalStack CLI in your Python environment with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ python3 -m pip install --upgrade localstack
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this tutorial we are using the localstack cli but there are many other alternatives for starting and managing localstack. You can find them at &lt;a href="https://docs.localstack.cloud/getting-started/installation/" rel="noopener noreferrer"&gt;Installation | Docs (localstack.cloud)&lt;/a&gt;and choose whichever suits you the best. &lt;/p&gt;

&lt;p&gt;If everything went well ( and I hope it did ). You can verify LocalStack installation by typing the following command in the&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;To be able to run localstack ensure that docker deamon (in this case docker desktop) is running in the background and type the following in the terminal&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;If you observe the localstack logo displayed on the CLI. Congrats localstack is running successfully. Don't close your cli. You will see a container by the name of localstack running in your list of containers. &lt;/p&gt;

&lt;p&gt;Note : If you don't see a entry of localstack inside the containers list in docker. One possible reason might be the you don't have the localstack container image.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker pull localstack/localstack-pro:latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 3 :  Configure AWS CLI
&lt;/h2&gt;

&lt;p&gt;For Configuration of your AWS CLI you'll need to install it first. duh ! &lt;/p&gt;

&lt;p&gt;You can follow the steps highlighted at &lt;a href="https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html" rel="noopener noreferrer"&gt;Install or update the latest version of the AWS CLI - AWS Command Line Interface (amazon.com)&lt;/a&gt; to get it done. &lt;/p&gt;

&lt;p&gt;To verify your installation use the following terminal command&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;After a successful install of the AWS CLI you would need to configure it. &lt;/p&gt;

&lt;p&gt;Do so by first typing the following in the terminal&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker exec -it &amp;lt;container id&amp;gt; /bin/bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Note: You can find the container id in the docker desktop container page&lt;/p&gt;

&lt;p&gt;You are now set to configure your AWS CLI.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;aws configure --profile your_name
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Enter the following credentials&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;AWS Access Key Id : 79
AWS Secret Access key : 79
Default region name [None]: us-east-1
Default output format : json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The first two are irrelevant because localstack does not verify credentials. For the region name you can add any compatible region mentioned at &lt;a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html" rel="noopener noreferrer"&gt;Regions and Zones - Amazon Elastic Compute Cloud&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And you are done !&lt;/p&gt;

&lt;p&gt;The next step is an optional step. You are now ready to build any kind of AWS application. Hurray !&lt;/p&gt;

&lt;p&gt;But I thought it'll be great if I could leave you with a sample program. The sample program is a simple program that creates a SQS Queue and tries to send a message to it. The program uses the JAVA SDK FOR AWS. &lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4 : Building Your First Program
&lt;/h2&gt;

&lt;p&gt;Create a Java program in your desired IDE. Since I am using Intellij you can refer to creating a new program at &lt;a href="https://www.jetbrains.com/help/idea/new-project-wizard.html#project-with-tips" rel="noopener noreferrer"&gt;Create A New Program | Intellij&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Create a new java class and copy paste the code below&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kn"&gt;package&lt;/span&gt; &lt;span class="nn"&gt;service&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;  

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;com.amazonaws.client.builder.AwsClientBuilder&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;  
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;com.amazonaws.services.sqs.AmazonSQS&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;  
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;com.amazonaws.services.sqs.AmazonSQSClient&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;  
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;com.amazonaws.services.sqs.AmazonSQSClientBuilder&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;  
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;com.amazonaws.services.sqs.model.AmazonSQSException&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;  
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;com.amazonaws.services.sqs.model.CreateQueueRequest&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;  
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;com.amazonaws.services.sqs.model.QueueAttributeName&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;  
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;com.amazonaws.services.sqs.model.SendMessageRequest&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;  


&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;SQS&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;  

    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;[]){&lt;/span&gt;  

        &lt;span class="nc"&gt;AmazonSQS&lt;/span&gt; &lt;span class="n"&gt;sqsClient&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;createClient&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;  

        &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;queueName&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Fire"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;  

       &lt;span class="n"&gt;createQueue&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sqsClient&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="n"&gt;queueName&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;  


        &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"This is a body text for the message"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;  
        &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;queueUrl&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sqsClient&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getQueueUrl&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;queueName&lt;/span&gt;&lt;span class="o"&gt;).&lt;/span&gt;&lt;span class="na"&gt;getQueueUrl&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;  
        &lt;span class="n"&gt;sendMessage&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sqsClient&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="n"&gt;queueUrl&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;  


    &lt;span class="o"&gt;}&lt;/span&gt;  

    &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;sendMessage&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;AmazonSQS&lt;/span&gt; &lt;span class="n"&gt;sqsClient&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;queueUrl&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;  

        &lt;span class="nc"&gt;SendMessageRequest&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;SendMessageRequest&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt;  
                &lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;withQueueUrl&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;queueUrl&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;  
                &lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;withMessageBody&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;  
                &lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;withDelaySeconds&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;  

        &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="o"&gt;{&lt;/span&gt;  
            &lt;span class="n"&gt;sqsClient&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;sendMessage&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;  
        &lt;span class="o"&gt;}&lt;/span&gt;  
        &lt;span class="k"&gt;catch&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;Exception&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="o"&gt;){&lt;/span&gt;  
            &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;printStackTrace&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;  
        &lt;span class="o"&gt;}&lt;/span&gt;  
    &lt;span class="o"&gt;}&lt;/span&gt;  

    &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;createQueue&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;AmazonSQS&lt;/span&gt; &lt;span class="nc"&gt;SQSClient&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;queueName&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;  
        &lt;span class="nc"&gt;CreateQueueRequest&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;CreateQueueRequest&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;queueName&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;  
                &lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;addAttributesEntry&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"DelaySeconds"&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="s"&gt;"60"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;  
                &lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;addAttributesEntry&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"MessageRetentionPeroid"&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="s"&gt;"86400"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;  

        &lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;  
            &lt;span class="nc"&gt;SQSClient&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;createQueue&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;  
        &lt;span class="o"&gt;}&lt;/span&gt;  
        &lt;span class="k"&gt;catch&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;Exception&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="o"&gt;){&lt;/span&gt;  
            &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;printStackTrace&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;  
        &lt;span class="o"&gt;}&lt;/span&gt;  

    &lt;span class="o"&gt;}&lt;/span&gt;  

    &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="nc"&gt;AmazonSQS&lt;/span&gt; &lt;span class="nf"&gt;createClient&lt;/span&gt;&lt;span class="o"&gt;(){&lt;/span&gt;  
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nc"&gt;AmazonSQSClientBuilder&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;standard&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt;  
                &lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;withEndpointConfiguration&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;AwsClientBuilder&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;EndpointConfiguration&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;  
                        &lt;span class="s"&gt;"http://localhost:4566"&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="s"&gt;"us-east-1"&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt;  
                &lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;build&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;  
    &lt;span class="o"&gt;}&lt;/span&gt;  


&lt;span class="o"&gt;}&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;pom.xml dependencies are as follows&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;
&lt;span class="nt"&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;  
  &lt;span class="nt"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;com.amazonaws&lt;span class="nt"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;  
  &lt;span class="nt"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;aws-java-sdk-dynamodb&lt;span class="nt"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;  
  &lt;span class="nt"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;1.11.318&lt;span class="nt"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;  
&lt;span class="nt"&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;


 note : Please also change the package from war to jar
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  End
&lt;/h2&gt;

&lt;p&gt;So that is all for now. I hope this article was helpful for you and everything went smoothly. If it did good on you. If it didn't don't worry programmer is more about debugging error than creating something indefinitely. &lt;/p&gt;

&lt;p&gt;If you couldn't resolve some errors or are facing some werid issues you could go on to &lt;a href="https://medium.com/@mugheesqasim/aws-s3-using-localstack-and-java-4e23796c23d2" rel="noopener noreferrer"&gt;aws s3 using localstack&lt;/a&gt; written by the person who inspired me to write this article. Mughees highlights some common issues and how to resolve them. It is definitely worth a read.  &lt;/p&gt;

</description>
    </item>
    <item>
      <title>Neural Nets</title>
      <dc:creator>TNZ-5</dc:creator>
      <pubDate>Fri, 16 Jun 2023 04:25:20 +0000</pubDate>
      <link>https://dev.to/tnz5/neural-nets-2igi</link>
      <guid>https://dev.to/tnz5/neural-nets-2igi</guid>
      <description>&lt;p&gt;This is week I started my AI course. Needless to say with the boom inside the industry for ML/AI I am pretty excited. Here are my scrappy notes in an attempt to understand Neural Networks before we try to study them in class tomorrow. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.google.com/document/d/1meCQbEHHogZOUXMKyk25lzUIZOW-aH-_JAJZ0Da9uy4/edit?usp=sharing" rel="noopener noreferrer"&gt;https://docs.google.com/document/d/1meCQbEHHogZOUXMKyk25lzUIZOW-aH-_JAJZ0Da9uy4/edit?usp=sharing&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hope it helps you to get a understanding of different types of Neural Networks &lt;/p&gt;

</description>
    </item>
    <item>
      <title>Password systems that are mind-controlled</title>
      <dc:creator>TNZ-5</dc:creator>
      <pubDate>Thu, 15 Apr 2021 08:08:06 +0000</pubDate>
      <link>https://dev.to/tnz5/password-systems-that-are-mind-controlled-3fao</link>
      <guid>https://dev.to/tnz5/password-systems-that-are-mind-controlled-3fao</guid>
      <description>&lt;p&gt;“Told you I always come prepared” exclaimed my little brother from the other side of the room we were debating in. Confidently he took the prize money turned and walked to the door. Eyes filled with the delight of finally beating his elder brother. The gauntlet I had once laid now remained in shambles. His victory was well deserved. “Pass-thoughts” who would have guessed It would lead me to lose 100 Rupees. After my unanticipated demise, I busted out my laptop and aggressively typed these words on google only to realize he was well-prepped this time around. Reading minds seems to be a common part of the science fiction canon, a genre admired by everyone. Whatever the admiration you have for telepathy nobody’s crazy enough to consider it a part of reality. Nobody except a few scientists at the University of California in Berkeley has presented the idea to replace the traditional Biometric systems (fingerprint, iris scanning etc ) with ones that are mind-controlled.&lt;/p&gt;

&lt;p&gt;They use the in-development Brain-Computer Interface (BCI) technology to transmit thoughts directly into the computer. When we perform a mental task for example imagining an octagon or singing Blinding lights by the weekend (A great song by the way) our brains generate unique neuronal electrical signals. An electroencephalograph (EEG) would read those brain waves using noninvasive electrodes that record the signals and the unique patterns can be used like a password or biometric identification.  &lt;/p&gt;

&lt;p&gt;It’s mind-boggling that work has been done over the last few years in bringing telepathy to life, however, those experiments hadn’t tried to optimize in-ear EEGs for use as pass-thought readers. It is only in recent years that the cost of real-time EEG decoding has become affordable. Even though this technology is now more accessible than ever but its accuracy remains the biggest problem. Although Neurosky Mind wave, a consumer-grade single-electrode EEG headset prototype, provides promising results the creator and pioneer of pass-thought John Chuang says  “Clearly a lot more work needs to be done for this to be effective and useful in the real world, But at least we know this is an area that we can continue to investigate.” &lt;/p&gt;

&lt;p&gt;Let’s bring this conversation to a bigger topic, if allowed another decade of development would the pass-thought replace the traditional system? Despite advances in logging in with your mind, there might always be a need for an old-fashioned eight-plus character phrase with no spaces. “Passwords will never go away,” says Chuang, who reasons that for a computer, a typed password may be the easiest way to verify identity, while a finger swipe may be best for a touch screen. &lt;/p&gt;

&lt;p&gt;So far, pass-thoughts are just a really exciting but extremely rudimentary development in neurotechnology. But with new companies like Neuralink,  formed just last year, intending to investigate and develop these types of devices, who knows what the future might hold?&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Human perception and virtual reality—what’s the connection</title>
      <dc:creator>TNZ-5</dc:creator>
      <pubDate>Tue, 06 Apr 2021 11:15:00 +0000</pubDate>
      <link>https://dev.to/tnz5/human-perception-and-virtual-reality-what-s-the-connection-13m</link>
      <guid>https://dev.to/tnz5/human-perception-and-virtual-reality-what-s-the-connection-13m</guid>
      <description>&lt;p&gt;Yesterday, for the first time, I experienced VR. It was so to speak &lt;em&gt;Surreal&lt;/em&gt;. Me being the inquisitive nerd couldn't help but ponder "How does VR trick human perception ?".  10 years ago this would have been voodoo magic. Though I would be eight at that time hopefully safe from its effect. But this is 2021 and VR  technology has evolved far beyond a spectacle. &lt;/p&gt;

&lt;p&gt;Let's begin the first part of this article: Exploring how we perceive an image.&lt;/p&gt;

&lt;h1&gt;
  
  
  👀 How we perceive an image ❓
&lt;/h1&gt;

&lt;p&gt;To simply put, Human eyes perceive images not as a whole but as parts. I found it quite difficult to wrap my head around the fact there are more dark spots in our eyes than light spots. Huh, now who would have thought our image perception is based on lack of light rather than its presence. &lt;/p&gt;

&lt;p&gt;Therefore the stimulation aspect of VR might seem obvious at first glance. Place screens closer to the eye that depicts a scenario coded by the programmer. But the reality is much more complex. Like how do we use those 2-D screens to depict a 3-D environment? &lt;/p&gt;

&lt;p&gt;Various factor's come into play while determining an object in 3-D space e.g convergence of both eyes upon a single object, the relative differences between the shape and size of the images on each retina, and other cues such as texture and constancy. &lt;/p&gt;

&lt;p&gt;However, image formation is not the only contributing factor to tricking perception.&lt;/p&gt;

&lt;h1&gt;
  
  
  🔊 Enter the Word Of Sound ❗
&lt;/h1&gt;

&lt;p&gt;Sound plays a key role in our immersion. How often then not do you react to things without visual input? (Many times, the question was rhetorical) Take the example of surround sound. This dimensional audio genre's make it like a person is whispering right next to you. The first time I heard such songs, I couldn't stop looking over my ear's hoping to find a Billie Eilish standing behind me.&lt;/p&gt;

&lt;p&gt;Therefore the lack of sound then transcends us to an arena of ambiguity and a lot less organic connection. FPS gamers (like myself) feel much more inclined to play games with headphones connected. As it adds another layer of "gaming experience" and the fact you aren't sneaked upon while planting a bomb in CSGO.&lt;/p&gt;

&lt;p&gt;The combined effect of image and sound stimulation then really in turn delude our senses. To an extent where studies are recounting the effects of induced emotions due to VR. This probably is less exciting if you understand the way neuroscience works. I don't therefore it is groundbreaking (😁 for me at least). &lt;/p&gt;

&lt;h1&gt;
  
  
  Signing Off ✌
&lt;/h1&gt;

&lt;p&gt;Tricking Human perception falls to the greater question: How do we increase immersion. The simulation of perceptual paths is what adds the sense of presence.  Perceptual paths are complicated. The individuality of these path doesn't help in creating the ultimate virtual presence. Understanding how people integrate information from their senses is crucial to the long-term success of VR because it isn’t solely visual.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.vecteezy.com/free-vector/virtual-reality" rel="noopener noreferrer"&gt;Cover Image&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Cognitive Radios</title>
      <dc:creator>TNZ-5</dc:creator>
      <pubDate>Mon, 29 Mar 2021 07:14:44 +0000</pubDate>
      <link>https://dev.to/tnz5/cognitive-radios-497k</link>
      <guid>https://dev.to/tnz5/cognitive-radios-497k</guid>
      <description>&lt;p&gt;As a growing trend of my writing series, I present you with another rendition of well the wireless technologies in the domain of Cognitive radio networks. &lt;/p&gt;

&lt;h1&gt;
  
  
  What the hell is this?
&lt;/h1&gt;

&lt;p&gt;A cognitive radio :&lt;br&gt;
It is a Dynamically changing radio that in theory can access the best available wireless channels and avoid interference and congestion of traffic. How it does that is a little more challenging but Relying on the principles of Dynamic Spectrum Management (a set of techniques that employs AI, ML and cross-layer optimization: It relies on the idea when primary entities are absent a licensed spectrum is made available to unlicensed users ) somewhat similar to a cognitive process that happens inside our brain. &lt;/p&gt;

&lt;p&gt;Well, the reason these cognitive radios exist is simple. To use the underutilized spectrums in the communication of messages. Inside a traditional radio network, there are fixed bands that each radio is a constraint too. This fixation of bands has to lead to the sub-par performance in the much wider domains of contestation for bands and the congestion of spectrums and most of the networks are then unable to work intelligently. i.e they only do/look after a problem that has occurred rather than working to avoid the occurrence first  As the world has progressed further, we have been trying to optimize these wavebands reasons can be attributed to the increased connection points for communication I mean as compared to the previous years [insert facts] there has been an increase in devices. Thus, regular radio has started showing its age. &lt;/p&gt;

&lt;h1&gt;
  
  
  What is a network?
&lt;/h1&gt;

&lt;p&gt;A computer network is a group of computers that use a set of common communication protocols over digital interconnections for the purpose of sharing resources located on or provided by the network nodes.&lt;/p&gt;

&lt;h1&gt;
  
  
  Is it the future?
&lt;/h1&gt;

&lt;p&gt;Well, the answer is pretty complicated. Security is one big issue that remains the deciding factor in choosing a cognitive radio over a traditional one. There could be a situation where a licensed spectrum is in use by a non-licensed user thus undermining the integrity of the network. Moreover, it assumes that the techniques are scalable across multiple spectra which is not true each spectrum is unique in some regards &lt;/p&gt;

&lt;p&gt;As this study points out &lt;br&gt;
For instance, television is a broadcast system with passive receivers, while cellular networks typically include bi-directional asymmetric1 transmissions. Such very different types of primary services create very different kinds of spectrum holes as well, which require different treatment.&lt;/p&gt;

&lt;p&gt;Pelechrinis, Konstantinos &amp;amp; Krishnamurthy, Prashant &amp;amp; Weiss, Martin &amp;amp; Znati, Taieb. (2012). Cognitive Radio Networks: Realistic or Not?. arXiv preprint arXiv:1209.2154. 43. 10.1145/2479957.2479965.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Computer-Aided Learning</title>
      <dc:creator>TNZ-5</dc:creator>
      <pubDate>Fri, 19 Mar 2021 05:54:53 +0000</pubDate>
      <link>https://dev.to/tnz5/computer-aided-learning-167n</link>
      <guid>https://dev.to/tnz5/computer-aided-learning-167n</guid>
      <description>&lt;p&gt;Just think about it: Wouldn’t you learn more from actually watching a foreign film for your language class than you would from just talking about it? If you disagree then hear me out. Computer-aided learning is the most cogent technique for the future generation due to the time, pace and place with which one can learn using it.&lt;br&gt;
Before I talk about the reasons computer-aided learning (CAL) is so great, let's take a minute to understand what it really is? &lt;/p&gt;

&lt;h1&gt;
  
  
  💻 What is Computer-Aided Learning❓
&lt;/h1&gt;

&lt;p&gt;Computer-aided learning (CAL) is simply the use of modern technology in educational instruction. Computer-Aided Learning includes but is not limited to online courses and supplemental course materials used in colleges, homeschooling and distance learning. In Short, any type of technology that can be used to learn will most likely be beneath the umbrella of Computer Assisted Learning.&lt;/p&gt;

&lt;h1&gt;
  
  
  🧠 Increased Understanding ❗
&lt;/h1&gt;

&lt;p&gt;The reason I am a huge advocate of CAL is the time it reduces while learning something.  Students, like myself, look for a shortcut way to end all of our problems and in turn sacrifice “&lt;em&gt;True Understanding&lt;/em&gt;”. The simple answer being learning isn’t fun. Visual learners benefit greatly from seeing an image or an example of the terms being discussed in class. CAL bridges the gap between our understanding and imagination. Seeing something really happening or really being used in a video makes it much more real to us it makes the content being delivered more interesting, so we understand it way quicker and retain the information much longer.  Apart from this the personalization aspect of CAL greatly reduces the time it takes to absorb a certain concept. Using CAL, we enter into a region where we have greater control over what we view and how we view it. For example, you can arrange your tabs in a browser to your preference making it easier to jump back and forth or you would have categorized files in a certain order presumably interlinked to reduce the time it takes for you to “Learn” the material.&lt;/p&gt;

&lt;h1&gt;
  
  
  🐌 Self-Pacing ❕
&lt;/h1&gt;

&lt;p&gt;Self-pacing is yet another great feature offered by CAL where adaptive soft wares can change the graphics and study material as per student need of beginner and advanced levels. Students can study as fast or as slowly as they like through a course. If they want to repeat some task or review some material again, they can do so as many times as they choose. Chats and videoconference help in the development of writing, speaking, and communication skills. They provide speaking practice through debates and opinion chats. Moreover, the privacy feature helps the shy students to try out new things with no fear of the rest of the class knowing how many times they have attempted a problem or even their answer is wrong or right, the teacher then can design a personalized learning strategy. &lt;/p&gt;

&lt;h1&gt;
  
  
  💱 Breaking Boundaries ❗❗
&lt;/h1&gt;

&lt;p&gt;Another benefit of using CAL is that it breaks down the geographical barriers in turn transforming the world more to a global village. I know it may seem a farfetched idea that the geographical barrier is something that hinders learning but the more you evaluate the geography and education the more sense it makes I mean look at the disparity of education between Pakistan and the US. With CAL students can see the researches, investigations and analysis from people all over the world to better solutions to different problems. &lt;/p&gt;

&lt;p&gt;In conclusion, this methodology of teaching not only teaches efficiently but makes the teaching more fun and engaging therefore the use of computers should be encouraged among students and teachers and practical computer skill classes should be infused into the educational curriculum.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.freepik.com/vectors/business" rel="noopener noreferrer"&gt;Cover Image&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How is opensource competing with paid software?</title>
      <dc:creator>TNZ-5</dc:creator>
      <pubDate>Sun, 14 Mar 2021 07:37:36 +0000</pubDate>
      <link>https://dev.to/tnz5/how-is-opensource-competing-with-paid-software-38d6</link>
      <guid>https://dev.to/tnz5/how-is-opensource-competing-with-paid-software-38d6</guid>
      <description>&lt;p&gt;Everyone has heard about open source software, and more often than not, we use this kind of software without realizing it. But to a broke college student like me (doing a CS degree)I look for these “free” software to come to my aid. &lt;/p&gt;

&lt;p&gt;Recently, the question I have found myself asking while using open-source software is " how do these open source projects manage to stay afloat? "&lt;/p&gt;

&lt;h1&gt;
  
  
  How demand and supply fuel commercial software development
&lt;/h1&gt;

&lt;p&gt;Inside economics, there is this concept of demand and supply. The concept of demand and supply is simple. It maps the relation of the presence of a commodity to how many people want the commodity.&lt;/p&gt;

&lt;p&gt;In other words, demand is what fuels the innovation and feasibility of a product. The model represents if there is a niche community the people wanting to invest in it are low therefore the price of the product is kept high to compensate for the lack of investment. &lt;/p&gt;

&lt;p&gt;Traditionally, a profitable company must be able to sell their products for them to well operate for a longer time. But that isn’t the case with the open-source software spectrum. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2F40sh52b7jw9of1fti6wm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2F40sh52b7jw9of1fti6wm.png" alt="image" width="493" height="352"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  How does open-source make money?
&lt;/h1&gt;

&lt;p&gt;Most open-source projects generally begin with people solving their problems and choosing to share their code online. They don’t charge for the reuse of their source code but look for alternatives to make money. e.g. Linux. &lt;/p&gt;

&lt;p&gt;Primarily : &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Support
&lt;/li&gt;
&lt;li&gt; Hosting &lt;/li&gt;
&lt;li&gt; Restrictive licensing&lt;/li&gt;
&lt;li&gt; Hybrid licensing&lt;/li&gt;
&lt;li&gt; Open-core &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;You can read more about them &lt;a href="https://blog.timescale.com/blog/how-open-source-software-makes-money-time-series-database-f3e4be409467/" rel="noopener noreferrer"&gt;here&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Signing off
&lt;/h1&gt;

&lt;p&gt;“How do these open-source software make money” is a great question to ask ourselves. For multiple reasons, if we want to work on an open-source start-up, adopt open source software or establish a working business. We do need it to be well sustainable. Open-source software has no cost associated with the usage of source code it has to rely on other factors &lt;/p&gt;

&lt;p&gt;Like any other business, open-source software has its own set of challenges to be made into a reliable business. But the important thing to recognize is the modern software industry has endless possibilities. there are lots of ways to make money in software &lt;/p&gt;

</description>
    </item>
    <item>
      <title>mmWave</title>
      <dc:creator>TNZ-5</dc:creator>
      <pubDate>Thu, 04 Mar 2021 15:25:12 +0000</pubDate>
      <link>https://dev.to/tnz5/mmwave-25e4</link>
      <guid>https://dev.to/tnz5/mmwave-25e4</guid>
      <description>&lt;p&gt;This week seems to be dedicated to the exploration of wireless technologies. My previous post dedicated to &lt;a href="https://dev.to/tnz5/is-5g-what-the-human-ecosystem-has-been-waiting-for-11op"&gt;5G&lt;/a&gt;, and this one to mmWave.&lt;/p&gt;

&lt;h1&gt;
  
  
  What are mmWave ❓
&lt;/h1&gt;

&lt;p&gt;Millimetre Waves (mmWave) is a band of frequencies ranging from 30GHz to 300GHz. You would find them sandwiched between the microwave and infrared waves inside the Wave spectrum.&lt;/p&gt;

&lt;p&gt;Although it is nothing new but has gained attention worldwide with the introduction of 5G. Before 5G this band of frequencies was limited to, radio astronomy, remote sensing and much more.&lt;/p&gt;

&lt;p&gt;Even though these higher frequencies are not strong enough for outdoor broadband applications, they can be propagated over long distances with the use of feasible antennas.&lt;/p&gt;

&lt;p&gt;The reason 5G seems more of a leap towards the future is due to the characteristics of mmWave that make high-speed communication possible. Who would have thought, multi-gigabit-per-second capacity over wireless transmission?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.statista.com/chart/22723/average-5g-and-4g-download-speeds-in-selected-countrie/" title="Infographic: How Fast Is 5G? | Statista" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.statcdn.com%2FInfographic%2Fimages%2Fnormal%2F22723.jpeg" width="800" height="800"&gt;&lt;/a&gt; You will find more infographics at &lt;a href="https://www.statista.com/chartoftheday/" rel="noopener noreferrer"&gt;Statista&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Since security is my primary concern in any new technology I am interested in the question I end up asking was “what set of rules would be needed to transport a message securely over the new and improved internet?” &lt;/p&gt;

&lt;h1&gt;
  
  
  5G's Limitation ❗
&lt;/h1&gt;

&lt;p&gt;As we all know end-to-end connectivity over the internet largely relies on &lt;a href="https://www.cl.cam.ac.uk/~jac22/books/www/book/node21.html" rel="noopener noreferrer"&gt;transport protocols&lt;/a&gt; that operate above the &lt;a href="https://www.forcepoint.com/cyber-edu/osi-model" rel="noopener noreferrer"&gt;network layer&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The importance of transport protocol can be attributed to the fact that end-to-end performance perceived by the user depends on the interaction between the device and the transport protocol being used. This begs the question does  &lt;a href="https://www.geeksforgeeks.org/tcp-ip-model/" rel="noopener noreferrer"&gt;TCP&lt;/a&gt;holds its own?&lt;/p&gt;

&lt;h1&gt;
  
  
  ➡ We need a new protocol ⬅
&lt;/h1&gt;

&lt;p&gt;To date, there are only few published results on the performance of popular &lt;a href="https://www.geeksforgeeks.org/tcp-ip-model/" rel="noopener noreferrer"&gt;TCP&lt;/a&gt; over 5G mmWave links. &lt;/p&gt;

&lt;p&gt;This is due to several reasons. The first is the lack of mobile &lt;a href="https://www.tutorialspoint.com/software_testing_dictionary/test_bed.htm" rel="noopener noreferrer"&gt;testbeds&lt;/a&gt; that scale beyond a single mmWave link. The second is an analytical channel model that represents the correlation of fading over time in mmWave links has not yet been developed.&lt;/p&gt;

&lt;h1&gt;
  
  
  TCP's Limitation ‼
&lt;/h1&gt;

&lt;p&gt;The reason why TCP may prove to be insufficient is due to the wide fluctuation of the perceived &lt;a href="https://en.wikipedia.org/wiki/Signal-to-interference-plus-noise_ratio#:~:text=Analogous%20to%20the%20signal%2Dto,power%20of%20some%20background%20noise." rel="noopener noreferrer"&gt;Signal-to-interference-plus-noise ratio&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;As TCP relies on retransmissions mechanisms it does not seem to promptly track the mmWave link state when the channel between the User Equipment and the eNB switches from a line of sight to a not line of sight condition.&lt;/p&gt;

&lt;h1&gt;
  
  
  Summary 📃
&lt;/h1&gt;

&lt;p&gt;In the end, what I believe is creating more intelligent and predictive networking software would only enable mmWave to used to its fullest. &lt;a href="https://www.geeksforgeeks.org/tcp-ip-model/" rel="noopener noreferrer"&gt;TCP&lt;/a&gt; may not be the right set of tools to do that &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.vecteezy.com/free-vector/music" rel="noopener noreferrer"&gt;Cover Image&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Is 5G what the human ecosystem has been waiting for?</title>
      <dc:creator>TNZ-5</dc:creator>
      <pubDate>Sat, 27 Feb 2021 15:14:58 +0000</pubDate>
      <link>https://dev.to/tnz5/is-5g-what-the-human-ecosystem-has-been-waiting-for-11op</link>
      <guid>https://dev.to/tnz5/is-5g-what-the-human-ecosystem-has-been-waiting-for-11op</guid>
      <description>&lt;p&gt;Today's cyberspace is shaping more like a transportation network. These smart roads continue to evolve to make our journey smoother and faster than ever. &lt;/p&gt;

&lt;p&gt;Wireless communication 📶  is something that lays the foundation for these &lt;em&gt;smart&lt;/em&gt; things to exist. In other words, wireless communication is becoming a fundamental necessity for most activities in this modern era. &lt;/p&gt;

&lt;p&gt;In case you were living under a rock, or somehow you exist in an alternate dimension wireless communication has had a breakthrough with the announcement of the 5G protocol. &lt;/p&gt;

&lt;h2&gt;
  
  
  What is 5G?
&lt;/h2&gt;

&lt;p&gt;The infamous 5G, as a simple google search would tell you is the 5th Generation of technology standard for broadband cellular networks. 5G can provide quicker, more reliable, and more flexible data transmission than the generations before. This quantum jump in connectivity has created a tremendous opportunity for varied industries e.g. remote monitoring devices in healthcare and allowing improved vehicle-to-vehicle communications. Making the future of autonomous cars more feasible. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.cbinsights.com/research/5g-next-gen-wireless-system/#what" rel="noopener noreferrer"&gt;This article explores the effect of 5G on individual industries. Have a look at it if you feel frisky.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Unlike the previous generations “5G” employs the millimetre wave (mmWave) frequencies where the connection range is short however the speed is comparable to that of a wired fibre connection. The question then is how would "5G"  be able to cater to a large area? Well, the answer is more cells (in simple terms more points for connections), small &lt;a href="https://en.wikipedia.org/wiki/Cellular_network" rel="noopener noreferrer"&gt;cells&lt;/a&gt; that are going to be distributed in clusters counting on where users require a connection will complement the macro network which gives wide-area coverage. &lt;/p&gt;

&lt;h2&gt;
  
  
  Why it excites me?
&lt;/h2&gt;

&lt;p&gt;The thing fascinating about 5G beyond the speed of data transmission (for me at least) is its design. The core network in 5G is redesigned to better integrate with the internet and cloud-based services and also includes distributed servers across the network improving response times (latency). Many of the advanced features of 5G including network function virtualization (as the name suggests it is the virtualization of internet technologies into nodes so that they may be able to join together for communication) and network slicing for various applications and services, is to be managed within the core. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.qualcomm.com/invention/5g/what-is-5g#:~:text=A%3A%205G%20is%20designed%20to%20deliver%20peak%20data%20rates%20up,just%20how%20fast%20it%20is." rel="noopener noreferrer"&gt;If you want to take a detailed look at the underlying principles of 5G I would recommend you check out QUALCOMM’s page.&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;As the 5G era is approaching, it's not merely about being a medium for communication; it's about being a catalyst for the transformation of technology and blurring the boundaries between a more traditional broadband network and the wireless network. 5G alone perhaps cannot change the direction of the world in this matter, but it certainly has levelled up the playing field. To an extent where I would get it as soon as it launches in Pakistan, but  I would have to wait for more than an eternity. An eternity accommodated by the devil (PTCL).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.vecteezy.com/free-vector/5g" rel="noopener noreferrer"&gt;Cover Image&lt;/a&gt;&lt;/p&gt;

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