Bitácora del programador: Fabricio Jiménez Loria


Sabado 26 de abril:

Empecé la funcion 2, aqui tenemos que generar un codigo ASCII Art con varios pasos para lograr el resultado, investigué mas sobre el codigo ASCII porque no tenía mucho conocimiento sobre que era exactamente y como funciona,  aprendí mas funciones como el "int", "ord" y "chr" que puedo usar para hacer las conversiones de decimal a binario y de binario a decimal, y luego pasarlos a texto y claramente el uso del "for" para recorrer caracter por caracter previamente visto en clase.


Lunes 28 de abril:

Acabé con la función 2, conocí y utilicé un  par o 3 inputs más para volver al resultado original, tuve que indagar sobre que funciones o métodos me servirían para esta funcion ya que hay que cambiar 1s por "-" y 0s por ".", ahí entraría el ".replace", otro ejemplo es el ".zfill" para llegar a los 8 bits necesarios en el binario, y tambien incluso como modificar o usar mejor el "len" para mi conveniencia.


Jueves 1 de mayo:

Inicié con la función 4, tenemos que cambiar la última letra de cada palabra por lo que he tomado de referencia lo ya realizado en la función 2 ya que parte de su proceso es muy similar a lo que queremos lograr, pero en este caso la función 4 es mas extensa porque la cantidad de cambios al mensaje es mayor, aquí tuve que investigar un poco más sobre los bits en binario y el decimal correspondiente a cada letra, después se tuvo que aprender de mas métodos y funciones, las más útiles pueden ser ".split" para separar cada palabra del texto o mensaje, ".append" para añadir elementos a la variable que necesitemos y también saber "explotar" el uso de las listas, muy importante para conseguir el código.Tuve una reunión con mi compañero para revisar los códigos brevemente y resolver ciertas dudas.


Viernes 2 de mayo:

Finalicé la función 4, decidí hacer gran parte del código el jueves para solo ajustar detalles y crear las notas de cada linea de código al día siguiente. 


Domingo 4 de mayo:

Empecé y terminé la función 5, inicialmente yo estaba a cargo de las funciones pares pero hicimos un ligero cambio por conveniencia entonces hice la 5 de las impares, utilicé y aprendí por primera vez sobre las librerías de python, en este caso la librería PIL (Pillow) para importar imágenes al código, con dicha imagen deberemos cambiar datos de los pixeles de la imagen para crear un mensaje oculto, esto presenta un nuevo reto ya que debo investigar bastantes funciones ligadas a la librería, en este caso las mas importantes para poder trabajar con la imagen son ".open" para abrir la imagen al cual también le tuve que agregar una función extra, ".convert", con esta logramos modificar el formato de la imagen a solo RGB ya que tuve dificultades con algunas imágenes por no "calzar" en la manera que estaba haciendo el código, ".load" para trabajar con los pixeles y ".size" para obtener alto y ancho de la imagen.
Me reuní con mi compañero para ir revisando lo que teníamos hecho del proyecto.


Lunes 5 de mayo:

Para hoy decidí iniciar y concluir la función 6, ya que debemos analizar los cambios ejecutados a la imagen en la función 5, cierta parte del código va a ser similar o casi exacta a la función 5, en lo que respecta al resto del código se usan herramientas y funciones ya previamente vistas y utilizadas en clases por lo que no fue necesario una investigación adicional.


Martes 6 de mayo:

Para la función 8 tenemos que hacer uso de otra librería, en este caso PyPDF2 para leer archivos pdf, esto representa otro reto por lo mencionado en días anteriores, hay que investigar mas sobre funciones y métodos, en este caso la mas destacada para empezar es 'rb', con esta pasamos el archivo a modo lectura binaria, también hay que irnos a cosas muy especificas para hacer funcionar todo el código, lo "fácil" o simple es que solo tenemos que chequear los metadatos, que recorta mucho proceso al no tener que revisar el propio contenido del pdf. Se pudo empezar y finalizar el mismo día. 


Miercoles 7 de mayo:

La función 10 a pesar de lo que tenía pensado, fue la más complicada a la hora de resolver pero terminó siendo la que menos tiempo me llevó codificar, aquí tenemos que convertir dos mensajes en hash, que implica otro tema mas que investigar y uno que sinceramente no tenía idea de como funcionaba ya que jamás lo había visto antes. Con la investigación suficiente pude identificar que necesitamos otra librería importada llamada "hashlib" para llegar a convertirlo, pero también añadiendo otros métodos y funciones para lograr compararlos de la manera mas simple posible, usé el ".sha256" ya que fue el ejemplo dado en la presentación para obtener el objeto hash, ".encode" para lograr pasarlo a bytes y ".hexdigest" para obtener un mensaje hexadecimal. Se logró comenzar y acabar en el mismo dia.


Jueves 8 de mayo:

Tras el aplazamiento de la fecha de entrega opté por revisar a fondo todos los códigos que hice, haciéndolo logré identificar varios errores, pude corregirlos para tener todo en su mejor funcionamiento, añadido a eso decidí evacuar algunas dudas con el profesor respecto a la función 10 y por último implementar las pruebas de robustez en caso de que el usuario quiera usar un tipo de archivo que no se permita en la función o por tamaños de imagen o incluso longitud de mensajes a ocultar.
Por ejemplo para la pruebas de robustez en la función 5 y 6 usé ".splitext" para conseguir la extensión del tipo de archivo y compararlo con los posibles formatos de imagen que se pueden usar para asegurarnos que podemos realizar la modificación y análisis.


Viernes 9 de mayo:

Seguí corrigiendo todo lo posible en los códigos y volví a preguntar al profesor para resolver un par de preguntas con la función 5 y 6. 


Sábado 10 de mayo:

Sumado continué con la realización del documento word junto a mi compañero en llamada.


Sábado 12 de mayo:

Finalicé todos los detalles faltantes en la documentación de todo los documentos word y .zip.






















Comentarios

Entradas populares de este blog

Bitacora del programador

Bitacora del programador