<?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: Usman Khan Niazi</title>
    <description>The latest articles on DEV Community by Usman Khan Niazi (@usmankhan).</description>
    <link>https://dev.to/usmankhan</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%2F317476%2F0d554ced-ccb3-469c-ad81-3bdc2bea3882.jpeg</url>
      <title>DEV Community: Usman Khan Niazi</title>
      <link>https://dev.to/usmankhan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/usmankhan"/>
    <language>en</language>
    <item>
      <title>Moving data from MongoDB to PostgreSQL using AWS Glue: A Guide</title>
      <dc:creator>Usman Khan Niazi</dc:creator>
      <pubDate>Fri, 13 Jan 2023 11:17:16 +0000</pubDate>
      <link>https://dev.to/usmankhan/moving-data-from-mongodb-to-postgresql-using-aws-glue-a-guide-43gn</link>
      <guid>https://dev.to/usmankhan/moving-data-from-mongodb-to-postgresql-using-aws-glue-a-guide-43gn</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SvFBC6AG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yeqvfffae9pxv1curlvi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SvFBC6AG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yeqvfffae9pxv1curlvi.png" alt="Postgres ETL" width="880" height="486"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you're working with a large amount of data, you may find that you need to move it from MongoDB to PostgreSQL. This can be a challenging task, but with the help of AWS Glue, it can be made simpler. In this article, we will discuss the steps that you need to take to move data from MongoDB to PostgreSQL using AWS Glue.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Connectivity
&lt;/h2&gt;

&lt;p&gt;The first step in moving data from MongoDB to PostgreSQL is to ensure that your Glue job has the necessary connectivity to both the MongoDB and PostgreSQL databases. This may involve setting up VPC peering, security groups, or other networking configurations. It is important to ensure that your Glue job has the necessary permissions and credentials to access both MongoDB and PostgreSQL.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Data Structure
&lt;/h2&gt;

&lt;p&gt;The next step is to make sure that the data structure in MongoDB is compatible with the schema in PostgreSQL. This may involve transforming the data as it's being loaded or using a Glue job to create the necessary tables in PostgreSQL. This is important because MongoDB is a document-based database, which allows for flexible and unstructured data, while PostgreSQL is a relational database which is more structured.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Data Types
&lt;/h2&gt;

&lt;p&gt;Ensure that the data types used in MongoDB match the data types used in PostgreSQL. This may involve converting data types as part of the ETL process. This is important because MongoDB and PostgreSQL use different data types and if they are not matched properly it could cause errors while loading the data.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Security
&lt;/h2&gt;

&lt;p&gt;Security is a crucial aspect of data migration. Make sure that you have the necessary permissions and credentials to access both MongoDB and PostgreSQL. You should also consider encryption of the data in transit and at rest.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Performance
&lt;/h2&gt;

&lt;p&gt;When working with a large amount of data, performance is a key consideration. Keep an eye on the performance of the Glue job. You may need to adjust the number of Glue workers or the amount of memory allocated to the job to ensure that it runs efficiently.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 6: Monitoring and Error Handling
&lt;/h2&gt;

&lt;p&gt;AWS Glue allows you to monitor the ETL jobs, track the progress and handle errors. It is important to monitor the job and handle any errors that may occur during the data migration process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 7: Data Migration
&lt;/h2&gt;

&lt;p&gt;There are different ways to handle data migration from MongoDB to PostgreSQL, you can either use Glue Job or other data migration tools such as Apache Nifi. The choice of the tool depends on the amount of data, data structure, and the complexity of the migration process.&lt;/p&gt;

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

&lt;p&gt;In conclusion, moving data from MongoDB to PostgreSQL using AWS Glue is a complex task, but with the right steps, it can be made simpler. By following the steps outlined in this article, you can ensure that your data migration process is smooth and successful.&lt;/p&gt;

</description>
      <category>mongodb</category>
      <category>postgres</category>
      <category>aws</category>
      <category>etl</category>
    </item>
    <item>
      <title>Debunking the Cloud</title>
      <dc:creator>Usman Khan Niazi</dc:creator>
      <pubDate>Sun, 23 Jan 2022 11:13:07 +0000</pubDate>
      <link>https://dev.to/usmankhan/debunking-the-cloud-10o0</link>
      <guid>https://dev.to/usmankhan/debunking-the-cloud-10o0</guid>
      <description>&lt;p&gt;The CS Industry has been a victim of buzzwords for the past couple of years if not decades. From AI, Crypto, Data Science, Blockchain and god knows what else, the industry has been constantly bombarding with these terms. Organizations have used these buzzwords to market themselves tremendously. We’ll take a look at one of these buzzwords to see whether they even have some value or are they just buzzwords&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7_mgsOEi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wqnjcgchsyd0aaanc1jz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7_mgsOEi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wqnjcgchsyd0aaanc1jz.png" alt="Wordcloud" width="880" height="499"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Cloud?
&lt;/h2&gt;

&lt;p&gt;One of such buzzword nowadays is “The Cloud”. The Cloud or rather Cloud Computing to be precise, is not something very complicated. In layman’s terms, It can be considered as accessing a set of on-demand computing, storage and networking resources over the internet without the hassle of physically managing them. It refers to the hassle-free scalable and manageable infrastructure that enables organizations to the core business needs rather than focusing on managing these technical things. A formal definition would be:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Cloud computing is the on-demand availability of computer system resources, especially data storage and computing power, without direct active management by the user. Large clouds often have functions distributed over multiple locations, each location being a data center&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What does the cloud look like?
&lt;/h2&gt;

&lt;p&gt;The cloud is not a physical cloud (。_。). It is computer physically located somewhere in a datacenter and it is accessed over the internet through a Dashboard or UI. It is really &lt;br&gt;
 &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OO1Jxixf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3sgfw2o12a18s4jcwtwi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OO1Jxixf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3sgfw2o12a18s4jcwtwi.png" alt="cloud" width="880" height="588"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Types of Cloud
&lt;/h2&gt;

&lt;p&gt;We have 3 major types of cloud.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Public Cloud&lt;/li&gt;
&lt;li&gt;Hybrid Cloud&lt;/li&gt;
&lt;li&gt;Private Cloud&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We’ll discuss them more briefly in another article as they are a topic of their own.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cloud Providers
&lt;/h2&gt;

&lt;p&gt;Different organizations are providing cloud services. The list is growing so fast but I’ll list down ones with the biggest market share:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Amazon Web Services (AWS)&lt;/li&gt;
&lt;li&gt;Microsoft Azure&lt;/li&gt;
&lt;li&gt;Google Cloud Platform (GCP)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We’ll be discussing about AWS as it has the biggest market share and it was one of the first to implement the cloud.&lt;/p&gt;

&lt;h2&gt;
  
  
  Amazon Web Services (AWS)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--P-eWpGYv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5v2g9xrswbe6yd4c8vb4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P-eWpGYv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5v2g9xrswbe6yd4c8vb4.png" alt="AWS" width="800" height="479"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Amazon Web Services or AWS for short is one of the biggest cloud providers in the world. It is a subsidiary of Amazon. It was one of the first one to introduce the world to the concept of cloud computing. For years, They had no competitors. &lt;/p&gt;

&lt;h2&gt;
  
  
  The internet runs on AWS
&lt;/h2&gt;

&lt;p&gt;Yes you heard it right. Most of the internet run off of AWS. it is said that somewhere between 3% to 50% of the internet services are hosted on AWS. That’s the reason whenever AWS goes down, it takes majority of the internet with it. However, This is just one example of the failure as AWS supports fault tolerant systems. &lt;/p&gt;

&lt;h2&gt;
  
  
  What can you do with AWS?
&lt;/h2&gt;

&lt;p&gt;So you might be wondering, what can you do with AWS? AWS can accommodate a gigantic amount of Use-Case’s. Some of them are listed below:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hosting a Web Store&lt;/li&gt;
&lt;li&gt;Deploying your Web Applications&lt;/li&gt;
&lt;li&gt;Deploying your AI Applications&lt;/li&gt;
&lt;li&gt;Business Analytics&lt;/li&gt;
&lt;li&gt;Migration of your existing solutions to AWS&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;The cloud is not just a buzzword. It is a immensely useful piece of technology which is helping organizations scale vertically and horizontally via cloud platforms. Cloud is taking over the industry at a huge rate. It will bring a lot of opportunities with it.&lt;/p&gt;

&lt;p&gt;This was a high level overview of the cloud computing world and AWS. We will look more into the technical details of each of the cloud provider in the upcoming articles.&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>cloudskills</category>
      <category>aws</category>
    </item>
    <item>
      <title>How to enable chrome extensions in selenium python</title>
      <dc:creator>Usman Khan Niazi</dc:creator>
      <pubDate>Mon, 21 Jun 2021 10:24:05 +0000</pubDate>
      <link>https://dev.to/usmankhan/how-to-enable-chrome-extensions-in-selenium-python-5epc</link>
      <guid>https://dev.to/usmankhan/how-to-enable-chrome-extensions-in-selenium-python-5epc</guid>
      <description>&lt;p&gt;In this tutorial , I'm going to show you how you can load chrome extensions when you run selenium&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Install selenium by typing pip install selenium in the command prompt or terminal&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;write the following code&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2Ve72O0d--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/txoszuepcyv53la96cbg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2Ve72O0d--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/txoszuepcyv53la96cbg.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Here pathtocrx.crx is the path to where your chrome extension is stored and pathtochromewebdriver.exe is the path to your downloaded chrome web driver. Change both of them to your own paths. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's all that you need to do. Now you have the mentioned chrome extensions enables and added by default&lt;/p&gt;

</description>
      <category>python</category>
      <category>selenium</category>
      <category>automation</category>
      <category>extension</category>
    </item>
    <item>
      <title>How to convert a custom Chrome extension to a .crx extension / file type</title>
      <dc:creator>Usman Khan Niazi</dc:creator>
      <pubDate>Mon, 21 Jun 2021 10:00:01 +0000</pubDate>
      <link>https://dev.to/usmankhan/how-to-convert-a-custom-chrome-extension-to-a-crx-extension-file-type-388a</link>
      <guid>https://dev.to/usmankhan/how-to-convert-a-custom-chrome-extension-to-a-crx-extension-file-type-388a</guid>
      <description>&lt;p&gt;Ever ran into an issue where you need to convert a chrome extension that you wrote or pulled from somewhere on GitHub?&lt;/p&gt;

&lt;p&gt;Don’t you worry. I’ve got you covered.&lt;/p&gt;

&lt;p&gt;You can convert it with just a few simple steps&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steps:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Open Chrome&lt;/li&gt;
&lt;li&gt; type &lt;em&gt;chrome://extensions/&lt;/em&gt; in the search bar&lt;/li&gt;
&lt;li&gt; Toggle the Developer Mode in the upper right corner&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0KxAOMbY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AsOFuA4WT10qCisAkX7ux2A.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0KxAOMbY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AsOFuA4WT10qCisAkX7ux2A.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Developer Mode in the Upper right corner&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;After Enabling it, this will appear&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Yv68qfTv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AyBTcKmk_nwt8wi63K6tX-A.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Yv68qfTv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2AyBTcKmk_nwt8wi63K6tX-A.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Click on Pack Extension&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aBHuSXQe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2A5A7nYcU2jaCKCtGGxRVQRQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aBHuSXQe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/800/1%2A5A7nYcU2jaCKCtGGxRVQRQ.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Now this should appear. Leave the private key empty (it will be default) and click on browse Extension root dir.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select the root directory of your extension and click pack extension&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That's all you need to do. Your Crx file is now ready and generated. It will be present in the parent directory of your extension root.&lt;/p&gt;

</description>
      <category>crx</category>
      <category>chrome</category>
      <category>customextension</category>
      <category>extension</category>
    </item>
  </channel>
</rss>
