<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Shubhashish Dixit</title>
    <description>The latest articles on DEV Community by Shubhashish Dixit (@thisisshub).</description>
    <link>https://dev.to/thisisshub</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F257785%2F5658e45e-d292-4ee3-b114-1d5ed004bec1.jpeg</url>
      <title>DEV Community: Shubhashish Dixit</title>
      <link>https://dev.to/thisisshub</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/thisisshub"/>
    <language>en</language>
    <item>
      <title>How to run autocomplete(JEDI) inside virtualenv in vim</title>
      <dc:creator>Shubhashish Dixit</dc:creator>
      <pubDate>Mon, 04 May 2020 05:42:43 +0000</pubDate>
      <link>https://dev.to/thisisshub/how-to-run-autocomplete-jedi-inside-virtualenv-in-vim-22dc</link>
      <guid>https://dev.to/thisisshub/how-to-run-autocomplete-jedi-inside-virtualenv-in-vim-22dc</guid>
      <description>&lt;p&gt;So, I basically switched to neovim and realized that autocomplete does not work when you're inside the virtualenv using the the vim editor&lt;br&gt;
and as cumbersome as it is to find a solution online. I stumbled upon a workaround.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Make sure you have all the plugins installed
# open your ~/.config/.vimrc or ~/.config/nvim/init.vim with vim and type

:CocConfig

# you may see something like 
{
     "suggest.timeout": 5000,
     "python.pythonPath": "python"
# OR "python.pythonPath": "/usr/bin/python"
}

# the easiest workaround is to change "python.pythonPath": "python"
to "python.pythonPath": "python3"

{
    "suggest.timeout": 5000,
    "python.pythonPath": "python3"
}

# save this file and exit
# activate your virtualenv and check for yourself which python3 is your 
# vim currently using `:!which python3`

# This should definitely work till a permanent solution comes around.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



</description>
      <category>vim</category>
      <category>python</category>
      <category>virtualenv</category>
      <category>autocomplete</category>
    </item>
    <item>
      <title>Downloading Anything Off the Internet Without Searching It.</title>
      <dc:creator>Shubhashish Dixit</dc:creator>
      <pubDate>Fri, 24 Jan 2020 11:41:44 +0000</pubDate>
      <link>https://dev.to/thisisshub/downloading-anything-off-the-internet-without-searching-it-4kdb</link>
      <guid>https://dev.to/thisisshub/downloading-anything-off-the-internet-without-searching-it-4kdb</guid>
      <description>&lt;h3&gt;
  
  
  This setup helps you download anything off the internet without even searching for it.
&lt;/h3&gt;

&lt;p&gt;I was just amused by this automation and found it to my utmost satisfaction and &lt;/p&gt;

&lt;p&gt;We're gonna setup our SABnzbd++ to download webseries and its upcoming episodes without user interaction. Hence Automating the whole process of searching and downloading.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setup SABnzbd
&lt;/h2&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ sudo apt-get install software-properties-common

$ sudo add-apt-repository multiverse

$ sudo add-apt-repository universe

$ sudo add-apt-repository ppa:jcfp/nobetas

$ sudo add-apt-repository ppa:jcfp/sab-addons

$ sudo apt-get update &amp;amp;&amp;amp; sudo apt-get dist-upgrade

$ sudo apt-get install sabnzbdplus python-sabyenc

$ sudo apt-get install par2-tbb
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Start SABNzbdplus with
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;$ sabnzbdplus&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Or open a localhost instance
&lt;/h3&gt;

&lt;p&gt;from &lt;a href="http://localhost:8080"&gt;http://localhost:8080&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Let's make ourselves a free account
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Vist here &lt;a href="https://free-usenet.com/login/"&gt;https://free-usenet.com/login/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Go to Free Account tab and copy the credentials and use them to login to &lt;a href="http://localhost:8080"&gt;http://localhost:8080&lt;/a&gt;&lt;br&gt;
After Logging in,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;click &lt;em&gt;Config&lt;/em&gt;. Beneath &lt;em&gt;Config&lt;/em&gt;, click &lt;em&gt;General&lt;/em&gt;. First you'll find the configuration for the SABnzbd web server. Set bandwidth limit to 1Mbps&lt;/li&gt;
&lt;li&gt;In the last config sub-category, &lt;em&gt;Sorting&lt;/em&gt;, you can do some pretty neat things with the organization of your downloads. There are a couple of sorting options, You can use this to sort episodes however you'd like. Here's one example:&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Sort string:&lt;br&gt;&lt;br&gt;
%sn - Episode %s%0e - %en.%ext&lt;/p&gt;

&lt;p&gt;Output:&lt;br&gt;&lt;br&gt;
Show Name - Episode 105 - Episode Name.avi&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Now that you've set up SAB, it's time to give it something to download. SAB downloads and processes files via NZBs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Head over to&lt;br&gt;
&lt;a href="https://www.nzbindex.com/search"&gt;https://www.nzbindex.com/search&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We'll find RSS feed of our favorite series, movies or any packages that we need to download.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Search for any show or webseries&lt;/li&gt;
&lt;li&gt;Click on the RSS Feed option, you'll be redirected to a new tab containing XML version &lt;/li&gt;
&lt;li&gt;Copy the URL of the new tab and headover to your &lt;a href="http://localhost:8080"&gt;http://localhost:8080&lt;/a&gt; and add a new RSS url with the url you copied&lt;/li&gt;
&lt;li&gt;Leave and Enjoy&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>linux</category>
      <category>rssfeed</category>
      <category>automation</category>
      <category>noobie</category>
    </item>
    <item>
      <title>What's a CLI, Alias and how to make one? Aliases every developer uses these days. </title>
      <dc:creator>Shubhashish Dixit</dc:creator>
      <pubDate>Fri, 22 Nov 2019 13:48:02 +0000</pubDate>
      <link>https://dev.to/thisisshub/what-s-a-cli-alias-and-how-to-make-one-aliases-every-developer-uses-these-days-579d</link>
      <guid>https://dev.to/thisisshub/what-s-a-cli-alias-and-how-to-make-one-aliases-every-developer-uses-these-days-579d</guid>
      <description>&lt;h2&gt;
  
  
  Newcomers read along the article and learn in the boring detail.
&lt;/h2&gt;

&lt;h2&gt;
  
  
  TL;DR below.
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Do you use CLI?!
&lt;/h2&gt;

&lt;h4&gt;
  
  
  Like come on CLI is awesome, it gets so much sh*t done for us. For the new comers in the CLI world, WELCOME! the road ahead is pretty crappy, you won't like it at first but hey it gives you the "Hackerman feeling" you've all been trying to feel since you were kids.
&lt;/h4&gt;

&lt;h2&gt;
  
  
  What's CLI if you'd ask?
&lt;/h2&gt;

&lt;h5&gt;
  
  
  Well its a command line program that accepts text input to execute operating system functions..... uggh kill me already.
&lt;/h5&gt;

&lt;h6&gt;
  
  
  this thingy right here
&lt;/h6&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fstdvteiuqzy5tirhnux9.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fstdvteiuqzy5tirhnux9.jpg" alt="yes this very thing"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Now what the frack is an alias anyway?
&lt;/h2&gt;

&lt;p&gt;You have been using it without knowing it. &lt;br&gt;
If you have written a program you would have encountered, the windows user &lt;code&gt;command prompt&lt;/code&gt;, linux users &lt;code&gt;terminal&lt;/code&gt;, mac users &lt;code&gt;the terminal app&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Hey Linux and Mac people, ever seen this thingy &lt;code&gt;~&lt;/code&gt;&lt;br&gt;
Let me remind you because I know you have, &lt;br&gt;
&lt;code&gt;cd ~/Downloads/or_some_place_else&lt;/code&gt; yeah that &lt;code&gt;~&lt;/code&gt; is the same as &lt;br&gt;
&lt;code&gt;cd /home/user/Downloads/or_some_place_else&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Get It?
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;~ == /home/users&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;that exactly right there is an alias.&lt;/p&gt;

&lt;p&gt;Alright you'll encounter them a lot. &lt;br&gt;
Let's starting using them anyway and learn how to make our own!!&lt;/p&gt;
&lt;h2&gt;
  
  
  How to make an alias??
&lt;/h2&gt;

&lt;p&gt;NOTE: Please learn what are shells and which one are you using and which one should you use right &lt;a href=""&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;alias command_name="command";&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# open your .&amp;lt;shell&amp;gt;rc file, (meaning .bashrc or .zshrc)
# start typing
# just write alias and then the shell command right along the '=' sign.

alias gp=git pull;

# you guessed it, gp would now act as our normal git pull command. 

# FAQs
# is ; neccessary? yes for now. you'd know when to use it and when not  # on you own.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Can we write absolutely just once command per alias name?
&lt;/h3&gt;

&lt;p&gt;NOOOO, you can write as many as you'd like!!&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# here let's make a function where you could make a directory and
# directly change directory to it, which means.. make a directory
# and go into it.

alias mc='func(){ mkdir -p "$1"; cd "$1" }; func '

# FAQs
# could we not do it without a function?
# nope, not if you'd like to keep the directory name according to you.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Now go on and make your own aliases as many as you'd like :)
&lt;/h3&gt;

&lt;p&gt;Go ahead and read all types of aliasing as use them, some of them stand below.&lt;/p&gt;
&lt;h2&gt;
  
  
  TL; DR&lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;


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

#git add . &amp;amp;&amp;amp; git commit 'message' &amp;amp;&amp;amp; git push origin master
# usuage: gac 'added files' 
function gac(){
        git add .;
        git commit -m "$1";
        git push -u origin master;
        };

# fast find
alias ff=find . -name $1;

#make a dir and cd into it
alias mc='bar(){ mkdir -p "$1"; cd "$1" }; bar '

# change directories
alias ..= cd ..;
alias ...= cd ../..;
alias ....= cd ../../..;   
alias .....= cd ../../../..;

# smart ls
alias l=ls -lah;

# package manager
# ubuntu people
alias sad='sudo apt-get';
# fedora people
alias df='sudo dnf';
# i use arch btw people
alias pc='sudo pacman';
# am i rich? heheheheheh(laughs in gold), mac people
alias bb='brew install'

#ip address
alias myip="curl http://ipecho.net/plain; echo" 

#public ip address
alias mypip='curl ifconfig.me'

#update
alias update='sudo apt-get update &amp;amp;&amp;amp; sudo apt-get upgrade'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h4&gt;
  
  
  You may find these explained aliases in detail of great help here:
&lt;/h4&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/algotech" rel="noopener noreferrer"&gt;
        algotech
      &lt;/a&gt; / &lt;a href="https://github.com/algotech/dotaliases" rel="noopener noreferrer"&gt;
        dotaliases
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Helpful bash aliases to increase productivity
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;.aliases&lt;/h1&gt;
&lt;/div&gt;

&lt;p&gt;If you use the terminal on a daily basis, you'll eventually find yourself
wanting aliases for your most commonly-used commands. It's incredibly useful to
be able to execute your commands with only a few keystrokes that ultimately
get hardcoded into muscle memory.&lt;/p&gt;
&lt;p&gt;This repository is an easy to install project that contains a growing list
of aliases for different frameworks and tools that works on any *nix system.&lt;/p&gt;
&lt;p&gt;The project was started with passion by the
&lt;a href="https://www.algotech.solutions" rel="nofollow noopener noreferrer"&gt;Algotech Software Engineering Team&lt;/a&gt;.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Aliases list&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Bash aliases&lt;/h3&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h4 class="heading-element"&gt;Tools:&lt;/h4&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/algotech/dotaliasesdoc/bash/git_aliases.md" rel="noopener noreferrer"&gt;Git aliases&lt;/a&gt; - the version control system&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/algotech/dotaliasesdoc/bash/github_aliases.md" rel="noopener noreferrer"&gt;GitHub aliases&lt;/a&gt; - command-line wrapper for git that makes you better at GitHub&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/algotech/dotaliasesdoc/bash/apache_aliases.md" rel="noopener noreferrer"&gt;Apache aliases&lt;/a&gt; - cross-platform web server software&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/algotech/dotaliasesdoc/bash/cli_aliases.md" rel="noopener noreferrer"&gt;CLI aliases&lt;/a&gt; - various bash aliases&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h4 class="heading-element"&gt;PHP:&lt;/h4&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/algotech/dotaliasesdoc/bash/composer_aliases.md" rel="noopener noreferrer"&gt;Composer aliases&lt;/a&gt; - package manager for the PHP programming language&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/algotech/dotaliasesdoc/bash/phpunit_aliases.md" rel="noopener noreferrer"&gt;PHPUnit aliases&lt;/a&gt; - unit testing framework for the PHP programming language&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/algotech/dotaliasesdoc/bash/symfony_aliases.md" rel="noopener noreferrer"&gt;Symfony aliases&lt;/a&gt; - web application framework&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h4 class="heading-element"&gt;JavaScript:&lt;/h4&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/algotech/dotaliasesdoc/bash/npm_aliases.md" rel="noopener noreferrer"&gt;Npm&lt;/a&gt;…&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/algotech/dotaliases" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h4&gt;
  
  
  Article Inspiration: &lt;a href=""&gt;Click just right here&lt;/a&gt;
&lt;/h4&gt;

&lt;h3&gt;
  
  
  If you read the whole thing, YOU'RE AWESOME!
&lt;/h3&gt;

&lt;h2&gt;
  
  
  Thanks!
&lt;/h2&gt;

</description>
      <category>newcomers</category>
      <category>aliases</category>
      <category>developers</category>
      <category>shellcommands</category>
    </item>
    <item>
      <title>How to access your laptop from anywhere in the WORLD without portforwarding!</title>
      <dc:creator>Shubhashish Dixit</dc:creator>
      <pubDate>Wed, 20 Nov 2019 23:48:19 +0000</pubDate>
      <link>https://dev.to/thisisshub/how-to-access-your-laptop-from-anywhere-in-the-world-without-portforwarding-mci</link>
      <guid>https://dev.to/thisisshub/how-to-access-your-laptop-from-anywhere-in-the-world-without-portforwarding-mci</guid>
      <description>&lt;h3&gt;
  
  
  Just think how awesome it'd be if you come to your home and see your laptop or any other resource up and working the way you want it to be.
&lt;/h3&gt;

&lt;p&gt;Well that'd be pretty sweet if I get home and see my Spotify playlist playing on my speaker, my laptop up and working and loaded with the ongoing projects with all its virtual environments already loaded.&lt;/p&gt;

&lt;p&gt;....all at the end of running a single script.&lt;/p&gt;

&lt;h4&gt;
  
  
  So get this, I live in a hostel right with a public shared wifi which clearly does not allow me fiddling around with its router settings. Of course, why would they :/
&lt;/h4&gt;

&lt;p&gt;My only solution to get my little thing done is to expose my local web server to the internet.&lt;/p&gt;

&lt;h4&gt;
  
  
  (safe?! heck yeah!!........eh, just a bit)
&lt;/h4&gt;

&lt;h2&gt;
  
  
  So how the heck do you do it anyway?!
&lt;/h2&gt;

&lt;p&gt;One word answer: &lt;strong&gt;ngrok :)&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Pre requisites needed:
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;Connect bot for android : &lt;a href=""&gt;download here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;openssh for your laptop : &lt;code&gt;sudo apt-get install openssh-server&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h5&gt;
  
  
  Firewall people please remember that since we're going to be using port 22 for our little automation. We're gonna need to keep port 22 open. Please use &lt;code&gt;ufw or uncomplicated firewall&lt;/code&gt; to open the port with
&lt;/h5&gt;



&lt;p&gt;&lt;code&gt;sudo ufw allow 22&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;Now hop on the train once again when you're done,&lt;br&gt;
Follow along and setup your ubuntu or whatever os you are using. I am personally writing this article on zorin os which again is an ubuntu derivative.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Install ngrok from &lt;a href=""&gt;here&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Follow along every step till authenticating your token.&lt;/li&gt;
&lt;li&gt;FIRE IT UP!! with,
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ ./ngrok tcp 22

# now look for the line
Forwarding  tcp://0.tcp.ngrok.io:XXXXX -&amp;gt; localhost:22

# the only thing useful to you is 0.tcp.ngrok.io:XXXXX
# where XXXXX is your port number
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  (Completely Optional)
&lt;/h2&gt;

&lt;h4&gt;
  
  
  Hit the terminal again
&lt;/h4&gt;

&lt;h5&gt;
  
  
  Make some aliases for easiness with
&lt;/h5&gt;

&lt;p&gt;&lt;code&gt;alias ng="./ngrok tcp 22"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now open connect bot and make a host&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;put &lt;code&gt;user@0.tcp.ngrok.io:XXXXX&lt;/code&gt; in the very first line.&lt;/p&gt;

&lt;p&gt;you can keep post login automation commands but I would not recommend those for then just again a personal preference of mine of if I ever need to do something before running the automated command.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;you should get connected now.&lt;/p&gt;

&lt;h1&gt;
  
  
  FAQs
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Do I have to keep the command &lt;code&gt;./ngrok tcp 22&lt;/code&gt; running?
&lt;/h3&gt;

&lt;p&gt;Yes, sadly. So does the have to be your laptop and the ssh service.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can't I Suspend my laptop?
&lt;/h3&gt;

&lt;p&gt;No, you may not. Since that would stop the ssh service and of course other services. You may make it go to sleep put it charge and hit your way to life.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do you and I have a very sad developer's life?
&lt;/h3&gt;

&lt;p&gt;Yes, very!!&lt;/p&gt;

&lt;h3&gt;
  
  
  Will my port change every time I close the ngrok terminal?
&lt;/h3&gt;

&lt;p&gt;Yes. Just change port number on the connect bot.&lt;/p&gt;

&lt;h2&gt;
  
  
  Thanks for Reading! ᕙ(⇀‸↼‶)ᕗ
&lt;/h2&gt;

</description>
      <category>openssh</category>
      <category>productivity</category>
      <category>shell</category>
      <category>linux</category>
    </item>
    <item>
      <title>I built just the ultimate content aggregator with python3</title>
      <dc:creator>Shubhashish Dixit</dc:creator>
      <pubDate>Tue, 19 Nov 2019 00:22:47 +0000</pubDate>
      <link>https://dev.to/thisisshub/i-built-just-the-ultimate-content-aggregator-with-python3-4j1d</link>
      <guid>https://dev.to/thisisshub/i-built-just-the-ultimate-content-aggregator-with-python3-4j1d</guid>
      <description>&lt;p&gt;So I finally made my content aggregator on my bucket list with python and it was a fun project, I must say.&lt;/p&gt;

&lt;h1&gt;
  
  
  So what does it do anyway?
&lt;/h1&gt;

&lt;p&gt;Well for starters it fetches me the &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; News around my country&lt;/li&gt;
&lt;li&gt; Medium articles on programming&lt;/li&gt;
&lt;li&gt; Articles on python&lt;/li&gt;
&lt;li&gt; ......and finally some developer news&lt;/li&gt;
&lt;li&gt;oh oh oh and stock exchange news of my favourite stocks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;I finally get it emailed to my myself with mutt.&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Here's how it looks!
&lt;/h1&gt;

&lt;h2&gt;
  
  
  The Python News
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8o0kPsPz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/hainf57msgegu6vtj36p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8o0kPsPz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/hainf57msgegu6vtj36p.png" alt="pypy"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Daily Fresh News
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zU5u7iIQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/myitm31j1yxlo4gn3t1u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zU5u7iIQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/myitm31j1yxlo4gn3t1u.png" alt="the news"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started on how did I do it?
&lt;/h2&gt;

&lt;p&gt;Well there are a bit of pip packages that are needed to be installed first hand&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;h2&gt;
  
  
  Then you finally code a bit.
&lt;/h2&gt;

&lt;p&gt;The explanation stands in the comments, give it go!&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;Now how do you export the output our little script to the text file which in fact we would need for the body of our email&lt;/p&gt;

&lt;h2&gt;
  
  
  We write a shell script, AHA!!
&lt;/h2&gt;

&lt;p&gt;Oh no wait please install mutt or any other cli email sender&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;`sudo apt-get install mutt`
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Setting up mutt would make you wanna kill yourself, here you go &lt;br&gt;
please don't die, we love you article, &lt;a href="https://medium.com/@itsjefftong/mutt-gmail-59447a4bffef"&gt;a very easy tutorial to setup mutt&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  cool and we're good to go
&lt;/h2&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;



&lt;h3&gt;
  
  
  yup that's it. the script's that small. oh.
&lt;/h3&gt;

&lt;p&gt;Now just run setup this script at your cloud and send it to yourself before you wake up.&lt;/p&gt;

</description>
      <category>python</category>
      <category>productivity</category>
      <category>contentaggregator</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
