jueves, 28 de enero de 2010

La estrategia de Oracle + Sun para GlassFish

Arun Gupta comenta/resume sobre el futuro de GlassFish en manos de Oracle según fue expuesto el día de ayer.

http://blogs.sun.com/arungupta/entry/glassfish_strategy_by_oracle_sun

Sun ha muerto, larga vida a Sun!

Ahora, las web de java.sun.com ha pasado por el pincelazo rojo/gris:




también http://developers.sun.com/.. la web de netbeans: http://www.netbeans.org tiene el pie "Sponsored by Oracle".

y la web de sun.com ya direcciona a oracle.com

Sun va a ser un buen recuerdo.

miércoles, 27 de enero de 2010

El plan de Oracle sobre el NetBeans

No sé qué pensar respecto a lo que acaba de decir Larry Elison sobre el NetBeans.
A parte de publicitar hasta por los codos sobre el Stack de Oracle, el futuro de NetBeans es la de ser un mero "IDE Ligero" para desarrolladores Java... y el JDeveloper será el software comercial para el desarrollo de aplicaciones Java.. vaya, me imagino que a la gente que desarrolló el jdev no les iba a gustar que se desplace su software por un OpenSource, además que con el jdev solo se desarrolla aplicaciones Oracle, no se desarrolla Java.. el Java en jdev es algo que existe pero no se ve como lo principal.

La misma suerte está corriendo GlassFish: Será solo la referencia de la implementación de Java EE, pero para comercial debería usarse el WebLogic (claro, no por nada lo habrán comprado antes).

Ahora ¿Cuál habrá sido la estrategia de Sun en sacar el GlassFish V3 con NetBeans 6.8 con el soporte respectivo, hacer sus conferencias online y el curso de javapassion.com? ¿Quizás fue su último suspiro para que la comunidad lo recoja (NB y GF) y sea lo único que escape del pisotón de Oracle? ¿GF y NB serán potenciados por la misma comunidad así como hay tantos software existentes como Apache, Maria y Camilion? ¿Que hago con mi libro recién adquirido "Rich Client Programming:Plugging into NetBeans Platform"?

viernes, 22 de enero de 2010

Ahora sí: Sun + Oracle es una realidad

La Comisión de la Unión Europa ha aprobado la adquisición de Sun por parte de Oracle (órale!!!)

Ver las notas:
El 27 de este mes Larry  Ellison dará una conferencia virtual sobre ello: http://blogs.sun.com/theaquarium/entry/oracle_sun_strategy_update_webcast

James Josling manifiesta esta noticia de manera gráfica:



Sun + Oracle =snorcle ?







martes, 19 de enero de 2010

Chamilo - Nueva herramienta de e-learning

Nuevamente tengo un post que no se tiene nada que ver con Java, pero es bueno mencionarlo.

Hace varios años en una oficina de donde trabajo se necesita una herramienta e-learning alterna al conocido Moodle. Así que entre varios encontramos uno que era muy bueno e interesante, llamado Dokeos. Un cierto año lanzaron su versión web para que uno mismo  - a la vez que probaba la versión última - podía crear sus cursos online. Realmente consideré que era un buen software. La última versión disponible es la 1.8.6.1 de agosto de 2009.

Pues bien, me acaba de llegar un correo  de chamilo.org donde se explica que el ".. 90% de sus
desarrolladores activos y una grande comunidad de contribuyentes, ha decidido the abandonar el proyecto.".. Oops!!

"Como seguramente sabrá, Dokeos es una marca registrada con pertenencia personal. Queremos que nuestro desarrollo quede libre de cualquier tipo de control individual y, después de muchas discusiones, no hemos encontrado otra opción que el inicio de un nuevo proyecto open source, basado en la experiencia y el código que hemos ido desarrollando hasta ahora."

(más adelante mencionan)

"Para que Ustedes, usuarios de Dokeos, puedan usar nuestra solución, lo
hemos hecho muy sencillo: Chamilo 1.8.6.2 (publicado hoy mismo) es en
realidad lo que Dokeos 1.8.6.2 hubiera sido si hubiera beneficiado de
nuestro trabajo."

Uhmmm.. parece que desde Agosto 2009 hasta hoy hubieron muchos días de discusión para que se lanzara la versión 1.8.6.2 .

En fin, acabo de probarlo y tiene interesantes mejoras, mejores presentaciones y mejores acabados.

Si desean tener una herramienta e-learning "OpenSource" y Libre, les recomiendo este software: Camilo. Desarrollado en PHP para todo el mundo.

Curso OnLine Groovy y Grails

Siguiendo con los cursos online dictados por Sang Shin, en javapassion.com se dictará el curso "Groovy and Grails Application Development (with Passion!) ".
La clase comienza el 10 de febrero.
con referencia a:
"Groovy and Grails Application Development (with Passion!)"
- Groovy and Grails Training Online Course by Sang Shin (ver en Google Sidewiki)

martes, 5 de enero de 2010

Curso online gratuito de Java EE6 en una semana

Desde el 12 al 20 de enero de este año, se dictará en línea el curso Java EE6 vía JavaPassion.com

http://www.javapassion.com/courses/javaee6codecamp.html


Se utilizará el NetBeans 6.8 y el JDK 1.6 u17

Habrán tareas al final de cada sesión para medir el avance de cada participante. Al finalizar el curso y haber concluido satisfactoriamente las tareas, se emitirán sus respectivos certificados. Ojo: estos certificados no están asociados a ninguna entidad, solo certifican que han llevado el curso en JavaPassion.com

Para participar de dicho evento, deberán registrarse en Google Groups: http://groups.google.com/group/javaee6-codecamp

Anímense, y conocerán el Java EE6 de una manera rápida.

lunes, 4 de enero de 2010

Groovy: Un lenguaje dinámico y ágil para la Plataforma Java

El primer post de este año quisiera dedicarlo a un lenguaje interesante. Este es Groovy: Un lenguaje dinámico como JavaScript, pero no es interpretado; tiene acceso a todo el API de Java, se ejecuta sobre el JVM, y por tanto puede interactuar con nuestras aplicaciones Java. Podemos tener algunas clases en Groovy y otras en Java. Más información lo puedes encontrar en Wikipedia.

Lo bueno de este lenguaje es que - a gran diferencia de Java - no necesita de una clase "Main" para ejecutar la aplicación. Es como JavaFX, PHP, o como JavaScript, que ejecuta las instrucciones de arriba a medida que se van declarando. Por tanto, un "HolaTodos" puede ser así

package demogroovy

public class Prueba{
    public static void main(String[] a){
        System.out.println("Hola a todos");
    }
}

o así:

package demogroovy
println("Hola a todos")

Ambos son válidos en Groovy. Notar que los punto-y-coma (;) son opcionales.

NetBeans nos permite crear clases Groovy en cualquier proyecto Java. Por tanto, necesitamos crear un proyecto Java cualquiera (web o desktop) y luego crear las clases Groovy.


 No voy hacer un tutorial de Groovy ya que hay uno bueno aquí: http://groovy.org.es/ en español, o si deseas la fuente en inglés, aquí está la web oficial: http://groovy.codehaus.org/. Solo voy a resaltar cosas muy interesantes de este lenguaje. Por ejemplo, el acceso a base de datos:

Como está hecho en Java, entonces debe utilizar las bibliotecas de java. Si deseo acceder a la base de datos Apache Derby, debo utilizar sus drivers; si uso MySQL, debo usar su respectivo driver, y así.


Un ejemplo que adapto de "Tutorial 6 - Groovy SQL" es este:

package demogroovy

import groovy.sql.Sql;

sql=Sql.newInstance("jdbc:derby://localhost:1527/sample",
        "app","app",
        "org.apache.derby.jdbc.ClientDriver")
println "ID Prod.\tDescripción"
sql.eachRow("select * from product",
    {println "${it.product_id}\t${it.description} "})

fila=sql.firstRow("select customer_id,name,email from customer")
println "Cliente ${fila.customer_id}:${fila.name} -> ${fila.email}"

Aquí estoy usando la base de datos "sample" que viene como ejemplo en NetBeans.


La simpleza del lenguaje permite ahorrar tiempo en programación. Por ejemplo, podemos tener un JavaBean en Java:

package demogroovy.beans;

public class Cliente {

    private int id;
    private String nombre;
    private String correo;

    public Cliente() {
    }

    public String getCorreo() {
        return correo;
    }

    public void setCorreo(String correo) {
        this.correo = correo;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }
}

Luego, podemos tener un DAO hecho en Groovy:

package demogroovy.dao
import groovy.sql.Sql;
import demogroovy.beans.Cliente

class ClientesDao {
    private def sql;
    ClientesDao(){
        sql=Sql.newInstance("jdbc:derby://localhost:1527/sample", //URL del JDBC
        "app","app", //usuario y contraseña
        "org.apache.derby.jdbc.ClientDriver") //driver del JDBC
    }

    def getClientes(){
        def lista=[];
/*notar las comillas de los alias de cada campo. Esto nos asegura que cada campo
será asociado a cada propiedad del bean Cliente.
*/
        sql.eachRow("SELECT customer_id as \"id\",name as \"nombre\",email as \"correo\" FROM customer"){
             Cliente c=new Cliente(it.toRowResult()) //se instancia y pone las propiedades segun corresponda de acuerdo al metodo toRowResult()
            lista << c //agrega a la lista
        }
        return lista;
    }

    def updateCliente(Cliente c){
        sql.executeUpdate("UPDATE customer SET name=?, email=? WHERE customer_id=?",[c.nombre,c.correo,c.id])
    }

}
Notemos que para acceder a las propiedades del bean no necesitamos usar los métodos set/get.. solo accedemos a la propiedad misma.

Y para acceder al dao, lo hacemos como si fuera un objeto java:

List<Cliente> clientes= (List) dao.getClientes();

Es un ahorro de código, de esfuerzo y de tinta si se desea imprimir los códigos fuentes (¿aún se hace eso? Por el bien de la naturaleza espero que ya no).

Aquí he colgado un proyecto de cómo usar un JFrame + JTable para acceder a una base de datos, usando una clase Groovy para el DAO.
http://diesil-java.googlecode.com/files/DemoGroovy.tar.gz
Utiliza el Apache Derby, por lo que primero debemos iniciar el servidor. En su defecto, se puede utilizar otra base de datos, y hacer los cambios respectivos.

viernes, 1 de enero de 2010

new Año2010().start();

Este año que pasó ha tenido cambios. Recordemos un poco:
  1. Se lanzó las versiones de NetBeans 6.5.1, 6.7, 6.7.1 y 6.8
  2. Oracle compró Sun.
  3. GlassFish v3 salió a la luz, a la par con la especificación de Java EE6

...y en lo personal,
  1. Pude concluir con mi licenciatura en Ingeniería de Sistemas (ha sido de Dios que mientras llevaba la licenciatura pude seguir trabajando, desarrollar un par de proyectos adicionales y dictar cursos)
  2. Mi esposa me compró mi dominio apuntesdejava.com :)
  3. Dicté más cursos en bitnetperu.com
  4. Participé en el JavaDay de la UNI. (Que por cierto es el 2do que hice en toda mi  carrera profesional. Mi anterior participación fue en Lacfree 2003. Espero participar más en este año) Muy buena organización y mis sinceras felicitaciones a JocLuis.

Espero que este año pueda cumplir con algunos tutoriales más; quiero dictar más cursos sobre la tecnología Java, si es posible organizar una conferencia virtual; quiero de una vez certificarme en Java en este verano; tengo un par de propuestas de proyectos muy interesantes.. espero que se concreten; y más .. todo esto, solo si Dios quiere.

En este año que comienza, que se cumplan vuestros proyectos (pero primero, definid los objetivos.. sino, no sabréis cuándo se ha cumplido el proyecto)... y os dejo un verso que debiera ser la base para la vida:

Fíate de Jehová de todo tu corazón, y no te apoyes en tu propia prudencia. Reconócelo en todos tus caminos,  y él enderezará tus veredas.

Proverbios 3: 5-6

Feliz Año 2010