<?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[ Diego Lopez - 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[ Diego Lopez - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/espanol/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Thu, 14 May 2026 19:58:33 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/espanol/news/author/diego-lopez/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Estadística para Ciencia de Datos: Una Guía Completa para Aspirantes a Practicantes de ML ]]>
                </title>
                <description>
                    <![CDATA[ En este mundo hiperconectado, los datos se generan y consumen a un ritmo sin precedentes. Por mucho que disfrutemos de esta superconductividad de datos, también invita al abuso. Los profesionales de datos deben estar capacitados para utilizar métodos estadísticos no solo para interpretar números, sino también para descubrir tales abusos ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/estadistica-para-ciencia-de-datos-una-guia-completa-para-aspirantes-a-practicantes-de-ml/</link>
                <guid isPermaLink="false">6722db2d62fb9a044255788e</guid>
                
                    <category>
                        <![CDATA[ Aprendizaje Automatico ]]>
                    </category>
                
                    <category>
                        <![CDATA[ ciencia de datos ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Estadística ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Diego Lopez ]]>
                </dc:creator>
                <pubDate>Tue, 12 Nov 2024 02:32:39 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2024/11/image-1-1.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>En este mundo hiperconectado, los datos se generan y consumen a un ritmo sin precedentes.</p><p>Por mucho que disfrutemos de esta superconductividad de datos, también invita al abuso. Los profesionales de datos deben estar capacitados para utilizar métodos estadísticos no solo para interpretar números, sino también para descubrir tales abusos y protegernos de ser engañados.</p><p>No muchos científicos de datos tienen una formación formal en estadística. También hay muy pocos libros y cursos buenos que enseñen estos métodos estadísticos desde una perspectiva de ciencia de datos.</p><p>A través de esta publicación, pretendo arrojar algo de luz sobre lo siguiente:</p><ul><li>¿Qué es estadística?</li><li>Estadística en relación con el aprendizaje de máquina.</li><li>¿Por qué debes profesionalizarte en estadística?</li><li>¿Qué curriculum debes seguir para dominar estos temas?</li><li>¿Cómo estudiar estadística para convertirse en un practicante en lugar de un examinador?</li><li>Consejos prácticos y recursos de aprendizaje.</li></ul><h2 id="-qu-es-estad-stica">¿Qué es Estadística?</h2><p>La estadística es un conjunto de métodos y herramientas matemáticas que nos permiten responder preguntas importantes sobre los datos. Se divide en dos categorías:</p><ol><li><strong>Estadística Descriptiva:</strong> este ofrece métodos para resumir datos transformando observaciones sin modificar en información significativa que sea fácil de interpretar y compartir.</li><li><strong>Estadística Inferencial</strong>: este ofrece métodos para estudiar experimentos hechos en pequeños ejemplos de datos y eliminar las interferencias a toda la población (dominio entero).</li></ol><p>Ahora, las estadísticas y el aprendizaje automático son dos áreas de estudio estrechamente ralacionadas. Las estadísticas es un pre-requisito importante para el aprendizaje automático aplicado, ya que nos ayuda a seleccionar, evaluar e interpretar modelos predictivos. </p><h2 id="estad-sticas-y-aprendizaje-autom-tico">Estadísticas y Aprendizaje Automático</h2><p>El núcleo principal del aprendizaje automático está centrado alrededor de las estadísticas. No puedes resolver problemas del mundo real con aprendizaje automático si no tienes un buen conocimiento de los fundamentos estadísticos.</p><p>Ciertamente hay factores que hacen el aprendizaje de estadística muy difícil. Hablo acerca de las ecuaciones matemáticas, notación griega, y conceptos meticulosamente definidos que hace difícil generar interés en el tema.</p><p>Podemos abordar estos problemas con explicaciones claras y simples, tutoriales a un ritmo adecuado, y proyectos prácticos para resolver problemas con métodos estadísticos aplicados.</p><p>Desde el análisis de datos exploratorio a el diseño de experimentos de pruebas de hipótesis, las estadísticas juegan un rol importante en resolución de problemas principales que abarcan todas las industrias y dominios.</p><p>Cualquiera que desee desarrollar una comprensión profunda del aprendizaje automático debe aprender cómo los métodos estadísticos forman la base de los algoritmos de regresión y clasificación, cómo las estadísticas nos permiten aprender de los datos y cómo nos ayudan a extraer significado de datos no etiquetados.</p><h2 id="-por-qu-debes-dominar-la-estad-stica">¿Por qué debes dominar la estadística?</h2><p>Cada organización se esfuerza por convertirse en una organización basada en datos. Por eso estamos siendo testigos de un aumento en la demanda de cientifícos y analistas de datos.</p><p>Ahora, para resolver problemas, responder preguntas, y trazar una estrategia, necesitamos hacer sentido de los datos. Afortunadamente, las estadísticas ofrecen una colección de herramientas para producir esos resultados.</p><h3 id="de-los-datos-al-conocimiento">De los datos al conocimiento</h3><p>De manera aislada, las observaciones sin modificar son solo datos. Utilizamos estadísticas descriptivas para transformar estas observaciones en información que tenga sentido. </p><p>Luego podemos utilizar estadísticas inferenciales para estudiar pequeñas muestras de datos y extrapolar nuestros hallazgos a toda la población.</p><h3 id="las-estad-sticas-ayudan-a-responder-preguntas-como-">Las estadísticas ayudan a responder preguntas como...</h3><ul><li>¿Qué características son las más importantes?</li><li>¿Cómo deberíamos diseñar el experimento para desarrollar nuestra estrategia de producto?</li><li>¿Qué métricas de rendimiento deberíamos medir?</li><li>¿Cuál es el resultado más común y esperado?</li><li>¿Cómo diferenciamos entre ruido y datos válidos?</li></ul><p>Todas estas son preguntas comunes e importantes que los equipos de datos deben responder a diario.</p><p>Las respuestas nos ayudan a tomar decisiones de manera eficaz. Los métodos estadísticos no solo nos ayudan a establecer proyectos de modelado predictivo, sino también a interpretar los resultados.</p><h2 id="proyectos-de-estad-stica-y-aprendizaje-autom-tico">Proyectos de estadística y aprendizaje automático</h2><p>Casi todos los proyectos de aprendizaje automático consisten en las siguientes tareas, y las estadísticas desempeñan un papel central en todos ellos de una forma u otra. A continuación, se explica cómo:</p><h3 id="definici-n-de-un-enunciado-del-problema">Definición de un enunciado del problema</h3><p>La parte más crucial del modelado predictivo es la definición real del problema que nos brinda el objetivo real que debemos perseguir.</p><p>Esto nos ayuda a decidir el tipo de problema con el que nos enfrentamos (es decir, regresión o clasificación). Y también nos ayuda a decidir la estructura y los tipos de entradas, salidas y métricas con respecto al objetivo.</p><p>Pero la formulación del problema no siempre es sencilla. Si eres nuevo en el aprendizaje automático, es posible que requieras una exploración significativa de las observaciones en el dominio. Dos conceptos principales que debes dominar aquí son el análisis exploratorio de datos (EDA) y la minería de datos.</p><h3 id="exploraci-n-inicial-de-datos">Exploración inicial de datos</h3><p>La exploración de datos implica obtener un conocimiento profundo tanto de las distribuciones de las variables como de las relaciones entre las variables de los datos.</p><p>En parte, la experiencia en un campo le ayuda a adquirir este dominio sobre un tipo específico de variable. Sin embargo, tanto los expertos como los recién llegados al campo se benefician al manejar realmente observaciones reales del campo.</p><p>Los conceptos importantes relacionados con las estadísticas se reducen al aprendizaje de las estadísticas descriptivas y la visualización de datos.</p><h3 id="limpieza-de-datos">Limpieza de datos</h3><p>A menudo, los puntos de datos que se ha recopilado de un experimento o un repositorio de datos no están en un estado perfecto. Es posible que los datos hayan sido sometidos a procesos o manipulaciones que dañaron su integridad. Esto afecta aún más a los procesos o modelos posteriores que utilizan los datos.</p><p>Algunos ejemplos comunes incluyen valores faltantes, corrupción de datos, errores de datos (debido a un sensor defectuoso) y datos sin formato (observaciones con diferentes escalas).</p><p>Si desea dominar los métodos de limpieza, debe aprender sobre la detección de valores atípicos y la imputación de valores faltantes.</p><h3 id="preparaci-n-de-datos-y-configuraci-n-de-canales-de-transformaci-n">Preparación de datos y configuración de canales de transformación</h3><p>Si los datos contienen errores e inconsistencias, a menudo no se pueden utilizar directamente para el modelado.</p><p>Primero, es posible que los datos deban pasar por un conjunto de transformaciones para cambiar su forma o estructura y hacerlos más adecuados para el problema que ha definido o los algoritmos de aprendizaje que está utilizando.</p><p>Luego, puedes desarrollar un canal de dichas transformaciones que aplique a los datos para producir una entrada consistente y compatible para el modelo.</p><p>Debes dominar conceptos como el muestreo de datos y los métodos de selección de características, las transformaciones de datos, el escalado y la codificación.</p><h3 id="selecci-n-y-evaluaci-n-de-modelos">Selección y evaluación de modelos</h3><p>Un paso clave para resolver un problema predictivo es seleccionar y evaluar el método de aprendizaje. Las estadísticas de estimación le ayudan a puntuar las predicciones del modelo a partir de datos no vistos.</p><p>El diseño experimental es un subcampo de la estadística que impulsa el proceso de selección y evaluación de un modelo. Exige una buena comprensión de las pruebas de hipótesis estadísticas y las estadísticas de estimación.</p><h3 id="ajuste-fino-del-modelo">Ajuste fino del modelo</h3><p>Casi todos los algoritmos de aprendizaje automático tienen un conjunto de hiperparámetros que permiten personalizar el método de aprendizaje para el marco del problema elegido.</p><p>Este ajuste de hiperparámetros suele ser de naturaleza empírica, en lugar de analítica. Requiere grandes conjuntos de experimentos para evaluar el efecto de diferentes configuraciones de hiperparámetros en el rendimiento del modelo.</p><h2 id="plan-de-estudios-de-estad-stica-para-profesionales">Plan de estudios de estadística para profesionales</h2><p>Un buen plan de estudios de estadística para profesionales no solo debe cubrir la gran cantidad de métodos y herramientas que acabo de mencionar. También debe cubrir y explorar los problemas más comunes que enfrenta la industria.</p><p>La siguiente es una lista de habilidades ampliamente utilizadas que necesitará conocer para tener éxito en las entrevistas de ciencia de datos y aprendizaje automático y conseguir un trabajo en el campo.</p><h3 id="habilidades-de-estad-stica-general">Habilidades de estadística general</h3><ul><li>Cómo definir preguntas que se puedan responder estadísticamente para una toma de decisiones eficaz.</li><li>Calcular e interpretar estadísticas comunes y cómo utilizar técnicas de visualización de datos estándar para comunicar los hallazgos. </li><li>Comprensión de cómo se aplica la estadística matemática al campo, conceptos como el teorema del límite central y la ley de los grandes números.</li><li>Realizar inferencias a partir de estimaciones de ubicación y variabilidad (<strong>ANOVA</strong>).</li><li>Cómo identificar la relación entre las variables objetivo y las variables independientes.</li><li>Cómo diseñar experimentos de prueba de hipótesis estadísticas, pruebas A/B, etc.</li><li>Cómo calcular e interpretar métricas de rendimiento como el valor p, alfa, errores tipo 1 y tipo 2, etc.</li></ul><h3 id="conceptos-estad-sticos-importantes">Conceptos estadísticos importantes</h3><ul><li><strong>Introducción:</strong> comprensión de los tipos de datos (rectangulares y no rectangulares), estimación de la ubicación, estimación de la variabilidad, distribuciones de datos, datos binarios y categóricos, correlación, relación entre diferentes tipos de variables.</li><li><strong>Distribución de estadísticas:</strong> números aleatorios, ley de los grandes números, teorema del límite central, error estándar, etc.</li><li><strong>Muestreo y distribuciones de datos:</strong> muestreo aleatorio, sesgo de muestreo, sesgo de selección, distribución de muestreo, arranque, intervalo de confianza, distribución normal, distribución t, distribución binomial, distribución de chi-cuadrado, distribución F, distribución de Poisson y exponencial.</li><li><strong>Experimentos estadísticos y pruebas de significancia:</strong> pruebas A/B, realización de pruebas de hipótesis (nula/alternativa), remuestreo, significancia estadística, intervalo de confianza, valor p, alfa, pruebas t, grado de libertad, ANOVA, valores críticos, covarianza y correlación, tamaño del efecto, potencia estadística.</li><li><strong>Métodos estadísticos no paramétricos</strong>: datos de rango, pruebas de normalidad, normalización de datos, correlación de rango, pruebas de significación de rango, prueba de independencia</li></ul><h2 id="consejos-pr-cticos-de-aprendizaje">Consejos prácticos de aprendizaje</h2><p>La mayoría de las universidades han diseñado sus programas de estudio de estadística para poner a prueba la capacidad de memorización de los estudiantes. Solo comprueban si los estudiantes pueden resolver ecuaciones, definir terminologías e identificar gráficos que deriven ecuaciones, en lugar de centrarse en la aplicación de estos métodos para resolver problemas del mundo real.</p><p>Sin embargo, los aspirantes a profesionales deben seguir un proceso paso a paso de aprendizaje e implementación de métodos estadísticos en diferentes problemas utilizando código de Python ejecutable.</p><p>Veamos los dos enfoques principales para estudiar estadística un poco más en profundidad:</p><h3 id="enfoque-descendente">Enfoque descendente</h3><p>Supongamos que le piden que diseñe un experimento para probar la eficiencia de dos versiones de una característica de un producto. Se supone que esta característica aumenta la participación de los usuarios en un portal en línea.</p><p>Con un enfoque descendente, primero aprenderá más sobre el problema. Luego, una vez que el objetivo esté claro, puede aprender a aplicar los métodos estadísticos adecuados.</p><p>Esto lo mantiene involucrado y ofrece una mejor experiencia de aprendizaje práctico.</p><h3 id="enfoque-ascendente">Enfoque ascendente</h3><p>Este enfoque es el que utilizan la mayoría de las universidades y cursos en línea para enseñar estadística. Se centra en aprender los conceptos teóricos con notación matemática, la historia de ese concepto y cómo implementarlo.</p><p>Para las personas como yo, que tienden a perder interés en el aprendizaje teórico, esta no es la forma correcta de aprender estadística aplicada. Lo vuelve demasiado metafórico, lo que hace que el tema sea árido y deprimente sin ningún vínculo directo con la resolución de problemas.</p><p>Como probablemente puedes deducir, recomiendo un enfoque descendente para estudiar estadística.</p><p>Veamos ahora algunos recursos específicos que recomiendo para comenzar por el camino correcto.</p><h3 id="recursos-de-aprendizaje">Recursos de aprendizaje</h3><ul><li><strong><a href="https://learning.oreilly.com/library/view/practical-statistics-for/9781491952955/">Libro sobre estadística práctica</a> (en inglés)</strong>: este libro le enseñará estadística desde el punto de vista de la ciencia de datos. Debe leer al menos los primeros tres capítulos de este libro.</li></ul><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2024/10/image-2.png" class="kg-image" alt="image-2" width="580" height="672" loading="lazy"></figure><ul><li><strong><a href="https://www.khanacademy.org/math/statistics-probability">Estadística y probabilidad | Khan Academy</a> (en inglés)</strong>: este curso te preparará bien para todas las preguntas relacionadas con la estadística y la probabilidad durante la entrevista. Un curso gratuito con una buena recopilación de videoconferencias y problemas prácticos.</li></ul><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2024/10/image-3.png" class="kg-image" alt="image-3" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2024/10/image-3.png 600w, https://www.freecodecamp.org/espanol/news/content/images/2024/10/image-3.png 700w" width="700" height="139" loading="lazy"></figure><ul><li><strong><a href="https://wwnorton.com/books/Naked-Statistics/">Estadística al desnudo</a>:</strong> para las personas que temen a las matemáticas y prefieren entender ejemplos prácticos, este es un libro increíble que explica cómo se aplica la estadística en situaciones de la vida real.</li></ul><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2024/10/image-4.png" class="kg-image" alt="image-4" width="258" height="389" loading="lazy"></figure><ul><li><strong>Métodos estadísticos para el aprendizaje automático (en inglés)</strong>: este libro sirve como curso intensivo sobre métodos estadísticos para profesionales del aprendizaje automático. Idealmente, para aquellos con experiencia como desarrolladores.</li></ul><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2024/10/image-5.png" class="kg-image" alt="image-5" width="385" height="553" loading="lazy"></figure><h2 id="a-continuaci-n-">A continuación…</h2><p>Crearé una serie de tutoriales sobre cada uno de los temas mencionados anteriormente siguiendo un enfoque de código primero para que podamos comprender y visualizar el significado y la aplicación de estos conceptos.</p><p>Si me he olvidado de algún detalle o si quieres que cubra algún otro aspecto de las estadísticas, responde a esta historia y lo agregaré al plan de estudios.</p><h2 id="ciencia-de-datos-con-harshit">Ciencia de datos con Harshit</h2><figure class="kg-card kg-embed-card" data-test-label="fitted">
        <div class="fluid-width-video-container">
          <div style="padding-top: 56.49999999999999%;" class="fluid-width-video-wrapper">
            <iframe width="200" height="113" src="https://www.youtube.com/embed/_ANbV9lVA-M?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" title="How to build an Effective Data Science Portfolio" name="fitvid0"></iframe>
          </div>
        </div>
      </figure><p>Con este canal, planeo lanzar un par de <a href="https://towardsdatascience.com/hitchhikers-guide-to-learning-data-science-2cc3d963b1a2?source=---------8------------------">series que cubran todo el espacio de la ciencia de datos</a>. Aquí está el motivo por el cual deberías suscribirte al canal:</p><ul><li>Esta serie cubriría todos los tutoriales de calidad requeridos/exigidos sobre cada uno de los temas y subtemas, como los <a href="https://towardsdatascience.com/python-fundamentals-for-data-science-6c7f9901e1c8?source=---------5------------------">fundamentos de Python para la ciencia de datos</a>.</li><li>Explicación de <a href="https://towardsdatascience.com/practical-reasons-to-learn-mathematics-for-data-science-1f6caec161ea?source=---------9------------------">las matemáticas y las derivaciones</a> de por qué hacemos lo que hacemos en ML y Deep Learning.</li><li><a href="https://www.youtube.com/watch?v=a2pkZCleJwM&amp;t=2s">Podcasts con científicos e ingenieros de datos</a> de Google, Microsoft, Amazon, etc., y directores ejecutivos de empresas impulsadas por big data.</li><li><a href="https://towardsdatascience.com/building-covid-19-analysis-dashboard-using-python-and-voila-ee091f65dcbb?source=---------2------------------">Proyectos e instrucciones</a> para implementar los temas aprendidos hasta ahora. Obtén información sobre nuevas certificaciones, Bootcamp y recursos para aprobar esas certificaciones, como este <strong><a href="https://youtu.be/yapSsspJzAw">Examen de Certificación de Desarrollador de TensorFlow de Google</a></strong>.</li></ul><p>Si este tutorial te resultó útil, deberías consultar mis cursos de ciencia de datos y aprendizaje automático en <a href="https://www.wiplane.com/">Wiplane Academy</a>. Son completos pero compactos y te ayudan a construir una base sólida de trabajo para exhibir.</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Cómo extraer datos de archivos PDF con Python ]]>
                </title>
                <description>
                    <![CDATA[ Los datos están presentes en todas las áreas del mundo digital moderno, y toma diferente formas. Uno de los formatos más comunes es PDF. Facturas, reportes y otras formas frecuentemente almacenados en archivo Formato de Documento Portátil (PDF) por organizaciones e instituciones. Puede ser laborioso y lleva mucho tiempo extraer ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/como-extraer-datos-de-archivos-en-pdf/</link>
                <guid isPermaLink="false">670008413d481269b58a0d3a</guid>
                
                    <category>
                        <![CDATA[ análisis de datos ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Diego Lopez ]]>
                </dc:creator>
                <pubDate>Sun, 06 Oct 2024 23:50:20 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2024/10/Shittu-Olumide-Extract-Data-from-PDF-Files-with-Python-1.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artículo original:</strong> <a href="https://www.freecodecamp.org/news/extract-data-from-pdf-files-with-python/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">How to Extract Data from PDF Files with Python</a>
      </p><p>Los datos están presentes en todas las áreas del mundo digital moderno, y toma diferente formas.</p><p>Uno de los formatos más comunes es PDF. Facturas, reportes y otras formas frecuentemente almacenados en archivo Formato de Documento Portátil (PDF) por organizaciones e instituciones.</p><p>Puede ser laborioso y lleva mucho tiempo extraer datos archivos PDF. Afortunadamente, para fácil extracción de datos de archivos PDF, Python brinda una variedad de librerías.</p><p>Este tutorial explicará como extraer datos de archivos PDF usando Python. Aprenderás a instalar las librerías necesarias y te proporcionaré ejemplos de como hacerlo.</p><p>Hay muchas librerías de Python que puedes usar para leer y extraer texto de archivos PDF. Estos incluyen PDFMiner, PyPDF2, PDFQuery y PyMuPDF. Aquí, usaremos PDFQuery para leer y extraer datos de múltiples archivos PDF.</p><h2 id="c-mo-usar-pdfquery">Cómo usar PDFQuery</h2><p>PDFQuery es una biblioteca de Python que proporciona una manera fácil de extraer datos de archivos PDF mediante el uso de selectores similares a CSS para ubicar elementos en el documento.</p><p>Lee un archivo PDF como un objeto, convierte el objeto PDF a un archivo XML, y accede a la información deseada por su ubicación especifica dentro del documento PDF.</p><p>Consideremos un ejemplo corto para ver como funciona.</p><pre><code class="language-py">from pdfquery import PDFQuery

pdf = PDFQuery('example.pdf')
pdf.load()

# Use CSS-like selectors to locate the elements
text_elements = pdf.pq('LTTextLineHorizontal')

# Extract the text from the elements
text = [t.text for t in text_elements]

print(text)</code></pre><p>En este código, primero creamos un objeto PDFQuery pasando el nombre del archivo del documento PDF al cual queremos extraer el texto. Luego cargamos el documento en el objeto llamando al método load().</p><p>A continuación, utilizamos selectores similares a CSS para localizar los elementos de texto en el documento PDF. El método pq() es usado para localizar los elementos, el cual regresa un objeto PyQuery que representa los elementos seleccionados.</p><p>Por último, extraemos el texto de los elementos accediendo al atributo text de cada elemento y almacenamos el texto extraído en una lista llamada texto.</p><p>Consideremos otro método que podemos usar para leer archivos PDF, extraer algunos elementos de los datos y crear un set de datos estructurados usando PDFQuery. Seguiremos los siguientes pasos:</p><ul><li>Instalación del paquete.</li><li>Importar las librerías.</li><li>Leer y convertir archivos PDF.</li><li>Acceder y extraer los datos.</li></ul><h3 id="instalaci-n-del-paquete">Instalación del Paquete</h3><p>Primero, necesitamos instalar PDFQuery y también Pandas para un poco de análisis y presentación de datos.</p><pre><code class="language-bash">pip install pdfquery
pip install pandas</code></pre><h2 id="importar-las-librer-as">Importar las librerías</h2><pre><code class="language-py">import pandas as pd
import pdfquery</code></pre><p>Importamos dos librerías para poder usarlas en nuestro proyecto.</p><h2 id="leer-y-convertir-los-archivos-pdf">Leer y convertir los archivos PDF</h2><pre><code class="language-py">#read the PDF
pdf = pdfquery.PDFQuery('customers.pdf')
pdf.load()


#convert the pdf to XML
pdf.tree.write('customers.xml', pretty_print = True)
pdf</code></pre><p>Leeremos el archivo PDF en nuestro proyecto como un objeto de elemento y lo cargamos. Convertir el objeto pdf en un archivo de Lenguage de Marcado Extensible (XML). Este archivo contiene los datos y los metadatos del archivo PDF anteriormente brindado.</p><p>El XML define un grupo de reglas para codificar archivos PDF en un formato que es leíble por humanos y máquinas. Mirando al archivo XML usando un editor de texto, podemos ver dónde están los datos que queremos extraer.</p><h2 id="acceder-y-extraer-los-datos">Acceder y extraer los Datos</h2><p>Podemos obtener la información que estamos tratando de extraer dentro de LTTextBoxHorizontal, y podemos ver la metadata asociada con el archivo.</p><p>Los valores adentro de la caja de texto, [68.0, 231.57, 101.990, 234.893] en el fragmento de XML hace referencia a las coordenadas Izquierda, Fondo, Derecha, Arriba de la caja de texto. Puedes pensar &nbsp;en esto como los límites alrededor de los datos que queremos extraer.</p><p>Accedamos y extraigamos el nombre del cliente usando las coordenadas de la caja de texto:</p><pre><code class="language-py"># access the data using coordinates
customer_name = pdf.pq('LTTextLineHorizontal:in_bbox("68.0, 231.57, 101.990, 234.893")').text()

print(customer_name)

#output: Brandon James</code></pre><p>Y eso es todo, ¡hemos terminado!</p><p>Nota: a veces el dato que queremos extraer no está exactamente en la misma ubicación en cada archivo, podemos causar problemas. Afortunadamente, PDFQuery también puede consultar etiquetas que contengan una cadena determinada.</p><h2 id="conclusi-n">Conclusión</h2><p>La extracción de datos de archivos PDF es una tarea crucial porque estos archivos se utilizan con frecuencia para el almacenamiento y el uso compartido de documentos.</p><p> La librería PDFQuery de Python es una herramienta potente para extraer datos de archivos PDF. Cualquier persona buscando extraer datos de archivos PDF encontrará PDFQuery &nbsp;una gran opción gracias a su fácil sintaxis y documentación comprensible. Es también código abierto y puede ser modificado para adaptarse a casos de uso específicos.</p><p> Conectémonos en <a href="https://x.com/Shittu_Olumide_">Twitter</a> y en <a href="https://www.linkedin.com/in/olumide-shittu">LinkedIn</a>. También puedes suscribirte a mí canal de <a href="https://www.youtube.com/channel/UCNhFxpk6hGt5uMCKXq0Jl8A">YouTube</a>.</p><p>¡Feliz codificación!</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ No utilices el sistema Ruby de Mac: En su lugar utiliza esto ]]>
                </title>
                <description>
                    <![CDATA[ Alguien te podría haber dicho alguna vez, "No utilices el sistema Ruby". Es buen consejo, pero, ¿por qué? Vamos a averiguarlo. ¿Cuál Ruby tienes? MacOS viene con un "sistema Ruby" preinstalado. $ which ruby /usr/bin/ruby Si ves /usr/bin/ruby, es el sistema Ruby de MacOS pre-instalado. Está bien usar el sistema ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/no-utilices-el-sistema-ruby-de-mac-en-su-lugar-utiliza-esto/</link>
                <guid isPermaLink="false">66bf8e0ed77ca5042ec0ccef</guid>
                
                    <category>
                        <![CDATA[ ruby ]]>
                    </category>
                
                    <category>
                        <![CDATA[ mac ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Diego Lopez ]]>
                </dc:creator>
                <pubDate>Thu, 22 Aug 2024 16:38:27 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2024/08/photo-1522776851755-3914469f0ca2.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Alguien te podría haber dicho alguna vez, "No utilices el sistema Ruby". Es buen consejo, pero, ¿por qué? Vamos a averiguarlo.</p><h2 id="-cu-l-ruby-tienes"><strong>¿Cuál Ruby tienes?</strong></h2><p>MacOS viene con un "sistema Ruby" preinstalado.</p><pre><code class="language-bash">$ which ruby
/usr/bin/ruby</code></pre><p>Si ves <code>/usr/bin/ruby</code>, es el sistema Ruby de MacOS pre-instalado.</p><p>Está bien usar el sistema Ruby para ejecutar scripts de administrador de sistemas, siempre y cuando no alteres el sistema Ruby al intentar actualizar o agregar gemas.</p><p>Pero no querrías usarlo cuando estés desarrollando proyectos en Ruby.</p><h2 id="ruby-para-desarrollo"><strong>Ruby para desarrollo</strong></h2><p>Para desarrollar proyectos con Ruby, debes instalar Ruby con Homebrew o utilizar un administrador de versiones tales como <em>asdf</em>, <em>chruby</em>, <em>rbenv</em> o <em>rvm</em>.</p><p>Un administrador de versiones ayuda si estás haciendo malabarismos con varios proyectos y no puedas actualizarlos todos a la vez. Para obtener una guía que compare los administradores de versiones y muestre la mejor manera de instalar Ruby, ve mi artículo <a href="https://mac.install.guide/ruby/">Install Ruby on a Mac (en inglés).</a></p><p>¿Pero por qué no utilizar Ruby predeterminado en macOS? Veamos las razones por qué es una mala idea usar el Ruby predeterminado en MacOS para el desarrollo web.</p><h3 id="problemas-con-la-instalaci-n-de-gem">Problemas con la instalación de Gem</h3><p>RubyGems son bibliotecas de software listas para usar que hacen que el desarrollo en Ruby sea fácil y divertido. La mayoría de proyectos en Ruby utilizan al menos algunas gemas. </p><p>Si usas el sistema Ruby de Mac, al ejecutar <code>gem install</code> intentará guardar las gemas al directorio del sistema Ruby <code>/Library/Ruby/Gems/2.6.0</code>. Ese directorio es propiedad del <code>root</code>, el superusuario del sistema. Los usuarios ordinarios no están autorizados para escribir en él, (y realmente no debes alterar este directorio).</p><p>Si intentas instalar una gema, por ejemplo <code>em install rails</code>, te dará un error de permisos.</p><h3 id="viola-el-sistema-de-seguridad">Viola el sistema de seguridad</h3><p>Los sistemas basados en Unix son potentes, así que hay una solución alternativa. Puedes instalar gemas como superusuario para anular la restricción de permisos. ¡Pero no hagas esto!</p><pre><code class="language-bash">$ sudo gem install rails</code></pre><p>En cualquier momento estarás a punto de ejecutar <code>sudo</code>. Deberías detenerte y preguntarte si estás a punto de dispararte en el pie.</p><p>En este caso, necesitas sudo porque estás alterando archivos del sistema que son manejados por el SO. ¡No lo hagas! Podrías dejar al sistema en un estado roto o comprometido. O incluso peor, una gema podría contener código malicioso que altere tu computadora.</p><h3 id="administrador-de-gema">Administrador de gema</h3><p>Los desarrolladores experimentados usan <a href="https://bundler.io/">Bundler</a> para instalar gemas y manejar sus dependencias.</p><p>Imagina que tú tienes proyectos que usan diferentes versiones de una gema (tal vez hubo un nuevo lanzamiento de gema entre tus proyectos). O quizás dos gemas distintas en tu proyecto dependen de diferentes versiones de una gema dependiente.</p><p>Bundler usa un Gemfile en tu directorio del proyecto para mantener rastreo de las gemas que necesitas. Si tuvieras que usar <code>sudo</code> para instalar gemas con el sistema Ruby, terminarías con un desorden de incompatibilidad de gemas en el directorio del sistema de Ruby.</p><p>Puedes solucionar el problema de permisos del sistema instalando Bundler con un comando que usa tu directorio de inicio para gemas. Pero es más fácil instalar Ruby con Homebrew o usar un administrador de versión y usar Bundler que viene instalado, el cual configurará correctamente tu entorno de desarrollo local.</p><h3 id="usa-la-versi-n-m-s-nueva-de-ruby"><strong>Usa la versión más nueva de Ruby</strong></h3><p>Cuando empiezas un proyecto, utiliza la última versión de Ruby (es 3.0 en el momento que fue escrito este artículo).</p><p>El sistema Ruby en macOS Catalina o Big Sur es Ruby 2.6.3, el cual es viejo. Si recién acabas de empezar con Ruby, instala con Homebrew y trabaja en un proyecto con Ruby 3.0. Cuando empieces a construir otro proyecto, puede que sea el momento de instalar un administrador de versión para que puedas hacer malabarismos con proyectos con diferentes versiones de Ruby.</p><h2 id="macos-despu-s-de-big-sur"><strong>MacOS después de Big Sur</strong></h2><p>MacOS Big Sur es ahora la versión más actual. <a href="https://developer.apple.com/documentation/macos-release-notes/macos-catalina-10_15-release-notes">Apple </a>dijo: </p><p><em><em>"</em>Ejecuciones de lenguajes de programación con scripts como Python, Ruby, and Perl están incluidos en macOS para compatibilidad con software heredado<em>.</em> Futuras versiones de macOS no incluirán ejecución de lenguajes con script por defecto, y pudiera requerir que instales paquetes adicionales<em>"</em>.</em></p><p>Si estás leyendo esto a finales del año 2021, es posible que el sistema Ruby ya haya desaparecido. Si no, prepárate para instalar Ruby con Homebrew o un administrador de versión.</p><h2 id="disfruta-de-ruby">Disfruta de Ruby</h2><p>Para desarrolladores planeando construir aplicaciones web con Rails, he escrito una guía, <a href="https://learn-rails.com/install-rails-mac/index.html">Install Rails on a Mac</a> (en inglés), que va más allá de <a href="https://mac.install.guide/ruby/index.html">Instalar Ruby in a Mac</a> (en inglés) para mostrarte cómo elegir un administrador de versiones que funcionará con Node como también Ruby.</p><p>¡Disfruta el placer de programar en Ruby! Después de todo, es conocido como un lenguaje dedicado a la felicidad del programador. Pero recuerda, el sistema Ruby esta ahí para macOS, no para ti.</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Cómo construir tu propia VPN en WireGuard en sólo 5 Minutos ]]>
                </title>
                <description>
                    <![CDATA[ Quizás ya comprendas lo importante que puede ser una buena VPN para mantener la seguridad y privacidad de tus comunicaciones móviles. Ya sea que necesites usar tu teléfono para realizar operaciones bancarias a través de una conexión WIFI del aeropuerto o de una cafetería pública, o estás preocupado porque alguna ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/como-construir/</link>
                <guid isPermaLink="false">66755a7ab6f94103d5aef997</guid>
                
                    <category>
                        <![CDATA[ vpn ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Linux ]]>
                    </category>
                
                    <category>
                        <![CDATA[ wireguard ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Diego Lopez ]]>
                </dc:creator>
                <pubDate>Mon, 08 Jul 2024 11:52:15 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2024/07/pexels-ibrahim-boran-339814.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artículo original:</strong> <a href="https://www.freecodecamp.org/news/build-your-own-wireguard-vpn-in-five-minutes/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">How to Build Your Own Wireguard VPN in Five Minutes</a>
      </p><p>Quizás ya comprendas lo importante que puede ser una buena VPN para mantener la seguridad y privacidad de tus comunicaciones móviles.</p><p>Ya sea que necesites usar tu teléfono para realizar operaciones bancarias a través de una conexión WIFI del aeropuerto o de una cafetería pública, o estás preocupado porque alguna persona equivocada esté escuchando tus interacciones en línea, la encriptación en túnel que brinda una buena VPN puede ser invaluable.</p><p>El truco, sin embargo, es encontrar una VPN que sea realmente "buena" - y una que sea conveniente y asequible.</p><p>Existen muchos servicios de VPN, y configurar una VPN en tu teléfono o laptop suele ser bastante sencillo.</p><p>Pero algunos servicios vienen con dos desventajas potenciales: son muy costosos, con pagos que promedian alrededor de los $10 mensuales, y nunca puedes estar 100% seguro que no estén (ya sea accidentalmente o a propósito) filtrando o haciendo un mal uso de tus datos.</p><p>Además, VPNs económicas a menudo limitan el uso de tus datos y el número de dispositivos que puedas conectar.</p><p>Si te gusta ver versiones en vídeo de tutoriales para complementar tu aprendizaje, no dudes en seguirlos aquí:</p><figure class="kg-card kg-embed-card" data-test-label="fitted">
        <div class="fluid-width-video-container">
          <div style="padding-top: 56.49999999999999%;" class="fluid-width-video-wrapper">
            <iframe width="200" height="113" src="https://www.youtube.com/embed/kxj8GMvnASE?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" title="Build Your Own Wireguard VPN in 5 Minutes (some restrictions may apply)" name="fitvid0"></iframe>
          </div>
        </div>
      </figure><h2 id="lo-que-ofrece-wireguard">Lo que ofrece WireGuard</h2><p>Pero si de todos modos tienes un servidor Linux basado en la nube ejecutándose, construir una VPN en WireGuard puede ser una forma sencilla y gratuita para agregar algunas medidas serias, como seguridad y privacidad sin compromisos para tu vida.</p><p>Si planeas limitar la VPN para algunos dispositivos de tu propiedad y de algunos amigos, probablemente nunca jamás notarás una carga de recursos adicionales en tu servidor. Incluso si has activado y pagado por una instancia reservada en AWS EC2 tw.micro, los costos anuales deberían seguir siendo significativamente más baratos que los de la mayoría de las VPN comerciales. Y, como bono adicional, tendrás completo control sobre tus datos.</p><p>Ahora te voy a mostrar cómo todo eso debería funcionar usando un software de código abierto en WireGuard en un Servidor de Linux Ubuntu.</p><p>¿Porqué WireGuard? Porque es realmente fácil de usar, está diseñado para ser particularmente resistente a ataques, y es muy bueno en lo que hace que fue recientemente incorporado dentro del propio kernel de Linux.</p><p>El trabajo actual para que esto ocurra realmente tomará sólo cinco minutos - o menos. Una vez dicho esto, planear las cosas, solucionar los problemas de configuración inesperados y, si es necesario, lanzar un nuevo servidor podría agregar tiempo significante al proyecto.</p><h2 id="-c-mo-configurar-el-entorno">¿Cómo configurar el Entorno?</h2><p>Primero que nada, necesitas tener abierto el puerto UDP <code>51820</code> en cualquier firewall que estés utilizando. Así es como vería el grupo de seguridad asociado con una instancia AWS EC2:</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2024/06/SG_rule-2.png" class="kg-image" alt="SG_rule-2" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2024/06/SG_rule-2.png 600w, https://www.freecodecamp.org/espanol/news/content/images/2024/06/SG_rule-2.png 1000w" sizes="(min-width: 720px) 720px" width="1000" height="566" loading="lazy"></figure><p>Ahora, en el servidor de Linux, usando un comando de <code>sudo</code>, empezaremos instalando WireGuard y los paquetes de resolvconf.</p><p>Técnicamente o probablemente no necesitemos resolvconf aquí, pero como eso es lo que necesitarías si quisieras configurar una máquina virtual de Linux, como un cliente de WireGuard, pensé agregarlo aquí.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2024/06/Captura-de-pantalla-2024-06-27-124426.png" class="kg-image" alt="Captura-de-pantalla-2024-06-27-124426" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2024/06/Captura-de-pantalla-2024-06-27-124426.png 600w, https://www.freecodecamp.org/espanol/news/content/images/2024/06/Captura-de-pantalla-2024-06-27-124426.png 661w" width="661" height="82" loading="lazy"></figure><h2 id="-c-mo-generar-claves-de-cifrado">¿Cómo generar Claves de Cifrado?</h2><p>El comando <code>wg genkey</code> genera una nueva clave de cifrado privada y lo guarda como un archivo en el directorio <code>/etc/wireguard</code>. Este directorio fue automáticamente creado cuándo instalamos WireGuard.</p><p>El comando <code>chmod</code> establece los permisos de restricción apropiados para ese archivo de clave privada.</p><p>Como todo en Linux, hay otras manera de realizar esto, pero solo asegúrate de hacerlo bien.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2024/07/Captura-de-pantalla-2024-07-03-120402.png" class="kg-image" alt="Captura-de-pantalla-2024-07-03-120402" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2024/07/Captura-de-pantalla-2024-07-03-120402.png 600w, https://www.freecodecamp.org/espanol/news/content/images/size/w1000/2024/07/Captura-de-pantalla-2024-07-03-120402.png 1000w, https://www.freecodecamp.org/espanol/news/content/images/2024/07/Captura-de-pantalla-2024-07-03-120402.png 1074w" sizes="(min-width: 720px) 720px" width="1074" height="117" loading="lazy"></figure><p>A continuación, usaremos el valor de nuestra clave privada para generar una clave pública correspondiente, la cual también se guardará en el directorio <code>/etc/wireguard</code>. El objetivo es agregar la clave pública del servidor a la configuración de WireGuard en todos los dispositivos cliente que usaremos, y luego agregar las claves públicas de esos clientes a la configuración del servidor aquí.</p><p>Las claves privadas nunca deben salir de las máquinas para las que se crean, y siempre deben protegerse cuidadosamente.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2024/07/imagen-2.png" class="kg-image" alt="imagen-2" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2024/07/imagen-2.png 600w, https://www.freecodecamp.org/espanol/news/content/images/size/w1000/2024/07/imagen-2.png 1000w, https://www.freecodecamp.org/espanol/news/content/images/2024/07/imagen-2.png 1063w" sizes="(min-width: 720px) 720px" width="1063" height="79" loading="lazy"></figure><h2 id="c-mo-configurar-el-servidor-de-wireguard">Cómo configurar el Servidor de WireGuard</h2><p>Ya estamos listos para crear un archivo de configuración del servidor. Siguiendo la convención, nombraré el archivo <code>wg0.conf</code>, pero puedes darle el nombre que desees. También puedes tener múltiples configuraciones (con diferentes nombres de archivo) existiendo al mismo tiempo.</p><p>Así se verá nuestra configuración:</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2024/07/imagen3.png" class="kg-image" alt="imagen3" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2024/07/imagen3.png 600w, https://www.freecodecamp.org/espanol/news/content/images/size/w1000/2024/07/imagen3.png 1000w, https://www.freecodecamp.org/espanol/news/content/images/2024/07/imagen3.png 1056w" sizes="(min-width: 720px) 720px" width="1056" height="579" loading="lazy"></figure><p>Ten en cuenta que este archivo tiene tres secciones: una Interfaz y dos pares. La sección Interfaz define la dirección de red privada NAT que usará nuestro servidor. Esta es la dirección privada a la que se conectarán los clientes, después de solicitar primero el acceso a través de la dirección IP pública del servidor, por supuesto.</p><p>No es necesario que sigas mi ejemplo de dirección, siempre y cuando uses un rango de IP privada válido que no se superponga con ningún bloque de red utilizado por tu servidor o cliente.</p><p>En concordancia con la regla del grupo de seguridad UDP que configuré anteriormente en AWS, estoy definiendo el ListenPort como <code>51820</code>. Sin embargo, podría elegir un puerto diferente para agregar un poco más de seguridad si lo desearas.</p><p>Finalmente, pegaría la Clave Privada del servidor como valor de PrivateKey para que WireGuard pueda autenticar las solicitudes entrantes de los clientes.</p><p>La primera sección <code>peer</code> no contiene nada más que la clave pública y la dirección IP privada asignada de un cliente. La segunda sección <code>peer</code> hace lo mismo para una segunda máquina cliente.</p><p>Obtener las claves públicas de los clientes es la tarea más manual en toda esta configuración. Pero, como se trata de tu propia VPN, normalmente puedes encontrar una forma de copiar y pegar directamente en la configuración de tu servidor para no tener que escribir todo dolorosamente a mano.</p><p>Eso debería ser todo. Usaré el comando <code>wg-quick</code> para activar la VPN. <code>up</code> le indica a WireGuard que lea la configuración <code>wg0.conf</code> que acabamos de crear y la use para construir una nueva interfaz VPN.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2024/07/imagen4.png" class="kg-image" alt="imagen4" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2024/07/imagen4.png 600w, https://www.freecodecamp.org/espanol/news/content/images/size/w1000/2024/07/imagen4.png 1000w, https://www.freecodecamp.org/espanol/news/content/images/2024/07/imagen4.png 1053w" sizes="(min-width: 720px) 720px" width="1053" height="82" loading="lazy"></figure><p>Ejecutar <code>wg</code> nos mostrará que funcionó. Finalmente, ejecutaré <code>systemctl enable &lt;nombre_del_servicio&gt;</code> para indicarle a Linux que cargue esta interfaz WireGuard automáticamente cada vez que el servidor se reinicie.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2024/07/imagen5.png" class="kg-image" alt="imagen5" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2024/07/imagen5.png 600w, https://www.freecodecamp.org/espanol/news/content/images/size/w1000/2024/07/imagen5.png 1000w, https://www.freecodecamp.org/espanol/news/content/images/2024/07/imagen5.png 1060w" sizes="(min-width: 720px) 720px" width="1060" height="79" loading="lazy"></figure><h2 id="c-mo-configurar-el-cliente-wireguard">Cómo configurar el Cliente WireGuard</h2><p>Eso es todo lo que necesitaremos del lado del servidor. Configurar tu dispositivo cliente con WireGuard será mucho más fácil o más o menos lo mismo.</p><p>¿A qué me refiero con más o menos lo mismo? Bueno, si estás trabajando con Windows, macOS, Android o iOS, entonces hay enlaces a aplicaciones GUI disponibles en esta página . Esas aplicaciones generarán pares de claves para ti. Sólo necesitarás ingresar la dirección IP o el dominio del servidor y su clave pública. Luego, tomarás la clave pública del cliente y la agregarás al archivo <code>wg0.conf</code> del servidor de la forma que te mostré anteriormente.</p><p>Sin embargo, si se trata de un cliente de PC o portátil Linux que deseas agregar, entonces es un poco más complicado. Básicamente, seguirás todos los pasos que viste para la configuración del servidor, incluida la generación de claves. Incluso crearás un archivo de configuración llamado <code>wg0.conf</code> (si ese es el nombre que te gusta). Pero así es como debería verse ese archivo de configuración:</p><pre><code>[Interface]
# La dirección que tu computadora usará en el VPN
Address = 10.5.5.2/32
DNS = 8.8.8.8
# Carga tu clave privada desde el archivo
PostUp = wg set %i private-key /etc/wireguard/privatekey
# También hace ping al servidor vpn para asegurarse que el túnel se inicializó
PostUp = ping -c1 10.47.47.1
[Peer]
# La clave pública de wireguard del servidor VPN
PublicKey = your_key
# Dirección de la IP Pública de tu servidor VPN (USA EL TUYO!)
Endpoint = 54.160.21.183:51820
# 10.0.0.0/24 es el subnet VPN
AllowedIPs = 10.47.47.0/24
# PersistentKeepalive = 25</code></pre><p>La sección <code>Interface</code> representa esta vez la máquina cliente, mientras que la sección <code>Peer</code> más abajo se refiere al servidor. Comencemos con <code>Interface</code>. La dirección IP privada debe coincidir con la dirección que le das a este cliente específico en la configuración del servidor.</p><p>Si necesitas que tu cliente evite un servidor DNS local, puedes especificar un servidor DNS personalizado allí. Este es el que proporciona Google.</p><p>En lugar de escribir tu clave privada local en tu archivo de configuración de la forma en que lo hicimos en el servidor, puedes decirle a WireGuard que lea el archivo <code>privateKey</code> cada vez que se cargue. Probablemente sea una práctica recomendada de seguridad, y también podríamos haberlo hecho en el servidor. Finalmente, el script de configuración probará nuestra conexión con el comando <code>PostUp ping</code>.</p><p>La configuración <code>Peer</code> - o del servidor - requiere la clave pública del servidor, la cual se agrega aquí.</p><p>El <code>Endpoint</code> es donde le dices a WireGuard dónde encontrar el servidor. ¡Nada funcionará sin esto! Aquí se requiere la IP pública del servidor, o su nombre de dominio, seguido del puerto que has elegido. Una vez más, <code>51820</code> es el predeterminado de WireGuard.</p><p>Finalmente, la configuración de <code>AllowedIPs</code> define el rango de direcciones de red que usarás, y el valor opcional <code>PersistentKeepalive</code> puede evitar que se pierdan las conexiones.</p><p>Inicias WireGuard en el cliente exactamente de la misma manera que lo hiciste en el servidor, usando <code>wg-quick up wg0</code>. Sin embargo, una vez más, todos esos pasos sólo serán necesarios para clientes Linux. Puedes usar las aplicaciones para otras plataformas.</p><h2 id="resumen">Resumen</h2><p>Y listo, eso es todo. Tal y como dije, una VPN funcional en unos cinco minutos de trabajo. Ahora no tienes excusa para proteger tu privacidad en línea y asegurar tus comunicaciones.</p><p>Para obtener más información sobre tecnología, suscríbete a mi <a href="https://www.youtube.com/@davidbclinton">canal de YouTube</a> y, cuando tengas un momento, echa un vistazo a los numerosos libros y cursos de Linux, seguridad, análisis de datos y AWS disponibles en mi sitio web <a href="https://bootstrap-it.com/"><em>bootstrap-it.com.</em></a></p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Monitor PNP Genérico: Cómo reparar el controlador de dispositivo en PC con Windows 10 ]]>
                </title>
                <description>
                    <![CDATA[ ¿Has adquirido un nuevo monitor solo para encontrar que no muestra nada en tu computadora? O tal vez, ¿el monitor dejó de funcionar de repente? En muchas ocasiones, este problema es causado por un controlador defectuoso en el monitor PNP genérico. Aparte de los problemas con el controlador, el monitor ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/monitor-pnp-generico/</link>
                <guid isPermaLink="false">6656544ecf7e6b03ca05abd9</guid>
                
                    <category>
                        <![CDATA[ Windows 10 ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Diego Lopez ]]>
                </dc:creator>
                <pubDate>Mon, 17 Jun 2024 19:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2024/05/pexels-lee-campbell-18167-115655.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>¿Has adquirido un nuevo monitor solo para encontrar que no muestra nada en tu computadora? O tal vez, ¿el monitor dejó de funcionar de repente?</p><p>En muchas ocasiones, este problema es causado por un controlador defectuoso en el monitor PNP genérico.</p><p>Aparte de los problemas con el controlador, el monitor podría ser que no trabaje debido a una conexión incorrecta con relación a los cables. También podría ocurrir porque el monitor está defectuoso.</p><p>En respuesta a este error, la mayoría de los monitores mostrarían "Sin señal" o "Revisa la conexión del cable". Eso te dará una pista de lo primero que debes hacer - revisa los cables de conexión.</p><h2 id="c-mo-solucionar-los-problemas-del-monitor-pnp-gen-rico-en-windows-10">Cómo solucionar los problemas del monitor PNP genérico en Windows 10</h2><h3 id="aseg-rate-que-todos-los-cables-est-n-apropiadamente-conectados">Asegúrate que todos los cables estén apropiadamente conectados</h3><p>Primero, asegúrate que todos los cables estén conectados apropiadamente. Si estás usando un VGA o HDMI, o el cable de puerto de la pantalla, mira los puertos de conexión de los cables tanto en el monitor como en la computadora y asegúrate que no estén flojos.</p><p>Si estás seguro de que los cables están conectados de la manera correcta y el monitor aún no muestra nada, es posible que tengas que cambiar los cables.</p><p>Si estabas usando un cable HDMI al principio, cambia al cable VGA o puerto de visualización. Y si estabas usando un puerto de visualización, pero el monitor aún no muestra nada, cambia al cable VGA o HDMI.	</p><h3 id="c-mo-reparar-el-monitor-pnp-gen-rico-actualizando-los-controladores">Cómo reparar el monitor PNP Genérico actualizando los controladores</h3><p>Si tu monitor no está funcionando, debes actualizar los controladores del adaptador de pantalla y los controladores del monitor.</p><h3 id="c-mo-actualizar-el-controlador-del-adaptador-de-pantalla">Cómo actualizar el controlador del adaptador de pantalla</h3><p>Para actualizar el controlador del adaptador de pantalla, diríjete al administrador de dispositivos haciendo clic derecho en <em>Inicio</em> y seleccionando <em>Administrador de dispositivos</em>.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2024/05/devicemanager.jpg" class="kg-image" alt="devicemanager" width="396" height="913" loading="lazy"></figure><p>Expande <em>Adaptadores de pantalla</em>, clic derecho en el dispositivo que visualices (mayormente "Intel(R) HD Graphics..."), y selecciona <em>Actualizar controlador</em>.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2024/05/dsaf.png" class="kg-image" alt="dsaf" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2024/05/dsaf.png 600w, https://www.freecodecamp.org/espanol/news/content/images/2024/05/dsaf.png 926w" sizes="(min-width: 720px) 720px" width="926" height="289" loading="lazy"></figure><p>Selecciona <em>Buscar Controladores Automáticamente</em>, así tu computadora puede buscar en internet la actualización más reciente del controlador.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2024/05/ss2-4.png" class="kg-image" alt="ss2-4" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2024/05/ss2-4.png 600w, https://www.freecodecamp.org/espanol/news/content/images/size/w1000/2024/05/ss2-4.png 1000w, https://www.freecodecamp.org/espanol/news/content/images/2024/05/ss2-4.png 1012w" sizes="(min-width: 720px) 720px" width="1012" height="768" loading="lazy"></figure><p>Si el controlador no está actualizado, tu computadora descargará una versión actualizada del controlador y le pedirá que lo instale.</p><h3 id="c-mo-actualizar-el-controlador-del-monitor-pnp-gen-rico">Cómo actualizar el Controlador del Monitor PNP Genérico</h3><p>Diríjete al controlador del dispositivo nuevamente y expande los monitores, haz clic derecho en <em>Monitor PNP Genérico</em> y selecciona <em>controlador</em>.</p><p>PnP (Plug-and-Play) significa "Conecte y use". Es el controlador que tu computadora instala para un monitor que no reconoce.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2024/05/ss3-4.png" class="kg-image" alt="ss3-4" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2024/05/ss3-4.png 600w, https://www.freecodecamp.org/espanol/news/content/images/2024/05/ss3-4.png 889w" sizes="(min-width: 720px) 720px" width="889" height="311" loading="lazy"></figure><p>Seleciona "Buscar controladores automáticamente".</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2024/05/ss2-4-1.png" class="kg-image" alt="ss2-4-1" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2024/05/ss2-4-1.png 600w, https://www.freecodecamp.org/espanol/news/content/images/size/w1000/2024/05/ss2-4-1.png 1000w, https://www.freecodecamp.org/espanol/news/content/images/2024/05/ss2-4-1.png 1012w" sizes="(min-width: 720px) 720px" width="1012" height="768" loading="lazy"></figure><p>Tu computadora te pedirá que instale el controlador actualizado una vez que esté descargado.</p><p>Si actualizas los controladores necesarios y el monitor aún genera falla, entonces es un problema con las conexiones de cable. En esta ocasión, podrías necesitar un adaptador externo o un convertidor externo.</p><h3 id="usa-un-adaptador-externo-o-un-convertidor-externo-con-sus-cables-de-conexi-n">Usa un Adaptador Externo o un Convertidor Externo con sus Cables de Conexión</h3><p>Si usas cada cable posible y el monitor aún no muestra nada, entonces podría significar que tu monitor no funcionará a menos que lo conectes a un <strong>adaptador de pantalla</strong> a la parte conectada a su computadora portátil o unidad del sistema.</p><p>En ese caso, hay diferentes adaptadores que puedes utilizar:</p><ul><li>VGA a HDMI</li><li>USB a HDMI</li><li>VGA a Puerto de Visualización</li></ul><p>Puedes obtener los adaptadores antes mencionados en tiendas tecnológicas de tu localidad o en línea.</p><p>En muchas ocasiones, los adaptadores <em>VGA</em> a <em>HDMI</em> o <em>VGA</em> a <em>Puerto de Visualización</em> funcionan muy bien. Cuando tenía el mismo problema, el adaptador de <em>VGA</em> a <em>HDMI</em> fue lo que me funcionó.</p><h2 id="-ltimos-pensamientos">Últimos Pensamientos</h2><p>Espero que este artículo te ayude a solucionar cualquier problema que tengas con tu monitor.</p><p>Ten en cuenta que una vez que actualices los controladores necesarios (controlador de monitor y el controlador de adaptador de pantalla) y el monitor aún presenta fallas y no muestra nada en la pantalla, entonces muy probablemente sea un problema con los cables de conexión.</p><p>Gracias por leer.</p> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
