Montar automaticamente carpetas a petición

Carpetas de nautilus

Para hacer el automontado de carpetas samba usaremos el programa autofs. Para instalarlo ejecutaremos la siguiente orden:

>> sudo aptitude install autofs

Asegurarse de que se encuentran instalados los paquetes samba y smbfs

>> sudo apt-get install samba smbfs

Una vez instalado vamos a configurarlo. En autofs tienes que indicar una carpeta (por ejemplo /auto) en la que cuando se acceda a una subcarpeta de esta (por ejemplo /auto/compartido) buscará esta carpeta en el fichero de configuración y si no existe en el fichero dirá que no existe (aunque físicamente exista). Por esta razón es recomendable usar una carpeta solo para esto y no podremos usar /media aunque podremos hacer un apaño con unos enlaces.

Primero iremos al fichero /etc/auto.master y añadiremos la siguiente línea (indicamos la carpeta que usara autofs para el fichero que modificaremos mas adelante):

/auto /etc/auto.misc --timeout 3

Vamos al fichero /etc/auto.misc y añadimos una línea por cada carpeta a la que le demos soporte. Por ejemplo, montamos la carpeta compartido del servidor 192.168.25.200:

compartido -fstype=cifs,username=USUARIO,password=CLAVE,iocharset=utf8,uid=USUARIO_PC,gid=USUARIO_PC,file_mode=0777,dir_mode=0777  ://192.168.25.200/compartido

Reiniciamos el programa para que coja la nueva configuración:

>> sudo /etc/init.d/autofs restart

Ya lo tenemos configurado y cuando accedamos a esta carpeta si aun no está montada se montará. Para ver que funciona ejecutaremos la siguiente orden y veremos que nos muestra los ficheros de la carpeta compartida:

>> ls /auto/compartido

Si queremos acceder a esta carpeta desde otra ruta (Por ejemplo /media) crearemos unos enlaces simbólicos:

>> cd /media/ >> sudo ln -s /auto/compartido compartido

Comprobaremos que el enlace funciona ejecutando la siguiente orden y comprobando que nos lista los ficheros de la carpeta compartida:

>> ls /media/compartido

Como siempre, podréis verlo actualizado siempre en mi wiki: Autofs.

temas: 

Sustituyendo Nautilus por PCMan

PCMan

Siempre que he usado GNOME me ha parecido que la rapidez no era lo suyo y no me explicaba porque no intentaban mejorarlo. Un día me puse a probar otro gestor de archivos en vez de nautilus (que es el gestor de archivos por defecto de gnome). Este nuevo gestor se llama PCMan y tengo que decir que me sorprendido muy gratamente. Es mucho más rápido que nautilus aunque no tiene todas las caracterÍsticas de nautilus (preview de sonido, video, samba, ...) solo le hecho en falta la posibilidad de acceder a carpetas compartidas. PCMan tiene soporte a preview de imagenes, pestañas, marcadores,

Por lo tanto me voy a quedar con PCMan como mi navegador de archivos por defecto. Para que Gnome lo use por defecto (en vez de a nautilus) vamos a tener que hacer los siguientes cambios.

Primero haremos las copias de seguridad de los ficheros que vamos a modificar:

>> sudo cp /usr/share/applications/nautilus.desktop /usr/share/applications/nautilus.desktop.backup
>> sudo cp /usr/share/applications/nautilus-folder-handler.desktop /usr/share/applications/nautilus-folder-handler.desktop.backup
>> sudo cp /usr/share/gnome/default.session /usr/share/gnome/default.session.backup
>> sudo cp /usr/bin/nautilus /usr/bin/nautilus.backup

Una vez hechas las copias de seguridad tenemos que editar los archivos /usr/share/applications/nautilus-folder-handler.desktop y /usr/share/applications/nautilus.desktop y sustituir todas las apariciones de nautilus por pcmanfm quitando los parámetros que se le pase (porque PCMan no admite los parámetros de nautilus). Por ejemplo:

Exec=nautilus --no-desktop --browser %U

Quedaría así:

Exec=pcmanfm

Ahora iremos al fichero /usr/share/gnome/default.session y lo editaremos. Tenemos que eliminar las líneas que corresponden con la entrada de nautilus, luego renumerar los números para que queden consecutivos y por último cambiar el número de entradas que quedan al final.

Por ejemplo, para el siguiente fichero:

[Default]
num_clients=4
0,id=default0
0,Priority=10
0,RestartCommand=gnome-wm --sm-client-id default0
1,id=default1
1,Priority=40
1,RestartCommand=gnome-panel --sm-client-id default1
2,id=default2
2,Priority=40
2,RestartCommand=nautilus --no-default-window --sm-client-id default2
3,id=default3
3,Priority=60
3,RestartCommand=gnome-cups-icon --sm-client-id default3

Lo editaremos para que se quede de la siguiente manera:

[Default]
num_clients=3
0,id=default0
0,Priority=10
0,RestartCommand=gnome-wm --sm-client-id default0
1,id=default1
1,Priority=40
1,RestartCommand=gnome-panel --sm-client-id default1
2,id=default3
2,Priority=60
2,RestartCommand=gnome-cups-icon --sm-client-id default3

Por último cambiaremos el acceso directo de nautilus por el de PCMan:

>> sudo rm /usr/bin/nautilus
>> sudo ln -s /usr/bin/pcmanfm /usr/bin/nautilus

Solo qeuda reiniciar las X. Y ya tenemos a PCMan como el navegador de archivos por defecto de Gnome.

temas: 

Problemas con el size en phpbb3

Logo phpbb3

Si habéis pasado de usar el foro phpbb2 a su nueva versión phpbb3, os abréis podido encontrar con que al usar el tag size no funciona como antes. Ahora si pones los mismos números el texto sale mucho más pequeño. Vamos a probar con el siguiente texto en las dos versiones del foro:

Este texto será mas grande: [size=17]grande[/size], espero que se vea bien.

  • En el foro phpbb2 lo vemos así:

Size en phpbb2

  • En el foro phpbb3 lo vemos así:

Size en phpbb3

El problema está en un trato diferente de la nueva versión 3 de este tipo de foro al tag size. En la versión 2 el tamaño que se le indicaba se ponía en px (pixeles) y en la versión 3 se pone en % (un tamaño del % por defecto del texto de la página). Es decir que si poníamos 19, antes eran 19px, pero ahora es 19% (100% sería el tamaño normal de la fuente sin poner size, pero 19% es mucho mas pequeño), por eso lo vemos muy pequeño.

Una de las posibles soluciones sería cambiar % por px (otra sería hacer alguna operación para aumentar el número que le ponemos, por ejemplo multiplicándolo por 10). Para nuestro caso iremos al archivo includes/bbcode.php (en el directorio de nuestro foro) y en la función bbcode_tpl sustituiremos la línea:

'size'        => '<span style="font-size: $1%; line-height: normal">$2</span>',

por:

'size'        => '<span style="font-size: $1px; line-height: normal">$2</span>',

También aparece indicado esto en los ficheros bbcode.html de los templates de los styles. Modificaremos también en el fichero styles/prosilver/template/bbcode.html (si utilizamos el style prosilver):

<!-- BEGIN size --><span style="font-size: {SIZE}%; line-height: 116%;">{TEXT}</span><!-- END size -->

por esta otra:

<!-- BEGIN size --><span style="font-size: {SIZE}px; line-height: 116%;">{TEXT}</span><!-- END size -->

Ya podremos ver el tamaño correcto cuando usemos el tag size.

temas: 

Citas en Mediawiki

Extensión Cite en Mediawiki

La extensión Cite para la Mediawiki nos permite poner citas en el texto (como podemos ver en la imagen anterior). En este artículo podremos ver como instalarla y como usarla.

 Instalación

Primero tendremos que poner los archivos de la extensión en la carpeta de las extensiones de nuestra Mediawiki:

>> cd extensions
>> svn co http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/Cite/

Después de esto tendremos qeu indicarle a la Mediawiki que cargue esta extensión. Para ello tendremos que añadir la siguiente línea al final del archivo LocalSettings.php que se encuentra en la carpeta raíz de nuestra Mediawiki:

$wgAllowCiteGroups = true;
require_once("extensions/Cite/Cite.php");

Ya tenemos instalada la extensión Cite en nuestra Mediawiki.

 Uso

 Para poner una cita usaríamos el siguiente texto:

 <ref> Texto de la cita </ref>

 Para mostrar las citas pondremos el siguiente texto:

<references />

 También se puede poner una cita varias veces, hacer grupos de citas para mostrarlas juntas, ... Todo esto lo podréis ver más explicado y siempre actualizado en mi wiki.

temas: 

Nuevo filtro de spam, enlaces a servicios y nombrado de las url

Spam en introblog

Nuevo filtro de spam

Últimamente mi blog ha estado sufriendo varios comentarios de spam. Para el problema del Spam tenía puesto el módulo Akismet pero no se porque no me funcionaba (No se si sería que lo tendría mal configurado, que tendría algún bug para mi versión de drupal, ...). Por ello empecé a buscar otras soluciones. Encontré módulos que utilizaban servicios web para detectar el spam:

También encontré sistemas que pedían siempre un captcha (Imagen de un código que tienes que introducirlo para certificar que eres una persona y no un bot) como los siguientes:

  • ReCAPTCHA
  • CAPTCHA
  • Como Akismet no me funcionaba, decidí probar con Mollom, este módulo se conecta a su servicio web para comprobar si cada comentario es spam y aveces pide que introduzcas un CAPTCHA si tiene dudas. En menos de 1 día he comprobado que ya ha detectado 2 comentarios de spam, así que funcionar me funciona bien.

Nombrado de las url

Por defecto drupal usa los enlaces para acceder a cada contenido con el id de este, lo cual hace que los enlaces sean muy poco descriptivos. Con el módudo Path podemos crear un alias para cada enlace que muestre el titulo de cada contenido con la url. Antes los artículos tenían la siguiente url:

Ahora los enlaces a los artículos muestran el título del artículo en la url de la siguiente manera:

Luego con el módulo Pathauto esto se hace automáticamente cada vez qeu ponga un artículo. También necesitaremos el módulo Token ya que es una dependendia del Pathauto.

Enlaces a servicios

 Otra de las funcionalidades que he puesto a sido añadir en la vista de los artículos varios enlaces a servicios de internet para añadir el articulo a nuestros favoritos o redes sociales (delicious, digg, technorati, facebook, ...) con el módulo Service links, como podemos ver en la siguiente imagen:

Service links en Drupal 6

El módulo permite añadir enlace a las siguientes redes:

  • del.icio.us
  • Digg
  • StumbleUpon
  • Propeller
  • Reddit
  • ma.gnolia.com
  • Newsvine
  • Furl
  • Facebook
  • Google
  • Yahoo
  • Technorati
  • IceRocket
temas: 

Actualizar un modulo en drupal

Módulos de drupal desactualizados

Introducción

Siempre es bueno estar actualizado con las últimas versiones y en drupal es muy fácil actualizar un módulo. He diferentes maneras de actualizar los módulos.

Manual

La forma de actualizar un módulo manualmente es por medio de la consola. Los pasos serían: bajarse la última versión del plugin, descomprimirlo y ejecutar la tarea de actualización de drupal. Aquí os pongo un ejemplo de la actualización del módulo xmlsitemap:

>> cd TUDRUPAL/sites/all/modules
>> wget http://ftp.drupal.org/files/projects/xmlsitemap-6.x-0.x-dev.tar.gz
>> gzip -d xmlsitemap-6.x-0.x-dev.tar.gz
>> tar -xvf xmlsitemap-6.x-0.x-dev.tar

Ya lo tenemos en la carpeta de módulos de drupal. Ahora tenemos que ir a la url de nuestro drupal y acceder al fichero update.php para actualizar la base de datos de drupal por si la nueva versión del módulo requiere modificaciones en esta. Por ejemplo:

http://TUDRUPAL.com/update.php

Le damos al botón continuar y luego al botón update. Ya tenemos el módulo actualizado.

Con Plugin Manager

Plugin Manager es un plugin de drupal que te permite gestionar los plugins a través de las páginas de administración de drupal. Una de las tareas que permite es la de actualización de los módulos.

temas: 

Digital Camcorder DV-2000 Euroconsumers en Ubuntu

Digital Camcorder DV-2000 Euroconsumers

Esta cámara me la regalaron la OCU (Organización de Consumidores y Usuarios). Es una cámara de vídeo y de fotos con la forma en la que la podéis ver en la imagen. Sus características son las siguientes:

  • Sensor de imagen: 300K CMOS
  • Resolución de imagen:
  •  - Alta 300K píxeles (640x480 px)
  •  - Baja 100K píxeles (352x288 px)
  • Vídeo clip: 320x240 px
  • Zoom digital: 4X
  • Pantalla: 1.5’’ TFT color LCD
  • Sin memoria interna (Acepta tarjetas SD)

(Venía con un cable USB-miniUSB, cable de vídeo compuesto cdrom con los drivers y una cinta de mano)

Al conectarla al ordenador en modo Cámara PC no me funcionaba nada. por lo que empecé a buscar datos de la cámara:

   >> lsusb
     ...
     Bus 002 Device 005: ID 04fc:5330 Sunplus Technology Co., Ltd
     ...

Compruebo si tengo el driver gspca :

   >> lsmod | grep spca
    ...
    gspca 643920 0
    videodev 29440 2 gspca,saa7134
    usbcore 146028 7 gspca,rt2570,hci_usb,usbhid,ohci_hcd,ehci_hcd
    ...

Según encontré en otras páginas web el driver gspca que viene con ubuntu no funciona con esta cámara. Hay que bajar este otro que funciona correctamente para nuestra cámara de ahi: http://mxhaard.free.fr/spca5xx.html . Como podemos ver en la tabla, el id 04fc:5330 (que nos devolvió el lsusb y que identifica la cámara) esta soportado por este driver. Procedemos a bajarlo dandole al botón download que aparece en los botones de arriba de la web. Luego nos bajamos la versión para kernels superiores al 2.6.11:

   NEWS support Vimicro vc0323, upto 260 webcams ,Happy Christmas :).
   until gspca v4l2 is finished, used:
   gspcav1 "Generic Softwares Package for Camera Adapters" version 1.00.20 date: 24/12/2007
   for kernel up from 2.6.11 : gspcav1-20071224.tar.gz
   for kernel below 2.6.11: spca5xx version 0.60.00-1:
   spca5xx-v4l1goodbye.tar.gz

Una vez lo hemos bajado lo descomprimimos, compilamos, instalamos y lo cargamos:

   >> gzip -d gspcav1-20071224.tar.gz
   >> tar -xvf gspcav1-20071224.tar
   >> cd gspcav1-20071224/
   >> make clean
   >> make
   >> sudo make install
   >> sudo modprobe -r gspca
   >> sudo modprobe gspca

Ahora vamos a probar la webcam. Para ello necesitaremos un programa que use la webcam, por ejemplo gqcam. Miramos que dispositivo representa la webcam (Cuando está desconectada no aparece el /dev/video1 y cuando la conectamos aparece /dev/video1). Así que instalamos el programa y lo ejecutamos para que muestre el vídeo que captura la cámara:

   >> sudo aptitude install gqcam
   >> gqcam -v /dev/video1

Ya esta funcionando (aunque para mi gusto un poco oscura la imagen, pero seguro que se podrá modificar esto). Recordaros que la última versión de hacer esto estará aquí en mi wikipedia

Coloreado del codigo fuente en Mediawiki

Ejemplo de coloreado de codigo en la mediawiki

Disponemos de una extensión para mediawiki llamada SyntaxHighlight GeSHi que nos permite colorear un código fuente en colores dependiendo del lenguaje de programación. De esta manera cuando vayamos a poner un código fuente de un programa, podemos indicarle que lenguajes de programación es y nos coloreara el código para que este sea mas legible.

 Instalación

Para la instalación tendremos que seguir los siguientes pasos:

>> cd extensions
>> svn co http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/SyntaxHighlight_GeSHi
>> cd SyntaxHighlight_GeSHi
>> svn co http://geshi.svn.sourceforge.net/svnroot/geshi/branches/RELEASE_1_0_7_STABLE/geshi-1.0.X/src/ geshi

Añadimos la siguiente línea a nuestro archivo LocalSettings.php:

require_once("extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.php");

Ya lo tenemos instalado.

 Uso

 La estructura para colorear un código sería la siguiente:

   <source lang="LENGUAJE">
      'CÓDIGO
   </source>

Además del parametro lang, podemos usar los siguientes parametros:

Los lenguajes con los que es compatible: actionscript, ada, apache, applescript, asm, asp, autoit, bash, blitzbasic, bnf, c, caddcl, cadlisp, cfdg, cfm, cpp-qt, cpp, csharp, css, c_mac , d, delphi, diff, div, dos, eiffel, fortran, freebasic, gml, groovy, html4strict, idl, ini, inno, io, java, java5, javascript, latex, lisp , lua, matlab, mirc, mpasm, mysql, nsis, objc, ocaml-brief, ocaml, oobas, oracle8, pascal, perl, php-brief, php, plsql, python, qbasic, reg, robots , ruby, sas, scheme, sdlbasic, smalltalk, smarty, sql, tcl, text, thinbasic, tsql, vb, vbnet, vhdl, visualfoxpro, winbatch, xml, z8.

En la introwiki podréis encontrar siempre toda la última información de esta extensión, así como la forma de instalara, usarla, configurarla. etc

 

temas: 

Problema de Segmentation fault con Firefox3 y Prism

Bug en Firefox

  Ayer se me cerró de repente Firefox y cuando le daba para que se ejecutara no me salia. Si lo ejecutaba desde la consola de comandos me daba el siguiente error:

>> firefox
Segmentation fault.

En los logs del sistema no me salía nada. Buscando por internet me encontré este Bug del firefox en Ubuntu:

Probé la solución que comentaban y me funcionó:

  1. Reinstalar Firefox: >> sudo aptitude reinstall firefox
  2. Desinstalar SCIM: >> sudo aptitude remove scim
  3. Reiniciar: >> sudo reboot

 Espero que os sirva algún día. (Me paso con Ubuntu 8.04, kernel 2.6.24-17-generic y Firefox 3.0b5)

Varias webs en un drupal

Logo de Drupal CMS

Cada día tengo más portales web que gestionar. Y según pasa el tiempo me he encontrado un gran problema cuando hay que actualizar el drupal, módulos o themes. El problema está en que lo tengo que hacer para cada portal. Por esto me he dispuesto a aprender la posibilidad de tener varios portales a partir de un solo drupal.

En la carpeta raíz del drupal, podemos encontrar una carpeta de nombre sites. Dentro de el pondremos una carpeta para cada portal. Hay dos carpetas especiales: "default" que es donde irá a parar salvo que exista un sitio definido para ese subdominio, y "all" que es la configuración que afecta a todos los sitios definidos. El nombre de estas carpetas serán el dominio del sitio. Por ejemplo: para http://blog.intropedro.es tendríamos que tener la carpeta system.

El proceso es el siguiente:

  • Creamos una carpeta con el nombre del dominio en la carpeta sites. Por ejemplo: sites/prueba.intropedro.com)
  • Copiamos un archivo settings.php en la carpeta sites/prueba.intropedro.com/settings.php
  • Editamos el fichero settings.php y cambiamos la línea siguiente:
 # $base_url = 'http://www.example.com';  // NO trailing slash!

por esta otra:

 $base_url = 'http://prueba.intropedro.com';
  • Creamos las carpetas files, modules y themes en la carpeta sites/prueba.intropedro.com.
  • Accedemos a la url http://prueba.intropedro.com y nos aparecerá el formulario de instalación, ponemos los datos y los guardamos.
  • Accedemos otra vez a la url http://prueba.intropedro.com, creamos una cuenta para que sea la cuenta de administrador y vamos a administraciónFile system y en File system path ponemos sites/prueba.intropedro.com/files

Ya tenemos nuestro sitio construido, tendremos que hacer estos pasos cada vez que queramos crear una web.

Los módulos y themes que se encuentren en la carpeta modules de un sitio, solo los verá ese sitio, y los que estén en la carpeta sites/all o las del raíz, los verán todos los sitios. Esto solo es la punta del iceberg, ya que puedes hacer que varios sitios compartan información, por ejemplo podrían compartir los usuarios (imaginaros que vuestra introcuenta sirviera para entrar en todos portales que hiciera yo). Aunque para compartir información tendrían que compartir base de datos. Esto lo miraré otro día.

temas: