Esta semana he estado probando un programa para grabar la pantalla mientras programo las soluciones para problemas en competencias de programación. Aquí hay algunos de los resultados que he obtenido después de probar este software de grabación.
Esta semana he estado probando un programa para grabar la pantalla mientras programo las soluciones para problemas en competencias de programación. Primero, grabé las soluciones para la Ronda 1C del Google Code Jam (hice la competencia como práctica, ya que avancé en la Ronda 1A), e hice un video para el problema A - Rope Intranet.
|
Video para el problema A de la Ronda 1C del Google Code Jam 2010, Rope Intranet. |
Este problema es fácil de resolver, iterar sobre cada par de cuerdas chequeando si éstas se intersectan es suficiente para tener el problema aceptado. Como pueden ver en el video, mi único error fue leyendo los datos de entrada; esto pasó porque lei el enunciado del problema por encima. Todavía tengo la grabación de los otros dos problemas, pero aun no los he post-procesado.
Después, grabé mis soluciones para los problemas de la 3ra ronda de clasificación del TopCoder Open 2010. De nuevo, las hice como práctica, ya que avancé a la Ronda 1 utilizando un comodín (Bye). El primer video que creé fue para el problema fácil, SumRectangle. Para este video, mejoré el manejo del zoom y la calidad, corté las partes donde leo el enunciado (añadiendo un indicador amarillo con el tiempo transcurrido), y añadí una firma en la esquina inferior-derecha.
|
Video para el problema fácil de la 3ra ronda clasificatoria del TopCoder Open 2010, SumRectangle. |
Este problema es sencillo, sólo hace falta calcular los valores faltantes dentro de la matriz utilizando aquellos que ya se encuentran calculados. Sin embargo, hay que tener cuidado con el enunciado, ya que éste dice que la respuesta final podría no ser única. No obstante, después de un análisis sencillo se puede deducir que la respuesta siempre existe y es única, dados leftColumn y topRow.
También creé un video para problema medio, llamado WhatsThisChord. Este problema puede ser resuelto por una simulación directa, después de observar que las notas se pueden convertir a enteros entre 0 y 12, inclusive, implementando la adición en módulo 13.
|
Video para el problema medio de la 3ra ronda clasificatoria del TopCoder Open 2010, WhatsThisChord. |
Aquí hay algunas características del ambiente que utilizo para programar para las competencias de programación:
- Utilizo Windows 7 Profesional de 64 bits como sistema operativo y Visual Studio 2010 como entorno de desarrollo. También tengo Linux, pero utilizo Visual Studio para trabajar y mi AddIn sólo funciona ahi.
- Tengo una HP DV7-3188CL, con una pantalla de 17'' 16:9, un procesador Intel Core i5 de 2.5Ghz, 6GB de memoria RAM DDR3 y una tarjeta de video NVIDIA GeForce G105M. Además, tengo un ratón externo Logitech G5, un teclado en inglés HP externo y un monitor de alta definición de 26''.
- Utilizando el monitor de alta definición y la pantalla de la computadora portátil, tengo un área de trabajo de 1920x1200 + 1600x900 píxeles, los cuales divido verticalmente en cuatro ventanas (dos por cada pantalla). De esta forma, puedo ver el enunciado del problema, el código fuente y la tabla de puntuación actual al mismo tiempo.
- Utilizo CodeProcessor 2, FileEdit y moj al resolver problemas en TopCoder. De esta forma, un archivo fuente con una plantilla básica (nada especial, sólo #includes y el esqueleto de la clase) y funciones de prueba son generadas automáticamente en cuanto abro el problema. De esta forma, puedo programar en mi IDE favorito y puedo probar todos los casos de prueba en una sola corrida.
- Utilizo un AddIn personal para Visual Studio, el cual expande macros de código parametrizables mientras programo. Implementé este AddIn utilizando C++/CLI para interactuar con el IDE y Boost.Spirit para interpretar las definiciones de macros. De esta forma, puedo escribir de forma rápida y confortable como si utilizara #defines, pero sin el código ilegible que éstas dejan.
|
Área de trabajo con computadora portátil, teclado, ratón y monitor externo y Wii. |
Espero que le hayan gustado los videos, voy a tratar de hacerlos y subirlos tanto como pueda. Probablemente, en otra publicación, hable más sobre mi ambiente de programación y el AddIn (el cual se llama TopCoderAddIn).
Leer más...