Juguemos Poker (Segunda Parte) 2020-01-05 Llegó el momento de terminar nuestro ejercicio planteado la semana pasada. Recordemos los pasos que planteamos para resolver este mini proyecto: Modelar las manos de Poker Definir cómo representaremos las manos de poker. Definir las reglas que permiten determinar un ganador. Crear un motor que revuelva y reparta las cartas. Crear una interfaz de usuario en modo consola que permita jugar poker. Los pasos 1, 2 y 3 los resolvimos en el post anterior, y la solución se encuentra en este repositorio: https://github. ...
Juguemos Poker 2019-12-29 Este año me he dedicado a aprender el lenguaje de programación Rust en profundidad. Tal como han apreciado en los desafíos previos, mis soluciones han sido presentadas en este lenguaje. Incluso hasta me he vuelto una especie de evangelista de Rust, medio en broma, medio en serio. Salvo en una charla, donde hice una breve introducción, y los desafíos que he abordado en La Naturaleza del Software, he abordado muy superficialmente mi fascinación por este lenguaje de programación. ...
Solucion Desafio Primes-Crypto 2019-12-22 Antes que termine el día les entrego la solución al desafío del 15 de diciembre: Primes-Crypto. Antes de continuar quería mencionar que esta forma de cifrar la descubrí leyendo el cuento de ciencia ficción de Frederick Pohl titulado “El Oro al Final del Arco Estelar” (The Gold at the StarBow's End), publicado en 1972. Cifrado con números primos Lo primero es explicar el algoritmo para cifrar que fue el que usé para plantear el desafío, el código en Rust es el siguiente: ...
Desafío Primes Crypto 2019-12-15 Los números primos son usados en criptografía de varias maneras, pero principalmente para generar claves. Hay una forma de codificar bien ingeniosa, que no se usa mucho pues sólo permite operar con mensajes muy cortos y requiere mucho esfuerzo de computación. Se las voy a describir a continuación. Lo primero es definir nuestro alfabeto, para efectos de este desafío definiremos el alfabeto como las letras minúsculas del alfabeto inglés, esto es un conjunto de 26 caracteres: ...
Solucion Desafio Crackeando Claves 2019-12-15 El desafío de la semana pasada era una invitación para volver a plantear retos de programación en este sitio. Es natural que no tuviera tantas respuestas, puesto que estuvimos mucho tiempo sin publicar nada en este blog. Pero aún así hubo tres respuestas que revisaremos más adelante. Ahora les entregaré la respuesta a ese desafío. El desafío consistía en deducir cuales eran los números de 4 dígitos que corresponde a estos cinco hashes SHA-512 ...
Nuevos Desafios 2019-12-08 Nuevos Desafíos Unos años atrás empecé este blog con el fin de escribir de manera dedicada sobre programación, de un modo más detallado y técnico de cómo lo hacía en mi blog principal, “La Naturaleza del Software”. Hoy empieza una nueva era de este sitio, que retomaremos con una sección que fue bien popular, los desafíos de programación. Cada semana trataré de publicar un problema con el desarrollo de su solución en algún lenguaje de programación, el que será compartido en un Gist o algún repositorio en gitHub para que lo analicen. ...
Desafío StarTechConf 2013 2013-09-14 En esta oportunidad les presento dos desafíos que hemos preparado en conjunto con nuestros amigos de StartechConf 2013. Esta vez queremos desafiar los conocimientos profundos que tengan de css y javascript. Pero, lo mejor es que estos desafíos tienen como premio una entrada a la StarTechConf 2013 cada uno. Esta conferencia se realizará en Santiago de Chile entre el 25 y 26 de octubre de este año. Así que entremos en materia. ...
Desafío Junio - Código de Máquina 2013-06-01 Cuando programamos en bajo nivel, directamente con el código de máquina solemos usar lo que llamamos lenguaje ensamblador. El siguiente es un ejemplo típico de código ensamblador: shl eax, 1 shr ebx, cl and eax, ebx jnz done mov eax, cl Sin embargo, estas instrucciones se traducen en números binarios que son interpretados por la CPU. Los códigos de máquina se basan en una serie de instrucciones básicas las que se construyen combinando “puertas lógicas”, circuitos digitales que reciben 2 señales que representan los ceros y unos de la lógica binaria. ...
Probando Frameworks Web 2013-05-21 Hay muchos benchmarks de frameworks en la web, uno de los más recientes es este de techempower que mide más de 70 frameworks diferentes. Como estoy investigando Play Framework, y ya llevo usando Grails hace un par de años hice un pequeño test entre ambos ambientes, usando parte de un proyecto interno de mi trabajo. Publiqué en twitter que Play-Scala era varias veces más rápido que Grails, y mis colegas me pidieron que les “mostrara el código”. ...
Resultado Final Desafío Marzo Abril - ADN Forense 2013-05-16 Ha terminado la fase de apelación al resultado del desafío Marzo Abril, les pido las disculpas del caso pues había prometido informar esto el domingo pasado. Hay un cambio importantísimo, puesto que Rodrigo Chappa, acertadamente ha cuestionado la validez de mis pruebas, y como efectivamente tiene razón, corresponde reparar mi error. El set original de datos sólo consideraba el caso en que las muestras tenían el mismo largo que la evidencia, esto genera que la solución de Sebastián resuelva el problema en tiempo más rápido y resultara ganadora en esas condiciones. ...