<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Jorge Anaya blog personal</title>
    <link>https://www.jorgeanaya.dev/</link>
    <description>Recent content on Jorge Anaya blog personal</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>es-es</language>
    <lastBuildDate>Tue, 27 Jul 2021 00:00:00 +0000</lastBuildDate>
    
	<atom:link href="https://www.jorgeanaya.dev/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Agnoster Persona</title>
      <link>https://www.jorgeanaya.dev/news/agnoster-persona/</link>
      <pubDate>Tue, 27 Jul 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.jorgeanaya.dev/news/agnoster-persona/</guid>
      <description>Hace tiempo trabaje en esta personalización para oh my zsh, tome como base el tema de agnoster y le añadí algunos elementos para hacer más fácil el día a día que pasamos en la consola.
Entre las cosas que buscaba es que puedas agregar &amp;ldquo;personalidad&amp;rdquo; a cada tab/ventana en la que estas trabajando, con el fin de que puedas rapidamente identificar lo que estabas haciendo.
 Dos lineas en el command prompt Incluye el ultimo comando ejecutado y su status Cambia el contexto con un titulo y un color Cambia / Añade un emoji Basado en Agnoster asi que incluye la funcionalidad de git status, pyvenv, nodejs, aws   Agnoster Persona repository    </description>
    </item>
    
    <item>
      <title>Docker enchulame la lista de contenedores</title>
      <link>https://www.jorgeanaya.dev/bin/docker-formatear-lista-de-contenedores/</link>
      <pubDate>Sat, 01 Aug 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.jorgeanaya.dev/bin/docker-formatear-lista-de-contenedores/</guid>
      <description>Siempre que ejecuto docker ps para listar los contenedores me resulta difícil entender donde inicia y donde termina la información sobre cada contenedor:
 ¡Que carajos! ... el puerto ¿cúal? ... siento que casi estoy viendo la matrix  Debo admitir que después de un tiempo tus ojos se acostumbran y comienzan a hacer cosas raras pero comienzas a entender el resultado. Claro que no debería ser así, por lo que encontré que tenemos algunas opciones para mejorar el resultado.</description>
    </item>
    
    <item>
      <title>Docker solucionar el nombre duplicado de red</title>
      <link>https://www.jorgeanaya.dev/bin/docker-network-nombre-duplicado/</link>
      <pubDate>Wed, 25 Mar 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.jorgeanaya.dev/bin/docker-network-nombre-duplicado/</guid>
      <description>El Problema Un día tuve que reiniciar mi servidor linux y como Murphy no falla al regresar la instancia de docker estaba vacía sin ningún container, después de explorar un rato y revisar que todo estuviera en orden no encontré la causa, hice lo que se debe hacer &amp;hellip; reinicie nuevamente el servidor y ohh sorpresa ahi estaban de nuevo todos mis containers ¡Genial! pero &amp;hellip; al momento de intentar iniciarlos</description>
    </item>
    
    <item>
      <title>React aplicación en 100 lineas de código</title>
      <link>https://www.jorgeanaya.dev/bin/react-aplicacion-simple/</link>
      <pubDate>Sun, 02 Feb 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.jorgeanaya.dev/bin/react-aplicacion-simple/</guid>
      <description>El siguiente código permite entender como se construye aplicación muy simple en React  Pon atención a los comentarios en el código  &amp;lt;!DOCTYPE html&amp;gt; &amp;lt;html lang=&amp;#34;en&amp;#34;&amp;gt; &amp;lt;head&amp;gt; &amp;lt;meta charset=&amp;#34;UTF-8&amp;#34; /&amp;gt; &amp;lt;meta name=&amp;#34;viewport&amp;#34; content=&amp;#34;width=device-width, initial-scale=1.0&amp;#34; /&amp;gt; &amp;lt;meta http-equiv=&amp;#34;X-UA-Compatible&amp;#34; content=&amp;#34;ie=edge&amp;#34; /&amp;gt; &amp;lt;title&amp;gt;React JS Search Results&amp;lt;/title&amp;gt; &amp;lt;!--Add React and Babel References --&amp;gt; &amp;lt;script src=&amp;#34;https://unpkg.com/react@16/umd/react.development.js&amp;#34;&amp;gt;&amp;lt;/script&amp;gt; &amp;lt;script src=&amp;#34;https://unpkg.com/react-dom@16/umd/react-dom.development.js&amp;#34;&amp;gt;&amp;lt;/script&amp;gt; &amp;lt;script src=&amp;#34;https://unpkg.com/babel-standalone@6.26.0/babel.js&amp;#34;&amp;gt;&amp;lt;/script&amp;gt; &amp;lt;/head&amp;gt; &amp;lt;body&amp;gt; &amp;lt;section&amp;gt; &amp;lt;!--Every React app must have what’s known as an entry point. The entry point is an HTML element where we insert our React application into the page.</description>
    </item>
    
    <item>
      <title>FFmpeg concatenar videos sin recodificar</title>
      <link>https://www.jorgeanaya.dev/bin/terminal-ffmpeg-concatenar-videos/</link>
      <pubDate>Sun, 12 Jan 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.jorgeanaya.dev/bin/terminal-ffmpeg-concatenar-videos/</guid>
      <description>Para concatenar varios videos usando ffmpeg necesitamos tener un archivo de texto que contenga en cada linea un path a los videos:
&amp;emsp;VideoList.txt
# Se pueden utilizar rutas absolutas o relativas file &#39;/path/to/video1.mp4&#39; file &#39;/path/to/video2.mp4&#39; file &#39;/path/to/video3.mp4&#39;     &amp;emsp;Ejecutar
# Si se utilizan rutas absolutas agremamos el parametro -safe 0 ffmpeg -f concat -safe 0 -i videolist.txt -c copy output.mp4     &amp;emsp;Para generar en automatico un archivo con la lista de videos</description>
    </item>
    
    <item>
      <title>Terminal verificar si una cadena esta vacia</title>
      <link>https://www.jorgeanaya.dev/bin/terminal-verificar-cadena-vacia/</link>
      <pubDate>Sun, 05 Jan 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.jorgeanaya.dev/bin/terminal-verificar-cadena-vacia/</guid>
      <description>Una de las tareas básicas cuando haces scripting es verificar si una cadena esta o no vacía (puede venir de un parámetro, un input de usuario, etc). Lo hacemos con los operadores -n y -z
&amp;emsp;Cadena vacia
#!/bin/bash VAR=&#39;&#39; if [[ -z $VAR ]]; then echo &#34;String is empty.&#34; fi     &amp;emsp;Cadena no vacia
#!/bin/bash VAR=&#39;Linuxize&#39; if [[ -n $VAR ]]; then echo &#34;String is not empty.&#34; fi     REFERENCIA: Linuxize</description>
    </item>
    
    <item>
      <title>SQL Studio ejecutar como usuario remoto</title>
      <link>https://www.jorgeanaya.dev/bin/sql-ssms-ejecutar-como-usuario-remoto-vpn/</link>
      <pubDate>Sun, 01 Sep 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.jorgeanaya.dev/bin/sql-ssms-ejecutar-como-usuario-remoto-vpn/</guid>
      <description>Conectarte a SQL Server Management Studio utilizando credenciales de windows diferentes, resulta muy util cuando te conectas por VPN a otras redes o dominios y requieres utilizar un usuario de otro dominio.
La clave es utilizar el comando runas con los parámetros /user y /netonly desde un acceso directo al cual le indicaremos la ruta del ejecutable del SQL Server Management Studio añadiendo la opción nosplash al final.
&amp;emsp;SSMS run as</description>
    </item>
    
    <item>
      <title>Git reset para modificar el ultimo commit</title>
      <link>https://www.jorgeanaya.dev/bin/git-reset-modificar-commit/</link>
      <pubDate>Thu, 01 Aug 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.jorgeanaya.dev/bin/git-reset-modificar-commit/</guid>
      <description>En ocasiones requerimos de eliminar el último commit realizado pero sin perder los cambios. Esto por muchas razones, en ocasiones es un commit prematuro, o se nos olvido agregar/eliminar un archivo, etc.
IMPORTANTE: Todo esto en nuestro entorno local sin haber realizado la publicación/sync a un origen remoto  git reset: Mueve el branch actual hacia X commit así que utilizamos HEAD~1 o &amp;quot;HEAD^&amp;quot; (ambos son validos), ejemplo: &amp;emsp;git reset</description>
    </item>
    
    <item>
      <title>Limpiar la papelera de reciclaje de todos los usuarios</title>
      <link>https://www.jorgeanaya.dev/bin/windows-limpiar-papelera-reciclaje-global/</link>
      <pubDate>Sat, 20 Jul 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.jorgeanaya.dev/bin/windows-limpiar-papelera-reciclaje-global/</guid>
      <description>La emergencia 🔔 Notificación 🔔, urge que te conectes al servidor remoto para ejecutar una script de SQL, te conectas y 💥
An error occurred while executing batch. Error message is: There is not enough space on the disk....  Revisas y te das cuenta que no hay espacio en la unidad C -nada, 0, no cabe un bit mas- Resulta que el SSMS de SQL necesita espacio en C:\Users\...\AppData\Local\Temp para los resultados de un Query</description>
    </item>
    
    <item>
      <title>Configurar vscode para trabajar en entornos remotos</title>
      <link>https://www.jorgeanaya.dev/bin/vscode-configurar-para-trabajar-en-entornos-remotos/</link>
      <pubDate>Mon, 01 Jul 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.jorgeanaya.dev/bin/vscode-configurar-para-trabajar-en-entornos-remotos/</guid>
      <description>Recientemente, vscode libero una extensión llamada Remote Development la cual te permite conectarte remotamente a proyectos en SSH, Containers y WSL.
Actualmente lo utilizo con un servidor local linux al cual me conecto via SSH.
  Instalar la extensión Remote Development
  Configurar el acceso al servidor via SSH
Para configurarlo desde Mac OS (~/rs_pub.id): &amp;emsp;
ssh-keygen -t rsa -b 4096 sh-copy-id jorgeanaya@host-fqdn-or-ip-goes-here    
  Configurar un acceso al servidor SHIFT+CMD+P</description>
    </item>
    
    <item>
      <title>Utilizar cmder como terminal por default en vscode</title>
      <link>https://www.jorgeanaya.dev/bin/vs-cmder-como-terminal/</link>
      <pubDate>Thu, 04 Apr 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.jorgeanaya.dev/bin/vs-cmder-como-terminal/</guid>
      <description>Cmder es un console emulator que proporciona todo aquello que le hace falta a la terminal por default de windows. Desde que la conocí siempre la cargo para todas mis instalaciones y equipos. Y como siempre olvido como configurar el vscode para que use esta terminal por default, aquí los pasos para lograrlo
  Generar el siguiente archivo en C:\Cmder\vscode.bat @echo off SET CurrentWorkingDirectory=%CD% SET CMDER_ROOT=C:\cmder CALL &amp;#34;%CMDER_ROOT%\vendor\init.bat&amp;#34; CD /D %CurrentWorkingDirectory%</description>
    </item>
    
    <item>
      <title>Cliente de linea de comando de dotnet core</title>
      <link>https://www.jorgeanaya.dev/bin/dotnet-comandos-basicos-cli/</link>
      <pubDate>Thu, 28 Mar 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.jorgeanaya.dev/bin/dotnet-comandos-basicos-cli/</guid>
      <description>Comandos básicos para el cliente de linea de comando de dotnet core
&amp;emsp;dotnet core
dotnet dotnet --version dotnet new [template]     &amp;emsp;Crear una console app
dotnet new console // dotnet restore implicit dotnet build // dotnet restore and build implicit dotnet run     &amp;emsp;Crear una solución con pruebas y referencias
dotnet new [template] dotnet new sln -n [name] mkdir Library cd Library dotnet new classlib dotnet add package System.</description>
    </item>
    
    <item>
      <title>ASP.NET adjuntar tu código a un sitio publicado en IIS</title>
      <link>https://www.jorgeanaya.dev/bin/dotnet-aspnet-adjuntar-codigo-a-un-sitio-iis/</link>
      <pubDate>Thu, 21 Mar 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.jorgeanaya.dev/bin/dotnet-aspnet-adjuntar-codigo-a-un-sitio-iis/</guid>
      <description>Cuando trabajamos con ASP.NET y desarrollamos sitios orientados a micro-servicios u otros escenarios es muy probable que no podamos ejecutar nuestro website desde nuestro visual studio, generalmente estos sitios están publicados en un servidor IIS ya sea local o en un entorno de desarrollo remoto.
Es necesario tener sincronizado nuestro código con el build del website    Para debugearlo entonces adjuntamos nuestra instancia de visual studio a un proceso:    En la ventana Attach to Process podremos seleccionar y filtrar nuestro connection target y el proceso al que deseamos adjuntar nuestro código    NOTAS</description>
    </item>
    
    <item>
      <title>Vincular una carpeta a una unidad en Windows</title>
      <link>https://www.jorgeanaya.dev/bin/windows-vincular-carpeta-a-unidad/</link>
      <pubDate>Mon, 18 Mar 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.jorgeanaya.dev/bin/windows-vincular-carpeta-a-unidad/</guid>
      <description>Un antiguo comando DOS que permite rápidamente vincular un directorio a una unidad en Windows puede resultar muy útil para muchos escenarios, entre los más comunes están el emular entornos de producción en maquinas de desarrollo, actualmente lo he utilizado para mantener las políticas de publicación de visual studio entre las maquinas de los desarrolladores. Hay dos maneras de hacerlo: subts &amp;emsp;subts
REM to create subst X: &#34;C:\Users\ProgramadorSinSuerte\MiFolder&#34; REM to delete subst X: /D      Después de la unidad dejar un espacio en blanco Si el directorio lleva espacios se pueden utilizar comillas &amp;ldquo;\directorio con espacios&amp;quot; Notar que al final no se incluye el carácter diagonal &amp;ldquo;\&amp;rdquo;  ✍️ Este comando espera que el directorio siempre este disponible de lo contrario se volverá loco buscándolo como si de una unidad física se tratara mermando el desempeño de la maquina.</description>
    </item>
    
    <item>
      <title>Conceptos básicos de Swift - Funciones y Clases</title>
      <link>https://www.jorgeanaya.dev/bin/swift-conceptos-basicos-funciones-clases/</link>
      <pubDate>Thu, 07 Mar 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.jorgeanaya.dev/bin/swift-conceptos-basicos-funciones-clases/</guid>
      <description>&amp;emsp;Funciones y Clases
// Funciones func saluda_void() { print(&#34;¡Hola Mundo!&#34;) } func saluda() - String { return &#34;¡Hola Mundo!&#34; } func saluda(nombre:String) - String { return &#34;Hola \(nombre)&#34; } func suma(a:Int,b:Int) - Int { return a + b } print(saluda_void()) print(saluda()) print(saluda(nombre: &#34;Jorge&#34;)) print(suma(a: 2, b: 3)) // Clases class Persona { var nombre : String var edad : Int init(\_nombre:String, \_edad:Int) { self.nombre = \_nombre self.edad = \_edad } func saluda() - String { return self.</description>
    </item>
    
    <item>
      <title>Conceptos básicos de Swift - Control y Datos</title>
      <link>https://www.jorgeanaya.dev/bin/swift-conceptos-basicos-control-datos/</link>
      <pubDate>Wed, 06 Mar 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.jorgeanaya.dev/bin/swift-conceptos-basicos-control-datos/</guid>
      <description>&amp;emsp;Control y Datos
//  Switch let variableNumerica = 3 switch variableNumerica { case 1: print(&#34;El varlor es 1&#34;) case 2: print(&#34;El valor es 2&#34;) case 3...10: // Utilizar rangos print(&#34;El valor es igual o mayor a 3 y menor a 10&#34;) default: print(&#34;El valor es mayor a 10&#34;) } let diaDeLaSemana = &#34;Martes&#34; switch diaDeLaSemana { case &#34;lunes&#34;,&#34;miercoles&#34;,&#34;viernes&#34;: print(&#34;Promocion A&#34;) case &#34;martes&#34;,&#34;jueves&#34;: print(&#34;Promocion B&#34;) case &#34;sabado&#34;: print(&#34;Promocion C&#34;) default: print(&#34;</description>
    </item>
    
    <item>
      <title>Conceptos básicos de Swift - Variables</title>
      <link>https://www.jorgeanaya.dev/bin/swift-conceptos-basicos-variables/</link>
      <pubDate>Tue, 05 Mar 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.jorgeanaya.dev/bin/swift-conceptos-basicos-variables/</guid>
      <description>&amp;emsp;Variables
// Declaración de Variables var expresivaAsignacion : String = &#34;Valor&#34; print(expresivaAsignacion) var expresiva : String = &#34;&#34; expresiva = &#34;Valor&#34; print(expresiva) var intuitiva = &#34;Adivina&#34; print(intuitiva) // Constantes let constateAsignacion : String = &#34;ValorConstante&#34; print(constateAsignacion) let pi = 3.1416 print(pi) // Opcionales var opcionalCadena : String? = nil var opcional : Int? = nil // ¿Como trabajar con opcionales? print(opcional) // nil print(opcional ?? 0) // Provide a default value print(opcional as Any) // Explicit Cast to Any para evitar errror print(opcional!</description>
    </item>
    
    <item>
      <title>Encontrar elementos dentro de un NodeList usando jQuery</title>
      <link>https://www.jorgeanaya.dev/bin/js-jquery-encontrar-elementos-dentro-de-nodelist/</link>
      <pubDate>Sun, 03 Feb 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.jorgeanaya.dev/bin/js-jquery-encontrar-elementos-dentro-de-nodelist/</guid>
      <description>Con jquery.find() podemos buscar por un elemento o selector, en algunos casos ya recibimos esa variable conteniendo un NodeList para buscar dentro de estos elementos usemos .find()
&amp;emsp;jquery.find()
// Obtener una lista de elementos e inicializarlos con otra función \$(items).find(&#34;.collapse-card&#34;).paperCollapse(); // Combinarla con each(Integer index, Element element) para explorar su contenido. \$(items).find(&#34;.collapse-card&#34;).each( (i,e) = console.log(e));     Referencias:
https://api.jquery.com/find/
https://api.jquery.com/each/</description>
    </item>
    
    <item>
      <title>Imagen responsiva usando la técnica fluid-image</title>
      <link>https://www.jorgeanaya.dev/bin/css-imagen-responsiva-fluid/</link>
      <pubDate>Sun, 03 Feb 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.jorgeanaya.dev/bin/css-imagen-responsiva-fluid/</guid>
      <description>Lograr el comportamiento responsivo de un sitio web requiere de trabajar con varios elementos html, entre ellos las imágenes son uno los mas solicitados. Para lograrlo existen varias técnicas, una de las mas sencillas y que tiene máxima compatibilidad con casi cualquier browser (IE cuando digo casi eres tu el culpable 🤦‍♂️) es la llamada Fluid Images (Imágenes Fluidas).
Si bien no resuelve todos los problemas es un fix sencillo</description>
    </item>
    
    <item>
      <title>Cuida tus pensamientos</title>
      <link>https://www.jorgeanaya.dev/bin/post-feliz-2019/</link>
      <pubDate>Wed, 02 Jan 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.jorgeanaya.dev/bin/post-feliz-2019/</guid>
      <description> Cuida tus pensamientos, ya que estos se convierten en tus palabras. Cuida tus palabras ya que estas se convierten en tus acciones. Cuida tus acciones, ya que estas se convierten en ti.  Buda   Así de simple  </description>
    </item>
    
    <item>
      <title>Cómo desarrollé este blog</title>
      <link>https://www.jorgeanaya.dev/bin/post-como-desarrolle-este-blog/</link>
      <pubDate>Tue, 01 Jan 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.jorgeanaya.dev/bin/post-como-desarrolle-este-blog/</guid>
      <description>He creado este sitio utilizando los siguientes recursos   HUGO - The world’s fastest framework for building websites  Desarrollado utilizando HUGO. Un framework super interesante que utiliza GO. En mi opinión es muy versátil, gratificante y divertido, una muy buena comunidad.
 Logo  Agradezco la generosidad, paciencia y creatividad de MagMagnolia para crear el logotipo y los stickers, síganla en sus redes sociales.
 Developer Icons  Para los iconos utilice dos librerías diferentes Devicon by Konpa y Devicons by Vorillaz.</description>
    </item>
    
    <item>
      <title>Docker una guía rapida</title>
      <link>https://www.jorgeanaya.dev/docs/docker-a-quick-guide/</link>
      <pubDate>Tue, 01 Jan 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.jorgeanaya.dev/docs/docker-a-quick-guide/</guid>
      <description>This is a succinctly guide to dokcer</description>
    </item>
    
    <item>
      <title>Intro to Docker</title>
      <link>https://www.jorgeanaya.dev/docs/docker-a-quick-guide/docker-intro/</link>
      <pubDate>Tue, 01 Jan 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.jorgeanaya.dev/docs/docker-a-quick-guide/docker-intro/</guid>
      <description>Part 1.</description>
    </item>
    
    <item>
      <title>Simple Example</title>
      <link>https://www.jorgeanaya.dev/docs/docker-a-quick-guide/docker-a-simple-example/</link>
      <pubDate>Tue, 01 Jan 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.jorgeanaya.dev/docs/docker-a-quick-guide/docker-a-simple-example/</guid>
      <description>Part 2</description>
    </item>
    
    <item>
      <title>You should know</title>
      <link>https://www.jorgeanaya.dev/docs/docker-a-quick-guide/docker-you-should-know/</link>
      <pubDate>Tue, 01 Jan 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.jorgeanaya.dev/docs/docker-a-quick-guide/docker-you-should-know/</guid>
      <description>Part 3</description>
    </item>
    
    <item>
      <title>Búsqueda</title>
      <link>https://www.jorgeanaya.dev/search/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://www.jorgeanaya.dev/search/</guid>
      <description>This file exists solely to respond to /search URL with the related search layout template.
No content shown here is rendered, all content is based in the template layouts/page/search.html
Setting a very low sitemap priority will tell search engines this is not important content.
This implementation uses Fusejs, jquery and mark.js
Initial setup Search depends on additional output content type of JSON in config.toml ``` [outputs] home = [&amp;ldquo;HTML&amp;rdquo;, &amp;ldquo;JSON&amp;rdquo;] ```</description>
    </item>
    
  </channel>
</rss>