Cómo crear un generador de contraseñas seguras en Python¡Usemos Python para escribir nuestro propio generador de contraseñas! Esta es una versión básica, pero podemos hacer varias mejoras, como forzar que la contraseña empiece con una letra, diferenciar mayúsculas de minúsculas, usar solo ciertos símbolos, garantizar al menos un carácter de cada tipo… ¿Cómo las implementarías? ¿Se te ocurren otras? 💻 Código ejecutable: https://paiza.io/projects/Jwz-W0w8G4ULQmqgTjzQRg 📜 Ver esta publicación en el blog: https://patriciaemiguel.com/python/2025/07/15/generador-passwords.htmlVer más
Así se programó el Tetris originalSi tuvieras que programar un Tetris hoy, con tecnología moderna, ¿cómo lo harías? La primera versión de Tetris fue hecha en 1984 y usaba matrices para definir las piezas, que se giraban mediante operaciones matemáticas de transposición e inversión de las matrices. El algoritmo revisaba colisiones fila por fila antes de mover la pieza hacia abajo. Web oficial: https://www.tetris.com/ 📜 Ver esta publicación en el blog: https://patriciaemiguel.com/otros/2025/07/13/tetris.htmlVer más
Usar recursividad no siempre es más "elegante"A veces pensamos que usar recursividad hará que el código se vea "más elegante" o "más avanzado". Pero, ¿sabías que puede ser menos eficiente y hasta peligroso si no se usa bien? Muchas veces, la iteración es preferible. Guarda esto para repasar antes de tu próxima entrevista. 📜 Ver esta publicación en el blog: https://patriciaemiguel.com/conceptos/otros/2025/07/11/recursividad-iteracion.html
Desafío Python número 11🐍 ¡Desafío Python! Sin ejecutarlo, ¿podrías decir qué imprime cada print del código? Es importante saber que la función max() devuelve el mayor valor cuando se le pasan dos o más argumentos, y en este caso está recibiendo tres listas con el mismo contenido. Por su parte, id() es una función que devuelve la referencia (dirección de memoria) del objeto que se le pase como argumento. 📜 Ver esta publicación en el blog: https://patriciaemiguel.com/desafios/python/2025/07/08/desafio-python-11.htmlVer más
¿Sabías que se puede escribir código usando emojis?Programar con emojis no es un chiste: existe un lenguaje real llamado Emojicode. Es un lenguaje de programación multiparadigma, fuertemente tipado, que utiliza emojis en lugar de palabras clave tradicionales, y soporta Programación Orientada a Objetos. 🔗 Web oficial: https://www.emojicode.org/ 📜 Ver esta publicación en el blog: https://patriciaemiguel.com/otros/2025/07/06/emojicode.html
Dos soluciones en C# para detectar duplicadosA veces buscamos escribir código más compacto porque a simple vista parece “más elegante”, pero no siempre el algoritmo más breve es el más eficiente. Como programadores, es clave entender cómo funciona cada enfoque antes de elegir. Al elegir un algoritmo o implementación, considerá: Complejidad algorítmica (Big O): - Tiempo: ¿cuántas veces recorrerá la estructura de datos? - Espacio: ¿cuánta memoria extra necesita? Caso promedio y peor caso: - ¿Puede detenerse antes si encuentra la respuesta rápido? - ¿Siempre procesa toda la entrada? Legibilidad y mantenibilidad: - ¿El código es fácil de entender y mantener para otros programadores? 💻 Código ejecutable: https://paiza.io/projects/HQCKSl4qkAk97lpzMnGi-g 📜 Ver esta publicación en el blog: https://patriciaemiguel.com/csharp/2025/07/02/csharp-hashset-dos-soluciones.htmlVer más
¿Por qué un QR dañado sigue funcionando?El algoritmo Reed-Solomon usa la matemática para recuperar datos aunque falten partes, mediante operaciones con números especiales llamados “códigos” para detectar y corregir errores, tratando los datos como si fueran partes de un polinomio. Así puede reconstruir los valores que faltan. No solo es útil en los códigos QR: también se usa en CDs, DVDs, Blu-Ray, transmisiones espaciales, Ethernet y comunicación satelital. Al momento de la lectura, si faltan datos, se resuelve un sistema de ecuaciones polinómicas para reconstruirlos. 📜 Ver esta publicación en el blog: https://patriciaemiguel.com/otros/2025/06/28/qr-reed-solomon.htmlVer más
Tipos de datos: en detalleEntender cómo se almacenan los datos nos ayuda a escribir código más eficiente (ahorrando memoria y CPU), debuggear errores raros (como overflows o accesos inválidos), trabajar con archivos binarios, redes o hardware (donde cada byte cuenta). Tal vez para los desarrolladores web es algo que no surge en el día a día. Pero será importante conocer sobre los detalles de la memoria cuando trabajes con: ✓ Sistemas embebidos (memoria limitada), ✓ Procesamiento de archivos binarios (imágenes, sonido), ✓ Optimización crítica (juegos, algoritmos pesados), ✓ Bugs raros (como buffer overflows o corrupción de datos). 📜 Ver esta publicación en el blog: https://patriciaemiguel.com/conceptos/2025/06/26/tipos-de-datos.htmlVer más
POO - ¿cómo diseñarías estas clases?En este ejercicio podríamos pensar diferentes formas de modelar las clases, que dependerán de cada caso y de la información que se necesite manejar de cada una. Pero siempre es importante tener algunos conceptos claros, para que el diseño sea lo más ordenado posible. Por ejemplo, el Viaje probablemente necesite saber qué auto lo realizó, y el Auto podría también conocer sus viajes, pero no es obligatorio si ya existe un gestor (Flota). También es interesante ver cómo se desarrolla el principio de responsabilidad única (“SRP” o “Single Responsibility Principle”) cuando entendemos que el Auto representa un vehículo y como tal no es responsable de registrar viajes. La Flota (o podría ser “la empresa”) es quien organiza y gestiona. Esto nos da también una baja dependencia entre objetos, porque el Auto no necesita saber quién lo gestiona ni qué hace con él. 📜 Ver esta publicación en el blog: https://patriciaemiguel.com/poo/2025/06/22/ejercicio-poo.htmlVer más
El problema del año 2038: ¿la computadora volverá a 1901?¿Viviste la época del Y2K? Porque en algunos años va a suceder algo parecido. El problema del 2038 (también conocido como “Y2038” o “Epochalypse”) está relacionado con la forma en que los sistemas computacionales representan el tiempo, especialmente en sistemas de 32 bits. 📜 Ver esta publicación en el blog: https://patriciaemiguel.com/otros/2025/06/08/epoch-2038.html