Linux commands to check network performance

Siguiendo un poco con el post de mi compañero Cesar , voy a poner una receta para comprobar la velocidad de transferencia entre equipos. En realidad para ello se uso el comando iperf, que se puede instalar en ubuntu, debian y centos/redhat con los gestores de paquetes de cada distro. Lo que hay que hacer es

  1. Levantar un socket de recpción en la maquina destino (iperf -s)
  2. Desde la máquina origen llamar al servicio que se ha inciado en el puerto 5001 (iperf -c IP_DE_LA_OTRA_MAQUINA)

El resultado será un pequeño informe, por pantalla de la velocidad de transferencia entre ambos equipos.

Sencillo pero muy útil...

 

Kategoriak: Sailkatugabeak | Komentarioak desgaituta daude

Linux commands to check your disk performance

Yesterday I read in Blyx.com, NAS or SAN, that is the question, in fact a usual question for Alfresco Administrators:
 
 
In some part of the article, Toni says that Alfresco recommends a disk throughput greater than 200 MB/sec, so I decided to check some linux commands for measuring disk performance. This will impact for example in the normal work of Alfresco indexation and search (Lucene and SOLR seacrh subsystems). Also when importing data to Alfresco via Filesystem Bulk Module, CMIS/REST API custom processes, or even uploading data via CIFS, FTP or Webdav drives. Because sometimes the throughput results of a Bulk filesystem import are not good enough as expected, sometimes we have to think that something is rotten in the state of benchmark, and yes, that is the question!.
 
Usually this can is done with hdparam and dd commands. Below, I do some tests with my laptop with a quite recent SSD disk. So the results here obtained are quite good (take in consideration: local + SSD = fast). First one is hdparm:
 
cesar@erotes ~ $ sudo hdparm -tT /dev/sda
 
/dev/sda:
 Timing cached reads:   12326 MB in  2.00 seconds = 6165.99 MB/sec
 Timing buffered disk reads: 1426 MB in  3.00 seconds = 474.67 MB/sec
 
The important part is related to buffered disk reads. When we are measuring disk performance we usually talk about non cached reads (or writes). This command can be applied to IDE/SATA disks (LVM disks or iSCSI disks). The hdparm command does not work for CIFS or NFS. For testing NFS, CIFS you can use specific utilities or check dd. 
 
To check write performance, it is useful the dd command. Here again, it is important to check caches or deactivating them for testing. You can deactivate cache writing in a disk with the help of hdparm command too (for example for sda local sata disk something like sudo hdparm -W1 /dev/sda)
 
We can test streaming (for example 1 iteration of 1G): With write caching on, normally activated (if not you can apply sudo hdparm -W1 /dev/sda):
 
cesar@erotes ~ $ dd if=/dev/zero of=/tmp/testfile1 bs=1G count=1 oflag=direct
1+0 records read
1+0 records written
1073741824 bytes (1,1 GB) copied, 2,44595 s, 439 MB/s
 
If I deactivate write caching:
 
cesar@erotes ~ $ sudo hdparm -W0 /dev/sda
/dev/sda:
 setting drive write-caching to 0 (off)
 write-caching =  0 (off)
 
And I repeat the test:
 
cesar@erotes ~ $ dd if=/dev/zero of=/tmp/testfile2 bs=1G count=1 oflag=direct
1+0 records read
1+0 records written
1073741824 bytes (1,1 GB) copied, 6,9191 s, 155 MB/s
 
We see how a similar test without caches is quite worse. We can also test latency (for example with 1000 iterations of 512b) and activating write-cache again:
 
cesar@erotes ~ $ sudo hdparm -W1 /dev/sda
 
cesar@erotes ~ $ dd if=/dev/zero of=/tmp/testfile3 bs=512 count=1000 oflag=direct
1000+0 records read
1000+0 records written
512000 bytes (512 kB) copied, 0,0392862 s, 13,0 MB/s
 
Deactivating write-caching again:
 
cesar@erotes ~ $ sudo hdparm -W0 /dev/sda
 
/dev/sda:
 setting drive write-caching to 0 (off)
 write-caching =  0 (off)
cesar@erotes ~ $ dd if=/dev/zero of=/tmp/testfile4 bs=512 count=1000 oflag=direct
1000+0 registros leídos
1000+0 registros escritos
512000 bytes (512 kB) copiados, 1,63136 s, 314 kB/s
 
This last test hurts. Roughly speaking, this is the reason why your TV series in HD seems faster to copy than your huge icon galleries when you upload them to Alfresco.  
 
Sometimes you read, that dd needs to sync data to get "real" measurements, so the performance is in fact a little worse (this can be achieved with the oflag=sync and repeating the tests). The oflag modes are better explained in the second link below.
 
Some of the links I used for the article:
Kategoriak: Sailkatugabeak | Komentarioak desgaituta daude

Limiting the number of cores for Alfresco Transformations

This is an Alfresco Tip taken from my test on Alfresco Honeycomb Edition (I will post some notes about this other day). The tip is related to limit the number of cores used by Alfresco transformation, preventing CPU throttling
 
In alfresco-global.properties set:
 
img.exe=/opt/alfresco/bin/limitconvert.sh
 
where the original script is:
 
#! /bin/bash
# This file is to limit the number of cores used by Alfresco transformation
# and prevent cpu throttling. The script limits ImageMagick convert to use less resources.
# Check the number of available cpu:s with
# cat /proc/cpuinfo | grep processor | wc -l
# If you have more, change to -c 0,1 if you have 4, -c 0,1,2 if you have 6 and so on.
# Check man taskset for more info.
# Copyright 2013 Loftux AB, Peter Löfgren
# Distributed under the Creative Commons Attribution-ShareAlike 3.0 Unported License (CC BY-SA 3.0)
# -------
 
taskset -c 0 /usr/bin/convert $@
 
Kategoriak: Sailkatugabeak | Komentarioak desgaituta daude

Empaquetando aplicaciones java para MACOS

A continuación voy a da algunas referencias que nos han ayudado en la automatización de la generacion de empaquetados para MACOS, de aplicaciones java. En zylk.net empezamos a hacer nuestros primeros desarrollos multiplataforma allá por el año 2009 cuando desarrollamos, junto a otros miembros de la comunidad, la primera versión de sinadura. Después de 6 o 7 años el proceso de empaquetar aplicaciones para MACOS lo hemos ido mejorando mientras hacíamos proyectos con izenpe, lantik etc... Este mes he estado involucrado en el desarrollo de un cliente de firma que use lo que se conoce como firma por protocolo. Este cliente funcinará con MACOS y se distribuirá como un .dmg[0] con su .app para MACOS.

Para poder automatizar la generación de los instaladores para las distintas plataformas usamos estrategias diferentes para cada sistema operativo.

 * Linux (Izpack[1][2] y la generación de un .run[3])
 * Windows (Izpack y launch4j[4])
 * MACOS (JarBundle[5] y genisoimage[6])

En todos estos sabores de sistemas operativos y arquitecturas, automatizamos las generaciones usando ant o maven para que desde nuestra máquina de QA se puedan generar los empaquetados sin necesidad de disponer de maquinas específicas que generen los empaquetados para cada Sistema operativo.

A continuación mostramos unas imágenes de nuestra herramienta de integración continua desde la que podemos generar y publicar los instaladores de sus distintos sabores.





Para este proyecto también hemos hecho que los instaladores registren los protocolos necesarios para que la firma por protocolo funcione. En este caso para windows se usa el registro de windows, en linux se usa xdg[7] y en MACOS se usa el Info.plist[8] de la app


[0] https://en.wikipedia.org/wiki/Apple_Disk_Image
[1] http://izpack.org/
[2] http://izpack.org/documentation/izpack-utils.html
[3] https://coderwall.com/p/ssuaxa/how-to-make-a-jar-file-linux-executable
[4] http://launch4j.sourceforge.net/
[5] http://informagen.com/JarBundler/
[6] http://www.debianadmin.com/genisoimage-creates-iso-9660-cd-rom-filesystem-images.html
[7] https://wiki.archlinux.org/index.php/Xdg-open
[8] https://en.wikipedia.org/wiki/Property_list#Mac_OS_X
 

Kategoriak: Sailkatugabeak | Komentarioak desgaituta daude

¿Conoces el Marketplace de Liferay?

Hace ya un tiempo que Liferay Portal anunció su propio Marketplace de aplicaciones. Cómo sabéis en zylk.net desarollamos aplicaciones tanto para Liferay Portal como para Alfresco ECM en su market de addons y por eso vamos a dedicar una serir de post a analizar estos markets y contaros algunas cosas que hemos visto Itsaso ugalde y yo mismo en el market y que esperamos sean de vuestro interés.

Un marketplace es un portal online que permite a vendedores y compradores relacionarse para llevar a cabo una transacción comercial. En este caso aplicaciones compatibles con vuestro portal de Liferay. En palabras del propio Liferay su Markeplace es  "..an exciting new hub for selling, sharing, and downloading 
Liferay-compatible applications" 

Hemos realizado un análisis (Datos a Julio de 2015) de las aplicaciones para saber lo que podemos encontrar en el portal. Por ejemplo saber cuales cuantas veces se descargan, cual es el país o la empresa más aplicaciones aporta, cual es el coste medio de las mismas, el tipo de licencia que tienen, etc. Cosas como por ejemplo que a la fecha del análisis el Marketplace de Liferay tiene un total de 387 programas con más de 280.000 descargas;  25 de ellos son de pago el 6,46% y los otros 362 son gratuitos el 93,54% o, que por ejemplo; de las de las 127 empresas que ofrecen sus productos en el marketplace solo 17 son españolas. Todo esto os lo detallaremos en los siguientes post y, si queréis aportarnos algún dato vuestro o saber alguna cosa más no dudés en preguntarnoslo. Si tenemos la información identificada la compartimos con vosotros.

Para realizarlo hemos analizado una a una las fichas de los productos publicados en el Market. 

 

Para buscar una de las aplicaciones por ejemplo, lo hemos realizado así:

Simplemente con poner el nombre del programa hubiese servido, pero aquí en esta búsqueda hemos especificado también la categoría en la que se encuentra esta app.

Una vez que realiza la búsqueda, nos sale el programa que hemos buscado, junto con otros que tienen un nombre parecido o algunas mismas palabras. Entramos en la página del programa concreto que hemos buscado, en este caso Newsletter plugin by Zylk.net, y de ahí comenzamos con el análisis.


Como hemos marcado en la imagen anterior, los datos más importantes son los que están redondeados en verde. El primer dato son las descargas totales que tiene el producto, en este caso 123 descargas. El otro dato son las versiones necesarias para el uso de la app. Por supuesto un dato muy importante para todos los programas es el precio. Aquí en este caso, el programa es gratuito. Si fuese de pago, vendría abajo especificado el precio exacto así como cualquier otro coste que tuviese dicho programa. También es muy importante saber para qué versión es compatible. Recordad que con vuestra versión Enterprise contáis con algunas aplicaciones del Marketplace Extra que os harán ganar productividad.

Poniendo otro programa de Zylk.net como ejemplo, vamos a ver otros datos que utilizamos para nuestro análisis. Con CMIS content viewer os mostramos los votos y puntuaciones que se han dado a los programas.

Se nos muestra cual es la puntuación media del cliente y cuántas puntuaciones se le ha dado.

Esta demostración que os hemos enseñado con estos pantallazos, lo hemos hecho con todos los programas del marketplace de Liferay, en todas sus categorías. Más adelante en el blog os daremos más detalles. Mientras, podéis echarle un vistazo directamente al marketplace ver si encontráis alguna aplicación que cubra vuestras necesidades o directamente en las de zylk.net que ha desarrollado tres aplicaciones gratuitas para que las disfrutéis y que podéis descargar aquí. Y, si no,  siempre podéis encargarnos alguna para que evaluemos su desarrollo. :)

Kategoriak: Sailkatugabeak | Komentarioak desgaituta daude

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:
 
Kategoriak: Sailkatugabeak | Komentarioak desgaituta daude

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.

 

Kategoriak: Sailkatugabeak | Komentarioak desgaituta daude

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:

Kategoriak: Sailkatugabeak | Komentarioak desgaituta daude

El taller imprescindible para profesores de idiomas

Hoy os presentamos un un taller imprescindible para los profesionales de la enseñanza de idiomas, un taller en el que descubriréis una herramienta innovadora para practicar la expresión oral en cualquier idioma de manera autónoma.

Práctica oral y colaborativa de idiomas con Babelium

Dirigido a

  • Profesores o centros educativos dedicados a la enseñanza de idiomas
  • Empresas que necesiten mejorar las competencias de expresión oral en un idioma determinado de su equipo humano
  • Profesionales interesados en mejorar su expresión oral en un idioma determinado

Programa

  1. ¿Qué es Babelium?
  2. Vídeo ejercicios para la práctica oral de idiomas
  3. Como conseguir un vídeo-ejercicio y como crearlo
  4. Como editar un vídeo-ejercicio
  5. Como añadir subtítulos
  6. Licencias y recursos para publicar vídeo-ejercicios
  7. Creando vídeo ejercicios: practica oral
  8. Autoevaluación y evaluación colaborativa
  9. Evaluación del profesor – Criterios de evaluación

Metodología
Metodología basada en proyectos. A modo de proyecto los alumnos tendrán que preparar, desde cero, un par de vídeo-ejercicios para la práctica oral de un idioma, es decir, aprenderán a crear un vídeo sencillo paso a paso (o como descargarlo de diferentes fuentes, como por ejemplo YouTube ), como editarlo, como subirlo a Babelium, como subtitularlo y como publicarlo para que los alumnos practiquen. El primer ejercicio será de contenido libre y el segundo estará basado en contenido preparado previamente para este taller.

¡NO TE QUEDES SIN PLAZA!

Noiz eta non

button

El artículo El taller imprescindible para profesores de idiomas fué publicado originalmente en Elurnet Informatika Zerbitzuak S.L..

Kategoriak: Babelium, Formación, Jornadas | Komentarioak desgaituta daude

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 ....

Kategoriak: Sailkatugabeak | Komentarioak desgaituta daude