- Versión OffLine del libro "Desarrollando una aplicacion Spring Framework MVC paso a paso"
- Respaldos de MySql con Groovy, Amazon S3 y Grape
- Maven-Spring-Aspectos con @Configurable y Weaving
- Integración Spring Batch + Scheduling
- Procesamiento con Spring Batch 2.0
- Diseño por Contrato con OVal y Spring
- Session time-out
- Hola Mundo con Google App Engine y Maven
- Expert Spring MVC and Web Flow + PDF Download
- Como se le hace dependecy Inyection a una interfase con muchas implementaciones ?
Versión OffLine del libro "Desarrollando una aplicacion Spring Framework MVC paso a paso"
Comparto con todos, una Versión OffLine en español que he prepado del libro "Desarrollando una aplicacion Spring Framework MVC paso a paso" de los Autores: Thomas Risberg, R
Taller gratuito de Spring 3 + Flex 4 y de Adobe Air 2.0 en Monterrey
En riaHispano hemos organizado un taller gratuito en la ciudad de Monterrey, México este sábado 20 de febrero a partir de las 10 a.m.
Podcast grails.org.mx: Episodio 3 de la Temporada 1

José Juan Reyes (@neodevelop) y Domingo Suárez Torres (@domix) una vez mas entregan otra edición del podcast de grails.org.mx
En esta ocasión hablamos un par de noticias y tambien intentamos explicar lo que son los Closures en Groovy
- Liberación de Grails 1.2.1
- Make Your Web Site 'Groovy'
- Tema del dia: Closures
Ejemplo de un closure sencillo
def clos = { println "hello!" }
println "Executing the Closure:"
clos()
Duración: 57 minutos
Tamaño: 27 MB
Lo pueden descargar directo desde aqui o suscribiendose al feed.
Screencast SpringHispano.org Episodio 2 Temporada 0: Acceso a Base de Datos con Jdbc Parte 1
Nos da mucho gusto toda la retroalimentación que hemos recibido de los screencast anteriores, de verdad nos hace muy feliz y nos motiva seguir publicando contenido.
Hemos mejorada la calidad de los screencast en Vimeo, ahora se verán en alta definición y a una resolución de 1280 X 600, de esa manera se ven mucho mejor. Los invitamos a que distribuyan libremente estos videos en sus sitios que de seguro a muchos les serviran.
En esta ocasión el tema es acceso a base de datos con Jdbc, es la parte 1 de aún no sabemos cuantas, ya que el tema es bastante amplio espero lo disfruten.
Acceso a Base de Datos con Jdbc Parte 1 from SpringHispano.org on Vimeo.
Pueden ver el screencast en linea desde Vimeo y tiene una duración de 42 minutos.
El código fuente lo pueden descargar de aqui http://github.com/domix/shScreencast
Traduccion del tutorial Spring Framework MVC paso a paso
Desde aqui quiero informaros que he finalizado la traduccion a castellano del tutorial Spring Framework MVC step-by-step, y que esta disponible en mi web a traves de la direccion
Screencast grails.org.mx Temporada 0 Episodio 1: Ciclos en Groovy y colecciones
Acabamos de publicar el Episodio 1 de la Temporada 0 de grails.org.mx.
En este screencast vamos a ver como usar los diversos tipos de ciclos que podemos hacer en Groovy, asi como una introducción a las colecciones en Groovy usando Rangos, Listas y Mapas
Ciclos en Groovy y Colecciones from Grails.org.mx on Vimeo.
En este screencast vamos a ver como usar los diversos tipos de ciclos que podemos hacer en Groovy, asi como una introducción a las colecciones en Groovy usando Rangos, Listas y Mapas
SpringHispano.org Podcast-Temporada 2 Episodio 6

SpringHispano.org Podcast-Episodio 6 de la Temporada 2
Spring 3.0 trajo muchas mejoras notables en todos sus componentes, pero las mas notables han sido las de SpringMVC, en este episodio discutimos algunas noticias relacionas de estas mejoras.
Duración: 62 minutos
Tamaño: 30 MB
Lo pueden descargar directo desde aqui o suscribiendose al feed.
Respaldos de MySql con Groovy, Amazon S3 y Grape
En SynergyJ estamos migrando poco a poco nuestra infraestructura a Amazon EC2 para los servidores, por otro lado ya llevamos casi 3 años usando Amazon S3 y es un servicio que vale mucho la pena. Amazon S3 es un servicio muy simple y barato para almacenar información publica y privada.
La información de nuestras bases de datos es vital y por lo tanto es bien necesario que tengamos que hacer respaldo de nuestras bases de bases para evitar perdida de información. Yo considero que un buen plan de respaldos debe contener lo siguiente
- 100% Automatizado
- El respaldo debe estar seguro, tanto a nivel privacidad como de disponibilidad
Seguramente habrá mas características, pero por el momento es lo que mas me importa y es en lo que me puse a trabajar para solucionar este problema en nuestra infraestructura. Como mencione antes, Amazon S3 es un servicio de almacenaje de archivos que es muy confiable, casi al 100 %, por lo tanto pensé en generar el respaldo y guardarlo en Amazon S3 de tal manera que lo tengamos disponible en cuanto se necesite.
Existen muchas soluciones muy simples que permiten respaldar una base de datos de mySql y guardarlo en Amazon S3, pero quise ponerme a trabajar un poco en hacer una propia herramienta de respaldo, y pues pensé hacerlo en Groovy ya que no encontré algo similar.
Bien, con Groovy fue muy sencillo hacer el dump de mySql, la clase que hace el respaldo en Groovy es la siguiente:
class MySqlBackuper {
def host = 'localhost'
def user = 'root'
def password = ''
def database = ''
def doBackup() {
def filename = "$database-${System.currentTimeMillis()}"
def sqlfilename = "${filename}.sql"
def zipfilename = "${filename}.gz"
println "Trying Backup, database='$database' with '$user' in file $zipfilename"
//This is the command to perform the dump via mySql tools
def command = "mysqldump --opt --user=${user} --password=${password} ${database}"
def dump = command.execute()
dump.waitFor()
new File(sqlfilename).write(dump.text)
//AntBuilder is awesome, cool to have it in runtime, not only in develoment time
def ant = new AntBuilder()
//Create the Gzip file
ant.gzip zipfile:zipfilename, src:sqlfilename
ant.delete file:sqlfilename
//return the GZip filename
zipfilename
}
}
Para subir el archivo del dump de mySql a Amazon S3, necesitábamos usar el API de Amazon S3 para realizarlo, en Java existen varias librerías, a mi juicio la mas adecuada es JetS3T, es muy sencilla de usar, solo es necesario ponerla en el classpath y listo. El poner un jar en el classpath puede parecer algo sencillo, pero hay varias cosas a considerar, entre ellas, pues bajarla de algún lugar y dejarla disponible en el classpath.
Los chicos de Groovy pensamos en alguna manera sencilla de que las clases mismas definan que librerías necesiten, ¡en el mismo código!, de tal manera que el código mismo se encargue de obtener (descargar) la librería si es necesario y cargarla en el classpath, sin necesidad de escribir archivos de build o scripts que se encarguen de ello. En Groovy existe algo llamado transformaciones AST, que permiten que en tiempo de compilación el código de byte vaya con algunas modificaciones, solo con usar anotaciones. Revisen este tema de Groovy que esta super interesante.
La anotación que hace la magia en Groovy es @Grab, que hace maravillas, como ir al repositorio de jars de Maven y descargarse la librería que le indiques y ponerla en el classpath sin esfuerzo, es bien importan
te mencionar que no siempre va a descargarla a internet, solo la descarga la primera vez.
La clase que programe en Groovy para guardar archivos en Amazon S3 es la siguiente, chequen el uso de la anotación @Grab
@Grab(group='net.java.dev.jets3t', module='jets3t', version='0.7.2')
class S3Storer {
def awsAccessKey
def awsSecretKey
private def awsCredentials = null
private def s3Service = null
/**
*
*/
def storeFile(file, bucketName) {
def object = new org.jets3t.service.model.S3Object(new File(file))
def bucket = getS3Service().getBucket(bucketName)
if(bucket) {
println "Storing $file on $bucketName wait a moment please..."
def storedFile = s3Service.putObject(bucket, object);
println "Successfully upload $file"
storedFile
} else {
println "the bucket $bucketName cant be found."
null
}
}
private def getCredentials() {
if(!awsCredentials) {
awsCredentials = new org.jets3t.service.security.AWSCredentials(awsAccessKey, awsSecretKey);
}
awsCredentials
}
private def getS3Service() {
if(!s3Service) {
s3Service = new org.jets3t.service.impl.rest.httpclient.RestS3Service(getCredentials())
}
s3Service
}
}
El paso final es juntar la clase que hace respaldos de mySql y la clase que sube archivos a Amazon S3 para que unas cuantas lineas podamos programar el respaldo y almacenaje de la base de datos. Todo en unas cuantas lineas¡¡¡¡
//Here you can provide the database, password, even the username to perform the backup in gzip def sqlDatabasefile = new MySqlBackuper(database:'databaseName', username:'user', password:'yourPassword').doBackup() println 'Performing MySql Backup to Amazon S3' def storer = new S3Storer(awsAccessKey:'', awsSecretKey:'') // The filename and the bucket name def f = storer.storeFile(sqlDatabasefile, 'yourBucketName')
Espero les haya gustado el código esta disponible en mi cuenta de GitHub por si le voy agregando mejoras, como diversos tipos de respaldos y mas flexibilidad para Amazon S3
12a. Reunion de la Comunidad Springhispano.org, grails.org.mx
Hacemos la cordial invitación a todos los desarrolladores interesados, miembros de la comunidad y publico que le apasione el desarrollo de software a la 12a. Reunión de la comunidad que se llevará a cabo el día 30 de enero de 2010 a las 10:00 A.M., en donde presentaremos:
Java 2010: presente, límites y futuro, por Miguel Zuñiga (@miguel1mx)
Desde el green project de 1991 hasta la adquisición de Sun por Oracle a fines del 2009, muchos eventos han pasado entorno a Java. Desde las ópticas de tres proyectos: jnode, un sistema operativo escrito en Java, LWJGL, una solución para programación de juegos que implementa OpenGL y OpenAL en una sola API, y Apache Harmony, una implementación libre de Java SE 5.0, se propondrá a los asistentes a hacer pronósticos sobre qué sucederá con el Java de Sun y hacia dónde habrá que apostar este año.
Miguel Zúñiga González (@miguel1mx en twitter, http://www.zeh.com.mx/) es arquitecto (de casas y edificios) y (casi) lingüista aplicado y activo participante de proyectos libres como traductor. No tiene la menor idea de realmente qué implican la POO o la POA, no desarrolla, se pierde en los IDEs, le tiene miedo a M$ Visual Studio y aún así, se ha divertido horrores intentando abrirse camino por la plataforma Java.
El sistema operativo Android y su SDK por Enrique Diaz (@nRikeDiaz)
La charla tratará sobre el OS para móviles Android y el SDK. Daré una breve introducción sobre porqué deberíamos desarrollar widgets para Android, pues creo que hay un nicho de negocio importante y donde podemos competir de manera global. Veremos unas estadísticas sobre cómo se va moviendo el mercado de Android y sobre el boom que se espera para este año 2010. Daré también una demo de un proyecto que estoy realizando, el cuál consume un WebService con Http Basic Auth desde un Widget desarrollado en Android SDK.
Enrique Díaz es estudiante del último semestre de Ing. en Computación, IPN. Certificado en Java con SCJA. Sus puntos fuertes son el Web Development & Mobile App Development. De entre sus últimos proyectos se encuentra PurpleCat, un CRM para Android y AndroidMexico.com, comunidad mexicana de desarrolladores en Android SDK
Recordandoles que la entrada es totalmente gratuita y que habrá algunas sorpresas para los asistentes...
El lugar de la reunión es en:
Ave. San Lorenzo 1009 Piso 4. Col. del Valle, México, D.F.
El registro es importante que se realice en Coetus, ya que es requerido saber la cantidad de asistentes a la reunión. Se pueden registrar aquí.
De antemano agradecemos su asistencia y participación...
ATTE
Staff de SH.org, grails.org.mx
Screencast grails.org.mx Temporada 0 Episodio 0: Introduccion a Groovy
No quisimos quedarnos atrás de los tipos de SpringHispano y también nosotros empezamos con la serie de screencast.
En este primer episodio les mostramos una introducción a Groovy, es totalmente recomendable para los interesados y principiantes.
Pueden vernos en linea en Vimeo o suscribirse al Feed
Introducción a Groovy from Grails.org.mx on Vimeo.



Comentarios recientes
hace 20 horas 37 mins
hace 1 día 15 horas
hace 4 días 19 horas
hace 5 días 3 horas
hace 6 días 17 horas
hace 6 días 20 horas
hace 1 semana 1 hora
hace 1 semana 9 horas
hace 1 semana 1 día
hace 1 semana 4 días