martes, junio 26, 2007

<lolcat align="right">

Esto es para los que picamos HTML seguido :P



De icanhascheezburger.com vía Fabio.com.ar.

Un sencillo método para el desarrollo de sistemas web

Trevor Turton publicó recientemente en su blog un artículo titulado Use Cases on Steroids en el cual discurre sobre un posible método para encarar el desarrollo de software y no salir herido en el intento. Me tomo el atrevimiento de traducir informalmente una parte del texto de su autoría que resume el procedimiento:
  • Durante la fase de elicitación de requerimientos, los desarrolladores trabajan junto al cliente (como organización) para identificar los elementos debajo enumerados. Los desarrolladores representarán estos elementos en una herramienta de modelado acordada y consultarán al cliente para verificar que esto se ha realizado con precisión (esta parte del modelo es simple de controlar por no-especialistas) :
    • Los actores que juegan un rol en el sistema.
    • Una lista jerárquica de las acciones principales que estos actores ejecutarán.
    • Modelos de cada panel requerido para soportar las acciones identificadas; en HTML, si fuera un sistema basado en el navegador.
    • Casos de uso que describen en palabras las diversas acciones identificadas; en HTML si es un sistema basado en web, con enlaces a los paneles modelo.
    • Un modelo de datos que contiene todos los elementos de datos identificados en las acciones y paneles.
  • Durante la fase de diseño:
    • Los usuarios pueden manejarse a través de los casos de uso, viendo los paneles modelo en cada paso del proceso, pudiendo validarlos o corregirlos.
    • Los desarrolladores refinan el modelo de datos según las formas normales, produciendo un diseño de base de datos.
    • Los diseñadores incorporan al modelo las clases, atributos y métodos que serán necesarios para implementar el sistema.
  • Durante la fase de programación:
    • Los desarrolladores engrosan el modelo con el código requerido para implementar el sistema.
    • Los desarrolladores crean la base de datos y las clases requeridas para administrar los datos en ellas.
    • Puede añadirse lógica estándar sencilla a los paneles para propagar los datos ingresadas por los usuarios a los paneles subsecuentes.
    • Otros miembros del equipo de desarrollo refinan el estilo visual de los paneles modelos a fin de que los usuarios los sientan adecuados.
    • Se toman capturas de los paneles clave, que serán firmadas por los propietarios del sistema quienes acordarán que es el estilo visual que requieren.
    • El equipo de desarrollo debe asegurarse que el estilo acordado sea aplicado uniformemente a todos los paneles, preferentemente mediante hojas de estilo.
    • Los propietarios del sistema prueban y firman (o critican) los paneles modificados para asegurar que poseen la funcionalidad y apariencia requerida.
  • Durante la fase de prueba:
    • A medida que se implementan las distintas partes del sistema, se incorpora a los paneles modelo correspondientes la lógica embebida, según sea necesario.
    • Los casos de uso se convierten ahora en scripts de prueba. Los usuarios los utilizarán como guía para evaluar metódicamente el sistema, sólo que ahora la navegación entre paneles se realizará a través de lógica del software en el sistema de prueba, en vez de hacer clics en los enlaces en el caso de uso (aunque los enlaces de los casos de uso pueden utilizarse para navegar los paneles de software apropiados donde ésto tenga sentido, p.ej. donde no se requiere entrada desde un panel anterior).
    • La navegación entre secciones del sistema que no han sido desarrolladas aún puede realizarse a través de los casos de uso, de forma que los usuarios pueden evaluar los componentes en un contexto plausible, en vez ser en forma aislada.
    • Podría implementarse a través de hojas de estilo un esquema de colores convenido para distinguir los paneles en funcionamiento de los paneles en desarrollo.
En realidad no es nada nuevo, muchos de nosotros hemos optado por una metodología similar al desarrollar un sistema web. Lo bueno es que el muchacho se tomó el tiempo de documentarlo y darnos unos muy buenos consejos. So... Thank you very much, Trevor!

lunes, junio 25, 2007

Hace 25 años se estrenaba Blade Runner

Hace 25 años se estrenaba en los EE.UU. una de mis películas favoritas: Blade Runner, dirigida por Ridley Scott (el mismo de Alien) y basada en la novela ¿Sueñan los androides con ovejas eléctricas? de Philip K. Dick. Para los que nos gusta la ciencia ficción clásica y las oscuras imágenes del cyberpunk, Blade Runner es un film obligado.

La película transcurre en un Los Ángeles distópico y aborda una temática amplia: la dependencia en la tecnología, la ingeniería genética y la clonación, la memoria, los simbolismos, la muerte y la inmortalidad, el ambiente y la globalización, y la búsqueda de la identidad, entre otros. La fotografía y la música juegan un rol fundamental en el film, basta decir que la banda de sonido fue compuesta por Vangelis.

Los que navegan bastante en la red, muy posiblemente hayan visto alguna de estas frases en algún foro o como firma de un email:
"The light that burns twice as bright, burns half as long. And you have burned so very very brightly, Roy."
- Eldon Tyrell, a Roy.

"He visto cosas que la gente no creería. Naves de batalla incendiadas mas allá de Orión. Vi rayos C brillar en la oscuridad cerca de Tanhauser Gate. Todos esos momentos se perderán en el tiempo, como lágrimas en la lluvia. Es hora de morir."
- Roy Batty, a Deckard.
Pues bien, ya saben de donde salieron. Si tienen un rato de ocio y la pueden conseguir, les recomiendo la vean de noche y con un buen equipo de audio. También les recomiendo leer el original de Sueñan los androides... ya que contiene elementos no explorados en la película.

lunes, junio 18, 2007

El Congreso español nos enseña cómo NO debe hacerse un sitio web

Leyendo barrapunto encuentro este artículo sobre la Polémica en torno a la web del Congreso de los Diputados de España, como bien dicen en el texto, resaltando la desastrosa programación del mismo, la ínfima seguridad y la irrisoria cifra (y no en la acepción de irrisorio como pequeño, sino como algo que mueve a la risa) que les ha costado la modernización del sitio a los contribuyentes españoles.

Estas publicaciones en blogs y demás serían algo así como un peer-review en el desarrollo web. En este caso, los muchachos se pasaron de buenos haciendo un excelente how-to de cómo no se debe desarrollar un sitio web.

Por Dios, mi esperanza radica en que no se les ocurra seguir el ejemplo español a los gobernantes locales, pues ya lo han hecho con la reforma educativa y así nos fue.

viernes, junio 15, 2007

Algunas citas sobre programación y computadoras

Leyendo la transcripción del programa "Triumph of the Nerds" encontré algunas frases, cuanto menos divertidas, sobre los nerds, la programación y las computadoras que transcribo a continuación:
"Pienso que un nerd es una persona que utiliza el teléfono para hablar con la gente sobre los teléfonos. Y un nerd de computadoras, por lo tanto, es alguien que utiliza una computadora con el objeto de utilizar una computadora."
- Doglas Adams, escritor de ciencia ficción
"Y la gente tiene diversos grados de pasión y diversos tipos de pasión. A algunos les gustan las bases de datos, y para ellos la quinta forma normal es como el nirvana; van en busca de eso, es lo que los levanta por la mañana."
- Christine Comaford, ingeniera de software
"Ni siquiera obedecíamos un reloj de 24 horas: veníamos y programábamos continuamente por unos días. Cuatro o cinco de nosotros, a la hora del almuerzo, nos subíamos a nuestros autos, corríamos al restaurante y nos sentabamos a charlar sobre lo que estábamos haciendo; algunas veces me entusiasmaba tanto hablando de las cosas que me olvidaba de comer, y luego volvíamos y programábamos un poco más. Eramos nosotros y nuestros amigos - ésos fueron días divertidos."
- Bill Gates (si, si, él mismo... y creo que no necesita presentación)
"Comer, bañarse, tener novia, tener una vida social activa es accesorio, se mete en el tiempo de programación. Escribir código es la fuerza primaria que conduce nuestras vidas, así que cualquier cosa que interrumpa eso es un desperdicio de tiempo."
- Doug Muise, diseñador de software
"Y llevé este libro a casa, que describía la computadora PDP 8 y simplemente... oh, era como una biblia para mí. Es decir, todas esas cosas de las cuales por algún motivo me he enamorado, como cuando uno se enamora de un juego de cartas llamado Magic, o se enamora de hacer crucigramas u otra cosa, o tocar un instrumento musical, yo me enamoré de esas pequeñas descripciones de computadoras en su interior, y era un poco como las matemáticas: podía trabajar algunos problemas en papel, resolverlos, y ver como se resolvía, y luego llegar a mis propias soluciones y sentirme bien interiormente."
- Steve Wozniak, co-fundador de Apple
"Tecleabas esos comandos y luego esperabas un rato y luego la cosa haría dadadadadada y entonces te mostraría algo, pero aún así era extraordinario -especialmente para un niño de diez años- poder escribir un programa en Basic o Fortran y que realmente esta máquina tome tu idea y luego de alguna forma la ejecute y dé algun resultado; y si eran los resultados que uno predijo y el programa realmente funcionaba, era una experiencia increíblemente emocionante."
- Steve Jobs, co-fundador y CEO de Apple
"Mirando hacia atrás, recuerdo una oportunidad donde un ingeniero vino a verme con la idea de una computadora que sería utilizada en el hogar. Por supuesto todavía no se llamaba computador personal. Y mientras que él se sentía muy seguro sobre esto, el único ejemplo que pudo dar fue que una ama de casa podía guardar sus recetas en él. Yo no podría imaginar a mi esposa con sus recetas en una computadora en la cocina. Simplemente no parecía tener ninguna aplicación práctica para nada, así que Intel no persiguió esa idea."
- Gordon Moore, co-fundador de Intel y a quien corresponde la ley de Moore
El programa original está lleno de citas y entrevistas de esta naturaleza, así que les recomiendo que lo vean o lean la transcripción disponible.