Link del día: Preloaders, botones y DOM

Para aquellos que hacen web / flash / loquefuera, Preloaders.net es una aplicación web que les permite armar fácilmente preloaders para sus aplicaciones, de una forma elegante y bastante simple. Se le puede personalizar el color, el tamaño, la velocidad de animación entre otros parámetros.

Por otro lado Custom Buttons 3 es un proyectito que andan desarrollando en StopDesign, que, si quieren ir derecho a lo que hay hoy en día, pueden visitar el Custom Buttons 3 Demo. La idea es correctamente utilizar el elemento <button> de HTML y poder estilizarlo de forma propia. Ya los pueden ver ahí qué tan elegantes pueden verse.

Y ya que estamos con lo web, dejo también un pequeño documento que da una referencia del DOM Core, que me hace un poco de falta aprendermeló.

Soy un zorrinito web.

(Read more →)

Métricas de code review

En estos días me encuentro desarrollando técnicas para la automatización y estadarización de resultados de code reviews de los distintos proyectos que estén siendo implementados. La idea es poder tener una idea cuasi-numérica de qué tan bien o qué tan mal está desarrollada una aplicación. Si bien no está decidido y apenas he comenzado con esa idea, estoy seguro que hay muchas cuestiones que sin duda serán ponderadas ahí. Entre ellas: - **Estandarización:** qué tan bien se respeta el estándar propuesto para trabajar (nombres, capitalización, formas en que se conocen distintas clases) - **Arquitectura:** qué tanto se respeta la arquitectura, sea cual sea la utilizada (decidido al comienzo del proyecto) - **Code-coverage:** cuánto código se encuentra cubierto por pruebas de unidad (code-coverage percentage) - **Estabilidad:** cuánto código se encuentra capturando errores que puedan generar y la forma en que los tratan - **Flexibilidad:** cuánto funcionamiento de la aplicación se encuentra parametrizado y cuánto se encuentra cableado en el código o codificado según la lógica del negocio - **Recursos:** cuántos recursos utiliza innecesariamente o aprovecha eficientemente el sistema - **Performance:** de qué forma se realizan ciertas acciones que podrían mejorarse desde el punto de vista de la velocidad y la respuesta al usuario Si bien no tengo mucha idea aún de la forma de evaluarlo, se me estaba ocurriendo basarme en sistemas de scoring estandarizados, como pueden ser el [CCWAPSS](http://ccwapss.blogspot.com/) para seguridad de aplicaciones web, en donde cada criterio a ser tenido en cuenta debe cumplir una serie de requisitos y es evaluado según una serie de preguntas simples que son fáciles de responder para el evaluador. Incluso fantaseaba con llegar a un punto tal en donde esto pudiera automatizarse. Sé que muchas de las cuestiones serán altamente imposible de programar (o al menos, altamente difíciles de llevar a código), pero cuestiones como la forma en que se respeta la arquitectura, la estandarización y el code-coverage son fácilmente codificables para cualquier sistema que con algún u otro medio pueda reconocer el código y tracear dependencias y relaciones. En fin, es un proyecto que apenas está empezando, y no dudo que pueda tener un futuro muy útil. _Soy un zorrinito review._

(Read more →)

Link del día: Web SQL Designer

Paseando por ahí me encontré con un proyecto llamado WWW SQL Designer, que apunta a la creación visual de esquemas de bases de datos, tablas, y relaciones en un entorno visual, enteramente utilizando HTML, CSS y Javascript. Por si fuera poco, en realidad se trata de un proyecto open source, hosteado en una de las páginas de Google Code. Desde allí puede bajarse e instalarse en algún sitio local para que utilicen quienes tengan acceso a ese servidor.

Soy un zorrinito web.

(Read more →)

ASP.NET MVC 1.0 Release Candidate

Hoy anduve probando esta publicación de Microsoft que pueden descargarse gratuitamente desde [aquí](http://go.microsoft.com/fwlink/?LinkID=141184&clcid=0x409), disponible para VS 2008. Estaba siguiendo las indicaciones que mostraban más que nada las nuevas features, que leí en [Scott's Blog](http://weblogs.asp.net/scottgu/archive/2009/01/27/asp-net-mvc-1-0-release-candidate-now-available.aspx), pero imagino de todos modos que el [sitio oficial de ASP.NET MVC](http://www.asp.net/mvc/) estará lleno de tutoriales y explicaciones al respecto. La instalación es totalmente indolora, tan natural como el típico "Acepto, siguiente, siguiente" y el instalador se encarga de todo por nosotros. Fuera de eso, la integración a VS 2008 se hace a través de un nuevo project template, en este caso, el ASP.NET MVC Web Application, que ya incorpora cierta estructura que incluye una definición de Master Pages. También se encuentra muy organizado el proyecto, separando obviamente Views, Controllers y Models, pero incluyendo además una sección en donde organizar la estructura de nuestro sitio web, como puede ser la sección de Scripts, Content, o (de forma opcional) Code Templates, que nos permiten extender y modificar el comportamiento por defecto para la generación de muchos elementos. Con algunas primeras pruebas y experimentaciones, pude ver que realmente es muy ordenada la forma en que está pensado para trabajar, y que en muchos aspectos respeta la esctructura de MVC, incluso en muchos aspectos no permitiéndonos saltar el esquema de trabajo para que todo se haga - por decirlo de alguna forma - de la manera que debe hacerse. Esto, si bien quita un poco de flexibilidad, garantiza una buena manutención del código. Me gustaría poder opinar en términos de performance, pero el haber efectuado pequeñas pruebas no me da mucha evidencia de algo que marque realmente una diferencia. Personalmente no noté mucha distancia en tiempos de lo que tardaría un sitio diseñado con algún otro patrón, pero sí entiendo que existe mucho procesamiento de fondo que está siendo hecho, excepto que para algunos casos se esté cacheando mucho de la solución en sí. Más allá de eso, es altamente reconocible el trabajo que han hecho para que el programador pueda llevar a cabo el proyecto con código muy entendible, y, lo más interesante, con muchos templates que le hacen el trabajo muy rápido y dinámico. De esta forma, el programador puede concentrarse por "enlazar las partes", y programar tanto la lógica como la forma que debe verse y tratarse los datos, más que en pelear con las bases de datos, con cuestiones de diseño de objetos y demás cuestiones que no hacen a la funcionalidad final. En fin, me parece una buena aproximación, aunque por alguna razón se siente que no está totalmente orientado a eso todavía, puesto que muchas de las features no funcionaron o se encuentran algo defectuosas todavía... pero recordemos que nos encontramos en una release candidate y no en una versión final. _Soy un zorrinito MVC._

(Read more →)

Problemas con el feed

Para aquellos que me seguían a través de algún feedreader habrán notado que de golpe no hubo más actualizaciones (o, de otra forma: “habrán dejado de notar que había actualizaciones”). Esto se debía a un problema de configuración que surgió un tiempo después de que reconfiguré los subdominios… el por qué, no lo tengo claro todavía, ya que con el subminio nuevo ya había entradas y estaban correctamente publicadas.

Ahora supongo que es cuestión de tiempo para que todos los feeds que quedaron apretados esperando salir aparezcan en sus correspondientes lectores. Posiblemente tengan un rato para leer. Ojalá lo disfruten.

Soy un zorrinito con problemas.

(Read more →)

Link del día: The Database Programmer

El día de ayer me crucé con un post sobre cómo hacer un diseño de base de datos inmune a SQL Injection (o en su título original: A comprehensive database security model). La idea resumida de este tipo es hacer un diseño de base de datos orientado completamente a la seguridad, por lo cual, incluso aunque el supuesto atacante lograra acceso directo a la base de datos, no podría hacer más que acceder a los datos que podría desde la aplicación en cuestión.

La idea está buena, pero en algunos puntos me parece impracticable, aunque sí me hizo surgir ideas parecidas mucho menos complejas que podrían utilizarse… pero eso será motivo de algún post extra o taller. En fin… dicho sea de paso, dejo el link direct al blog de ese artículo, llamado The Database Programmer, que conforma una serie de posts dedicados a cuestiones sobre la programación de base de datos, pero desde un punto de vista algo más abstracto. No tanto el “como”, sino el “qué”, lo cual lo vuelve más interesante.

Soy un zorrinito de datos.

(Read more →)

Link del día: Javascript CAPTCHA Decoder

Desde Hackzine me llega un artículo sobre un pequeño script que Shaun Friedle construyó sobre javascript utilizando Greasemonkey. El script en sí toma la imagen que Megaupload muestra para verificar que uno es humano, y la descifra utilizando una red neuronal.

El script de Shaun puede verse completito aquí. Si se preguntan de dónde salen los valores de constantes que Shaun pone ahí, yo supongo que será el resultado de haber entrenado ya a la red neuronal, al fin y al cabo, el CAPTCHA decoder no tiene que aprender, solamente reconocer.

Si quieren una explicación un poquito más extensa, pueden visitar el artículo de John Resig al respecto, o simplemente verlo funcionando.

No subestimen el poder de javascript. D=

Soy un zorrinito del lado del cliente (por esta vez).

(Read more →)