<?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: Jorge Muñoz</title>
    <description>The latest articles on DEV Community by Jorge Muñoz (@jlmunozfdev_86).</description>
    <link>https://dev.to/jlmunozfdev_86</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%2F1000111%2F634adc68-65a2-4c15-883b-5518afef2826.jpeg</url>
      <title>DEV Community: Jorge Muñoz</title>
      <link>https://dev.to/jlmunozfdev_86</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jlmunozfdev_86"/>
    <language>en</language>
    <item>
      <title>🚀 Creando Animaciones Interactivas con CSS y HTML ✨</title>
      <dc:creator>Jorge Muñoz</dc:creator>
      <pubDate>Thu, 09 Jan 2025 17:45:00 +0000</pubDate>
      <link>https://dev.to/jlmunozfdev_86/creando-animaciones-interactivas-con-css-y-html-51hh</link>
      <guid>https://dev.to/jlmunozfdev_86/creando-animaciones-interactivas-con-css-y-html-51hh</guid>
      <description>&lt;p&gt;Hoy quiero compartir con ustedes un proyecto divertido que desarrollé utilizando HTML y CSS puro para crear un efecto interactivo animado y lleno de color en texto.&lt;/p&gt;

&lt;p&gt;💡 ¿Qué hace este código? He diseñado un efecto en el que cada letra de un nombre cambia de color y revela una animación al pasar el mouse. Es un enfoque visual que combina creatividad y tecnología, perfecto para interfaces modernas o elementos destacados en sitios web.&lt;/p&gt;

&lt;p&gt;📌 Características del código:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Totalmente basado en HTML y CSS (sin JavaScript 🟢).&lt;/li&gt;
&lt;li&gt;Uso de variables CSS (--color, --font-size, etc.) para garantizar una personalización rápida.&lt;/li&gt;
&lt;li&gt;Animaciones fluidas y efectos visuales gracias a hover y transition.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👨‍💻 Aquí tienes una vista previa del código:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;HTML&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div class="name"&amp;gt;
    &amp;lt;div class="jlmunozfdev" data-text="J"&amp;gt;
        &amp;lt;span&amp;gt;J&amp;lt;/span&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div class="jlmunozfdev" data-text="L"&amp;gt;
        &amp;lt;span&amp;gt;L&amp;lt;/span&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div class="jlmunozfdev" data-text="M"&amp;gt;
        &amp;lt;span&amp;gt;M&amp;lt;/span&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div class="jlmunozfdev" data-text="U"&amp;gt;
        &amp;lt;span&amp;gt;U&amp;lt;/span&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div class="jlmunozfdev" data-text="N"&amp;gt;
        &amp;lt;span&amp;gt;N&amp;lt;/span&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div class="jlmunozfdev" data-text="O"&amp;gt;
        &amp;lt;span&amp;gt;O&amp;lt;/span&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div class="jlmunozfdev" data-text="Z"&amp;gt;
        &amp;lt;span&amp;gt;Z&amp;lt;/span&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div class="jlmunozfdev" data-text="F"&amp;gt;
        &amp;lt;span&amp;gt;F&amp;lt;/span&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div class="jlmunozfdev" data-text="D"&amp;gt;
        &amp;lt;span&amp;gt;D&amp;lt;/span&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div class="jlmunozfdev" data-text="E"&amp;gt;
        &amp;lt;span&amp;gt;E&amp;lt;/span&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div class="jlmunozfdev" data-text="V"&amp;gt;
        &amp;lt;span&amp;gt;V&amp;lt;/span&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;CSS&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@200;300;400;500;600;700;800;900&amp;amp;display=swap");

:root {
    --size: 120px;
    --font-size: 4rem;
}

body {
    box-sizing: border-box;
    --background: #240046;
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    background: var(--background);
    font-family: "Poppins", sans-serif;
}
.name {
    position: relative;
    display: flex;
}
.name .jlmunozfdev {
    position: relative;
    cursor: pointer;
    height: var(--size);
    display: flex;
    justify-content: center;
    align-items: center;
    --color: #c879ff;
}

.name .jlmunozfdev:nth-child(2) {
    --color: #c879ff;
}

.name .jlmunozfdev:nth-child(3) {
    --color: #f26419;
}

.name .jlmunozfdev:nth-child(4) {
    --color: #f26419;
}

.name .jlmunozfdev:nth-child(5) {
    --color: #80ed99;
}

.name .jlmunozfdev:nth-child(6) {
    --color: #80ed99;
}

.name .jlmunozfdev:nth-child(7) {
    --color: #e3f2fd;
}

.name .jlmunozfdev:nth-child(8) {
    --color: #e3f2fd;
}

.name .jlmunozfdev:nth-child(9) {
    --color: #ffd300;
}

.name .jlmunozfdev:nth-child(10) {
    --color: #ffd300;
}

.name .jlmunozfdev:nth-child(11) {
    --color: #ffd300;
}

.name .jlmunozfdev span {
    font-size: var(--font-size);
    font-weight: 700;
    -webkit-text-stroke: 2px var(--color);
    color: transparent;
    transition: 0.5s;
}

.name .jlmunozfdev:hover span {
    opacity: 0;
}

.name .jlmunozfdev::before {
    content: attr(data-text);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    font-size: var(--font-size);
    height: 0;
    font-weight: 700;
    overflow: hidden;
    transition: 0.6s ease-in-out;
    text-align: center;
    line-height: var(--size);
    color: var(--color);
}

.name .jlmunozfdev:hover::before {
    height: 100%;
    filter: drop-shadow(0 0 2rem var(--color));
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Código del Proyecto&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/jlmunozfdev/embed/xbKYQgx?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;📚 Aprendizajes: Este proyecto refuerza cómo CSS avanzado puede transformar la experiencia visual y hacer más interactivos los elementos de una página web. &lt;/p&gt;

&lt;p&gt;¡Un ejemplo perfecto de cómo pequeños detalles marcan la diferencia!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Django vs Django REST Framework: ¿Cuál es la diferencia? 🤔</title>
      <dc:creator>Jorge Muñoz</dc:creator>
      <pubDate>Wed, 22 May 2024 14:30:53 +0000</pubDate>
      <link>https://dev.to/jlmunozfdev_86/django-vs-django-rest-framework-cual-es-la-diferencia-4ia6</link>
      <guid>https://dev.to/jlmunozfdev_86/django-vs-django-rest-framework-cual-es-la-diferencia-4ia6</guid>
      <description>&lt;p&gt;En el mundo del desarrollo web, a menudo escuchamos sobre Django y Django REST Framework (DRF). Aunque están relacionados, cumplen propósitos diferentes. Aquí te explico sus diferencias:&lt;/p&gt;

&lt;p&gt;🔹 &lt;strong&gt;Django&lt;/strong&gt;: Es un framework de alto nivel para desarrollar aplicaciones web rápidamente con Python. Proporciona todas las herramientas necesarias para construir aplicaciones completas, incluyendo un ORM potente, un sistema de administración listo para usar y una estructura robusta para manejar solicitudes HTTP.&lt;/p&gt;

&lt;p&gt;🔹 &lt;strong&gt;Django REST Framework&lt;/strong&gt;: Es una extensión de Django, diseñada específicamente para construir APIs RESTful. Facilita la creación de APIs flexibles y robustas con funcionalidades como serialización de datos, autenticación, y manejo de permisos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Principales Diferencias:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Propósito&lt;/strong&gt;: Django está enfocado en aplicaciones web completas, mientras que DRF se centra en crear APIs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Componentes&lt;/strong&gt;: Django incluye herramientas integradas para el desarrollo web, DRF extiende estas herramientas para facilitar el desarrollo de APIs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Uso&lt;/strong&gt;: Utilizas Django para aplicaciones web tradicionales y DRF cuando necesitas crear un backend que provea datos a través de una API.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Si estás desarrollando una aplicación web completa, Django es tu mejor aliado. Pero si necesitas una API potente y flexible, entonces Django REST Framework es la elección ideal.&lt;/p&gt;

</description>
      <category>django</category>
      <category>djangorestframework</category>
      <category>python</category>
      <category>development</category>
    </item>
    <item>
      <title>La Función Lambda en Python: Simplificando Tu Código</title>
      <dc:creator>Jorge Muñoz</dc:creator>
      <pubDate>Tue, 14 May 2024 07:23:57 +0000</pubDate>
      <link>https://dev.to/jlmunozfdev_86/la-funcion-lambda-en-python-simplificando-tu-codigo-9l4</link>
      <guid>https://dev.to/jlmunozfdev_86/la-funcion-lambda-en-python-simplificando-tu-codigo-9l4</guid>
      <description>&lt;p&gt;En Python, las funciones lambda son una herramienta poderosa para crear funciones anónimas de manera concisa y eficiente. A continuación, te explicamos qué son y cómo puedes utilizarlas en tus proyectos.&lt;/p&gt;

&lt;h3&gt;
  
  
  ¿Qué es una Función Lambda?
&lt;/h3&gt;

&lt;p&gt;Una función lambda en Python es una pequeña función anónima definida con la palabra clave &lt;code&gt;lambda&lt;/code&gt;. Estas funciones pueden tener cualquier número de argumentos, pero solo una expresión. La sintaxis básica es:&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="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;argumentos&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;expresión&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Características Clave
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Anónima&lt;/strong&gt;: No requiere un nombre como las funciones normales definidas con &lt;code&gt;def&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Concisa&lt;/strong&gt;: Se define en una sola línea de código.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Temporal&lt;/strong&gt;: Generalmente se utiliza en contextos donde se necesita una función pequeña y simple de manera rápida.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Ejemplos de Uso
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Uso Básico&lt;/strong&gt;: Crear una función lambda que sume dos números:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;suma&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;suma&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;  &lt;span class="c1"&gt;# Salida: 5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Ordenar una Lista de Tuplas&lt;/strong&gt;: Utilizar lambda como clave para la función &lt;code&gt;sort&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;lista&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;
&lt;span class="n"&gt;lista&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sort&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;lista&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# Salida: [(5, 0), (3, 1), (1, 2)]
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Filtrar Elementos de una Lista&lt;/strong&gt;: Utilizar lambda con la función &lt;code&gt;filter&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;numeros&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;pares&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;numeros&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pares&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# Salida: [2, 4, 6]
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Cuándo Usar Funciones Lambda
&lt;/h3&gt;

&lt;p&gt;Las funciones lambda son ideales para operaciones simples y cortas que se utilizan una sola vez, como argumentos para funciones de orden superior (&lt;code&gt;map&lt;/code&gt;, &lt;code&gt;filter&lt;/code&gt;, &lt;code&gt;sorted&lt;/code&gt;). Sin embargo, para operaciones más complejas, es mejor definir una función con &lt;code&gt;def&lt;/code&gt; para mejorar la legibilidad y el mantenimiento del código.&lt;/p&gt;

&lt;p&gt;——&lt;/p&gt;

&lt;p&gt;Espero que esta pequeña guía te ayude a comprender y utilizar las funciones lambda en Python de manera efectiva. &lt;/p&gt;

&lt;p&gt;¡Feliz codificación!&lt;/p&gt;

</description>
      <category>python</category>
    </item>
  </channel>
</rss>
