Leer Primero

Como se utiliza este blog?

sábado, 9 de mayo de 2026

EtchDroid

Bienvenido a mi blog, hoy hablaremos un poco de EtchDroid, la cual es una aplicación de código abierto, libre de publicidad, con licencia GNU GPLv3, que te ayudara a grabar imágenes ISO en unidades USB, sin necesidad de que el móvil cuente con acceso root.

Úsala para crear una unidad USB de un sistema operativo de arranque, cuando tu portátil o pc de escritorio no funcionen, o los tengas ocupados.


⭐️ Dispositivos compatibles en EtchDroid:

✅ Unidades flash USB

✅ Adaptadores USB para tarjetas SD y microSD

❌ Discos duros USB / SSD

❌ Bases y concentradores USB

❌ Ranura interna para tarjeta microSD

❌ Unidades ópticas o de disquete

❌ Dispositivos solo Thunderbolt


⭐️ Tipos de imágenes de disco compatibles en EtchDroid:


✅ Imágenes de sistemas operativos GNU/Linux modernos, incluyendo Arch Linux, Ubuntu, Debian, Fedora, pop!_OS, Linux Mint, FreeBSD, BlissOS y muchos más.

✅ Imágenes de la tarjeta SD de Raspberry Pi (¡pero primero debes descomprimirlas!)

❌ Imágenes ISO oficiales de Microsoft Windows de microsoft.com

⚠️Imágenes de Windows creadas por la comunidad para EtchDroid (¡cuidado: pueden contener virus!).

❌ Imágenes de disco DMG de Apple

❌ Imágenes de sistemas operativos GNU/Linux antiguas (< 2010), como Damn Small Linux.



Novedades en la versión 2.0 (esta versión requiere Android 5.0 o superior):


• Nueva interfaz de usuario Material You, ¡mucho más intuitiva y fácil de usar!

• EtchDroid ahora se recuperará de la mayoría de los fallos de escritura y pedirá que desconectes y vuelvas a conectar el USB.

• Después de escribir la imagen, también se verificará para garantizar que no se haya dañado.

• Se ha eliminado la funcionalidad de imágenes .DMG (disk image) que son archivos de imagen de disco usados principalmente en macOS; pero podras utilizar una versión anterior si aún la necesitas.



Puedes descargar EtchDroid desde la play store y ten en cuenta que el proyecto EtchDroid y su código fuente, pueden ser encontrados en GitHub:



De todas formas ten en cuenta que para poder realizar todo este proceso, se necesita un adaptador OTG a USB, para poder conectar la memoria USB al móvil:



Finalmente recuerda que "La palabra 'Android', así como los logotipos oficiales, son marcas comerciales con copyright © de Google LLC. Todos los derechos de marca y autor están reservados por sus respectivos propietarios y licencias correspondientes."



Quieres aportar algo que complemente este articulo? crees que hay algo que se deba corregir? Escríbenos este blog es para todos.


Si te sirvió deja un comentario de agradecimiento, comparte el post en tus redes sociales o recomiéndale el blog a un amigo, eso me motiva a seguir realizando estos pequeños posts y espero que vuelvas a mi blog, publico nuevo material con base en los softwares y apps que utilizo y la experiencia que he adquirido. Por último si deseas colaborar voluntariamente y crees que mi trabajo y mi tiempo lo ameritan, considere hacer una pequeña donación a mi NEQUI +573177295861.



También te puede interesar:


Así cambia la experiencia móvil con Android 17

Sera un poco mas complicado instalar APK's en Android

Appteka

Magisk

BusyBox

Unroot

Google Play Store le dirá adiós al formato APK y solo permitirá AAB desde agosto de 2021

Cómo borrar aplicaciones Preinstaladas de fabrica en móviles Android sin Root

jueves, 30 de abril de 2026

Así cambia la experiencia móvil con Android 17

Bienvenido a mi blog, hoy hablaremos un poco sobre Android 17, la próxima versión del sistema operativo de Google para móviles y en el cual tendremos que una de sus novedades, sera señalar al culpable de que tu móvil vaya a tirones, la gran novedad invisible será ese tope de memoria por app según la RAM del móvil, pensado para acabar con los excesos. Si una app se sobrepasa, el sistema la "mata" y la deja registrada con la etiqueta <MemoryLimiter> para que los desarrolladores se enteren de que ha dado problemas.

Android 17 beta 4 llega con la primera animación nueva del huevo de Pascua desde Android 14 y estrena el logo definitivo.

Para activar la animación hay que ir hasta los ajustes del sistema, entrar en “Información del teléfono”, ir hasta “Versión de Android”, y pulsar varias veces sobre “Android 17”. Entonces aparece la nueva animación, pero hay que activarla: debemos unir los puntos que forman la insignia. La animación escondida en el sistema google, tiene diversas tradiciones curiosas con las versiones de su sistema operativo para móviles. Todas tienen un nombre de dulce (Android 17 es Cinnamon bun o rollo de canela), ofrecen el logo con una animación escondida en los ajustes (huevo de Pascua) y un pequeño juego completamente funcional (actualmente es un clon de Lunar Lander, un juego de Atari de 1979). Con la beta 4 lo que cambia es el Easter Egg. Y Google ha renovado el juego, llamado “Landroid”.

Android 17 ha cambiado a violeta como color de acento y sin perder el verde Android, varias capas superponiéndose y un renovado estilo que anticipa el diseño de Material 3 Expressive, recordemos tambien que en Android 17 estaremos en nivel de API 37.


Voy a empezar diciéndote cuáles son las novedades confirmadas de Android 17. No van a ser las únicas, ni se irán implementando al mismo tiempo:

'Aluminium OS' y el fin de ChromeOS

La novedad más disruptiva de Android 17 podría en sus cimientos, aunque todavía no ha sido confirmada. Se trata de un proyecto con nombre en clave 'Aluminium OS', que busca unificar en un mismo sistema operativo tanto móviles como tabletas y portátiles.

Actualmente Google tiene dos sistemas operativos, Android para móviles, tabletas, relojes o coches, y Chrome OS para portátiles y ordenadores, aunque se centra en las gamas bajas. Ahora, lo que quieren es tener un único sistema operativo que sirva para todo, y esto supondría la desaparición y/o reemplazo de ChromeOS.

La idea con Aluminium OS es que Android pueda usarse tanto en móvil como en PC de escritorio. Y cuando lo uses en el escritorio, tendrá la interfaz de un sistema operativo completo. Con esto, Android ya no solo se centrará en móviles y tabletas, sino también en portátiles y ordenadores de todas las gamas que comercializa google.

Asalto a las gamas altas

Los Chromebooks con Chrome OS son sobre todo portátiles baratos de gama de entrada, y que sirven para navegar por Internet y no tanto más. Pero ahora, en las filtraciones se habla de dispositivos premium, y de que Google quiere que Android sea una opción para portátiles de gama alta. Y ahora con Gemini integrado en su núcleo: También he sabido que Google quiere integrar Gemini en las entrañas de su sistema operativo, de forma que pueda usarse nativamente en portátiles sin más complicaciones.

Aquí, lo que debe estar claro es que todavía no está confirmado que vaya a llegar en Android 17. Se ha filtrado que es un desarrollo en marcha, pero no se si llegará en la próxima versión de su sistema operativo ni si se integrará completamente o será una integración progresiva.

Ademas con la justificación de la seguridad, Google exigirá a los desarrolladores verificar su identidad para que sus APKs sean instalables, incluso si se bajan fuera de la tienda de apps.

Optimización del Kernel de Android

Optimizaciones como la conocida implementación de la tecnología AutoFDO en su kernel, un sistema que aprende del comportamiento de las apps para acelerar la carga y maximizar la eficiencia energética. Esto no sera un parche, sino un cambio en cómo se compila el código de Android en base a las 100 apps mas usadas actualmente.



Finalmente recuerda que "La palabra 'Android', así como los logotipos oficiales, son marcas comerciales con copyright © de Google LLC. Todos los derechos de marca y autor están reservados por sus respectivos propietarios y licencias correspondientes."



Quieres aportar algo que complemente este articulo? crees que hay algo que se deba corregir? Escríbenos este blog es para todos.

Si te sirvió deja un comentario de agradecimiento, comparte el post en tus redes sociales o recomiéndale el blog a un amigo, eso me motiva a seguir realizando estos pequeños posts y espero que vuelvas a mi blog, publico nuevo material con base en los softwares y apps que utilizo y la experiencia que he adquirido. Por último si deseas colaborar voluntariamente y crees que mi trabajo y mi tiempo lo ameritan, considere hacer una pequeña donación a mi NEQUI-DAVIPLATA +573177295861.


También te puede interesar:


Sera un poco mas complicado instalar APK's en Android

Appteka

Magisk

BusyBox

Unroot

Google Play Store le dirá adiós al formato APK y solo permitirá AAB desde agosto de 2021

Cómo borrar aplicaciones Preinstaladas de fabrica en móviles Android sin Root

lunes, 26 de enero de 2026

Sera un poco mas complicado instalar APK's en Android

Bienvenido a mi blog, hoy hablaremos un poco sobre algo por lo que se ha caracterizado Android frente a al sistema operativo iOS de apple, y es por la relativa facilidad de descargar un instalador en formato APK de un repositorio externo, si hemos dicho adiós a una de las apps más emblemáticas de Android como ha sido Nova Launcher, en poco tiempo habrá que levantar la mano para realizar el mismo gesto con una acción muy vinculada al SO de Google: instalar APKs en tu móvil o en tu tablet. Google justifica este enorme cambio en aras de la seguridad de los usuarios de Android.

Un movimiento peculiar que sucedio justo cuando Epic Games le ganó la partida a Google con Fortnite para que se puedan instalar tiendas de terceros, que se tendrá que hacer desde la Google Play Store, ya que actualmente la única forma es descargar justamente un archivo APK desde la web de Epic Games. La nueva norma de Google que se aplicará a partir de 2026 se basa en que todas las apps instaladas fuera de la Play Store deberán provenir de desarrolladores verificados para detener el malware, ya que según Google las apps externas tienen hasta 50 veces más riesgo de sufrir estos ataques.

Play Protect ya no formará parte del sistema de revisión de las APKS y se delega todo en una nueva herramienta de verificación de APKs que obliga a los desarrolladores a identificarse para que se pueda instalar su APK como se viene haciendo. La única excepción que permitira Google para instalar una APK no verificada será hacerlo a través de ADB (Android Debug Bridge), que conlleva activar las opciones de desarrollo de Android y activar una función para poder conectar el móvil al PC con cable usb (algo bastante técnico para un usuario normal).


Google, según SmartWorld, ya ha establecido un calendario para comenzar con las pruebas de esta nueva restricción que impedirá la instalación de un archivo APK como hemos hecho desde siempre en Android. Quedara teoricamente así:

  • Octubre de 2025: las primeras pruebas.
  • Marzo de 2026: el sistema de verificación se activara.
  • En septiembre de 2026 comenzarían los bloqueos en países de alto riesgo.
  • Y el despliegue mundial empezaría en 2027.

Quedan meses y tiempo para que se ejecute una medida que cambia totalmente la forma de entender Android como un sistema operativo que ha sido en parte abierto y que en los últimos años ha sido cercenado con distintas medidas. Por esta misma razón, estos días atrás se ha generado mucho rechazo ante esta medida que aleja a Android de lo que era, como simplemente se puede hacer en Windows al descargar un archivo ejecutable .exe para instalar un programa. Y volvemos a recordar que en los siguientes meses, no solo por la parte que le toca en el juicio con Epic Games sino por la DSA (Ley de Servicios Digitales), se tendrán que aplicar cambios en la Play Store, así que hay margen para que esta nueva medida se pueda detener a tiempo, si es que los usuarios se unen y lanzan alguna reclamación.


"La palabra 'Android', así como los logotipos oficiales, son marcas comerciales con copyright © de Google LLC. Todos los derechos de marca y autor están reservados por sus respectivos propietarios y licencias correspondientes."



Quieres aportar algo que complemente este articulo? crees que hay algo que se deba corregir? Escríbenos este blog es para todos.

Si te sirvió deja un comentario de agradecimiento, comparte el post en tus redes sociales o recomiéndale el blog a un amigo, eso me motiva a seguir realizando estos pequeños posts y espero que vuelvas a mi blog, publico nuevo material con base en los softwares y apps que utilizo y la experiencia que he adquirido. Por último si deseas colaborar voluntariamente y crees que mi trabajo y mi tiempo lo ameritan, considere hacer una pequeña donación a mi NEQUI +573177295861.


También te puede interesar:

Appteka

Magisk

BusyBox

Unroot

Google Play Store le dirá adiós al formato APK y solo permitirá AAB desde agosto de 2021

Cómo borrar aplicaciones Preinstaladas de fabrica en móviles Android sin Root


domingo, 18 de enero de 2026

Comprobar y actualizar el Arranque Seguro en Windows 11

Bienvenido a mi blog, hoy hablaremos un poco sobre la seguridad en Windows 11, la cual es un elemento clave y cada vez más importante a medida que se lanzan nuevas versiones del sistema operativo Windows. Debemos tener en consideración que el Arranque Seguro evita que el malware de bajo nivel, bootkits, etc, comprometa el proceso de inicio de Windows 11, componente que necesita de nuestra atención.

Lo primero que debemos tener presente es que algunos certificados de Arranque Seguro caducan en el mes de Junio de 2026. Por tanto, a continuación, vamos a explicar cómo revisarlos y actualizarlos. Todo con el fin de proteger nuestro ordenador o PC y evitar problemas de arranque o de seguridad.

Partiendo de esa base, estos certificados a los que nos referimos aquí para el Arranque Seguro de Microsoft, son de 2011 y vencen en Junio de 2026. Ahora bien, los nuevos certificados amplían la protección hasta el año 2053. Eso sí, es probable que los equipos adquiridos a partir de 2024, ya cuenten con los certificados más recientes. Otros los están recibiendo gradualmente a través de Windows Update.

Ver el estado de los certificados de Arranque Seguro

Podemos comprobar el estado de nuestro certificado mediante la herramienta PowerShell y actualizarlo manualmente si no los hemos recibido automáticamente. Debemos saber que a partir de la actualización de seguridad de Enero de 2026, Microsoft ha comenzado la implementación gradual de un nuevo certificado. Esto permitirá que nuestro equipo siga arrancando correctamente y reciba actualizaciones de seguridad.

Y es que en Windows 11, el Arranque Seguro es una función de seguridad disponible en el firmware de la UEFI. Impide modificaciones no autorizadas en archivos críticos del sistema durante su inicio. Esto garantiza que el equipo arranque únicamente con software de confianza del fabricante. Ayuda a protegernos contra el malware de bajo nivel que puede infectar el proceso de arranque y tomar el control de nuestro equipo incluso antes de que se carguen el sistema operativo y el antivirus.

Esta función utiliza claves criptográficas para validar que los módulos de firmware provengan de una fuente fiable. Hay que decir que los certificados de Arranque Seguro siempre han tenido fecha de caducidad, ya que ayudan a garantizar que el equipo siga recibiendo actualizaciones de seguridad.

Por eso, debemos instalar los certificados de 2023 antes de que los de 2011 caduquen en junio de 2026. En la actualización KB5074109 de este mes, Microsoft indicó que las actualizaciones ahora incluyen un subconjunto de datos de alta fiabilidad con el fin de recibir automáticamente nuevos certificados de Arranque Seguro. La implementación será gradual.

Esto significa que no es necesario realizar ningún paso manual para actualizar el Arranque Seguro. Pero veamos cómo comprobar la fecha de caducidad de estos certificados, dado que no recibiremos ninguna notificación indicando que el equipo incluye los más recientes. Para comprobar que ya disponemos de los más recientes, abrimos PowerShell con permisos de administrador y ejecutamos este comando:

[System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI db).bytes) -match 'Windows UEFI CA 2023'

Si recibimos una salida True, es que tenemos el nuevo certificado válido hasta 2053. De lo contrario, False significa que aún tenemos el certificado de 2011 que vence en Junio de 2026.


Actualizar los certificados en Windows 11


Esto quiere decir que si los certificados están a punto de caducar, es posible que Microsoft o el fabricante del equipo nos envíen las actualizaciones de firmware a través de Windows Update. Sin embargo, también podemos actualizar manualmente el Arranque Seguro.

Eso sí, antes de continuar, recomendamos guardar la clave de recuperación de BitLocker y de que la BIOS (UEFI) esté actualizada. También se recomienda hacer una copia de seguridad completa del PC. A partir de ahí, de nuevo abrimos una ventana de la herramienta PowerShell con permisos de administrador y ejecutamos lo siguiente:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot" /v AvailableUpdates /t REG_DWORD /d 0x5944 /f

Este comando establece la clave de registro que indica al sistema operativo que implemente todos los certificados necesarios. Aquí se incluye el de arranque actualizado. Cabe mencionar que esta actualización suele requerir 2 reinicios para aplicarse por completo.


Quieres aportar algo que complemente este articulo? crees que hay algo que se deba corregir? Escríbenos este blog es para todos.

Si te sirvió deja un comentario de agradecimiento, comparte el post en tus redes sociales o recomiéndale el blog a un amigo, eso me motiva a seguir realizando estos pequeños posts y espero que vuelvas a mi blog, publico nuevo material con base en los softwares y apps que utilizo y la experiencia que he adquirido. Por último si deseas colaborar voluntariamente y crees que mi trabajo y mi tiempo lo ameritan, considere hacer una pequeña donación a mi NEQUI +573177295861.



También te puede interesar:


UEFI y BIOS - Generalidades

DISCOS SSD - GENERALIDADES

Creacion de Particiones desde simbolo del sistema

WinRAR

Fuentes

ShowKeyPlus - Muestra la licencia actual de Windows

HDD Low Level Format Tool v4.40

Activa tu Windows 11 facil


sábado, 8 de marzo de 2025

Triángulo de Sierpinski en Python utilizando el módulo Python Turtle

Bienvenido a mi blog, hoy hablaremos un poco sobre el triángulo de Sierpiński, el cual es un fractal que se construye a partir de un triángulo equilátero y se obtiene al repetir infinitas veces un algoritmo geométrico. Dicho triángulo lleva el nombre del matemático polaco Wacław Franciszek Sierpiński (Varsovia, 1882-1969), quien creó varios objetos fractales, entre ellos el conocido triángulo de Sierpiński. De manera análoga al conjunto de Cantor, este fractal puede obtenerse mediante una sucesión infinita de extracciones.

Fractal (del latín fractus, "irregular", "fragmentado") es una palabra acuñada por el matemático Benoît Mandelbrot para describir la repetición "infinita" de patrones geométricos a diferentes escalas, los cuales muestran versiones cada vez más pequeñas de sí mismos. Las partes pequeñas de un fractal, explicaba Mandelbrot, son semejantes al todo, es decir, al conjunto completo. Lo más interesante es que el matemático demostró que la mayoría de las formas de la naturaleza son fractales. Estos se han utilizado para explicar fenómenos atmosféricos, analizar las redes vasculares y neuronales del cuerpo humano, calcular la longitud de las costas, explicar el crecimiento de los cerebros de los mamíferos, estudiar los seísmos... Incluso en telecomunicaciones se han diseñado antenas fractales, como las que utilizan los teléfonos celulares actuales, ya que mejoran el rendimiento y permiten reducir la longitud de los hilos de estas, disminuyendo a su vez el espacio que ocupan.

En el contexto de los fractales, la iteración se refiere a la aplicación repetida de una regla o un procedimiento para generar la forma o estructura compleja del fractal. En la creación del triángulo de Sierpiński, una fórmula matemática se aplica repetidamente, produciendo un patrón característico. La cantidad de veces que se aplica la fórmula se conoce como el nivel de iteración. La autosimilitud es una característica de los fractales que hace referencia a su capacidad para mantener un patrón o forma similar a sí mismos en diferentes escalas. En otras palabras, una porción de un fractal se asemeja a su forma completa, sin importar la escala en la que se observe. Esta propiedad se conoce como simetría fractal. La autosimilitud es una de las características que hacen que los fractales sean tan interesantes y únicos en el mundo de las matemáticas.

Para generar el triángulo de Sierpiński, vamos a utilizar Python Turtle, un módulo de Python que permite crear gráficos vectoriales mediante comandos simples. Estos comandos controlan un cursor, conocido como tortuga (turtle), que se mueve por la pantalla y dibuja líneas y figuras geométricas, permitiéndonos crear diseños personalizados. Es comúnmente utilizado en la enseñanza de la programación, ya que es fácil de entender y usar. Con Python Turtle, los estudiantes pueden aprender conceptos básicos de programación, como bucles, condicionales y funciones, mientras crean sus propios gráficos. Para utilizar Python Turtle, primero debemos importar el módulo en nuestro script. Luego, podemos crear una instancia de turtle y emplear los comandos mencionados anteriormente para dibujar en la pantalla. Hoy aprenderemos a dibujar el triángulo de Sierpiński con el módulo Python Turtle.

En el siguiente código Python utilizamos el módulo Turtle para dibujar un triángulo equilátero y el triángulo total se forma mediante iteraciones, acá tenemos el desglose del código comentado:

# -------------------------------------------------------------------------
# (| " TriánguloSierpinski.py                                           "|)
# (| "                                                                  "|)
# (| " Script que genera el fractal del triángulo de sierpinski para    "|)
# (| " mostrar a modo de ejemplo, cómo se realiza el procedimiento.     "|)
# (| "                                                                  "|)
# (| " Este código de ejemplo es de dominio público.                    "|)
# (| "                                                                  "|)
# (| " Developer: jorgechac© - Técnico Laboral en Programación UNAB     "|)
# (| " Visita  https://jorgechac.blogspot.com                           "|)
# (| "                                                                  "|)
# (| " Venta de accesorios Arduino/Raspberry Pi Pico/ESP32   	        "|)
# (| " Whatsapp y Ventas NEQUI +573177295861                            "|)
# (| " Bucaramanga - Colombia                                           "|)
# -------------------------------------------------------------------------
import turtle  # Importa la biblioteca turtle para gráficos
import math    # Importa la biblioteca math para cálculos matemáticos

# Función recursiva para dibujar el triángulo de Sierpinski
def sierpinski(t, order, size):
    if order == 0:           # Caso base: dibuja un triángulo equilátero
        for _ in range(3):
            t.forward(size)  # Dibuja un lado del triángulo
            t.left(120)      # Gira a la izquierda 120 grados
    else:
        # Llamadas recursivas para dibujar triángulos más pequeños
        sierpinski(t, order-1, size/2)  # Triángulo inferior izquierdo
        t.forward(size/2)  # Mueve la tortuga a la derecha
        sierpinski(t, order-1, size/2)  # Triángulo inferior derecho
        t.backward(size/2)  # Regresa a la posición original
        t.left(60)  # Gira a la izquierda
        t.forward(size/2)  # Mueve la tortuga hacia arriba
        t.right(60)  # Corrige la dirección
        sierpinski(t, order-1, size/2)  # Triángulo superior
        t.left(60)  # Regresa la dirección original
        t.backward(size/2)  # Vuelve a la posición de inicio
        t.right(60)  # Corrige la orientación

# Configuración del nivel del fractal y tamaño del triángulo
order = 5  # Nivel de recursión del fractal
size = 500 # Tamaño del triángulo principal

# Configuración de la pantalla de Turtle
screen = turtle.Screen()
screen.bgcolor("white")  # Color de fondo blanco
screen.setup(width=size + 50, height=(size * math.sqrt(3)) / 2 + 100)
# Ajusta el tamaño de la ventana

# Configuración de la tortuga para dibujar
t = turtle.Turtle()
t.speed("fastest")  # Velocidad máxima de dibujo
t.pencolor("green") # Color del lápiz

# Posiciona la tortuga para centrar el triángulo en la pantalla
t.penup()  # Levanta el lápiz para mover sin dibujar
t.goto(-size/2, -size/(2*math.sqrt(3)) - 30)
# Mueve la tortuga a la posición inicial, más abajo
t.pendown()  # Baja el lápiz para empezar a dibujar

# Llama a la función para dibujar el fractal
sierpinski(t, order, size)

# Finaliza el dibujo
turtle.done()


Finalmente después de ejecutar el código, se abrirá una nueva ventana y se comenzará a generar la grafica en Python, así:



Quieres aportar algo que complemente este articulo? crees que hay algo que se deba corregir? Escríbenos este blog es para todos.

Recuerda que en https://jorgechac.blogspot.com nos dedicamos a construir una electrónica mejor! y apoyamos el proyecto CTC GO! (Creative Technologies in the Classroom) que es un programa de educación steam personalizable.


Si te sirvió deja un comentario de agradecimiento, comparte el post en tus redes sociales o recomiéndale el blog a un amigo, eso me motiva a seguir realizando estos pequeños posts y espero que vuelvas a mi blog, publico nuevo material con base en los softwares y apps que utilizo y la experiencia que he adquirido. Por último si deseas colaborar voluntariamente y crees que mi trabajo y mi tiempo lo ameritan, considere hacer una pequeña donación a mi NEQUI +573177295861.



También te puede interesar:


Generación de Formas de Onda en Python utilizando la libreria Matplotlib y Numpy

Dibujo de un arbol de navidad utilizando el módulo Python Turtle

ARBOL DE NAVIDAD EN PYTHON

Dibujando en Python utilizando la libreria Matplotlib y Numpy

Dibujando en Python utilizando el módulo Python Turtle

Dibujo del logotipo de Python utilizando el módulo Python Turtle


jueves, 6 de marzo de 2025

Generación de Formas de Onda en Python utilizando la libreria Matplotlib y Numpy

Bienvenido a mi blog, hoy hablaremos un poco de la generación de formas de onda, la cual es la producción de patrones de señales analógicas o digitales, periódicas o no periódicas. Esta acción, se realiza físicamente mediante dispositivos electrónicos llamados generadores de formas de onda. Un generador de forma de onda, produce formas de onda precisas, incluyendo sinusoidales, cuadradas, triangulares y de rampa, así como formas de onda arbitrarias definidas por el usuario utilizando secuencias de datos o transmitiendo continuamente desde un host o instrumento "peer-to-peer" dentro de sistemas de pruebas de señal mixta.

La generación de formas de onda por software se puede realizar con programas especializados que permiten crear, editar y administrar dichas formas de onda, el día de hoy veremos la generación básica de algunas formas de onda en Python, para ello haremos uso de Matplotlib, la cuál es una librería completa para crear visualizaciones estáticas, animadas e interactivas en Python, y de igual forma también usaremos la librería NumPy, que nos trae el poder computacional de lenguajes como C y Fortran a Python, un lenguaje mucho más fácil de aprender y usar. Vamos a ello directamente y veamos el código en Python con sus respectivos comentarios explicativos:

# -------------------------------------------------------------------------
# (| " FormasdeOnda.py                                                  "|)
# (| "                                                                  "|)
# (| " Script que genera las formas de onda más conocidas para mostrar, "|)
# (| " a modo de ejemplo, cómo se realiza el procedimiento.             "|)
# (| "                                                                  "|)
# (| " Este código de ejemplo es de dominio público.                    "|)
# (| "                                                                  "|)
# (| " Developer: jorgechac© - Técnico Laboral en Programación UNAB     "|)
# (| " Visita  https://jorgechac.blogspot.com                           "|)
# (| "                                                                  "|)
# (| " Venta de accesorios Arduino/Raspberry Pi Pico/ESP32   	        "|)
# (| " Whatsapp y Ventas NEQUI +573177295861                            "|)
# (| " Bucaramanga - Colombia                                           "|)
# -------------------------------------------------------------------------
import numpy as np # Importamos la biblioteca NumPy para proporciona un
                   # objeto de matriz N-dimensional y funciones
                   # matemáticas de alto rendimiento para operar en esas
                   # matrices.
import matplotlib.pyplot as plt  # Importamos Matplotlib para graficar
                                 # y visualizar

# Definición de parámetros
T = 1  # Duración de la señal en segundos
fs = 1000  # Frecuencia de muestreo en Hz (muestras por segundo)
t = np.linspace(0, T, int(T * fs), endpoint=False)  # Vector de tiempo

# Onda Senoidal
f_sine = 5  # Frecuencia de la onda senoidal en Hz
sine_wave = np.sin(2 * np.pi * f_sine * t) # Generación de la señal senoidal

# Onda Cuadrada
f_square = 2  # Frecuencia de la onda cuadrada en Hz
duty_cycle = 0.01  # Ciclo de trabajo (porcentaje del período en alto)
square_wave = np.where(np.mod(np.floor(2 * duty_cycle * fs * t), 2) == 0, 1, -1)
# Generación de la señal cuadrada

# Onda Triangular
f_triangle = 1  # Frecuencia de la onda triangular en Hz
triangle_wave = 2 * np.abs((10 * f_triangle * t) % 2 - 1) - 1
# Generación de la señal triangular

# Onda Diente de Sierra
f_sawtooth = 10  # Frecuencia de la onda diente de sierra en Hz
sawtooth_wave = 2 * (f_sawtooth * t - np.floor(f_sawtooth * t + 0.5))
# Generación de la señal diente de sierra

# Gráfica de las ondas
fig, axs = plt.subplots(4, 1, sharex=True, figsize=(8, 8))
# Crea una figura con 4 subgráficos

axs[0].plot(t, sine_wave)  # Grafica la onda senoidal
axs[0].set_title('Onda Senoidal')  # Título del primer gráfico

axs[1].plot(t, square_wave)  # Grafica la onda cuadrada
axs[1].set_title('Onda Cuadrada')  # Título del segundo gráfico

axs[2].plot(t, triangle_wave)  # Grafica la onda triangular
axs[2].set_title('Onda Triangular')  # Título del tercer gráfico

axs[3].plot(t, sawtooth_wave)  # Grafica la onda diente de sierra
axs[3].set_title('Onda Diente de Sierra')  # Título del cuarto gráfico

plt.xlabel('Tiempo (seg)')  # Etiqueta del eje X para todas las gráficas
plt.show()  # Muestra la gráfica

Finalmente después de ejecutar el código, se abrirá una nueva ventana y se comenzará a generar la grafica en Python con matplotlib, así:


Quieres aportar algo que complemente este articulo? crees que hay algo que se deba corregir? Escríbenos este blog es para todos.

Recuerda que en https://jorgechac.blogspot.com nos dedicamos a construir una electrónica mejor! y apoyamos el proyecto CTC GO! (Creative Technologies in the Classroom) que es un programa de educación steam personalizable.


Si te sirvió deja un comentario de agradecimiento, comparte el post en tus redes sociales o recomiéndale el blog a un amigo, eso me motiva a seguir realizando estos pequeños posts y espero que vuelvas a mi blog, publico nuevo material con base en los softwares y apps que utilizo y la experiencia que he adquirido. Por último si deseas colaborar voluntariamente y crees que mi trabajo y mi tiempo lo ameritan, considere hacer una pequeña donación a mi NEQUI +573177295861.



También te puede interesar:


Dibujo de un arbol de navidad utilizando el módulo Python Turtle

ARBOL DE NAVIDAD EN PYTHON

Dibujando en Python utilizando la libreria Matplotlib y Numpy

Dibujando en Python utilizando el módulo Python Turtle

Dibujo del logotipo de Python utilizando el módulo Python Turtle


lunes, 1 de enero de 2024

Dibujo de un arbol de navidad utilizando el módulo Python Turtle

Bienvenido a mi blog, hoy hablaremos un poco de Python turtle, el cual es un módulo de Python que permite crear gráficos vectoriales mediante el uso de comandos simples. Estos comandos controlan un cursor, conocido como tortuga (turtle), que se mueve por la pantalla y dibuja líneas y figuras geométricas y nos permite crear diseños personalizados. Es comúnmente utilizado en la enseñanza de la programación, ya que es fácil de entender y usar. Con Python turtle, los estudiantes pueden aprender conceptos básicos de programación como bucles, condicionales y funciones mientras crean sus propios gráficos. Algunos ejemplos de cómo utilizar la función turtle incluyen:

  • Mover el cursor hacia adelante utilizando el comando "forward()"
  • Girar el cursor utilizando el comando "left()" o "right()"
  • Cambiar el color de la línea utilizando el comando "pencolor()"
  • Escribir texto en la pantalla utilizando el comando "write()"
  • Mostrar o ocultar el cursor utilizando el comando "showturtle()" o "hideturtle()"

Para utilizar la función turtle, primero debemos importar el módulo en nuestro script. Luego, podemos crear una instancia de turtle y utilizar los comandos mencionados anteriormente para dibujar en la pantalla. Hoy aprenderemos a dibujar un sencillo arbol navideño con el modulo Python Turtle.

En el siguiente código Python utilizamos el módulo Turtle para dibujar un patrón que representa un árbol de Navidad, se utiliza la biblioteca Turtle para crear un patrón visual con círculos y cuadrados. La figura se forma mediante iteraciones y se utilizan diferentes colores para los círculos en ciertos puntos del patrón. Este código utiliza dos tortugas, una para dibujar cuadrados (representando los niveles del árbol) y otra para dibujar círculos (representando las bolas de Navidad). El patrón se crea mediante bucles y la posición de las tortugas se ajusta en cada iteración. Finalmente, se agrega un mensaje de texto y la ventana se cierra al hacer clic, aca tenemos el desglose del codigo comentado:
# -------------------------------------------------------------------------
# (| " christmastree.py                                                 "|)
# (| "                                                                  "|)
# (| " Este sencillo y corto código en Python, utiliza el módulo Turtle "|)
# (| " para dibujar un patrón que representa un árbol de Navidad, se    "|)
# (| " utiliza la biblioteca Turtle para crear un patrón visual con     "|)
# (| " círculos y cuadrados. La figura se forma mediante iteraciones y  "|)
# (| " se utilizan diferentes colores para los círculos en ciertos      "|)
# (| " puntos del patrón.                                               "|)
# (| "                                                                  "|)
# (| " Este código de ejemplo es de dominio público.                    "|)
# (| "                                                                  "|)
# (| " Developer: jorgechac© - Técnico Laboral en Programación UNAB     "|)
# (| " Visita  https://jorgechac.blogspot.com                           "|)
# (| "                                                                  "|)
# (| " Venta de accesorios Arduino/Raspberry Pi Pico/ESP32   	        "|)
# (| " Whatsapp y Ventas NEQUI +573177295861                            "|)
# (| " Bucaramanga - Colombia                                           "|)
# -------------------------------------------------------------------------

# Se importar la biblioteca turtle para graficos simples
import turtle

# Se configura la pantalla con dimensiones 800x600
screen = turtle.Screen()
screen.setup(800, 600)

# Se crea un objeto turtle llamado 'circle' para representar las bolas
# de adorno
circle = turtle.Turtle()
circle.shape('circle')
circle.color('red')
circle.speed('fastest')
circle.up()

# Se crea un objeto turtle llamado 'square' para representar los bloques
# cuadrados del árbol
square = turtle.Turtle()
square.shape('square')
square.color('green')
square.speed('fastest')
square.up()

# Posiciona el objeto 'circle' en la parte superior del árbol y lo marca
# como circulo inicial
circle.goto(0, 280)
circle.stamp()

# Inicializar variable de ajuste
k = 0

# Bucle para dibujar los bloques del árbol y las bolas de adorno, es decir
# se itera para crear el patrón
for i in range(1, 17):
    y = 30 * i
    for j in range(i - k):
        x = 30 * j
        # Posiciona y marca el bloque en la posición actual y su reflejo
        # simétrico
        square.goto(x, -y + 280)
        square.stamp()
        square.goto(-x, -y + 280)
        square.stamp()

# Añade bolas de adorno de color rojo y amarillo en ciertas filas del árbol
    if i % 4 == 0:
        x = 30 * (j + 1)
        circle.color('red')
        circle.goto(-x, -y + 280)
        circle.stamp()
        circle.goto(x, -y + 280)
        circle.stamp()
        k += 2

    if i % 4 == 3:
        x = 30 * (j + 1)
        circle.color('yellow')
        circle.goto(-x, -y + 280)
        circle.stamp()
        circle.goto(x, -y + 280)
        circle.stamp()

# Cambia el color del objeto 'square' a marrón para representar el tronco
# del árbol
square.color('brown')

# Bucle para dibujar el tronco del árbol, es decir añadir más filas al
# patrón
for i in range(17, 20):
    y = 30 * i
    for j in range(3):
        x = 30 * j
        # Posiciona y marca el bloque del tronco y su reflejo simétrico
        square.goto(x, -y + 280)
        square.stamp()
        square.goto(-x, -y + 280)
        square.stamp()

# Crea un objeto turtle llamado 'text_turtle' para mostrar un mensaje
text_turtle = turtle.Turtle()
text_turtle.hideturtle()
text_turtle.up()
text_turtle.color('blue')
text_turtle.goto(350, -280)
text_turtle.write("Christmas tree in Python by jorgechac", align='right', font=('Arial', 10, 'bold'))

# Esperamos a que el usuario haga clic en la ventana para cerrarla
turtle.exitonclick()

Finalmente después de ejecutar el código, se abrirá una ventana independiente y se comenzará a generar el Arbol de Navidad, asi:




Quieres aportar algo que complemente este articulo? crees que hay algo que se deba corregir? Escríbenos este blog es para todos.

Recuerda que en https://jorgechac.blogspot.com nos dedicamos a construir una electrónica mejor! y apoyamos el proyecto CTC GO! (Creative Technologies in the Classroom) que es un programa de educación steam personalizable.



Si te sirvió deja un comentario de agradecimiento, comparte el post en tus redes sociales o recomiéndale el blog a un amigo, eso me motiva a seguir realizando estos pequeños posts y espero que vuelvas a mi blog, publico nuevo material con base en los softwares y apps que utilizo y la experiencia que he adquirido. Por último si deseas colaborar voluntariamente y crees que mi trabajo y mi tiempo lo ameritan, considere hacer una pequeña donación a mi NEQUI +573177295861.




También te puede interesar:






martes, 26 de diciembre de 2023

ARBOL DE NAVIDAD EN PYTHON


Bienvenido a mi blog, hoy hablaremos un poco de como escribir codigo para realizar un sencillo arbol de navidad y visualizarlo en la consola de Python, utilizando para esto la herramienta Microsoft Visual Studio Code, para ello desglosare el codigo fuente y le ire añadiendo los comentarios para tratar de explicar lo que se esta haciendo paso a paso de la siguiente forma (sobra decir que tu visual studio code debe tener instalado la extension para trabajar con Python):



# -------------------------------------------------------------------------
# (| " Arbol.py                                                         "|)
# (| "                                                                  "|)
# (| " Este sencillo y corto código en Python, utiliza códigos de escape"|)
# (| " ANSI para imprimir en la consola colores y formato de texto;     "|)
# (| " Simulando la apariencia de un arbol de navidad en la consola.    "|)
# (| "                                                                  "|)
# (| " Este código de ejemplo es de dominio público.                    "|)
# (| "                                                                  "|)
# (| " Developer: jorgechac© - Técnico Laboral en Programación UNAB     "|)
# (| " Visita  https://jorgechac.blogspot.com                           "|)
# (| "                                                                  "|)
# (| " Venta de accesorios Arduino/Raspberry Pi Pico/ESP32   		"|)
# (| " Whatsapp y Ventas NEQUI +573177295861                            "|)
# (| " Bucaramanga - Colombia                                           "|)
# -------------------------------------------------------------------------

# Se define una clase llamada 'Color' que contiene algunos atributos que
# representan códigos de escape ANSI para cambiar el color del texto en la
# consola. Los atributos son:

# reset: Restablece el color a su valor por defecto.
# rojo: Establece el color del texto a rojo.
# verde: Establece el color del texto a verde.
# cafe: Establece el color del texto a un tono de café utilizando el formato
# de color RGB.

class Color:
    reset = "\033[0m"
    rojo = "\033[91m"
    verde = "\033[92m"
    cafe = "\033[38;2;139;69;19m"

# Se utiliza un bucle for para imprimir una serie de líneas que representan
# un árbol de Navidad. La forma del árbol está compuesta por caracteres '^'
# de diferentes longitudes. El color del árbol es verde (Color.verde), y las
# líneas se centran en un espacio de 40 caracteres.

for i in range(1, 30, 2):
    print((Color.verde + ('^' * i)).center(40))

# Se utiliza otro bucle for para imprimir tres líneas horizontales que
# representan las patas del árbol. Estas líneas son de color café (Color.cafe)
# y contienen el texto '|||'. Cada línea se centra en un espacio de 50 caracteres.
    
for leg in range(3):
    print((Color.cafe + '|||').center(50))

# Se imprimen líneas adicionales que representan el tronco del árbol. El tronco
# consiste en las líneas '\___/' de color café (Color.cafe). Estas líneas se centran
# en un espacio de 50 caracteres.
    
print((Color.cafe + '\___/').center(50))

# Se imprimen líneas horizontales de guiones rojos (Color.rojo) para decorar la
# parte superior e inferior del árbol. Estas líneas se centran en un espacio de
# 40 caracteres y tienen una longitud de 25 guiones.

print((Color.rojo + ('-' * 25)).center(40))

# Se imprime el mensaje '¡Feliz Navidad!' en el centro y con el color de texto
# restablecido (Color.reset). La línea se centra en un espacio de 40 caracteres.

print((Color.reset + '¡Feliz Navidad!').center(40))

print((Color.rojo + ('-' * 25)).center(40))

Los códigos de escape ANSI son secuencias de caracteres que se utilizan para controlar el formato y el color del texto en terminales compatibles con ANSI. Estas secuencias comienzan con el carácter de escape \033 seguido de parámetros y códigos de control. En este caso, se están utilizando para cambiar el color del texto en la consola.

En el código proporcionado tenemos:

\033[0m:  Restablece todos los estilos y colores a los valores predeterminados.

\033[91m: Establece el color del texto a rojo.

\033[92m: Establece el color del texto a verde.

\033[38;2;139;69;19m: Establece el color del texto a un tono de café mediante el formato de color RGB. El formato es \033[38;2;R;G;Bm.

Estos códigos de escape ANSI son específicos de las terminales que admiten ANSI, como la mayoría de las terminales en sistemas operativos Unix/Linux y también en Windows si se utiliza un emulador de terminal compatible.

Finalmente después de ejecutar el código, se abrirá la consola de python y se comenzará a generar el Arbol de Navidad, así:

Quieres aportar algo que complemente este articulo? crees que hay algo que se deba corregir? Escríbenos este blog es para todos.

Recuerda que en https://jorgechac.blogspot.com nos dedicamos a construir una electrónica mejor! y apoyamos el proyecto CTC GO! (Creative Technologies in the Classroom) que es un programa de educación steam personalizable.


Si te sirvió deja un comentario de agradecimiento, comparte el post en tus redes sociales o recomiéndale el blog a un amigo, eso me motiva a seguir realizando estos pequeños posts y espero que vuelvas a mi blog, publico nuevo material con base en los softwares y apps que utilizo y la experiencia que he adquirido. Por último si deseas colaborar voluntariamente y crees que mi trabajo y mi tiempo lo ameritan, considere hacer una pequeña donación a mi NEQUI +573177295861.



También te puede interesar:


Dibujando en Python utilizando la libreria Matplotlib y Numpy

Dibujando en Python utilizando el módulo Python Turtle

Dibujo del logotipo de Python utilizando el módulo Python Turtle


lunes, 6 de noviembre de 2023

YouTube bloquea los ad-blockers

Bienvenido a mi blog, hoy hablaremos un poco de la reciente ofensiva de YouTube contra los bloqueadores de publicidad, que ha desencadenado una oleada de cientos de miles de desinstalaciones de este tipo de extensiones de navegadores (como el famoso y útil adblock plus), los cuales sin duda son una de las funcionalidades más útiles y necesarias para disfrutar de una experiencia de navegación razonable y, sobre todo, segura.

Vamos a aprender el día de hoy como evadir dicha restricción.


De acuerdo con la imagen anterior, "los ad blockers no están permitidos en YouTube", ya que "los anuncios permiten que YouTube sea gratis para miles de millones de usuarios en todo el mundo". Y luego se muestran dos botones para tomar acciones ante el aviso: desactivar el bloqueador para permitir los anuncios, o probar YouTube Premium. Es curioso que esto pase poco más de un año después de que Google obligara a <YouTube Vanced> a cerrar por "razones legales". Con este hecho Google logró eliminar a la mejor alternativa de YouTube Premium, pero tal parece que no es suficiente y ahora va contra todos los softwares de bloqueo de anuncios en general.

Aunque hay otras formas de bloquear los anuncios, como, por ejemplo, permitiendo su carga, pero no mostrándolos. Bienvenidos a FadBlock: Friendly Adblock for Youtube™ (también disponible para Firefox, Opera, Edge y Safari) una extensión que permite que el propietario del vídeo siga cobrando, pero que tú no veas el vídeo, y que el anunciante no consiga su objetivo de molestarte. Y si Fadblock, por la razón que fuese, desapareciese, aparecerían otros. Es lo que tiene la tecnología de hoy en día: que no se puede parar.

Lo que sí se puede parar son los modelos de negocio que los usuarios no quieren. Los usuarios hemos dicho a gritos que no queremos ser molestados con anuncios intrusivos cuando queremos ver un vídeo, y se han instalado bloqueadores para evitar esos anuncios molestos por centenares de millones. Que ahora venga YouTube y demuestre que eso ya está provocando un problema a su modelo de negocio no quiere decir que eso sea malo en sí, sino que su modelo de negocio está mal planteado, y que tendrá que replanteárselo con otros parámetros o de otras formas.

Los anuncios de YouTube son infumables e insoportables. Los anunciantes que se promocionan en YouTube son compañías que saben perfectamente que la reacción que provocan sus anuncios es la de soltar un madrazo cada vez que te aparecen y acordarle de todos los muertos puestos en fila a la persona o empresa que decidió pagarlos, pero por la razón que sea, siguen creyendo de que «la publicidad que funciona es la que molesta». Pues no es así, si nos molesta y siempre encontraremos la forma de evitarla, no tenemos por qué aguantarla.

Finalmente, si hay cosas que no quieres ver, no las veas, nadie debería poder obligarte. Ese fue el principio "fundacional" de la internet, y así debería ser siempre: una red al servicio de los usuarios y de aquellos que quieren compartir información.





"La palabra 'YouTube', así como los logotipos oficiales, son marcas comerciales con copyright © de Google LLC. Todos los derechos de marca y autor están reservados por sus respectivos propietarios y licencias correspondientes."


Quieres aportar algo que complemente este articulo? crees que hay algo que se deba corregir? Escríbenos este blog es para todos.

Recuerda que en https://jorgechac.blogspot.com nos dedicamos a construir una electrónica mejor! y apoyamos el proyecto CTC GO! (Creative Technologies in the Classroom) que es un programa de educación steam personalizable.



Si te sirvió deja un comentario de agradecimiento, comparte el post en tus redes sociales o recomiéndale el blog a un amigo, eso me motiva a seguir realizando estos pequeños posts y espero que vuelvas a mi blog, publico nuevo material con base en los softwares y apps que utilizo y la experiencia que he adquirido. Por último, si deseas colaborar voluntariamente y crees que mi trabajo y mi tiempo lo ameritan, considere hacer una pequeña donación a mi NEQUI +573177295861.




También te puede interesar: