miércoles, junio 21, 2006

El ideal...

Esto es básicamente mi ideal, analógicamente hablando, de la capacidad de un desarrollador frente a un proyecto de software:

viernes, junio 09, 2006

Copiar y pegar código...

La programación a objetos popularizó un concepto llamado 'abstracción'; o al menos hasta ese punto yo lo vi tangible.

Esta semana se invirtieron más de 8 horas buscando un error en un sistema gracias a no abstraer una funcionalidad. Simplemente se copió y pego una pieza de código hace algún tiempo; un par de días atrás se estaba, iracundamente, buscando la razón irracional de porqué no calculaba correctamente una función que en otra instancia del sistema si lo hacía.

La respuesta: el código de donde se copió originalmente había cambiado; la rutina estaba calculando diferente. Y peor aún, ¡era una rutina destinada a hacer exactamente lo mismo! (por algo se copió y pegó, ¿no?), esto se realizó por no abstraer el requerimiento en una función parametrizable; ¿qué flojera no?

Bueno, esa pequeña negligencia costó mucho tiempo de corajes, dudas, conflictos teologales y mal vibra colectiva... sin emabrgo, como todo, esto nos deja más apredizaje que evitará cometer la misma 'abstracción mental' otra vez. Algunas veces, como en todo, ahorrarnos 5 minutos en algo mal hecho, nos significan horas y horas en un futuro, generalmente, no muy lejano... que ilógico seguir cometiendo estos errores; la vida es pragmática sin duda alguna (y poco convincente)

Un ejemplo a seguir...

Propongo el siguiente escienario:

Quiero importar una BD a partir de un script SQL compreso (tar.gz). Ignorando vagamente el hecho que la BD es bastante grande me dije a mi mismo, vamos a intentar ahorrarnos entrar a consola y recordar la críptica sintaxis de mysqldump y vamos a hacerlo de una manera un poco más chick: phpmyadmin.

La exportación del servidor 1 fue sin problemas; obtuve un archivo grande que bajé a mi HD; cuando me dispuse a importarlo al servidor 2, pues tardó mucho... esperaba un timeout in-negociable, sin embargo surgió de entre el espantoso diseño de esta buena aplicación el siguiente mensaje:

'Script timeout passed, if you want to finish import, please resubmit same file and import will resume.'

Creo que esto explica muy bien un punto: este tipo de pequeñas grandes cosas que un desarrollador hizo, que muy poca gente alcanza a ver, es lo que hace grande a una aplicación. Para mi esto significa robustez en un sistema, y en el momento que todos los desarrolladores nos preocupemos por este término y lo hagamos una forma de vida al escupir código, tendremos SW mucho más confiable.

La semana pasada desarrollamos en Innox un nuevo concepto: queremos que cada vez que nos reporte un cliente un error de un sistema, que lo primero que se nos venga a la mente sea: 'es seguramente un bug en el kernel de linux' antes de 'es un bug en nuestro sistema'. ¿complejo? tenemos todavía camino que recorrer para lograrlo, pero la idea ya está.

sábado, junio 03, 2006

Frustraciones orientales

¡ATENCIÓN!
Si te da flojera leer todo este post; simplemente te puedo decir algo:
NO COMPRES REPRODUCTORES DE MP3 CHINOS
Cual virus, vienen en muchas presentaciones, sin embargo la mayoría comparten las siguientes características:
(otra característica es que no puedes encontrarle marca por ningún lado)

Algunas veces he llegado a pensar que la profesionalización es otro factor que describe el fenómeno 'globalización'. Dado que cada vez las empresas de muchos paises compiten más de cerca, llegué a pensar que todas deben mantener un nivel mínimo aceptable de calidad en los productos y/o servicios que ofrecen. ¡Sorpresa! Todavía no.

Generar expectativas siempre le genera problemas a cualquier ser humano; estas dos últimas semanas se ha generado en mi una pequeña pero dolorosa (y costosa) frustración: un mp3 player chino que me atreví a comprar.

El día de hoy son las últimas 5 horas que le dedico a este aparato (para hacerlo funcionar bien); con el único afán de ser acompañado por buena música mientras recorro algunos kilómetros en mi bicicleta, me emberrinché en hacer jalar este aparato.

la historia, brevemente...
Semana 1
1. Compro un aparato de reproducción mp3 (comúnmente denominados s1mp3)
2. Grabo algunas canciones con el objetivo de probarlo por un día
3. Se traba... varias veces; y se resetea... siempre en la misma canción
4. Borro la canción; se sigue trabando, ahora en la canción anterior (la que si funcionó alguna vez)
5. En mi humilde actitud, pienso que el problema son mis MP3 quienes están trabando el finísimo aparato; falso
6. Probando / fallando / probando conecto el aparatejo y me dice que no tiene formato; bueno, se mi hizo buena idea de windows por fin detectar que la cochinada no servía y que quería formatearlo (total, entre cochinadas se entienden) ¡sorpresa! yo pagué por 256Mb de memoria y ahora tengo 57Mb
7. Voy a la tienda y me dicen que no hay reportes de problemas con otros aparatos, pero que lo deje para procesarme el cambio por otro nuevo

Semana 2
6. Voy a la tienda y después de hacerle algunas pruebas de funcionalidad básica (grave error de mi parte que dichas pruebas se quedaran en ese nivel), me llevo el aparato
7. Le grabo algunas canciones... ¿y qué creen? se traba igual que el aparato anterior
8. Continuando con un muy humilde punto de vista de su servidor, me dispuse a diagnosticar cuál era el problema: ¡bingo! encontré el patrón: aquella canción guardada después de los 57Mb, no la puede tocar, ni siquiera el Microsoft Media Player (desde el folder de los archivos guardados en la cosa que compré)
9. Realizo infinidad de pruebas e investigo en Internet
10. Me dispongo a buscar algo para solucionarlo, y me topo con este sitio www.s1mp3.org que se dedica a ayudar a la gente tan estúpida como su servidor de comprar estos disfuncionales aparatos chinos (créanlo, es un sitio bastante nutrido de información de muchos tipos)
11. Encuentro en el FAQ la pregunta exacta a mi problema! y comienzo a seguir los pasos descritos:
11.1. Bajar un programita de ellos
11.2. Formatear el aparato (que bien! sigue de 256 Mb) -> pero no funciona, se sigue trabando
11.3. Formatear el aparato en el administrador de discos con FAT16 (o FAT) -> Tampoco funciona
11.4. Bajar una herramienta de HP para formatearlo a bajo nivel -> MÁS SORPRESAS vuelvo a tener una porquería de 57Mb
12. Completamente sacado de mis casillas, consigo en programa para manejo de particiones a ver si lo puedo regresar al tamaño original
13. No logro absolutamente nada más...

Tengo 4 conclusiones:

1. El s1mp3 que compré de 256Mb funciona muy bien con 57Mb (efectivamente no se traba)

2. Entiendo el origen de la palabra cochino y por ende también la de cochinadas

3. Prometo en el 100% de mis compras tecnológicas, tratar de evadir, en la medida de lo MÁS posible, comprar cosas chinas

4. He invertido al rededor de 10hrs (incluyendo el desarrollo de esta poética prosa) en este aparato, y solo voy a gastar una hora más en irlo a devolver

Fin