<?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" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ Hugo Avila - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Descubre miles de cursos de programación escritos por expertos. Aprende Desarrollo Web, Ciencia de Datos, DevOps, Seguridad y obtén asesoramiento profesional para desarrolladores. ]]>
        </description>
        <link>https://www.freecodecamp.org/espanol/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Hugo Avila - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/espanol/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Sun, 17 May 2026 04:15:14 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/espanol/news/author/hugo/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Como Usar Fetch para Solicitudes AJAX en JavaScript ]]>
                </title>
                <description>
                    <![CDATA[ Estaré compartiendo regularmente pequeños aprendizajes acerca de JavaScript en estas series. Cubriremos fundamentos de JS, navegadores, DOM, diseño de sistema, arquitectura de dominio y frameworks. Fetch es una interfaz para hacer solicitudes AJAX [https://developer.mozilla.org/es/docs/Web/Guide/AJAX] en JavaScript. Actualmente es ampliamente implementado por los navegadores modernos [https://caniuse.com/fetch] y es usado generalmente para ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/como-usar-fetch-para-solicitudes-ajax-en-javascript/</link>
                <guid isPermaLink="false">5fee41ed8c7cd154bb982825</guid>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Hugo Avila ]]>
                </dc:creator>
                <pubDate>Fri, 05 Feb 2021 06:29:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2021/04/hands.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Estaré compartiendo regularmente pequeños aprendizajes acerca de JavaScript en estas series. Cubriremos fundamentos de JS, navegadores, DOM, diseño de sistema, arquitectura de dominio y frameworks.</p><p>Fetch es una interfaz para hacer solicitudes <a href="https://developer.mozilla.org/es/docs/Web/Guide/AJAX">AJAX</a> en JavaScript. Actualmente es ampliamente <a href="https://caniuse.com/fetch">implementado por los navegadores modernos</a> y es usado generalmente para hacer una solicitud a un API.</p><pre><code class="language-javascript">const promesa = fetch(url, [options]);</code></pre><p>Una solicitud fetch regresa una promesa, la cual es un objeto del tipo <a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/Promise">Promesa</a> (promise), que finalmente resolverá con un objeto del tipo <a href="https://developer.mozilla.org/es/docs/Web/API/Response">Response</a>. La promesa será rechazada si sucede un error de red, y será resuelta si no hay problema conectando al servidor y el servidor responde con algún código de estatus. Este estatus podría ser 200´s, 400´s o 500´s.</p><p>Ejemplo de solicitud fetch:</p><pre><code class="language-javascript">fetch(url)
    .then(response =&gt; response.json())
    .catch(err =&gt; console.log(err))</code></pre><p>La solicitud es enviada con el método <a href="https://developer.mozilla.org/es/docs/Web/HTTP/Methods/GET">GET</a> por defecto. Para enviar una solicitud del tipo POST / PATCH / DELETE / PUT, se debe utilizar la propiedad <code>method</code> como parte del parámetro <code>options</code>. Algunos otros valores posibles para <code>options</code> son:</p><ul><li><code>method</code>: tales como GET, POST, PATCH</li><li><code>headers</code>: un objeto del tipo Header</li><li><code>mode</code>: tales como <code>cors</code>, <code>no-cors</code>, <code>same-origin</code></li><li><code>cache</code>: el modo de cache para la solicitud</li><li><code>credentials</code>: en ocasiones requeridas para identificarse en la API destino</li><li><code>body</code>: el contenido de la solicitud</li></ul><p><a href="https://developer.mozilla.org/es/docs/Web/API/WindowOrWorkerGlobalScope/fetch">Sigue este link para ver la lista completa de opciones disponibles.</a></p><p>El siguiente ejemplo muestra el uso de fetch, la cual hace una solicitud a la API de GitHub para obtener una lista de repositorios git.</p><pre><code class="language-javascript">const url = 'https://api.github.com/users/shrutikapoor08/repos'; 

fetch(url)
    .then(response =&gt; response.json())
    .then(repos =&gt; { 
    	const reposList = repos.map(repo =&gt; repo.name);
    	console.log(reposList);
    })
    .catch(err =&gt; console.log(err))</code></pre><p>Para hacer una solicitud con el método POST, utilizaremos el parámetro <code>method</code>. En el siguiente ejemplo se hace una solicitud asíncrona, con la sintaxis async/await. </p><pre><code class="language-javascript">const params = { id: 123 }

const response = await fetch('url', { 
    method: 'POST', 
    headers: { 'Content-Type': 'application/json' }, 
    body: JSON.stringify(params) 
});

const data = await response.json();</code></pre><p> </p><!--kg-card-begin: html--><hr><!--kg-card-end: html--><h3 id="-interesado-en-m-s-aprendizajes-peque-os-de-javascript-subscr-bete-al-bolet-n-del-autor-en-ingles-">¿Interesado en más aprendizajes pequeños de JavaScript? <a href="https://tinyletter.com/shrutikapoor">Subscríbete al boletín del autor</a> &nbsp;(en ingles)</h3><p></p><p>Traducido del artículo de<strong> <a href="https://www.freecodecamp.org/news/author/shrutikapoor08/">Shruti Kapoor</a> - <a href="https://www.freecodecamp.org/news/how-to-use-fetch-api/">How to Use Fetch to Make AJAX Calls in JavaScript</a></strong></p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ ¿Qué es TLS? Encriptación de Seguridad de Capa de Transporte Explicado en un Español Simple ]]>
                </title>
                <description>
                    <![CDATA[ Si quieres tener una conversación confidencial con alguien que conoces, podrías reunirte con él o ella en persona y encontrar un lugar privado para hablar. Pero si quieres enviar datos de forma confidencial por internet, quizás debas cubrir estas consideraciones adicionales. TLS o Seguridad de Capa de Transporte, se refiere ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/que-is-tls-explicado-en-espanol-simple/</link>
                <guid isPermaLink="false">5fd954e38c7cd154bb97718b</guid>
                
                    <category>
                        <![CDATA[ Ciberseguridad ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Hugo Avila ]]>
                </dc:creator>
                <pubDate>Tue, 22 Dec 2020 13:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2020/12/13466286-1BED-4E1F-A3BE-92A971BBF635.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Si quieres tener una conversación confidencial con alguien que conoces, podrías reunirte con él o ella en persona y encontrar un lugar privado para hablar.</p><p>Pero si quieres enviar datos de forma confidencial por internet, quizás debas cubrir estas consideraciones adicionales.</p><p>TLS o Seguridad de Capa de Transporte, se refiere a un protocolo. "Protocolo" es una palabra que significa, "la forma en la que acordamos hacer las cosas por aquí", más o menos.</p><p>La parte de "capa de transporte" simplemente se refiere a la comunicación host-to-host, como la forma en que interactúan un servidor y un cliente, en la <a href="https://es.wikipedia.org/wiki/Familia_de_protocolos_de_internet">familia de protocolos de Internet.</a></p><p>El protocolo TLS intenta resolver estos problemas fundamentales:</p><ul><li>¿Cómo aseguro que tú eres quien dices ser?</li><li>¿Cómo aseguro que este mensaje que viene de ti, no ha sido manipulado?</li><li>¿Cómo podemos comunicarnos de forma segura?</li></ul><p>A continuación, veremos como funciona TLS, explicado en español sencillo. Como en todas las interacciones exitosas, todo inicia con un "handshake".</p><h2 id="conoci-ndote">Conociéndote</h2><p>El proceso básico de <a href="https://es.wikipedia.org/wiki/Seguridad_de_la_capa_de_transporte#Handshake_TLS">TLS handshake</a> involucra un cliente, como puede ser tu navegador de internet, y un servidor, como uno de hospedaje web que almacena una página, estableciendo algunas reglas para la comunicación.</p><p>Todo empieza cuando el cliente dice hola. Literalmente. Este mensaje es llamado <em>ClientHello.</em></p><p>El ClientHello le dice al servidor cuales versiones del protocolo TLS y suite de cifrado soporta.</p><p>Aunque "suite de cifrado" suena como una mejora en un hotel de lujo, en realidad se refiera a un set de algoritmos que pueden ser utilizados para asegurar las comunicaciones.</p><p>El servidor, en un mensaje llamado <em>ServerHello</em>, elije cuál de las versiones de protocolo y suite de cifrado de las ofrecidas por el cliente usará. Algunos datos adicionales podrían ser enviados, por ejemplo, el <em>ID de la sesión</em>, si es que el servidor soporta restablecimiento de "handshake" anterior.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/espanol/news/content/images/2020/12/imagen-14.png" class="kg-image" alt="imagen-14" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2020/12/imagen-14.png 600w, https://www.freecodecamp.org/espanol/news/content/images/size/w1000/2020/12/imagen-14.png 1000w, https://www.freecodecamp.org/espanol/news/content/images/2020/12/imagen-14.png 1250w" sizes="(min-width: 720px) 720px" width="1250" height="1250" loading="lazy"><figcaption>Caricatura de una ventana de navegador saludando, por <a href="https://www.freecodecamp.org/news/author/victoria/">Victoria Drake</a></figcaption></figure><p>Dependiendo de la suite de cifrado elegido, el cliente y el servidor intercambian información adicional para establecer un secreto compartido.</p><p>Frecuentemente, este proceso se mueve del intercambio de criptografía asimétrica a criptografía simétrica, con diferentes niveles de complejidad. Exploremos estos conceptos a nivel general y verás porque importan para TLS.</p><h2 id="inicio-asim-trico">Inicio Asimétrico</h2><p>Esto es asimetría:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/espanol/news/content/images/2020/12/imagen-15.png" class="kg-image" alt="imagen-15" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2020/12/imagen-15.png 600w, https://www.freecodecamp.org/espanol/news/content/images/size/w1000/2020/12/imagen-15.png 1000w, https://www.freecodecamp.org/espanol/news/content/images/size/w1600/2020/12/imagen-15.png 1600w, https://www.freecodecamp.org/espanol/news/content/images/2020/12/imagen-15.png 2000w" sizes="(min-width: 720px) 720px" width="2000" height="1333" loading="lazy"><figcaption>huevo pequeño, huevo grande.</figcaption></figure><p>La criptografía asimétrica es un método por el cual puedes realizar autentificación. Cuando te autentificas, tu respondes a la pregunta fundamental, "¿Cómo sé que tu eres quien dices ser?"</p><p>En un sistema criptográfico asimétrico, utilizas un par de llaves para lograr la autentificación. Estas llaves son asimétricas. Una es tu llave pública, la cual, como pudiste imaginar, es pública. La otra es tu llave privada, la cual - bueno, tu sabes.</p><p>Típicamente, durante el "handshake" de TLS, el servidor proveerá su llave pública por medio de su certificado digital, algunas veces llamado <em>certificado SSL</em>, aunque en realidad TLS reemplaza el protocolo obsoleto Secure Sockets Layer (SSL).</p><p>Los certificados digitales son proporcionados y verificados por un tercero confiable, conocidos como <a href="https://en.wikipedia.org/wiki/Certificate_authority">Certificate Authorities (CA)</a>, los cuales requerirían otro artículo completo.</p><p>Mientras cualquiera puede encriptar un mensaje utilizando tu llave pública, solo tu llave privada puede descifrar ese mensaje.</p><p>La seguridad de la criptografía asimétrica se basa solo en que tu llave privada se mantiene privada, por eso la asimetría.</p><p>También es asimétrica en el sentido que es solo viaje de un solo sentido. Alicia te puede enviar mensajes encriptados con tu llave pública, pero ninguna de tus llaves te servirá para enviar un menaje encriptado a Alicia.</p><h2 id="secretos-de-asimetr-a">Secretos de Asimetría</h2><p>La criptografía asimétrica requiere mas recursos computacionales que la criptografía simétrica.</p><p>Por ello cuando el TLS handshake inicia con un intercambio asimétrico, el cliente y el servidor usará esta comunicación inicial para establecer un secreto compartido, algunas veces llamada <em>llave de sesión</em>. Esta llave es simétrica, significa que ambos extremos usan el mismo secreto compartido y deben mantener este secreto para que la encriptación sea segura.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/espanol/news/content/images/2020/12/imagen-16.png" class="kg-image" alt="imagen-16" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2020/12/imagen-16.png 600w, https://www.freecodecamp.org/espanol/news/content/images/size/w1000/2020/12/imagen-16.png 1000w, https://www.freecodecamp.org/espanol/news/content/images/size/w1600/2020/12/imagen-16.png 1600w, https://www.freecodecamp.org/espanol/news/content/images/2020/12/imagen-16.png 2000w" sizes="(min-width: 720px) 720px" width="2000" height="1000" loading="lazy"><figcaption>Una persona sabia dice: comparte tu llave pública, pero mantén privadas las llaves compartidas.</figcaption></figure><p>‌Utilizando inicialmente la comunicación asimétrica para establecer la llave de sesión, el cliente y el servidor pueden confiar en que la llave de sesión sea conocida solo por ellos dos. Para el resto de la sesión, ellos utilizan esta misma llave compartida para encriptar y descifrar los menajes, lo cual agiliza la comunicación.</p><h2 id="sesiones-seguras">Sesiones seguras</h2><p>El TLS handshake &nbsp;puede utilizar criptografía asimétrica u otra suite de cifrado para establecer la llave de sesión compartida. Una vez que esta llave de sesión es establecida, la parte del "handshake" esta completada y la sesión inicia.</p><p>La <em>sesión </em>es la duración de la comunicación encriptada entre el cliente y el servidor. Durante este tiempo, los mensajes son encriptados y descifrados utilizando la llave de sesión que solo el cliente y el servidor tienen. Esto asegura que la comunicación es segura.</p><p>La integridad de la información intercambiada es mantenida utilizando una comprobación (checksum). Los mensajes intercambiados utilizando la llave de sesión llevan adjunto un <a href="https://es.wikipedia.org/wiki/C%C3%B3digo_de_autenticaci%C3%B3n_de_mensaje">código de autentificación de mensaje (MAC)</a>. El MAC es generado y verificado utilizando la llave de sesión.</p><p>Debido a esto, cualquiera de los dos puede detectar si el mensaje ha sido cambiado antes de recibirlo. Esto resuelve la pregunta fundamental, "¿Cómo aseguro que el mensaje que enviaste no ha sido manipulado?"</p><p>Las sesiones pueden terminar deliberadamente, podría ser debido a una desconexión de red, o porque el cliente no interactúa por mucho tiempo. Una vez que termina la sesión, para continuar la comunicación, ésta deberá ser reestablecida por medio de un nuevo "handshake" o por medio de la sesión previamente establecida llamada<em> ID de sesión</em>, que permite continuar la sesión anterior.</p><h2 id="tls-y-tu">TLS y tu</h2><p>Resumiendo:</p><ul><li>TLS es un protocolo criptográfico para proveer comunicación segura.</li><li>El proceso de crear una conexión segura inicia con un "handshake".</li><li>Después del "handshake", se establece la llave de sesión compartida, que será utilizada para asegurar los mensajes y proveer integridad a los mismos.</li><li>Las sesiones son temporales, y una vez terminadas, se deben reestablecer o resumir.</li></ul><p>Este es solo solo un desnatado a nivel de superficie, de un muy complejo sistema criptográfico que ayuda a mantener las comunicaciones seguras. Para adentrarse más en este tópico, recomiendo explorar las suites de cifrado y los <a href="https://en.wikipedia.org/wiki/Cipher_suite#Supported_algorithms">algoritmos soportados</a>.</p><p>El protocolo TLS sirve para un propócito muy importante en tu vida diaria. Ayuda a asegurar los correos de tu familia, tus actividades bancarias en línea y la conexión por la cual estas leyendo este artículo.</p><p>El protocolo de comunicación HTTPS es encriptado utilizando TLS. Cada vez que vez ese pequeño candado en la barra de dirección de tu navegador, estas experimentando de primera mano todos los conceptos que acabas de leer en este artículo.</p><p>Entonces ahora tú sabes la respuesta a la última pregunta: "¿Cómo puedo comunicarme de forma segura?"</p><p>Traducido del artículo de <a href="https://www.freecodecamp.org/news/author/victoria/"><strong>Victoria Drake</strong></a> <strong>- </strong><a href="https://www.freecodecamp.org/news/what-is-tls-transport-layer-security-encryption-explained-in-plain-english/"><strong>What is TLS? Transport Layer Security Encryption Explained in Plain English</strong></a></p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Declaración SQL Create Table - Con Sintaxis de Ejemplo ]]>
                </title>
                <description>
                    <![CDATA[ SQL es uno de los lenguajes de consulta más confiables y sencillos. Provee una sintaxis clara, la cual se lee fácilmente sin muchas abstracciones alejadas del significado real de la funcionalidad. Si quisieras algo de historia del lenguaje, así como algunos echos interesantes, puedes leer la parte de la introducción ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/create-table-sql-server-con-ejemplo/</link>
                <guid isPermaLink="false">5fd68d2c8c7cd154bb975fb2</guid>
                
                    <category>
                        <![CDATA[ SQL ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Hugo Avila ]]>
                </dc:creator>
                <pubDate>Mon, 21 Dec 2020 13:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2021/04/photo-1563891192281-b9fd8adce4d0.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>SQL es uno de los lenguajes de consulta más confiables y sencillos. Provee una sintaxis clara, la cual se lee fácilmente sin muchas abstracciones alejadas del significado real de la funcionalidad.</p><p>Si quisieras algo de historia del lenguaje, así como algunos echos interesantes, puedes leer la parte de la introducción del artículo <a href="https://www.freecodecamp.org/news/sql-update-statement-example-queries-for-updating-table-values/">SQL Update Statement article</a>.</p><p>En este artículo, recorreremos las partes más importantes de la creación de una tabla en SQL. Mi "sabor" preferido de SQL es SQL Server, pero la información acerca de la creación de tablas es algo ubicua entre todas las variaciones de SQL.</p><p>Si nunca antes usaste SQL o no sabes lo que es una tabla, ¡no temas! En resumen, una tabla es un objeto de una base de datos que almacena o contiene los datos dentro de esa porción de la base de datos. Almacena los datos dentro de columnas nombradas y renglones numerados, la cual te será familiar si has utilizado programas de hojas de cálculo. Cada renglón representa un registro de la base de datos completa.</p><p>Si los datos fueran cajas, una tabla sería una sección de los estantes de la bodega donde almacenamos las cajas.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/espanol/news/content/images/2020/12/imagen-11.png" class="kg-image" alt="imagen-11" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2020/12/imagen-11.png 600w, https://www.freecodecamp.org/espanol/news/content/images/size/w1000/2020/12/imagen-11.png 1000w, https://www.freecodecamp.org/espanol/news/content/images/size/w1600/2020/12/imagen-11.png 1600w, https://www.freecodecamp.org/espanol/news/content/images/2020/12/imagen-11.png 2000w" sizes="(min-width: 720px) 720px" width="2000" height="1276" loading="lazy"><figcaption>Foto por <a href="https://unsplash.com/@nananadolgo?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Nana Smirnova</a> en <a href="https://unsplash.com/s/photos/warehouse?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></figcaption></figure><p>Estoy simplificando la explicación bastante, y hay mucha más información sobre las tablas SQL, pero eso está fuera del alcance de este artículo. Si estas ansioso por más información sobre tablas, te recomiendo profundizar en la documentación de Microsoft Database Design.</p><p>Antes de aprender cómo crear una tabla, es importante aprender cuales son los tipos de datos que pueden almacenar las columnas.</p><h2 id="tipos-de-datos">Tipos de Datos</h2><p>Las tablas SQL pueden almacenar texto, números, combinaciones de texto y números, así como imágenes y enlaces.</p><p>Cuando se crea una tabla, nosotros designamos el tipo de dato que almacenarán los renglones y columnas. A continuación, la clasificación de datos:</p><ul><li>Numéricos Aproximados</li><li>Cadenas</li><li>Fecha y Hora</li><li>Cadenas de Texto Unicode</li><li>Numéricos Exactos</li><li>Otros</li></ul><p>A continuación, enumeraré algunos de los tipos de datos más comunes abajo.</p><p>Aquí tienes los tipos de datos más comúnmente usados de acuerdo a mi experiencia, sin ningún orden particular:</p><ul><li>char(tamaño) - cadena de tamaño <em>fijo </em>que puede contener letras, números, caracteres especiales</li><li>varchar(tamaño) - cadena de tamaño <em>variable </em>que puede contener letras, números, y caracteres especiales</li><li>boolean - Cero (o valores que son igual a 0) es falso, no-cero es verdadero</li><li>int(<em>tamaño opcional</em>) - un número de hasta 10 caracteres en longitud, acepta números negativos y positivos</li><li>bigint(<em>tamaño opcional</em>) - un numero de hasta 19 caracteres en longitud, acepta números negativos y positivos.</li><li>float(tamaño, d) - un número donde el tamaño total del número es representado por el tamaño y la cantidad de caracteres después del punto decimal representado por una d</li><li>date - fecha en el formato YYYY-MM-DD</li><li>datetime - fecha y hora en el formato YYYY-MM-DD <em>hh:mm:ss</em></li><li>time - tiempo en el formato <em>hh:mm:ss</em></li></ul><p>Bien, ahora que sabemos que tipos de datos pueden contener los renglones y las columnas, ¡vamos a la parte divertida!</p><h2 id="creando-una-tabla">Creando una Tabla</h2><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/espanol/news/content/images/2020/12/imagen-12.png" class="kg-image" alt="imagen-12" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2020/12/imagen-12.png 600w, https://www.freecodecamp.org/espanol/news/content/images/size/w1000/2020/12/imagen-12.png 1000w, https://www.freecodecamp.org/espanol/news/content/images/size/w1600/2020/12/imagen-12.png 1600w, https://www.freecodecamp.org/espanol/news/content/images/2020/12/imagen-12.png 2000w" sizes="(min-width: 720px) 720px" width="2000" height="1330" loading="lazy"><figcaption>Foto por <a href="https://unsplash.com/@nikhilmitra?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Nikhil Mitra</a> en <a href="https://unsplash.com/s/photos/create?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></figcaption></figure><p>Antes de que iniciemos, es importante anotar que estaré proporcionando todos mis ejemplos independientes de cualquier programa.</p><p>Sin embargo, si quieres iniciar a escribir consultas y no estás seguro de cómo empezar, echa un vistazo al SQL Server Management Studio. Es gratis, un programa robusto ampliamente usado y soportado por la comunidad.</p><p>Alternativamente, hay muchas opciones incluyendo <a href="https://www.db-fiddle.com/">DB Fiddle</a> que te permite construir esquemas y escribir consultas directamente en tu navegador.</p><p>Empezaremos con una declaración simple para crear una tabla básica:</p><pre><code class="language-sql">CREATE TABLE table_name ( column1_name datatype, column2_name datatype, column3_name datatype, column4_name datatype, column5_name datatype,)</code></pre><p>Hay otros parámetros que podemos adicionar después de <code>datatype</code> para aumentar las columnas:</p><ul><li><code>NOT NULL</code> - pasando este parámetro asegurará que la columna no almacene un valor <code>NULL</code></li><li><code>UNIQUE</code> - pasando este parámetro va a prevenir que la columna almacene el mismo valor más de una vez</li><li><code>UNIQUE KEY</code> - pasando este parámetro designará la columna como identificador único. Esencialmente, es una combinación de los dos parámetros anteriores.</li></ul><p>Ahora, vamos a crear una tabla (nombrada doggo_info, la cual debe adherirse a los identificadores estándar para bases de datos) para almacenar información sobre los residentes de Woof Woff Retreat, un estancia para perros de ficción que se me acaba de ocurrir :)</p><pre><code class="language-sql">CREATE TABLE doggo_info ( ID int UNIQUE KEY, Name varchar(50) NOT NULL, Color varchar(50), Breed varchar(50), Age int, Weight int, Height int, Fav_Food varchar(100), Fav_Toy varchar(100), Dislikes varchar(500), Allergies varchar(500) NOT NULL )	</code></pre><p>Y aquí esta nuestra nueva tabla que acabamos de crear:</p><!--kg-card-begin: html--><table>
    <tbody><tr style="font-weight: bold;">
      <td>Name</td>
      <td>Color</td>
      <td>Breed</td>
      <td>Age</td>
      <td>Weight</td>
      <td>Height</td>
      <td>Fav_Food</td>
      <td>Fav_Toy</td>
      <td>Dislikes</td>
      <td>Allergies</td>
    </tr>
    <tr>
        <td> </td>
        <td> </td>
        <td> </td>
        <td> </td>
        <td> </td>
        <td> </td>
        <td> </td>
        <td> </td>
        <td> </td>
        <td> </td>
    </tr>
</tbody></table><!--kg-card-end: html--><p>‌Notarás que nuestra tabla está completamente vacía y esto es porque no le hemos añadido ningún dato aún. Adicionar datos esta más allá del enfoque de este artículo, pero quería que estuvieras al tanto de esa parte.</p><h3 id="crear-una-tabla-desde-una-tabla-existente">Crear una Tabla desde una Tabla Existente</h3><p>También es posible crear una tabla basándonos en otra tabla preexistente.</p><p>Es muy fácil y no requiere mucha sintaxis adicional. Necesitamos seleccionar la tabla y las columnas desde donde copiar:</p><pre><code class="language-sql">CREATE TABLE new_table_name AS SELECT column1, column2, column3, column4 (usar * para seleccionar todas las columnas para ser adicionadas a la tabla nueva) FROM current_table_name WHERE conditions_exist</code></pre><p>Entonces, convenientemente, he adicionado algunos datos a nuestra tabla <code>doggo_info</code> y ahora se ve como el ejemplo de abajo:</p><!--kg-card-begin: html--><table>
  <tbody><tr><th>
    </th></tr><tr style="font-weight: bold;">
      <td>Name</td>
      <td>Color</td>
      <td>Breed</td>
      <td>Age</td>
      <td>Weight</td>
      <td>Height</td>
      <td>Fav_Food</td>
      <td>Fav_Toy</td>
      <td>Dislikes</td>
      <td>Allergies</td>
    </tr>
  
  </tbody><tbody>
    <tr>
      <td>daisy</td>
      <td>red</td>
      <td>standard dachshund</td>
      <td>1</td>
      <td>14</td>
      <td>6</td>
      <td>salmon flavored kibble</td>
      <td>squeeky ball</td>
      <td>birds flying over the yard</td>
      <td>cats, baths, cleanliness</td>
    </tr>
    <tr>
      <td>chief</td>
      <td>black/tan</td>
      <td>rottweiler</td>
      <td>3</td>
      <td>41</td>
      <td>17</td>
      <td>literally anything</td>
      <td>rope tug</td>
      <td>staying off the couch</td>
      <td>listening, behaving, not slobbering on everything</td>
    </tr>
    <tr>
      <td>sammie</td>
      <td>light honey</td>
      <td>golden retriever</td>
      <td>9</td>
      <td>46</td>
      <td>19</td>
      <td>beef flavored kibble</td>
      <td>her bed</td>
      <td>rambutcious puppies</td>
      <td>none known</td>
    </tr>
  </tbody>
</table><!--kg-card-end: html--><p>Ahora podemos crear otra tabla basada en los datos que tenemos en nuestra tabla <code>doggo_info</code> ejecutando la consulta siguiente:</p><pre><code class="language-sql">CREATE TABLE puppies_only AS SELECT * FROM doggo_info WHERE Age &lt; 4</code></pre><p>Queremos crear una tabla nueva con todas las columnas de la tabla <code>doggo_info</code> pero solo donde las edades son menos de 4. Después de ejecutar esta consulta, nuestra nueva tabla se verá como sigue:</p><!--kg-card-begin: html--><table>
  <tbody><tr><th>
    </th></tr><tr style="font-weight: bold;">
      <td>Name</td>
      <td>Color</td>
      <td>Breed</td>
      <td>Age</td>
      <td>Weight</td>
      <td>Height</td>
      <td>Fav_Food</td>
      <td>Fav_Toy</td>
      <td>Dislikes</td>
      <td>Allergies</td>
    </tr>
  
  </tbody><tbody>
    <tr>
      <td>daisy</td>
      <td>red</td>
      <td>standard dachshund</td>
      <td>1</td>
      <td>14</td>
      <td>6</td>
      <td>salmon flavored kibble</td>
      <td>squeeky ball</td>
      <td>birds flying over the yard</td>
      <td>cats, baths, cleanliness</td>
    </tr>
    <tr>
      <td>chief</td>
      <td>black/tan</td>
      <td>rottweiler</td>
      <td>3</td>
      <td>41</td>
      <td>17</td>
      <td>literally anything</td>
      <td>rope tug</td>
      <td>staying off the couch</td>
      <td>listening, behaving, not slobbering on everything</td>
    </tr>
  </tbody>
</table>
<!--kg-card-end: html--><p>Espero que puedas ver que tan poderosa puede ser esta declaración. &nbsp;Con unas cuantas líneas en nuestra consulta, esencialmente hemos copiado los datos de una tabla a otra, pero solo los renglones que queríamos.</p><p>Esto no solo es una herramienta práctica para tener en tu cinturón de herramientas de desarrollador - esto te ahorrará cantidad de tiempo incalculable cuando necesites mover datos entre tablas. </p><h2 id="resumiendo">Resumiendo</h2><p>Ahora que sabes como crear (o copiar) una tabla en SQL, sin importar la situación que se te presente, ¡puedes ahora iniciar a llenar de datos las columnas y renglones para almacenar!</p><p>La declaración <code>CREATE TABLE</code> es extremadamente útil y poderosa. Tu estas listo para darle buen uso.</p><p>Si este artículo te sirve, revisa el <a href="https://jonathansexton.me/blog">blog</a> (de Jonathan Sexton) donde frecuentemente publica artículos sobre desarrollo web, la vida y aprendizaje.</p><p>Cuando estés ahí, porque no registrarse al boletín. Puedes hacer eso en la parte superior derecha de la página principal del blog. Le gusta enviar artículos interesantes (De Jonathan y de otros), recursos, y herramientas para desarrolladores de vez en cuando.</p><p>Si tienes preguntas sobre este artículo, o solo en genera, déjamelo saber - ven a saludar en <a href="https://twitter.com/jj_goose">Twitter</a> o cualquiera de las otras redes sociales que puedes encontrar abajo el el perfil de FCC :)</p><p>¡Ten un excelente día! ¡Feliz aprendizaje y feliz programación, amigo!</p><p>Traducido del artículo de <strong><a href="https://www.freecodecamp.org/news/author/jonathan/">Jonathan Sexton</a></strong><a href="https://www.freecodecamp.org/news/author/abbey/"> </a>- <strong><a href="https://www.freecodecamp.org/news/sql-create-table-statement-with-example-syntax/">SQL Create Table Statement - With Example Syntax</a></strong></p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ ¿Qué es una red LAN? La Red de Area Local Explicada en un Español Sencillo ]]>
                </title>
                <description>
                    <![CDATA[ La red de área local (LAN) es nada más  una estructura para organizar y proteger las comunicaciones en red para todos los dispositivos conectados dentro de una casa u oficina. Déjame analizar eso un poco. Cuando digo, dentro de una casa u oficina, me refiero a todos los dispositivos conectados ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/que-es-una-red-lan-explicada-en-espanol/</link>
                <guid isPermaLink="false">5fd595048c7cd154bb974f67</guid>
                
                    <category>
                        <![CDATA[ Redes de Computadoras ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Hugo Avila ]]>
                </dc:creator>
                <pubDate>Wed, 16 Dec 2020 13:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2020/12/server-311338_640-1-.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>La red de área local (LAN) es nada más &nbsp;una estructura para organizar y proteger las comunicaciones en red para todos los dispositivos conectados dentro de una casa u oficina.</p><p>Déjame analizar eso un poco. Cuando digo, <em>dentro de una casa u oficina</em>, me refiero a todos los dispositivos conectados a un enrutador, ya sea a través de una conexión física o inalámbrica. El enrutador podría ser un enrutador de punto de acceso WiFi independiente, o el modem que te dio tu proveedor de servicio de internet.</p><p>Por <em>organizar</em>, me refiero a que a cada dispositivo le es otorgada una dirección de identificación y a su vez un acceso al internet más allá de la definición de tu red de área local.</p><p>Y por <em>proteger</em>, me refiero a que, generalmente, las peticiones de tráfico direccionadas a tu dispositivo desde redes externas, serán escanadas y filtradas para ayudar a prevenir accesos no autorizados y potencialmente peligrosos.</p><p>Basado en parte en el libro <a href="https://www.amazon.com/gp/product/1617294934/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1617294934&amp;linkCode=as2&amp;tag=projemun-20&amp;linkId=1a460c0cd9a39e01821133b90632cba8">Linux in Action</a>, intentaré explicar como funciona todo esto funciona.</p><h1 id="direccionamiento-ipv4">Direccionamiento IPv4</h1><p>A continuación un ejemplo de como podría verse. El enrutador en esta imagen tiene una dirección IP publica número 183.23.100.34, con la cual, todo el tráfico de entrada y salida está asociado.</p><p>Al mismo tiempo, el enrutador opera con el servidor de Protocolo de Configuración Huesped Dinámico (DHCP), asignando una dirección de IP privada a todas las PCs, laptops, teléfonos inteligentes y servidores en la casa. Los dispositivos usarán esas direcciones cuando se comunican entre ellos.‌</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2020/12/imagen-9.png" class="kg-image" alt="imagen-9" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2020/12/imagen-9.png 600w, https://www.freecodecamp.org/espanol/news/content/images/size/w1000/2020/12/imagen-9.png 1000w, https://www.freecodecamp.org/espanol/news/content/images/2020/12/imagen-9.png 1502w" sizes="(min-width: 720px) 720px" width="1502" height="901" loading="lazy"></figure><p>‌ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Topología de una red de área local típica.</p><p>Observar que todos los dispositivos locales están descritos como utilizando algo llamado "NAT IP address". NAT significa Traducción de Direcciones de Red, y es el método utilizado para organizar dispositivos dentro de una LAN privada.</p><p>Pero ¿porqué? ¿Qué hay de malo con darle a todos los dispositivos el mismo tipo de dirección IP publica que tiene el enrutador?</p><p>En un principio, estaba IPv4. Las direcciones IPv4 son números de 32-bit formados por cuatro octetos de 8-bit separados por puntos. Así se ven:</p><pre><code>192.168.1.10</code></pre><h1 id="notaci-n-de-sub-red">Notación de Sub-red</h1><p>Debido a que es críticamente importante que los sistemas estén seguros de conocer a que sub-red pertenece cierta dirección, necesitamos una notación estándar que pueda definir de forma precisa cuales octetos son parte de una red y cuales están disponibles para dispositivos.</p><p>Hay dos estandar comunmente utilizados: Rutéo Entre-Dominios Sin Clase (CIDR) y máscara de red.</p><p>Utilizando CIDR, una red podría ser representada como 192.168.1.0/24. El /24 te indica que los primeros tres octetos (8x3=24) definen la porción de red, dejando solo el cuarto octeto para direcciones de red de dispositivos. La segunda red (o sub-red), en CIDR sería descrita como 192.168.2.0/24.</p><p>Estas mismas dos redes podrían describirse por medio de una mascara de red 255.255.255.0. Esto significa que todos los 8 bits de los primeros 3 octetos son usados por la red, pero ninguno del cuarto octeto.</p><h1 id="entendiendo-las-redes-privadas">Entendiendo las Redes Privadas</h1><p>En teoría, el protocolo IPv4 permite alrededor de cuatro billones de direcciones únicas, en el rango desde 1.0.0.0 hasta 255.255.255.255.</p><p>Pero aún si todos los cuatro billones de esas direcciones estuvieran disponibles en la práctica, &nbsp;ni se acercaría a cubrir todos y cada uno de los billones de teléfonos celulares, billones de laptops y computadoras de escritorio, y billones más de vehículos conectados, accesorios, y dispositivos de Internet de las Cosas que ya se encuentran por ahí. Sin decir nada de los millones que están por venir.</p><p>Entonces, los ingenieros de red establecieron tres rangos de direcciones de red IPv4 para ser utilizadas exclusivamente en redes privadas. Los dispositivos usando cualquier dirección de estos rangos, no serán directamente alcanzables desde el internet público y no serán capaces de acceder a recursos de internet. Estos son los rangos:</p><pre><code>Entre 10.0.0.0 y 10.255.255.255
Entre 172.16.0.0 y 172.31.255.255
Entre 192.168.0.0 y 192.168.255.255</code></pre><p>¿Recuerdas que significaba la "T" de NAT?, Era "Traducción". Lo que esto significa es que un enrutador con NAT-habilitado tomará la dirección IP que la red privada utiliza para el tráfico entre la LAN y el internet y la <em>traduce</em> a la dirección pública del enrutador. El enrutador, fiel a su nombre, <em>enrutará</em> esas peticiones a los destinos apropiados.</p><p>Este simple rediseño de direccionamiento de red ahorró muchos billones de direcciones para usarse en dispositivos - como los celulares - que no eran parte de la red privada. Todos esas laptops, PCs, y otros dispositivos funcionando en esas casas y oficinas convenientemente (y sin problemas) compartirán la direcciones IP públicas de su enrutador.</p><p>¿Problema Resuelto? Bueno, no del todo. Como viste, aún y con el uso eficiente de las direcciones IPv4, no son suficiente para la explosión de dispositivos de cara a la red pública que se están poniendo en línea. Para manejar este problema, a los ingenieros de red se les ocurrió el protocolo IPv6. Así es como se ve una dirección IPv6:</p><pre><code>2002:0df6:0001:004b:0100:6c2e:0370:7234</code></pre><p>Eso se ve horrible, ¿no es verdad? Y se ve como un número mucho más grande a comparación con el ejemplo del debilucho IPv4 visto anteriormente.</p><p>Si y si. Tengo muy bien memorizadas algunas direcciones IPv4, pero pero nunca he intentado "descargar" alguno de esos monstruos.</p><p>Por alguna razón, es hexadecimal, lo que significa que utiliza números entre el 0 y el 9 y las primeras seis letras del alfabeto (a-f)! Aunado a esto, tiene ocho octetos en lugar de 4 y la dirección es de 128-bit en lugar de 32-bit.</p><p>Todo esto significa que, una vez que el protocolo esté implementado completamente, no estaremos en riesgo de que se acaben las direcciones por mucho, mucho tiempo (significando: para siempre). Y lo que so significa es que, desde la perspectiva de la distribución de direcciones, no habrá más necesidad de las redes privadas NAT.</p><p>Sin embargo, por consideraciones de seguridad, aún te conviene dar alguna protección a tus dispositivos dentro de tu LAN.</p><p>Traducido del artículo de <strong><a href="https://www.freecodecamp.org/news/author/david/">David Clinton</a> - <a href="https://www.freecodecamp.org/news/what-is-a-lan-local-area-network-explained-in-plain-english/">What is a LAN? The Local Area Network Explained in Plain Englis</a></strong></p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ ¿Qué es un Archivo PDF y Cómo lo Abres? [Resuelto] ]]>
                </title>
                <description>
                    <![CDATA[ Probablemente has encontrado un PDF en algún lugar en internet. Quizás estabas descargando una forma para imprimir o para llenarla, o quizás estabas haciendo tus impuestos. Entonces, ¿qué es este formato de archivo ubicuo?, ¿cuándo es útil?, y ¿cómo abres un archivo PDF que alguien te envía? En esta guía ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/que-es-un-archivo-pdf-como-lo-abres/</link>
                <guid isPermaLink="false">5fd431588c7cd154bb973b70</guid>
                
                    <category>
                        <![CDATA[ Computadoras ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Hugo Avila ]]>
                </dc:creator>
                <pubDate>Mon, 14 Dec 2020 13:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2021/04/photo-1515378960530-7c0da6231fb1.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Probablemente has encontrado un PDF en algún lugar en internet. Quizás estabas descargando una forma para imprimir o para llenarla, o quizás estabas haciendo tus impuestos.</p><p>Entonces, ¿qué es este formato de archivo ubicuo?, ¿cuándo es útil?, y ¿cómo abres un archivo PDF que alguien te envía? En esta guía vamos a responder esas preguntas.</p><h2 id="-qu-es-un-archivo-pdf">¿Qué es un archivo PDF?</h2><p>Un PDF, o Formato de Documento Portable (Portable Document Format), es un tipo de documento que se ve igual independientemente de la aplicación que se utilice para abrirlo. No puedes escribir directamente y no lo puedes editar.</p><p>Esto significa que cualquier persona, en cualquier tipo de computadora con cualquier programa instalado, será capaz de abrirlo y ver el documento. Y se verá como el creador tenía la intención que luciera.</p><p>¿Porqué de la inflexibilidad? Todos quieren formas responsivas hoy en día, ¿verdad?, Bueno, en realidad no, no siempre.</p><h2 id="cuando-usar-un-archivo-pdf">Cuando usar un archivo PDF</h2><p>Digamos que estas creando un ejemplo realmente genial de un currículum perfecto, el cual quieres compartir con tus amigos reclutadores.</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2020/09/resume-formatting.png" class="kg-image" alt="resume-formatting" width="600" height="400" loading="lazy"><figcaption>Tu querido Currículum - en Microsoft Word.</figcaption></figure><p>Quizás lo escribiste en Microsoft Word. Pero quieres enviarlo a alguien que no tiene Word instalado en su computadora. ¡Uff!</p><p>Entonces ¿cómo aseguras que esa persona pueda ver el formato, imágenes y el resto como debería verse, como el original? Fácil – solo guarda tu currículum en formato PDF.</p><h2 id="como-guardar-un-documento-como-pdf">Como guardar un documento como PDF</h2><p>Para lograrlo, (en Mac) ve a la pestaña File en el menú de Microsoft Word en la parte superior de tu pantalla. Clic y busca la opción "Save As..." o "Guardar Como..." dependiendo del lenguaje de tu aplicación.</p><p>Se mostrará la siguiente ventana, y notarás que por default está seleccionada la opción "Word Document (.docx)" – justo al lado de "File Format".</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2020/09/save-as-pdf.png" class="kg-image" alt="save-as-pdf" width="600" height="400" loading="lazy"><figcaption>Clic en "File", después en "Save As" - Después has clic en el menu desplegable junto a "File Format".</figcaption></figure><p>Desplazar hacia abajo hasta que veas la opción de PDF (a media pantalla de la captura anterior) y da clic en ella.</p><p>A continuación, verás la siguiente ventana, con un par de opciones. Selecciona la opción "Printable" si quieres imprimir la forma, o selecciona la opción "online" si quieres enviarle el archivo a alguien más.</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/news/content/images/2020/09/export-and-save-pdf.png" class="kg-image" alt="export-and-save-pdf" width="600" height="400" loading="lazy"></figure><p>Una vez que has hecho la selección, solo necesitas decidir donde quieres guardar el archivo PDF. Puedes ver que la opción "Desktop – iCloud" esta seleccionada en la imagen anterior. Pero puedes elegir el lugar que gustes.</p><p>Por último, presiona el botón "Export" en la parte baja derecha de la ventana. (En este ejemplo se ve en color rosa, donde regularmente está el botón de guardar)</p><p>Tu archivo PDF será guardado en la ubicación que elegiste anteriormente.</p><h2 id="como-abrir-un-archivo-pdf">Como abrir un archivo PDF</h2><p>Digamos que quieres abrir un archivo PDF. O alguien te envió un PDF y necesitas abrirlo. Si tienes un sistema operativo y navegador moderno, será un proceso directo.</p><h3 id="como-abrir-un-pdf-desde-tu-escritorio">Como abrir un PDF desde tu escritorio</h3><p>Bien, si tú mismo guardaste ese archivo en tu escritorio (como lo describimos en los párrafos anteriores), solo ve a tu escritorio (quizás cerrando las ventanas que tienes abiertas) y busca tu archivo PDF.</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2020/09/pdf-on-desktop.png" class="kg-image" alt="pdf-on-desktop" width="600" height="400" loading="lazy"><figcaption>Tu pequeño PDF esperando a ser abierto.</figcaption></figure><p>Ahora simplemente haz doble clic en el ícono, o haz clic derecho y selecciona la opción "Open". Tu PDF se abrirá en tu pantalla como la siguiente imagen:</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2020/09/PDF-resume-saved.png" class="kg-image" alt="PDF-resume-saved" width="600" height="400" loading="lazy"><figcaption>Puedes desplazar hacia abajo para ver el PDF completo. Ahora esta listo para imprimir o adjuntarse a un correo para enviarse!</figcaption></figure><h3 id="como-abrir-un-pdf-de-un-correo-electr-nico">Como abrir un PDF de un correo electrónico</h3><p>Si alguien te envía un PDF, digamos por correo, igualmente es muy sencillo abrirlo y verlo.</p><p>Para empezar, abre tu correo y busca el archivo PDF adjunto:</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2020/09/pdf-emailed-2.png" class="kg-image" alt="pdf-emailed-2" width="600" height="400" loading="lazy"><figcaption>Puedes hacer clic para abrirlo o descargarlo.</figcaption></figure><p>Puedes hacer clic directamente en la imagen del archivo PDF, si es que solo quieres abrirlo y verlo ahí mismo.</p><p>O alternativamente puedes hacer clic en el ícono de flecha (aparecerá cuando pones el mouse sobre el recuadro del adjunto) para que puedas descargarlo a tu computadora.</p><p>Si lo descargaste, ahora puedes buscar el archivo en tu directorio de descargas cuando estés listo.</p><p><strong>Una nota rápida</strong>: si no puedes abrir el archivo PDF en tu navegado (si tu sistema operativo no está actualizado), solo necesitas descargar e instalar un lector de PDF.</p><p>Si quieres una opción de código abierto, <a href="https://www.sumatrapdfreader.org/free-pdf-reader.html">echa un vistazo a Sumatra PDF aquí</a>.</p><h3 id="bono-c-mo-env-as-un-archivo-pdf-con-gmail">Bono: ¿cómo envías un archivo PDF con Gmail?</h3><p>Si quieres enviar el PDF que creaste – digamos vía correo electrónico –, es simple. </p><p>Solo abre tu correo y crea un nuevo correo. Cuando estés listo para enviarlo, necesitarás adicionar el PDF como un adjunto.</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2020/09/attach-a-pdf.png" class="kg-image" alt="attach-a-pdf" width="600" height="400" loading="lazy"><figcaption>Localiza el ícono en forma de clip (Gmail) y haz clic en el.</figcaption></figure><p>Localiza el ícono de clip en Gmail y da clic sobre él. Esto abrirá la lista de archivos de tu computadora.</p><p>Si haces clic en "Recent" o "Recientes" en el menú de la izquierda, deberás encontrar ahí tu archivo PDF. (También puedes buscar el archivo por nombre en la barra de búsqueda ubicada arriba a la derecha)</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2020/09/attach-saved-pdf-2.png" class="kg-image" alt="attach-saved-pdf-2" width="600" height="400" loading="lazy"><figcaption>Localiza tu PDF o lo que quieras adjuntar en tus archivos. Clic en el archivo y presiona "Open".</figcaption></figure><p>Solo haz clic en el archivo que quieres adjuntar, y después has clic en "Open" abajo a la derecha. Esto adjuntará tu PDF (no lo abrirá - el texto de ese botón es algo engañoso)</p><p>Y voilà, estas listo para enviar tu PDF por correo electrónico.</p><p>Traducido del artículo de <a href="https://www.freecodecamp.org/news/author/abbey/"><strong>Abbey Rennemeyer</strong> </a>- <a href="https://www.freecodecamp.org/news/what-is-a-pdf-file-and-how-do-you-open-it-solved/"><strong>What Is a PDF File and How Do You Open It? [Solved]</strong></a></p> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
