Liferay 5.2 + DWR

jueves, 26 de marzo de 2009 Sin comentarios

Continuando con el desarrollo de portlets en Liferay, me topé con la necesidad de investigar sobre respuestas asíncronas de parte del servidor a los clientes. Consultando con profesores y amigos, me sugirieron leer sobre COMET, una técnica muy similar a AJAX con la diferencia que envia respuestas sin que el cliente las solicite.

Así encontré DWR (Direct Web Remoting: directwebremoting.org) una librería de JAVA, que permite la interacción asíncrona del servidor (Java) con los clientes (javascript). Aquí más sobre DWR (http://directwebremoting.org/dwr/overview/dwr)

Busqué en el sitio de Liferay más información sobre DWR y portlets, pero no me ayudó mucho, pues en la wiki dan una explicación muy general y no está actualizado con la última versión de liferay 5.2.x. Encontré un artículo muy bueno en la web (link) de como hacer una aplicación web utilizando DWR, me ayudó mucho pero no lo explicaba con liferay. Así que me tocó hacer un híbrido entre este articulo, la wiki de liferay, el sitio de DWR y sobre todo mucha prueba y error.

Aquí los pasos a seguir:

WEB-INF Liferay

WEB-INF Liferay

  1. Descargar la última versión estable de DWR (dwr.jar) (link)
  2. Copiar el jar en la carpeta WEB-INF->lib (ver Fig. 1)
  3. Configurar dwr en liferay
  4. Abrir el archivo web.xml que etsá en la carpeta WEB-INF (ver Fig. 1)
  5. Agregar lo siguiente:
  6. <servlet>
    <servlet-name>dwr-invoker</servlet-name>
    <display-name>DWR Servlet</display-name>
    <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
    <init-param>
    <param-name>debug</param-name>
    <param-value>true</param-value>
    </init-param>
    </servlet>

    <servlet-mapping>
    <servlet-name>dwr-invoker</servlet-name>
    <url-pattern>/dwr/*</url-pattern>
    </servlet-mapping>

  7. En esa misma carpeta WEB-INF crear un archivo dwr.xml
  8. Copiar lo siguiente por el momento
    <dwr>
    <allow>
    <!– define la clase de servicios que se va a publicar mediante DWR –>
    <!– defines the service class to share across DWR –>
    <create creator=»new» javascript=»JDate»>
    <param name=»class» value=»java.util.Date»/>
    </create>
    </allow>
    </dwr>
  9. Probar el DWR en http://localhost:<puerto>/dwr
  10. Debería salir una página con el link de JDate, si es así perfecto!
  11. Luego Creamos el portlet (yo utilizo netbeans, pero también se lo puede hacer con eclipse)
  12. Estos 2 IDEs crean todo lo necesario de un portlet, claro deben tener instalado el plugin de liferay para netbeans o eclipse, como sea el caso (Para eclipse existe Lomboz pero hasta la versión 4.0 de Liferay).
  13. Crear Clases necesarias (dependiendo de la necesidad u objetivo del portlet)
  14. Compilar las clases

    Carpeta Liferay + tomcat

    Carpeta Liferay + tomcat

  15. Copiar todo el paquete de clases generado en la compilación y pegarlo en la carpeta shared–>classes (ver Fig.2)
  16. Luego agregar dicha clase en el archivo DWR que creamos en el paso 7
    <create creator=»new» javascript=»<nombre de la clase>»>
    <param name=»class» value=»<paquete>.<nombre de la clase>»/>
    </create>
    <convert converter=»bean» match=»<paquete>.*»/>
  17. El bean es solo si se necesita utilizarlo, sino no es necesario.
  18. Ejecutamos el paso 8
  19. Y si sale el link de nuestra clase, todo está perfecto.
  20. Ahora lo que resta es llamar desde javascript a nuestro codigo java.
    En mi caso:
    SchedulerService.getSchedule(id,showScheduler);

    En donde SchedulerService es el nombre de la clase y getShedule es el método declarado en la clase anteriormente mencionada. Este método solo recibe un parámetro, pero al utilizar DWR se le debe pasar también una función (callback), en este caso showScheduler. Esta función callback recibe como parámetro la respuesta que retorna el metodo java, y es la que se encargará de manipular la información (parsear, mostrar, etc.)

  21. Desde view.jsp incluimos al js antes creado y listo.

Un poco largo, pero si funciona 🙂

Tips para Emprender en Ecuador

martes, 17 de marzo de 2009 13 comentarios

No soy una experta en emprendimiento, para eso está Álvaro Noboa, pero siento que he aprendido mucho y tengo mucho más por aprender en esta nueva faceta de mi vida como gerente de una pequeña empresa (NEOBOX S.A.).

Cada segundo que alguien le pueda dedicar a su empresa es una experiencia innolvidable que enriquece, pues nadie nace sabiendo. Es gratificante ver como crece nuestra red de contactos, ya sean estos clientes, proveedores, colegas, socios, etc. No solo basta llegar a tener un gran número de conocidos, sino simpatizar con ellos o sacarle provecho a la relación.

En Ecuador para arrancar con una nueva empresa, hay que seguir un sinnúmero de trámites que muchas veces no se encuentra el fin. Aquí los pasos para montar su propia empresa.

1. Tener una buena idea de negocio, si ya existe producto mucho mejor
2. Elegir socios de confianza, preferible personas ya conocidas
3. Asesorarse con un buen abogado para agilitar los trámites de constitucion
3.1. Reunir capital
3.2. Accionistas
3.3. Escrituras
3.4. Registro Mercantil
3.5. Registro en la Super de Cias
3.6. Honorarios Abg.
4. Sacar RUC persona jurídica (llevar escrituras)
5. Registrarse en el IESS
5.1. Empresa
5.2. Patrono
5.3. Mínimo 1 empleado
6. Sacar Permiso Municipal (en el caso de Guayaquil en el Municipio de Guayaquil, Malecón)�
6.1. Uso de Suelo
6.2. Patente
6.3. Permiso de Habilitación
6.3.1 Aqui se necesita hacer un balance general y llevarlo a la Super de Cia.
6.3.1.1. Para esto se debe llenar el formulario 101 (SRI) , si es por internet se debe comprar igual este formulario para registrar la nómina de accionistas. Además se debe hacer una carta (el formato lo dan en la Super) indicando quien o quienes son los administradores (Gerente General) de la empresa.  La declaración del 101  se la debe guardar en un medio magnético y entregar. Piden además copia de una planilla de servicio básico, copia de la cédula y papeleta de votación del Gerente.
6.3.1.2. Una vez entregado el balance general en la Super. Se debe hacer sellar los papeles (el balance) en otra oficina ahí mismo en la Super, pues son requisito para el municipio (1,5 x mill)
6.4. Si es local a nombre de la empresa, sacar predios urbanos

7. Comprar Extintor (primero averiguar la capacidad segun el local)
8. Ir al Benemérito cuerpo de Bomberos de Guayaquil
8.1. solicitar orden de pago
8.2. Cancelar dicho valor en el bco de Gquil
8.3. Entregar papeleta al BCBG
8.4. Esperar la visita de un delegado a la oficina de la empresa
8.5. Ir nuevamente al BCBG para retirar el permiso
9. Sacar un servicio básico a nombre de la empresa
9.1. El más rápido es el teléfono: TvCable, Telmex, Pacifictel
10. Verificar Domicilio empresa en SRI (Este es el trámite más tedioso)
10.1. Antes de empezar con este trámite, todos los anteriores (1-9) deben ya estar ejecutados
10.2. Solicitar certificados o facturas a los proveedores (maximo 3)
10.3. Copia de Cotizaciones/facturas emitidas a clientes (maximo 3)
11. Una vez verificada la dirección, solicitar emisión de facturero al SRI
12. Mandar a imprimir facturero
13. Publicitarse
14. Vender

Como notarán son muchas cosas, pero mientras las van ejecutando, no hay que olvidar que se debe declarar mensualmente al SRI. Como se está inciando no hay ventas, pero posiblemente si hay gastos. Desde el primer día que la empresa tiene RUC es recomendable pedir facturas a nombre de la empresa para los gastos de la misma. Las declaraciones mensuales son 3, formulario 104, 103 y anexos. Y anual se envia un anexo del balance general (formulario 101) y se lo lleva a la Super de Compañías, también la patente es anual. Así mismo, mensualmente se debe pagar las aportaciones de los empleados al IESS.

Puedo decir, que si no hubiera tenido conocidos en la mayoría de estas entidades, tal vez no llevaría ni el 50% de terminado este proceso. Es muy bueno, conocer a mucha gente, como dije anteriormente, pues podemos sacar provecho de esto. Muchos opinirán que es INTERES o CORRUPCION, pero yo no lo veo asi, simplemente es OPORTUNIDAD, una muy buena oportunidad que se da gracias al nexo que existe entre nosotros y los demás. Nunca hice nada por la izquierda, de hecho, si lo hiciera, no estaríamos creando mi socio y yo, la empresa con todas las de la ley.

Lo escrito aqui, son solo los pasos a seguir para crear una empresa en regla. No hay que olvidar las reuniones periodicas con los socios y empleados, para mantenerse enterado de todo lo que ocurre a bien o mal de la empresa. Hacer proyecciones, tener un Plan A, Plan B, no solo vender, sino ser reconocidos por el buen producto que se vende.

Muchos se asustarán con todos estos pasos, pero creanme, luego de la tormenta, siempre viene la calma. Lo más gratificante es la experiencia adquirida en todo este proceso que nunca acaba.

 

Lisette

(última modificación: 25/abr/09)

Liferay 5.2.2 (configuración de base de datos)

martes, 3 de marzo de 2009 4 comentarios

Hoy instalé en mi computador la nueva versión del Liferay (5.2.2), el paquete que incluye tomcat, y como algunos ya sabemos, por default al correrlo por primera vez, se crea una base de datos de prueba utilizando el motor HSQL.

Este motor no es recomendable tenerlo en un servidor, solo se lo recomienda para pruebas, es por esto que Liferay permite hacer conexiones con oracle, mysql, postgres y otros.

En mi caso probaré con mysql.

En la versión 5.1.2 del liferay fue muy fácil encontrar el archivo de configuración para cambiar la base de datos, estaba en: tomcat\conf\Catalina\localhost\ROOT.xml en donde solo se comentaba la sección de HSQL y se habilitada la del mysq y todo funcionaba perfectamente.

Ahora, con la versión 5.2.x la estructura ha cambiado un poco, han incluido un archivo portal.properties que está dentro de (tomcat\webapps\ROOT\WEB-INF\lib\portal-impl.jar) ahí se especifican ciertos parámetros para lograr que funcione este portal. Uno de los parámetros es el motor de base de datos, pero como modificarlo si está dentro del jar? Pues muchos opinarán: «Cambiando la extensión del jar por zip, descomprimir, modificar, comprimir y volver de zip a jar», pero en lo personal es una opción sucia que en realidad no sé si funcione.  Bueno, lo optimo es crear un archivo llamado «portal-ext.properties» en ((tomcat\webapps\ROOT\WEB-INF\classes) y solo agregar lo siguiente.

 

jdbc.default.driverClassName=com.mysql.jdbc.Driver
jdbc.default.url=jdbc:mysql://localhost/lportal?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false
jdbc.default.username=user
jdbc.default.password=pass

Una vez creado este archivo, o antes, debemos crear la base en mysql y asignarle si deseamos un user y pass.
create database lportal character set utf8;
use lportal;
create user user;
set password for ‘user’@’localhost’ = password(‘pass’);
grant all privileges on *.* to ‘user’@’localhost’ identified by ‘pass’
De ahí, levantamos el tomcat y esperamos que todo se instale!

El Internet se usa más para socializar

martes, 3 de marzo de 2009 Sin comentarios

Hoy, antes de salir de mi casa ví en el periódico (diario El Expreso) un tema que me llamó la atención, «El Internet se usa más para socializar»

Algo que no me gustó de este artículo, es que al iniciar y al finalizar, emplean una frase que no concuerdo: «El Internet en Ecuador lo utilizan jóvenes y empresarios. Sin embargo, esta herramienta está mal utilizada. La relacionan más con el tema del ocio. Por ejemplo, para conectarse a redes sociales»

Bueno, muchos estarán de acuerdo o en desacuerdo, pero el utilizar redes sociales no significa que estamos mal utilizando el internet. Claro, el internet no es solo para eso, me parece perfecto que se lo utilice en la investigación, pagos de servicios básicos, comercio electrónico, etc.

Si lo vemos desde otro punto de vista… «El internet solo se lo utiliza para pagar los servicios básicos», podemos decir lo mismo, que está siendo mal utilizado, pero creo que la palabra no es mal utilizado, sino que no se lo está explotando al máximo, es decir, no se está aprovechando todo su potencial.

Pasando a otros datos que publican en este mismo artículo, indican que en el 2002 se realizó un proyecto para que más ecuatorianos puedan acceder fácilmente al internet, y además incluyeron un programa de teleducación para incrementar o fomentar la cultura informática en escuelas y colegios. No indican si les fué bien o mal, pero si mencionan cifras. Actualmente existe un proyecto pendiente que pretende hacer lo mismo, tocará esperar para ver los resultados.

Muestran porcentajes de las horas que le dedican los usuarios al internet, la mayoría son los que lo utilizan entre 1 y 2 horas, y de ahí las cifras van bajando. Esto es preocupante, pues significa que son pocos los que tienen la facilidad (económica, geográfica, etc) para poder acceder al internet, siendo esta una herramienta que ya no es de élite (tal vez nunca lo fue).

El internet debería ser de todos, pues actualmente a nivel mundial es algo indispensable en cada computador y en cada familia, la educación y la cultura es lo primero que se debe mejorar en nuestro país.

NOTA: Las cifras expuestas anteriormente fueron realizadas por Supertel en un sondeo a 435 usuarios localizados en 19 provincias del país.

Aquí la fuente: http://www.expreso.ec/ediciones/2009/03/02/economia/el-internet-se-usa-mas-para-socializar/Default.asp

DentOS en YouTube

lunes, 23 de febrero de 2009 1 comentario

El año pasado, por el mes de diciembre (12/08) la empresa a la cual represento (neoBOX S.A.) creó una cuenta en youtube (un canal) con el fin de subir videos relacionados a nuestro software estrella DentOS.

Las primeras semanas de creado, solo pudimos subir una introducción a este Sistema de Gestión Odontológica, pues no contábamos con mucho material a parte del Sistema y screenshots.

Este fin de semana (feriado de carnaval) hemos actualizado nuestro canal con dos de los tres videos filmados en la clínica del Dr. Miguel Lebed, quien adquiró DentOS Clinic en octubre del 2008. Sofía de Rubira (su asistente) nos ayudó con las tomas de citas y ficha del paciente, mientras que la Dra. Alejandra Silva nos ayudó con la toma del odontograma. El Dr. Miguel Lebed es muy conocido en el mundo artístico aquí en Ecuador, pues muchas veces ha sido el encargado de mejorar la sonrisa a las misses, presentadoras de TV, y muchos famosos más.

Espero que la mayoría de los odontólogos puedan ver estos videos y se animen en utilizar DentOS, una herramienta que le facilitará la vida y además se la organizará 🙂

Canal de neoBOX en YouTube: http://www.youtube.com/neoboxec
Sitio Web de neoBOX: http://www.neoboxec.com

Lisette

Desarrollo de portlets para Liferay

jueves, 19 de febrero de 2009 2 comentarios

Luego de 2 semanas de buscar en la web como crear portlets para Liferay, por fin he encontrado una manera fácil de hacerlo. 

He encontrado 2 formas de hacerlo, la primera con la ayuda de un IDE y la segunda directamente con el SDK de Liferay. esta última no he probado, opté por la primera opción y resultó tras varios intentos.

Al principio me bajé el Liferay 5.1.2 con el tomcat incluido, lo corría (bin/startup.bat) y todo perfecto, pero cómo incluir mis propios portlets? Encontré lomboz una herramienta basada en eclipse, que permite crear los portlets de manera muy rapida y sencilla. Mis primeros intentos con este IDE no fueron exitosos, pues no me di cuenta que estaba desarrollado para Liferay 4.1.0, 4.2.0 y 4.3.0, y yo tenía 5.1.2. Entonces, al darme cuenta cambié la versión utilicé la 4.3.0 y todo funcionó 🙂 pero yo no quería esa versión 🙁

Busqué en la web como crear portlets para la versión 5.1.2 y encontré algunas formas, no triviales por cierto, y decidí hacer la prueba con el portlet que ya había creado para la versión 4.3.0 y lo probé en mi liferay 5.1.2 y todo funcionó 🙂

Seguiré utilizando lomboz para crear los portlets, y luego de compilados, los muevo a la carpeta ROOT del tomcat (que ya incluye Liferay).

Aquí algunos links interesantes:

Descargar Liferay 5.2.1: http://www.liferay.com/web/guest/downloads/portal
Documentación Liferay 4.2: http://www.liferay.com/web/guest/community/documentation/4_2
Creación de Portlets para Liferay con Lomboz: http://lomboz.objectweb.org/liferay_demo.php

Categories: none Tags: , , , ,

Twitter + widgets

miércoles, 4 de febrero de 2009 Sin comentarios

Que tal,

Hoy buscando un widget de twitter, encontré algunos desde el sitio oficial de twitter…

http://twitter.pbwiki.com/Apps

Ahí están muchas aplicaciones que soportan la lectura y envio de tweets.

En mi caso, instalé Twadget. Esta app la pueden colocar en el sidebar de WinVista… Emite un sonido de pajarito cuando alguien escribe un tweet.. te permite escribir tweets… Pero la interacción no es tan amigable, pues al estar en el sidebar, tienes que minimizar todo para ver los mensajes…

… Debo decir que tuve problemas instalando twittget No se agregó nunca al sidebar.

Para los amantes de las aplicaciones AIR, existen algunas apps escritas en AIR que implementan la lectura y envio de tweets. Aqui una de ellas: twairmini, twirl (he probado la segunda y me parece interesante pues muestra el mensaje de aviso con el messenger, y soporta conexiones de multiples cuentas no solo de twitter sino tambien de laconi.ca, Friendfeed y seesmi.

Twitter & Facebook ahora son amigos!

miércoles, 21 de enero de 2009 3 comentarios

Nuevamente, navegando por la Internet, encontré a Twitter para Facebook… Solo basta que instales esta aplicación en facebook y listo 🙂 Claro, la instalación se basa en permitir que facebook acceda a tu cuenta de twitter y que además permitas que FB muestre tus tweets.

Pero lo mejor de esto, es que tu status de facebook cambia con respecto a los tweets que escribas, y viceversa… En lo personal utilizo TwitterFox (un add-on para Firefox).

Muy útil esta herramienta, para no tener que escribir lo que estás haciendo 2 veces…

Mira la página de twitter en facebook:

http://www.facebook.com/apps/application.php?id=2231777543

Accede a la aplicación:

http://apps.facebook.com/twitter/

Facebook Toolbar

miércoles, 21 de enero de 2009 Sin comentarios

Mientras navegaba en la Internet, con mi objetivo de aprender más acerca de redes sociales y de las APIs que existen para crearlas, hice una parada en el sitio para desarrolladores de facebook, para ver que nos ofrece la API de esta gran empresa.

Bueno, para no alargarles más el tema, encontré un addon para firefox, en forma de toolbar. Lo instalé y me parece muy práctico, pues muestra en el toolbar los indicadores más importantes que podemos necesitar para poder pensar en ingresar al sitio de facebook. (#de solicitudes, #de mensajes, ingresar status, ver red social).

Lo pueden encontrar en:

http://developers.facebook.com/toolbar/

O también en el sitio de firefox en la sección de add-ons.

PD: La versión disponible no es compatible con firefox 3.1.b2  🙁

LE

Redes Sociales, Web 2.0

martes, 20 de enero de 2009 2 comentarios

Estos últimos días he estado leyendo acerca de las Redes Sociales y de las herramientas Web 2.0 que hoy en día existen (es el «boom» que hay en mi Universidad). Pero quise enfocarme no en el hecho de usar las aplicaciones ya existentes que me ayudan a que mi red social crezca en internet, sino en el hecho de que mi Universidad tenga su propia aplicación colaborativa desarrollada con herramientas Web 2.0.

Es entonces cuando descubrí OpenSocial, un API de lenguaje sencillo (javascript y HTML) que permite crear nuestras propias aplicaciones basadas en para redes sociales., permitiendo además crear nuevos (gadgets). Esto me pareció muy bueno, pues así podemos motivar a los estudiantes a crear sus propias aplicaciones y que los demás puedan usarlas. Una manera divertida y relajante de conocer y aprender de la Web 2.0.

En lo personal, no me basta con lo primero que encuentre, entonces decidí seguir buscando más APIs que me ayuden en esto, y encontré a Ning, privativo en 2 sentidos (código fuente y alojamiento de sitio web y de la información de toda mi red social).

Aún no he probado ni uno, pues sigo en mi fase de análisis, pero a simple vista creo que mi elección será OpenSocial, por lo fácil que sería entenderlo. Y muy a parte de los gadgets que se puedan usar o crear me permite crear mi propia Red Social.

23-ene-09
Hoy probé Elgg, una red social opensource (me la recomendó una amiga)… La instalé en mi computador y utilicé todo lo que brinda. Hasta el momento me gusta, pues ya incluye módulos de amigos, grupos, bookmarks, paginas, status, seguimiento a las actividades de los amigos, alojamiento de archivos, y tiene además una versión muy básica de opensocial incluido. Está interesante esta aplicación, aunque no me agrada mucho la interacción, pero tampoco es un desastre.

La instalación es muy sencilla, requiere de un servidor web (apache), una base de datos (mysql5) y php5.2.x por algunas librerías que necesita. (http://docs.elgg.org/wiki/Installation/Requirements)

11-feb-09

http://www.perspektive89.com/system/files/images/liferayL-logo.jpg Gracias a la sugerencia de mi director de tesis (Xavier Ochoa, PhD.) leí acerca de liferay, un portal web opensource que a su vez cumple las funciones de un CMS… Lo llevo probando 1 semana, y hasta el momento su instalación me parece no tan complicada como parece. Está desarrollado con JSP, emplea Hibernate (capa de persistencia) lo cual facilita el soporte a varias bases de datos, de las cuales he probado HSQL y MySQL. En el sitio oficial se puede descargar el último release, que viene con el servidor web (tomcat).

LifeRay, permite instalar pluggins (widgets) y los usuarios deciden si lo desean ver en su portal o no. Soporta aplicaciones realizadas con OpenSocial. Además alhgo muy interesante, es que permite varias formas de autentciación: normal (los usuarios deben registrarse antes de…), por medio de una cuenta OpenID, LDAP, CAS, y otros. Este último lo había escuchado muy poco, para ser sincera recien ayer 😀 básicamente es un servicio que permite realizar autenticaciones seguras y centralizadas, de tal manera que nuestra aplicación (en este caso liferay) no deba incluir en su código acceso a bases de datos o WS para realizar el login, simplemente enviar usuario y contraseña, claro está que primero se debe configurar este servicio.

Hoy encontré por la web un video de cómo crear portlets para liferay utilizando Lomboz un proyecto basado en Eclipse.
http://lomboz.objectweb.org/liferay_demo.php

 

23-ene-09

Hoy noté que Liferay liberó una nueva versión (5.2.2) está mucho mejor que las anteriores, muestran una estructura del sitio más limpia, y han mejorado la sección administrativa. Además proporciona compatibilidad con OpenOffice.

Ya lo estoy probando!

Ir a la barra de herramientas