<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Salman Qureshi Full Stack Developer From Kashmir]]></title><description><![CDATA[Salman Qureshi Full Stack Developer from Kashmir, M.Tech from Central University of Kashmir. Loves Technology, Coding and Cybersecurity]]></description><link>https://blog.isalman.dev</link><generator>RSS for Node</generator><lastBuildDate>Wed, 22 Apr 2026 02:15:53 GMT</lastBuildDate><atom:link href="https://blog.isalman.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Breaking Boundaries: Customizing WhatsApp Without Compromising Security]]></title><description><![CDATA[As a regular user of WhatsApp, I've encountered my fair share of frustrations with its updates and status feature. From constant notifications to intrusive status updates, it seemed like I couldn't catch a break. On top of that, the temptation to res...]]></description><link>https://blog.isalman.dev/breaking-boundaries-customizing-whatsapp-without-compromising-security</link><guid isPermaLink="true">https://blog.isalman.dev/breaking-boundaries-customizing-whatsapp-without-compromising-security</guid><category><![CDATA[whatsapp]]></category><category><![CDATA[Android]]></category><category><![CDATA[hacking]]></category><dc:creator><![CDATA[Salman Qureshi]]></dc:creator><pubDate>Fri, 22 Mar 2024 00:16:57 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/upBKRmHJrCI/upload/faab5e1b268e1c9a88ec70439e9afe61.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>As a regular user of WhatsApp, I've encountered my fair share of frustrations with its updates and status feature. From constant notifications to intrusive status updates, it seemed like I couldn't catch a break. On top of that, the temptation to resort to third-party mods was always present, but the risks involved were too great to ignore.</p>
<p><img src="https://media1.tenor.com/m/OypvrPZ_jAMAAAAC/cute-cat-shy.gif" alt="Cute Cat" /></p>
<p>Many third-party mods come with hidden dangers, such as backdoors, viruses, and even botnets disguised as innocent add-ons. Aware of these risks, I refused to compromise my device's security by using any of the available mods, no matter how tempting they might seem.</p>
<p>So, what was the solution? I decided to take matters into my own hands. With a background in software engineering, I embarked on a journey to reverse engineer WhatsApp's Android source code. My goal was simple: to disable the features that annoyed me the most and regain control over my messaging experience.</p>
<p>After diving into the intricacies of WhatsApp's codebase, I identified the offending features and carefully disabled them. It was a challenging process, but the satisfaction of finally having a WhatsApp experience tailored to my preferences made it all worth it.</p>
<p>Once I had made the necessary modifications, I recompiled the code into an APK, effectively creating my own customized version of WhatsApp. However, I want to make it clear that I have no intentions of violating WhatsApp's End User License Agreement (EULA) by distributing this modified version. It's a personal solution to a personal problem, and I'm content with keeping it that way.</p>
<p>Now, if you're a friend of mine reading this, you might be wondering how to get your hands on my customized WhatsApp APK. Well, the answer is simple: just reach out to me directly. I'll be more than happy to share my solution with those who share my frustrations.</p>
<p>In conclusion, my experience with WhatsApp's updates and status feature taught me the importance of taking control of my digital life. Instead of passively accepting annoyances, I chose to actively seek a solution that worked for me. And while reverse engineering WhatsApp's source code might not be feasible for everyone, it's empowering to know that there are alternatives out there for those willing to take the plunge.</p>
<p>So, here's to reclaiming our digital autonomy, one line of code at a time! 👨‍💻📱</p>
]]></content:encoded></item><item><title><![CDATA[This is Why You Should Stop Using SpeedTest By Ookla]]></title><description><![CDATA[Speedtest.net is a popular online service that lets you test the speed and performance of your internet connection. It's been on my mind for a while to see if these speed tests are accurate! I even considered creating my own speed test app for a proj...]]></description><link>https://blog.isalman.dev/this-is-why-you-should-stop-using-speedtest-by-ookla</link><guid isPermaLink="true">https://blog.isalman.dev/this-is-why-you-should-stop-using-speedtest-by-ookla</guid><dc:creator><![CDATA[Salman Qureshi]]></dc:creator><pubDate>Tue, 20 Jun 2023 18:04:19 GMT</pubDate><content:encoded><![CDATA[<p>Speedtest.net is a popular online service that lets you test the speed and performance of your internet connection. It's been on my mind for a while to see if these speed tests are accurate! I even considered creating my own speed test app for a project. While there are technical aspects involved in measuring speed tests, I want to keep things simple and get straight to the point in this post.</p>
<p><img src="https://camo.githubusercontent.com/745755874b81108a720dab92fd111f389a1d5dbe9ae19297cccf97be10d0eee8/687474703a2f2f69736c616e642e6e752f6769746875622f737061726b79666973682f737061726b79666973682d76312e332e676966" alt /></p>
<p>I've recently discovered that third-party speed test companies like Speedtest by Ookla can be biased. They seem to favor certain networks (I won't name names, but let's just say they're mostly associated with wealthier individuals) and manipulate the results by tampering with the bits and bytes.</p>
<p>The manipulation happens by injecting fake bits into your browser's local storage, causing the results to fluctuate. During my research, I found that many of the bits used in the speed tests are pre-calculated and randomized. It's a common procedure for speed test services. Websites inject a JavaScript code that generates random data bits or streams, sends them to the server, and then calculates metrics like latency, round trip time, and average waiting time. This process mostly relies on TCP communication.</p>
<p>One important reason to avoid using speedtest.net is that they utilize compressible data for their tests. This can lead to highly unrealistic results, especially when it comes to connections using DOCSIS technology.</p>
<p>The issue with relying on stream compression is that it doesn't reflect the reality of internet content, which is already sent over the wire in a compressed form. Therefore, any stream compression used in the speed test doesn't accurately represent the actual performance of your internet connection.</p>
<p>In personal experience, speedtest.net has often overestimated my connection speed by 2-3 times its actual throughput. This significant discrepancy can be misleading and doesn't provide an accurate assessment of the true speed of your internet connection.</p>
<p>Also ookla has lots of trackers that sells your online footprints and bombard with ads, but lets be honest here, everyone does these days, and I won't judge it based on that.</p>
<p>In conclusion, I've noticed a pattern in the biased results, and it seems to change over time. It appears to be a way for them to hide these discrepancies and maintain their reputation.</p>
<p>If you're concerned about this, I recommend trying alternative speed test options like LibreSpeed, Cloudflare speed test, or giving Sparkyfish a shot. These alternatives may provide a fairer and more unbiased assessment of your internet connection's speed and performance.</p>
<p><img src="https://media1.giphy.com/media/ZJh42VKmeQ2yY/200w.gif?cid=6c09b952v911x96c0e7pjtsy5nfd8nd29pknb4ecvxnv8a2i&amp;ep=v1_gifs_search&amp;rid=200w.gif&amp;ct=g" alt /></p>
<p>P.S: If you want to know more about my research email me at contact@isalman.dev</p>
<p><em>This article reflects my personal opinion and should not be considered as legal proof for any study</em></p>
]]></content:encoded></item><item><title><![CDATA[Statically Typed Languages vs Dynamically Typed Languages: A Deep Dive]]></title><description><![CDATA[As a software developer, one of the most important decisions you will make when starting a new project is the choice of programming language. There are many factors to consider when making this choice, such as the popularity of the language, the size...]]></description><link>https://blog.isalman.dev/statically-typed-languages-vs-dynamically-typed-languages-a-deep-dive</link><guid isPermaLink="true">https://blog.isalman.dev/statically-typed-languages-vs-dynamically-typed-languages-a-deep-dive</guid><category><![CDATA[static code analysis]]></category><category><![CDATA[Dynamic Programming]]></category><dc:creator><![CDATA[Salman Qureshi]]></dc:creator><pubDate>Fri, 10 Feb 2023 18:32:42 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1676053258606/0e7b4633-1f46-48cd-932d-cbcd852e57cb.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>As a software developer, one of the most important decisions you will make when starting a new project is the choice of programming language. There are many factors to consider when making this choice, such as the popularity of the language, the size of the community, and the support for the tools you need. One of the most important considerations, however, is whether to choose a statically typed language or a dynamically typed language.</p>
<p>In this blog post, we will explore the key differences between statically typed languages and dynamically typed languages, including code examples and comparisons, to help you understand which one might be more efficient for your next project.</p>
<p><strong>What is a Statically Typed Language?</strong></p>
<p>A statically typed language is a programming language where the type of a variable is known at compile time, rather than at runtime. This means that the type of a variable must be specified when it is declared, and any operations that involve that variable must be performed on values of the correct type. If an operation is performed on a value of the wrong type, the compiler will report an error, preventing the code from being executed.</p>
<p>Examples of statically typed languages include Java, C#, and C++. Here is an example of code written in Java:</p>
<pre><code class="lang-java"><span class="hljs-keyword">int</span> x = <span class="hljs-number">10</span>;
String y = <span class="hljs-string">"Hello, world!"</span>;
System.out.println(x + y);
</code></pre>
<p>In this example, the type of x is int and the type of y is String. When the code is compiled, the compiler will report an error because the + operator cannot be used to add an int and a String.</p>
<p><strong>What is a Dynamically Typed Language?</strong></p>
<p>A dynamically typed language, on the other hand, is a programming language where the type of a variable is determined at runtime. This means that the type of a variable can change during the execution of the program, and operations can be performed on values of any type. If an operation is performed on a value of the wrong type, the error will only be reported at runtime, rather than at compile time.</p>
<p>Examples of dynamically typed languages include Python, Ruby, and JavaScript. Here is an example of code written in Python:</p>
<pre><code class="lang-python">x = <span class="hljs-number">10</span>
y = <span class="hljs-string">"Hello, world!"</span>
print(x + y)
</code></pre>
<p>In this example, the type of x is initially int, but the type of y is str. When the code is executed, an error will be reported because the + operator cannot be used to add an int and a str.</p>
<p><strong>Advantages and Disadvantages of Statically Typed Languages</strong></p>
<p>The main advantage of statically typed languages is that they catch errors early in the development process, before the code is even executed. This can save a lot of time and effort, as well as make the code more reliable. Statically typed languages also typically have better performance than dynamically typed languages, as the type information can be used by the compiler to generate more efficient code.</p>
<p>However, statically typed languages can be more verbose and require more boilerplate code than dynamically typed languages. This can make the code more difficult to read and understand, and can slow down the development process. Additionally, statically typed languages can be more rigid and less flexible than dynamically typed languages, as they do not allow for as much dynamic behaviour.</p>
<p><strong>Advantages and Disadvantages of Dynamically Typed Languages</strong></p>
<p>The main advantage of dynamically typed languages is their flexibility and ease of use. Because the type of a variable can change</p>
<p>In conclusion, statically typed languages and dynamically typed languages each have their own advantages and disadvantages, and the choice between them depends on the specific needs of a project. Statically typed languages offer the benefit of catching errors early in the development process, resulting in more reliable code, and typically better performance. However, they can be more verbose and rigid, slowing down the development process.</p>
<p>Dynamically typed languages, on the other hand, offer greater flexibility and ease of use, but with the trade-off of potentially encountering errors at runtime. The choice between these two types of languages ultimately comes down to a trade-off between safety, reliability, and performance, and the desired level of flexibility in the development process.</p>
<p>Ultimately, the choice between statically typed and dynamically typed languages is not a one-size-fits-all decision, and it is up to the individual software developer to weigh the pros and cons and make the choice that best fits their needs. Whether you choose a statically typed language or a dynamically typed language, the important thing is to understand the trade-offs and make an informed decision based on the specific requirements of your project.</p>
<p>This article was originally posted by me on <a target="_blank" href="https://ithinklogically.com/statically-typed-languages-vs-dynamically-typed-languages-a-deep-dive/">iThinkLogically</a></p>
]]></content:encoded></item><item><title><![CDATA[Learn Ajax in 5 Mins]]></title><description><![CDATA[Yes, you heard it right! You can learn AJAX in 5 mins provided you have little concept of JavaScript and jQuery.
The method I am sharing with you right now will probably boot your AJAX skills.
Just for the record:
AJAX is a developer’s dream because ...]]></description><link>https://blog.isalman.dev/learn-ajax-in-5-mins</link><guid isPermaLink="true">https://blog.isalman.dev/learn-ajax-in-5-mins</guid><category><![CDATA[JavaScript]]></category><category><![CDATA[coding]]></category><category><![CDATA[Programming Blogs]]></category><category><![CDATA[Full Stack Development]]></category><dc:creator><![CDATA[Salman Qureshi]]></dc:creator><pubDate>Thu, 12 Jan 2023 09:26:37 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/ZS67i1HLllo/upload/54ab82dff668cce009ee415d9093a91a.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Yes, you heard it right! You can learn AJAX in 5 mins provided you have little concept of JavaScript and jQuery.</p>
<p>The method I am sharing with you right now will probably boot your AJAX skills.</p>
<p><strong>Just for the record:</strong></p>
<p><strong>AJAX</strong> is a developer’s dream because you can:</p>
<ul>
<li><p>Update a web page without reloading the page</p>
</li>
<li><p>Request data from a server – after the page has loaded</p>
</li>
<li><p>Receive data from a server – after the page has loaded</p>
</li>
<li><p>Send data to a server – in the background</p>
</li>
</ul>
<p>So without wasting much more time let’s get our hands dirty with some AJAX 🙂</p>
<p>Things You need:</p>
<ol>
<li><p><strong>MAIN PAGE</strong> – A page from where you will send request to another page without reloading the current one or navigating to other page</p>
</li>
<li><p><strong>SOURCE</strong> <strong>PAGE</strong> – It’s generally written in server side scripting language eg. PHP</p>
</li>
</ol>
<p>Now We are done, the key part is server side scripting language needs fully executed just like loading new web page but it doesn’t look dynamic so AJAX comes into play.</p>
<h2 id="heading-just-focus-following-2-parts-to-get-enough-about-ajax">JUST FOCUS FOLLOWING 2 PARTS TO GET ENOUGH ABOUT AJAX.</h2>
<ol>
<li>parentpage.html</li>
</ol>
<p><img src="https://web.archive.org/web/20200814102848im_/https://i0.wp.com/salmanually.com/wp-content/uploads/2018/08/Screenshot-162.png?resize=580%2C326" alt /></p>
<p>parent.html</p>
<ol>
<li>source.php</li>
</ol>
<p><img src="https://web.archive.org/web/20200814102848im_/https://i2.wp.com/salmanually.com/wp-content/uploads/2018/08/Screenshot-163.png?w=696" alt /></p>
<p>source.php</p>
<p>Don’t worry the source code of these two files are available <a target="_blank" href="https://web.archive.org/web/20200814102848/https://github.com/hotheadhacker/simpleAJAXdemo"><strong>HERE</strong></a> on my github repository!</p>
<p>If you have any query or suggestions Drop your responses below in comments. I will be happy to help you 🙂</p>
<blockquote>
<p>This article was recovered from my old blog salmanually.com and reposted here on (26/06/2022) <a target="_blank" href="https://web.archive.org/web/20200814102848/https://salmanually.com/2018/08/28/learn-ajax-in-5-mins/">Check orgiginal Archive.org - wayback version of this post</a></p>
</blockquote>
]]></content:encoded></item><item><title><![CDATA[Become Full Stack Developer Only With This Programming Language]]></title><description><![CDATA[With lots of programming language out  there  everyone here is getting confused about what to follow and what not to. All programming languages having their own limitations and their own pros and cons. At the beginning of this article, I will say tha...]]></description><link>https://blog.isalman.dev/become-full-stack-developer-only-with-this-programming-language</link><guid isPermaLink="true">https://blog.isalman.dev/become-full-stack-developer-only-with-this-programming-language</guid><category><![CDATA[GitHub]]></category><category><![CDATA[programming languages]]></category><category><![CDATA[Programming Tips]]></category><category><![CDATA[JavaScript]]></category><category><![CDATA[Learning Journey]]></category><dc:creator><![CDATA[Salman Qureshi]]></dc:creator><pubDate>Tue, 10 Jan 2023 20:25:12 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/gnyA8vd3Otc/upload/ec1027ff5c789d53f654784dffe2db07.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>With lots of programming language out  there  everyone here is getting confused about what to follow and what not to. All programming languages having their own limitations and their own pros and cons. At the beginning of this article, I will say that every language does have its own superiority other the only thing that matters is how you are executing it. Becoming a full stack developer with these many options available is a quite big deal. No matter if you are a new developer or experienced one. We all need to be minimalist. Being able to do more things with less effort. Without wasting much more time I am going to discuss <strong>that one language</strong>  that will help you to become a full stack developer if you know only that programming language.  </p>
<p><strong>The JavaScript.</strong>  </p>
<p>JavaScript as a beginning was only famous for its front end web applications when the internet and web browsers became popular. The syntax was quite a bit easy-to-understand and not much complex as now because it does more things now than earlier. Nobody would have thought there will become lots of frameworks and open source libraries for javaScript as makes it the largest community online. Companies like Facebook &amp; Google are building their own frameworks and libraries as  an open  source frameworks for global communities to contribute and  utilise  on that. So it means that if you are going to learn this skill is not a waste.</p>
<p><strong>Facebook</strong>  has developed  their  <strong>react</strong>  and  <strong>react-native</strong>  while as  <strong>Google</strong>  has developed  <strong>angular js</strong>  on  <strong>javaScript</strong>  </p>
<p><strong>Becoming a full stack developer</strong>  we need to break down the process. The first process is you need to know things about backend and frontend and idea about developing mobile and desktop applications both for Android and Apple the popular mobile and desktop platforms out there and also for windows, luckily javaScript takes care about all of them.</p>
<p>Luckily  JavaScript has now become so advance said that it’s not only now it is used as frontend but can be used as a very efficient back and programming language that can deal with all high  and and  process related executions efficiently. Yes, I am talking about  <strong>node JS</strong>  the  <strong>Elite and revolutionary JavaScript framework</strong>  that has changed how I think about JavaScript it’s so efficient that its execution is much faster than the other reputed programming language are such as  <strong>python PHP</strong> even <strong>Java.</strong>  Node JS also has  a built-in  popular dependency and package manager called as  <strong>NPM (Node Package Manager)</strong>  that  intalls  the  dependecies  rapidly. NP<strong>M h</strong>as become so popular now other frameworks like  <strong>react</strong>  and other js  frame works  can be deployed by using NPM.  </p>
<blockquote>
<p>SO THE  THING  IS IF YOU MASTER THE JAVASCRIPT YOU DO NOT HAVE TO WORRY ABOUT TO LEARN A NEW LANGUAGE TO EXECUTE SOME DIFFERENT TASK FOR YOUR REQUIREMENTS.  </p>
</blockquote>
<p>With JavaScript, you can develop a front end of a website that’s really very responsive and can give a very rich experience to the users visiting your website by using any popular JavaScript frontend framework such as angular or react or  vue  JS there are also  lot  of other friend and platforms you can by your own. Most of all the library is open source &amp; have a big community all over the globe. JavaScript becoming really really popular day by day you can see  <strong>GitHub</strong>  is really flooded with the JavaScript libraries and projects done on javascript we really do not know how far it’s going to get us and with the back-end the JavaScript can really be more efficient and can handle a lot of input and output in a non blocking  scenerio  that node JS is giving.</p>
<p><strong>On the other hands by developing the applications no matter for mobile or desktop JavaScript really take care of that.</strong></p>
<p>I am not going to stuff you with some old research and features I am going to tell you about the recent things that are happening in the market so forget about the hybrid mobile applications but the approach where used was a bit time consuming and how to get and applications that where buggy was not having a good impact on end-users on the developer side we could not get the most things done.</p>
<p>So I am introducing one and only  <strong>react native</strong>  which is another JavaScript framework that allows you to develop mobile applications and desktop applications independent of their operating system and platform they are on. Since the  <strong>react-native</strong>  has been in  market  it has really boosted  dethevelopment  of mobile applications much faster and smoother.  </p>
<p><strong>The JavaScript has really revolutionized</strong>  the  <strong>web experiences</strong>  as well as the  <strong>applications that are installed on end devices</strong>. With  <strong>front-end</strong>  libraries as  <strong>angular and react or</strong> <strong>vue**</strong>JS<strong>  you can make very responsive and very smooth looking  </strong>front-end<strong>  website in a new revolutionary way, and with  </strong>node JS<strong>  you can make your web server to do things at very faster and in a very efficient manner. With  </strong>react native<strong>  you can develop directly  </strong>applications that you can letter deploy on app Store for Play Store**.</p>
<p>That is all, but one thing we need to worry about is a  <strong>syntax</strong>  that all different libraries and frameworks are using.  <strong>Each of the library at their different</strong>  types of syntaxes that they use but not really difficult another one it will hardly effect. Luckily is if you know the basics and core things of JavaScript you can master them and can directly jump on them and mostly all of them are using new  <strong>ES5</strong> or <strong>ES6</strong>  syntax style of JavaScript.  </p>
<blockquote>
<p>THERE IS A WAY THEY ARE ALWAYS.</p>
<p>This article was recovered from my old blog salmanually.com and reposted here on (26/06/2022)
<a target="_blank" href="https://web.archive.org/web/20200814115047/https://salmanually.com/2019/07/08/become-full-stack-developer-only-with-this-programming-language/">Check orgiginal Archive.org - wayback version of this post</a></p>
</blockquote>
]]></content:encoded></item><item><title><![CDATA[Is Cryptocurrencies Halal? Some myths about Cryptocurrencies.]]></title><description><![CDATA[Introduction
Cryptocurrency is essentially a digital means of currency exchange and digital payments platform that uses blockchain technology.

Why this post?
The fact there are still some people out there who think that cryptocurrency is not halal o...]]></description><link>https://blog.isalman.dev/is-cryptocurrencies-halal-some-myths-about-cryptocurrencies</link><guid isPermaLink="true">https://blog.isalman.dev/is-cryptocurrencies-halal-some-myths-about-cryptocurrencies</guid><category><![CDATA[Cryptocurrency]]></category><category><![CDATA[Islam]]></category><category><![CDATA[Halal]]></category><category><![CDATA[Bitcoin]]></category><dc:creator><![CDATA[Salman Qureshi]]></dc:creator><pubDate>Tue, 10 Jan 2023 20:16:46 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/iGYiBhdNTpE/upload/1abe54cc957117521664345bedb96332.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1 id="heading-introduction">Introduction</h1>
<p>Cryptocurrency is essentially a digital means of currency exchange and digital payments platform that uses blockchain technology.</p>
<p><img src="https://media1.giphy.com/media/WT9wi81vtEhqt17SE4/giphy.gif?cid=ecf05e47embdp2tb0r26t355abpce3v1zmcslxwd5intwk49&amp;rid=giphy.gif&amp;ct=g" alt="enter image description here" /></p>
<h1 id="heading-why-this-post">Why this post?</h1>
<p>The fact there are still some people out there who think that cryptocurrency is not halal or authentic according to Islam I have personally talked to lot of people what actually makes them feel this way but trust me most of them didn't know how cryptocurrency works but on other hand, some people new the logic behind cryptocurrency and they had some valid reasons also like they are some cryptocurrencies that clearly supports products, causes and ideology that is against Islam.</p>
<p>But based on hand full of tokens or coins we cannot say that cryptocurrency as whole is haram. It is certain that we should avoid those crypto tokens.</p>
<p>It's like saying I don't use mobile phone because it has a music player in it, well having a music player in it does not mean you are going to play music in it you can play MP3 Quran or any other thing that is not prohibited so it's just an analogy I guess a silly one 😅. But I hope you understand my point.</p>
<h1 id="heading-why-do-i-think-cryptocurrencies-arent-haraam">Why do I think cryptocurrencies aren't haraam?</h1>
<p>I believe that cryptocurrencies are more authentic and more genuine means of transaction that's actually how the transaction was meant to be not just relying on a value with respect to US dollar (fiat) whose value and amount of circulation ( causes inflation, riches getting richer and poor getting poorer) is governed by the people whome we don't even know or we don't know there intentions. They can circulate how much of dollars as they want and your country is obligated to follow that because all other countries wanted to centralise the assets instead of directly setting the value of the respective currency to the world's available natural assets like gold after world war II</p>
<ul>
<li>To make a fully understand why I think to currencies more authentic then actual paper money. Let me give you a brief gist how transaction in exchange of an interest were happening and how we ended up with paper money and why it needs to be changed.</li>
</ul>
<p>Well back in early days when people had to trade they use barter system where they were directly trading something with respect to something let's say if a person A wanted to buy fruits from person B, but the person A had to pay exact value that those fruits were of obviously the person A cannot pay in fruits because he don't have any that's why he is purchasing that. To close the deal person A pays exact value in chicken eggs that of fruits.</p>
<p>But the problem with above scenario was what if person B never wanted eggs but to make a sale they had to make some kind of sacrifice in those days in barter system.</p>
<p>That is why people wanted to get something that has a value that can be exchanged in spite of its form that is why gold coins where introduced so if a person wanted to purchase fruits he can give some amount of gold coin and person B can re-use those coins and purchase something that he was interested in.</p>
<ul>
<li>Here is the catch</li>
</ul>
<p>People were not comfortable carrying gold coins across and those gold coins had very highest value let's say if a person wanted to buy small goods so buying with gold coin was not a good option because it would be 1000 part of it so the transactions will not accurate and people tried to find more accurate way to do transactions.</p>
<p>Thats why paper based money (fiat) was introduced, tell here you would have some idea that the way we make transaction is bound to change we cannot rely on one particular mode, it's a human nature would always try to find a better and improved version of what was already existing.</p>
<p>But when fait money came, it made entry of banking system so strong that most of the Muslim countries are slaves to this system, credit systems, loans, life insurance and interest based schemes were also born. Which I believe is major fall of Muslim era.</p>
<p>Cryptocurrency works on blockchain and blockchain is a decentralized system that is not governed by a country or an organization. Its circulation is limited (some exceptions) and its value may increase decrease and these tokens are mined similarly it possesses characteristics just like gold.</p>
<p>The authentic part is that every transaction gets recorded permanently and is open to everyone anyone connected to the blockchain network can see what transaction has been made from which wallet (just like your bank account number but in a different way).</p>
<p>I believe cryptocurrencies will eliminate central banks that are the main cause behind world hunger and poverty and prohibited in islam. We all are in this banking system even of we want or not and cryptocurrencies are way out of it and an upgrade to the way we transact.</p>
<h1 id="heading-what-aalims-say">What Aalims say</h1>
<p>A comprehensive Islamic interpretation, one that sparked a massive rise in Muslim investment in Bitcoin and Ethereum in 2018, was provided by Sharia advisor Mufti Muhammad Abu-Bakar (former advisor to Blossom Finance) who argued that Bitcoin is permissible under Shariah law. He considered arguments that crypto itself was speculative, but his view was that all currencies have a speculative element and this did not automatically deem crypto as haram.</p>
<p>From the perspective of Islamic contract rules, there must be an element of consideration - Mal. Mal refers to possession and effective storage, and cryptocurrencies meet the criteria required as they can be possessed and stored and have commercial value (Mutaqawwam). Crypto is a real and viable digital asset, its worth and value lies in what is paid for it, and it is capable of being owned and traded commercially so the Shariah requirements are satisfied.</p>
<p>The Shacklewell Lane Mosque in East London became one of the first mosques in the UK to accept cryptocurrency donations and Zakat contributions in 2018 during Ramadan.</p>
<h1 id="heading-digital-currencies-and-shariah-law">DIGITAL CURRENCIES AND SHARIAH LAW</h1>
<p>Islamic finance principles dictates that in order for income, or investing in any product or asset, to be deemed halal it has to meet certain criteria. The principles of Shariah law should be applied to the financial systems we operate in and there has been some discussion about whether rules devised centuries ago can still be applied to a technologically modern digital financial marketplace.</p>
<p>The answer quite simply is yes, Shariah principles can be applied to modern crypto analysis as they are based on social justice, accountability and ethics which transcend all forms of financial transactions. As long as there is no illegal activity, then trading or investing in crypto should not be deemed to be contrary to Shariah principles. <a target="_blank" href="https://www.qardus.com/news/what-is-cryptocurrency-and-is-it-halal">Ref Here</a></p>
<h1 id="heading-final-comments">Final Comments</h1>
<p>There are some cryptocurrencies out there which are clearly against our sharia and islam we must do our research before making any transactions or any trade. We need to look into the whitepaper( a detailed information about the particular token) of the ever cryptocurrency we deal with.</p>
<h2 id="heading-ps-i-may-have-done-lot-of-errors-in-this-post-both-logical-and-typing-mistakes">P.S: I may have done lot of errors in this post both logical and typing mistakes,</h2>
<p>for typing mistakes, I felt lazy to type this long post so I used voice to text software.</p>
<p>as far as if I have made some logical error, please let me know with valid justification, so I can correct myself.</p>
<p>May Allah swt guide us all and help us in getting rid of banking system.</p>
]]></content:encoded></item><item><title><![CDATA[How To Publish a Blog Post Using VSCode + GitHub & Hashnode]]></title><description><![CDATA[Publishing your blog articles via GitHub is amazing 😄

As a developer it will catch every developers attention that they can post to there blog directly with git push
You can now use your favourite IDE such as VSCode to directly make a blog post! Is...]]></description><link>https://blog.isalman.dev/connect-github-to-hashnode</link><guid isPermaLink="true">https://blog.isalman.dev/connect-github-to-hashnode</guid><dc:creator><![CDATA[Salman Qureshi]]></dc:creator><pubDate>Wed, 16 Feb 2022 15:35:51 GMT</pubDate><enclosure url="https://images.unsplash.com/photo-1618401471353-b98afee0b2eb?ixlib=rb-1.2.1&amp;ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&amp;auto=format&amp;fit=crop&amp;w=1788&amp;q=80" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1 id="heading-publishing-your-blog-articles-via-github-is-amazing">Publishing your blog articles via GitHub is amazing 😄</h1>
<blockquote>
<p>As a developer it will catch every developers attention that they can post to there blog directly with <code>git push</code></p>
<p>You can now use your favourite IDE such as VSCode to directly make a blog post! Isn't it cool?</p>
</blockquote>
<p><img src="https://media0.giphy.com/media/11sBLVxNs7v6WA/giphy.gif?cid=ecf05e47yjr28q0d3479jxgpy2750j4b85dhtkpazzaat5t1&amp;rid=giphy.gif&amp;ct=ghttp://www.reactiongifs.com/cheering-minions/https:" alt="Happy" /></p>
<h1 id="heading-steps-to-post-articles-via-github-on-hashnode">Steps to post articles via GitHub on Hashnode</h1>
<h2 id="heading-1-hashnode-account">1. Hashnode account:</h2>
<p>If you don't have Hashnode account <a target="_blank" href="https://hashnode.com/@Hotheadhacker/joinme">create one</a> <em>(affiliate link)</em></p>
<h2 id="heading-2-create-an-empty-repository-on-github">2. Create an empty repository on GitHub</h2>
<p>Create a repo on GitHub that we will be used to save all you new posts like a normal GitHub repo</p>
<h2 id="heading-3-connect-hashnode-with-your-github">3. Connect Hashnode with Your GitHub</h2>
<p>You need to goto you <strong>Blog Setting</strong> on hashnode and to inegrations</p>
<p><code>Blog Home -&gt; Blog Dashboard -&gt; Integrations -&gt; Connect To GitHub</code></p>
<h2 id="heading-4-allow-hashnode-app-on-github">4. Allow Hashnode App on GitHub</h2>
<p>You need to authorize HashNode App on GitHub and under repository select <strong>Newly Created Repository</strong> and click on <strong>Install</strong></p>
<blockquote>
<p>Now you have successfully intalled a.k.a connected to GitHub and 1 step behind publishing via VSCode</p>
</blockquote>
<h2 id="heading-5-clone-your-repo">5. Clone your repo</h2>
<p><code>git clone https://github.com/example/your-repo.git</code></p>
<p>Open your repo in VSCode or any other IDE you like and create new <strong>.md</strong> file (example.md, name of the file doesn't matter)</p>
<p>You need to keep this thing in mind that with every post you have to create a new .md file containing exactly below details a as metadata that will help hashnode to get title, imgae, tags etc. (You git the idea)😊</p>
<pre><code class="lang-config">
---title: GitHub Test
slug: github-test
tags: Test, GitHub
cover: https://cdn.isalman.dev/photos/1.jpeg
domain: blog.isalman.dev
---
</code></pre>
<blockquote>
<p>Note: I have used my domain name on which I have hosted hashnode, you can replace it by your own</p>
</blockquote>
<p>Now all you have to do is commit and push to your repo and hashnode will automatically post to your hashnode blog.</p>
<p>Also if you have to edit your post you can't do it from hashnode, you have to edit from you GitHub repo (That looks weird but it makes sense, bcuz both of them will store same version of your post!)</p>
<h4 id="heading-some-tips">Some Tips:</h4>
<p>Since you have to use markdown syntax you can use few extensions on VSCode to WYSIWYG editor to speed up 🚀 publishing time and have a visual experience</p>
<p>Name: Markdown Editor
Id: zaaack.markdown-editor
Description: A full-featured WYSIWYG editor for markdown.
Version: 0.1.10
Publisher: zaaack
VS Marketplace Link: <a target="_blank" href="https://marketplace.visualstudio.com/items?itemName=zaaack.markdown-editor">https://marketplace.visualstudio.com/items?itemName=zaaack.markdown-editor</a></p>
<p>or if you don't want any extensions VSCode has a built-in .md previewer, all you have to do is press <code>ctrl+shift+v</code> from any .md file.</p>
<p>Thanks, See you in next blog post, (<em>PS: I have published this blog post from VSCode 😊</em>)</p>
]]></content:encoded></item><item><title><![CDATA[How To Create Your Own Ad-Free YouTube App With React]]></title><description><![CDATA[https://giphy.com/gifs/new-youtube-logo-13Nc3xlO1kGg3S
YouTube has lots of educational information or infotainment data available, but it takes our focus away while an ad gets played. 
So, how about the approach where we can get override those ads an...]]></description><link>https://blog.isalman.dev/how-to-create-your-own-ad-free-youtube-app-with-react</link><guid isPermaLink="true">https://blog.isalman.dev/how-to-create-your-own-ad-free-youtube-app-with-react</guid><category><![CDATA[React]]></category><category><![CDATA[APIs]]></category><category><![CDATA[youtube]]></category><category><![CDATA[JavaScript]]></category><category><![CDATA[Programming Blogs]]></category><dc:creator><![CDATA[Salman Qureshi]]></dc:creator><pubDate>Thu, 27 Jan 2022 18:34:22 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/unsplash/niUkImZcSP8/upload/v1643304987430/XWdpMJAad.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://giphy.com/gifs/new-youtube-logo-13Nc3xlO1kGg3S">https://giphy.com/gifs/new-youtube-logo-13Nc3xlO1kGg3S</a></div>
<p><strong>YouTube</strong> has lots of educational information or infotainment data available, but it takes our focus away while an ad gets played. 
So, how about the approach where we can get override those ads and enjoy our educational or any kind of video? But this approach will need you develop your own app from scratch!</p>
<blockquote>
<p>I know some of you might be thinking dude, there are adblockers or some modded apps that does the same! So what is the point? 🤔</p>
</blockquote>
<p>But here I am explaining two things:</p>
<ul>
<li><p><strong>The ethical way</strong> - i,e its the YouTube that will allow us to play ad-free videos and are aware about this.</p>
</li>
<li><p><strong>The most important part</strong> i,e we will get to learn more of react.</p>
</li>
</ul>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://giphy.com/gifs/theoffice-the-office-tv-fire-yBwgX64KAPrHW2ltZ2">https://giphy.com/gifs/theoffice-the-office-tv-fire-yBwgX64KAPrHW2ltZ2</a></div>
<blockquote>
<p>PS: I have made basic App UI just to cover-up fundamentals so, you can improve it if you want it. 😅</p>
</blockquote>
<h4 id="heading-lets-start">Lets start 🚀</h4>
<h3 id="heading-1-setting-up-appjs">1) Setting up App.js:</h3>
<pre><code><span class="hljs-keyword">import</span> <span class="hljs-string">'./App.css'</span>;
<span class="hljs-keyword">import</span> <span class="hljs-title">Header</span> <span class="hljs-title"><span class="hljs-keyword">from</span></span> <span class="hljs-string">'./components/header'</span>
<span class="hljs-title"><span class="hljs-keyword">import</span></span> <span class="hljs-title">Body</span> <span class="hljs-title"><span class="hljs-keyword">from</span></span> <span class="hljs-string">'./components/body'</span>
<span class="hljs-title"><span class="hljs-keyword">import</span></span> <span class="hljs-title">Footer</span> <span class="hljs-title"><span class="hljs-keyword">from</span></span> <span class="hljs-string">'./components/footer'</span>


<span class="hljs-title"><span class="hljs-keyword">function</span></span> <span class="hljs-title">App</span>() {
  <span class="hljs-title"><span class="hljs-keyword">return</span></span> (
    <span class="hljs-operator">&lt;</span><span class="hljs-title">div</span> <span class="hljs-title">className</span><span class="hljs-operator">=</span><span class="hljs-string">"main"</span><span class="hljs-operator">&gt;</span>
      <span class="hljs-operator">&lt;</span><span class="hljs-title">Header</span> <span class="hljs-operator">/</span><span class="hljs-operator">&gt;</span>
     <span class="hljs-operator">&lt;</span><span class="hljs-title">div</span> <span class="hljs-title">className</span><span class="hljs-operator">=</span><span class="hljs-string">"container"</span><span class="hljs-operator">&gt;</span>
        <span class="hljs-operator">&lt;</span><span class="hljs-title">Body</span> <span class="hljs-operator">/</span><span class="hljs-operator">&gt;</span>
     <span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span><span class="hljs-title">div</span><span class="hljs-operator">&gt;</span>
     <span class="hljs-operator">&lt;</span><span class="hljs-title">Footer</span> <span class="hljs-operator">/</span><span class="hljs-operator">&gt;</span>
    <span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span><span class="hljs-title">div</span><span class="hljs-operator">&gt;</span>
  );
}

export default App;
</code></pre><h3 id="heading-2-components">2) Components:</h3>
<p>To make an optimized build, we divided our chunks of code into smaller components</p>
<ul>
<li>header.js</li>
<li>body.js</li>
<li>footer.js</li>
</ul>
<h3 id="heading-1-headerjs">1) Header.js</h3>
<p>We just used bootstrap's CSS to get quick start in our styling and our head does the same.</p>
<pre><code>export default () <span class="hljs-operator">=</span><span class="hljs-operator">&gt;</span> {
  <span class="hljs-keyword">return</span>(
      <span class="hljs-operator">&lt;</span>div className<span class="hljs-operator">=</span><span class="hljs-string">"bg-danger"</span><span class="hljs-operator">&gt;</span>
          <span class="hljs-operator">&lt;</span>center<span class="hljs-operator">&gt;</span><span class="hljs-operator">&lt;</span>h1 className<span class="hljs-operator">=</span><span class="hljs-string">"text-white"</span><span class="hljs-operator">&gt;</span><span class="hljs-operator">&amp;</span>lt;YouTube Player <span class="hljs-operator">/</span><span class="hljs-operator">&amp;</span>gt;<span class="hljs-operator">&lt;</span>span style<span class="hljs-operator">=</span>{{fontSize: <span class="hljs-string">"small"</span>}} className<span class="hljs-operator">=</span><span class="hljs-string">"d-inline fontVersion"</span><span class="hljs-operator">&gt;</span>v1<span class="hljs-number">.0</span> by Salman Qureshi<span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>span<span class="hljs-operator">&gt;</span><span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>h1<span class="hljs-operator">&gt;</span><span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>center<span class="hljs-operator">&gt;</span>
      <span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>div<span class="hljs-operator">&gt;</span>
  )
};
</code></pre><h3 id="heading-2-bodyjs">2. Body.js</h3>
<p>This is our core engine which does all the required part.</p>
<ul>
<li><p><strong>For state management</strong>
We used useState() hooks</p>
</li>
<li><p><strong>To get YouTube videos</strong>
We used official YouTube API v3, its free and easy to get your client API credentials. You can know more about YouTube API here 👉 <a target="_blank" href="https://developers.google.com/youtube/v3">YouTube API</a></p>
</li>
<li><p><strong> For asynchronous API Calls</strong>
We used <a target="_blank" href="https://www.npmjs.com/package/axios">axios</a>, axios is powerful alternative of  JavaScript's <em>fetch( )</em>, it gives us flexible and full controll of every http request.</p>
</li>
</ul>
<p><strong>Thats it we're ready to go 🏃</strong></p>
<pre><code><span class="hljs-keyword">import</span> <span class="hljs-title">React</span>, {<span class="hljs-title">useState</span>} <span class="hljs-title"><span class="hljs-keyword">from</span></span> <span class="hljs-string">'react'</span>
<span class="hljs-title"><span class="hljs-keyword">import</span></span> <span class="hljs-title">axios</span> <span class="hljs-title"><span class="hljs-keyword">from</span></span> <span class="hljs-string">'axios'</span>
<span class="hljs-title"><span class="hljs-keyword">import</span></span> <span class="hljs-title">ReactPlayer</span> <span class="hljs-title"><span class="hljs-keyword">from</span></span> <span class="hljs-string">'react-player/youtube'</span>

<span class="hljs-title"><span class="hljs-keyword">import</span></span> <span class="hljs-title">PythonImg</span> <span class="hljs-title"><span class="hljs-keyword">from</span></span> <span class="hljs-string">"./../imgs/python.png"</span>
<span class="hljs-title"><span class="hljs-keyword">import</span></span> <span class="hljs-title">ReactImg</span> <span class="hljs-title"><span class="hljs-keyword">from</span></span> <span class="hljs-string">"./../imgs/reactjs.jpg"</span>
<span class="hljs-title"><span class="hljs-keyword">import</span></span> <span class="hljs-title">ReactNativeImg</span> <span class="hljs-title"><span class="hljs-keyword">from</span></span> <span class="hljs-string">"./../imgs/reactnative.png"</span>
<span class="hljs-title"><span class="hljs-keyword">import</span></span> <span class="hljs-title">GraphQLImg</span> <span class="hljs-title"><span class="hljs-keyword">from</span></span> <span class="hljs-string">"./../imgs/graphql.png"</span>
<span class="hljs-title"><span class="hljs-keyword">import</span></span> <span class="hljs-title">JSImg</span> <span class="hljs-title"><span class="hljs-keyword">from</span></span> <span class="hljs-string">"./../imgs/javascript.png"</span>
<span class="hljs-title"><span class="hljs-keyword">import</span></span> <span class="hljs-title">NodeImg</span> <span class="hljs-title"><span class="hljs-keyword">from</span></span> <span class="hljs-string">"./../imgs/nodejs.png"</span>
<span class="hljs-title"><span class="hljs-keyword">import</span></span> <span class="hljs-title">DenoImg</span> <span class="hljs-title"><span class="hljs-keyword">from</span></span> <span class="hljs-string">"./../imgs/deno.svg"</span>
<span class="hljs-title"><span class="hljs-keyword">import</span></span> <span class="hljs-title">TSImg</span> <span class="hljs-title"><span class="hljs-keyword">from</span></span> <span class="hljs-string">"./../imgs/typescript.png"</span>
<span class="hljs-title"><span class="hljs-keyword">import</span></span> <span class="hljs-title">DockerImg</span> <span class="hljs-title"><span class="hljs-keyword">from</span></span> <span class="hljs-string">"./../imgs/docker.png"</span>

<span class="hljs-title">export</span> <span class="hljs-title">default</span> () <span class="hljs-operator">=</span><span class="hljs-operator">&gt;</span> {
    <span class="hljs-title">const</span> [<span class="hljs-title">data</span>, <span class="hljs-title">setData</span>] <span class="hljs-operator">=</span> <span class="hljs-title">useState</span>(<span class="hljs-string">''</span>);
    const [searchBoxFlag, setSearchBoxFlag] <span class="hljs-operator">=</span> useState(<span class="hljs-literal">false</span>);
    const [skills, setSkills] <span class="hljs-operator">=</span> useState(<span class="hljs-string">"Select a skill to load tutorial"</span>);
    const [playlistResponse, setPlaylistResponse] <span class="hljs-operator">=</span> useState([]);
    const [currentVideo, setCurrentvideo] <span class="hljs-operator">=</span> useState(<span class="hljs-string">''</span>);
    const [title, setTitle] <span class="hljs-operator">=</span> useState(<span class="hljs-string">'Click n the video title from the play list to begin with'</span>);
    const [description, setDescription] <span class="hljs-operator">=</span> useState(<span class="hljs-string">'Select a video'</span>);


    const [print,setPrint]<span class="hljs-operator">=</span>useState(<span class="hljs-literal">false</span>)
    const [btnState,setBtnState]<span class="hljs-operator">=</span>useState(<span class="hljs-literal">true</span>)
    const [space,setSpace]<span class="hljs-operator">=</span>useState(<span class="hljs-literal">false</span>)
    const [apPlaylistAPI]<span class="hljs-operator">=</span>useState(<span class="hljs-string">'loading...'</span>)
    const [buffer,setBuffer]<span class="hljs-operator">=</span>useState(<span class="hljs-string">'Enter Domain Name To Get Details....'</span>)
    const [showDomain, setDomain] <span class="hljs-operator">=</span> useState(<span class="hljs-string">''</span>)

<span class="hljs-comment">// Function For Saving text to state</span>
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">getData</span>(<span class="hljs-params">val</span>)</span>{
    <span class="hljs-comment">// console.warn(val.target.value)</span>
    setData(val.target.<span class="hljs-built_in">value</span>)
    <span class="hljs-keyword">if</span>(data <span class="hljs-operator">!</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-string">''</span>){
        setBtnState(<span class="hljs-literal">false</span>)
    }
    <span class="hljs-keyword">if</span>(data <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-string">''</span>){
        setBtnState(<span class="hljs-literal">true</span>)
    }
    setPrint(<span class="hljs-literal">false</span>)
}
<span class="hljs-comment">// Send data to API server</span>
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">submitData</span>(<span class="hljs-params"></span>)</span>{

    <span class="hljs-keyword">if</span>(data <span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-string">''</span>){
        <span class="hljs-comment">// setBtnState(true)</span>
        alert(<span class="hljs-string">"Text box can't be empty!"</span>)
    }
    <span class="hljs-keyword">else</span>{
        setSearchBoxFlag(<span class="hljs-literal">true</span>)
        console.log(<span class="hljs-string">"correct"</span>);
        <span class="hljs-comment">// setData(''); //clear state buffer for user</span>
        <span class="hljs-comment">// Send data to API</span>
        <span class="hljs-comment">// var newUrl = </span>

        <span class="hljs-comment">// Set loading gif after click</span>
        setSpace(<span class="hljs-literal">false</span>)
        <span class="hljs-comment">// setBuffer(&lt;img src={preloader} alt="Preloader" /&gt;)</span>
        console.log(<span class="hljs-string">"clicked"</span>);
        axios.get(<span class="hljs-string">'https://www.googleapis.com/youtube/v3/search?part=snippet&amp;key=AIzaSyBWLybXWaAdV7-7tlm9aClkSPiPAdm7boA&amp;type=video&amp;maxResults=20&amp;q='</span> <span class="hljs-operator">+</span>data)
            .then((response) <span class="hljs-operator">=</span><span class="hljs-operator">&gt;</span> {
                <span class="hljs-comment">// console.log(response.data);</span>

                setPlaylistResponse(response.data.items);


            });
    }


}

    <span class="hljs-comment">// buttons</span>

    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">submitSkillButton</span>(<span class="hljs-params">skill</span>)</span>{
        setSkills(skill)
        setSearchBoxFlag(<span class="hljs-literal">false</span>)
        <span class="hljs-keyword">var</span> playlistId <span class="hljs-operator">=</span> <span class="hljs-string">''</span>;
        <span class="hljs-keyword">if</span>(skill <span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-string">'python'</span>){
            playlistId <span class="hljs-operator">=</span> <span class="hljs-string">"PLsyeobzWxl7poL9JTVyndKe62ieoN-MZ3"</span>
        }
        <span class="hljs-keyword">if</span>(skill <span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-string">'reactjs'</span>){
            playlistId <span class="hljs-operator">=</span> <span class="hljs-string">"PL4cUxeGkcC9ij8CfkAY2RAGb-tmkNwQHG"</span>
        }
        <span class="hljs-keyword">if</span>(skill <span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-string">'reactnative'</span>){
            playlistId <span class="hljs-operator">=</span> <span class="hljs-string">"PL4cUxeGkcC9ixPU-QkScoRBVxtPPzVjrQ"</span>
        }
        <span class="hljs-keyword">if</span>(skill <span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-string">'graphql'</span>){
            playlistId <span class="hljs-operator">=</span> <span class="hljs-string">"PL4cUxeGkcC9iK6Qhn-QLcXCXPQUov1U7f"</span>
        }
        <span class="hljs-keyword">if</span>(skill <span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-string">'javascript'</span>){
            playlistId <span class="hljs-operator">=</span> <span class="hljs-string">"PL4cUxeGkcC9i9Ae2D9Ee1RvylH38dKuET"</span>
        }
        <span class="hljs-keyword">if</span>(skill <span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-string">'nodejs'</span>){
            playlistId <span class="hljs-operator">=</span> <span class="hljs-string">"PLillGF-RfqbYRpji8t4SxUkMxfowG4Kqp"</span>
        }
        <span class="hljs-keyword">if</span>(skill <span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-string">'deno'</span>){
            playlistId <span class="hljs-operator">=</span> <span class="hljs-string">"PL4cUxeGkcC9gnaJdxuGvEGYQ9iHb8mxsh"</span>
        }
        <span class="hljs-keyword">if</span>(skill <span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-string">'typescript'</span>){
            playlistId <span class="hljs-operator">=</span> <span class="hljs-string">"PL4cUxeGkcC9gUgr39Q_yD6v-bSyMwKPUI"</span>
        }
        <span class="hljs-keyword">if</span>(skill <span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-string">'docker'</span>){
            playlistId <span class="hljs-operator">=</span> <span class="hljs-string">"PLhW3qG5bs-L99pQsZ74f-LC-tOEsBp2rK"</span>
        }

        console.log(<span class="hljs-string">"Python button clicked!"</span>);
        axios.get(<span class="hljs-string">'https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&amp;maxResults=100&amp;key=AIzaSyBWLybXWaAdV7-7tlm9aClkSPiPAdm7boA&amp;playlistId='</span> <span class="hljs-operator">+</span>playlistId)
            .then((response) <span class="hljs-operator">=</span><span class="hljs-operator">&gt;</span> {

                setPlaylistResponse(response.data.items);

                console.log(<span class="hljs-string">"inside skills image"</span>);



            });

    }


    <span class="hljs-comment">//next video of playlist</span>

    <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">nextVideo</span>(<span class="hljs-params">nextVideo, title, description</span>)</span>{
        setTitle(title)
        setDescription(description)
        setCurrentvideo(<span class="hljs-string">"https://www.youtube.com/watch?v="</span><span class="hljs-operator">+</span>nextVideo)
        <span class="hljs-comment">// console.log(description);</span>
    }


    <span class="hljs-keyword">return</span>(
        <span class="hljs-operator">&lt;</span>div className<span class="hljs-operator">=</span><span class="hljs-string">"bg-secon"</span><span class="hljs-operator">&gt;</span>

            <span class="hljs-operator">&lt;</span>center<span class="hljs-operator">&gt;</span><span class="hljs-operator">&lt;</span>small className<span class="hljs-operator">=</span><span class="hljs-string">"text-black"</span><span class="hljs-operator">&gt;</span>Welcome To Distraction Free Youtube Learning Experience 👓<span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>small<span class="hljs-operator">&gt;</span>
                <span class="hljs-operator">&lt;</span>h1 className<span class="hljs-operator">=</span><span class="hljs-string">"text-danger"</span><span class="hljs-operator">&gt;</span>What Do You Wanna Learn Today?<span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>h1<span class="hljs-operator">&gt;</span><span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>center<span class="hljs-operator">&gt;</span>
            <span class="hljs-operator">&lt;</span>center<span class="hljs-operator">&gt;</span><span class="hljs-operator">&lt;</span>div className<span class="hljs-operator">=</span><span class="hljs-string">"my-2"</span><span class="hljs-operator">&gt;</span>
                        <span class="hljs-operator">&lt;</span>img
                            className<span class="hljs-operator">=</span><span class="hljs-string">"pointer skill-img mx-1"</span>
                            style<span class="hljs-operator">=</span>{{width: <span class="hljs-string">"80px"</span>}}
                            src<span class="hljs-operator">=</span>{PythonImg}
                            onClick<span class="hljs-operator">=</span>{() <span class="hljs-operator">=</span><span class="hljs-operator">&gt;</span> {submitSkillButton(<span class="hljs-string">'python'</span>)}} <span class="hljs-operator">/</span><span class="hljs-operator">&gt;</span>

                        <span class="hljs-operator">&lt;</span>img
                        className<span class="hljs-operator">=</span><span class="hljs-string">"pointer skill-img mx-1"</span>
                        style<span class="hljs-operator">=</span>{{width: <span class="hljs-string">"80px"</span>}}
                        src<span class="hljs-operator">=</span>{ReactImg}
                        onClick<span class="hljs-operator">=</span>{() <span class="hljs-operator">=</span><span class="hljs-operator">&gt;</span> {submitSkillButton(<span class="hljs-string">'reactjs'</span>)}}
                        <span class="hljs-operator">/</span><span class="hljs-operator">&gt;</span>
                        <span class="hljs-operator">&lt;</span>img
                        className<span class="hljs-operator">=</span><span class="hljs-string">"pointer skill-img mx-1"</span>
                        style<span class="hljs-operator">=</span>{{width: <span class="hljs-string">"80px"</span>}}
                        src<span class="hljs-operator">=</span>{ReactNativeImg}
                        onClick<span class="hljs-operator">=</span>{() <span class="hljs-operator">=</span><span class="hljs-operator">&gt;</span> {submitSkillButton(<span class="hljs-string">'reactnative'</span>)}}
                        <span class="hljs-operator">/</span><span class="hljs-operator">&gt;</span>
                        <span class="hljs-operator">&lt;</span>img
                        className<span class="hljs-operator">=</span><span class="hljs-string">"pointer skill-img mx-1"</span>
                        style<span class="hljs-operator">=</span>{{width: <span class="hljs-string">"80px"</span>}}
                        src<span class="hljs-operator">=</span>{GraphQLImg}
                        onClick<span class="hljs-operator">=</span>{() <span class="hljs-operator">=</span><span class="hljs-operator">&gt;</span> {submitSkillButton(<span class="hljs-string">'graphql'</span>)}}
                        <span class="hljs-operator">/</span><span class="hljs-operator">&gt;</span>
                        <span class="hljs-operator">&lt;</span>img
                        className<span class="hljs-operator">=</span><span class="hljs-string">"pointer skill-img mx-1"</span>
                        style<span class="hljs-operator">=</span>{{width: <span class="hljs-string">"80px"</span>}}
                        src<span class="hljs-operator">=</span>{JSImg}
                        onClick<span class="hljs-operator">=</span>{() <span class="hljs-operator">=</span><span class="hljs-operator">&gt;</span> {submitSkillButton(<span class="hljs-string">'javascript'</span>)}}
                        <span class="hljs-operator">/</span><span class="hljs-operator">&gt;</span>
                        <span class="hljs-operator">&lt;</span>img
                        className<span class="hljs-operator">=</span><span class="hljs-string">"pointer skill-img mx-1"</span>
                        style<span class="hljs-operator">=</span>{{width: <span class="hljs-string">"80px"</span>}}
                        src<span class="hljs-operator">=</span>{NodeImg}
                        onClick<span class="hljs-operator">=</span>{() <span class="hljs-operator">=</span><span class="hljs-operator">&gt;</span> {submitSkillButton(<span class="hljs-string">'nodejs'</span>)}}
                        <span class="hljs-operator">/</span><span class="hljs-operator">&gt;</span>
                        <span class="hljs-operator">&lt;</span>img
                        className<span class="hljs-operator">=</span><span class="hljs-string">"pointer skill-img mx-1"</span>
                        style<span class="hljs-operator">=</span>{{width: <span class="hljs-string">"80px"</span>}}
                        src<span class="hljs-operator">=</span>{DenoImg}
                        onClick<span class="hljs-operator">=</span>{() <span class="hljs-operator">=</span><span class="hljs-operator">&gt;</span> {submitSkillButton(<span class="hljs-string">'deno'</span>)}}
                        <span class="hljs-operator">/</span><span class="hljs-operator">&gt;</span>
                        <span class="hljs-operator">&lt;</span>img
                        className<span class="hljs-operator">=</span><span class="hljs-string">"pointer skill-img mx-1"</span>
                        style<span class="hljs-operator">=</span>{{width: <span class="hljs-string">"80px"</span>}}
                        src<span class="hljs-operator">=</span>{TSImg}
                        onClick<span class="hljs-operator">=</span>{() <span class="hljs-operator">=</span><span class="hljs-operator">&gt;</span> {submitSkillButton(<span class="hljs-string">'typescript'</span>)}}
                        <span class="hljs-operator">/</span><span class="hljs-operator">&gt;</span>
                        <span class="hljs-operator">&lt;</span>img
                        className<span class="hljs-operator">=</span><span class="hljs-string">"pointer skill-img mx-1"</span>
                        style<span class="hljs-operator">=</span>{{width: <span class="hljs-string">"80px"</span>}}
                        src<span class="hljs-operator">=</span>{DockerImg}
                        onClick<span class="hljs-operator">=</span>{() <span class="hljs-operator">=</span><span class="hljs-operator">&gt;</span> {submitSkillButton(<span class="hljs-string">'docker'</span>)}}
                        <span class="hljs-operator">/</span><span class="hljs-operator">&gt;</span>

                    <span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>div<span class="hljs-operator">&gt;</span>
                    <span class="hljs-operator">&lt;</span>h3<span class="hljs-operator">&gt;</span>OR<span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>h3<span class="hljs-operator">&gt;</span>
                    <span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>center<span class="hljs-operator">&gt;</span>

            <span class="hljs-operator">&lt;</span>center<span class="hljs-operator">&gt;</span>
                <span class="hljs-operator">&lt;</span>div className<span class="hljs-operator">=</span><span class="hljs-string">"box"</span> style<span class="hljs-operator">=</span>{{textAign: <span class="hljs-string">"center"</span>}} <span class="hljs-operator">&gt;</span>
                    <span class="hljs-operator">&lt;</span>div className<span class="hljs-operator">=</span><span class="hljs-string">"my-2"</span><span class="hljs-operator">&gt;</span>
                        <span class="hljs-operator">&lt;</span>input <span class="hljs-keyword">type</span><span class="hljs-operator">=</span><span class="hljs-string">"text"</span>
                        placeholder<span class="hljs-operator">=</span><span class="hljs-string">"Machine Learning..."</span>
                        value <span class="hljs-operator">=</span> {data}        
                        onChange<span class="hljs-operator">=</span>{getData}
                        required

                        <span class="hljs-operator">/</span><span class="hljs-operator">&gt;</span>
                    <span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>div<span class="hljs-operator">&gt;</span>
                    <span class="hljs-operator">&lt;</span>div className<span class="hljs-operator">=</span><span class="hljs-string">"my-2"</span><span class="hljs-operator">&gt;</span>
                        <span class="hljs-operator">&lt;</span>button className<span class="hljs-operator">=</span><span class="hljs-string">"btn-danger"</span>
                        disabled <span class="hljs-operator">=</span> {btnState}
                        onClick<span class="hljs-operator">=</span>{() <span class="hljs-operator">=</span><span class="hljs-operator">&gt;</span> {submitData()}}
                        <span class="hljs-operator">&gt;</span>Go<span class="hljs-operator">!</span><span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>button<span class="hljs-operator">&gt;</span>
                    <span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>div<span class="hljs-operator">&gt;</span>
                <span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>div<span class="hljs-operator">&gt;</span>
            <span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>center<span class="hljs-operator">&gt;</span>

            {<span class="hljs-comment">/* main player  */</span>}{
            searchBoxFlag ?


                    <span class="hljs-operator">&lt;</span>div className<span class="hljs-operator">=</span><span class="hljs-string">"mainPlayer row"</span><span class="hljs-operator">&gt;</span>
                        <span class="hljs-operator">&lt;</span>h1 style<span class="hljs-operator">=</span>{{textAlign: <span class="hljs-string">"center"</span>}}<span class="hljs-operator">&gt;</span>Search Results For: {data}<span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>h1<span class="hljs-operator">&gt;</span>
                <span class="hljs-operator">&lt;</span>div className<span class="hljs-operator">=</span><span class="hljs-string">"col-md-8 py-4 embed-responsive embed-responsive-4by3"</span> style<span class="hljs-operator">=</span>{{backgroundColor: <span class="hljs-string">"#fcfcfc"</span>}}<span class="hljs-operator">&gt;</span>

                <span class="hljs-operator">&lt;</span>center<span class="hljs-operator">&gt;</span>
                    <span class="hljs-operator">&lt;</span>ReactPlayer
                    className<span class="hljs-operator">=</span><span class="hljs-string">"align-self-baseline"</span>
                    url<span class="hljs-operator">=</span>{currentVideo}
                    controls
                    light
                    width<span class="hljs-operator">=</span><span class="hljs-string">"100%"</span>
                    onEnded<span class="hljs-operator">=</span>{() <span class="hljs-operator">=</span><span class="hljs-operator">&gt;</span> {alert(<span class="hljs-string">"video ended!"</span>)}}
                    <span class="hljs-operator">/</span><span class="hljs-operator">&gt;</span>


                    {<span class="hljs-comment">/* &lt;button onClick={() =&gt; {nextVideo()}}&gt;Next Video&lt;/button&gt; */</span>}
                    <span class="hljs-operator">&lt;</span>h3<span class="hljs-operator">&gt;</span>{title}<span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>h3<span class="hljs-operator">&gt;</span>
                    <span class="hljs-operator">&lt;</span>hr <span class="hljs-operator">/</span><span class="hljs-operator">&gt;</span>
                    <span class="hljs-operator">&lt;</span>pre<span class="hljs-operator">&gt;</span>{description}<span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>pre<span class="hljs-operator">&gt;</span>
                <span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>center<span class="hljs-operator">&gt;</span>
                <span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>div<span class="hljs-operator">&gt;</span>


                <span class="hljs-operator">&lt;</span>div className<span class="hljs-operator">=</span><span class="hljs-string">"col-md-4 overflow-auto"</span> style<span class="hljs-operator">=</span>{{height: <span class="hljs-string">"500px"</span>}}<span class="hljs-operator">&gt;</span>
                    {playlistResponse.<span class="hljs-built_in">length</span>}

                    {playlistResponse.map(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">d, idx</span>)</span>{
                        <span class="hljs-keyword">return</span> (<span class="hljs-operator">&lt;</span>div className<span class="hljs-operator">=</span><span class="hljs-string">"playlistBox"</span> key<span class="hljs-operator">=</span>{idx}<span class="hljs-operator">&gt;</span>
                                    {}
                                <span class="hljs-operator">&lt;</span>div className<span class="hljs-operator">=</span><span class="hljs-string">"d-flex flex-row pointer"</span> onClick<span class="hljs-operator">=</span>{() <span class="hljs-operator">=</span><span class="hljs-operator">&gt;</span> nextVideo(d.id.videoId, d.snippet.title, d.snippet.description)}<span class="hljs-operator">&gt;</span>
                                    <span class="hljs-operator">&lt;</span>div className<span class="hljs-operator">=</span><span class="hljs-string">"p-2"</span><span class="hljs-operator">&gt;</span>
                                        <span class="hljs-operator">&lt;</span>img src<span class="hljs-operator">=</span>{d.snippet.thumbnails.default.url} className<span class="hljs-operator">=</span><span class="hljs-string">"media-object"</span> <span class="hljs-operator">/</span><span class="hljs-operator">&gt;</span>
                                    <span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>div<span class="hljs-operator">&gt;</span>
                                    <span class="hljs-operator">&lt;</span>div className<span class="hljs-operator">=</span><span class="hljs-string">"p-2"</span><span class="hljs-operator">&gt;</span>
                                        <span class="hljs-operator">&lt;</span>p className<span class="hljs-operator">=</span><span class="hljs-string">"display media-heading"</span><span class="hljs-operator">&gt;</span>{idx<span class="hljs-operator">+</span><span class="hljs-number">1</span>}) {d.snippet.title}<span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>p<span class="hljs-operator">&gt;</span>

                                    <span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>div<span class="hljs-operator">&gt;</span>
                                <span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>div<span class="hljs-operator">&gt;</span>
                                <span class="hljs-operator">&lt;</span>hr <span class="hljs-operator">/</span><span class="hljs-operator">&gt;</span>

                        <span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>div<span class="hljs-operator">&gt;</span>)
                    })}

                <span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>div<span class="hljs-operator">&gt;</span>

            <span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>div<span class="hljs-operator">&gt;</span>


                    :
            <span class="hljs-operator">&lt;</span>div className<span class="hljs-operator">=</span><span class="hljs-string">"mainPlayer row"</span><span class="hljs-operator">&gt;</span>

                <span class="hljs-operator">&lt;</span>div className<span class="hljs-operator">=</span><span class="hljs-string">"col-md-8 py-4 embed-responsive embed-responsive-4by3"</span> style<span class="hljs-operator">=</span>{{backgroundColor: <span class="hljs-string">"#fcfcfc"</span>}}<span class="hljs-operator">&gt;</span>
                {<span class="hljs-comment">/* // Render a YouTube video player */</span>}
                <span class="hljs-operator">&lt;</span>h3 style<span class="hljs-operator">=</span>{{textAlign: <span class="hljs-string">"center"</span>}}<span class="hljs-operator">&gt;</span>{skills}<span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>h3<span class="hljs-operator">&gt;</span>

                <span class="hljs-operator">&lt;</span>center<span class="hljs-operator">&gt;</span>
                    <span class="hljs-operator">&lt;</span>ReactPlayer
                    className<span class="hljs-operator">=</span><span class="hljs-string">"align-self-baseline"</span>
                    url<span class="hljs-operator">=</span>{currentVideo}
                    controls
                    width<span class="hljs-operator">=</span><span class="hljs-string">"100%"</span>
                    onEnded<span class="hljs-operator">=</span>{() <span class="hljs-operator">=</span><span class="hljs-operator">&gt;</span> {alert(<span class="hljs-string">"Congratulations! You Have Completed This Module! Keep Learning and growing 👍"</span>)}}
                    <span class="hljs-operator">/</span><span class="hljs-operator">&gt;</span>


                    {<span class="hljs-comment">/* &lt;button onClick={() =&gt; {nextVideo()}}&gt;Next Video&lt;/button&gt; */</span>}
                    <span class="hljs-operator">&lt;</span>h3<span class="hljs-operator">&gt;</span>{title}<span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>h3<span class="hljs-operator">&gt;</span>
                    <span class="hljs-operator">&lt;</span>hr <span class="hljs-operator">/</span><span class="hljs-operator">&gt;</span>
                    <span class="hljs-operator">&lt;</span>pre<span class="hljs-operator">&gt;</span>{description}<span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>pre<span class="hljs-operator">&gt;</span>
                <span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>center<span class="hljs-operator">&gt;</span>
                <span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>div<span class="hljs-operator">&gt;</span>


                <span class="hljs-operator">&lt;</span>div className<span class="hljs-operator">=</span><span class="hljs-string">"col-md-4 overflow-auto"</span> style<span class="hljs-operator">=</span>{{height: <span class="hljs-string">"500px"</span>}}<span class="hljs-operator">&gt;</span>
                    <span class="hljs-operator">&lt;</span>p className<span class="hljs-operator">=</span><span class="hljs-string">"bg-danger"</span> style<span class="hljs-operator">=</span>{{textAlign: <span class="hljs-string">"center"</span>}}<span class="hljs-operator">&gt;</span>Total items: {playlistResponse.<span class="hljs-built_in">length</span>}<span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>p<span class="hljs-operator">&gt;</span>

                    {playlistResponse.map(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">d, idx</span>)</span>{
                        <span class="hljs-keyword">return</span> (<span class="hljs-operator">&lt;</span>div className<span class="hljs-operator">=</span><span class="hljs-string">"playlistBox"</span> key<span class="hljs-operator">=</span>{idx}<span class="hljs-operator">&gt;</span>
                                    {}
                                <span class="hljs-operator">&lt;</span>div className<span class="hljs-operator">=</span><span class="hljs-string">"d-flex flex-row pointer"</span> onClick<span class="hljs-operator">=</span>{() <span class="hljs-operator">=</span><span class="hljs-operator">&gt;</span> nextVideo(d.snippet.resourceId.videoId, d.snippet.title, d.snippet.description)}<span class="hljs-operator">&gt;</span>
                                    <span class="hljs-operator">&lt;</span>div className<span class="hljs-operator">=</span><span class="hljs-string">"p-2"</span><span class="hljs-operator">&gt;</span>
                                        <span class="hljs-operator">&lt;</span>img src<span class="hljs-operator">=</span>{d.snippet.thumbnails.default.url} className<span class="hljs-operator">=</span><span class="hljs-string">"media-object"</span> <span class="hljs-operator">/</span><span class="hljs-operator">&gt;</span>
                                    <span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>div<span class="hljs-operator">&gt;</span>
                                    <span class="hljs-operator">&lt;</span>div className<span class="hljs-operator">=</span><span class="hljs-string">"p-2"</span><span class="hljs-operator">&gt;</span>
                                        <span class="hljs-operator">&lt;</span>p className<span class="hljs-operator">=</span><span class="hljs-string">"display media-heading"</span><span class="hljs-operator">&gt;</span>{idx<span class="hljs-operator">+</span><span class="hljs-number">1</span>}) {d.snippet.title}<span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>p<span class="hljs-operator">&gt;</span>
                                        {<span class="hljs-comment">/* &lt;p&gt;{d.snippet.description}&lt;/p&gt; */</span>}
                                    <span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>div<span class="hljs-operator">&gt;</span>
                                <span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>div<span class="hljs-operator">&gt;</span>
                                <span class="hljs-operator">&lt;</span>hr <span class="hljs-operator">/</span><span class="hljs-operator">&gt;</span>

                        <span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>div<span class="hljs-operator">&gt;</span>)
                    })}

                <span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>div<span class="hljs-operator">&gt;</span>

            <span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>div<span class="hljs-operator">&gt;</span>
            }






        <span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>div<span class="hljs-operator">&gt;</span>
    )
  };
</code></pre><blockquote>
<p>If you made till here, I am glad to inform you that we have covered the most of the part and left with only footer.js which only contain meta data about our app and author credits and isn't necessary for the operation of our APP, you can replace footer by your own.</p>
</blockquote>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://giphy.com/gifs/excited-screaming-jonah-hill-5GoVLqeAOo6PK">https://giphy.com/gifs/excited-screaming-jonah-hill-5GoVLqeAOo6PK</a></div>
<p><strong>Here we go</strong></p>
<h3 id="heading-3-footerjs">3. Footer.js:</h3>
<p>I first decided not to include footer on this article but I kept it for reference point of view.</p>
<pre><code>export default <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">Footer</span>(<span class="hljs-params"></span>)</span>{

<span class="hljs-keyword">return</span>(
<span class="hljs-operator">&lt;</span>div<span class="hljs-operator">&gt;</span>
      <span class="hljs-operator">&lt;</span>div class<span class="hljs-operator">=</span><span class="hljs-string">"container"</span><span class="hljs-operator">&gt;</span>
            <span class="hljs-operator">&lt;</span>div class<span class="hljs-operator">=</span><span class="hljs-string">"m-4"</span><span class="hljs-operator">&gt;</span>
                  <span class="hljs-operator">&lt;</span>p<span class="hljs-operator">&gt;</span>Platform Developed By Salman Qureshi<span class="hljs-operator">!</span> This <span class="hljs-keyword">is</span> beta version and other courses will be updated soon<span class="hljs-operator">!</span><span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>p<span class="hljs-operator">&gt;</span>
                  <span class="hljs-operator">&lt;</span>h3<span class="hljs-operator">&gt;</span>Features:<span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>h3<span class="hljs-operator">&gt;</span>
                  <span class="hljs-operator">&lt;</span>ol<span class="hljs-operator">&gt;</span>
                        <span class="hljs-operator">&lt;</span>li<span class="hljs-operator">&gt;</span>Distraction Free Youtube Learning<span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>li<span class="hljs-operator">&gt;</span>
                        <span class="hljs-operator">&lt;</span>li<span class="hljs-operator">&gt;</span>2x page optimization speed<span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>li<span class="hljs-operator">&gt;</span>
                        <span class="hljs-operator">&lt;</span>li<span class="hljs-operator">&gt;</span>Lite Version<span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>li<span class="hljs-operator">&gt;</span>
                        <span class="hljs-operator">&lt;</span>li<span class="hljs-operator">&gt;</span>Focused Learning<span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>li<span class="hljs-operator">&gt;</span>
                  <span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>ol<span class="hljs-operator">&gt;</span>
                  <span class="hljs-operator">&lt;</span>h3<span class="hljs-operator">&gt;</span>Future Goals:<span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>h3<span class="hljs-operator">&gt;</span>
                  <span class="hljs-operator">&lt;</span>ol<span class="hljs-operator">&gt;</span>
                        <span class="hljs-operator">&lt;</span>li<span class="hljs-operator">&gt;</span>User Base Personalization(Statefull)<span class="hljs-operator">-</span>will need your cookies :)<span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>li<span class="hljs-operator">&gt;</span>
                        <span class="hljs-operator">&lt;</span>li<span class="hljs-operator">&gt;</span>Dedicated Account <span class="hljs-keyword">for</span> each user<span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>li<span class="hljs-operator">&gt;</span>
                        <span class="hljs-operator">&lt;</span>li<span class="hljs-operator">&gt;</span>Course Completion Tracking<span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>li<span class="hljs-operator">&gt;</span>
                        <span class="hljs-operator">&lt;</span>li<span class="hljs-operator">&gt;</span>....many more ❤ (P.S: I am out of ideas <span class="hljs-keyword">if</span> you have one, inform me 😊<span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>li<span class="hljs-operator">&gt;</span>
                  <span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>ol<span class="hljs-operator">&gt;</span>
            <span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>div<span class="hljs-operator">&gt;</span>

      <span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>div<span class="hljs-operator">&gt;</span>
      <span class="hljs-operator">&lt;</span>center<span class="hljs-operator">&gt;</span>Source Code: <span class="hljs-operator">&lt;</span>a href<span class="hljs-operator">=</span><span class="hljs-string">"https://github.com/hotheadhacker/youtube-player"</span> target<span class="hljs-operator">=</span><span class="hljs-string">"_BLANK"</span><span class="hljs-operator">&gt;</span>hotheadhacker<span class="hljs-operator">/</span>youtube<span class="hljs-operator">-</span>player<span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>a<span class="hljs-operator">&gt;</span><span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>center<span class="hljs-operator">&gt;</span>
<span class="hljs-operator">&lt;</span>footer className<span class="hljs-operator">=</span><span class="hljs-string">"footer mt-2 bg-danger"</span><span class="hljs-operator">&gt;</span>
       <span class="hljs-operator">&lt;</span>h3<span class="hljs-operator">&gt;</span>Designed by 😆 <span class="hljs-operator">&lt;</span>a href<span class="hljs-operator">=</span><span class="hljs-string">"https://isalman.xyz"</span><span class="hljs-operator">&gt;</span>Salman Qureshi<span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>a<span class="hljs-operator">&gt;</span><span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>h3<span class="hljs-operator">&gt;</span>
       <span class="hljs-operator">&lt;</span>p<span class="hljs-operator">&gt;</span>
       <span class="hljs-operator">&lt;</span>a href<span class="hljs-operator">=</span><span class="hljs-string">"https://github.com/hotheadhacker"</span> target<span class="hljs-operator">=</span><span class="hljs-string">"_BLANK"</span><span class="hljs-operator">&gt;</span><span class="hljs-operator">&lt;</span>i className<span class="hljs-operator">=</span><span class="hljs-string">"fab fa-github fa-2x mx-2 github"</span><span class="hljs-operator">&gt;</span><span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>i<span class="hljs-operator">&gt;</span><span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>a<span class="hljs-operator">&gt;</span>
       <span class="hljs-operator">&lt;</span>a href<span class="hljs-operator">=</span><span class="hljs-string">"https://twitter.com/salmanually"</span> target<span class="hljs-operator">=</span><span class="hljs-string">"_BLANK"</span><span class="hljs-operator">&gt;</span><span class="hljs-operator">&lt;</span>i className<span class="hljs-operator">=</span><span class="hljs-string">"fab fa-twitter fa-2x mx-2 twitter"</span><span class="hljs-operator">&gt;</span><span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>i<span class="hljs-operator">&gt;</span><span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>a<span class="hljs-operator">&gt;</span>
       <span class="hljs-operator">&lt;</span>a href<span class="hljs-operator">=</span><span class="hljs-string">"https://instagram.com/salmanually"</span> target<span class="hljs-operator">=</span><span class="hljs-string">"_BLANK"</span><span class="hljs-operator">&gt;</span><span class="hljs-operator">&lt;</span>i className<span class="hljs-operator">=</span><span class="hljs-string">"fab fa-instagram fa-2x mx-2 instagram"</span><span class="hljs-operator">&gt;</span><span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>i<span class="hljs-operator">&gt;</span><span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>a<span class="hljs-operator">&gt;</span>
       <span class="hljs-operator">&lt;</span>a href<span class="hljs-operator">=</span><span class="hljs-string">"https://isalman.dev"</span> target<span class="hljs-operator">=</span><span class="hljs-string">"_BLANK"</span><span class="hljs-operator">&gt;</span><span class="hljs-operator">&lt;</span>i className<span class="hljs-operator">=</span><span class="hljs-string">"fas fa-mouse-pointer fa-2x mx-2 website"</span><span class="hljs-operator">&gt;</span><span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>i<span class="hljs-operator">&gt;</span><span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>a<span class="hljs-operator">&gt;</span>
       <span class="hljs-operator">&lt;</span>a href<span class="hljs-operator">=</span><span class="hljs-string">"mailto:isalmanqureshi@gmail.com"</span> target<span class="hljs-operator">=</span><span class="hljs-string">"_BLANK"</span><span class="hljs-operator">&gt;</span><span class="hljs-operator">&lt;</span>i className<span class="hljs-operator">=</span><span class="hljs-string">"fas fa-envelope fa-2x mx-2 email"</span><span class="hljs-operator">&gt;</span><span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>i<span class="hljs-operator">&gt;</span><span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>a<span class="hljs-operator">&gt;</span>
       <span class="hljs-operator">&lt;</span>a href<span class="hljs-operator">=</span><span class="hljs-string">"https://blog.isalman.xyz"</span> target<span class="hljs-operator">=</span><span class="hljs-string">"_BLANK"</span><span class="hljs-operator">&gt;</span><span class="hljs-operator">&lt;</span>i className<span class="hljs-operator">=</span><span class="hljs-string">"fas fa-blog fa-2x mx-2 blog"</span><span class="hljs-operator">&gt;</span><span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>i<span class="hljs-operator">&gt;</span><span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>a<span class="hljs-operator">&gt;</span>
       <span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>p<span class="hljs-operator">&gt;</span>
      <span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>footer<span class="hljs-operator">&gt;</span><span class="hljs-operator">&lt;</span><span class="hljs-operator">/</span>div<span class="hljs-operator">&gt;</span>
)
}
</code></pre><h3 id="heading-we-have-deployed-our-app-on-netlify">We have deployed our app on Netlify:</h3>
<p>Here is the live preview of our app 👉
<a target="_blank" href="https://yt-player-awesome.netlify.app/">YouTube APP</a></p>
<blockquote>
<p>There are some files and project structure I have not discussed, for that I will leave my full GitHub repo containg all of the code required for this project below👇👇👇.</p>
</blockquote>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://github.com/hotheadhacker/youtube-player">https://github.com/hotheadhacker/youtube-player</a></div>
]]></content:encoded></item><item><title><![CDATA[How To Develop Your Own Built-With Tool & Deploy It: Step-By-Step]]></title><description><![CDATA[Hello again this time I am back with the idea that we can develop own system that can do reverse engineering to any website and in return can provide you all the details and information how that website is built what technologies do the use and what ...]]></description><link>https://blog.isalman.dev/how-to-develop-your-own-built-with-tool-and-deploy-it-step-by-step</link><guid isPermaLink="true">https://blog.isalman.dev/how-to-develop-your-own-built-with-tool-and-deploy-it-step-by-step</guid><category><![CDATA[Python]]></category><category><![CDATA[React]]></category><category><![CDATA[APIs]]></category><dc:creator><![CDATA[Salman Qureshi]]></dc:creator><pubDate>Thu, 27 May 2021 07:59:06 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1622102254597/-X-1Zz_JC.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="hello-again-this-time-i-am-back-with-the-idea-that-we-can-develop-own-system-that-can-do-reverse-engineering-to-any-website-and-in-return-can-provide-you-all-the-details-and-information-how-that-website-is-built-what-technologies-do-the-use-and-what-are-their-tech-stack">Hello again this time I am back with the idea that we can develop own system that can do reverse engineering to any website and in return can provide you all the details and information how that website is built what technologies do the use and what are their tech stack.</h2>
<p><em>This tutorial is based on python programming language and I will be discussing the tools that can we use to make your on website analyser.</em></p>
<p>1) <a target="_blank" href="https://pypi.org/project/builtwith/">built-with</a>: this is the tool that we are going to use to receive information about tech stacks of the website and it's just when being called IT returns the object containing all information about the website it's little bit slow but can be optimised according to the taste.</p>
<p>2) <a target="_blank" href="https://fastapi.tiangolo.com/">fastAPI</a>: we use this to serve our application.</p>
<p>3) ReactJS: this app is for those who just wanna go ahead and create their own front and so that where users can submit the website of which divine get details and on receiving can get the details about the website.</p>
<p>This is how our '<code>main.py</code> looks like:
<strong><em>The value of our API</em></strong></p>
<pre><code><span class="hljs-keyword">from</span> fastapi <span class="hljs-keyword">import</span> FastAPI
<span class="hljs-keyword">import</span> builtwith
<span class="hljs-keyword">from</span> fastapi.middleware.cors <span class="hljs-keyword">import</span> CORSMiddleware
<span class="hljs-keyword">from</span> fastapi.encoders <span class="hljs-keyword">import</span> jsonable_encoder
<span class="hljs-keyword">from</span> fastapi.responses <span class="hljs-keyword">import</span> JSONResponse
<span class="hljs-keyword">from</span> pydantic <span class="hljs-keyword">import</span> BaseModel
<span class="hljs-keyword">import</span> json

app = FastAPI()

<span class="hljs-comment"># CORS origin fix</span>
<span class="hljs-string">''' For specific domains '''</span>
<span class="hljs-comment"># origins = [</span>
<span class="hljs-comment">#     "http://localhost.tiangolo.com",</span>
<span class="hljs-comment">#     "https://localhost.tiangolo.com",</span>
<span class="hljs-comment">#     "http://localhost",</span>
<span class="hljs-comment">#     "http://localhost:8080",</span>
<span class="hljs-comment">#     "http://localhost:3000v"</span>
<span class="hljs-comment"># ]</span>

app.add_middleware(
    CORSMiddleware,
    allow_origins=[<span class="hljs-string">"*"</span>],
    allow_credentials=<span class="hljs-literal">True</span>,
    allow_methods=[<span class="hljs-string">"*"</span>],
    allow_headers=[<span class="hljs-string">"*"</span>],
)

<span class="hljs-comment"># How to page</span>
<span class="hljs-meta">@app.get("/")</span>
<span class="hljs-keyword">async</span> <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">root</span>():</span>
    <span class="hljs-keyword">return</span> {<span class="hljs-string">"message"</span>: <span class="hljs-string">"Hello World"</span>}

<span class="hljs-comment"># Main Handler For API</span>
<span class="hljs-meta">@app.get("/get/{url}")</span>
<span class="hljs-keyword">async</span> <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">root</span>(<span class="hljs-params">url: str</span>):</span>
    newUrl = <span class="hljs-string">'http://'</span> + url
    print(newUrl)

    data = builtwith.builtwith(newUrl)

    <span class="hljs-keyword">return</span> JSONResponse(content=builtwith.builtwith(newUrl))
    <span class="hljs-comment"># return {"message": "Hello World"}</span>
</code></pre><p>For those who wanted see the full source code and the source code of a friend and that is made using react JS. Here is the GitHub repository.</p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://github.com/hotheadhacker/built-with-what">https://github.com/hotheadhacker/built-with-what</a></div>
<h3 id="you-can-test-the-api-herehttpsglacial-taiga-01626herokuappcomdocs">You can test the API <a target="_blank" href="https://glacial-taiga-01626.herokuapp.com/docs">here</a></h3>
<h3 id="integrate-api-to-your-own-application-by-calling-this-node">Integrate API to your own application by calling this node:</h3>
<p><code>https://glacial-taiga-01626.herokuapp.com/get/&lt;exaple.com&gt;</code></p>
<h3 id="front-end-hosted-on-netlify">Front-End hosted on netlify</h3>
<p><a target="_blank" href="&quot;https://epic-poincare-c1962a.netlify.app/&quot;">Click Here</a></p>
]]></content:encoded></item><item><title><![CDATA[Developed Kindle Version of Greater Kashmir's Website For Better Article View Experience.]]></title><description><![CDATA[Hello today I'll be sharing my experiences while I developed the Kindle version of Greater Kashmir's website for low end (light) devices and distraction free environment.
Steps:

First of all I used Python to configure web scrappers (beautifulsoup4) ...]]></description><link>https://blog.isalman.dev/developed-kindle-version-of-greater-kashmirs-website-for-better-article-view-experience</link><guid isPermaLink="true">https://blog.isalman.dev/developed-kindle-version-of-greater-kashmirs-website-for-better-article-view-experience</guid><category><![CDATA[Python 3]]></category><category><![CDATA[web scraping]]></category><category><![CDATA[APIs]]></category><category><![CDATA[REST API]]></category><dc:creator><![CDATA[Salman Qureshi]]></dc:creator><pubDate>Sat, 22 May 2021 07:51:15 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1621669635018/wGL-vF4NY.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello today I'll be sharing my experiences while I developed the Kindle version of Greater Kashmir's website for low end (light) devices and distraction free environment.</p>
<p><strong><em>Steps:</em></strong></p>
<ol>
<li><p>First of all I used Python to configure web scrappers (beautifulsoup4) and inspected  respected elements of Greater Kashmir's website and mapped the elements of web page DOM today web scraper objects and classes.</p>
</li>
<li><p>Now I have to configure the server for that I created an API based on python using fastAPI framework, and made the endpoints working for fetching and receiving the data.
I created two endpoints first one was listing latest posts as the homepage and the second end point was driving the single article view based on the article that the user will access or requested.</p>
</li>
<li><p>After the development was over and testing was done I deployed this web scraping service on the online host where my Python application and API got served and is in the live mode and can be easily accessed by anyone.
the UI is not good because the core concept behind this is that it will just display the headline of the article and the feature image and after that the whole description of their article without any ads and without any distractions.</p>
</li>
</ol>
<p>The main aim behind this idea was the Kindle devices and other low memory devices needs distraction free experience while reading the article so I created this one just said the example that any webpage can be modified whatever the way we want.</p>
<p><strong>Detailed Tweet:</strong></p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://twitter.com/salmanually/status/1361345343711977478?s=19">https://twitter.com/salmanually/status/1361345343711977478?s=19</a></div>
<p><strong>ScrapperAPI is live and deployed on:</strong>
<a target="_blank" href="https://p6h4oq.deta.dev/">https://p6h4oq.deta.dev/</a></p>
<blockquote>
<p>The source code is under private repository on my GitHub, and will be updated here once I will make it public.</p>
</blockquote>
<p>The alternate solutions:
Wordpress supports rebuild JSON API called as wp-api WP rest API, one can use that approach on any wordpress enable sites to get the details of any required article are any data that is uploaded on the wordpress website without developing his own web server and the hosting all this he need is to have good defined friend and it could be react JS, angular, vue etc.</p>
<h2 id="disclaimer">Disclaimer</h2>
<blockquote>
<p>This project was only for the educational purposes and will not violate any DMCA or EULA. For reasons you want to put down this project kindly send the query on 📧 me@isalman.xyz</p>
</blockquote>
]]></content:encoded></item><item><title><![CDATA[How To Use Python Trape OSINT(Open-Source Intelligence) To Track Users Online]]></title><description><![CDATA[Hello again, this time I'm discussing about the best open source intelligence (OSINT) tools that are written in Python programming language and how do we use them to track users online.
In this post I will only discuss about Trape

But before beginni...]]></description><link>https://blog.isalman.dev/how-to-use-python-trape-osintopen-source-intelligence-to-track-users-online</link><guid isPermaLink="true">https://blog.isalman.dev/how-to-use-python-trape-osintopen-source-intelligence-to-track-users-online</guid><category><![CDATA[hacking]]></category><category><![CDATA[#cybersecurity]]></category><category><![CDATA[Python]]></category><category><![CDATA[Script]]></category><category><![CDATA[GitHub]]></category><dc:creator><![CDATA[Salman Qureshi]]></dc:creator><pubDate>Fri, 21 May 2021 21:39:57 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1621633040037/5eTA2PeP2.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="hello-again-this-time-im-discussing-about-the-best-open-source-intelligence-osint-tools-that-are-written-in-python-programming-language-and-how-do-we-use-them-to-track-users-online">Hello again, this time I'm discussing about the best open source intelligence (OSINT) tools that are written in Python programming language and how do we use them to track users online.</h2>
<p><em>In this post I will only discuss about <a target="_blank" href="https://github.com/jofpin/trape?utm=isalman.xyz">Trape</a></em></p>
<blockquote>
<p>But before beginning I would like to acknowledge that the mentioned resources in this blog post only for educational purposes and I do not take any responsibility whatsoever!</p>
</blockquote>
<p>I know many of you have personally contacted me to explain there working and how do we implement them, and most importantly what are the best tools available. In most cases I was able to answer the queries but as these queries were in repeated manner, so I decided to write this blog post for the future references.
I know this blog post will not include each of the OSINT, but here I will give the generalized idea and few popular tools that are mostly used and research gathering pre reconnaissance.</p>
<p><img src="https://media1.giphy.com/media/Q2W4hziDOyzu0/giphy.webp?cid=82a1493bt27knd23aazabqg5coc6nq0krtuoap99zep59pwo&amp;rid=giphy.webp&amp;ct=g" alt="The Hacker Gif" /></p>
<h3 id="lets-get-started">Lets Get Started 🏃</h3>
<h2 id="trape">TRAPE:</h2>
<p>Before working with Trape I would like to tell you guys that trip works on python 2.7 and won't work on Python 3 and is not compatible with python3 modules. So that means you have to work with legacy version of python.</p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://github.com/jofpin/trape">https://github.com/jofpin/trape</a></div>
<p>Trape is an OSINT analysis and research tool, which allows people to track and execute intelligent social engineering attacks in real time.
<img src="https://camo.githubusercontent.com/33d24c5c6a4f5158ead352f207a60db84804e82cb99e41b55f6959bd11ea4699/68747470733a2f2f692e696d6775722e636f6d2f3279637058456a2e706e67" alt="Python Trape Working" />
This is the most frequently used open source intelligence tool. Is very popular and the features it includes are:</p>
<p><strong><em>LOCATOR OPTIMIZATION: </em></strong>
Trace the path between you and the target you're tracking. Each time you make a move, the path will be updated, the location of the target is obtained silently through a bypass made in the browsers, allowing you to skip the location request on the victim's side, and at the same time maintain a precision of 99% in the locator.
<img src="https://camo.githubusercontent.com/eb3768978a87b988398d40652ca24974a9d4ae2724c53444434a2b593f1ff3e3/68747470733a2f2f6c68332e676f6f676c6575736572636f6e74656e742e636f6d2f717771344c7a7a4c5464464777734764384333633967786244614e31393173376c6e767a37357930747277494d55475361497532325179425267774b587852774c4243354847656b424a4c7739716744356c6e7867737a634656714a32345256717633715f5433487a4436774a655155366f59345656463851543659383368737471443443303230" alt="img" /></p>
<p><strong><em>APPROACH:</em></strong> When you're close to the target, Trape will tell you.</p>
<p><strong><em>REST API:</em></strong>
Generates an API (random or custom), and through this you can control and monitor other Web sites on the Internet remotely, getting the traffic of all visitors.
<img src="https://camo.githubusercontent.com/80169afb2a797dba98ddc42628452459501ace10ced8622aaa53e4a1d71437dd/68747470733a2f2f6c68342e676f6f676c6575736572636f6e74656e742e636f6d2f4e466e56474c6f444632426d4d5f4e35367738566636636e796731575749494b674743314d6542544b58786349796e4d446643315a5375343366746f69596e7763426232676a705664533479307a6d354b3758417a7658663762504974355a725751434571396551754e384b4c2d5352504f744267495a4c353341576b4a6a77684334674a556347" alt="trape approach" /></p>
<p><strong><em>PROCESS HOOKS:</em></strong>
 Manages social engineering attacks or processes in the target's browser.
<img src="https://camo.githubusercontent.com/272b97a2c029e7158ddad2d02e3405a535ebc0250bb0c15c22fdb090470c162d/68747470733a2f2f6c68362e676f6f676c6575736572636f6e74656e742e636f6d2f4474516959594c6f4c396469334c5063535354435a334175564d6c51614e63446b4264765f665a465837727a746a675f6570576d49614132416c4773574372354d7772326e56664c6373673149355058456378383745724c53384a6172757652734555496b536379645841334a687662736d4a6f76377178624b6f6f476744357533326b6d424857" alt="trape process hooks" /></p>
<p><strong><em>--- SEVERAL:</em></strong> You can issue a phishing attack of any domain or service in real time as well as send malicious files to compromise the device of a target.</p>
<p><strong><em>--- INJECT JS:</em></strong> You keep the JavaScript code running free in real time, so you can manage the execution of a keylogger or your own custom functions in JS which will be reflected in the target's browser.</p>
<p><strong><em>--- SPEECH:</em></strong> A process of audio creation is maintained which is played in the browser of the target, by means of this you can execute personalized messages in different voices with languages in Spanish and English.</p>
<p><strong><em>PUBLIC NETWORK TUNNEL:</em></strong>
Trape has its own API that is linked to ngrok.com to allow the automatic management of public network tunnels; So you can publish the content of your trape server which is executed locally to the Internet, to manage hooks or public attacks.
<img src="https://camo.githubusercontent.com/54db972965a2d3f31b5e590fde3c32e24aac419db70681d2010231c80145b6de/68747470733a2f2f6c68352e676f6f676c6575736572636f6e74656e742e636f6d2f5f66337a6143655a79615f35414b61436f61506578794a56704e41376669527159513957425269474c73486378315735563631562d56454e65495246325162717670656e794f4a314159797265546d4f72324d57626639505975347158462d7462595769377170365a57654f77766f47334c595564706a703370414b396d4941515a7a504a77414f" alt="img" /></p>
<p><strong><em>CLICK ATTACK TO GET CREDENTIALS:</em></strong>
Automatically obtains the target credentials, recognizing your connection availability on a social network or Internet service.
<img src="https://camo.githubusercontent.com/3886e4cdd2f304813a5afa3c93da4016d57bc432a823d040a7d71cbaf9325cf9/68747470733a2f2f6c68342e676f6f676c6575736572636f6e74656e742e636f6d2f494e38785766486a475052515f5f2d517754586562472d3038376d344a7a444956465774536c5574726e5270446e3264305531636e51644e47714c515a4133352d666e65656a316954706b7867485a43715f70575a4c6c436431536d794c5a2d574a354a756a324b6274794e6258346a49316f4c55747175707869654839316d5836355f5a6d4879" alt="altimg" /></p>
<p><strong><em>NETWORK:</em></strong>
 You can get information about the user's network.</p>
<p><strong><em>--- SPEED:</em></strong> Viewing the target's network speed. (Ping, download, upload, type connection)</p>
<p><strong><em>--- HOSTS OR DEVICES:</em></strong> Here you can get a scan of all the devices that are connected in the target network automatically.
<img src="https://camo.githubusercontent.com/b01b2e4de7cf635b717ac21c0a31cf775e7ab88720a8c16a605e67ae710c1c54/68747470733a2f2f6c68332e676f6f676c6575736572636f6e74656e742e636f6d2f676b4f57756e576e37676535794a7430306c4d424e5f3747775355787241515632793634797379726a6d442d767a5f6c4f33627536556b526a504a46384f6c6a78794d544e6c575641395738675655335530694933527245434e4e6b72374834344c7a367a355a6a332d62415f68444635546e54536f565f36353834714676754c6b6d5368545144" alt="hosts" /></p>
<p><strong><em>PROFILE:</em></strong>
 Brief summary of the target's behavior and important additional information about your device.</p>
<p><strong><em>--- GPU --- ENERGY</em></strong></p>
<h3 id="30-session-recognition">30-session recognition</h3>
<p>Session recognition is one of trape most interesting attractions, since you as a researcher can know remotely what service the target is connected to.</p>
<p><img src="https://camo.githubusercontent.com/92d51ea59fa8d55b70c983d26fddc15536f2ea142b881e3899ce5566c8544957/68747470733a2f2f6c68362e676f6f676c6575736572636f6e74656e742e636f6d2f49467849683745656d7236336b79636a3265427a4a59766576437a4c4835446b514757554b7a50785f4f6b6e34576f4578506c304c5237516a2d63536330574630727339457736444a4d77637969725a64306b64664c706472715132373030505f786478573777705a374b364f576938706c754c4b697648745534354844345674794d306c4c7768" alt="trape python session" /></p>
<h2 id="how-to-use-trape">How to use Trape:</h2>
<p>First unload the tool.</p>
<p><code>git clone https://github.com/jofpin/trape.git
cd trape
python2 trape.py -h</code></p>
<p>If it does not work, try to install all the libraries that are located in the file requirements.txt</p>
<p><code>python2 -m pip install -r requirements.txt</code>
Example of execution</p>
<p>Example:</p>
<p><code>python2 trape.py --url http://example.com --port 8080</code></p>
<p>If you face some problems installing the tool, it is probably due to Python versions conflicts, you should run a Python 2.7 environment :</p>
<p><code>pip install virtualenv
virtualenv -p /usr/bin/python2.7 Vpy27
source Vpy27/bin/activate
pip2 install -r requirements.txt
python2 trape.py -h</code></p>
<h3 id="help-and-options">HELP AND OPTIONS</h3>
<p><code>user:~$ python2 trape.py --help
usage: python trape.py -u &lt;&gt; -p &lt;&gt; [-h] [-v] [-u URL] [-p PORT]
                                              [-ak ACCESSKEY] [-l LOCAL]
                                              [--update] [-n] [-ic INJC]
optional arguments:
  -h, --help            show this help message and exit
  -v, --version         show program's version number and exit
  -u URL, --url URL     Put the web page url to clone
  -p PORT, --port PORT  Insert your port
  -ak ACCESSKEY, --accesskey ACCESSKEY
                        Insert your custom key access
  -l LOCAL, --local LOCAL
                        Insert your home file
  -n, --ngrok           Insert your ngrok Authtoken
  -ic INJC, --injectcode INJC
                        Insert your custom REST API path
  -ud UPDATE, --update UPDATE
                        Update trape to the latest version</code></p>
<p>--url In this option you add the URL you want to clone, which works as a decoy.</p>
<p>--port Here you insert the port, where you are going to run the trape server.</p>
<p>--accesskey You enter a custom key for the trape panel, if you do not insert it will generate an automatic key.</p>
<p>--injectcode trape contains a REST API to play anywhere, using this option you can customize the name of the file to include, if it does not, generates a random name allusive to a token.</p>
<p>--local Using this option you can call a local HTML file, this is the replacement of the --url option made to run a local lure in trape.</p>
<p>--ngrok In this option you can enter a token, to run at the time of a process. This would replace the token saved in configurations.</p>
<p>--version You can see the version number of trape.</p>
<p>--update Option used to upgrade to the latest version of trape.</p>
<p>--help It is used to see all the above options, from the executable.</p>
<blockquote>
<p>At last I would like to share the tutorial that's available on YouTube and I find it very usefull. In this tutorial the author has shown execution on parrot operating system but you need not follow that.</p>
</blockquote>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://youtu.be/Zwq7HyLLKKY">https://youtu.be/Zwq7HyLLKKY</a></div>
]]></content:encoded></item><item><title><![CDATA[[Trick] How To Access Your GitHub Home/Feed of Your GitHub Account As A RSS Feed?]]></title><description><![CDATA[You know there is an API by GitHub, with which we can access your personal home page feed of a GitHub isn't it cool?

Gif source: Tennor
Steps:

You can access your GitHub home/feed of your GitHub account as an RSS feed?

Simply following:
https://gi...]]></description><link>https://blog.isalman.dev/trick-how-to-access-your-github-homefeed-of-your-github-account-as-a-rss-feed</link><guid isPermaLink="true">https://blog.isalman.dev/trick-how-to-access-your-github-homefeed-of-your-github-account-as-a-rss-feed</guid><category><![CDATA[GitHub]]></category><category><![CDATA[tricks]]></category><category><![CDATA[Productivity]]></category><category><![CDATA[Open Source]]></category><dc:creator><![CDATA[Salman Qureshi]]></dc:creator><pubDate>Fri, 29 Jan 2021 10:14:26 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1611915255854/7lX1wXbPm.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h4 id="you-know-there-is-an-api-by-github-with-which-we-can-access-your-personal-home-page-feed-of-a-github-isnt-it-cool">You know there is an API by GitHub, with which we can access your personal home page feed of a GitHub isn't it cool?</h4>
<p><img src="https://media.tenor.com/images/13333cc683dcd62e7fcf82cf2624a327/tenor.gif" alt="Gif" />
<strong><em>Gif source: Tennor</em></strong></p>
<h1 id="steps">Steps:</h1>
<blockquote>
<p>You can access your GitHub home/feed of your GitHub account as an RSS feed?</p>
</blockquote>
<h3 id="simply-following">Simply following:</h3>
<pre><code><span class="hljs-attribute">https</span>:<span class="hljs-comment">//github. com/&lt;your_username&gt;.private.atom?token=&lt;token&gt;</span>
</code></pre><h3 id="xml-response">XML Response:</h3>
<pre><code><span class="hljs-meta">&lt;?xml version="1.0" encoding="UTF-8"?&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">feed</span> <span class="hljs-attr">xmlns</span>=<span class="hljs-string">"http://www.w3.org/2005/Atom"</span> <span class="hljs-attr">xmlns:media</span>=<span class="hljs-string">"http://search.yahoo.com/mrss/"</span> <span class="hljs-attr">xml:lang</span>=<span class="hljs-string">"en-US"</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">id</span>&gt;</span>tag:github.com,2008:/hotheadhacker<span class="hljs-tag">&lt;/<span class="hljs-name">id</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">link</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text/html"</span> <span class="hljs-attr">rel</span>=<span class="hljs-string">"alternate"</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"https://github.com/(user_name)"</span>/&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">link</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"application/atom+xml"</span> <span class="hljs-attr">rel</span>=<span class="hljs-string">"self"</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"https://github.com/(user_name).private.atom?token=(some token)"</span>/&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">title</span>&gt;</span>Private Feed for (User_name)<span class="hljs-tag">&lt;/<span class="hljs-name">title</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">updated</span>&gt;</span>2021-01-24T14:12:40Z<span class="hljs-tag">&lt;/<span class="hljs-name">updated</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">entry</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">id</span>&gt;</span>tag:github.com,2008:WatchEvent/14927097760<span class="hljs-tag">&lt;/<span class="hljs-name">id</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">published</span>&gt;</span>2021-01-24T14:12:40Z<span class="hljs-tag">&lt;/<span class="hljs-name">published</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">updated</span>&gt;</span>2021-01-24T14:12:40Z<span class="hljs-tag">&lt;/<span class="hljs-name">updated</span>&gt;</span>
</code></pre><p>Did you knew about this? Tell us write in replies!</p>
<p><a target="_blank" href="http://https://docs.github.com/en/rest/reference/activity#feeds">GitHub Official Docs</a> </p>
]]></content:encoded></item><item><title><![CDATA[5 REASONS THAT MAKES OPEN-SOURCE SO POPULAR IN 2021]]></title><description><![CDATA[It's 2021, when things are drastically moving towards open source from closed source.

Gif from Tenor

Let's take a recent example how signal app gone so popular over WhatsApp just because its open source on the other hand WhatsApp is not. Slowly peo...]]></description><link>https://blog.isalman.dev/5-reasons-that-makes-open-source-so-popular-in-2021</link><guid isPermaLink="true">https://blog.isalman.dev/5-reasons-that-makes-open-source-so-popular-in-2021</guid><category><![CDATA[Open Source]]></category><category><![CDATA[GitHub]]></category><category><![CDATA[General Programming]]></category><category><![CDATA[Productivity]]></category><category><![CDATA[Collaboration]]></category><dc:creator><![CDATA[Salman Qureshi]]></dc:creator><pubDate>Tue, 26 Jan 2021 21:54:13 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1611698032730/HLnUoh3sG.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="its-2021-when-things-are-drastically-moving-towards-open-source-from-closed-source">It's 2021, when things are drastically moving towards open source from closed source.</h2>
<p><img src="https://media.tenor.com/images/81ad70da9bfdb0834562fb9093307239/tenor.gif" alt="MEME FROM TENNOR" /></p>
<h6 id="gif-from-tenor"><em>Gif from Tenor</em></h6>
<ul>
<li>Let's take a recent example how signal app gone so popular over WhatsApp just because its open source on the other hand WhatsApp is not. Slowly people are realising about their privacy and how their data is being used processed against them.</li>
</ul>
<p>The drastic increment in user base of signal has blown away the old monopoly closed source companies that pray on your personal data and steal the ad preferences information.</p>
<blockquote>
<p>I am computer science engineer with 6 years of experience in web development I have never seen anything as famous as open source. Open sources is the future of technologies and workflows.</p>
</blockquote>
<h3 id="few-reasons-why-open-source-is-game-changer">Few reasons why open source is game changer:</h3>
<h2 id="1-collaborative-work">1) Collaborative Work:</h2>
<p>☞ Collaborative work is more productive than any other work experience studies have shown that one developers that collaborate work they tend to have more optimised and more creative experience, while programming a particular task.</p>
<h2 id="2-open-source">2) Open-Source:</h2>
<p>☞ Of course being open source one can watch, analyse, rewrite, reproduce and add some modifications in such a way that it can be more useful then before. isn't it great?</p>
<h2 id="3-community">3) Community:</h2>
<p>☞ You know what makes more special about a particular technology and what makes it last so long? It's the community it has. Python, JavaScript, and another languages, they are so much dominant in their field only just because their community and it has been accepted by their original developers or by original creators of that particular technology, there are amazing communities on open source that you always provide a positive juster no matter how big or small the project is.</p>
<h2 id="4-transparency">4) Transparency:</h2>
<p>☞ No matter where you will find your source and no matter how is deployed you will always receive authentic reliable and the accurate results from the origin and from the official source.</p>
<h2 id="5-privacy-and-security">5) Privacy and Security:</h2>
<p>☞ Open-Source softwares provide more privacy than any other closed-source s/w. It is because you know actually what's happening with you information that you share and how secure it is.
I'm not sharing you that open source technologies are always more secure then close source but you can always check if you know the code you know your information is being handled properly or not.</p>
<blockquote>
<p>I hope this article has helped you in some way if you have any other suggestions or views please feel free to write in comment box thanks for reading.</p>
</blockquote>
]]></content:encoded></item><item><title><![CDATA[Git Tricks & Hacks To Be More Productive That Will Save Your Time]]></title><description><![CDATA[Want to speed up your git skills?

Open Source is the future that needs git skills and every modern IT companies needs collaborative work and Continuous Integration (CI) you will need git CLI skills there as well.
Today we will learn to be more produ...]]></description><link>https://blog.isalman.dev/git-tricks-and-hacks-to-be-more-productive-that-will-save-your-time</link><guid isPermaLink="true">https://blog.isalman.dev/git-tricks-and-hacks-to-be-more-productive-that-will-save-your-time</guid><category><![CDATA[Git]]></category><category><![CDATA[GitHub]]></category><category><![CDATA[Continuous Integration]]></category><category><![CDATA[Devops]]></category><category><![CDATA[cli]]></category><dc:creator><![CDATA[Salman Qureshi]]></dc:creator><pubDate>Mon, 25 Jan 2021 15:32:27 GMT</pubDate><content:encoded><![CDATA[<h4 id="want-to-speed-up-your-git-skills">Want to speed up your git skills?</h4>
<p><img src="https://media.tenor.com/images/91ef9b6b5e63fd3927dbc0a5162e76d8/tenor.gif" alt="Yes" />
Open Source is the future that needs git skills and every modern IT companies needs collaborative work and Continuous Integration (CI) you will need git <code>CLI</code> skills there as well.</p>
<p><strong><em>Today we will learn to be more productive in terms of git <code>CLI</code> commands.</em></strong></p>
<h1 id="10-git-tricks-to-save-your-time-and-efforts">10 Git Tricks to Save Your Time and Efforts 👇👇👇</h1>
<ol>
<li>Checkout a single file from another branch</li>
</ol>
<p><code>git checkout some-other-branch -- yarn.lock</code></p>
<ol>
<li>View the log without merge commits`</li>
</ol>
<p>git log --oneline --no-merges`</p>
<ol>
<li>Rewrite your last commit message`</li>
</ol>
<p>git commit -v --amend`</p>
<ol>
<li>Get rid of all untracked changes</li>
</ol>
<p><code>git clean -f -d</code></p>
<ol>
<li>Print out a cool visualization of your log</li>
</ol>
<p><code>git log --pretty=oneline --graph --decorate --all</code></p>
<ol>
<li>Ask git for a changelog</li>
</ol>
<p><code>git shortlog &lt;commit&gt;..HEAD</code></p>
<ol>
<li>View the log for a specific date range</li>
</ol>
<p><code>git log --since='FEB 10 2016' --until='FEB 19 2016'</code></p>
<ol>
<li>List all git aliases</li>
</ol>
<p><code>git config -l | grep alias | sed 's/^alias\.//g'</code></p>
<ol>
<li>Search for commits that include a keyword</li>
</ol>
<p><code>git log -S"config. menu_items"</code></p>
<ol>
<li>Super secret list of git tutorials
<code>git help -g</code></li>
</ol>
<p>What Do you think? Add yours in replies.</p>
]]></content:encoded></item><item><title><![CDATA[Free Open-Source WHOIS API Unlimited Calls]]></title><description><![CDATA[It began from when I needed WHOIS information of domain for automation stuff, but when I saw how much they are changing I was shocked. 
That moment I decide to Open Source the API as well as it's Implementation.
https://github.com/hotheadhacker/whois...]]></description><link>https://blog.isalman.dev/free-open-source-whois-api-unlimited-calls</link><guid isPermaLink="true">https://blog.isalman.dev/free-open-source-whois-api-unlimited-calls</guid><category><![CDATA[Open Source]]></category><category><![CDATA[GitHub]]></category><category><![CDATA[Heroku]]></category><category><![CDATA[Python 3]]></category><category><![CDATA[REST API]]></category><dc:creator><![CDATA[Salman Qureshi]]></dc:creator><pubDate>Sun, 24 Jan 2021 17:07:26 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1611508026869/LVch7br8-.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>It began from when I needed WHOIS information of domain for automation stuff, but when I saw how much they are changing I was shocked. 
That moment I decide to Open Source the API as well as it's Implementation.</p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://github.com/hotheadhacker/whois-api">https://github.com/hotheadhacker/whois-api</a></div>
<p>This is the original GitHub Repository of mine.</p>
<p>This project is live @ <a target="_blank" href="https://whois-api-server.herokuapp.com/facebook.com">Live/Demo</a></p>
<p><code>Example WHOIS Data of facebook.com</code></p>
<h3 id="usage">Usage:</h3>
<p><code>Make all of your api calls to https://whois-api-server.herokuapp.com/&lt;domain_name&gt;</code></p>
<h3 id="response">Response:</h3>
<p><code>The server will respond with a json data</code></p>
<p><code>{"address":"1601 Willow Rd","city":"Menlo Park","country":"US","creation_date":"Sat, 29 Mar 1997 05:00:00 GMT","dnssec":"unsigned","domain_name":"FACEBOOK.COM","emails":["abusecomplaints@registrarsafe.com","domain@fb.com"],"expiration_date":"Thu, 30 Mar 2028 04:00:00 GMT","name":"Domain Admin","name_servers":["A.NS.FACEBOOK.COM","B.NS.FACEBOOK.COM","C.NS.FACEBOOK.COM","D.NS.FACEBOOK.COM"],"org":"Facebook, Inc.","referral_url":null,"registrar":"RegistrarSafe, LLC","state":"CA","status":["clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited","clientTransferProhibited https://icann.org/epp#clientTransferProhibited","clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited","serverDeleteProhibited https://icann.org/epp#serverDeleteProhibited","serverTransferProhibited https://icann.org/epp#serverTransferProhibited","serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited","clientDeleteProhibited https://www.icann.org/epp#clientDeleteProhibited","clientTransferProhibited https://www.icann.org/epp#clientTransferProhibited","serverDeleteProhibited https://www.icann.org/epp#serverDeleteProhibited","serverTransferProhibited https://www.icann.org/epp#serverTransferProhibited","clientUpdateProhibited https://www.icann.org/epp#clientUpdateProhibited","serverUpdateProhibited https://www.icann.org/epp#serverUpdateProhibited"],"updated_date":"Tue, 10 Mar 2020 18:53:59 GMT","whois_server":"whois.registrarsafe.com","zipcode":"94025"}</code></p>
<p><strong><em> This project is written in Python and deployed on Heroku servers </em></strong></p>
<h2 id="hope-this-helps-you-let-me-know-in-comment-section-what-do-you-think-about-this-or-any-upgrades">Hope This helps you 👍. Let me know in comment section what do you think about this, or any upgrades.</h2>
]]></content:encoded></item><item><title><![CDATA[The Day When Facebook Stored User Passwords in Plain-Text Without Encryption — Facebook Apologized :)]]></title><description><![CDATA[Being a Tech Giant is not everything. Facebook holds majority of market in Social Media Networking Platform out there. Recently 3 days before on April 2nd 2019 Google abandoned it’s Social Media Platform ‘Google +’. Well if they would have abandoned ...]]></description><link>https://blog.isalman.dev/the-day-when-facebook-stored-user-passwords-in-plain-text-without-encryption-facebook-apologized</link><guid isPermaLink="true">https://blog.isalman.dev/the-day-when-facebook-stored-user-passwords-in-plain-text-without-encryption-facebook-apologized</guid><category><![CDATA[Facebook]]></category><category><![CDATA[encryption]]></category><category><![CDATA[Security]]></category><category><![CDATA[hacking]]></category><category><![CDATA[privacy]]></category><dc:creator><![CDATA[Salman Qureshi]]></dc:creator><pubDate>Sun, 24 Jan 2021 16:40:47 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1611506216614/4hHWpgziX.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Being a Tech Giant is not everything. Facebook holds majority of market in Social Media Networking Platform out there. Recently 3 days before on April 2nd 2019 Google abandoned it’s Social Media Platform ‘Google +’. Well if they would have abandoned it on 1st April it would have been April Fool’s day for the creators of Google Plus.</p>
<p><img src="https://miro.medium.com/max/1719/0*wjjNCH68b_jGNTmt" alt="Image" /></p>
<p>Well coming back to Facebook , I am sci-fan &amp; believe “With Great Power Comes Greater Responsibility” but having so much controversies within Facebook on security aspect — Well they come with nothing
A funny story happened recently when they prompt me with this funny notification.
Image for post
Funny yeah, But truth.
Well I can’t Believe They Did it? Who does that on production system?
The Fact Behind This Glitch
Facebook stored millions of passwords in plain text format, change your FB password now
Facebook said on Thursday it has resolved a glitch that exposed passwords of millions of users stored in readable format within its internal systems to its employees.
The passwords were accessible to as many as 20,000 Facebook employees and dated back as early as 2012, cyber security blog KrebsOnSecurity, which first reported said in its report.
“These passwords were never visible to anyone outside of Facebook and we have found no evidence to date that anyone internally abused or improperly accessed them,” the company said.
KrebsOnSecurity, citing a senior Facebook employee, said the an internal investigation by the company so far indicates that between 200 million and 600 million Facebook users may have had their account passwords stored in plain text.
Facebook said the issue was discovered in January as part of a routine security review. Majority of the affected were users of Facebook Lite, a version of the social media app largely used by people in regions with lower connectivity.
The social network is also probing the causes of a series of security failures, in which employees built applications that logged unencrypted password data for Facebook users, the report said.”We estimate that we will notify hundreds of millions of Facebook Lite users, tens of millions of other Facebook users, and tens of thousands of Instagram users,” the company said.
Via — Reuters
For Non Technical People.
It takes only few line of code to convert a plan text into cypher text. Also it’s execution won’t take much processing time for basic encryption technique like MD5.</p>
]]></content:encoded></item><item><title><![CDATA[Who am I?]]></title><description><![CDATA[I am Salman Qureshi, Full Stack Developer from Kashmir.
CS Engineer by profession, passionate about new technologies.

I believe availability of the knowledge should be free for everyone.]]></description><link>https://blog.isalman.dev/who-am-i</link><guid isPermaLink="true">https://blog.isalman.dev/who-am-i</guid><dc:creator><![CDATA[Salman Qureshi]]></dc:creator><pubDate>Wed, 20 Jan 2021 09:56:16 GMT</pubDate><content:encoded><![CDATA[<p>I am Salman Qureshi, Full Stack Developer from Kashmir.
CS Engineer by profession, passionate about new technologies.</p>
<blockquote>
<p>I believe availability of the knowledge should be free for everyone.</p>
</blockquote>
]]></content:encoded></item></channel></rss>