Un año transcurrió juntos, les deseo que se cumplan todos sus anhelos. En el 2011 espero que me sigan acompañando.
Feliz 2011 a todos!!!
Cuando Wave fue abandonado, se comentaba que Google liberaría el proyecto con el nombre de Wave In A Box, pero sin seguir desarrollándolo. Pus bien, hoy Wave In A Box ya tiene a alguien que le empuje: la fundación Apache.
La fundación va a alojar el proyecto junto a los demás y va a impulsarlo con un equipo de desarrollo al igual que se hace con el servidor Apache. El producto se llamará Apache Wave In A Box, y la idea es que sirva para que cualquiera lo pueda instalar en un servidor sin problemas.
Según Apache, adoptan Google Wave porque hay bastante gente interesada en la continuidad del proyecto. Entre ellos están la recién comprada Novell, SAP o incluso la Marina de los EEUU.
Aunque Google Wave no tuvo una muy buena acogida, su tecnología es muy buena y compleja, y merece la pena ser guardada y desarrollada. Habrá que ver cómo evoluciona ahora Apache Wave y el tratamiento que le da la fundación Apache, y si consigue que Wave sea más aceptado de lo que lo fue con Google.
Dejo link:
Como principal ventaja del software Open Sources se pensaría en el bajo costo dado que se relaciona Open Sources como gratis y esto no es así. Es un error pensar en el Open Sources como una solución barata dado que el software puede tener costo, pero además el software tanto Open Sources como comercial tiene costos ocultos. Como costo oculto podríamos nombrar la falta de soporte, o falta de documentación. Estos costos ocultos hay que tenerlos en cuenta a la hora de optar por un software.
El uso de frameworks open sources para el desarrollo de aplicaciones trae aparejado muchos beneficios que dependen de la comunidad que respalde el framework; cuanto mayor es la comunidad mayor va a ser el soporte, la documentación, calidad y los usuarios que usan el framework:
Soporte: El soporte brindado puede ser mayor a una aplicación comercial y la información suministrada por foros de problemas es basta.
Documentación: Si bien no es común que un software open source este bien documentado, la información suministrada por blogs, foros, libros es mayor que productos comerciales.
Calidad de código: La calidad del código de framework open source es mayor ya que el código es visto por decenas de programadores y revisados por una comunidad de usuarios.
A la vez existen beneficios intrínsecos del software open sources:
Usar el programa: podemos usar el programa sin ninguna restricción, ni siquiera comecial ya que podemos vender nuestro desarrollo, pero una restricción es que debemos incluir el código fuente en la venta.
Libertad de aprender: podemos aprender del código fuente, aprender como fue hecho el framework y saber como realmente funciona. De esta forma el grupo de trabajo no esta limitada a ver solo la documentación sino que puede debugear el código fuente y palpar lo que hace realmente.
Libertad de modificar: Si existe un bug, es posible corregirlo y publicar su corrección para que se encuentre en futuras versiones. Además podemos extender el framework como queramos, desarrollando nueva funcionalidad que luego podemos publicar para que la comunidad la pruebe y use.
Estas ventajas no son menores, dado que el conocimiento es el arma más importante en un grupo de desarrollo informático y el open source permite cultivar el conocimiento, dando nos el privilegio de leer las lineas de código y ver como funciona.
Apostar a el software open source es apostar al capital humano, con un grupo consolidado puede aprender y desarrollar mejor a partir del código fuente. Los desarrolladores aprenden como funciona el framework viéndolo funcionar.
Utilizar software Open Source no solo beneficia a quien lo usa sino a toda una comunidad.
JSON, acrónimo de JavaScript Object Notation, es un formato ligero para el intercambio de datos. JSON es un subconjunto de la notación literal de objetos de JavaScript que no requiere el uso de XML.
La simplicidad de JSON ha dado lugar a la generalización de su uso, especialmente como alternativa a XML en AJAX. Una de las supuestas ventajas de JSON sobre XML como formato de intercambio de datos en este contexto es que es mucho más sencillo escribir un analizador semántico de JSON.
Los desarrolladores de Apache Maven (en su mayoría empleados de Sonatype) han estado trabajando desde hace tiempo en la versión 3 de esta popular herramienta para compilación de proyectos Java. La semana pasada han liberado la primera versión beta y Michel Pronschinske en DZone ha hecho un breve repaso de lo nuevo que viene en Maven 3.
Lo más importante para los usuarios de Maven, es que se ha puesto especial énfasis en conservar la compatibilidad con las versiones previas. Por lo que prácticamente para empezar a usarlo en tus proyectos hechos con Maven 2, no tendrás que hacer ninguna modificación, más allá de corregir declaraciones de dependencias duplicadas y la forma de declarar los plugins.
En cuanto a características nuevas la más interesante es el soporte para extension points. Herramientas que colaborarán de forma integral con Maven 3 para añadir funcionalidades.
Entre estas herramientas, destaca Polyglot Maven (http://polyglot.sonatype.org/), que permite construir los POM ya no en XML sino usando lenguajes soportados por la JVM. Por ahora, Groovy, Scala y Clojure. Un poco en la línea en que Gradle hace uso de Groovy para estos fines.
Otra herramienta que hace uso del extension point es Maven Shell. Un shell para ejecutar maven que da ciertos beneficios como caching de archivos POM, integración con arquetipos, integración con nexus, con hudson, etc. La idea es que si lo usas podrás reducir tus tiempos de compilación y construcción de proyectos Maven.
También han mejorado m2Eclipse, el plugin oficial para integración con el IDE Eclipse. Ahora prometen mejorar el desempeño de Maven dentro de Eclipse en rango del 200 al 300%. Además de mejorar el soporte para las tareas de Maven.
Internamente, Maven 3 ha sufrido una completa reestructuración que ha llevado a cambios tan importantes como quitar a Plexus como libreria IoC (Inversión de Control) y ahora usan Google Guice y ya tienen soporte para OSGi.
Ya puedes probar Maven 3 descargándolo del sitio de Apache (http://maven.apache.org/download.html) Por el momento no hay mucha documentación sobre las nuevas features del producto, pero seguramente y como Sonatype ha hecho con Maven 2, en el futuro próximo la tendremos.
LiquiBase es una base de datos con una premisa: “Las bases de datos también cambian porque no administrar estos cambios”. Si uno desarrolla código y usa un software de control de versiones, porque no controlar las diferentes versiones de la base de datos.
LiquiBase provee :
Merging de cambios
Branches
Gestión de datos de producción, así como varios conjuntos de datos de prueba
Updates automatizadas o generación de secuencias de comandos SQL que puede ser aprobado y aplicado por un DBA
Database “diff”
Generación documentación de cambios
Estas caracteristicas son muy interesantes y utiles. Me da curiosidad el diff de bases de datos.
Sin duda un producto que hay que probar.
Y lo mejor es que es open source, licencia Apache 2.
Dejo links:
http://www.liquibase.org/manual/home
Mongodb es una base documental que guarda los datos con un formato “like json” que se llama bson; este formato es un mapa clave valor el cual se puede representar de diferentes maneras en diferentes lenguajes:
JavaScript: {"foo" : "bar"}
Perl: {"foo" => "bar"}
PHP: array("foo" => "bar")
Python: {"foo" : "bar"}
Ruby: {"foo" => "bar"}
Java: DBObject obj = new BasicDBObject("foo", "bar");
Para instalarlar MongoDb solo hay que descomprimir un tar o zip depende de que sistema operativo elijan luego crear el directorio data
C:\> mkdir data\db
Y listo!! Se van a la carpeta bin y ejecutan mongod.exe/.sh (según el S.O.) y de esta forma levantan el servicio, seria como levantar el motor de base de datos.
Bueno ahora podemos probarlo ejecutando mongo.exe/.sh se abrira un administrador símil a un software de consulta de base de datos. Por defecto mongo se ejecuta sin seguridad y el software de consulta esta en la base test.
C:\> cd \my_mongo_dir\bin
C:\my_mongo_dir\bin
> mongo
> // the mongo shell is a javascript shell connected to the db
> 3+3
6
> db
test
> // the first write will create the db:
> db.foo.insert( { a : 1 } )
> db.foo.find()
{ _id : ..., a : 1 }
> use mydb
switched to db mydb
Vamos a insertar datos con ruby. Para la próxima lo hacemos con Java.
class MongoDBInsert
def initialize(host, port, db, user_name="", password="")
@db = Mongo::Connection.new(host, port).db(db)
# @db.authenticate(user_name, password)
end
def insert(objetos)
coll = @db.collection("objetos")
objetos.each do |objeto|
coll.insert(objeto.index => objeto.to_str)
end
end
end
if __FILE__ == $0
...
mongoDBInsert = MongoDBInsert.new("localhost", 27017, "test")
mongoDBInsert.insert(objects)
end
Dejo links:
http://www.mongodb.org/display/DOCS/Quickstart
http://www.mongodb.org/display/DOCS/Home
Para la próxima insertamos usando java!!
Copie esta noticia de javahispano, se que eso no se hace. Lo que sucede es que siempre desde el blog se comento los beneficios de scala, y además me gusta mucho. Por lo tanto quiero compartir la siguiente noticia:
El creador del lenguaje Scala ha creado una empresa llamada Scala Solutions para dar soporte empresarial a este lenguaje híbrido entre OOP y Programación funcional.
La empresa dará soporte al lenguaje y ofrecerá productos alrededor de el. Uno de los primeros será una herramienta de migración para resolver incompatibilidades binarias de productos hechos con versiones de Scala anteriores. Esta herramienta estará lista para la versión 2.9 del lenguaje.
Además de eso, la empresa dará consultoría y cursos; ya se anunciaron los primeros en Amsterdam, Londres y Paris.
Scala es uno de los lenguajes para la JVM que están generando mucho ruido ya que es una interesante mezcla entre programación orientada a objetos y los beneficios de la programación funcional; además de que ofrece type safety y un desempeño igual (en algunos casos mejor) al del lenguaje Java. Pero a pesar de que algunas empresas ya apuesta a él como FourSquare y Etherpad antes de la adquisición por Google, seguía teniendo el estigma de ser un lenguaje "académico" por haber sido creado y mantenido por investigadores.
La idea de esta empresa es profesionalizar el lenguaje y dar soporte empresarial que mejore la recepción del mismo. Algo que ya ha funcionado a otros productos open source como Hibernate y Spring.
org.springframework
spring-core
${org.springframework.version}
org.springframework
spring-expression
${org.springframework.version}
org.springframework
spring-beans
${org.springframework.version}
org.springframework
spring-aop
${org.springframework.version}
org.springframework
spring-context
${org.springframework.version}
org.springframework
spring-context-support
${org.springframework.version}
org.springframework
spring-tx
${org.springframework.version}
org.springframework
spring-jdbc
${org.springframework.version}
org.springframework
spring-orm
${org.springframework.version}
org.springframework
spring-oxm
${org.springframework.version}
org.springframework
spring-web
${org.springframework.version}
org.springframework
spring-webmvc
${org.springframework.version}
org.springframework
spring-webmvc-portlet
${org.springframework.version}
org.springframework
spring-test
${org.springframework.version}
test
3.0.4.RELEASE
UTF-8
Todo el mundo Java esta mirando lo que sucede en la JavaOne, para el que no sabe es el evento Java más importante organizado en su momento por Sun ahora por Oracle.
Entre lo más relevante para mi es los cambios y fechas para las nuevas jdks digo jdks que oracle piensa sacar 2 versiones el año que viene una Java 7 el proyecto coin, que ya lo nombramos anteriormente.
http://emanuelpeg.blogspot.com/2009/09/las-novedades-del-jdk-7.html
La otra versión Java 8 proyecto Jigsaw saldrá para fines del año siguiente con Clousures y modularización de la JDK.
Otras novedades es que la OpenJDK esta en un 98% y el 2% que queda son cosas que casi ni se usan. Por lo tanto esta casi a punto caramelo.
Esto es un muy humilde resumen de lo relevante a la JDK. A mi entender es positivo que java siga progresando y que Oracle no deje a Java quedarse en el tiempo.
Lift es otro framework web. El cual corre bajo la plataforma java, pero usa Scala como lenguaje. Si miramos la pagina de lift nos indica que es seguro, productivo y fácil de mantener.
Lift nació con las virtudes de frameworks web más famosos como Rails y Django. Lift tiene la ventaja del lenguaje scala que al ser un lenguaje script y multiparadigma permite desarrollar rápidamente, pero como corre en la plataforma java se puede comunicar con librerías jar ya desarrolladas.
Lift puede empaquetarse como un war y funcionar en cualquier servidor web java como Tomcat o Jetty.
Lift es un proyecto open source distribuido bajo licencia Apache V2.0
Dejo, como siempre, links:
http://lift-example.appspot.com/
Luego de un consejo de un importante lector del blog (Roman) , y varios comentarios de diferentes lectores hemos agregado un formateador de código!!
Un esfuerzo más para que los lectores se sientan más cómodos, el plugin que agregamos se llama SyntaxHighlighter, dejo la pagina y una demostración.
package tutorial;
import com.opensymphony.xwork2.ActionSupport;
public class HelloWorld extends ActionSupport {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String execute() {
name = "Hello, " + name + "!";
return SUCCESS;
}
}