Archive for the ‘Trucos y recetas’ Category

h1

Problema con la codificación de caracteres en scripts CGI con Python 3

03/11/2011

Ansioso por empezar a utilizar la nueva versión de Python 3 he tenido algunos problemas con la codificación de caracteres: concretamente, aunque Python ahora trabaja siempre con cadenas de texto utf-8, cuando se ejecuta como script CGI se empeña en transformar la salida a ASCII, con lo que los caracteres acentuados son sustituidos por símbolos extraños.

Tras investigar un poco he descubierto una solución bastante simple, que consiste en añadir las siguientes dos líneas al comienzo del script:

import codecs, sys
sys.stdout = codecs.getwriter(‘utf-8’)(sys.stdout.buffer)

De este modo la salida estándar se hace también en utf-8.

Por cierto, para que el editor Geany utilice Python 3 (lo cual también me ha confundido bastante, hasta que me he dado cuenta de que usaba Python 2.7) hay que editar un fichero de configuración y modificar un par de líneas:

sudo nano /usr/share/geany/filetypes.python

y cambiamos las líneas

compiler=python3 -c “import py_compile; py_compile.compile(‘%f’)”
run_cmd=python3 “%f”

Ahora ¡a transformar todos mis ejercicios de TIC a HTML5!

h1

ownCloud, una alternativa libre a Dropbox

21/10/2011

He empezado a utilizar Dropbox, y lo cierto es que funciona muy bien, pero a pesar de esto he estado buscando las posibles alternativas libres a este servicio. La que más me ha gustado ha sido ownCloud, un proyecto que forma parte de KDE y que, aunque le faltan algunas funcionalidades importantes (como un cliente que sincronice automáticamente una carpeta local) parece muy prometedor.

A continuación indico los pasos a dar para disponer de nuestro propio servidor.

En primer lugar necesitamos un servidor apache funcionando.

sudo apt-get install apache2 php5 php-pear php-xml-parser php5-sqlite

En segundo lugar tenemos que descargarnos la última versión, descomprimirla en /var/www

cd /var/www

sudo wget http://owncloud.org/releases/owncloud-2.tar.bz2

sudo tar -xf owncloud-2.tar.bz2

sudo rm owncloud-2.tar.bz2

Ahora cambiaremos el usuario y grupo propietarios de la carpeta owncloud

sudo chown -R www-data:www-data owncloud/

A continuación debemos editar el fichero /etc/apache2/sites-enabled/000-default y cambiar dentro de las opciones de /var/www “AllowOverride None” por “AllowOverride All“. Para acabar reiniciamos el servidor apache

sudo /etc/init.d/apache2 restart

Para conectarnos desde el navegador web hemos de introducir la dirección http://nuestroservidor/owncloud, y para hacerlo con el nautilus utilizaremos la dirección dav://nuestroservidor/owncloud/files/webdav.php

En la página web del proyecto hay instrucciones para acceder de diferentes maneras y con diferentes programas y sistemas operativos. Algunas partes del proyecto, como un cliente para dispositivos móviles y un cliente que sincronice automáticamente una carpeta local son proyectos que todavía no han sido terminados.

Web de ownCloud

 

h1

Usar python en webs dinámicas.

09/10/2011

A raíz de este post recuerdo que necesito un servidor web que soporte python para la creación de webs dinámicas. La configuración de apache es muy sencilla si utilizamos el módulo CGI.

Para empezar permitimos que cada usuario pueda tener su web en una carpeta propia con

sudo ln -s /etc/apache2/mods-available/userdir.conf /etc/apache2/mods-enabled/userdir.conf
sudo ln -s /etc/apache2/mods-available/userdir.load /etc/apache2/mods-enabled/userdir.load

De este modo la página web de usuario “user” se encontrará en /home/user/public_html/ y será accesible a través de la dirección http://servidor/~user/

Ahora es cuando realmente activamos los scripts CGI, solamente en una carpeta llamada cgi-bin dentro de cada carpeta public_html. Lo único que hay que hacer es editar el fichero /etc/apache2/sites-available/default y añadir las siguientes líneas:

<Directory /home/*/public_html/cgi-bin>
Options +ExecCGI
AddHandler cgi-script .py
</Directory>

Solo tenemos que reiniciar el servidor Apache, y los ficheros con extensión .py dentro de la carpeta cgi-bin serán ejecutados en lugar de leídos. Un pequeño ejemplo:

#!/usr/bin/python

print “Content-Type: text/plain\n\n”

print “Hola, mundo!”

Nota: Ya sé que existen soluciones más eficientes y modernas, como usar mod_python, mod_wsgi, o cualquier framework web. Pero CGI es simple de configurar y, sobre todo, mis alumnos de TIC2 que ya conocen python no han de aprender nada nuevo para empezar a programar.

h1

Pizarras digitales interactivas y GNU/Linux

11/02/2011

En mi colegio hemos instalado hace poco tres pizarras digitales interactivas. Las tres han funcionado correctamente con Ubuntu 10.4 (lucid) pero como cada una es de una marca distinta he tenido que hacer algunos ajustes:

ActivBoard de Promethean

Esta pizarra necesita unos drivers no libres para funcionar. La parte positiva es que los podemos encontrar en un repositorio como paquetes deb. Tan solo tenemos que añadir a nuestro sources.list la siguiente línea:

deb http://activsoftware.co.uk/linux/repos/ubuntu lucid oss non-oss

Panasonic

Esta ha sido la más sencilla de configurar, ya que solo hay que conectar la pizarra a un puerto USB y está lista. su inconveniente és que el lápiz funciona a pilas y para que la pizarra lo detecte hay que presionar sobre ella. En la práctica significa que no podemos mover el puntero sin hacer, al mismo tiempo, el gesto de arrastrar.

TeamBoard

Esta pizarra se puede manejar con un lápiz y también con un dedo, y además se pueden utilizar sobre ella rotuladores de pizarra blanca. La pizarra es detectada y funciona simplemente con conectarla pero desgraciadamente tiene en la parte inferior una especie de botonera que, aunque forma parte de la superficie táctil, no sirve para proyectar sobre ella, y por este motivo es necesario instalar los drivers para poder calibrarla. Dichos drivers se pueden encontrar fácilmente en internet (un fichero llamado linuxupdd.tar.gz, creo recordar) e instalan también el programa de calibración y un programa llamado TeamBoardDraw.

Estos programas necesitan de la máquina virtual Java para funcionar y han resultado de lo más antipáticos: el calibrador solo funcionó la primera vez, luego calibraba mal, y solo después de muchos intentos volvimos a dejar la pizarra calibrada. Tiemblo pensando que pueda necesitar volverla a calibrar. Además el programa TeamBoardDraw se ejecutaba automáticamente al iniciar la sesión e insistia en mostrarme una ventana pidiendome mis datos de registro. Sin dichos datos la ventana se negaba a cerrarse. Al final desactivé este molesto comportamiento editando el fichero /opt/tbupddlx/startdaemon y comentando la línea donde se ejecuta tblinuxdaemon.

Antes de calibrar la pizarra, el eje vertical estaba invertido, así que tuve que crear el fichero /usr/lib/X11/xorg.conf.d/50-invertaxes.conf con el siguiente contenido:

Section "InputClass"
 Identifier  "Invert Mouse"
 MatchProduct    "Hampshire Company TSHARC Octopus"
 MatchDevicePath "/dev/input/event*"
 Option      "InvertY"       "true"
 Option      "InvertX"       "false"
 Option      "TopX"          "0"
 Option      "TopY"          "0"
 Option      "BottomX"          "500"
 Option      "BottomY"          "500"
EndSection

Ignoro si calibrar la pizarra hace esto innecesario.

h1

Arranque muy lento de ubuntu.

10/09/2010

En el ordenador de un amigo (un toshiba NB300) el ubuntu (10.4 Lucid Lynx) tardaba entre cuatro y quince minutos en arrancar. En realidad el arranque era muy rápido, pero justo al principio mostraba una pantalla negra con el cursor arriba a la izquierda durante un montón de tiempo.

Tras instalar todas las versiones posibles, con diferentes tipos de particiones, desactivando servicios,… al final no conseguí absolutamente nada. Buscando por internet encontré una pista que me confirmó algo que yo empezaba a sospechar: la culpa era de la configuración del disco duro (el NB300 no tiene DVD).

El problema se resolvió al cambiar en la BIOS la opción SATA Controller Mode que estaba como AHCI a Compatibility.

Ahora arranca en 37 segundos, y se apaga en 5.

h1

Curioso efecto “falta tinta” de mi ebook

14/05/2010

Ya he comentado que, en ocasiones, mi ebook modelo wolder boox no refresca correctamente la pantalla: las letras apenas se ven, y parece como una impresora cuando ya no le queda tinta. Lo más curioso es que este efecto ¡casi siempre aparece cuando salgo a la calle desde el interior del metro!
Hoy he conseguido averiguar la causa: es el aumento de la luz ambiental. Cuando hoy me ha pasado he hecho un pequeño experimento: si pasaba de página normalmente la pantalla se refrescaba mal, pero si lo hacia mientras apretaba el libro contra mi pecho las letras aparecían con normalidad. También he probado pasar de página con mi mano abierta ocultando parte de la pantalla, y he obtenido un bonito dibujo de la silueta de mi mano.
El caso es que esto me tranquiliza, ya que al menos sé como resolverlo. Antes pensaba que el ebook podía dejarme tirado en un momento de aburrimiento.

h1

Instalación del gestor de bibliotecas OpenBiblio

18/02/2010

OpenBiblio es un programa lire de gestión de bibliotecas escrito en PHP. Tras sopesar otras posibilidades me decidí por este programa porque aunque no se actualiza muy a menudo (la versión 0.6 es de mayo de 2008) no resulta ni muy grande ni muy pequeño, y creo que puede cubrir de manera satisfactoria las necesidades de nuestra biblioteca escolar. El proceso de instalación es el siguiente:

  • Instalamos el servidor de páginas web apache y la base de datos mysql (OpenBiblio no funciona con postgresql): sudo aptitude install apache2 mysql-server php5-mysql
  • Accedemos a la base de datos como usuario root: mysql -u root -p
  • Creamos la base de datos OpenBilio (ojo al punto y coma al final de las órdenes mysql): create database OpenBiblio;
  • Creamos el usuario obiblio_user con acceso a la base de datos que hemos creado antes: grant all privileges on OpenBiblio.* to obiblio_user@localhost identified by ‘password’;
  • Creamos una carpeta en /var/www llamada, por ejemplo, biblio.
  • Descargamos el programa OpenBiblio de su web y lo descomprimimos en la carpeta biblio que hemos creado antes.
  • Editamos el fichero database_constants.php, donde deberemos poner el nombre y usuario de la base de datos y su contraseña.
  • Para crear las tablas necesarias en la base de datos solo hay que abrir el navegador de páginas web y acceder a la dirección http://nombre_del_servidor/biblio/install/index.php
  • Es recomendable borrar completamente la carpeta /var/www/openbiblio/install

Para acceder al programa la dirección es http://nombre_del_servidor/biblio/ aunque si la instalación es local podemos substituir nombre_del_servidor por localhost.

El usuario por defecto es admin, y su contraseña admin, aunque debemos cambiar esta contraseña y tenemos la opción de crear nuevos usuarios.

A %d blogueros les gusta esto: