Software libre en los European eGovernment Awards 2007

PloneGovEneko, de CodeSyntax, nos envía la siguiente noticia: «Hasta el 7 de septiembre se puede votar en los European eGovernment Awards 2007, organizados por la Comisión Europea para premiar las mejores
prácticas en el uso de las TICs en los servicios públicos.

PloneGov, una iniciativa de código abierto para la e-administración con participación hispana, ha sido seleccionada entre los finalistas a los premios. Si te convence y crees que la administración electrónica debe pasar por el software libre, puedes ayudar a esta nueva iniciativa de código abierto para el e-Gobierno registrándote y votando por PloneGov en esos premios. Tienes información en castellano sobre como
hacerlo aquí

AutoNota: SSH Port Forwarding

Una nota para mí y para quien le interese; siempre tengo que andar buscando la sintaxis correcta para hacer SSH Port Forwarding. El objetivo es ‘sencillo’: todo lo que haga a través del 8080 de mi máquina local debe de ser interpretado en el puerto 80 de mi máquina remota, que tiene un servidor Apache escuchando en la IP local 192.168.1.2 . Lo que la máquina remota devuelva debe de venir de vuelta a mi máquina local, todo ello de forma transparente, y cifrado por ssh (asumiendo que tengo una cuenta SSH escuchando en el puerto 1234 a nombre de usuario en la máquina remota):


$ ssh -p 1234 -f -C -L 8080:192.168.1.2:80 -l usuario maquina.remota.com sleep 7200

En la máquina desde la que lanzo la orden ssh anterior, pongo en /etc/hosts los nombres de los hosts virtuales del Apache que está escuchando en 192.168.1.2 en la máquina remota.

Un esquemita ayuda a comprender:

Máquina_Test —————————— Máquina.Remota.com
(lanzo la orden ssh) (ssh tunneling) 192.168.1.2:80 (Apache escuchando aquí)

(el ssh está a la escucha en el puerto ‘raro’ 1234 en máquina remota, en lugar del clásico 22)

Ya no se me volverá a perder este apunte 😉

Deshabilitar el pitido de error en bash

Este es un apunte rápido para no volverme loco buscando la forma de deshabilitar el beep (pitido) de error de una consola en modo texto (sin X) , con Bash ( corriendo bajo vmplayer en mi caso, pero eso no influye en la efectividad del truco)

$ setterm -blength 0

Anteriormente en DiarioLinux ya habíamos hablado de esto, pero el truco estaba orientado a consolas en modo X (abrir terminal desde un entorno gráfico). Recordemos que para esas ocasiones el comando sería:

$ xset -b

Espero que así los pitiditos dejen de aturdirme 😉

Cómo eliminar las protecciones de un PDF

Hoy he necesitado imprimir un documento PDF relacionado con el trabajo (interesante para mí y muchas otras personas). Era importante, porque el documento lo necesitaré tener consultable en papel en pocos días. Pero ¡oh sorpresa!, a pesar de ser un documento que mucha gente además de mí va a necesitar imprimir, éste está protegido ¡contra impresión! Pero vamos a ver… ¿por qué se empeñan en poner puertas al campo? Si quiero imprimirlo por muchas protecciones que pongan siempre podré sacar pantallazos e imprimir, ¿por qué nos ponen estas trabas?

pantallazonotallowed.png
allowed.png


En fin, eso me ha llevado a descubrir un servicio online para eliminar las protecciones de los PDF (en concreto, puede eliminar la protección anti-impresión y la protección anti-copy-paste). Funciona perfectamente, tal y como podéis apreciar en las imágenes. Supongo que no durará mucho online….

Reto de programación: apretones de manos

Hace poco he participado en una prueba más de TopCoder.com, un excelente sitio para mantener engrasados los conocimientos de estructuras de datos, algoritmos, análisis y diseño de sistemas y programación general. Una de las pruebas me dejó varado y no pude completar a tiempo el ejercicio. Posteriormente he leído bastante al respecto y profundizado en la serie de los números de Catalan, en la que se basa la solución al problema. Sin más, os dejo con el enunciado, a ver si conseguís solucionarlo 😉

Consideremos una reunión de n personas alrededor de una mesa circular. Antes de comenzar la reunión, se dan la mano unos a otros. Cada persona estrecha la mano de otra persona en un momento dado (y sólo de una). Los apretones de manos se dan todos a la vez (es decir, en un momento dado, cada persona está estrechando la mano de otra) Decimos que un apretón de manos es perfecto si no hay brazos que se crucen entre sí en el momento del apretón. Dado un entero n, devolver el número de apretones de manos perfectos posibles que existen para n personas sentadas a la mesa.

Ejemplo:

si n = 4 personas, los posibles apretones de mano son:

HandsShaking_4_correct/tmp/HandsShaking_4_correct_2.GIF/tmp/HandsShaking_4_wrong.GIF

Las primeras dos figuras muestran apretones de manos perfectos. La 3ª no es un apretón de manos perfecto. La solución para n=4 por tanto es 2. Para n=8 sería 14.