Instalar VirtualBox en Scientific Linux 5.5

Introducción.

El procedimiento se basa en el estándar para instalarlo en Red Hat Enterprise Linux o en sus derivados (como CentOS), sin embargo fue necesario realizar una pequeña modificación al archivo de configuración del repositorio ya que la versión que reporta SL ($releasever) es la 5.5 mientras que el repositorio está esperando un 5 (sin decimales) para que coincida con un directorio donde se encuentran los paquetes.

Instalación.

Descargar la especificación del repositorio.

# wget http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo

Actualizar la especificación del repositorio para que la versión reportada del sistema operativo coincida con el directorio de los paquetes.

# vi virtualbox.repo

(modificar la línea del baseurl como se muestra a continuación)

[virtualbox]
name=RHEL/CentOS-$releasever / $basearch - VirtualBox
## baseurl=http://download.virtualbox.org/virtualbox/rpm/rhel/$releasever/$basearch
baseurl=http://download.virtualbox.org/virtualbox/rpm/rhel/5/$basearch
enabled=1
gpgcheck=1
gpgkey=http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc

Mover la especificación del repositorio en su ubicación real.

# mv virtualbox.repo /etc/yum.repos.d/

Instalar VirtualBox.

# yum install VirtualBox

Reconfigurar el módulo del kernel.

# /etc/init.d/vboxdrv setup

Solución de problemas.

NMI watchdog activo.

Si durante la reconfiguración del módulo del kernel surgen problemas que sugieren revisar los mensajes del sistema de la siguiente manera.

# dmesg

Y en ellos aparecen mensajes como el siguiente, es necesario desactivar la función de NMI watchdog del kernel.

vboxdrv: NMI watchdog either active or at least initialized.  Please disable the NMI

Esto se realiza de la siguiente manera.

# vi /boot/grub/menu.lst

(agregar al final de la línea que empieza por kernel)

kernel ... nmi_watchdog=0

Reiniciar el sistema operativo para que el cambio realizados surtan efecto.

# reboot

Enlaces.

VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)

Instalar Polipo, un proxy web/caché en ArchLinux 2010.05 x64

Introducción.

Para hacer unas pruebas esta tarde necesito un proxy que haga caché sobre los datos descargados; inicialmente iba a instalar Squid sobre un Scientific Linux pero decidí hacerlo sobre ArchLinux, con el cual estoy jugando desde el día de ayer.  Leyendo la documentación del wiki de ArchLinux, que por cierto es muy buena, encontré que hacen referencia a Polipo, un software similar en funciones a Squid pero con mayores limitaciones y destinado a servidores con muy pocos usuarios.  Ese es mi caso, así que procedí a instalarlo en una máquina virtual con VirtualBox y 512MB de RAM.  Espero que aguante.

Instalación de los paquetes.

Desafortunadamente lo paquetes de Polipo no están disponibles en los repositorios, sin embargo estos pueden ser creados utilizando una facilidad interesante del sistema operativo.

Los siguientes pasos deben realizarse como un usuario sin privilegios.

Descargar la versión mas reciente de los archivos (sección de files) de Polipo de la siguiente ubicación.

http://aur.archlinux.org/packages.php?ID=14579

$ wget http://aur.archlinux.org/packages/polipo/polipo/PKGBUILD

$ wget http://aur.archlinux.org/packages/polipo/polipo/polipo.install

$ wget http://aur.archlinux.org/packages/polipo/polipo/polipo

Generar el paquete.

$ makepkg -s

Instalar el paquete recién generado.

$ sudo pacman -u polipo-1.0.4.1-1-x86_64.pkg.tar.xz

Configuración de Polipo.

Crear un archivo básico de configuración a partir de la plantilla.

$ sudo cp /etc/polipo/config-sample /etc/polipo/config

Permitir las conexiones externas, además de localhost.

$ sudo vi /etc/polipo/config

proxyAddress = “0.0.0.0″

Actualizar el archivo de inicio de Polipo.  Nótese en el script que por razones de seguridad se utilizará al usuario nobody para ejecutar el servicio.

$ sudo cp /etc/rc.d/polipo /etc/rc.d/polipo.orig

$ sudo vi /etc/rc.d/polipo

#!/bin/bash
. /etc/rc.conf
. /etc/rc.d/functions
DAEMON=polipo
ARGS="daemonise=true pidFile=/var/run/$DAEMON/$DAEMON.pid"
PID=`pidof -o %PPID /usr/bin/$DAEMON`
case $1 in
    start)
        stat_busy "Starting $DAEMON"
        rm /var/run/$DAEMON/$DAEMON.pid 2> /dev/null
        install -d /var/run/$DAEMON
        ## /usr/bin/$DAEMON $ARGS >/dev/null 2>&1
        sudo -u nobody /usr/bin/$DAEMON $ARGS >/dev/null 2>&1
        if [[ $? != 0 ]]; then
            stat_fail
        else
            add_daemon $DAEMON
            stat_done
        fi
    ;;
    stop)
        stat_busy "Stopping $DAEMON"
        kill $PID >/dev/null 2>&1
        if [[ $? != 0 ]]; then
            stat_fail
        else
            rm_daemon $DAEMON
            stat_done
        fi
    ;;
    purge)
        stat_busy "Purging polipo"
        [[ ! -d /var/run/polipo ]] && mkdir /var/run/polipo
        if ! ck_daemon polipo; then
            kill -USR1 $DAEMON >/dev/null 2>&1 || stat_die $?
            sleep 1
            /usr/bin/$DAEMON -x $ARGS >/dev/null 2>&1 || stat_die $?
            kill -USR2 $PID >/dev/null 2>&1 || stat_die $?
            stat_done
        else
            /usr/bin/$DAEMON -x $ARGS >/dev/null 2>&1 || stat_die $?
            stat_done
        fi
    ;;
    restart)
        $0 stop
        sleep 1
        $0 start
    ;;
    *)
        echo "usage: $0 {start|stop|restart|purge}"
    ;;
esac

Ajustes al sistema operativo.

Crear un proceso cron para purgar el servicio.

$ sudo vi /etc/cron.weekly/polipo

#!/bin/sh
/etc/rc.d/polipo purge >/dev/null 2>&1

$ sudo chmod +x /etc/cron.weekly/polipo

Crear las rutas necesarias para los archivos del proxy.

$ sudo touch /var/log/polipo

$ sudo chown nobody:nobody /var/log/polipo

$ sudo mkdir /var/run/polipo

$ sudo chown nobody:nobody /var/run/polipo

$ sudo mkdir /var/cache/polipo

$ sudo chown nobody:nobody /var/cache/polipo

Configurar el inicio automático de Polipo con el sistema operativo.

$ sudo vi /etc/rc.conf

DAEMONS=(syslog-ng network netfs polipo crond)

Prueba del caché.

Configure el proxy de Firefox o de cualquier otro cliente y acceda a los recursos que desee, estos deberán almacenarse en el caché por lo cual futuros accesos (recuerde limpiar el caché local de ser necesario para hacer mas confiable la prueba) deberían ser más rápidos.  Como ubicación del servidor de caché utilice la IP del servidor donde se instaló Polipo y el puerto -por defecto- 8123.

Enlaces.

VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)

Configurar el hostname en ArchLinux 2010.05 x64

Introducción.

Después de instalar ArchLinux su hostname es, si no fue modificado durante el proceso de instalación, myhost el cual no dice mucho de la destinación del servidor.  A continuación se presentan los breves pasos necesarios para configurar adecuadamente el hostname del servidor.

Configurar el hostname.

# vi /etc/rc.conf

HOSTNAME=”cache.jorgeivanmeza.com

Actualizar el archivo de hosts para que refleje los cambios del nuevo nombre.  En mi caso la dirección se obtiene por DHCP así que asocio el hostname a la dirección local, si fuera estática sería conveniente hacerlo a esta.

# vi /etc/hosts

127.0.0.1     cache.jorgeivanmeza.com cache localhost.localdomain localhost

Reiniciar el servidor para que los cambios sean tenidos en cuenta.

# reboot

Enalces.

VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)

Instalación de XFCE4 en ArchLinux 2010.05 x64

Introducción.

Después de ver lo fácil que fue instalar LXDE en mi máquina con ArchLinux, hoy quise tomarme unos minutos para probar otro de los manejadores de ventanas que me llaman la atención porque a pesar de su funcionalidad son bastante livianos: XFCE.  El procedimiento es, de igual manera, muy simple y rápido.

Instalación.

Instalar los paquetes necesarios.

# pacman -S xfce4 gnome-icon-theme dbus gamin

Configurar el inicio automático de los demonios requeridos.

# vi /etc/rc.conf

DAEMONS=(syslog-ng network netfs dbus hal crond)

Configurar la sesión del usuario.

# vi ~/.xinitrc

exec ck-launch-session startxfce4

# startx

XFCE4 corriendo en ArchLinux

XFCE4 corriendo en ArchLinux

Enlaces.

VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)

Crear un usuario sin privilegios y activar sudo en ArchLinux 2010.05 x64

Introducción.

Para el uso cotidiano del servidor es conveniente crear un usuario sin privilegios que acceda temporalmente a los privilegios de root unicamente en los momentos exactos en que se vayan a desarrollar tareas administrativas.  Para hacer esto es necesario instalar y configurar el comando sudo tal y como se muestra a continuación.

Crear un usuario sin privilegios.

Crear al usuario jimezam en el sistema operativo.  Modifique el nombre de usuario y nombre real de acuerdo a sus necesidades.

# /usr/sbin/useradd -m -g users -s /bin/bash -c “Jorge Ivan Mezajimezam

Asignar una contraseña para el usuario recién creado.

# passwd jimezam

Instalar y configurar sudo.

El comando sudo tiene varias ventajas sobre el uso directo del usuario root: autoriza a usuarios específicos, los registros se realizan según el usuario que lo invocó, utiliza la contraseña del mismo usuario así que no es necesario divulgar la contraseña explícita del usuario root, entre otras.

Instalar el paquete de sudo.

# pacman -S sudo

Configurar a sudo para que autorice su uso a todos los usuarios que pertenezcan al grupo wheel.

# visudo

%wheel      ALL=(ALL) ALL

Editar la usuario recién creado para que pertenezca al grupo wheel y por ende, pueda utilizar sudo.

# usermod -G wheel jimezam

Configurar los insultos de sudo.

Una opción adicional pero divertida que descubrí revisando la documentación de ArchLinux es que es posible indicarle al sudo que insulte al usuario cuando este ingresa incorrectamente su contraseña, esto en lugar del simple y plano mensaje de “wrong password“.

Para hacer esto es necesario indicarle a la configuración de sudo que estamos interesados en activar los insultos.

# visudo

Defaults insults

Algunos de los insultos que recibí cuando intenté utilizar sudo pero ingresé mal mi contraseña, fueron los siguientes.

  • It’s your word against mine.
  • My pet ferret can type better than you!
  • BOB says:  you seem to have forgotten your passwd, enter another!
  • It can only be attributed to human error.
  • Sorry about this, I know it’s a bit silly.
  • You silly, twisted boy.
  • ... and it used to be so popular ...
  • Have a gorilla ...
  • You do that again and see what happens...

Enlaces.

VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)

Instalación básica de X y LXDE en ArchLinux 2010.05 x64

Introducción.

Como siguiente paso después de la instalación y actualización de ArchLinux me dí a la tarea de instalarle el ambiente grafico (X) y un manejador liviano de ventanas llamado LXDE que desde hace unos días quería probar.  Los pasos descritos a continuación fueron muy simples y funcionaron en el primer intento.

Instalación de X.

Instalar los paquetes base del servidor de ventanas.

# pacman -S xorg xorg-xinit

Determinar cual el chipset de video utilizado.  Para hacer esto ejecute el siguiente comando en un shell.

# /usr/sbin/lspci | grep VGA

Determinar cual es el driver mas apropiado según el chipset identificado.  Para hacer esto ejecute el siguiente comando y ubique el nombre del driver que habrá de instaslarse.

# pacman -Ss xf86-video | less

En mi caso el chipset es VirtualBox ya que estoy ejecutando una máquina virtual en este software.  Debido a que el repositorio no cuenta con este tipo de driver, utilizo entonces el mas genérico: vesa.  Modifique la siguiente línea para instalar el driver específico según su hardware.

# pacman -S xf86-video-vesa

Instalar los drivers para los dispositivos de entrada: ratón y teclado estándares.

# pacman -S xf86-input-keyboard xf86-input-mouse

Si cuenta con dispositivos de entrada adicionales, verifique e instale el driver apropiado.  Para determinar los drivers disponibles para dispositivos de entrada, ejecute el siguiente comando.

# pacman -Ss xf86-input | less

Probar la instalación del servidor de ventanas.  Para hacer esto se confiará en la autoconfiguración del mismo, por lo tanto no se realizarán pasos adicionales en su configuración.

Configurar al servidor X para que inicie automáticamente una ventana de terminal al iniciarse.  Se crea un nuevo archivo de configuración de recursos de X para el usuario actual a partir de la plantilla estándar.

# cp /etc/skel/.xinitrc ~/

Se especifica que inicie automáticamente una terminal (xterm).

# vi ~/.xinitrc

#!/bin/sh
#
# ~/.xinitrc
#
# Executed by startx (run your window manager from here)
#
# exec wmaker
# exec startkde
# exec icewm
# exec blackbox
# exec fluxbox
# exec openbox-session

exec xterm

Iniciar el servidor de ventanas.

# startx

En este punto deberá iniciarse X exitosamente y mostrar gráficamente una terminal, la cual por obvias razones deberá aparecer sin marco y sin las demás abstracciones que provee un manejador de ventanas que aún no hemos instalado.

Escriba el siguiente comando para terminar la sesión X y volver a la línea de comando.

$ exit

Instalar LXDE como manejador de ventanas.

Instalar las fuentes básicas necesarias.

# pacman -S ttf-ms-fonts ttf-dejavu ttf-bitstream-vera

Instalar gamin para el monitorio de sistema de archivos.

# pacman -S lxde gamin

Actualizar el archivo de configuración de recursos de X del usuario para iniciar automáticamente LXDE con el servidor de ventanas.

# vi ~/.xinitrc

...
# exec xterm
exec ck-launch-session startlxde

Iniciar el servidor de ventanas.

# startx

LXDE corriendo en ArchLinux

LXDE corriendo en ArchLinux

Enlaces.

VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)

Actualizar los paquetes de GNU ArchLinux 2010.05 x64

Introducción.

Hoy para relajar un poco mi mente después de tanto trabajo que he tenido este mes y en especial este fin de semana extra largo, me decidí por hacer una instalación de ArchLinux en mi portátil en una máquina virtual basada en VirtualBox.  Había oído buenas referencias de él, especialmente que era reconocido por tener una instalación muy limpia en la que se instalaba única y exclusivamente el software necesario, evitando los montones de paquetes que muchas distribuciones instalan sin darnos cuenta y que terminan siendo inútiles, consumiendo recursos y siendo posibles problemas de seguridad.  Finalmente unos segundos después de instalarlo me dí cuenta que esa fama era cierta, la instalación es rápida y básica.

Después de inciar el sistema por primera vez se cuenta con pocas herramientas y se hace necesario actualizar el sistema operativo y empezar a instalar el software que se requiera.  Acostumbrado al rpm/yum/zypper/apt-get/aptitude de las distribuciones que mas utilizo, he sentido lo mismo que hace un poco mas de una década cuando empezaba a utilizar Linux.  ArchLinux utiliza pacman, con el cual he tenido muy pocos encuentros; de ahí a que sea interesante documentar estos pasos que se describen a continuación.

Actualizar el sistema operativo.

Tan pronto como se instala el sistema operativo y se inicia por primera vez es necesario activar los repositorios (si no se hizo durante el proceso de instalación como en mi caso) a los que se desea acceder.  Para hacer esto edite el siguiente archivo y remueva los comentarios de algunos servidores que se ubiquen en o cerca de su país.  En mi caso, activé a los ubicados en estados unidos.

# vi /etc/pacman.d/mirrorlist

(remover los comentarios de los servidores cercanos)

Posteriormente actualice la información de los paquetes provenientes de los repositorios.

# pacman --sync --refresh

Realice la actualización del sistema operativo.  Probablemente durante la primera ejecución actualice al mismo pacman por lo que es probable que deba ejecutar este comando varias veces.

# pacman --sync --sysupgrade

Optimizar el listado de repositorios disponible.

algo interesante que se puede hacer con este sistema operativo es pedirle que seleccione los mejores repositorios nosotros (que respondan mas rápido me imagino), esto se hace utilizando el comando rankmirrors.

Para hacer esto es necesario instalar curl y python si aún no se cuenta con ellos.

# pacman --sync curl python

Crear una copia de seguridad del listado de repositorios disponibles.

# cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.backup

Activar (quitar el comentario) los repositorios que se encuentren cerca de nosotros.

# vi /etc/pacman.d/mirrorlist.backup

(en mi caso activé los ubicados en Brasil, Canada, Chile y Estados Unidos).

Solicitar la elección de los 7 mejores repositorios en el listado especificado.

# rankmirrors -n 7 /etc/pacman.d/mirrorlist.backup > /etc/pacman.d/mirrorlist

Forzar el refresco de la información que se conoce de los repositorios para que los nuevos repositorios sean tenidos efectivamente en cuenta.

# pacman --sync --refresh --refresh

Enlaces.

VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)

Instalación de WiiPresent 0.7.5.2 en GNU/Linux Ubuntu 10.04

Introducción.

Casualmente hoy, hace exactamente un año estaba probando la instalación de WiiPresent 0.7.2 en Ubuntu 9.04, recuerdo que fue terrible, identificar cuales eran las librerías necesarias fue una odisea y compilar, instalar y hacer funcionar las versiones correctas fue un caos.  No tengo buenos recuerdos de ese software.

Ahora para honrrar esos recuerdos, hoy 20 de julio, decidí volver a probar con la versión mas reciente de WiiPresent para ver que tanto ha evolucionado.  Por suerte ya no estan presentes los problemas de librerías y todo es fácil de instalar mediante aptitude.

WiiPresent es una aplicación simple pero muy útil que nos permite manipular las funciones mas utilizadas de los programas de presentaciones (OpenOffice Presentations o Microsoft PowerPoint) mediante el wiimote.  Adicionalmente tiene otras funcionalidades que lo complementan de manera elegante, como la capacidad de controlar el ratón con el acelerómetro o el indicar cuanto tiempo ha pasado de presentación mediante los leds del control y la vibración cada 10 minutos.

Desde el punto de vista funcional tiene una cobertura muy específica: dar soporte a la realización de presentaciones; mientras que otros aplicativos de los que he publicado en anteriormente permiten una mayor flexibilidad y configuración.

Instalación.

Instalar las librerías necesarias.

$ sudo aptitude install libcwiimote3 libcwiimote-dev libx11-dev libxtst-dev

Descargar la última versión disponible de WiiPresent de la siguiente ubicación.

http://dag.wieers.com/home-made/wiipresent/

En este caso, la última versión disponible es la 0.7.5.2.

$ wget http://dag.wieers.com/home-made/wiipresent/wiipresent-0.7.5.2.tar.bz2

Descomprmir las fuentes.

$ bzip2 -d wiipresent-0.7.5.2.tar.bz2

$ tar xvf wiipresent-0.7.5.2.tar

Compilar el software.

$ make

Instalar el software.  Este paso es opcional, es posible ejecutar el software desde la misma ubicación donde acaba de ser compilado.

$ sudo make install prefix=”/usr/local”

Ejecutar el software.

Hay varias opciones interesantes que se pueden utilizar al momento de ejecutar la aplicación.

Modo presentación, se reconecta automáticamente si hay algún problema con la conexión.

$ wiipresent --reconnect --verbose

Especifica la dirección del wiimote, de lo contrario es necesario presionar los botones 1 y 2 del mismo para emparentarlo.  La dirección del wiimote se puede obtener mediante el comando hcitool scan.

$ wiipresent --verbose --bluetooth=XXXXXXX

Utiliza el sensor infrarrojo y una barra sensora para mover el cursor.

$ wiipresent --verbose --infrared

Utiliza el acelerómetro para mover el cursor.

$ wiipresent --verbose --tilt

Indica la duración de la presentación.

$ wiipresent --verbose --length=minutos

La mayoría de estas opciones puede combinarse para lograr una mayor interacción con el wiimote.

Manipulación de la presentación.

Estas son las acciones que permite ejecutar WiiPresent para interactuar con la presentación.

Siguiente slide A ó FLECHA_DERECHA
Slide anterior FLECHA_IZQUIERDA
Poner/Quitar pantalla completa BOTON_1
Aumentar/disminuír zoom/volúmen BOTON_+ / BOTON_-
Cambiar entre aplicaciones BOTON_B + FLECHA_DERECHA
Pantalla negra + silencio BOTON_B + BOTON_2
Escritorio siguiente BOTON_B + BOTON_+
Escritorio anterior BOTON_B + BOTON_-

Enlaces.

VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)

Instalación de Wiican 0.2.1 en GNU/Linux Ubuntu 10.04

Introducción.

Después de probar hace un tiempo con wiipresent y CWiid ahora he encontrado a un nuevo contendor: Wiican que tiene un poco mas de GUI y varias promesas para la futura versión 0.3, la cual aparentemente está en progreso.  En su propio sitio web se describen de la siguiente forma.

WiiCan assists on configuration and management of your wiimote under GNU/Linux. It tracks bluetooth connectivity and allows to use and create mappings to adapt your wiimote for use on any application.

Esta sencilla aplicación que se integra a la barra de tareas y ha sido desarrollada en Python, permite de igual manera establecer perfiles para relacionar los botones y movimientos del Wiimote con eventos de la interfaz del sistema operativo, para con ellos controlar las diversas aplicaciones que se ejecutan.

La última versión disponible es la 0.2.1 que fue liberada el 2 de febrero del 2010.

Instalación.

Agregar el repositorio de Wiican a Ubuntu.

$ sudo add-apt-repository ppa:wiicanteam/ppa

Actualizar la lista de paquetes conocida.

$ sudo aptitude update

Instalar Wiican desde el nuevo repositorio.

$ sudo aptitude search wiican

Iniciar automáticamente el módulo de udev con el sistema operativo (si aún no se cuenta con él).

$ sudo -i “echo udev >> /etc/modules”

Iniciar manualmente (necesario únicamente por esta vez gracias al paso anterior) el servicio de udev.

$ sudo service udev start

Iniciar la aplicación.

Seleccione el menú Applications > Accessories > Wiican o ejecute el siguiente comando en el shell.

$ /usr/bin/wiican

Uso.

Al ejecutarse la aplicación agrega un nuevo ícono en la barra de tareas.

Ícono de la barra de tareas asociado a Wiican

Si se hace clic izquierdo sobre el ícono de Wiican se obtendrá la posibilidad de desconectar el wiimote (si hubiera uno conectado previamenta) y un listado de los perfiles disponibles.  Inicialmente se cuenta con dos perfiles: uno para controlar el ratón con el acelerómetro y otro para controlar el juego de Neverball.

Opciones del clic izquierdo.

Haga clic sobre uno de los perfiles para activarlo y presione los botones 1 y 2 del wiimote para emparentar el control y utilizar la aplicación.

Si hace clic derecho sobre el ícono de Wiican tendrá acceso a la opción de configuración y a terminar la aplicación.

Opciones del clic derecho

Enlaces.

VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)

Modo de mantenimiento de WordPress 3

Cuando se realizan actualizaciones WordPress 3 pasa automáticamente a un modo de mantenimiento, es decir, nadie puede acceder al sitio durante la actualización.  Si alguien consulta el blog obtendrá un mensaje como el siguiente.

No disponible por mantenimiento programado. Vuelve a comprobarlo en unos minutos. Gracias

O su versión en inglés.

Briefly unavailable for scheduled maintenance. Check back in a minute.

Algunas veces algo falla en la actualización, frecuentemente me ha sucedido durante la actualización de plugins, y el modo mantenimiento no se restaura automáticamente queda el sitio aisaldo.

Para corregir este problema es necesario acceder al sistema de archivos del sitio y remover un archivo llamado .maintenance en la raíz del blog.

VN:F [1.9.3_1094]
Rating: +1 (from 1 vote)