Emesene – Instalar corrector ortográfico

Las pruebas fueron realizadas en Debian Lenny con los repositorios Sid.

Emesene es un cliente de mensajería instantánea de código abierto, multiplataforma, que además de muchas otras funciones, tiene soporte para plugins. entre estos plugins tenemos la posibilidad de utilizar un corrector ortográfico en tiempo real.

Para ver los complementos disponibles, una vez iniciado Emesene, en el menú Opciones, Complementos, en nuestro caso es el plugin “Corrector ortográfico” que por defecto está desmarcado. Al intentar habilitarlo puede mostrarse el siguiente error:

Necesita instalar gtkspell (python-gnome2-extras) para usar el complemento Corrector ortográfico

El paquete necesario es python-gtkspell y podemos instalarlo ejecutando el siguiente comando en una terminal como root:

# apt-get install python-gtkspell

Luego de reiniciar Emesene, es posible que el plugin esté habilitado, pero al abrir una ventana de conversación nos muestre el siguiente error:

Error applying Spell to input (enchant error for language: ) Plugin disabled

Esto sucede porque intenta utilizar el idioma por defecto que es el Ingles. Para resolver este problema hay que indicarle cual es el idioma a utilizar, para eso en una terminal, logueado como usuario común (no root), ejecutamos el siguiente comando:

$ nautilus ~/.config/emesene1.0/

Esto nos llevará al directorio de configuración de Emesene, ahí vamos a encontrar un directorio con el nombre: usuario_dominio_com, a modo de ejemplo podríamos ver usuario_hotmail_com, ingresamos a este directorio, y creamos un nuevo archivo de texto con el nombre Spell.conf, abrimos el archivo e ingresamos el siguiente texto lang=es, guardamos los cambios y cerramos. Con esto le hemos indicado cual es el idioma que queremos utilizar.

Todavía nos hace falta un paso más, que es el de instalar el archivo de idioma necesario para que el plugin funcione con el idioma antes indicado. En una terminal ejecutamos el siguiente comando como root:

# apt-get install aspell-es

Luego de reiniciar Emesene y corroborar que efectivamente tenemos el plugin habilitado, abrimos una venta de conversación y probamos que efectivamente nuestro corrector ortográfico corrige en tiempo real.

Resumen:
1- Habilitar complemento
2- Instalar paquete python-gtkspell
3- Crear archivo de configuración (Spell.conf)
4- Instalar idioma (aspell-es)
5- Reiniciar y probar.

Anuncios

Debian Lenny – Driver Nvidia

Actualicé al kernel 2.6.30 y como era de esperarse mi driver de Nvidia ya no funcionaba, En el xorg.conf tenia una linea definida para que cargue el módulo, al no existir dicho módulo mi entorno gráfico no iniciaba.

La linea que definía esto es:

Driver “nvidia”

En caso de querer iniciar entorno gráfico es necesario modificar la anterior linea por:

Driver “vesa”

Paquete necesario para luego instalar el driver:

aptitude install module-assistant

Descargar el driver de Nvidia de:

http://www.nvidia.es/Download/index.aspx?lang=es

Una vez descargado el driver es necesario ir a una terminal gráfica con ctrl + alt + f1.

Loguearse como root, y navegar hasta la carpeta donde se instaló el driver.

Respaldar el archivo de configuración de las X:

cp /etc/X11/xorg.conf /etc/X11/bck-xorg.conf

Matar la interfaz gráfica:

/etc/init.d/gdm stop

En caso de usar Kde:

/etc/init.d/kdm stop

Ejecutar el script:

sh NVIDIA-Linux-x86-190.53-pkg1.run

Iniciar interfaz gráfica:

/etc/init.d/gdm start

En caso de usar Kde:

/etc/init.d/kdm start

Con esto debería quedar andando el driver de video Nvidia.

Debian Lenny – Actualizar kernel

Debian al intentar ser una distribución lo más estable posible tiene la contradicción que los paquetes no son los últimos, sino que generalmente son versiones anteriores mucho más probadas. Este es el caso de por ejemplo el reproductor Vlc, en los repositorios por defecto de Lenny está la versión 0.8.x, mientras que la última versión es la 1.0.3. Esto también pasa con el kernel Linux, la versión instalada por defecto es la 2.6.26, mientras que la versión actual es la 2.6.32.

Aclarar que Linux solo es el kernel, por lo que una actualización solo cambiaría la base del sistema, pero no se perderían ni datos, ni programas instalados. Al iniciar el sistema aparecerán varias opciones, diferenciándose por la versión del kernel. Es el kernel quien administra los drivers, por lo que módulos compilados antes, o drivers pueden perderse.

Para saber la versión del kernel:

$ uname -r

Actualizar kernel:
Básicamente hay dos formas de actualizar el kernel, utilizar uno precompilado desde los repositorios, o bajar y compilar el kernel propio.

La ventaja de compilar un kernel propio es que se puede utilizar la última versión, donde también soporta más hardware, y trae los últimos cambios implementados. También al compilar en base al hardware del pc se evita estar cargando módulos innecesarios que relentecen el sistema.
Como desventaja trae que lleva tiempo, y en caso de fallar hay que comenzar de cero todo de nuevo.

Un kernel precompilado tiene la ventaja que solo hay que ejecutar un comando y el sistema solo lo descargará e instalará, y puede ser utilizado en el próximo reinicio. Este kernel está presente en los repositorios de la distribución que se esté utilizando.
Como desventaja trae que el kernel está compilado para detectar la mayor cantidad de hardware posible, esto hace que sea más lento que uno compilado a mano, pero asegura una mayor detección.

El caso es que Debian en sus repositorios no dispone de una versión más nueva del kernel por los motivos antes dichos. Por lo que una actualización requiere de pasos extras. Yo por ejemplo quiero el soporte ext4 y otros cambios, pero no deseo compilar a mano, por lo que voy a utilizar uno precompilado.

Editar el archivo de repositorios:

# vim /etc/apt/sources.list

Comentar todos los repositorios de la versión actual poniendo un # antes de cada linea.

Squeeze de Debian.

deb http://http.us.debian.org/debian/ testing non-free contrib main
deb http://security.debian.org/ testing/updates main contrib

Actualizar los repositorios:

# apt-get update

Buscar los kernels disponibles:

# apt-cache search linux-image

Muestra una lista con opciones similares a las siguientes:

linux-image-2.6.30-2-486 – Linux 2.6.30 image on x86
linux-image-2.6.30-2-686 – Linux 2.6.30 image on PPro/Celeron/PII/PIII/P4

Instalar el que sea más acorde a la versión del sistema, en mi caso 686.

# apt-get install linux-image-2.6.30-2-686

Reiniciar e iniciar con la nueva versión del kernel.

Tal vez tu driver de Nvidia ya no funcione

Nota: Conviene dejar los repositorios como estaban antes de ser modificados.

Debian Xorg.conf Out of range

Una vez instado Debian, luego de reiniciar, me encuentro con mi primer error, un cuadro en pantalla diciendo Out of range.

Hice una copia del xorg.conf actual por las dudas:

# cp /etc/X11/xorg.conf /etc/x11/actual-xorg.conf

Corrí el siguiente comando para crear una configuración básica del xorg.conf con el cual a mucha gente le anduvo pero no a mi:

# dpkg-reconfigure xserver-xorg

Probé el archivo generado:

# Xorg -config xorg.conf.new

Pero todavía no funcionaba.

Navegando por varios lugares fueron varias las cosas que conseguí:
Por un lado una modificación en el grub (Solo valido para sistemas con arranque grub o grub2).

# vim /boot/grub/menu.lst

Así es como quedó la linea modificada (solo se modifica ro vga=773)

kernel /boot/vmlinuz-2.6.26-2-686 root=/dev/sda4 ro vga=773

Reinicié el sistema, pero todavía no era suficiente para que funcionara.

Copié el xorg.conf.new creado nuevo a la ubicación por defecto:

# cp /root/xorg.conf.new /etc/X11/xorg.conf

Para saber que tipo de tarjeta de video tengo:

# lspci |grep VGA

Esto fue lo que me devolvió:

VGA compatible controller: nVidia Corporation GeForce 7050

Googleando encontré que el driver que debía usar era “nv” o “nvidia”.

Abrí el archivo para modificarlo:

# vim /etc/X11/xorg.conf

Configuración de teclado, la configuración definida acá, es la que aplica cuando se está utilizando el entorno gráfico. Puede suceder que en la consola se esté utilizando el Español, pero al no estar definido, cuando inicie el entorno gráfico por defecto utilice el Ingles.

Section “InputDevice”
Identifier “Keyboard0″
Driver “kbd”
Option “XkbRules” “xorg”
Option “XkbModel” “pc105″
Option “XkbLayout” “es”
EndSection

Como los mouse son bastante más estándares, no necesité modificar este aspecto.

Configuración del monitor, lo que hay que saber en este aspecto es que tasa de refresco soporta, puede ser un rango, o un valor especifico.

Section “Monitor”
Identifier “Monitor0”
Option “DPMS”
HorizSync 60-70
VertRefresh 60-75
EndSection

Configuración de la tarjeta de video:

Section “Device”
Identifier “Card0”
Driver “vesa”
BusID “PCI:0:16:0”
EndSection

* En la sección “Driver” puse “vesa” ya que el kernel no trae el modulo de “nvidia” o “nv”, y se obtiene un error de que no encuentra el dispositivo. Vesa es un driver más genérico.

Configuración de resolución, de haber varios módulos como en este caso, va saltando de uno en uno hasta encontrar uno que ande, si en el modulo hay definidas varias resoluciones, utiliza la primera que encuentra, salvo que no funcione, en ese caso utiliza la siguiente.

Section “Screen”
Identifier “Default Screen”
Device “Configured Video Device”
Monitor “Configured Monitor”
DefaultDepth 24
Subsection “Display”
Depth 1
Modes “1024×768” “800×600” “640×480”
EndSubsection
Subsection “Display”
Depth 4
Modes “1024×768” “800×600” “640×480”
EndSubsection
Subsection “Display”
Depth 8
Modes “1024×768” “800×600” “640×480”
EndSubsection
Subsection “Display”
Depth 15
Modes “1024×768” “800×600” “640×480”
EndSubsection
Subsection “Display”
Depth 16
Modes “1024×768” “800×600”
EndSubsection
Subsection “Display”
Depth 24
Modes “1024×768”
EndSubsection
EndSection

* Depth es la profundidad de color.

Luego de echo esto, es necesario reiniciar el gestor de entrada para que tome los cambios.

En caso de Gdm:
/etc/init.d/gdm restart

En caso de Kdm:
/etc/init.d/kdm restart

Ahora si funcionó.

Ubuntu compartir recursos Nfs

Para poder compartir un recurso a través de Nfs desde una pc con Ubuntu en mi caso con Ubuntu 9.04 es necesario instalar los siguientes paquetes:

nfs-common
nfs-kernel-server

Una vez instalados es necesario editar el archivo /etc/exports

sudo vim /etc/exports

La forma de compartir es la siguiente:

Recurso equipos(permisos)

Si el recurso fuera /home/usuario/carpeta

Quedaría:

/home/usuario/carpeta *(rw)

Donde el * indicaría que estaría compartido para todos los hosts.
(rw) Indica que se montará con permisos de lectura y escritura.

En host podría ponerse la ip de determinado host para que solo él pueda utilizar el recurso.

Solo hace falta reiniciar el servicio para que el recurso quede compartido.

sudo service portmap restart

Nota: Al reiniciar el sistema, si detecta que hay lineas en el archivo /etc/exports automáticamente iniciara los servicios Nfs.

Nota2: Cada vez que se agregue un nuevo recurso al archivo /etc/exports es necesario reiniciar el servicio.

Nota3: De esta manera el recurso está compartido, pero no se está asignando seguridad. Sería conveniente utilizar Tcpwrapper mediante los archivos /etc/hosts.allow y /etc/hosts.deny

Nota4: Se debe tener cuidado con los permisos que se hayan asignado sobre los archivos o directorios a compartir, o con que usuario hayan sido creados, ya que pueden prevalecer sobre los asignados al recurso compartido.

El sistema operativo cliente es Ubuntu 9.10, el paquete necesario para poder montar el recurso es nfs-cliente

sudo apt-get install nfs-cliente

Luego de instalado el paquete podemos ver que recursos está compartiendo un host de la siguiente manera:

showmount ip

Donde ip es la ip de un host con recursos compartidos.

Podemos montar el recurso de la siguiente manera:

mount -t nfs ip:/home/usuario/carpeta /mnt

-t indica el tipo de montaje
ip Es la ip de un host con recursos compartidos.
/mnt es el directorio donde se va a montar el recurso compartido.

Para ver lo que acabamos de montar, debemos ir al directorio mnt

cd /mnt

Una ves dentro del directorio /mnt y con el recurso compartido montado, se pueden navegar, copiar, mover o modificar los archivos del recurso compartido como si fueran directorios del equipo.

Phpmailer parse error unexpected

El error puede ocurrir tanto durante la configuración, como en un momento determinado, ya que no depende en si de la clase, sino de la version de Php del servidor donde esté corriendo. En mi caso descargué la versión para Php 5 pero en el servidor corria la versión de Php 4.4.4, como el servidor tenía también la opción de usar la versión 5.2.0 de Php, la cambié y no volví a tener el mismo error.

Mientras que investigaba porqué pasaba esto, encontré que mucha gente lo utilizaba sin problemas, hasta que (lo más seguro) el servidor actualizó la versión de Php y la clase Phpmailer dejó de funcionar, obteniendo el mismo error. Hay varias versiones de Phpmailer según la versión de Php que corra en nuestro servidor.

El error completo es:

parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or ‘}’

Editor Perl en Linux

Ingresando en el mundo de la programación en Perl, ya estaba buscando un editor algo más completo y cómodo que Vim. Fueron 2 las opciones que encontré.

La primera es Padre, un editor bastante competo y también liviano. Con varias opciones de instalación para las distintas distribuciones, en mi caso utilicé la instalación de Debian para correrlo sobre Ubuntu. Descargar Padre

La segunda opción es utilizar el plugin de Perl para Eclipse, es un poco más pesado, pero para quienes ya usen Eclipse para otro lenguaje, tal vez les convenga más, y la instalación es más simple.

Ya en otro momento se habló de Editores Php en este blog donde también se hablaba de Eclipse. El complemento para Perl se llama EPIC y la instalación es bastante simple.

Ya dentro de Eclipse, Menú Help, install new software, en Work with se debe poner la url http://e-p-i-c.sf.net/updates se presiona en Add y se siguen las instrucciones en pantalla. Ahora ya se puede utilizar Perl en Eclipse.

Cabe destacar que Padre incluye el idioma español y casi las mismas caracteristicas.

Para finalizar, dejo un link a Tutoriales de Perl

Sql en servidor independiente del dominio

Detalles:

Servidor 2003 Pdc (Primary domain controller)

Servidor Sql 2003 server.

Terminales: Mayormente W 2000.

De un momento a otro, a todos los usuarios de la aplicación que utiliza el Sql les empieza a salir el cartel de que no se encuentra el sql. Unos pocos logran entrar a la aplicación pero a los 5 minutos devuelve errores.  Después de varias pruebas de integridad de red, se reinicia el servidor Sql pero nada todavía. Como última medida se reinicia el servidor de dominio, volviendo todo a la normalidad. Entonces con esto se descubre que en realidad el problema es el servidor del dominio y no el del Sql. Como aclaración, este servidor no funciona como servidor de Dhcp, tampoco de Dns.

La forma en la que se solucionó  este problema fue colocando la ip del servidor de Dominio como primer Dns en las propiedades de la conexión en cada pc. De poner los dns en el router que es quien da Dhcp también funciona, pero la red se torna un poco más lenta.

Impresoras Lexmark incompatibilidad

No es un tema nuevo que las impresoras Lexmark, frecuentemente dan problemas de incompatibilidad con el sistema operativo Microsoft Windows. En esta ocasión, de un momento a otro, la cola de impresión se desactivó y al intentar activarla daba el error:

ERROR 1068:No se puede iniciar el servicio o grupo de dependencia.

Después de mucho googlear, la solución se encontraba en las dependencias de los servicios de la cola de impresión. Dichas dependencias se ven en la pestaña dependencias del servicio. Con que los servicios de los que depende estén funcionando alcanza para que la cola de impresión vuelva a funcionar. Todavía falta evitar que se genere el mismo error que hizo que la cola de impresión se detuviera.

Trascribo la explicación de quien encontró la solución al problema:

PRIMERO PROCEDI ENTONCES A REVISAR LAS DEPENDENCIAS DE LA COLA DE IMPRESION (PARA REVISAR LAS DEPENDENCIAS: CLICK DERECHO SOBRE EL SERVICIO, EN EL MENU SELECCIONE PROPIEDADES Y DIRIJASE A LA PESTALLAÑA DENOMINADA “DEPENDENCIAS”; HAY DOS TIPOS DE DEPENDENCIAS, 1-DE LAS QUE DEPENDE EL SERVICIO PARA PODER EJECUTARSE, ES DECIR LAS QUE SE EJECUTAN PREVIAS AL SERVICIO Y 2-LAS QUE DEPENDEN DEL SERVICIO, ES DECIR, QUE OTROS SERVICIO DEPENDEN DEL SERVICIO QUE UD ESTA REVISANDO), VI ENTONCES QUE EL SERVICIO DE COLA DE IMPRESION DEPENDIA DE LA EJECUCION PREVIA DE OTRO SERVICIO LLAMADO “LEXBMSERVER”.

SEGUNDO BUSQUE EL SERVICIO LEXBMSERVER DEL CUAL DEPENDIA LA COLA DE IMPRESION Y ESTE APARECIA COMO DESHABLITADO, POR LO CUAL PROCEDI A SU HABILITACION (PARA HABILITAR UN SERVICIO: CLICK DERECHO EN SERVICIO/ PROPIEDADES Y EN LA PESTAÑA “GENERAL”, DIRIJASE A “Tipo de Inicio” Y MARQUE AUTOMATICO, DIRIJASE LUEGO A LA PESTAÑA “RECUPERACION” y MARQUE LAS TRES PRIMERAS CASILLA CON “Reiniciar el servicion” y LAS DOS SIGUIENTES CON EL NUMERO “1”), YA HABILITADO ESTE SERVICIO PROCEDI A INICIAR EL SERVICIO DE COLA DE IMPRESION Y GÜALA EL SERVICIO INICIO SIN PROBLEMAS, LUEGO INSTALE LA IMPRESORA Y A IMPRIMIR SE DIJO.

Fuente: http://www.laneros.com/archive/index.php/t-55085.html

Campos con tildes en Mysql, Php

Intentando guardar textos en la base de datos, me encontré con el problema que las letras con tildes no se guardan como tales, sino que según la codificación pueden aparecer de distintas maneras, al momento de mostrarlo, se siguen viendo igual, con lo que distorsiona la palabra.

La codificación que debería usarse es Utf8. El problema es que son distintos y variados los lugares donde hay que cambiar la codificación, y si todo el programa usa una codificación, y el servidor donde termina colgada la página otra, nos encontramos con un enorme problema. Una solución simple es usar

htmlentities

Suponiendo que tenemos una cadena de texto en la variable $texto

Se utiliza

$texto = htmlentities($texto);

Lo que hace es cambiar los tildes a su equivalente en html, por ejemplo una á lo cambia a á

Al momento de mostrar el texto, el navegador lo entiende como una letra con tilde y la muestra.