Un día programando

Una de las cosas que yo debería haber aprendido en mi carrera, es a diseñar y llevar a cabo un proyecto. Esto lo vemos en una materia llamada “Ingeniería de Software”, que yo aún no concluyo… de ahí que yo tenga la misma disciplina programando que un niño con una sobredosis de dulce. xD

Neh, quizás exagero, pero bueno, mi experiencia ron el programa que (aún) estoy haciendo, podría ser un caso de estudio práctico acerca de disciplina (o falta de ella).

Miren como fui:

(Noviembre de 2007)
Problema: La empresa -en donde trabajo- está haciendo el cálculo de retenciones del Impuesto Sobre La Renta (ISLR) a mano, cosa que fácilmente (?) se puede hacer con un computador; simplemente introduces el monto del concepto (claro, previamente teniendo el tipo de persona -Natural, Jurídica, etc-, y el tipo de concepto) y que el programa, con unas fórmulas que el mismo Seniat provee, calculara las retenciones, y llevara una base de datos de estas.
Fácil… no?

Bueno, primero pensé en una hoja de Excel que calculara todo eso. (Por qué Excel? Porque, a pesar de ser el Seniat un organismo estatal -y por ende, sujeto al Decreto 3390 de migración hacia el Software Libre- aún siguen usando -exigen, que no es lo mismo- un formato privativo para las hojas del resumen anual de las retenciones, por ende, también me veo forzado a usarlo).
Problema: No sé programar en Visual Basic (recuerdo qBasic, pero la última vez que programé en eso fue hace ya más de 15 años…).
Solución: Cambiar a otra alternativa tras leer unos cuantos tutoriales de VB.

Luego, traté de hacer un programa en C++ que convirtiera valores separados por comas (CSV) en lo que quería. (En la facultad, nos instruyen a nivel básico/intermedio en C/C++). (Diciembre de 2007)
Problema: Los interpretadores (parsers) de archivos CSV para C++ que conseguí, estaban muy pobremente documentados, o no tenían ejemplos.
Solución: Usar archivos XML, que Excel también lee.

Investigué sobre los archivos XML, y como su formato me es familiar (el HTML, y los archivos de configuración de Flight Simulator lo siguen), decií crear una base de datos basada en XML (ya los veo diciendo “ajá, y el SQL es para qué?” pero ya vamos a llegar allá). (Enero de 2008)
Problema: La interfaz de usuario (CGI) que quería usar también tenía una curva de aprendizaje bastante elevada. (Abril de 2008)
Solución: O aprender a usar el CGI, o migrar todo el proyecto a PHP, que es la otra forma de CGI que conozco.

Como no sé de PHP, pero sabiendo previamente que su formato es muy similar a C++ (de hecho, viendo el código fuente de este me enteré que está escrito en C), me puse a buscar tutoriales, y a ir aprendiendo sobre la marcha. A la vez, estuve mezclando la parte de la interfaz gráfica con Javascript, más que todo para validación de datos (aprendiendo también sobre la marcha).
Actualmente estoy en este punto, y he realizado en 2 meses lo que estaba haciendo en casi 6. Sigo trancado en algunos bugs (errores de programación), pero voy avanzando.
Ahora, la pregunta anterior: por qué no lo hice con SQL? Simple, porque no sé usarlo.
La versión 2.0 (si es que llega a salir siquiera la 1.0 algún día…) tengo pensado hacerla con SQL y quizás en Drupal (si las dos tecnologías no son mutuamente excluyentes, claro está), pero por ahora, quizás sería buena idea ir poniendo acá mi código fuente para que lo vean y tengan chance de burlarse de mi poca disciplina con el programa…

…y de comentarios en el código como estos:
(sí, estaba aburrido… los que leen esto desde mi Facebook seguramente ya saben por qué actualizo tanto mi estado desde Twitter)

Una muestra de mis ratos de ocio-- digo, de trabajo

Una muestra de mis ratos de ocio-- digo, de trabajo

(hacer click para ver más grande)

Anuncios

Un comentario en “Un día programando

  1. Happy new year!

    Happy blogoversary!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s