miércoles, 23 de junio de 2010

Eclipse Helios is Here!


Finalmente se ha liberado esta nueva versión denominada Eclipse Helios, que corresponde al lanzamiento anual que nos tiene acostumbrado la fundación Eclipse. Para esta ocación, esta nueva versión cuenta con 39 Proyectos que hacen de esta versión una de las más esperadas por los desarrolladores e investigadores que lo utilizan. Aquí se detallan algunas de las mejoras realizadas.

sábado, 19 de junio de 2010

Domain-Driven Design (DDD)

Nunca había escuchado hablar de DDD. Hasta que un día ví un video acerca de metodologías de diseño de dominio y di con este término. Fue así como quise investigar un poco y quiero compartir con ustedes lo que descubrí.



¿Qué es DDD?

El término es algo como "Diseño orientado al Dominio", y trata acerca de 2 conceptos vitales:

1.- En un proyecto de software el bjetivo principal debe ser el dominio y su lógica.
2.- Los diseños de dominio complejos deben estar basados en un modelo.

DDD no es una tecnología o una metodología. Es una forma de pensar y un conjunto de prioridades, encaminadas a acelerar los proyectos de software que tienen que lidiar con un dominio más complejo.


Para cumplir con este objetivo, el equipo de desarrollo debe contar con un extenso conocimiento sobre practicas de diseño, técnicas y principios.



El reto de la complejidad

Muchas cosas se pueden poner en un proyecto en curso, burocracia, objetivos poco claros, falta de recursos, etc., pero será el enfoque de diseño el que determina que tan complejo puede llegar a ser el desarrollo. Cuando la complejidad se nos va de las manos, el software no puede ser entendido ampliamente como para modificarlo y extenderlo fácilmente. Por el contrario, un buen diseño puede crear oportunidades de aquellas características complejas.


Algunos de esos factores de diseño son tecnológicos y se han centrado en gran medida en diseño de redes, base de datos, etc.


Sin embargo, la complejidad mas importante de muchas aplicaciones no es técnica. Está en el propio dominio. La actividad o negocio del usuario. Cuando esta complejidad no es tratada en el diseño, no importaría que la infraestructura estuviera bien concebida. Un diseño exitoso deberia lidiar sistematicamente con este aspecto central del software.



Hasta la próxima entrega :) ... Ahí seguiré con la segunda parte.

jueves, 17 de junio de 2010

Notepad++ cambia de hosting



El editor de textos Notepad++ estaba hospedado en el sitio SourceForge.net, pero en dicho sitio comenzaron a aplicar una ley de EE.UU en la cual se prohibía el acceso a usuarios de países como Cuba, Korea del Norte, Irán, Sudán y Siria. Sin embargo, debido a que Notepad++ es un proyecto FOSS no estuvo de acuerdo con dicha prohibición por lo que optó por mudarse. Es así como llega a un nuevo hosting llamado TuxFamily ubicado en Francia, por lo que no tendría problemas de prohibición de ningún tipo.

Disponible Netbeans 6.9

Finalmente ya está disponible la versión 6.9 de Netbeans, este IDE que con el tiempo ha ganado cada vez más adeptos en el mundo Java. De acuerdo a las notas de lanzamiento la versión 6.9 incluye las siguientes mejoras:

1.- Compositor JavaFX para simplificar su desarrollo
2.- JavaFX SDK 1.3
3.- Soporte para los frameworks Equinox y Felix OSGi
4.- Soporte para la biblioteca 3.0 de Spring
5.- Soporte en versión Beta para Rails 3.0
6.- Soporte para el framework Zend PHP

Se puede obtener más información de la versión en este enlace.

Importante: Esta versión no soporta Java SDK 5.0 en ninguna de sus plataformas, por lo que es necesario tener instalada la versión 6.0 hacia adelante para poder instalar Netbeans 6.9.

Saludos.

sábado, 12 de junio de 2010

Efecto Exposé en Windows

¿Quién vió el efecto exposé en un Mac y quiso tenerlo en windows?. Finalmente, los usuarios de windows podrán tenerlo sin necesidad de desembolsar una gran cantidad de dinero. Es así como Switcher lo hace sin problemas, sólo necesita que windows vista o seven tenga activo efecto Aero.




Saludos ;)

jueves, 10 de junio de 2010

Caffeine: Nuevo sistema de búsqueda de Google



Como aparece en el blog oficial de Google se lanzó un nuevo sistema de búsqueda que permite tener un 50% más de resultados "frescos", es decir, más actualizados. La explicación mencionada radica en que antiguamente el buscador actualizaba los índices cada cierto tiempo por lo que los contenidos no eran 100% nuevos.
¿Cual es el cambio? Ahora, el nuevo sistema de búsqueda estará buscando continuamente, en pequeñas porciones, en toda la web, proporcionando información actualizada sin importar el lugar de publicación.
Caffeine permite indexar páginas en una enorme escala, de hecho la base de datos utiliza 100 millones de gigabytes de almacemamiento y añade información a una velocidad de cientos de miles de gigabytes por día.

Se espera que en los próximos meses se tengan mejoras en el motor de búsqueda.

miércoles, 9 de junio de 2010

Primeros pasos con Grails 1.3

Hace bastante tiempo que no escribía en mi super BLOG!!, pero me dieron ganas de hacer algo con Grails ya que está famoso entre los frameworks para el desarrollo rápido de aplicaciones web. Bueno, lo primero que tenemos que hacer es descargarnos el framework, extraer sus archivos y configurar la variable de entorno GRAILS_HOME, tanto en windows como en linux.

Luego que tenemos configurada la variable probamos si todo anda bien, ejecutamos desde consola el comando grails que nos dará la versión del framework.

Comenzaré con algo muy básico, el típico "Hola mundo"

ponemos el comando:

#>grails create-app Helloworld

dicho comando lo que hará será crear la estructura de la aplicación, ya sea la capa de controladores, dominio, vistas, taglibs, etc.

luego, creamos una clase de dominio -> grails create-domain-class Hello

Con esto, el framework creará dicha clase y la pondrá en el lugar que corresponde, el cual sería el dominio de la aplicación (la M del patrón MVC). La clase será algo como:

class Hello{
static constraints = {}
}

donde la sección "constraints", se utilizará más adelante para validar los atributos que tendrá la clase, es decir, si la clase tiene un atributo nombre, en constrainst podríamos validar que nombre(maxLenght:50,blank:false) etc.

Como es una aplicación básica, crearemos su controlador, el cual dará la lógica de dicha clase, para esto ejecutamos el siguiente comando:

#>grails create-controller Hello

Una vez creado el controlador para la clase, nos daremos cuenta que creará algo como esto:

class HelloController{
def index = {}
}

bueno, para el ejemplo, modificamos esto y lo dejamos así:

class HelloController{
def index = {
render 'Hola CTM, esta es mi primera aplicación en Grails!!..'
}
}

Finalmente, le damos ejecutamos nuestra aplicación.

#>grails run-app

Si todo va bien, veremos ese mensaje al ingresar al navegador con esta dirección:

http://localhost:8080/Helloworld/Hello


Bueno, después haré un ejemplo mucho más complejo .. orientado a la NASA.

Saludos.