Bloggers recientes

 

[ Blog ]
[ Wiki ]
[ Slideshare ]
[ Twitter ]
[ YouTube ]
Cesar Capillas Mensajes: 175
Estrellas: 8
Fecha: 18/05/15
Gustavo Fernandez Mensajes: 77
Estrellas: 7
Fecha: 16/05/15

Archivo

Tags

noBlogo - El blog de zylk.net

Tips de Libreoffice para transformaciones en Alfresco
Como ya sabéis el subsistema de transformación de Alfresco delega en el servidor Libreoffice / OpenOffice, que interviene en la transformación de diferentes formatos de Office y OpenOffice para la previsualización (transformaciones a PDF), e incluso indexación de documentos. En la versión Enterprise (EE) Alfresco, este subsistema se apoya en las librerías JodConverter que mejoran su funcionamiento y rendimiento, pudiendo dedicar varios procesos simultáneos de transformación. Los procesos de transformación son procesos (por defecto) en la instancia de Alfresco, lo que seguramente nos quitará numerosos recursos si vamos justitos con ellos, y tiene especial relevancia si nuestro caso de uso requiere de muchas transformaciones o previsualizaciones. Una buena estrategia es dedicar un servidor externo a las transformaciones, aliviando la carga de nuestras instancias con:
  • Un servidor LibreOffice o OpenOffice externo. Os dejo un post util para configurarlo aquí.
  • Para la versión EE existe también un servidor de transformación de archivos MS-Office nativo externo, que podría ser interesante en determinadas situaciones. Tiene ciertas ventajas de partida en cuanto a que las transformaciones de MS-Office deberían ser mucho más fidedignas y que no minora el rendimiento de nuestras instancias, pero el requerimiento de un servidor Windows y sobre todo de java de 32 bits (con el añadido de una licencia complementaria), me hacen recelar de que sea una solución de transformación estable, rápida y escalable.
En la instalación del bundle de Alfresco (tanto en la CE como en la EE) existe la opción de instalarlo, y es la opción que suelo preferir puesto que es el "stack más probado" o certificado (en el caso de la EE) por Alfresco. Normalmente funciona a la primera pero en ocasiones es necesario instalar librerías complementarias.
 
 
Si tampoco va como debería se puede optar por instalar el servidor a partir de la paquetería de LibreOffice / OpenOffice de tu distribución Linux preferida.
 
Una vez funcionando Alfresco, el subsistema de transformación debería encargarse de que si cae el proceso de Libreoffice, levantarlo, pero en ciertos casos como en Alfresco 5.0.c no es así. El otro día hablábamos aquí de unos cambios en el script de Libreoffice para que funcionase correctamente en esta versión CE. Si no podemos dedicarle un servidor LibreOffice con más recursos, una opción para monitorizarlo es este simple script de cron ejecutado cada 15 minutos.
 
#! /bin/bash
# m h  dom mon dow   command
#0,15,30,45 * * * * /opt/alfresco/bin/check_libre.sh
ALF_EXE=/opt/alfresco/alfresco.sh
ALF_LOG=/opt/alfresco/tomcat/logs/libreffice.log
ALF_DATE=`/bin/date`
if [ -z `/bin/pidof ".soffice.bin"` ]; then
  $ALF_EXE start libreoffice
  echo "$ALF_DATE" >> $ALF_LOG
fi 
 
También suele ser interesante limitar el tamaño de los archivos a transformar / previsualizar en Alfresco via alfresco-global.properties sobre todo si LibreOffice se ejecuta en la propia instancia de Alfresco. Por ejemplo:
 
# Transforms to PDF
# =================
content.transformer.OpenOffice.mimeTypeLimits.doc.pdf.maxSourceSizeKBytes=20248
content.transformer.OpenOffice.mimeTypeLimits.docx.pdf.maxSourceSizeKBytes=20248
content.transformer.OpenOffice.mimeTypeLimits.ppt.pdf.maxSourceSizeKBytes=20248
content.transformer.OpenOffice.mimeTypeLimits.pptx.pdf.maxSourceSizeKBytes=20248
content.transformer.OpenOffice.mimeTypeLimits.xls.pdf.maxSourceSizeKBytes=20248
content.transformer.OpenOffice.mimeTypeLimits.xlsx.pdf.maxSourceSizeKBytes=20248
 
# Transforms to SWF
# =================
content.transformer.OpenOffice.Pdf2swf.mimeTypeLimits.doc.swf.maxSourceSizeKBytes=20248
content.transformer.OpenOffice.Pdf2swf.mimeTypeLimits.docx.swf.maxSourceSizeKBytes=20248
content.transformer.OpenOffice.Pdf2swf.mimeTypeLimits.ppt.swf.maxSourceSizeKBytes=20248
content.transformer.OpenOffice.Pdf2swf.mimeTypeLimits.pptx.swf.maxSourceSizeKBytes=20248
content.transformer.OpenOffice.Pdf2swf.mimeTypeLimits.xls.swf.maxSourceSizeKBytes=20248
content.transformer.OpenOffice.Pdf2swf.mimeTypeLimits.xlsx.swf.maxSourceSizeKBytes=20248
 
Nota: En la versión 5.x de Alfresco se alivian ciertos procesos de transformación (de PDF a SWF), debido a la inclusión de los previewers en HTML5, y estas últimas properties sólo son necesarias para los navegadores muy antiguos.
 
Por último, siempre es interesante revisar la documentación de Alfresco al respecto:
 
Como añadir un nuevo idioma a sinadura desktop

La semana pasada un miembro de la comunidad de sinadura (Luís Jorge Pinho), aportó la traducción al portugues. Desde zylk.net queremos agradecerle el trabajo realizado mediante este post. Además queremos explicar como se añaden estos nuevos idiomas al producto sin que tengáis que esperar a que publiquemos una nueva versión con dicha traducción añadida. Para hacerlo basta con seguir estos simples pasos

1) Localizar el path donde se instaló el producto y dentro de este path localizar el fichero configuration.properties, editarlo para añadir el idioma deseado a la propiedad idiomas.soportados=es_ES,eu_ES,en_US,ca_ES,pt_PT

2) Añadir el fichero de traducciones a la carpeta resources/i18n/

Una vez hechos estos dos pasos ya podemos arrancar sinadura y veremos un nuevo idioma en las preferencias.

 

Presentando CloudSign, un servicio de firma y validación de documentos

Os dejo una presentación de CloudSign, un servicio SaaS en la nube para integrar la firma digital en los procesos de negocio de su organización, a través de un conjunto de servicios REST que permiten la firma y validación de documentos: 

  • PDF en formato Pades (perfiles BES, T y XL). 
  • Factura-e, en sus versiones 3.0, 3.1, 3.2, 3.2.1 (perfiles EPES, T y XL). 
  • Documentos genéricos en formato Xades Detached (perfiles BES, T y XL).

Más info, en la presentación de Slideshare:

Sinadura 4 sobre ubuntu 14 y KDE

Hace más o menos un mes que liberamos la versión 4.2 de sinadura Desktop, y hoy me ha llegado un mail comentando que en el entorno ubuntu 14.04 con KDE el programa fallaba y se cerraba inesperadamente. Después del intercambio de unos pocos mails hemos visto que el problema estaba relacionado con las librerías SWT y el entorno de KDE.

Bucenado un poco por internet hemos visto que cambiando en el fichero /usr/share/themes/oxygen-gtk/gtk-2.0/gtkrc el valor

`GtkComboBox::appears-as-list = 1`
por
`GtkComboBox::appears-as-list = 0`

 

Todo ser arregla y Sinadura parece comportarse correctamente. No se muy bien que quiere decir este parámeto, pero cambiarlo soluciona el problema. Desde aquí agradecer a Fernando Acero Martín la ayuda a la hora de detectar el problema y la ayuda para solucionarlo.

Para la próxima vez tendermos que probar no solo en Unity ....

Migración, diseño responsive y tunning SEO en Liferay 6.2 EE para el portal de Visure Solutions

Desde Zylk.net, hemos estado trabajando en la migración del portal de Visure Solutions (www.visuresolutions.com), desde una versión 5.2.3 CE de Liferay a una versión 6.2 EE. De esta migración, se desprenden varias mejoras respecto al anterior portal:

  • Aplicación de las recomendaciones SEO
  • Diseño responsive para la correcta visualización de los contenidos del portal en dispositivos móviles
  • Organización de los contenidos por países

Mientras trabajábamos junto a Visure Solutions con la anterior versión de Liferay (5.2.3 CE), el experto SEO nos indicó una serie de recomendaciones resumidas en los siguientes posts:

Entre estas recomendaciones, se encontraba la de tener dominios separados que correspondieran a cada país e idioma, y poder así tener URLs internacionalizadas. Debido a esto y ya que Visure Solutions es una multinacional implantada en varios países (España, Alemania, Reino Unido y Estados Unidos), optamos por tener un dominio por cada uno de estos países:

Así pues, por cada uno de estos sites tenemos un árbol de navegación independiente, con las URLs amigables internacionalizadas, y la gestión de los contenidos la realizaríamos desde el ámbito global de Liferay.

Liferay 6.2 EE gestiona  los links de 'alternate' y 'canonical' de la cabecera a partir de la internacionalización de las páginas de un site, sin embargo, debido a que tenemos diferentes sites por país e idioma, Liferay no es capaz de relacionar una misma página, por ejemplo, en español y en alemán, porque están en diferentes sites. Es por esto que hemos creado un plugin para la relación de las páginas entre distintos sites, para poder completar correctamente la cabecera de cada una de las páginas:

Portlet personalizado para la relación de las páginas entre distintos sites

 

El resultado final, por ejemplo, de la página de 'Requirements Management Software' sería:

  • Canonical: http://www.visuresolutions.com/requirements-engineering
  • Alternate - x-default: http://www.visuresolutions.com/requirements-engineering
  • Alternate - España: http://www.visuresolutions.es/ingenieria-requisitos
  • Alternate - Reino Unido: http://www.visuresolutions.co.uk/requirements-engineering
  • Alternate - Estados Unidos: http://www.visuresolutions.us/requirements-engineering
  • Alternate - Alemán: http://www.visuresolutions.de/anforderungsmanagement

Para la gestión de los sitemaps y la de los robots.txt de cada uno de los sites, Liferay 6.2 EE permite realizarla a través de la interfaz de configuración de estos.

Respecto al diseño responsive, utilizamos el framework Bootstrap 2 que ya trae Liferay 6.2. Además, los nuevos contenidos que hemos añadido en las diferentes páginas del portal, también utilizan este framework. De esta manera, el comportamiento de estos mismos contenidos se adapta para poder renderizarse en dispositivos móviles de forma óptima:

Vista de la página de inicio en un PC

 

Vista de la página de inicio en un dispositivo móvi

 

Vista del menú de navegación en un dispositivo móvil

 

Esta gestión de los sites, nos permite además del tratamiento independiente de los contenidos, la gestión, también independiente, de páginas, usuarios, documentos...

Debido a la gestión de diferentes sites por país e idioma (como hemos explicado anteriormente), la gestión de los contenidos que se muestran en estos, la realizaremos observando dónde se mostrará dicho contenido.

Ámbito global y sites por idioma y país

 

Para decidir, dónde tenemos que crear los contenidos, nos hacemos una pregunta ¿el contenido que vamos a añadir va a estar asociado a todos los sites (esté o no traducido)? si la respuesta es que sí, crearemos el contenido en el scope 'Global' de Liferay y lo traduciremos (en caso de que así sea). Si por el contrario, la respuesta es no, crearemos el contenido en el ámbito del site donde se vaya a utilizar, por ejemplo, si queremos añadir un evento (contenido estructurado) que va a tener lugar en Minneapolis sólo añadiremos dicho evento en el ámbito de www.visuresolutions.us (Estados Unidos):

Gestión de un contenido Web estructurado 'Evento'

 

A continuación, vemos cómo se gestiona un contenido no estructurado:

Gestión de un contenido Web no estructurado

 

Además, a corto plazo, se está planteando usar uno de los nuevos plugins que incluye esta versión 6.2 EE de Liferay: 'Audience Targeting EE', que permite dividir a los usuarios en segmentos para poder ofrecerles contenidos específicos. De esta manera podemos crear campañas personalizadas orientadas a los usuarios perteneciente a estos segmentos. Para ello, este portlet nos ofrece la posibilidad de crear reglas a partir de ciertos datos, como por ejemplo: edad, género, número de amigos en Facebook, localización(a partir de su dirección IP)...

 

A través de la gestión de las campañas, el portlet sugiere a los usuarios que pertenezcan a un segmento determinado, una serie de elementos específicos. Por ejemplo, podemos mostrar un enlace de descarga de una aplicación Android a los usuarios que accedan a la página desde un dispositivo Android.

 

Esta visualización de los contenidos de acuerdo al segmento al que pertenece un usuario, la realizamos desde el portlet 'User Segment Content Display', que nos permite configurarlo para indicar si el contenido se muestra al pertenecer (o no) a uno o varios segmentos.

Mostrando el intervalo 1 - 5 de 291 resultados.
Resultados por página 5
de 59