Curso para la certificación Java SE 8 Programmer I (1Z0-808)

0 comentarios

Desempolvando este blog despúés de muchos años!..

Hola a todos,

He digitalizado este curso que he dictado muchas veces en presencial, y ahora lo e liberado para los desarrolladores interesados en comprarlo:

En ese link pueden ver el video introductorio al curso.

Algunas preguntas frecuentes que me hacen:

¿Cúales son las certificaciones vigentes de Java SE?
- Existen 5: 
Java SE 8 Programmer I (1Z0-808),  Es la única de todas que la puedes dar en español:

Java SE 8 Programmer II (1Z0-809), El prerequisito de esta es que apruebes la I.

Java SE 11 Programmer I (1Z0-815), No hay prerequisito al igual que la 8 I.

Java SE 11 Programmer II (1Z0-816), No hay prerequisito al igual que la 8 I.

Upgrade OCP to Java SE 11 Developer (1Z0-817), Esta certificación es para quienes ya tienen una certificación OCP Java 6, 7 u 8. Equivale a la Java SE 11 Programmer II

No hay certificación de otras versiones.

¿En que idiomas puede rendir el examen?
La Java SE 8 Programmer I la puedes dar en español, el resto solo en inglés.

¿Puedo dar el exámen desde casa?
Sí, ahora puedes, pero colocando una webcam y otros requisitos más que están en la página.

 




Full Day: ExtJS, Spring y Hibernate

0 comentarios

Estamos lanzando un nuevo full day para el 23 de marzo del presente año. Más información aquí: lima-ti.com/capacitacion/extjs/fullday_extjs_spring_hibernate.pdf Saludos y buenas vibras para todos.

Full Day Ext JS, Spring y Hibernate

0 comentarios

Mi empresa está aperturando un full day de Ext JS. Como parte importante de toda aplicación, necesitamos frameworks del lado del servidor para poder hacer una aplicación seria. Por tal motivo en este full day se estudiará Spring y Hibernate también.

Lo que aprenderás:
* Como aplicarlo en sistemas reales. Existen muchos tutoriales pero muy pocos te enseñan como preparar la arquitectura de tu aplicación y las consideraciones que debes tener cuando haces un sistema basado en extjs
* Buenas prácticas en el desarrollo. Para que tu código sea óptimo y no tengas dolores de cabeza cuando no sabes donde está cada cosa.
* Como integrar sus componentes. Muchos sabemos hacer una grilla o un formulario, pero a la hora de integrarlos ambos o con más componentes es un martirio.
* Spring MVC y Hibernate. Necesitamos de frameworks en el lado del servidor que nos permitan desarrollar aplicaciones.
* Si tu lenguaje de desarrollo no es java, no te preocupes Ext JS está pensado para trabajar con cualquier tecnología del lado del servidor(php, jsp, servlets, asp).

Fecha: Sábado 15 de diciembre 9am - 6:00pm

Lo brinda: Lima TI SAC

Instructor: Mayer Horna

Dejanos tus datos para contactarte

Syllabus y Costo








Aprende uno de los mejores frameworks JavaScript para el desarrollo de Aplicaciones RIA.

Saludos

Ext JS - Sencha Touch

2 comentarios

En este post hablaré sobre Sencha Touch, aun tengo pendiente postear sobre otros componentes de ExtJS como Form, Tabs, etc. He dejado un poco abandonado mi blog, así que era momento de este post.

Hace un par de años se creó una nueva organización llamada Sencha, dejando de lado el nombre “Ext JS” con el propósito de impulsar no solo extjs sino además otros productos como Sencha Touch, Ext GWT, Ext Designer, Sencha Animator y Ext Core.

Sencha Touch es un framework javascript construido para desarrollar aplicaciones web móviles, está totalmente basado en HTML5, CSS3 y Javascript. En teoría cualquier smarthphone que tenga instalado un navegador que soporte estos estándares podría mostrar una aplicación hecha con sencha Touch, aunque solo certifican su uso sobre iPhone, Android y BlackBerry.

Aclarando algunas cosas: 
1) Sencha Touch es un framework javascript, al igual que ExtJS, por tanto su ámbito es un browser, la diferencia es que tiene componentes más ligeros y pequeños para que se puedan visualizar en un dispositivo móvil.

2) Al ser prácticamente una aplicación web, se comporta como tal: va a existir en un servidor web el cual centraliza los fuentes, de tal manera que cualquier actualización sobre la aplicaicón se hace sobre el servidor y cada dispositivo al acceder a la página verá el cambio, a diferencia de una aplicación nativa que si requiere un proceso de actualización iniciada en el mismo dispositivo.

3) Desarrollar aplicaciones bajo este tipo de plataformas está de moda, por ejemplo Jquery Mobile sigue el mismo concepto. Ahora los smartphones son mas accesibles económicamente.

4) Si te estás preguntando: “¿Entonces estas aplicaciones solo funcionan si el servidor web está activo o si mi smarthpone tiene conexión a internet?”. Todo dependerá de cómo desarrolles tu aplicación. Puedes crear una interfaz de pedidos y todo almacenarlo en el LocalStorage del Browser y luego hacer un proceso de sincronización que cargue todos los pedidos a tu servidor central. Ahora con HTML5 hasta sentencias SQL puedes hacer. 

La instalación: 
1)
Descarga los fuentes de http://www.sencha.com/products/touch/download/

2)
Crea una carpeta llamada demo_senchatouch en su interior crea un HTML llamado index.html El cuerpo del HTML que sea algo simple como:

 
<!DOCTYPE html> 
<html> 
<head> 
</head> 
<body> 
</body> 
</html>
Un documento en html 5 se reconoce por el al iniciar.
Más info sobre HTML5:
http://es.wikipedia.org/wiki/HTML5 http://www.manning.com/crowther/ http://www.manning.com/crowther2/

3)
Dentro de la carpeta demo_senchatouch crea otra llamada touch, y dentro de esta carpeta copiarás el archivo sencha-touch-all.js y la carpeta resources que se encuentran en los fuentes descargados de Sencha Touch. La instalación es muy similar a la de Ext JS

4)
Dentro del elemento head añade las siguientes líneas:
 

Estos dos archivos son los necesarios para poder empezar.


5)
Dentro del head creamos el elemento y colocamos lo siguiente:
Ext.application({
    name: 'Sencha',

    launch: function() {
        Ext.create('Ext.Panel', {
            fullscreen: true,
            html: 'Hola Mundo'
        });
    }
});
launch es como el Ext.onReady(…) se ejecuta una vez que el html ha sido cargado completamente.

Ejecuta el index.html, puedes ejecutarlo con google chrome que soporta HTML5, o descargarte algún emulador o entra a estos en la web:
http://www.testiphone.com/
http://tmobile.modeaondemand.com/htc/g1

El resultado:
6)
Formulario con Sencha Touch. Para hacer un formulario formulario no hace falta más que remplazar tu Hola Mundo por Un FormPanel. En Sencha Touch la creación de componentes es igual que en Ext JS, y en su mayoría los nombres de los componentes coinciden. Por Ejemplo, el siguiente código crea un formulario con una sola caja de texto y un botón "Verificar":
 Ext.application({
    name: 'Sencha',
    launch: function() {
        Ext.create('Ext.form.Panel', {
            fullscreen: true,
                    title: 'Cliente',
                    iconCls: 'customer',
                    xtype: 'formpanel',
                    url: 'ClienteServlet',
                    layout: 'vbox',

                    items: [
                        {
                            xtype: 'fieldset',
                            title: 'Datos',
                            
                            items: [
                                {
                                    xtype: 'textfield',
                                    label: 'Nombre',
                                    name: 'name'
                                }

                            ]
                        },
                        {
                            xtype: 'button',
                            text: 'Verificar',
                            ui: 'confirm',
                            handler: function() {
                                this.up('formpanel').submit({
                                 success:function(form, action){
           var jsonResponse = action.result;
           Ext.Msg.alert('Info', 'La información ha sido enviada');
                                 },
                                 failure:function(form, action){
                                  
                                 }
                                });
                            }
                        }
                    ]
        });
    }
});
El resultado del código anterior:
Observen la propiedad url: 'ClienteServlet' , está apuntando a un Servlet, con esto se comprueba que acá no hay magia, el submit va al servidor web y es gestionado por un Servlet .

Si se puede colocar un Servlet entonces se puede colocar cualquier recurso del servidor: .php, .asp, .jsp, etc.

Por último si tienes una aplicación con Spring MVC, no tienes que cambiar nada en el servidor, solo consumes tus controllers ya programados. Lo que cambia es tu interfaz, tendrás una interfaz para un movil y otra para tu aplicación web que consumen un mismo controller de spring.

El api para cualquier consulta:
http://docs.sencha.com/touch/2-0/#!/api 

Nos vemos pronto.

Ext JS 4 - Inicio 14 abril 2012

0 comentarios

Mi empresa está aperturando nuevamente el curso de Ext JS.

Lo que aprenderás:
* Como aplicarlo en sistemas reales. Existen muchos tutoriales pero muy pocos te enseñan como preparar la arquitectura de tu aplicación y las consideraciones que debes tener cuando haces un sistema basado en extjs
* Buenas prácticas en el desarrollo. Para que tu código sea óptimo y no tengas dolores de cabeza cuando no sabes donde está cada cosa.
* Como integrar sus componentes. Muchos sabemos hacer una grilla o un formulario, pero a la hora de integrarlos ambos o con más componentes es un martirio.
* Spring MVC y Hibernate. También hay horas dedicadas a estas materias, necesitamos de frameworks en el lado del servidor que nos permitan desarrollar aplicaciones.
* Si tu lenguaje de desarrollo no es java, no te preocupes Ext JS está pensado para trabajar con cualquier tecnología del lado del servidor(php, jsp, servlets, asp).

Inicio: Sábado 14 de abril 9am - 1:30pm

Lo brinda: Lima TI SAC

Instructor: Mayer Horna

Dejanos tus datos para contactarte

Syllabus y Costo










Aprende uno de los mejores frameworks JavaScript para el desarrollo de Aplicaciones RIA.

PD: He observado que mis últimos post son referentes al inicio de este curso.... postearé algo esta semana.

Saludos

Ext JS - Curso Verano - Convocatoria

0 comentarios

Estoy aperturando nuevo grupo Ext JS.

Lo que aprenderás:
* Como aplicarlo en sistemas reales. Existen muchos tutoriales pero muy pocos te enseñan como preparar la arquitectura de tu aplicación y las consideraciones que debes tener cuando haces un sistema basado en extjs
* Buenas prácticas en el desarrollo. Para que tu código sea óptimo y no tengas dolores de cabeza cuando no sabes donde está cada cosa.
* Como integrar sus componentes. Muchos sabemos hacer una grilla o un formulario, pero a la hora de integrarlos ambos o con más componentes es un martirio.
* Spring MVC y Hibernate. También hay horas dedicadas a estas materias, necesitamos de frameworks en el lado del servidor que nos permitan desarrollar aplicaciones.

Inicio: Sábado 28 de enero ó Sábado 04 de febrero (fechas tentativas). 9am - 1:30pm

Lo brinda: Lima TI SAC

Instructor: Mayer Horna

Dejanos tus datos para contactarte

Syllabus y Costo










Aprende uno de los mejores frameworks JavaScript para el desarrollo de Aplicaciones RIA.

Ext JS - Taller - Convocatoria

12 comentarios

¿Quieres aprender uno de los mejores frameworks JavaScript para el desarrollo de Aplicaciones RIA?, pues entonces este es tu primer paso.

Lo que aprenderás:
* Como aplicarlo en sistemas reales. Existen muchos tutoriales pero muy pocos te enseñan como preparar la arquitectura de tu aplicación y las consideraciones que debes tener cuando haces un sistema basado en extjs
* Buenas prácticas en el desarrollo. Para que tu código sea óptimo y no tengas dolores de cabeza cuando no sabes donde está cada cosa.
* Como integrar sus componentes. Muchos sabemos hacer una grilla o un formulario, pero a la hora de integrarlos ambos o con más componentes es un martirio.
* Spring MVC y Hibernate. También hay horas dedicadas a estas materias, necesitamos de frameworks en el lado del servidor que nos permitan desarrollar aplicaciones.

Sobre el taller:

Inicio: Sábado 26 de noviembre

Lo brinda: Lima TI SAC

Instructor: Mayer Horna

Dejanos tus datos para contactarte

Descarga el Syllabus










Aprovecha la promoción de fin de año.

Ext JS - Componentes GUI - GridPanel - Parte 1

4 comentarios

En el anterior post mostré como entablar una comunicación con el servidor web mediante Ext.Ajax.request().
Con esto ya puedes hacer mucho, por ejemplo recolectar la información de un formulario y enviar esta data como parámetros en el Ext.Ajax.request() para que luego el Servlet pueda grabarlos en base de datos y con esto tendrías un procesamiento de formulario por AJAX sin que se esté refrescando la página después de guardar. Pero para envió de datos de formulario ya veremos más adelante el uso de los FormPanel de Extjs. Vamos poco a poco.

A partir de este post ya comenzaré a mostrar el uso de los principales componentes de ExtJS. Componentes como GridPanel, FormPanel, TreePanel, etc.

Puedes ver todos los ejemplos de extjs en el siguiente link: http://dev.sencha.com/deploy/ext-4.0.0/examples/

En este post, hablaré sobre el GridPanel, el cual es un componente que te permite mostrar información como una tabla, así como lo hace el JTable de Swing.

Un ejemplo del resultado de este componente puedes verlo aquí: http://dev.sencha.com/deploy/ext-4.0.0/examples/grid/array-grid.html

Ahora, para crear un GridPanel, primero debes de conocer los siguiente:

La data que es mostrada en el GridPanel proviene del servidor y es almacenada en un objeto store; un objeto store puede ser un JsonStore el cual espera información en formato JSON proveniente del servidor. Ahora pasamos a crear los códigos necesarios para que funcione nuestro GridPanel:

1) Creamos el JsonStore:


var clienteData = new Ext.data.JsonStore({
autoDestroy: true,
proxy: {
type: 'ajax',
url: 'ClienteServlet',
reader: {
type: 'json',
root: 'data'
}
},
autoLoad:true,
fields: [
{name:'cliente_id', type: 'int'},
{name:'tipoDeCliente.name', type:'string', mapping: 'tipoDeCliente.nombre'},
{name:'codigo', type:'string'},
{name:'nombre', type:'string'},
{name:'descuento', type:'float'},
{name:'activo', type:'int'},
{name:'creado'},
{name:'observacion', type:'string'}
]

});


El JsonStore debe saber:
a) La url de donde obtendrá los datos.
b) Los campos(fields) que componen el store. Para que así sepa donde colocar la información que viene del servidor.

2) Creamos el Servlet de Respuesta:


public class ClienteServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/plain");
PrintWriter out = response.getWriter();
List clientes = Cliente.getDummyClientes();
JSONArray array = new JSONArray();
array.addAll(clientes);
JSONObject jsonObject = new JSONObject();
jsonObject.put("data", array);
out.print(jsonObject);
out.close();
}
}

El objetivo principal acá es enviar información en formato JSON al cliente(browser) para que el objeto JSONStore se cargue de datos. Es por eso que se utiliza las clases JSONArray y JSONObject, las cuales se encuentran en la librería json-lib.jar.

El jar y sus dependencias pueden descargarlos desde este link:
http://lima-ti.com/public/mayer/blogger/demo03_ExtJS_Componentes_GridPanel/json_lib_and_dependencies.zip

Para mayor información, La página de json-lib es:
http://json-lib.sourceforge.net/

Este conjunto de nuevas clases te permiten crear objetos JSON a partir de un JavaBean o un Arreglo de JSON a partir de una collección.

Hasta aquí se ha creado el JSONStore y el Servlet que envía los datos para que el store se cargue. Pero todo esto no es visual, asi que es momento de crear el objeto GridPanel para poder presentar los datos.

3) Creamos el GridPanel:

var clienteGrid = new Ext.grid.GridPanel({
title: 'Lista de Clientes',
store: clienteData,
columns: [
{ header: 'Codigo', dataIndex: 'codigo' },
{ header: 'Nombre', dataIndex: 'nombre' },
{ header: 'Tipo de Cliente', dataIndex: 'tipoDeCliente.name' },
{ header: 'Descuento', dataIndex: 'descuento', align:'right'},
{ header: 'Activo', dataIndex: 'activo', renderer:siONoRenderer},
{ header: 'Creado', dataIndex: 'creado', renderer:dateRenderer}
],
height: 200,
width: 650,
renderTo: Ext.getBody()
});


Las dos últimas columnas tienen la propiedad renderer, lo que indica que al momento de renderizar el valor(justo antes de ser mostrado) se ejecutará estas funciones que se indican, con el fin de alterar o mostrar el mismo valor.

4) Creamos las funciones renderers:

function dateRenderer(jsonDate){
var dt = Ext.Date.parse(jsonDate.date+'/'+jsonDate.month+'/'+(jsonDate.year>100?(jsonDate.year-100):jsonDate.year), "d/n/y");
return (Ext.util.Format.date(dt,"d/m/Y"));
}
function siONoRenderer(value){
return value == 1 ? "Si" : "No";
}



* Las clases java como Cliente, TipoDeCliente y ClienteServlet pueden descargarlo desde aquí:
http://lima-ti.com/public/mayer/blogger/demo03_ExtJS_Componentes_GridPanel/clases_java.rar

Une los códigos de los puntos 1), 3) y 4) dentro de un Ext.onReady(...) como en la demo anterior y ejecútalo. El resultado es el siguiente:


He partido este tuto en dos partes. En el siguiente post hablaré sobre la paginación y el ordenamiento de columnas sobre el GridPanel.

Cualquier duda respecto al código pueden comentarlo en el post.

Ext JS – Comunicación con el Servidor

2 comentarios

En el post anterior mostré como empezar con Ext JS. Se creó un MessageBox que mostraba un "Hola Mundo". Pero todo ocurría en el cliente(browser). ¿Qué pasa si deseas que ese mensaje venga desde el servidor web?, o ¿Si deseas enviar datos al servidor web para que este los grabe en una base de datos y no esté refrescando la página web?. Bueno este tutorial te enseña como dar el primer paso, en un posterior post eneseñaré como tulizar los principales componentes de extjs como los formularios y grids.

Paso 0:
Ahora si, es momento que utilices una tecnología del lado del servidor como PHP, ASP o JSP y servlets. Como en mi sangre fluye Java, pues los ejemplos serán con JSP y Servlets.
Ten listo un proyecto web en eclipse o netbeans o en cualquier otro IDE que te permita trabajar.

Paso 1:

En el cliente:
El siguiente HTML muestra un botón que al dar click mostrará un MessageBox como en el ejemplo del post anterior, pero ahora el mensaje que mostrará será un texto enviado desde el servidor web:


<html>
<head>
<link rel="stylesheet" type="text/css" href="extjs/resources/css/ext-all.css"/>
<script type="text/javascript" src="extjs/ext-all.js"></script>
</head>
<body style="padding:10px;">
<button onClick="javascript:obtenerHoraDelServidor();">Obtener Hora Del Servidor</button>
<script type="text/javascript">
//Código ExtJS
</script>
</body>
</html>


Paso 2:
Ahora añade el siguiente código dentro de <script>...</script>

function obtenerHoraDelServidor(){
Ext.Ajax.request({
url:'HoraServidorServlet',
method:'GET',
params:{
accion:'obtenerHora'
},
success: function(response, opts){
var mensaje = response.responseText;
Ext.MessageBox.show({
title:'Hora del servidor',
msg:mensaje,
buttons:Ext.MessageBox.OK,
icon:Ext.MessageBox.INFO
});
},
failure: function(response, opts){
//...
}
});
}


La clase Ext.Ajax permite entablar una comunicación con el servidor, su método request indica la url que gestionará la petición en el servidor, los parámetros a enviar y el procesamiento de la respuesta satisfactoria del servidor(función success) o el procesamiento de una respuesta de error del servidor(función failure).

Paso 3:
En el servidor:
En el paso 2 indicamos una url de servidor. Entonces es momento de crear el servlet que gestionará la petción del cliente(browser):


public class HoraServidorServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss (dd/MM/yyyy)");
String fechaConFormato = sdf.format(new Date());
out.print("Hora del Servidor: " + fechaConFormato );
out.close();
}
}


Observen que el servlet gestiona una petición por método GET(fué indicado en el Ext.Ajax.request()).

Luego de que tienes listo el servlet, ejecuta tu aplicación web y desde index.html o como llamaste a tu html y da click en el botón. El resultado debe ser como se muestra en la siguiente figura:

Ext JS - Instalación

1 comentarios

Antes de empezar, expreso mis saludos a todos mis amigos que son padres, hoy es su día y espero estén celebrando como se debe. En especial un saludo a los papás sistémicos e informáticos que conozco y que le hechan duro a la chamba para que su familia no le falte nada.

Ahora sí, manos a la obra:
En el presente mini tutorial mostraré como empezar a utilizar Ext JS en una página web simple. En un posterior post enseñaré como interactuar con el servidor web.

Para poder empezar a utilizar Ext JS basta con inlcuir 2 archivos(un CSS y un javascript) en un página HTML. Y menciono HTML para desligarlo de cualquier tecnología del lado del servidor(PHP, Servlet o JSP) ya que como mencioné en el post anterior Ext JS es un framework JavaScript por tanto se ejecuta en el cliente(browser). Disculpen si hago incapié en esto pero me interesa que todo vaya quedando claro.

Ahora sí, los pasos para hacer el "Hola Mundo" fundamental y el que servirá como punto de partida para aprender Ext JS.

Paso 0:
* Descarga Ext JS 4.0 del siguiente link:
http://www.sencha.com/products/extjs/download/ext-js-4.0.2a/213
* Crea una carpeta llamada demo01 en su interior crea un HTML llamado index.html
El cuerpo del HTML que sea algo simple como:


<html>
<head></head>
<body></body>
</html>


No necesitamos nada más para empezar.
* Dentro de la carpeta demo01 crea otra llamada extjs, y dentro de esta carpeta copiarás el archivo ext-all.js y la carpeta resources que se encuentran en los fuentes descargados de Ext JS 4.0.

Paso 1:
Dentro del elemento <head>...<head> añade las siguientes líneas:

<link rel="stylesheet" type="text/css" href="extjs/resources/css/ext-all.css"/>
<script type="text/javascript" src="extjs/ext-all.js"></script>

Nota: En versiones anteriores a la 4 era necesario incluir un archivo adicional (el adapter) pero ahora ya no lo es.

Paso 2:
Dentro del elemento <body> ... </body> añade las siguientes líneas:

<script type="text/javascript">
Ext.onReady(function(){
Ext.MessageBox.show({
title:'Info',
msg:'Hola Mundo',
buttons:Ext.MessageBox.OK,
icon:Ext.MessageBox.INFO
});
});
</script>


Paso 3:
Ejecuta index.html y observa el resultado.
Verás el mensaje "Hola Mundo" dentro de una ventana flotante.

El MessageBox es solo uno de los muchos componentes que tiene Ext JS.
Siempre que tengas dudas de la sintaxis o requieres información
de qué parámetros utilizar héchale un vistazo al API, que es muy bueno:
http://dev.sencha.com/deploy/dev/docs/

Ahí puedes consultar la clase Ext y su método onReady, al igual que la clase Ext.MessageBox y su método show.

Noten que hablo de clases; cuando vean el API entenderán a que me refiero. Los creadores de este framework lo conceptualizaron así y acertaron en hacerlo ya que te permite crear componentes a partir de los que ya existe(HERENCIA), de esto hablaremos mas adelante.

Ext JS - Introducción

0 comentarios

Después de haber cumplido con mi deber cívico acercándome a votar en estas elecciones presidenciales 2011, me relajaré un poco posteando acerca de Ext JS.

En este post hablaré de forma general acerca de Ext JS, en un siguiente post publicaré mini tutoriales de como usar Ext JS en aplicaciones web.

Ext JS
Es un framework JavaScript para construir aplicaciones RIA utilizando AJAX, DHTML, CSS y DOM. Extiende de Prototype, JQuery y YUI.

Ejemplo de una grilla de datos desarrollada en Ext JS:

La imagen anterior muestra una grilla creada con Ext JS, está construida netamente con Javascript y CSS. No es construida en el servidor, el server solo se encarga de enviar al cliente la data en formato JSON o XML, y el cliente se encarga de leer estos datos y cargarlos en la grilla. De esta manera la lógica del servidor puede ser implementada con PHP, Servlets o JSP, ASP u otras tecnologías del lado del servidor.

Ventajas:
* Permite crear aplicaciones complejas utilizando componentes predefinidos así como un manejador de layouts similar al que provee Java Swing, esto provee una experiencia consistente sobre cualquier navegador, evitando el tedioso problema de validar que el código escrito funcione bien en cada uno (IE , Firefox, Opera, Safari, etc.).
* No necesita que la máquina cliente tenga instalado un plugin externo, Ya que es código JavaScript.
* Cuenta con un Un API fácil de usar. Los creadores de Ext JS han diseñado un modelo de componentes extensibles por herencia. Cabe recalcar que JavaScript no es un lenguaje orientado a objetos sino que sigue el paradigma de programación basada en prototipos y la herencia que hace es aplicando prototipado.

Desventajas:
* En versiones anteriores a la 3, la falta de un diseñador gráfico limitaba la producción fácil y rápida de las interfaces(aunque para quienes nos apasiona programar no era un limitante, por suerte tenía un API fácil de usar). A partir de la versión 3 ya existe Ext Designer

* Ext JS al ser una librería Javascript independiente de cualquier tecnología del lado del servidor no existe una forma por defecto de realizar binding entre los componentes visuales con el respectivo modelo; como por ejemplo querer que los datos del formulario sean cargados automáticamente en un bean, pero afortunadamente con frameworks como Spring y un poco de Código JavaScript se puede lograr esto.

Fuentes de aprendizaje:
* Video tutoriales de Ext JS, útiles para quienes se inician en Ext JS:
http://www.quizzpot.com/
* + Video tutoriales:
http://www.extjs.tv/
* Libro "Ext JS In Action":
http://www.manning.com/garcia/
* Site Oficial de Ext JS:
http://www.sencha.com/
* Grupo ExtJS Peru User Group:
http://groups.google.com/group/extjs-peru-user-group

Otra información:
Este framework es de propiedad de la empresa Sencha que además cuenta con otros frameworks como
* "Sencha Touch" para hacer aplicaciones web con componentes que pueden ser renderizados en dispositivos Iphone y Android.
* "Ext GWT" para los amantes de Java y GWT (Google Web Toolkit). Es una extensión del GWT que sirve para crear interfaces tales como se muestra en Ext JS.

Lima TI

3 comentarios

Este es mi primer post de este año, como que me he demorado un poco.
Quiero anunciar que hemos publicado el site de nuestra empresa: http://lima-ti.com.
Es una empresa que hemos fundado un grupo de amigos y yo en el 2009.

Y uno de los principales frameworks que promocionamos y que utilizamos en nuestro desarollo es Ext JS, además de Java (Spring, Hibernate y Faces).

Iré publicando más de Ext JS en mi blog y en en el grupo oficial de google:
http://groups.google.com/group/extjs-peru-user-group
Todos están invitados a formar parte de este grupo.

Facebook de Lima TI:


Twitter:


Spring Community Day Lima 2010

0 comentarios

El Sábado 27 de noviembre del presente año, se realizará el Spring Community Day, al igual que el año pasado, será en la UPC.

Para el registro y mayor información haz click en "Register Now":

Spring Community Day Lima 2010

0 comentarios

El Sábado 27 de noviembre del presente año, se realizará el Spring Community Day, al igual que el año pasado, será en la UPC.

Para el registro y mayor información haz click en "Register Now":

SCJP(Sun Certified Java Programmer) 6.0

13 comentarios

Hace un tiempo hablé sobre la SCJP 5.0, hoy hablaré sobre la SCJP 6. Aunque ahora la llamaría OCJP(Oracle Certifi....), primero que nada tal como lo dice este link: http://www.oracle.com/dm/11q1field/53009_cert_rebranding_pe_ol.html oracle no ha cambiado el contenido del examen, por lo que las personas que han estudiado y van a rendir su examen no deben preocuparse. La única diferencia es que ahora tu certificado saldrá a nombre de Oracle.

Este examen está compuesto por 7 objetivos de aprendizaje:
1) Declarations, Initialization and Scoping
2) Flow Control
3) API Contents
4) Concurrency
5) OO Concepts
6) Collections / Generics
7) Fundamentals

Estos 7 temas son los que debes estudiar para el examen. Y como observarás, son los mismos objetivos que tiene la SCJP 5, solo que han reforzado temas como:
En el objetivo API Contents:
* Han introducido el estudio de una nueva clase llamada java.io.Console que solo lo tiene el jdk 6
En el objetivo Collections / Generics
* Ha introducido el estudio de dos nuevas interfaces llamadas: java.util.NavigableSet y java.util.NavigableMap. que solo lo tiene el jdk 6

Notas extras sobre esta certificación:
* Código del examen: CX-310-065
* Prerequisito: Ninguno.
* Número de preguntas: 60
* Pasas con: 58.33% (35 de 60 preguntas)
* Tiempo límite: 180 minutos(3hr )
* Idiomas Disponibles: Español, Inglés , Ruso, Alemán, Francés. Chino.

Para esta certificación estudié del libro "Sun Certified Programmer for Java 6 Study Guide" de Kathy Sierra y Bert Bates: http://www.amazon.com/SCJP-Certified-Programmer-Java-310-065/dp/0071591060.
Y cuando rendí el SCJP 5 estudié de la version 5 del mismo libro así que se los recomiendo.

Basándome en este libro elaboré mi resumen en español de todos los capítulos, lo pueden descargar del siguiente link:
http://www.lima-ti.com/public/mayer/scjp6_resumen_MayerHorna.zip

OSUM Comunidad Spring.pe -Segunda Reunión

0 comentarios

Ayer lunes 16 de marzo de 2010, fué la segunda reunión de la comunidad OSUM SpringPeru.

Los temas que se tocaron:
- Spring Security (Edson Chavez)
- Hibernate y Spring ORM (Mayer Horna)

Esta es mi presentación:



Puedes descargar la presentación pinchando aquí:
Spring_ORM.ppt

Y también los proyectos maven hechos en el eclipse STS(SpringSource Tool Suite):
workspace_SpringPeru_2daReunion.rar
En la presentación indico la finalidad de cada demo.

Los proyecto solo impórtalos a tu eclipse y luego:
click derecho al proyecto > Maven > Update Dependencies
(Debes tener conexion a internet).

Para que las demos de hibernate funcionen, solo basta con crear una base de datos en blanco llamada mydatabase en tu postgre.

Y para la demo con hibernate y spring, necesitas restaurar commerce.backup que se encuentra dentro de workspace_SpringPeru_2daReunion.rar

Saludos.

OSUM Comunidad Spring.pe - Primera Reunión

0 comentarios

Ayer martes 09 de 02 de 2010, nos reunimos con la finalidad de compartir conocimientos, conocer a otros miembros de la comunidad y alentar a que mas personas asistan a las próximas reuniones.

Los temas que se tocaron:
- Spring. Iyección de dependencias (Jose Diaz)
- AOP. Introducción (Mayer Horna)
- Grails. Introducción (Edwin Farfan)

Yo expuse el tema de AOP y puedes descargar la presentación y las demos desde los sisguientes links:

(presentación):
http://www.lima-ti.com/public/mayer/20100209_Spring.peOSUM_AOP/AOP.ppt



(demos):
http://www.lima-ti.com/public/mayer/20100209_Spring.peOSUM_AOP/workspace.rar

Son proyectos de eclipse. La versión es el STS(SpringSource Tool Suite) y puedes obtenerlo desde la pagina de springsource:
http://www.springsource.com/products/sts

Muy pronto en http://springperu.ning.com y/o en www.spring.pe se colgarán las presentaciones

Saludos.

De paso por mi universidad: UNJFSC - Huacho, ponencia: AOP

0 comentarios

Ayer visité mi universidad, después de tiempo.
El motivo:
Me invitaron para exponer acerca de AOP. Aproveché de paso para conversar
acerca de la carrera(ingeniería de sistemas) y de los conocimientos que hoy el mercado laboral está exigiendo. También hablé sobre la certificación SCJP y su importancia.
Y cerré con con el tema central: Aspect Oriented Programming(AOP) -> Programación Orientada a Aspectos(AOP).

Dejo los links para que descarguen las ppts y las demos:

Sobre ingeniería de sistemas:
http://www.lima-ti.com/public/mayer/20100205_AOP/01_IngenieriaDeSistemas.ppt

Sobre la certificación SCJP
http://www.lima-ti.com/public/mayer/20100205_AOP/02_SCJP.ppt

Sobre AOP:
http://www.lima-ti.com/public/mayer/20100205_AOP/03_AOP.ppt

Demos:
http://www.lima-ti.com/public/mayer/20100205_AOP/demos.rar

Dentro del comprimido: demos.rar, encontrarás los siguientes proyectos en eclipse STS:
demos_aop ,Las demos de la presentación: 03_AOP.ppt
demowebconaop ,La de un aplicación web, con un aspecto auditoria
demowebextjsjava ,Demo de extjs con Servlets y JSPs
demowebextjsjavaspring, Demos de extjs con Spring y Hibernate
demowebspringaop, Demo de uso de Spring AOP

Los backups de las bd (en postgre) están dentro del src/ de cada proyecto.

Hasta la próxima.

Presentación de Spring Community Day Lima 2009

0 comentarios

El jueves pasado, se realizó el Spring Community Day 2009, toda la charla se centró en la presentación de una demo mostrando los componentes de Spring(Core, MVC, DAO, etc.) aplicados sobre ella.

Se hizo un trabajo en equipo, la diferencia con el evento anterior fue que ningún tema se presentó de manera independiente, por lo contrario todos estaban enfocados sobre un mismo problema.

Lamentableme hubo personas que no lograron entrar al evento.

Aca les dejo el prezi de la presentación:
http://prezi.com/_4zhghj6ftqf/
*pínchale en More>Fullscreen y navega sobre el.

y este es el doc con las instrucciones para que descargues los fuentes de la demo:
http://docs.google.com/Doc?docid=0AThfnYPWutveZHIyc3Q0al8xNGdtYzc5OXE5&hl=en

O descárgala directamente de este link:
demofinal.rar

Nota: Se está contactando con la persona que filmó la conferencia, para poder editarla y publicarla.

Foto de todo el equipo:

Spring Community Day Lima 2009: Estas invitado

0 comentarios

El jueves 29 de este mes, la comunidad de Spring Perú realizará el 2do Spring Community Day Lima 2009. Este es un evento anual de difusión de Spring Framework - líder en infraestructura y gestión de aplicaciones empresariales Java.

Se presentará el desarrollo desde cero de una aplicación. Los expositores irán rotando, explicando, programando y comentando sobre los diferentes módulos de Spring.

Los asistentes podrán descargar el código de la aplicación demo de un repositorio.

El ingreso es totalmente libre, solo tienes que entrar a esta página y registrarte: http://communityday2009.springperu.org/.

Fecha: Jueves 29 de Octubre del 2009
Hora: 07:00pm - 10:30pm
Lugar: Universidad Peruana de Ciencias Aplicadas (UPC) - Aula Magna
El ingreso al Aula Magna de la UPC es por orden de llegada.

Agenda
06:45pm - 07:00pm: Ingreso
07:00pm - 07:15pm: Presentación de Spring Perú
07:15pm - 09:30pm: Demo en vivo
09:30pm - 10:00pm: Preguntas y cierre
10:00pm - 10:30pm: Coffee Break

Expositores
1. Spring Testing: Gustavo Quiroz
2. Spring MVC: Susan Inga, Ricardo Ávila
3. Spring Core: Lennon Shimokawa
4. Spring Dao: Jonathan Lara, Mayer Horna
5. Spring Security: Edson Chavez
6. Spring CloudFoundry: José Diaz