Archivo Febrero, 2010
UP y desarrollo ágil. Estragegia para triunfar en un proyecto
Por Scipion - Ingenieria del software - 23 Febrero 2010
Las metodoligías ágiles, en lo que a modelos de proceso se refiere no son ya algo nuevo, pero puede que sí lo sea su uso. Como en general todo lo que se decidió usar a raíz de la crisis del software, hace más de 20 años, es en la actualidad cuando la industria del software se va dando cuenta que es útil.
El proceso unificado (UP) combina buenas prácticas comunmente aceptadas, un ciclo de vida iterativo y desarrollo dirigido por los riesgos (risk-driven), esto es, los riesgos son abordados para ser solucionados cuanto antes. Se considera un riesgo aquellas partes en las que las decisiones a tomar son criticas.

Etapas del UP
El proyecto software será dividido en iteraciones. Las iteraciones se pueden considerar unidades de desarrollo. Cada una es un miniproyecto. En la literatura (larman.pdf) al respecto del modelo UP (o RUP en ocasiones por Rational UP) se puede encontrar como consejo a la duracion de una iteración entre 2 y 6 semanas. Y a demas las iteraciones seran de duración fija, así que si en una iteración tenemos demasiado trabajo es momento de no dormir, y planificar menos tareas para la proxima iteración.
El resultado de una itración es un sistema ejecutable pero incompleto, NO un prototipo, el desarrollo iterativo no es prototipado. Lo que se tendrá es un subconjutno del sistema final.
Pero lo que caracteriza realmente los modelos ágiles es la relacion con el cliente. El cliente siempre que se le entrege algo lo probará y dira: “sí, es lo que yo queria … pero”. Las continuas entregas y rectificaciones del cliente nos ayuda a adaptar el producto a las necesidades de quien nos contrata para desarrollarlo.
Así cada ciclo de desarrollo se convierte en un proceso de:
Construcción-Retroalimentación-Adaptación
Entregarle al cliente lo que él quiere y no lo que pensó sin mucha idea cuando firmó el contrato es lo que hace que los proyectos concluyan satisfactoriamente. Dentro de los modelos ágiles hay muchas variantes, el UP es una de ellas que da buenos resultados.
Validar formularios en JavaScript
Por Scipion - Aplicacion web, JavaScript - 19 Febrero 2010
En toda aplicación web de hoy en día no pasa sin que el usuario meta la pata, aunque sea de forma premeditada, por eso los fromularios hay que comprobar que no nos la cuelan. Validar los datos hay algo que siempre hay que hacer en el lado del servidor, pero le podemos dar agilidad a la web si antes de mandar el formulario lo verificamos en el lado del cliente.

Esto para nada es un problema nuevo, y ya se ha intentado solucionar de muchas maneras en JavaScript. Algunas de las librerias(bibliotecas) son especificas para validación, otras son usos especificos de otras más genericas. En cualquier caso si quieres ponerte a escribir tus funciones JS que validen los formularios que sepas que estas Reinventando la Rueda, porque ya se ha hecho unas cuantas veces:
Ketchup basado en JQuery:
http://demos.usejquery.com/ketchup-plugin/
Vanadium:
JQuery:
http://bassistance.de/jquery-plugins/jquery-plugin-validation/ (demo)
Validation con Prototype:
http://tetlaw.id.au/view/javascript/really-easy-field-validation (demo)
MooTools:
http://mootools.floor.ch/en/demos/formcheck/ (demo)
JsVal:
http://jsval.fantastic-bits.de/
Validanguage:
http://www.drlongghost.com/validanguage.php (demo)
Django (basado en Google App Engine):
http://code.google.com/appengine/articles/djangoforms.html
LiveValidation:
http://livevalidation.com/ (demo/ejemplos)
wForms:
http://www.formassembly.com/wForms/ (demo)
Yav (última versión del 2008):
JSValidate/JValidate:
http://www.jsvalidate.com/ , http://www.jvalidate.com/
fValidator:
http://zendold.lojcomm.com.br/fvalidator/
qForms (últmia versión del 2007):
http://www.pengoworks.com/index.cfm?action=get:qforms
Validatious:
Si te quieres montar tu propia libreria puedes empezar con los ejemplos propuestos en w3schools.
Libreria de validacion abandonada en 2004 chrysalis.
A parte de la validación el elemento visual es también algo que deja que desear bastante en los formularios. CustomFormElements da un aspecto agradable a los formularios web, incluso se pueden parecer a aplicaciones de escritorio. Está disponible para usar con Mootools y JQuery.
CoffeeScript enriquece y optimizar JavaScript
Por Scipion - JavaScript, Lenguajes de Script - 10 Febrero 2010
Leo en GitHub que CoffeScript es un proyecto para JavaScrit que realiza la misma tarea que SASS en CSS (¿cueces o enriqueces?).
CoffeeScript ofrece una sintaxis concisa inspirado por Ruby y Python, listas por comprensión, los operadores existencial para eliminar los controles typeof molestos, y un modelo de herencia fiable para arrancar. ☕CoffeeScript
Algunos proyectos ya están apareciendo, como en rack de café e incluso una reescritura de underscore.js, Se puede comarar la version en JS pura (0.5.8) con la reescrita en Coffee (0.5.7), aunque no son la misma versión, entre versiones no cambian muchas cosas, y se puede ver que se clarifica el código y se ahorran unas cuantas lineas.
En su web comentan que CoffeeScript tiene los mismos “genes” que JS pero distinto estilo (XD). Aun está creciendo pero tiene buena pinta el lenguaje.
Estos lenguajes orientados a programadores muy especificos parece que sean una locura, pero para aplicaciones web con mucho uso JS pueden ser útiles (y con programadores que conozcan ruby o pyton aun más). Se puede decir que son lenguajes en el final del long tail, muchos frameworks también empezaron siendo para unos pocos.
Lenguaje Sass. El CSS 2.0
Por Scipion - CSS, Lenguajes de Marcado - 9 Febrero 2010
Me he encontrado con el lenguaje SASS. Según sus autores hace el CSS fácil y divertido. Es como si un monton de diseñadores artos de algunas cosas de CSS se hubiesen puesto a programar, y esto es lo que ha salido.
Sass es un meta-lenguaje que está sobre CSS que se utiliza para describir el estilo de un documento de forma limpia y estructurada, con más potencia que que la que permite CSS plano.
Sass, proporciona una sencilla sintaxis más elegante para CSS e implementa varias características que son útiles para crear hojas de estilo manejable.
Dan algunos ejemplos de la sintaxis en comparación con el CSS tradicional y parece bastante lógico el haber implementado el lenguaje.
Embellecimiento:
// Sass h1 height: 118px margin-top: 1em .tagline font-size: 26px text-align: right |
/* CSS */
h1 {
height: 118px;
margin-top: 1em;
}
.tagline {
font-size: 26px;
text-align: right;
}
|
Anidación:
// Sass
table.hl
margin: 2em 0
td.ln
text-align: right
li
font:
family: serif
weight: bold
size: 1.2em
|
/* CSS */
table.hl {
margin: 2em 0;
}
table.hl td.ln {
text-align: right;
}
li {
font-family: serif;
font-weight: bold;
font-size: 1.2em;
}
|
Variables:
// Sass !blue = #3bbfce !margin = 16px .content_navigation border-color = !blue color = !blue - #111 .border padding = !margin / 2 margin = !margin / 2 border-color = !blue |
/* CSS */
.content_navigation {
border-color: #3bbfce;
color: #2aaebd;
}
.border {
padding: 8px;
margin: 8px;
border-color: #3bbfce;
}
|
Mixins:
// Sass
=table-scaffolding
th
text-align: center
font-weight: bold
td, th
padding: 2px
=left(!dist)
float: left
margin-left = !dist
#data
+left(10px)
+table-scaffolding
|
/* CSS */
#data {
float: left;
margin-left: 10px;
}
#data th {
text-align: center;
font-weight: bold;
}
#data td, #data th {
padding: 2px;
}
|
Aunque no tiene muchas entradas, pero para más información el blog de SASS. Tambien está muy bien su proyecto hermano de nombre HALM que hace cosas similares pero para html/xhtml.
Funciona sobre Ruby y está licenciado con la MIT con lo cual es software libre y código abierto.
Interesante para proyectos donde el diseño tenga mucha relevancia que hoy en día son muchos.
Los videos de HTML 5 y el factor X
Por Scipion - General, Lenguajes de Marcado, Web - 6 Febrero 2010
La dichosa etiqueta <video> está dando que hablar mucho en la blogosfera sobre la nueva versión de nuestro lenguaje de marcado favorito.
Más interesante que la especificación de la etiqueta es el twitter de HTML5 (sí, ahora todo tiente twitter) para ver si dicen algo del video.
La cosá está en que la etiqueta <object> no va a desaparecer del “mercado”. Claro, que harían con todos los videos flash que ya están macados como objects, no se puede reescribir todo de repente. Y a demas están todos los juegecillos flash (y en otras tecnologías como silverlight/moonlight y JavaFX) que hay y que habrá, eso no son videos ni audios, son … objetos.
Pero la polemica con que el iPad no soporte flash es lo que reaviva el tema. Tenemos a las empresas que tienen formatos de video propietario, como Adobe y Microsoft que quieren se sea el suyo, está claro. Por otro lado la comunidad que quiere que se utilice el estandar OGG que para eso está y es libre. Por otro lado aparece el ya famoso driver h.264 que es el driver con el que Google ha implementado el HTML5 de YouTube, pero por lo visto Apple tiene patentes por ahí, así que tiene metida la mano en ese formato una empresa privada.
Pero no es Apple una empresa más malevola que Adobe, las dos son eso, empresas y por lo tanto su mayor prioridad es ganar dinero y es por eso que “barren para casa”. La voluntad de la industria y no la de las empresas particulares es la de ir hacia algo abierto. Es por eso que ya se habla de la muerte de Flash, y es curioso porque nadie habla de la muerte de JavaFX o de la muerte de Silverlight cuando al rededor del 95% de los PCs tiene instalada una maquina virtual de Flash y la cuota de mercado de sus competidores es bajisima (porque JavaFX corre sobre una JVM SE que aun aun, pero Silverlight … :S ).
¿Es la muerte de Flash la nueva etiqueta video? Pues es lo que dicen muchos, que si es cerrado, hace falta maquina virtual a parte, dependes de Adobe, y para elegir a Adobe porqué no elegir a otro que mejora X.
Esos son los argumentos en contra y a favor tiene que la maquina virtual a parte, bueno, ya la tienen casi todos, dependes de Adobe, bueno pero mejor malo conocido que bueno por conocer, que no es libre … ¿Con que sistema operativo y navegador estas leyendo este post?
Lo que tiene a favor Falsh es la primera ley del marqueting: “Es mejor ser el primero que ser el mejor“. Bueno no se si es la primera ley, pero desde luego es importante. A demás el factor de apoyo que tiene flash es el mismo que tenía el VHS contra el BETA, el mismo que hizo que el Blue Ray luchara duro y ganara la batalla contra el HD-DVD. Ese es el factor Porno. Las webs de video streaming porno usan flash AHORA, son ellas las que tendrian que cambiar para que otro formato tuviese fuerza de verdad. Es el Porno lo que tira de internet y no Google como parece. Esó dá para un buen debate también.
De todos modos aun queda tiempo para ver cómo se decide el vencedor de esta guerra que va a seguir generando polemicas.