Novedades: actualmente estoy impulsando el proyecto Argentina en Python, desde aquí (ver mapa)

Uso práctico de VNC

Nota

Este post no es el original, sino una migración de Wordpress a Nikola. Si no se visualiza correctamente, podés ir al original (en Wordpress) haciendo click aquí

Actualmente tengo una computadora de escritorio, que dejo siempre prendida y uso como server: para descargar cosas de internet, para guardar la música, como backup, servidor web y demás.

Como todas las cosas que bajo de internet están en ese equipo, necesito organizar las cosas que bajo y no siempre uso un programa en modo texto (consola) para hacer esto. Por ejemplo, si es un disco con mp3 me gusta ponerle los ID3 correctos con easytag, o si bajo un DVD9 lo tengo que convertir a DVD5 para poder grabarlo y lo hago con k9copy.

Para estos programas necesito tener una interfaz gráfica, entonces uso VNC para ello. De hecho, normalmente tengo corriendo el JDownloader en un VNC porque lo quiero tener siempre abierto, pero no quiero que me moleste en la barra de tareas y además también me interesa controlarlo remotamente, si bien para esto uso el servidor web que trae, éste no cubre toda la funcionalidades que se pueden hacer mediante la interfaz gráfica. Por ejemplo, ingresar los códigos que piden algunos File Hosting.

Entonces, la idea de esto es, levantar un servidor VNC y ejecutar programas dentro de éste (sin que alteren el escritorio actual) y luego poder comandar estos programas que lanzamos en el VNC desde cualquier otro equipo. Mi idea fue así:

vncserver :4 export DISPLAY=michifus:4 java -Xmx512m -jar ~/.jd/JDownloader/JDownloader.jar &

Con esto estoy levantando un servidor en el display 4 de localhost (que se llama michifus en la red). Entonces, después exporto ese display para ser usado por los programas y ejecuto el JDownloader.

Luego, desde otra PC me conecto usando el xtightvncviewer:

xtightvncviewer michifus:4

Y ahora puedo administrar el JDownloader mediante VNC como si estuviera sentado en la PC que lo está ejecutando realmente. Esto es normalmente lo que tengo ejecutando en el VNC siempre. Además, cuando bajo algo como antes comentaba, quiero levantar otro programa; para eso me conecto por sshal servidor y hago:

export DISPLAY=michifus:4 k9copy &

Luego me conecto nuevamente por VNC a michifus y veo que se cargó el k9copy en el escritorio que estoy sirviendo por VNC.


Algunos comandos útiles

Nota

Este post no es el original, sino una migración de Wordpress a Nikola. Si no se visualiza correctamente, podés ir al original (en Wordpress) haciendo click aquí

Hace un tiempo, por lo menos 2 años, que tengo un Trac instalado en casa para uso personal. La idea surgió para organizar mis cosas personales, como repositorio de código para los scripts que vaya haciendo y además para anotar documentación sobre las cosas que voy investigando: links, paquetes, configuraciones, instalaciones de programas, comandos y demás.

En este post voy a poner algunos comandos (surtidos) que no tienen nada que ver uno con el otro, pero que son realmente útiles y que normalmente los busco en internet cada vez que necesito hacer algo similiar, a partir de que los anoté en el wiki del trac que uso me pasa que probablemente me lo acuerdo o sinó, al menos, ya sé dónde buscar.

Seleccionar el programa a usar por defecto

En Linux podemos tener instalados varios programas para hacer lo mismo en pocas palabras, como ser el Java o bien el Navegador Web. Existen otros programas que en algún momento por ejemplo quieren abrir una página web y se fijan cual es el navegador que tenemos configurado por defecto, y lo lanzan con el link en cuestión. Puede ser que el navegador configurado en nuestro Linux por defecto no sea el que realmente usamos comunmente. Para cambiar esto existe el comando update-alternatives

humitos@teresa: ~$ update-alternatives --config x-www-browser There
are 5 choices for the alternative x-www-browser (providing
/usr/bin/x-www-browser).

Selection    Path                    Priority   Status
------------------------------------------------------------
0            /usr/bin/google-chrome   120       auto mode
1            /usr/bin/google-chrome   120       manual mode \*
2            /usr/bin/iceweasel       70        manual mode
3            /usr/bin/konqueror       100       manual mode
4            /usr/bin/opera           90        manual mode
5            /usr/bin/xlinks2         69        manual mode

Press enter to keep the current choice[\*], or type selection
number: 2 humitos@teresa: ~$

Como cualquier comando de Linux, hay un montón de opciones y de variables para configurar, recomiendo mirar el man update-alternatives

Sincronizar directorios

Una cosa que hago mucho es copiar información de una máquina a otra por la red en mi casa, o cuando voy a la casa de un amigo y me quiero llevar varias cosas de las que tiene en su máquina. Entonces, ¿seguimos utilizando el método antiguo de Windows que cuando se corta la transferencia por algo tenemos que hacer todo de nuevo o empezar a ver qué era lo que ya pasó y qué lo que no? Al menos yo, nunca supe qué hacer en esos casos y copiaba todo de nuevo: ¿se me había pasado algo?

Bueno, en Linux estoy usando rsyncpara esto y para algunas cosas más (por ejemplo para hacer backups). Lo bueno de rsync es que compara los dos directorios y copia sólo lo que falta, digamos, continúa con la copia anterior. Además se puede hacer que sincronice los directorios, borrando lo que corresponda de cada lado luego de hacer la transferencia. En pocas palabras: se puede hacer mucho con rsync y no lo sé usar para todo lo que se puede.

rsync --recursive --human-readable --verbose --checksum --delete-after \ --exclude winxp.img /media/sdb1/trabajo trabajo

El comando anterior es el que usaba cuando no tenía notebook y trabajaba en mi casa y además en la oficina, entonces lo que hacía era sincronizar todo lo que tenía en el pen drive con la carpeta local borrando las cosas que estaban de más en la carpeta de destino (en este caso la de la máquina, no la del pen drive). Las otras opciones más o menos se caen de maduras :)

Levantar un trac de forma simple

Durante mucho tiempo (antes de tener el trac que tengo ahora en casa) lo tenía en el pen drive y me resultaba extremadamente útil, porque iba a dónde iba podía levantarlo con toda la documentación que hacía un tiempo venía escribiendo, buscar cualquier cosa y actualizarlo. De hecho, lo podía levantar en Windows también si hiciera falta, aunque era un poquito más complicado.

tracd -p 8080 --basic-auth=trac,/media/humitos/trac/htpasswd,trac /media/humitos/trac

De esta forma estoy levantando el trac en el puerto 8000 y diciéndole que utilice el archivo htpasswd para obtener los usuarios y las claves desde ahí. El último argumento es la ruta a dónde se encuentra el trac.

Nota: la idea de meter un trac en el pen drive fue de un compañero de trabajo en el Ministerio de Innovación y Cultura: Cristian, se merece sus créditos :)

Ordenar los mp3 en el reproductor de mp3

Muchas veces me ha pasado con algunos reproductores de mp3 que no reproducen los archivos siguiendo el orden alfabético de los mismos sino que siguen el orden que tienen en la tabla FAT. No estoy seguro si esto pasa únicamente cuando copiamos los archivos con Linux o también pasa con Windows. Nunca escuché a un usuario de Windows que tenga este problema, pero sí lo he escuchado de algunos usuarios de Linux.

El programa que utilizo para ordenar los mp3 de la forma que quiero que se reproduzcan se llama fatsort y se usa así:

fatsort /dev/sdc

Nota: esta forma de ordenar los mp3's se la debo a Nicolás, un groso

Utilizar ssh en el puerto 443 y mediante https

Existen muchos lugares en los que limitan el acceso a internet a sólo conexión httpsy http entonces no podemos acceder a nuestra máquina linux en la que tenemos corriendo un ssh en el puerto 22 (que es el puerto por default). Para estos casos, yo tengo configurado el ssh corriendo en el puerto 443 y utilizo un programa llamado corkscrew para que meta el ssh dentro de una conexión https :)

Los único que hay que hacer es editar el archivo de configuración de ssh en la máquina desde la cuál nos vamos a conectar a la que tiene el ssh corriendo en el puerto 443. El archivo es este ~/.ssh/config

Host=humitos.homelinux.net ProxyCommand /usr/bin/corkscrew 10.2.6.219 3128 %h %p Port 443

En el ejemplo anterior el ip 10.2.6.219 es el ip del proxy al cuál nos vamos a conectar para salir a internet y el 3128 es el puerto de este.


Click en el touchpad de la notebook

Nota

Este post no es el original, sino una migración de Wordpress a Nikola. Si no se visualiza correctamente, podés ir al original (en Wordpress) haciendo click aquí

Hace un tiempo que venía con problemas en el touchpad de la notebook, y cada vez que un amigo venía a casa me decía: "Po! ¿todavía no arreglaste esto?", así que hoy le dediqué un par de minutos a buscar la solución para no volver a escuchar su queja :)

En la consola, ejecutar:

synclient TapButton1=1

Listo, nada más. El artículo de dónde saqué esto es éste.


Reconectar router por consola

Nota

Este post no es el original, sino una migración de Wordpress a Nikola. Si no se visualiza correctamente, podés ir al original (en Wordpress) haciendo click aquí

En realidad esto me surgió cuando estaba configurando el JDownloader para que se reconecte automáticamente cuando rapidshare.como algunos similares, dicen que tenemos que esperar unos cuantos minutos para poder bajar otro archivo. Como normalmente las cosas que queremos bajar son más pesadas de la capacidad máxima que estos servidores te dejan bajar, el archivo que queremos está subdividido en varias partes y entonces es aquí cuando tenemos este problema.

Como yo tengo Arnet y éste proveedor te da una IP nueva cada vez que te reconectás, me hice un script para solucionar esto. El script se desconecta y se conecta nuevamente :)

Lo que necesitamos para hacer el script es usar el comando curl y tener el add on del Firefox que se llama Live HTTP Headers, y con este plugin podemos ver cuál es la información que se le manda al router para que realice la desconexión/conexión.

Una vez que tenemos instalado el plugin debemos activarlo yendo a Herramientas -> Live HTTP Headers y asegurarnos que el checkbox "Capturar" esté activado. Una vez que tenemos esto, vamos a la página de nuestro router (en mi caso 192.168.1.1) y luego a la página dónde nos muestra el botón para desconectar de internet.

Una vez que estamos ahí, vamos al Live HTTP Headers y nos fijamos si realmente está capturando los POST, GET, etc; de ser así presionamos el botón "Limpiar" ya que eso que se muestra ahí no nos interesa y nos dificultará la lectura posterior.

Ahora ya tenemos todo listo, nos falta presionar el botón y buscar el POST que se envía al presionar ese botón al router, y copiamos la URL a la que se envía y también los datos que se envían. En mi caso fue así:

image0

Una vez que tenemos esos datos, sólo basta ejecutar el comando curl con los datos obtenidos:

curl "http://<user>:<password>@192.168.1.1/rstatus.tri" \
     -d "action=Disconnect&wan_pro=2&conn_stats=300&layout=en"

curl "http://<user>:<password>@192.168.1.1/rstatus.tri" \
     -d "action=Connect&wan_pro=2&conn_stats=-1&layout=en"

El primer ejemplo es para desconectar el router y el segundo para conectar, así funciona la reconexión :) . Ahora sólo falta poner esto en un script e indicarle al JDownloader que use éste cuando lo necesite. Para esto, copiamos esos dos comandos en un archivo de texto, lo marcamos como ejecutable y le agregamos la siguiente línea al principio para decile que lo ejecute con bash:

#!/bin/bash

Luego en el JDownloader, en la pestaña deAjustes vamos a Módulos -> Reconexión y Router -> Externo y ahí seleccionamos el script que acabamos de crear. Luego podemos probar esto con el botón Cambiar IP.

Nada más :) , es útil, funciona para cualquier router ya que podemos ver exactamente la información que se le manda al mismo. Este ejemplo está basado en el router Linksys WRT54G v8.0 con el firmware original y el concepto de estas instrucciones me lo chorié de acá.