<?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" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Keenal Shah on Medium]]></title>
        <description><![CDATA[Stories by Keenal Shah on Medium]]></description>
        <link>https://medium.com/@keenal?source=rss-d8e64d09b3c3------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*h_gBSqtmkqU46Hq2jxrhAw.jpeg</url>
            <title>Stories by Keenal Shah on Medium</title>
            <link>https://medium.com/@keenal?source=rss-d8e64d09b3c3------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Fri, 12 Jun 2026 00:35:07 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@keenal/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Rudiments of Containerization]]></title>
            <link>https://keenal.medium.com/rudiments-of-containerization-4112e0355f42?source=rss-d8e64d09b3c3------2</link>
            <guid isPermaLink="false">https://medium.com/p/4112e0355f42</guid>
            <category><![CDATA[docker]]></category>
            <category><![CDATA[cloud-computing]]></category>
            <category><![CDATA[virtualization]]></category>
            <category><![CDATA[containerization]]></category>
            <dc:creator><![CDATA[Keenal Shah]]></dc:creator>
            <pubDate>Thu, 29 Oct 2020 15:13:08 GMT</pubDate>
            <atom:updated>2020-10-30T01:50:01.201Z</atom:updated>
            <content:encoded><![CDATA[<p>Unless you have been living under a rock, you must have heard the buzzwords ‘Docker’ or ‘containerization’ in your class, workplace or just during a casual chit-chat. Well, let me tell you this, they are not going away! Those words are here to stay and I am here to fill you in!</p><p>In a world where data is generated in an extensive amount, it is a no brainer that we are going to need a system that can process all this data. You might be asking, “Then how are we doing it so far?” Well, we have been using virtualization to achieve it for decades and though using virtualization has made it easier for developers to run their applications, it still comes with disadvantages. Because of this reason, a stronger and more intelligent of a system is needed that can not only handle the data but can do it faster than ever before! This new trend in software development is called Containerization. It’s a great alternative to virtualization. It takes care of packing up the source code and all its dependencies and so that it can run on any infrastructure.</p><p>So shall we go take a deeper look into containerization? Not yet! It’s important to know why containerization is needed and for that let me brief you into virtualization!</p><blockquote>Tags: Cloud Computing, Virtualization, Containerization, Docker</blockquote><p>One of the key concepts in cloud computing is virtualization, it is when you run your computer virtually. Let’s say you have created an application that requires a lot of hardware resources and you need like 10 different servers for it to operate. You certainly cannot do it on one computer and you may not want to buy 10 computers so what do you do? You virtualize it! You use a software that will have hardware capabilities to run 5 of them at once.</p><figure><img alt="Traditional to VMs" src="https://cdn-images-1.medium.com/max/580/1*c5EdUKkMRHet08jOIqA_mQ.png" /><figcaption><a href="https://resources.infosecinstitute.com/11-points-consider-virtualizing-security/">Image credit</a></figcaption></figure><p>The software that will provide you with this facility is called a Virtual Machine (VM). VMs are a software representation of an actual system that includes your OS and the application. On the other hand, the traditional architecture (as seen above) has the application to run on top of the OS which created a lot of overhead issues. The developers were ecstatic about this idea because that meant you could run multiple OS in different VMs all running on the same host. You would not even have to use the extra hardware resources in the way that you would if you were running an application directly on top of your OS. Hence, VMs are widely in use today but like most things, it comes with flaws. As I mentioned earlier, you can run 5 different servers on the VMs at once but this can affect its performance. Additionally, configurating all of them takes a few minutes, especially if you have a larger application or require accessing a lot of servers. This is when containerization comes to the rescue!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/905/1*DNIqFCRiOD_mZu5IbG_MJw.png" /><figcaption><a href="https://www.armor.com/resources/containerization-the-need-to-know/">Image Credit</a></figcaption></figure><p>Containers are basically minimized versions of VMs but they do not carry OS within themselves. Instead they make use of OS of the host system because doing so is more faster, easily maintainable and very lightweight. Containers are like VMs where they allow applications to run on different machines but they use less resources, they are smaller in size and easier to automate! Additionally, containers boot up in seconds as it shares only the host OS and contain applications specific to the binaries and libraries. Time for an example!</p><p>Imagine you have to run an application on your machine, the application is written in Ruby, and in order for that application to work you need to install a ton of dependences from Gem to Bundler to Jekyll. Now, what if the version of these libraries are different than the version required to run the program? What if the operating system used to make the program is different than the one you’re going to be running on? Will you come across issues? You probably would! You <em>can</em> spend couple days fixing it (like I did). But imagine if you did not have to install any dependences and the second you download the application it’s magically running on your machine without you having to do anything. How neat would that be?! That’s containers for you!</p><p>Now that you are well aware of the transition from traditional architecture to virtualization to containerization, in the next part of this series, we are going to dive into Docker.</p><p><em>Hello all! This was my first time writing a technical article. I am sure I have a lot of things to improve, so it would mean a lot if you could give me any sort of feedback! Comment below if I can help in clarifying anything and feel free to reach out to me on </em><a href="https://twitter.com/Key_null"><em>Twitter</em></a><em>!</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4112e0355f42" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Linux / Bash Cheat Sheet]]></title>
            <link>https://keenal.medium.com/linux-bash-cheat-sheet-e8229a2c984?source=rss-d8e64d09b3c3------2</link>
            <guid isPermaLink="false">https://medium.com/p/e8229a2c984</guid>
            <category><![CDATA[command-line-interface]]></category>
            <category><![CDATA[linux]]></category>
            <category><![CDATA[bash]]></category>
            <dc:creator><![CDATA[Keenal Shah]]></dc:creator>
            <pubDate>Tue, 12 May 2020 21:26:14 GMT</pubDate>
            <atom:updated>2020-10-11T00:20:59.205Z</atom:updated>
            <content:encoded><![CDATA[<h4>Presented here are the most common commands used in Linux and Bash Programming as seen in the book ‘The Unix Workbench’ by Sean Kross.</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/1*6JC7c9YzsVh4JDV23FXgqw.png" /></figure><p>Before we dive into the commands, it’s important to know the difference between the following terms.</p><p>Unix/Linux: an entire family of operating systems.</p><p>Shell: program or a tool for interacting with the operating system. Can be defined in two categories. GUI shell and CLI shells.</p><p>Bash: one of the CLI shells available for Linux/Unix operating systems</p><h3>Command Line Basics</h3><p>clear — cleans up your terminal</p><p>echo — prints text to your terminal</p><p>ls — lists all the files and directory</p><p>cd / — path to your root directory</p><p>cd ~ — path to your home directory</p><p>mkdir — make a new directory</p><p>touch — creates a new file</p><p>wc — look at word count and other information about the file</p><p>cat — print files to the terminal</p><p>less — only displays few of the lines from a huge file</p><p>head / tail — prints the beginning / end few lines of the file</p><p>nano — text editor</p><p>mv — move a file from one directory to another</p><p>cp — copy a file from one directory to another</p><p>rm — remove a file</p><h3>Command Line Intermediate</h3><p>ls [*] — lists everything in a file</p><p>ls [2017*] — lists all the files starting with 2017</p><p>ls[*jpg] — lists all the files ending with jpg</p><p>grep [“New” states.txt] — grab everything that has the word “New” in a file called states.txt</p><p>egrep [“i.g” states.txt] — grab everything that has i then any character in between then g in the file states.txt</p><p>egrep [“[aeiou]” states.txt] — grab everything that only has aeiou in them</p><p>diff [filename1] [filename2] — shows the difference between the two files</p><p>grep [“[aeiou]$” states.txt | wc -l] — prints how many states end in a vowel using the pipe method</p><h3>Bash Basic Commands</h3><p>expr — used to do basic arithmetic</p><p>echo $var1 — print the value of a variable</p><p>read input — take user’s input and stores it in the variable called input</p><p>-gt — greater</p><p>-ge — greater than or equal to</p><p>-lt — less than</p><p>-eq — equal to</p><p>-ne — not equal to</p><p>-e — file exists</p><p>=~ — matches regular expression</p><p>arr=(var1 var2) — creates an array</p><p>${arr[0]} — grabs the first element of the array</p><p>${#arr[*]} — grabs the length of the array</p><p>{0..9} — prints everything from 0 to 9</p><h3>Bash Intermediate Commands</h3><p>This would include if/else statements, for/while loops and functions.</p><p>I suggest you look into the book if you want to learn more about the commands I have listed here.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=e8229a2c984" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>