<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: JKHENZA</title>
    <description>The latest articles on DEV Community by JKHENZA (@jkenzai).</description>
    <link>https://dev.to/jkenzai</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F627009%2F37e46a57-65dd-4e01-adf8-cde6e504f487.png</url>
      <title>DEV Community: JKHENZA</title>
      <link>https://dev.to/jkenzai</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jkenzai"/>
    <language>en</language>
    <item>
      <title>Programación orientado a objetos, Patrones de diseño, Código limpio, Arquitectura Limpia</title>
      <dc:creator>JKHENZA</dc:creator>
      <pubDate>Tue, 04 Jul 2023 09:19:42 +0000</pubDate>
      <link>https://dev.to/jkenzai/programacion-orientado-a-objetos-patrones-de-diseno-codigo-limpio-arquitectura-limpia-4d22</link>
      <guid>https://dev.to/jkenzai/programacion-orientado-a-objetos-patrones-de-diseno-codigo-limpio-arquitectura-limpia-4d22</guid>
      <description>&lt;p&gt;&lt;strong&gt;La programación orientada a objetos (POO)&lt;/strong&gt; es un paradigma de programación ampliamente utilizado en el desarrollo de software. Con su enfoque en la organización y estructuración del código en torno a objetos, la POO ofrece numerosos beneficios, como la reutilización de código, la modularidad y la flexibilidad. En este artículo, exploraremos los conceptos básicos de la POO y su importancia en la construcción de sistemas de software robustos y mantenibles. La POO se basa en cuatro conceptos fundamentales: clases, objetos, encapsulación y herencia. Las clases son plantillas o moldes para crear objetos, que son instancias individuales de una clase. La encapsulación se refiere a la ocultación de datos y funciones internas dentro de un objeto, lo que permite proteger y controlar el acceso a ellos. La herencia permite crear nuevas clases basadas en clases existentes, lo que facilita la reutilización de código y la creación de jerarquías de clases.&lt;br&gt;
Los patrones de diseño, en el ámbito del desarrollo de software, son soluciones probadas y comprobadas para problemas comunes que surgen durante el diseño y la implementación de software. Son enfoques generales y reutilizables que ayudan a los desarrolladores a abordar desafíos específicos de manera efectiva, al proporcionar una guía sobre cómo estructurar y organizar el código.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Los patrones de diseño&lt;/strong&gt; se basan en la idea de que ciertos problemas de diseño ocurren con frecuencia y pueden resolverse de manera similar en diferentes situaciones. En lugar de reinventar la rueda cada vez, los patrones de diseño ofrecen soluciones probadas que se pueden aplicar a problemas similares.&lt;/p&gt;

&lt;p&gt;Existen varios tipos de patrones de diseño, cada uno de los cuales se enfoca en un aspecto específico del diseño del software. Algunos ejemplos comunes de patrones de diseño incluyen:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Patrones creacionales: se centran en la creación de objetos de manera eficiente. Algunos ejemplos son el patrón de fábrica, el patrón de constructor y el patrón de prototipo.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Patrones estructurales: se ocupan de la composición y estructura de las clases y objetos. Algunos ejemplos son el patrón de adaptador, el patrón de decorador y el patrón de proxy.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Patrones de comportamiento: se refieren a la interacción entre los objetos y la distribución de responsabilidades. Algunos ejemplos son el patrón de observador, el patrón de estrategia y el patrón de cadena de responsabilidad.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Cada patrón de diseño tiene un propósito específico y proporciona una solución bien definida para un problema de diseño común. Sin embargo, es importante tener en cuenta que los patrones de diseño no son recetas universales para todos los problemas, y su uso adecuado depende del contexto y los requisitos del proyecto. Los patrones de diseño son herramientas útiles para mejorar la calidad del código y promover la reutilización, la mantenibilidad y la escalabilidad del software.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Clean code, o código limpio&lt;/strong&gt; se refiere a la práctica de escribir código fuente de software que sea fácil de entender, leer y mantener. El objetivo principal del código limpio es producir software de calidad que sea comprensible y legible tanto para el desarrollador que lo escribió como para otros miembros del equipo.&lt;/p&gt;

&lt;p&gt;La aplicación de los principios de clean code implica seguir pautas y buenas prácticas que ayudan a mejorar la calidad del código. Algunas de las prácticas clave incluyen:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Nombres significativos: Utilizar nombres descriptivos y claros para variables, funciones, clases, métodos, etc. Esto facilita la comprensión del propósito y la funcionalidad del código.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Funciones y métodos pequeños: Dividir el código en funciones o métodos más pequeños y enfocados que realicen una sola tarea. Esto mejora la legibilidad y facilita la reutilización de código.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Comentarios y documentación adecuada: Añadir comentarios y documentación en el código para explicar la intención, la lógica compleja y las decisiones importantes. Esto ayuda a otros desarrolladores a comprender rápidamente el funcionamiento del código.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Eliminar código duplicado: Evitar la repetición de código escribiendo funciones y clases reutilizables. El código duplicado dificulta la comprensión y el mantenimiento del código.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Mantener la simplicidad: Buscar soluciones simples y directas en lugar de complicar innecesariamente el código. La simplicidad facilita la lectura y evita posibles errores.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Realizar pruebas unitarias: Escribir pruebas unitarias para validar el comportamiento esperado del código. Las pruebas unitarias ayudan a garantizar que el código funcione correctamente y proporcionan una forma de documentación adicional.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;La aplicación de clean code no solo mejora la legibilidad del código, sino que también facilita el mantenimiento, la colaboración entre desarrolladores y la identificación y corrección de errores. Ayuda a reducir la complejidad y los riesgos asociados con el desarrollo de software a largo plazo. Además, fomenta una cultura de calidad y respeto por el código dentro de un equipo de desarrollo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Clean Architecture (Arquitectura Limpia)&lt;/strong&gt; es un enfoque arquitectónico propuesto por Robert C. Martin (conocido como "Uncle Bob") que busca separar y organizar las diferentes capas y componentes de un sistema de software de manera que sean independientes de los detalles de implementación y frameworks externos. El objetivo principal de Clean Architecture es lograr un diseño flexible, mantenible y testeable, donde los componentes internos no dependan de decisiones externas y sean fácilmente reemplazables sin afectar al resto del sistema.&lt;/p&gt;

&lt;p&gt;La idea fundamental de Clean Architecture es establecer una serie de capas con una jerarquía de dependencias en el sistema, donde las capas internas contienen la lógica de negocio y son independientes de las capas externas. Estas capas suelen incluir:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Capa de Entidades (Entities): Contiene las entidades centrales y los objetos de dominio del sistema. Las entidades encapsulan la lógica de negocio y representan conceptos clave dentro del dominio del problema.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Capa de Casos de Uso (Use Cases): También conocida como Interactors o Application Layer, esta capa contiene los casos de uso y la lógica de aplicación del sistema. Los casos de uso implementan las reglas de negocio y coordinan las acciones entre las entidades.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Capa de Interfaces de Usuario (Interfaces): Esta capa se encarga de la comunicación con el exterior del sistema, ya sea a través de interfaces gráficas, interfaces de línea de comandos, APIs, etc. Se preocupa de la interacción con los usuarios o sistemas externos y dirige las solicitudes a los casos de uso correspondientes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Capa de Infraestructura (Infrastructure): Es la capa más externa y se encarga de los detalles técnicos y de implementación, como el acceso a bases de datos, frameworks externos, servicios web, etc. La capa de infraestructura proporciona implementaciones concretas para las interfaces definidas en las capas internas.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;La arquitectura limpia promueve la inversión de dependencias (Dependency Inversion Principle) y la separación de preocupaciones (Separation of Concerns), lo que permite que cada capa sea independiente y se pueda cambiar o reemplazar sin afectar al resto del sistema. Esto facilita la evolución y mantenimiento a largo plazo del software, así como la realización de pruebas unitarias y la adopción de nuevas tecnologías. Clean Architecture busca establecer una estructura clara y modular en un sistema de software, centrándose en la lógica de negocio y manteniendo las dependencias externas bajo control. Al aplicar Clean Architecture, se promueve un diseño flexible y mantenible, facilitando la adaptación y evolución continua del software.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Correlación entre estos conceptos:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Programación Orientada a Objetos: Los principios de la POO, como encapsulación, herencia y polimorfismo, ayudan a crear código modular y reutilizable, lo cual es una parte fundamental tanto de Clean code como de Clean Architecture.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Patrones de Diseño: Los patrones de diseño, como los patrones creacionales, estructurales y de comportamiento, proporcionan soluciones probadas para problemas comunes en el desarrollo de software. Estos patrones se pueden aplicar tanto en la escritura de código limpio como en la definición de la arquitectura de un sistema siguiendo los principios de Clean Architecture.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Clean Code: La escritura de código limpio se basa en principios y buenas prácticas que hacen que el código sea más legible, comprensible y mantenible. Estos principios, como nombres significativos, funciones y métodos pequeños, comentarios adecuados y eliminación de código duplicado, ayudan a estructurar el código de manera clara y coherente, lo cual es fundamental tanto en la POO como en Clean Architecture.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Clean Architecture: Clean Architecture se basa en la idea de separar las capas y componentes del sistema en diferentes niveles de abstracción y dependencias. Esto promueve el diseño modular y flexible, donde las capas internas no dependen de las capas externas y son independientes de los detalles de implementación. La aplicación de los principios de la POO y el uso de patrones de diseño ayudan a lograr una arquitectura limpia.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;En resumen, la programación orientada a objetos, los patrones de diseño, el código limpio y la arquitectura limpia están interrelacionados y se complementan entre sí. Todos ellos se basan en principios y buenas prácticas que promueven la modularidad, la reutilización y la mantenibilidad del código, tanto a nivel de componentes individuales como a nivel de la estructura general del sistema.&lt;/p&gt;

&lt;p&gt;El &lt;strong&gt;orden recomendado para reforzar el aprendizaje&lt;/strong&gt; de los temas mencionados anteriormente puede variar según las necesidades y el nivel de conocimiento de cada persona. Sin embargo, aquí te sugiero un orden que puede ser útil:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Programación Orientada a Objetos (POO): Comienza por comprender los conceptos fundamentales de la POO, como clases, objetos, encapsulación, herencia, polimorfismo, entre otros. Aprende cómo aplicar estos conceptos en la práctica y desarrollar habilidades de diseño orientado a objetos.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Patrones de Diseño: Una vez que tengas una base sólida en POO, puedes introducirte en los patrones de diseño. Comienza con los patrones creacionales, como Factory Method, Singleton o Builder, que te ayudarán a comprender cómo crear objetos de manera flexible y eficiente. Luego, pasa a los patrones estructurales, como Adapter, Decorator o Proxy, que te enseñarán cómo organizar y relacionar diferentes partes de tu código. Finalmente, explora los patrones de comportamiento, como Observer, Strategy o Template Method, que abordan la interacción entre objetos y la gestión de algoritmos.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Clean Code: Una vez que te sientas cómodo con los conceptos de POO y los patrones de diseño, es el momento de centrarte en la escritura de código limpio. Estudia los principios y las prácticas asociadas con el código limpio, como nombres significativos, funciones pequeñas, comentarios adecuados, eliminación de duplicación, entre otros. Aplica estos principios en tu propio código y analiza ejemplos de código limpio para comprender cómo mejorar la calidad y la legibilidad de tu código.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Clean Architecture: Una vez que hayas adquirido habilidades en la escritura de código limpio, puedes explorar Clean Architecture. Comprende los principios fundamentales y la estructura propuesta por Clean Architecture, como la separación de capas, la inversión de dependencias y el enfoque en la lógica de negocio. Aprende cómo aplicar estos conceptos en el diseño de sistemas y cómo desarrollar una arquitectura modular y mantenible.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Recuerda que estos temas están interrelacionados y se refuerzan mutuamente. A medida que profundices en cada uno de ellos, notarás que hay conceptos y principios que se repiten y se aplican en diferentes niveles. La práctica y la implementación real de proyectos te ayudarán a consolidar tu aprendizaje y a mejorar tus habilidades en cada uno de estos temas.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>Que es chatGPT y temas relacionados</title>
      <dc:creator>JKHENZA</dc:creator>
      <pubDate>Mon, 03 Jul 2023 21:47:27 +0000</pubDate>
      <link>https://dev.to/jkenzai/que-es-chatgpt-y-temas-relacionados-4d5h</link>
      <guid>https://dev.to/jkenzai/que-es-chatgpt-y-temas-relacionados-4d5h</guid>
      <description>&lt;p&gt;ChatGPT es un modelo de lenguaje desarrollado por OpenAI. Está basado en la arquitectura GPT-3.5, que significa "Generative Pre-trained Transformer 3.5". GPT-3.5 es una versión mejorada y más avanzada de los modelos anteriores de GPT.&lt;/p&gt;

&lt;p&gt;ChatGPT es capaz de generar respuestas y conversaciones en lenguaje natural. Ha sido entrenado en una amplia variedad de textos y tiene la capacidad de comprender y generar texto coherente en diferentes temas. Puede responder preguntas, sostener diálogos, ofrecer explicaciones, redactar textos, entre otras tareas relacionadas con el procesamiento del lenguaje natural.&lt;/p&gt;

&lt;h1&gt;
  
  
  Temas relacionados con chatGPT
&lt;/h1&gt;

&lt;p&gt;OpenAI ha utilizado un enfoque de "aprendizaje automático por refuerzo" para entrenar a ChatGPT, donde se ha expuesto al modelo a grandes cantidades de texto y se ha recompensado por producir respuestas de calidad. Esto permite que el modelo aprenda patrones y reglas lingüísticas complejas y genere respuestas relevantes y coherentes en base a la entrada que recibe.&lt;/p&gt;

&lt;p&gt;ChatGPT se ha utilizado en diversas aplicaciones, como asistentes virtuales, chatbots, generación de contenido y soporte al cliente, entre otros. Sin embargo, es importante destacar que, como modelo de lenguaje, ChatGPT no posee una comprensión real del significado detrás de las palabras y su conocimiento está limitado a la información que ha sido entrenada hasta septiembre de 2021, fecha de su último corte de conocimiento.&lt;/p&gt;

&lt;p&gt;ChatGPT no es en sí mismo un chatbot completo, sino un modelo de lenguaje diseñado para generar respuestas y sostener conversaciones en lenguaje natural.&lt;/p&gt;

&lt;p&gt;Sin embargo, ChatGPT puede ser utilizado como componente de un chatbot para mejorar la capacidad de generación de respuestas del mismo. Al incorporar ChatGPT en un chatbot, el chatbot puede aprovechar las capacidades de generación de lenguaje natural de ChatGPT para ofrecer respuestas más sofisticadas y contextualmente relevantes.&lt;/p&gt;

&lt;p&gt;Un &lt;strong&gt;"Large Language Model" (LLM)&lt;/strong&gt; se refiere a un modelo de lenguaje de gran escala. Es un tipo de modelo de inteligencia artificial que se entrena en una enorme cantidad de datos de texto para aprender patrones y estructuras del lenguaje natural.&lt;/p&gt;

&lt;p&gt;En el contexto de ChatGPT, "Large Language Model" hace referencia a la escala y capacidad del modelo. ChatGPT se basa en la arquitectura GPT (Generative Pre-trained Transformer) y es un ejemplo de un LLM. El término "Large" en Large Language Model indica que el modelo está entrenado en una gran cantidad de datos de texto y tiene una capacidad significativa para comprender y generar respuestas en lenguaje natural.&lt;/p&gt;

&lt;p&gt;El tamaño y la escala de un LLM como ChatGPT tienen varios beneficios. Al ser entrenado en una amplia variedad de datos, el modelo puede capturar mejor las complejidades del lenguaje y generar respuestas más coherentes y relevantes. Además, un LLM de mayor tamaño puede tener una mayor capacidad para retener y utilizar conocimientos previos durante una conversación.&lt;/p&gt;

&lt;p&gt;Sin embargo, también es importante tener en cuenta que los LLM de gran tamaño requieren una cantidad considerable de recursos computacionales para entrenar y ejecutar. Además, pueden presentar desafíos relacionados con la interpretación y explicación de las decisiones tomadas por el modelo debido a su complejidad y falta de transparencia interna.&lt;/p&gt;

&lt;p&gt;Los &lt;strong&gt;transformers&lt;/strong&gt; desempeñan un papel fundamental en el funcionamiento y la efectividad de ChatGPT. Los transformers son una arquitectura de red neuronal especialmente diseñada para el procesamiento del lenguaje natural y han demostrado ser muy exitosos en diversas tareas de procesamiento de texto.&lt;/p&gt;

&lt;p&gt;La arquitectura transformer permite a ChatGPT capturar y modelar relaciones a largo plazo entre las palabras y las frases en un texto. Esto es especialmente relevante para el contexto de una conversación, donde la comprensión del flujo y la coherencia de la interacción es crucial para generar respuestas adecuadas.&lt;/p&gt;

&lt;p&gt;Al utilizar transformers en ChatGPT, el modelo puede aprender patrones complejos y estructuras lingüísticas en el entrenamiento. Los transformers aprovechan las capas de atención para permitir que el modelo comprenda las relaciones entre diferentes partes del texto de entrada y asignar importancia a diferentes palabras o frases según su relevancia contextual.&lt;/p&gt;

&lt;p&gt;La arquitectura transformer también permite una mayor paralelización y eficiencia en el procesamiento, lo que contribuye al rendimiento y escalabilidad de ChatGPT. Además, los transformers permiten la generación autoregresiva, lo que significa que el modelo puede generar secuencialmente las palabras de una respuesta de manera coherente y contextualmente relevante.&lt;/p&gt;

</description>
      <category>chatgpt</category>
      <category>beginners</category>
      <category>ai</category>
    </item>
    <item>
      <title>Python console interactivo (Ipython)</title>
      <dc:creator>JKHENZA</dc:creator>
      <pubDate>Wed, 08 Feb 2023 19:21:31 +0000</pubDate>
      <link>https://dev.to/jkenzai/python-console-interactivo-ipython-52pj</link>
      <guid>https://dev.to/jkenzai/python-console-interactivo-ipython-52pj</guid>
      <description>&lt;p&gt;Utilizar el prompt en python tiene varias formas utiles y su forma de interactuar mediante ella es dinamica. Existen varios entornos que pueden ser ejecutado el prompt de python.&lt;/p&gt;

&lt;p&gt;IPython, viene ser un shell muy versatil, en la que puedes cambiar, regresar a funciones o clases completas creadas anteriormente ; al contrario de los otros solo se visualiza por cada linea.&lt;/p&gt;

&lt;p&gt;Para poder utilizar este shell interactivo, instalaremos en un entorno.&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;python -m venv .venv&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;instalar ipython
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install ipython
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;insertamos el nombre de shell&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzxbzq54qcambw06v353k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzxbzq54qcambw06v353k.png" alt="Image description" width="734" height="208"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Otras cosas que puedes realizar es guardar todo el script que escribiste en un archivo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftd4dcm16m84qoo1c1v76.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftd4dcm16m84qoo1c1v76.png" alt="Image description" width="300" height="62"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;El cual se visualiza de esta forma&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo31ik7k1soqwkuqvfsev.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo31ik7k1soqwkuqvfsev.png" alt="Image description" width="116" height="21"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;En resumen, solo doy a conocer otra forma de programar o realizar pequeñas por el shell de python interactivo. Para mas informacion visite a la documentacion de ipython &lt;a href="https://ipython.org/ipython-doc/rel-0.11/interactive/reference.html"&gt;command-line&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>python</category>
      <category>programming</category>
      <category>tutorial</category>
      <category>spanish</category>
    </item>
    <item>
      <title>Django 101: Creando un proyecto fàcil.</title>
      <dc:creator>JKHENZA</dc:creator>
      <pubDate>Mon, 06 Feb 2023 21:34:02 +0000</pubDate>
      <link>https://dev.to/jkenzai/django-101-creando-un-proyecto-facil-232c</link>
      <guid>https://dev.to/jkenzai/django-101-creando-un-proyecto-facil-232c</guid>
      <description>&lt;p&gt;El lenguaje de programación es multipropósito, por los cuales uno es el desarrollo en web, por lo tanto comenzaremos con lo basico.&lt;/p&gt;

&lt;h2&gt;
  
  
  Contenido
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Que es framework django&lt;/li&gt;
&lt;li&gt;creacion de un projecto django&lt;/li&gt;
&lt;li&gt;reacion de una app django&lt;/li&gt;
&lt;li&gt;ejecucion el proyecto&lt;/li&gt;
&lt;li&gt;creacion de usuario&lt;/li&gt;
&lt;li&gt;creacion de modelos &lt;/li&gt;
&lt;li&gt;migrate y makemigrations&lt;/li&gt;
&lt;li&gt;ingresando datos para el modelo &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Iniciaremos creando un entorno &lt;br&gt;
Crear un directorio para el proyecto 'django101'. dentro escribir el siguiente comando&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python -m venv .venv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Habilitar el entorno creado.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.venv\Scripts\activate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Instalacion del framework django
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install Django==4.1.6
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;creando un proyecto
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;django-admin startproject project101 .
# viendo el directorio
.venv
project101
manage.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Ejecutamos el servidor del proyecto
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python manage.py runserver
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8wbpjzkzwbotnbrfgmo5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8wbpjzkzwbotnbrfgmo5.png" alt="Image description" width="773" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ejecutar el migrate
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python manage.py migrate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;crear el superusuario
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python manage.py createsuperuser
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwivedj157k95o1oj3pvr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwivedj157k95o1oj3pvr.png" alt="Image description" width="673" height="196"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ejecutar el servidor e ir a &lt;code&gt;http://127.0.0.1:8000/admin&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frela6vwq7dfyw3yh6dza.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frela6vwq7dfyw3yh6dza.png" alt="Image description" width="421" height="305"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Creando una app
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;ingresar el siguiente comando
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python manage.py startapp book
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;agregar en &lt;code&gt;project101\settings.py&lt;/code&gt; el nombre de la aplicacion&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpj25i38pkmmx2pxtw3is.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpj25i38pkmmx2pxtw3is.png" alt="Image description" width="353" height="243"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;agregar un modelo en &lt;code&gt;book\model.py&lt;/code&gt;, agregaremos con campos basicos.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo0dnfpcsr77un7hmkq3e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo0dnfpcsr77un7hmkq3e.png" alt="Image description" width="488" height="197"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;realizar el makemigrations, a la aplicacion &lt;code&gt;python manage.py mikemigrations book&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fte5eubf7nuhuujw3ce3x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fte5eubf7nuhuujw3ce3x.png" alt="Image description" width="406" height="82"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;En la carpeta de la aplicacion &lt;code&gt;book&lt;/code&gt;, agregar en &lt;code&gt;book\admin.py&lt;/code&gt;, para el registro del modelo y visualizarlo en la web.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy35mtm6ek9spwivknna8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy35mtm6ek9spwivknna8.png" alt="Image description" width="363" height="117"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;antes de iniciar el servidor realizar el &lt;code&gt;python manage.py migrate book&lt;/code&gt;. despues ejecutar el comando &lt;code&gt;python manage.py runserver&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;visualizara de la siguiente forma.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjkloetsfdzd6p9kyw7ls.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjkloetsfdzd6p9kyw7ls.png" alt="Image description" width="740" height="351"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Agrege algunos datos&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fajtnpsr60hrwxozp2i0x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fajtnpsr60hrwxozp2i0x.png" alt="Image description" width="746" height="290"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;En resumen, este es un comienzo para crear proyectos en el framework de django.&lt;br&gt;
Gracias por leer.&lt;/p&gt;

</description>
      <category>python</category>
      <category>programming</category>
      <category>framework</category>
    </item>
    <item>
      <title>Herramientas para programar en Kotlin</title>
      <dc:creator>JKHENZA</dc:creator>
      <pubDate>Tue, 11 May 2021 02:48:57 +0000</pubDate>
      <link>https://dev.to/jkenzai/herramientas-para-programar-en-kotlin-2nj8</link>
      <guid>https://dev.to/jkenzai/herramientas-para-programar-en-kotlin-2nj8</guid>
      <description>&lt;h3&gt;
  
  
  Para escribir nuestros algoritmos y pasarlo a un sistema de compilacion, necesitamos de herramientas de maquina de alto nivel para su respectiva compilacion de la lògica que realimos.
&lt;/h3&gt;

&lt;p&gt;En la actualidad existen muchas herramientas de desarrollo de software que nos vuelve mas productivo a programar.&lt;br&gt;
Aqui te damos las herramientas que mas se utilizan en para programar en Kotlin.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Intellij - IDEA&lt;/strong&gt;
&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5h1jme2li3lfrrjtdsxl.png" alt="alt text" width="800" height="428"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Dentro de este editor tambien podemos programar con el RELP y el scratches, que se ejucutan al mismo tiempo que escribes el codigo.
&lt;/h3&gt;

&lt;p&gt;---&amp;gt;RELP&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fji6i3khor82gsom2wjm6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fji6i3khor82gsom2wjm6.png" alt="alt text" width="574" height="597"&gt;&lt;/a&gt;&lt;br&gt;
---&amp;gt;Scratches&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe81lr2l9x860e605szui.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe81lr2l9x860e605szui.png" alt="alt text" width="800" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;VS-code&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy9hfws51ty7myl15ktlk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy9hfws51ty7myl15ktlk.png" alt="alt text" width="800" height="264"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Android-Studio&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Para solamente utilizar kotlin, crea un proyecto sin actividad.
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fah6uqjb3mbedt8willk0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fah6uqjb3mbedt8willk0.png" alt="alt text" width="525" height="239"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  A nivel online puedes utilizar de su propia pagina oficial &lt;a href="https://play.kotlinlang.org/?_ga=2.202915287.797882295.1620648005-687373427.1620648004#eyJ2ZXJzaW9uIjoiMS41LjAiLCJwbGF0Zm9ybSI6ImphdmEiLCJhcmdzIjoiIiwianNDb2RlIjoiIiwibm9uZU1hcmtlcnMiOnRydWUsInRoZW1lIjoiaWRlYSIsImNvZGUiOiIvKipcbiAqIFlvdSBjYW4gZWRpdCwgcnVuLCBhbmQgc2hhcmUgdGhpcyBjb2RlLiBcbiAqIHBsYXkua290bGlubGFuZy5vcmcgXG4gKi9cblxuZnVuIG1haW4oKSB7XG4gICAgcHJpbnRsbihcIkhlbGxvLCB3b3JsZCEhIVwiKVxufSJ9"&gt;kotlin&lt;/a&gt;
&lt;/h3&gt;

</description>
    </item>
  </channel>
</rss>
