lunes, octubre 27, 2014

Recuperando información de discos y CD-ROMs dañados

Comenzaremos por la instalación de las herramientas necesarias, en Ubuntu:

sudo apt-get install gddrescue
sudo apt-get install foremost
sudo apt-get install testdisk

sudo apt-get install dvdisaster



Vamos a tratar de recuperar un CD-ROM completo mediante :

ddrescue -b 2048 /dev/sr0 /home/nacho/imagen.iso ficherolog


Luego podemos montar la imagen obtenida para ver si hemos tenido éxito:

sudo mount -o loop imagen.iso /mnt/

También se puede intentar recuperar a nivel de ficheros, mediante  foremost:

foremost -wT -t all -i /dev/sr0 -o carpeta-destino




Más información sobre recuperación de información:
https://help.ubuntu.com/community/DataRecovery

domingo, octubre 19, 2014

Conectar Dolibarr con otra aplicación mediante un servicio SOAP

Para conectar con Dolibarr otras aplicaciones, como un carrito de la compra, puede ser muy interesante utilizar los "Web Services" que nos ofrece Dolibarr.

Para activarlos tenemos que ir a Configuración-> Módulos-> Módulos Interfaz y poner a ON los WebServices. También hay que configurar la clave para usar los Web Services (parámetro "dolibarrkey" en webservices). Indicamos una palabra clave que se nos ocurra como por ejemplo: $5x8Cd45Cadec_f?K y pulsamos salvar.


A continuación muestro un ejemplo con Python y la librería suds para obtener una factura:

from suds.client import Client

client = Client('http://www.midominio.es/dolibarr/webservices/server_invoice.php?wsdl')
auth = client.factory.create('authentication')
auth.dolibarrkey='$5x8Cd45Cadec_f?K'
auth.sourceapplication=''
auth.login='usuario'
auth.password='clave'
auth.entity=''

result = client.service.getInvoice(auth,'1')
print result


Otro ejemplo para la creación de un factura:

from suds.client import Client
import datetime


client = Client('http://www.midominio.es/dolibarr/webservices/server_invoice.php?wsdl')

auth = client.factory.create('authentication')
auth.dolibarrkey='
$5x8Cd45Cadec_f?K'
auth.sourceapplication=''
auth.login='usuario'
auth.password='clave'
auth.entity=''

invoice = client.factory.create('invoice')
invoice.date = datetime.datetime.now()
invoice.type=0
invoice.note=''
invoice.note_public='nota publica'
invoice.thirdparty_id=1 # Cliente
invoice.ref_ext=''
invoice.project_id=''

lineas = client.factory.create('LinesArray2')

line = client.factory.create('line')
line.desc='descripcin'
line.type=1
line.product_id=''
line.vat_rate=21
line.qty=1
line.total_net=25
line.total_vat=5.25
line.total=27.5

lineas.line.append(line)
invoice.lines=lineas

result = client.service.createInvoice(auth,invoice)

print result

jueves, octubre 16, 2014

Manipulando ficheros OpenXPS en Ubuntu

Para visualizar un fichero OpenXPS (Open XML Paper Specification) con extesión .xps o .oxps en Ubuntu podemos utilizar evince (en su últimas versiones) u Okula (del proyecto KDE).

Pero no se puede imprimir desde Okular debido a un bug (https://bugs.kde.org/show_bug.cgi?id=245912) en el programa, por lo que será necesario convertir el fichero en PDF para su impresión.

Procedemos a instalar el conversor mediante:

sudo apt-get install libgxps-utils

Y para convertir el fichero:

xpstopdf el-fichero.xps fichero.pdf

sábado, octubre 11, 2014

CentOS release 6.5 (Final) con versión superior a PHP 5.3.10 para funcionar con Joomla

Podemos utilizar el repositorio SCL para instalar PHP 5.4.16:


yum install centos-release-SCL
yum install php54 php54-*

Activamos el nuevo php:

source /opt/rh/php54/enable




Reiniciamos Apache para que tome la nueva configuración:

/etc/init.d/httpd restart






Pero si estas utilizando Plesk necesitas hacerle saber de la nueva configuración de PHP:

/usr/local/psa/bin/php_handler --add -displayname 5.4.16 -path /opt/rh/php54/root/usr/bin/php-cgi -phpini /opt/rh/php54/root/etc/php.ini -type fastcgi


Ahora tendremos que desde el panel de plesk acceder a inicio-> herramientas y configuración -> configuración del servidor web apache y seleccionar el módulo php54-php5 y desactivar el php5.



Ya está listo con PHP 5.4.16


Fuente de información: http://www.funkertosh.com/2014/07/25/lions-centos-6-plesk-joomla-and-php-oh-my/

jueves, octubre 02, 2014

OpenERP 7 y la actualización de Ubuntu 12.04 a Ubuntu 14.04

Tras la actualización del servidor de Ubuntu 12.04 a la nueva versión 14.04 OpenERP ha dejado de funcionar por un problema con la configuración de los idiomas en python, a continuación se muestra el log del servidor:

Traceback (most recent call last):
  File "/opt/openerp7/server/openerp/addons/web/http.py", line 203, in dispatch
    response["result"] = method(self, **self.params)
  File "/opt/openerp7/server/openerp/addons/web/controllers/main.py", line 701, in bootstrap_translations
    translations_per_module[addon_name] = {'messages': _local_web_translations(f_name)}
  File "/opt/openerp7/server/openerp/addons/web/controllers/main.py", line 493, in _local_web_translations
    for x in po:
  File "/usr/lib/python2.7/dist-packages/babel/messages/catalog.py", line 552, in __iter__
    for name, value in self.mime_headers:
  File "/usr/lib/python2.7/dist-packages/babel/messages/catalog.py", line 337, in _get_mime_headers
    locale='en')))
  File "/usr/lib/python2.7/dist-packages/babel/dates.py", line 609, in format_datetime
    locale = Locale.parse(locale)
  File "/usr/lib/python2.7/dist-packages/babel/core.py", line 313, in parse
    raise UnknownLocaleError(input_id)
UnknownLocaleError: unknown locale 'en'


Para resolver este problema basta con reinstalar python-babel-localedata:

  sudo apt-get install --reinstall python-babel-localedata

miércoles, octubre 01, 2014

Envío masivo de correos personalizados mediante Thunderbird y Mail Merge

Seguramente hayas necesitado enviar correos electrónicos a muchas personas sobre un mismo asunto pero te hubiera gustado que hubieran llegado con su nombre y a su dirección de correo (no en un saco de direcciones de copia oculta). Esto es realmente sencillo con Thunderbird y el complemento Mail Merge.

Primero, como es lógico, necesitamos Thunderbird instalado y configurado con la cuenta de correo electrónico que vamos a utilizar para realizar el envío masivo.

Ahora accede a Herramientas-> Complementos y busca "mail merge", este aparecerá en la lista de resultados y pulsaremos en el botón de instalar. Reiniciamos Thunderbird para que se active el complemento.


Llega el momento interesante, crea un nuevo correo electrónico de forma habitual y redacta el correo que deseas enviar de forma masiva. En el destinatario indica {{correo}} y en el cuerpo de correo {{nombre}}




Y ahora llega la hora de la verdad, pulsa sobre Archivo -> Mail Merge.



Obtendremos un dialogo donde tendremos que indicar la fuente (source) de nuestra lista de correos a los que deseamos escribir, seleccionaremos la opción CSV. Pues se puede utilizar la libreta de contactos de Thunderbird pero lo habitual será obtener de alguna base de datos un listado de correos que tendremos que convertir en un fichero CSV. Esto es muy  sencillo con una hoja de calculo, por ejemplo en LibreOffice.

El fichero CSV tendrá dos columnas, una con las direcciones de correo y la otra con los nombres. En la primera fila tendrán sus nombres (que son las variables que hemos utilizado al redactar el correo): correo y nombre. Veamos un ejemplo de fichero CSV:

correo,nombre 
correodeejemplo@undominio.com,Nombre de la persona
otrocorreo@sudominio.es,otro nombre
mascorreos@dominio.mx,su nombre


En la sección de CSV tendremos que facilitar el fichero (file) que hayamos preparado con las direcciones, junto con la dirección podemos almacenar el nombre del destinatario. Por lo que tendremos que fijarnos en nuestro CSV si ha separado los campos con comas (,) o con punto y coma (;) e indicarlo como delimitador de campo (field delimiter).


Finalmente pulsamos aceptar y se generan tantos correos electrónicos como tengamos en nuestro fichero CSV. Dependiendo del número de destinatarios esto puede tardar un rato. Pero ojo aún no se han enviado los correos, estos se encuentran en la Bandeja de salida.


Podemos revisar primero que los correos se han generado correctamente y en se momento Archivo -> Procesar mensajes no enviados.

También se nos queda guardado el correo inicial en plantillas por si necesitamos volver a realizar un correo masivo similar.