viernes, 8 de mayo de 2015

Lecciones aprendidas





Nos esforzamos mucho por entregar una tarea programada con éxito pero al final no resultó como esperábamos. Inconvenientes previamente mencionados no fueron resueltos por cuestiones de tiempo y falla en la estrategia que planteamos desde el inicio. Mi compañera de trabajo y yo trabajamos bastante para mejorar el código obtenido hasta ahora y presentarlo de la mejor manera posible.



Lo bueno fue que adquirimos nuevos conocimientos que podemos emplear en el futuro. Los errores y problemas que experimentamos debemos tomarlo como una lección más y nos obliga a corregirlos para no cometerlos de nuevo más adelante.

Sentimos que lo presentado fue bien hecho y correcto, no podemos decir lo mismo por lo demás. Esperamos que se demuestre el esfuerzo, la dedicación y el trabajo en equipo.

Inconvenientes persistieron

Por cuestiones de tiempo no pudimos resolver los problemas del reloj analógico y botones. El primero debido a que no encontramos la forma de insertar nuestro reloj en la ventana de Tkinter por lo cual decidimos no ponerlo ya que en lo solicitado se especifica que no se puede más de dos archivos en la Solución Computacional. Mi compañera de trabajo y yo decidimos no implementarla. 

Los botones fueron realizados pero no funcionan de la manera correcta. Buscamos información que lo resolviera, las cuales implementamos pero no nos dió los resultados que esperábamos, así que decidimos no utilizar dichas soluciones. 

La interfaz obtenida al final se muestra a continuación: 






jueves, 7 de mayo de 2015

De nuevo mirar atrás!

Revisamos lo que tenemos hasta el momento, corrigiendo y mejorando el código de forma que sea presentado de la mejor manera posible. Evaluando cada uno de los problemas obtenidos y buscando ayuda  para resolverlos, algo que no ha sido posible en los días anteriores. 




miércoles, 6 de mayo de 2015

Documentación

Conforme hemos ido realizando la programación íbamos tomando screenshots de los distintos "olores de software" que se nos presentaron en el código así también la forma en que los corregimos en el momento. Redactamos todas las experiencias adquiridas con esta tarea programada y el uso de los Principios del Programador tomados en cuenta en el proceso. Realizamos el manual de usuario con lo que teníamos hasta ahora de la programación. Hicimos un gran esfuerzo para que la información presentada fuera lo más clara posible y completa en lo que cabe. 


Fecha de las ciudades y hora con respecto a Costa Rica

Insertamos en la interfaz gráfica la fecha de las distintas ciudades pre-configuradas así como las horas "adelante" o "atrás" con respecto a la de Costa Rica. A continuación una muestra:



Inconvenientes...



  • Tuvimos problemas al implementar los botones de "Agregar Ciudades" y "Eliminar Ciudades". No funcionan de la manera planeada. Es necesario replantear la estrategia para resolver esta parte del reto.



  • Otro inconveniente a resolver es la implementación del reloj analógico de Turtle en Tkinter. Para ello seguimos buscando información sobre el tema que nos sirva de ayuda para resolverlo.


martes, 5 de mayo de 2015

Archivos de texto

Empezamos a trabajar con los archivos de texto con información previamente utilizada en laboratorios y también gracias a la investigación de mi compañera de trabajo. 
Se realizaron las funciones que se pueda desde Python leer y escribir sobre archivos de texto. De tal manera el código leía y escribía sobre "paises.txt", archivo donde estaban almacenados las ciudades del mundo pre-configuradas para obtener la hora de estas. 

Luego implementamos esta función en la interfaz gráfica de forma que mostrara en orden alfabético el nombre de las ciudades. Además colocamos las horas correspondientes de cada ciudad al lado de ellas, haciendo uso de las funciones previamente realizadas del web service que consulta en línea dichas horas. El resultado obtenido fue el siguiente:





Reloj Digital y Análogo

Con información que obtuve en Internet sobre la interfaz gráfica logramos realizar el reloj digital e insertarlo en la ventana de Tkinter. Su implementación fue exitosa y obtuvimos lo siguiente: 



También encontramos la manera de realizar el reloj análogo por medio de un módulo de Python especifico para gráficos llamado Turtle. Logramos obtener el reloj pero nos presento un problema: se abren dos ventanas distintas, una de turtle y otra de tkinter donde lo requerido es que solo  la de tkinter se muestre. 
Se necesita investigar la manera de combinar estos dos módulos. 


lunes, 4 de mayo de 2015

Reloj en letras

Nos reunimos para realizar la función que muestre la hora actual en letras. Tuvimos que hacerle muchas correcciones, ya que presentaba varios "olores de software", los cuales decidimos corregirlos en el momento y no dejarlo hasta el final.

Cumplimos con nuestro objetivo de forma que la función operara de la manera esperada. Además logramos implementarla de una vez en la interfaz gráfica con lo que ya teníamos. Como resultado obtuvimos lo que se muestra a continuación: 




sábado, 2 de mayo de 2015

Relojes

Es necesario empezar con la realización de los diferentes formatos de reloj solicitados: digital, análogo y en letras. Tenemos las funciones que obtienen la hora de la computadora y trabajan de la manera correcta. Pero ahora necesitamos conocer como implementarlas en la interfaz gráfica. Mi compañera de trabajo y yo decidimos hacer una investigación previa a intentar realizarlo con los conocimientos que tenemos. 



miércoles, 29 de abril de 2015

Interfaz





Continuamos con la configuración de la interfaz gráfica esta vez agregando los label que muestran la temperatura y el clima así como también la fecha actual en español de San José, Costa Rica. Probamos que las funciones del web service trabajen de la manera esperada, descartando cualquier error. 

A continuación el resultado obtenido: 




Nuestro objetivo es realizar una interfaz gráfica sencilla pero bien realizada, cumpliendo siempre con lo requerido. La información encontrada sobre Tkinter no ha sido suficiente, por lo cual hemos tenido que investigar más a fondo del tema. 


lunes, 27 de abril de 2015

¡Mirar atrás!

Debemos empezar a corregir errores o mejorar las funciones obtenidas hasta el momento tomando en cuenta los principios del programador y observando que no se presente ningún "olor de software". Tratamos de reducir los if repetitivos en el código esto reduciendo el código de manera significativa haciendo que este sea más claro y estéticamente agradable.


viernes, 24 de abril de 2015

Más programación!

Nos reunimos para seguir con la implementación de las funciones de temperatura y clima basándonos en la de hora y fecha de las ciudades, ya que las dos dependen de una página web y hay que hacer un procedimiento similar. Decidimos utilizar la siguiente página para dicho fin: 


http://www.accuweather.com/es/cr/costa-rica-weather

También creamos la ventana Tkinter para empezar a insertar todos los elementos solicitados en la interfaz. Logramos hacerle las configuraciones básicas como la geometría, el título de la ventana y demás. 




Programación

Mi compañera de  trabajo y yo nos reunimos con la información encontrada de cada una para empezar a implementar las funciones base para la tarea progradamada.

Iniciamos con la parte de horas y fechas haciendo uso de los módulos time y datetime previamente encontrados. De igual forma la función para extrae la fecha y hora de las ciudades (web service). Decidimos hacer uso de la página  http://quehoraesen.net/ para dicho fin. 





jueves, 23 de abril de 2015

TKINTER

Conocemos Tkinter gracias a previos trabajos realizados pero solo lo básico. Necesitamos para esta tarea conocer más acerca de cómo implementar gráficos en la ventana de la interfaz y además que estos lleven movimiento. Internet fue de ayuda imprescindible donde distintas páginas y vídeos nos mostraron mucha de la información que requeríamos.

Tkinter es el paquete de Python GUI estándar (Graphical User Interface). Es una capa orientada a objetos delgada en la parte superior de Tcl / Tk.

Tkinter no es el único conjunto de herramientas de programación GUI para Python. Sin embargo, es el más comúnmente utilizado. Cameron Laird llama a la decisión anual de mantener TkInter "una de las tradiciones menores del mundo de Python."

La siguiente imagen muestra la importación del módulo necesaria para empezar a hacer uso de Tkinter:


miércoles, 22 de abril de 2015

Módulos TIME y DATETIME

Investigamos acerca de los módulos time y datetime de Python para obtener la hora y la fecha actual de la computadora. Varios de los comandos vienen explicados en distintas páginas de Internet así como la oficial de Python. Encontramos la forma de utilizar los módulos datetime para obtener la hora y fecha como se muestra a continuación:


                                     
           

Así también los comandos para obtener los formatos de la fecha y ahora deseados. 



Esta información es de gran ayuda para empezar a plantear las distintas funciones de tiempo que vamos a implementar en la tarea programada.

lunes, 20 de abril de 2015

Investigación


Necesitamos la información previamente buscada para la primera tarea programada sobre los web service fundamentales para el desarrollo de las funciones de temperatura y clima, asi como para la hora y fecha de las distintas ciudades. Mi compañera de trabajo será la encargada de investigar este paso. 


A mi me corresponde buscar información de los módulos time, datetime necesarios para obtener la hora y fecha de Costa Rica y las demás ciudades, también buscar acerca de la interfaz gráfica para poder desarrollar los tres formatos de relojes solicitados. 



sábado, 18 de abril de 2015

Estrategia

Comenzamos con la comprensión del problema propuesto,además un planteamiento previo de los requerimientos para llevar a cabo el desarrollo del proyecto, y así otorgar los distintos temas a investigar necesarios para la resolución del reto a cada uno de los miembros del equipo. 


Tenemos un previo conocimiento gracias a la tarea programada anterior sobre los web service. Esto nos serviría para obtener la temperatura y clima actual de San José, Costa Rica, también para consultar la hora y fecha de las distintas ciudades del mundo propuestas en esta tarea (Amsterdam, Brasilia, Los Angeles, Abu Dhabi, Sigapore y Tokyo). 
Lo que necesitaríamos es conocer la manipulación de archivos de texto desde Python para que las ciudades estén almacenadas en uno y que las nuevas ciudades agregadas por el usuario se escriben y se guarden también en el archivo.

Otro punto importante a investigar es el uso de los módulos time y de los distintos formatos de hora y fecha que se pueden utilizar en Python. 

Y por último necesitamos información sobre como hacer la interfaz gráfica utilizando el modulo de Tkinter.  

Tiempos del mundo


    

  • Objetivos del Software:


Determinar la fecha y hora actual de San José, Costa Rica además de otras ciudades del mundo como Ámsterdam, Brasilia, Los Ángeles, Abu Dhabi, Tokyo y Singapore. Al mismo tiempo indica la cantidad de horas “adelante” y “atrás” de estas ciudades en relación con la hora actual en San José de Costa Rica. La hora de las distintas ciudades se presenta en tres formatos: digital, análogo y en letras por medio de una interfaz gráfica (Tkinter). Esta información será de gran ayuda a quienes trabajan con personas que estén en el exterior y necesiten agendar reuniones en horarios adecuados para todos o la mayoría de participantes en la reunión.