Utilizar GMail como SmartHost desde Linux Debian 5

Introducción.

Un servidor que utilizo frecuentemente para el desarrollo de aplicaciones web que se encuentra basado en Debian 5 no estaba enviando los correos de las aplicaciones ni de un par de scripts que había escrito hace un tiempo para la creación de copias de seguridad.

Al revisar los logs encontré este mensaje: Mailing to remote domains not supported.

La solución es realizar la configuración del Exim 4, sin embargo tenía un detalle adicional que lo hacía interesante.  Para la empresa propietaria del servidor estoy utilizando Google Apps para gestionar su correo electrónico, así que el SmartHost tenía que ser con GMail, SSL (el puerto indicado) y autenticación.

Procedimiento.

Para este procedimiento se supone que el nombre del servidor es desarrollo.dominio.com.

1. Crear una cuenta de correo en GMail/Google Apps para el relay del servidor de correo.

Nombre de usuario: desarrollo_relay
Contraseña: password_relay

2. Realizar la configuración de Exim.

$ su –

$ dpkg-reconfigure exim4-config

  • General type of mail configuration: mail sent by smarthost; received via SMTP or fetchmail
  • System mail name: localhost
  • Ip Address to listen on: 127.0.0.1
  • Other destinations~: desarrollo.dominio.com
  • Machines to Relay for: <vacío>
  • IP address or hostname of the outgoing smarthost: smtp.gmail.com::587
  • Hide local mail name in outgoing mail: No
  • Keep number of DNS queries minimal: No
  • Delivery method for local mail: mbox format in /var/mail/
  • Split configuration into small files: Yes

3. Configurar la información del cliente de acceso.

$ vi /etc/exim4/passwd.client

gmail-smtp.l.google.com:desarrollo_relay@dominio.com:password_relay
*.google.com:desarrollo_relay@dominio.com:password_relay
smtp.gmail.com:desarrollo_relay@dominio.com:password_relay

$ chmod 640 /etc/exim4/passwd.client

$ chown root:Debian-exim /etc/exim4/passwd.client

4. Actualizar la lista de correspondencias de direcciones de correo.

$ vi /etc/exim4/email-addresses

root@localhost:    desarrollo_relay@dominio.com

$ chmod 640 /etc/exim4/email-addresses

5. Verifique la configuración actual del Exim.

$ vi /etc/exim4/update-exim4.conf

dc_eximconfig_configtype=’smarthost
dc_other_hostnames=’desarrollo.dominio.com
dc_local_interfaces=’127.0.0.1
dc_readhost=’desarrollo.dominio.com
dc_relay_domains=”
dc_minimaldns=’false
dc_relay_nets=”
dc_smarthost=’smtp.gmail.com::587
CFILEMODE=’644
dc_use_split_config=’true
dc_hide_mailname=’false
dc_mailname_in_oh=’true
dc_localdelivery=’mail_spool

6. Reiniciar el servicio del MTA.

$ /etc/init.d/exim4 restart

Enlaces.

Concatenar o separar segmentos de documentos PDF

Cómo concatenar archivos PDF ?

$ pdftk (<archivos a concatenar>)+ cat output <archivo resultante>

$ pdftk a.pdf b.pdf c.pdf cat output all.pdf

Cómo extraer un segmento de un archivo PDF ?

$ pdftk (NOMBRE=archivo.pdf)+ cat (NOMBRE{RangoInicial}-{RangoFinal})+ output <archivo resultante>

$ pdftk A=one.pdf B=two.pdf cat A1-5 B10-20 output section.pdf

Enlaces.

Agregar soporte de MP3 en Ubuntu 9.04

Introducción.

Por defecto, la instalación de Ubuntu no incluye el soporte para el formato MP3 así que sólo es posible codificar archivos en formato OGG que es mejor pero la gran mayoría de los reproductores [físicos] de audio aún no lo soportan.  Por suerte la instalación del soporte para el formato es muy sencilla.

Instalación.

$ sudo aptitude install gstreamer0.10-plugins-ugly-multiverse

Extracción y codificación de MP3.

Iniciar Applications > Sound & Video > Rhythmbox Music Player.

Configurar a Rhythmbox para que se utilice a MP3 como formato por defecto.

Seleccionar el menú Edit > Preferences y seleccione la etiqueta Music.

En el campo Preferred format elija la opción CD Quality, MP3 (.mp3 type).

MusicPreferences

Si desea modificar la calidad del archivo MP3 generado realice los siguientes pasos adicionales.  Por defecto se generan con un bitrate de 128 Kbps.

Presione el botón Edit para modificar el formato seleccionado: MP3.

Seleccione el perfil CD Quality, MP3 o cree uno nuevo.  Presione el botón Edit del diálogo.

Modifique el campo GStreamer pipeline con la siguiente cadena.

audio/x-raw-int,rate=44100,channels=2 ! lame name=enc mode=0 vbr-quality=6 bitrate=192 ! id3v2mux

Edite los valores de las variables rate, channels y bitrate según sus preferencias.

Seleccione las canciones que se desean codificar.

Presione el botón de extracción: ExtractButton

Los archivos de las canciones codificadas se almacenan en la ubicación especificada en las preferencias bajo Library Location > Music files are placed in, cuya ruta es por defecto: ~/Music.

Enlaces.

Actualización del Kernel en Ubuntu 9.04

Introducción.

El día de hoy voy a actulizar el kernel del equipo de la oficina que tiene actualmente un 2.6.28-11-generic #42-Ubuntu SMP.  La nueva versión será la 2.6.29-4.

Supuestamente la versión actual tiene algunos problemas, en particular con las tarjetas de video Intel.  A pesar de que la tarjeta de video de este equipo es NVidia 7x si he notado a esta nueva versión de Ubuntu mas lenta, especialmente en temas de manejo de ventanas, así que voy a experimentar con la actualización a ver si se mejoran.

La versión 2.6.30 se encuentra disponible desde el día de ayer sin embargo leí en varios foros acerca de la posible incompatibildad con cierto hardware así que prefiero ir dando un pasito a la vez.

Procedimiento.

Descargar los paquetes requeridos del Kernel.

$ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.29.4/linux-headers-2.6.29-02062904-generic_2.6.29-02062904_i386.deb

$ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.29.4/linux-headers-2.6.29-02062904_2.6.29-02062904_all.deb

$ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.29.4/linux-image-2.6.29-02062904-generic_2.6.29-02062904_i386.deb

Instalar los paquetes del Kernel.

$ sudo dpkg -i linux-headers-2.6.29-02062904-generic_2.6.29-02062904_i386.deb linux-headers-2.6.29-02062904_2.6.29-02062904_all.deb linux-image-2.6.29-02062904-generic_2.6.29-02062904_i386.deb

Reiniciar el sistema.

$ sudo reboot.

Enlaces.

Instalación de la plataforma Arduino 0016 en Linux Ubuntu 9.04

Procedimiento.

Instalar Java.

$ sudo aptitude install sun-java6-jre

$ sudo update-alternatives –config java

Instalar otras dependencias requeridas.

$ sudo aptitude install gcc-avr avr-libc

Descargar la última versión de Arduino disponible en http://arduino.cc/en/Main/Software.

$ cd ~/ & mkdir Arduino & cd Arduino

$ wget http://arduino.googlecode.com/files/arduino-0016-linux.tgz

$ tar zxvf arduino-0016-linux.tgz

Conectar la tarjeta al computador a través del cable USB.

$ cd arduino-0016/

$ ./arduino

Seleccionar el puerto serial (emulado) en el cual se encuentra la tarjeta.

Elija el menú Tools > Serial Port.

Seleccione el puerto USB disponible, probablemente sea /dev/ttyUSB0.

Enlaces.

Una primera mirada a Arduino

Introducción.

  • Es una plataforma de hardware y software de código abierto.
  • Por este motivo, es posible obtener los planos del circuito, adquirir los componentes y ensamblar las tarjetas sin pagar ningún tipo de licenciamiento o de regalías.  De igual manera, también es posible adquirir la tarjeta ya ensamblada.
  • Su costo es bajo con respecto a soluciones análogas.
  • Fue diseñada pensando en los artistas, diseñadores, entusiastas y en cualquiera interesado en crear objetos y ambientes interactivos.
  • Su principal virtud es la de permitir crear prototipos de manera rápida y flexible, evitando la necesidad de desarrollar todo desde cero.
  • Permite percibir el ambiente mediante gran cantidad de sensores e interactuar con él mediante la manipulación de distintos actuadores.
  • El microcontrolador se programa en el lenguaje de Arduino el cual se basa en Wiring y que a su vez es similar en su sintáxis al lenguaje C.
  • Los proyectos desarrollados con esta plataforma pueden actuar de manera independiente o hacerlo directamente con el software en un computador.
  • Su ambiente de desarrollo es multiplataforma, se ejecuta en Windows, Macintosh OS X y Linux.
  • Su conexión se realiza vía USB en lugar de Serial.
  • Su comunidad de usuarios es muy activa y la liberación de mejoras es frecuente.

La plataforma.

  • Se encuentra formada por dos partes fundamentales.
    • El hardware: la tarjeta Arduino.
    • El software: el Arduino IDE (Integrated Development Enviroment).
  • Al ser una solución de alto nivel que combina el hardware con el software permite la modificación ágil y flexible de los prototipos elaborados.

El hardware.

  • La tarjeta Arduino se basa en el microcontrolador ATmega168.
  • Su conexión con el computador es a través del puerto USB.
  • Existen varias versiones de la tarjeta.
  • Cuenta con pines análogos y digitales de entrada y de salida.
  • Su alimentación se puede proveer a tarvés del puerto USB, de cargadores USB y de adaptadores AC de 9v.

El software.

  • Permite el desarrollo de los sketch (programas).
    • Escritura.
    • Verificación (verify).
    • Conversión a lenguaje C.
    • Compilación.
    • Carga en la tarjeta (upload).

Enlaces.