Blog de Programación y Diseño Web

BPMN

Escrito en General by Andres on the Octubre 30th, 2009

BizAgi

Estoy aprendiendo de una vez por todas a modelar en BPMN, asi que quiero compartir una gran herramienta llamada BizAgi para modelar. Tiene un versión free y otra pagada.

En la parte superior derecha de la aplicación, no olviden colocar el mode “Extended”, esto es para tener mas elementos en el panel  (gracias Edgard por el dato).

Video para entender SCRUM en menos de 10 minutos

Escrito en Scrum by Andres on the Septiembre 2nd, 2009

Este es mi primer post (espero que el primero de muchos) relacionado con metodologías ágiles. Les dejo un video bastante bueno para entender en que consiste SCRUM.

YouTube Preview Image

Crear Procedimiento Almacenado en DB2 con parametros de salida y resultset, luego consumirlo desde Java.

Escrito en General by Andres on the Agosto 31st, 2009

No soy un partidario de utilizar Procedimientos Almacenados (Stored Procedures), pero cuando se trabaja con empresas externas, aunque duela, hay que aprender.

Actualmente en el proyecto que estoy trabajando debia crear un procedimiento almacenado “dummy” en DB2 que retornara un parametro de salida y adicionalmente un resultset, esto me pareció bastante curioso ya que los SP no estan concebidos para eso. De todas maneras esto se puede hacer y leyendo la documentación de IBM DB2 encontré la respuesta.

Crear el procedimiento

Para poder retornar un resultset, primero debemos tener una tabla y en este caso le llamaremos “MITABLA”. Luego crearemos un procedimiento almacenado que devuelva un parametro de salida y el resultset.

El código del procedimiento

Aquí la clave es declarar el cursor con “with return”

CREATE PROCEDURE "MIESQUEMA".SP_CON_RESULTSET(
    OUT CODIGO varchar(20))
  LANGUAGE SQL
  DYNAMIC RESULT SETS 1
BEGIN
    --DECLARAMOS EL CURSOR PARA EL RESULTSET
    DECLARE C1 CURSOR WITH RETURN FOR SELECT * FROM MITABLA;
    --SETEAMOS EL PARAMETRO DE SALIDA
    SET CODIGO = '1313';
    OPEN C1;
    RETURN;
END

Consumir SP desde Java

Hay dos formas de obtener el resultset, la primera es utilizar el método executeQuery() que retorna el resultset y la segunda es la mencionada a continuación, utilizar execute() y luego getResultSet()

public void callSP(){
    ResultSet result = null;
    CallableStatement cstmt = null;
    try {
        String procName = "MIESQUEMA.SP_CON_RESULTSET";
        //concatenamos
        String sql_ = "CALL " + procName + "(?)";
        cstmt = con.prepareCall(sql_);
        //Registramos el parametro de salida y el tipo de dato
        cstmt.registerOutParameter( 1, Types.CHAR);
        //Realizando la llamada
        cstmt.execute();
        //Obtenemos el parametro de salida
        String codigoSalida = cstmt.getString(1);
        //Obtenemos el resultset
        result = (ResultSet) cstmt.getResultSet();

        while (result.next()) {
            //Aquí iteramos sobre el resultset
        }
    } catch (SQLException e) {
    //En caso de un excepción
    }
}

Wordpress Syntax Highlighter pérdida de los tabs o indentación (Solución)

Escrito en wordpress by Andres on the Agosto 31st, 2009

Hay un problema bastante molestoso al pegar código de muestra en wodpress y es la perdida de las tabulaciones al copiar y pegar código a wordpress.

La solución

Es simple,  basta con reemplazar cada tab (tabulación) por 4 espacios, estéticamente quedará igual y no se perderá al pegar a wordpress.

Si utilizas eclipse puedes transformar tu tab a 4 espacios de la siguiente manera:

Preferences>Java>formatter>Edit

En tab policy dejamos solo en “Spaces Only” y en indent size en “4″

Empezar con Google App Engine (JAVA)

Escrito en Java by Andres on the Agosto 25th, 2009

Mucha gente huye de Java y no precisamente por la inherente dificultad de aprender este lenguaje, la mayoría lo hace simplemente porque les complica configurar un ambiente de desarrollo y ademas no existen muchas alternativas de alojamiento como en PHP, pero todo esto puede cambiar si aprendemos a utilizar Google App Engine.

google_appengine[1]_2
Google App Engine es un servicio de Google bajo el concepto de cloud computing en el cual no nos preocupamos del servidor de aplicaciones ni tampoco de donde alojaremos nuestra data. Lo único que necesitamos para empezar es bajar el SDK, escribir código, compilar y luego realizar el anhelado deploy.

(más…)

Utilizar getJSON(jQuery) con Java(Struts) crossdomain.

Escrito en Json con Java by Andres on the Agosto 24th, 2009

getJSON

Hace poco en un proyecto tuve que integrar información entre un html y un servlet (struts), tenia que ser con AJAX mediante un html generado con un javascript incrustado en cualquier dominio, claramente no es posible utilizar AJAX si el html esta en un dominio distinto al servidor que envía la respuesta, pero se puede hacer algo similiar.

¿Que hacer?
Existe una libreria llamada JSONP que permite incrustar archivos javascript despues de haber cargado la página y justamente es lo que utiliza la función $.getJSON() de jQuery.

¿Como generar un JSON “leible” por $.getJSON()?

Primero que nada, para consumir un JSON remoto debemos enviar el parametro jsoncallback y con valor “?”, despues en struts lo concatenamos a la respuesta que generemos. Es importante hacer esto ya que de otra forma no funcionará.

Por ejemplo si el JSON generado es:


{"nombre":"andres","edad":24}

La respuesta en struts debe quedar así.


?({"nombre":"andres","edad":24})

Por lo tanto, desde el lado del cliente debemos llamar de la siguiente manera al action de struts.

$.getJSON("http://10.10.20.101:8080/proyecto/controller.do?action=obtenerJson&jsoncallback=?",
    function(data){}
    //Imprimimos nombre
    alert(data.nombre);
);

Del lado del servidor generamos así la respuesta

public ActionForward obtenerJson(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {

        //Guardamos en una variable el JSON
        String json = "{\"nombre\":\"Andres\",\"edad\":\"24\"}";

        //Capturamos el parametro
        String callback = request.getParameter("jsoncallback");

        //Concatenamos la respuesta y dejamos entre parentesis la respuesta
        String jsonOutput = callback + "(" + json + ")";

        //Enviamos al jsp
        request.setAttribute("variable",jsonOutput);

        return mapping.findForward(forward);
    }

Servicios PSD a HTML / XHTML

Escrito en General by Andres on the Junio 2nd, 2009
PSD to XHTML

Aprovecho de poner este aviso, yo con un amigo realizamos maquetas PSD a HTML, es decir mediante una gráfica realizada en photoshop la transformarmos en un sitio web HTML/XHTML strict o transitional validado con los estandares W3C, totalmente crossbrowser (se ve igual en todos los navegadores mas utilizados).

Cualquier consulta escribir un mail a

ponttdotcom [@] gmail . com

Se buscan Web Developers (Desarrolladores Web) para trabajo.

Escrito en General by Andres on the Mayo 13th, 2009

En el lugar donde trabajo estan buscando Web Developers con las siguientes caracteristicas:

Manejo semántico del XHTML – (Maquetación sin tablas). 
Conocimientos de Javascript (Libreria de preferencia jQuery)
CSS

El flujo de trabajo es el siguiente, mediante un PSD (Imagen compuesta hecha en Photoshop) se cortan las imagenes, fondos, íconos y se maqueta una página web.

Obviamente acá piden expertos pero siendo realista tengo muy claro que nadie nace sabiendo por lo que realmente interesa son las ganas de aprender.

Si estan interesados envien un e-mail a

ponttdotcom [arroba] gmail punto com

Ah, se me olvidaba.. el lugar físico del trabajo es en Santiago de Chile comuna Providencia.

Como JSON ayuda a la separación efectiva de capas y/o roles en J2EE. Parte II

Escrito en Json con Java by Andres on the Marzo 16th, 2009

En el post anterior, prometí argumentar como solucionar el “punto ciego” entre el area de programación y web con JSON.

Antes que nada, quiero mencionar 2 casos de exito de uso cotidiano.

1.- GMAIL:
Este es mi ejemplo favorito de como la precarga de objetos JSON ayuda al rendimiento, Gmail carga todos los mails, labels, carpetas con JSON (arreglos javascript) y los renderea obviamente con javascript.
2.-Netvibes:

Este es un caso extremo, practicamente todo el sitio se renderea con javascript utilizando objetos JSON, si no me creen solo vean el código fuente,  casi nada de XHTML.

(más…)

Como JSON ayuda a la separación efectiva de capas y/o roles en J2EE. Parte I

Escrito en Json con Java by Andres on the Marzo 16th, 2009

Mis comienzos en la informática parten con el mundo WEB, esto debido a una necesidad imperante de ganar dinero (pagarme la universidad), me fue mucho mas sencillo hacer páginas web. Por lo que gané bastante experiencia en el desarrollo de front-end, aprendiendo la diferencia entre XHTML Transitional y Strict o HTML, desarrollo de sitios lidiando con el  infame Internet Explorer 6.

(más…)

Switch to our mobile site