Video podcast de ViveCodigo 00x12 - 2do. Coding Dojo

Desde el sitio de ViveCodigo.org se ha publicado el podcast edición 12 de la temporada 0, en donde se desarrollóm un Coding Dojo.

 

"En esta emisión del podcast convocamos a la comunidad de desarrolladores a asistir al 2do. Coding Dojo, en donde les pusimos un par de retos a implementar: #7 Project Euler y Roman Numerals
Es interesante ver las respuestas de todos pues se utilizaron varios lenguajes y las soluciones incluso entre mismos lenguajes difieren en su implementación.
Les recomendamos leer el post del Dojo en ViveCodigo.org, pues encontrarán las referencias a las respuestas que se desarrollaron y en la mayoría de los casos los asistentes mejoraron sus soluciones.
Que lo disfruten tanto como nosotros..."

Spring - Camel Introducción

Podcast de ViveCodigo 00x11 - Entrevista con Jorge Ortiz

Los chicos de ViveCodigo han publicado el último podcast donde entrevistan a Jorge Ortíz, un desarrollador de software que trabaja actualmente en FourSquare.

El audio en directo:

Que lo disfruten...

Resumen 21ra. reunión de SpringHispano y Grails.org.mx y 3º Hackergarten Ciudad de México

Más vale tarde... Cuando nos dicen "aprender un nuevo lenguaje", muchas veces pensamos en un juego diferente de "palabras reservadas", una manera exótica de llamar a las secuencias de flujo, y listo. Pero cuando nos animan a pensar de manera diferente cómo comenzar a plantearnos un problema computacional, son muchas las cosas que hay que cambiar, comenzando por nuestra actitud. El pasado sábado 28 de mayo el Ing. Agustín Ramos nos presentó una manera muy distinta de matar las pulgas, es decir, "¿Qué es programación funcional?" con su «Programación funcional, con lenguajes funcionales y los del diario»

Video podcast de ViveCodigo 00x10 - Coding Dojo

Se ha publicado un nuevo episodio de ViveCodigo, en donde se llevó a cabo un Coding Dojo.

Si sólo deseas escucharlo entonces:

El video del podcast:

La liga del artículo con los vínculos y demás información:

http://vivecodigo.org/2011/12/21/podcast-10-de-la-temporada-0/

Que lo disruten!!

Videos de la 22a. reunión de SpringHispano y GrailsMX

Hola a todos!

Me da mucho gusto saber que muchos de ustedes después de mucho tiempo siguen aquí. A través de todo este tiempo hemos tratado de difundir más y más el conocimiento acerca del framework Spring y de las tecnologías asociadas alrededor del mismo, de a poco, nos hemos ido mejorando y en esta ocasión me da mucho gusto ponerles las sesiones enteras de lo que fue nuestra última reunión.

Contamos con la presencia de Andrés Almiray quien nos habló de "El ecosistema Groovy"

Y con Domingo Suárez, que nos habló de su experiencia con Grails en una aplicación de alta disponibilidad.

Espero que les guste tanto como a nosotros

Video podcast de ViveCodigo 00x09 - Griffon

Si sólo quieren escuchar el audio:

Hola a toda la comunidad! Desde el sitio de ViveCodigo.org se ha publicado una nueva emisión el podcast donde el tema principal es Griffon con la participación de Andrés Almiray.

Andrés Almiray es un Java Champion mexicano, líder del proyecto Griffon y contribuyente al lenguaje Groovy, que en esta ocasión nos viene a hablar del desarrollo de aplicaciones Desktop. Específicamente de Griffon un framework Groovy basado en Grails para desarrollo de aplicaciones Java que se ejecutan en el escritorio de nuestros sistemas operativos. En la entrevista Andrés nos comenta el presente y futuro de Griffon, así como, de su experiencia desarrollando el framework y la adopción de este tipo de aplicaciones.

22a. Reunion de la Comunidad Springhispano.org & grails.org.mx - #sh22

A toda la comunidad de desarrolladores, se les hace una atenta y honorable invitación a la 22a. Reunión de la comunidad de SpringHispano y GrailsMX en conjunto con las comunidades de Artesanos de Software,Scala-Mug.org y ViveCodigo.org, la cual se realizará el Sábado 22 de Octubre a las 10:00 A.M. 

En esta ocasión tendremos dos presentaciones de la mano de desarrolladores de software expertos en su ramo.

Grails, opción real y escalable para sitios web de alta carga.

Por Domingo Suárez - @domix

En donde nos compartirá su experiencia desarrollando una aplicación con estadísticas muy interesantes

http://grails.org.mx/showContent/83

http://grails.org/blog/view/pledbrook/Yes%2C+Grails+can+handle+heavy+load

Demostrando que pueden realizarse aplicaciones impresionantes con Grails, pero mostrando y resltando la importancia de la integración de diferentes tecnologías

El ecosistema Groovy: groovy/grails/griffon/gradle/spock

Por Andrés Almiray - @aalmiray

El uso de varias tecnologías corriendo en la JVM con un lenguaje dinámico permiten a los desarrolladores incrementar su productividad y efectividad cuando desarollan software, Andrés con su amplia experiencia nos comparte su conocimiento en el uso de estas

Al final de las sesiones les hacemos una cordial invitación a la parte de Networking, en donde conversaremos de múltiples temas, nos acercaremos con los ponentes para algunas dudas adicionales y estaremos disfrutando de un aperitivo.

Los esperamos en San Lorenzo 1009, Colonia Del Valle, México, Distrito Federal cerca del Metro Zapata

Les reiteramos que el evento es totalmente gratuito y lo único que necesitan es registrarse...

Lo pueden hacer desde: http://loseventos.de/sprighispano/sh22

ATTE

Staff de SpringHispano y GrailsMX

Grails, opción real y escalable para sitios web de alta carga.

 

He estado trabajando poco mas de un año en un proyecto que usa Grails, desde que lo comencé no pensé que se convertiría en lo que es ahora, es decir no pensé que llegara a tener tanta carga.

Básicamente es una tienda en linea, con diversas formas de pago. El stack de tecnologías se compone de varias cosas:

 

 

Usamos varios plugins de Grails entre ellos:

 

 

Y algunas librerías como:

 

 

 

Estamos modularizando la aplicacion en mas aplicaciones y tenemos una app que usa Scala con ScalaQuery para la base de datos, en el futuro haremos muchas mas cosas con Scala y Akka.

Para JavaScript usamos JQuery y varios plugins.

Para trabajar usamos IntelliJ IDEA 10, Gradle, Archiva, Jira, Git, GitHub y mucha cerveza y café.

Un miembro del equipo desarrollo herramientas de monitoreo que revisan la salud de los load balancers y reportan los errores con mensajes directos de Twitter con Shell Scripts. También usamos logstalgia para monitorear casi en tiempo real la carga en los web servers.

El hardware esta compuesta de 5 cajas RHEL 5 de 64 bits, un LoadBalancer y un Firewall físicos. El load balancer dirige el trafico a los Apache HTTPD de 4 cajas, en cada una de esas cajas, esta  configurado con mod_proxy usando AJP hacia 2 Tomcats con un fail over a otra caja. En total se tienen 8 Tomcats atendiendo todo el trafico. Una de esas cajas tiene instalado RabbitMQ y otra caja Terracotta. Se usa una caja exclusivamente como servidor de mySQL.

Las cajas tienen los siguientes specs:

 

  • Dual Quad Core Xeon 2.26 HGZ
  • 24 GB de RAM
  • 300 GB SAS X 3

 

Estas cajas están en el hospedaje dedicado de RackSpace en Chicago.

Con todo lo anterior hemos podido suscribir 1.5 Millones de personas, logrado una carga tope de 80,000 usuarios concurrentes y 30,000 http request por minuto.

Unas de las claves ha sido usar procesamiento asíncrono con RabbitMQ y usar muchísimo el cache distribuido con Terracotta. Ademas de contar con un equipo de 4 desarrolladores mexicanos (yo entre ellos) y un alemán, con mucho talento todos ellos.

Grails es una excelente opción para desarrollo web, nos ha permitido implementar rápidamente los requerimientos de negocio, hemos hecho en un día hasta 12 despliegues de la aplicación sin sufrir downtimes. Grails es una herramienta que facilita el desarrollo web sin perder poder en los frameworks en los que se basa como Spring, Hibernate y otros...

Les dejo un video del análisis casi en tiempo de real que hace logstalgia del log de acceso de los 4 webservers

 

Usar Gradle Wrapper para evitar instalar Gradle

 

Gradle es una excelente herramienta de construcción. Podría ser en conjunto son SBT las mas avanzadas en Java. Durante los años se ha aprendido mucho de la experiencia de herramientas similares como Ant y Maven. Gradle y SBT han sabido aprovechar muy bien esta experiencia para beneficio de nosotros los desarrolladores.

Gradle es relativamente nuevo, muy poca gente lo conoce y puede ser que en algunas situaciones sea impedimento su uso, por que algo tan simple como tenerlo instalado, no ocurre. La gente que desarrollo Gradle pensó en casos en los cuales puedes compartir tu proyecto, pero sin necesidad de instalarlo cuando compartes tu proyecto (en tu maquina si debes tenerlo instalado primero). Esto es fantástico porque por un lado, evitas que la gente que usa tu proyecto, instale Gradle; también es posible que tu proyecto use o requiera cierta versión especifica de Gradle, usando el fabuloso Gradle Wrapper, no tienes porque preocuparte.

Para que esto funcione solo tienes que crear un archivo de configuración de Gradle, generalmente se llama build.gradle. El contenido de este archivo debe tener solo una tarea, como a continuación se muestra:

 

task createWrapper(type: Wrapper) {
    gradleVersion = '1.0-milestone-4'
}

 

Lo que vemos arriba es la definición de una tarea que se llama createWrapper (se puede llamar como tu quieras), que es de tipo Wrapper. Esta tarea lo único que define es la versión de Gradle, que vas a necesitar en tu proyecto. Aquí puede ser cualquier versión valida de Gradle.

A continuación en una terminal de tu sistema ejecutas a Gradle con el siguiente comando en el directorio donde esta tu archivo build.gradle:

 

gradle createWrapper

 

Este comando invoca a la versión de Gradle que tengas en tu maquina instalado, que bien puede ser diferente de la versión que especificaste en tu proyecto. Ya había mencionado que cuando creas el proyecto es requisito tener instalado Gradle, el Gradle Wrapper evita que al compartir tu proyecto debas previamente instalar Gradle. Al terminar de ejecutarse Gradle te habrá dejado en el directorio donde esta tu proyecto los siguientes archivos y carpetas:

 

  • gradle. Carpeta que contiene un jar con las clases necesarias para ejecutar el Gradle Wrapper
  • gradlew. Shell script para sistemas que usen una variante de UN*X
  • gradlew.bat. Archivo por lotes para Windows

 

Cuando compartas tu proyecto solo sera necesario que en lugar de usar el comando gradle, usen gradlew, si no tienen la versión de Gradle, el Wrapper lo descargara de internet y lo instalara (solo descomprime un ZIP en tu directorio home) para que sea usado en tu proyecto.

Así puedes seguir añadiendo mas tareas o plugins a tu build de Gradle o actualizar la versión de Gradle y no forzar a las demás personas que instalen antes de usar tu proyecto. Gradle Wrapper hara ese trabajo.