En la vida cotidiana realizamos esfuerzos mentales, ya sea estudiando, trabajando o incluso jugando. Dicho esfuerzo se determina como mental, y al igual que cuando entrenamos un músculo (bicep, tricep, abdominales), debe realizarse en periodos de tiempo especifico que suelen llamarse repeticiones. Sin embargo, para el efuerzo mental no existe tal cosa como "repeticiones" y en sustitucion tenemos un tiempo T. Francesco Cirillo, en los años 80, creo un metodo llamado Pomodoro que consistia en realizar ciclos de 45 minutos con un cronometro de cocina con forma de tomate, de alli el nombre, que significa tomate en italiano, ésto, con el fin de concentrar su esfuerzo mental en una sola y única tarea (estudiar, analizar o calcular), despejando cualquier interrupción y unicamente concentrandose en dicha tarea.
Bueno, basta de conceptos y explicaciones historicas, lo que hoy os he traido es un experimento para ayudarlos a concentrase cuando esten desarrollando. Llevé entonces el mismo concepto de "cronometro" al mundo digital a travez del lenguaje C#. El mismo, se basa en dos controles
Timers, uno que lleva el tiempo de pomodoro y otro que realiza seguimiento al
timer principal para mostrar en pantalla el tiempo que esta transcurriendo. Adicional a ello tambien usé un
NotifyIcon para esconder el programa y apollandome en la clase
WMPLib de windows, ejecutar sonidos en
mp3; y para este caso, usé sonidos bien
frikis, así que espero difruten el proyecto.
Explicacion del Proyecto:
Primero explicaremos como añadir la libreria
WMPLib a nuestro proyecto para ejecutar los sonidos:
Para ello, vamos a importar una referencia llamada
Windows Media Player
Aqui la podemos constatar
Luego la llamamos para su uso en la clase
Ahora vamos a agregar los sonidos que queremos ejecutar. Esto es muy simple, vamos a nuestra solución, pulsamos click derecho, agregar-> elemento existente y en la ventana ponemos en los filtros todos los archivos, buscando los que queremos para este proyecto y ya los tiene agregados
Y ahora creamos el metodo " ejecutar sonido " al cual llamaremos y con una sobrecarga definiremos qué sonidos queremos ejecutar, usando el metodo .play()
Ahora si, vamos al main de este proyecto. Agregando dos controles Timers al form, uno llamado Pomodoro y otro Verificador. (además de un NotifyIcon y un ToolTip, que sería bueno que más adelante explique como funcionan,... pero será para otra publicación )
Adicional, agregaremos un control numericupdown para así tomar del usuario el tiempo que tendrá el timer; recordemos que el timer usa el tiempo en milisegundos.
Tenemos entonces, el metodo Inicio y el metodo Pausar
Iniciar: con este metodo, básicamente, invocamos los metodos Start o Stop, dependiendo de si queremos detener o iniciar el timer del pomodoro, tomando la cantidad de tiempo ingresada por el usuario en el control numerico y lo multiplicandolo por 60, luego por mil para obtener el tiempo en milisegundos
Éste metodo Pasuar me dio pelea pero basicamente era por que fui terco queriendo crear un algoritmo que me diera el tiempo que resta del tiempo original, así que me fume un porro digital y salio esto:
Y basicamente esta fue la solución; un metodo que le agrega al objeto tiempo fin (que será el tiempo de ahora, más el tiempo del pomodoro)
Por último, tenemos este metodo en el que, cuando el timer Verificador entra en ciclo muestra al usuario cuánto tiempo resta. El tiempo de ciclo de este timer es menos de un segundo para así mostrar lo más rapido posible el tiempo actualizado
En fin!, este es un proyecto muy cortico y cool que hice hace ya unas semanas, pero no tenía tiempo, jejeje; pronto subiré otro sobre captura de pantalla, un reproductor de sonido en c#, un ejemplo del uso de drag and drop también en c# y a ver si me digno a subir unos cuanto proyectos orientados a web en php; pero eso será para otra publicación. Hasta entonces, aquí abajo les dejo el link para que se descarguen el ejemplo y que el codigo este con ustedes.... "y con su compilador".
Descarga del Proyecto: