<?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>Forem: Ivan López</title>
    <description>The latest articles on Forem by Ivan López (@bawbam).</description>
    <link>https://forem.com/bawbam</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%2F398854%2F81de18a5-cb8b-4ff6-89fd-a4e45a9bae53.jpg</url>
      <title>Forem: Ivan López</title>
      <link>https://forem.com/bawbam</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/bawbam"/>
    <language>en</language>
    <item>
      <title>Hidden keys on django projects</title>
      <dc:creator>Ivan López</dc:creator>
      <pubDate>Tue, 21 Jul 2020 21:34:45 +0000</pubDate>
      <link>https://forem.com/bawbam/hidden-keys-on-django-projects-2af7</link>
      <guid>https://forem.com/bawbam/hidden-keys-on-django-projects-2af7</guid>
      <description>&lt;p&gt;One best practices in software development is hide ours project keys, for example: database name, password database, etc.&lt;/p&gt;

&lt;p&gt;To carry out this practice in our projects with Django we can use the following package:  &lt;a href="https://pypi.org/project/python-decouple/"&gt;Python Decouple&lt;/a&gt; . &lt;/p&gt;

&lt;p&gt;First activate the project virtual enviroment:&lt;/p&gt;

&lt;p&gt;source env/bin/activate&lt;/p&gt;

&lt;p&gt;Install python-decouple&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;pip&lt;/span&gt; &lt;span class="n"&gt;install&lt;/span&gt; &lt;span class="n"&gt;python&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;decouple&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create  the .env file  inside folder project:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4OC4qpKz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://storage.googleapis.com/carnet-pet-storage/Screenshot_20200721_135820.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4OC4qpKz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://storage.googleapis.com/carnet-pet-storage/Screenshot_20200721_135820.png" alt=".env file location"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Inside file .env, write the password , path to key .json, etc... data sensible of settings project file.&lt;/p&gt;

&lt;p&gt;this is an example:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PmGvl2ai--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://storage.googleapis.com/carnet-pet-storage/Screenshot_20200721_154006.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PmGvl2ai--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://storage.googleapis.com/carnet-pet-storage/Screenshot_20200721_154006.png" alt=".env example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And your settings file import your enviroment variables:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;decouple&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;config&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use variables inside your file:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aZejnwVi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://storage.googleapis.com/carnet-pet-storage/Screenshot_20200721_154225.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aZejnwVi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://storage.googleapis.com/carnet-pet-storage/Screenshot_20200721_154225.png" alt="python decouple use"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ready, your data sensible is hidden.&lt;/p&gt;

&lt;h3&gt;
  
  
  Note: The enviroment variables could use in any file.
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Important: Not Upload .env file to repository
&lt;/h3&gt;

&lt;p&gt;see you..&lt;/p&gt;

</description>
      <category>django</category>
      <category>python</category>
      <category>security</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Mis primeros pasos en vim</title>
      <dc:creator>Ivan López</dc:creator>
      <pubDate>Sun, 07 Jun 2020 04:03:42 +0000</pubDate>
      <link>https://forem.com/bawbam/mis-primeros-pasos-en-vim-1k06</link>
      <guid>https://forem.com/bawbam/mis-primeros-pasos-en-vim-1k06</guid>
      <description>&lt;p&gt;Una guía para comenzar en Vim.&lt;/p&gt;

&lt;p&gt;Yo usare Neovim, que es un fork de vim.&lt;/p&gt;

&lt;p&gt;Para comenzar vamos a instalar neovim - &lt;a href="https://github.com/neovim/neovim/wiki/Installing-Neovim"&gt;https://github.com/neovim/neovim/wiki/Installing-Neovim&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Aquí pueden encontrar la instalación en su SO preferido.&lt;/p&gt;

&lt;p&gt;Yo estoy en Debian, una distribución de Linux. Asi que estos son los comandos para instalar neovim:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt update
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nb"&gt;install &lt;/span&gt;neovim
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nb"&gt;install &lt;/span&gt;python3-neovim
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Excelente, ahora ya tenemos &lt;a href="https://neovim.io/"&gt;Neovim&lt;/a&gt; en nuestro sistema y para comprobar que es cierto, vamos a abrir nuestra terminal.&lt;/p&gt;

&lt;p&gt;En la terminal escribimos el siguiente comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Abrir neovim&lt;/span&gt;
 nvim
&lt;span class="c"&gt;# Abrir un archivo en neovim&lt;/span&gt;
nvim nombre_del_archivo.extension_del_archivo + enter
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Se te mostrara una ventana de bienvenida de Neovim.&lt;/p&gt;

&lt;p&gt;Si bien con estos pasos ya podemos empezar a utilizar neovim, pero en este punto aún le faltan super poderes a nuestro editor, así que para poder dotarlo de estos poderes, es necesario crear un archivo de configuración llamado &lt;strong&gt;init.vim&lt;/strong&gt; , es en este archivo donde vamos agregarle los poderes, vamos a crear este archivo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# primero ubicate en la terminal en la raiz de tu user&lt;/span&gt;
~
&lt;span class="c"&gt;# entra a la carpeta .config&lt;/span&gt;
&lt;span class="nb"&gt;cd&lt;/span&gt; .config
&lt;span class="c"&gt;# Crear la carpeta nvim&lt;/span&gt;
&lt;span class="nb"&gt;mkdir &lt;/span&gt;nvim
&lt;span class="c"&gt;# Crea el archivo init.vim, dentro de la carpeta nvim&lt;/span&gt;
&lt;span class="nb"&gt;touch &lt;/span&gt;nvim/init.vim
&lt;span class="c"&gt;# Abre el archivo init.vim y agrega la siguiente linea:&lt;/span&gt;
&lt;span class="nb"&gt;set &lt;/span&gt;number
&lt;span class="c"&gt;# guarda los cambios y reinicia neovim para que los cambios tengan efecto&lt;/span&gt;
&lt;span class="c"&gt;# Ahora se te mostraran las lineas del archivo&lt;/span&gt;
1 &lt;span class="nb"&gt;set &lt;/span&gt;number
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Comandos para salir de nvim:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# presiona 2 veces ESC, para volver al modo normal&lt;/span&gt;
&lt;span class="c"&gt;# Salir sin guardar&lt;/span&gt;
:q 
&lt;span class="c"&gt;# forzar la salida&lt;/span&gt;
:q!
&lt;span class="c"&gt;# Salir y guardar cambios&lt;/span&gt;
:w
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Comandos básicos para navegar adentro del archivo:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;    &lt;span class="c"&gt;# mover a la derecha&lt;/span&gt;
    h
    &lt;span class="c"&gt;# mover a la izquierda&lt;/span&gt;
    l
    &lt;span class="c"&gt;# mover hacia abajo&lt;/span&gt;
    j
    &lt;span class="c"&gt;# mover hacia arribba&lt;/span&gt;
    k
    &lt;span class="c"&gt;# lleva al comienzo de una palabra avanzando para adelante&lt;/span&gt;
    w
    &lt;span class="c"&gt;# lleva al comienzo de una palabra avanzando para atrás&lt;/span&gt;
    b
    &lt;span class="c"&gt;# te lleva al final de cada palabra&lt;/span&gt;
    e
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Comandos para guardar cambios:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Para guardar cambios sin salir del editor&lt;/span&gt;
:w
&lt;span class="c"&gt;# guardar cambios y salir del editor&lt;/span&gt;
:wq
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;En el siguiente post, mostrare como instalar plugins en neovim.&lt;/p&gt;

</description>
      <category>vim</category>
      <category>beginners</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
