Publicado el 10 de mayo de 2010 | Categoría/s: Linux

Esto es una ayuda memoria para mi yo dubitativo del futuro: para hacer funcionar el video de la notebook que es SiS 671/771 en Ubuntu (a partir de la versión 9.10) instalar este paquete y este xorg.conf este xorg.conf.

Para pantalla dual con LCD externo a resolución full 1280x1024

Comentarios (1) | Link

Publicado el 19 de octubre de 2009 | Categoría/s: Linux

Ya somos avispados usuarios de la línea de comandos y hacemos nuestros pinitos administrando un servidor: movemos, bajamos y hasta compilamos directamente en una maquina remota, muchas veces más potente y con más ancho de banda que la nuestra.

Nuestra terminal cliente sólo ejecuta OpenSSH (o Putty en Windows)

Pero cuando se trata de ejecutar un proceso largo y de nula interactividad no tiene mucho sentido seguir conectados ¿Para qué gastar tiempo y recursos (dejar la PC cliente prendida, por ejemplo) si el trabajo sólo se hace en el servidor?

Este caso se da muchas veces, sobre todo (y aquí lo que me interesa) cuando bajamos archivos muy pesados o hacer un mirror de un repositorio completo.

Y aquí cómo resolverlo: usa GNU Screen.

Screen es un multiplexor/virtualizador de terminales, y entre sus muchas e interesantes características incluye el desacople de su proceso padre.

Esto significa que se puede ejecutar una terminal virtual con screen (en una terminal remota por ssh, por ejemplo), ejecutar cualquier proceso en ese entorno y desacoplarlo, pudiendo entonces desloguearse y cerrar la conexión remota dejando el proceso en curso.

Receta paso a paso

  • ejecuta una consola virtual con screen
    1. $ screen
  • Ejecuta tu proceso largo. Por ejemplo, bajar la beta de Ubuntu Karmic Koala en DVD
    1. $ wget http://mirror.mcs.anl.gov/pub/ubuntu-iso/DVDs/ubuntu/9.10/beta/ubuntu-9.10-beta-dvd-i386.iso
  • Desacoplar el proceso con la combinación de teclas Control+A D
  • Desconectarse, tomar unos mates y volver cuando quieras

Para retomar el proceso

  • Conectarnos de nuevo al servidor mediante SSH
  • Listar las consolas virtuales para averiguar el PID
  • Traer a primer plano el proceso en cuestión con

y allí estará el proceso que dejamos corriendo (o al menos los rastros que dejó en su paso).

Y a propósito, los chicos de Tucan Project agregaron soporte para línea de comandos, un buen motivo para usar este truco. ¡A descargar!

Comentarios (0) | Link

Publicado el 30 de septiembre de 2009 | Categoría/s: Linux

Para el Mundial del 2006, compré, como tantos otros que no tenían televisor pero sí computadora, una plaquita sintonizadora de TV: una Kozumi con el chip sintonizador BT878, uno de los más genéricos y bastante bien soportado en linux.

Tuvo poca utilidad en aquel 2006, primero porque argentina no duró demasiado y segundo y principal porque un vecino reclamó potestad sobre la señal del cable coaxil que alimentaba mi chip y mis ilusiones mundialistas.

Quedó cajoneada en algun rincón, hasta que rescaté del olvido la videofilmadora de la familia, una vieja y noble JVC , con un montón de casetitos Compact VHS (que es el formato con el que funciona).

Así que después de mucho patear la tarea, decidí conectar los cables y encontrar la forma de convertir en bytes los recuerdos archivados en esos casettes polvorientos.

Acá mi supercomando mencoder:

  1. mencoder -tv driver=v4l2:device=/dev/video0:input=1:width=480:height=360:norm=ntsc:alsa:adevice=hw.0:amode=1:audiorate=44100:forceaudio:forcechan=1:buffersize=300 -oac mp3lame -lameopts cbr:br=96:mode=3 -af volume=-6:0,channels=1 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=5000:keyint=125:mbd=2 -vf yadif,crop=464:352:8:2 tv:// -o salida.avi

Son muchos parámetros:

- -tv indica que se va a capturar video, y se le pasan paramétros: driver v4l, un tamaño de 480x360 (aunque después se recorta), preconfigurado para ntsc (29.97 fps).
- Un aspecto importante estos flags son los referidos al audio: se captura el audio alsa, indicando la placa de sonido, el modo y la calidad (mono a 44100hz de ancho de banda)
- El audio se comprime con lame a 96kps constante.
- con -af volume le bajo el volumen 6db, porque de otra manera me salía saturado (estoy capturando desde el microfono). También se fuerza a grabar un solo canal.
- Con -ovc lavc se usa libavcodec (ffmpeg), comprimiendo en mpeg4 a un bitrate de 5000.
- Se aplican 2 filtros de video al vuelo: yadif que es el mejor filtro desentralazador (necesario para captura analógica) y un crop que corta 8 pixeles de los costados, 2 de arriba y 6 de abajo, para evitar la distorción que producen los cabezales con las cintas viejas.

El resultado es un video de unos 250kb/s de calidad más que aceptable.

Por ejemplo, el casamiento de mi hermano Juan, en 1998:

Se me pianta un lagrimón. Cuanta juventud, cuantos recuerdos. ¡Gracias gente!

Comentarios (1) | Link

Publicado el 22 de mayo de 2009 | Categoría/s: SPIP, Linux

Como sabemos, el desarrollo de SPIP se realiza a través del sistema de control de versiones Subversion.

A través de Subversion, podemos obtener la ultima version de desarrollo considerada estable

Una de las ventajas de obtener SPIP a través de SVN, es que luego es muy fácil de actualizar.

Subversion asigna un numero de revision a cada cambio realizado al conjunto de archivos. Así, cuando los desarrolladores lo evaluan pertinente, en un determinado momento del desarrollo se empaqueta una nueva version "oficial"

Por ejemplo, la revisión 13982 es la version 2.08 de Spip.

Podemos obtener una revision específica con el parámetro -r. Por ejemplo, el siguiente comando obtendría una copia de SPIP 2.08

Genial, pero para para asegurarnos estar en una revision que se corresponda con una "version oficial" tenemos que saber el número de ID.

En el Trac de Spip se mantiene una tabla donde se especifica esta correspondencia para cada nueva version, pero a decir verdad, es un engorro tener que ingresar sólo para averiguar un número. Mejor hagámoslo automático!

Automatizando la obtención de un SPIP oficial por SVN

  1. #!/bin/bash
  2. #script para una instalacion de spip a traves de svn
  3. if [ $# -lt 1 ]
  4. then
  5. echo "Debe indicar al menos un parametro:"
  6. echo "$0 destino [rev]"
  7. echo
  8. exit 1
  9. fi
  10. if [ $# -eq 2 ]
  11. then
  12. REV=$2
  13. else
  14. echo "Averiguando revision de la ultima release..."
  15. REV=$(svn info svn://trac.rezo.net/spip/archivelist.txt | sed -n '9p' | cut -d' ' -f5)
  16. fi
  17. echo "Recuperando la version $REV de SPIP"
  18. svn checkout -r `echo $REV` svn://trac.rezo.net/spip/branches/spip-2.0/ $1 1>/dev/null
  19. echo "Configurando permisos..."
  20. cd $1
  21. chmod 657 IMG local tmp config
  22. echo "Lanzando el navegador para continuar la instalacion..."
  23. firefox http://localhost/~tin/$1/ecrire

Este script hace el trabajo aburrido por nosotros. Averigua cuál fue la última modificación de archivelist.txt que es un archivo que se modifica en cada nuevo lanzamiento de paquete. ¡Es el dato que nos hacía falta!

Una solución más genuina

Atención: Ya me hicieron caso. Ver actualización

Aunque el hacking (como este) es sano y divertido (y a veces también útil), la solución más genuina sería que los desarrolladores de SPIP mantengan un tag por cada nuevo empaquetamiento y uno que apunte siempre al último.

Por ejemplo, con el siguiente comando deberiamos obtener la version 2.05 (sin saber a qué numero de revision corresponde)

y con este otro obtener la última versión

Esto, por ahora, no está implementado, pero ya hice llegar mi propuesta a l’equipe de SPIP, y lo están discutiendo

Actualización

Gracias a Gilles el Dev Team adoptó mi propuesta y ahora existen Tags en el arbol SVN de spip. En particular,

siempre devolverá la versión estable de la rama 2 de Spip. ¡Bien!

Comentarios (0) | Link

Publicado el 19 de abril de 2009 | Categoría/s: Linux

Radiolina es a mi jornada laboral lo que la Spika a la de mi abuelo, en aquellas mañanas de viñas mendocinas.

Es un simple script bash que se vale del mágico mplayer para reproducir las radios más importantes de argentina (y otras mejores que esas).

Para bajar y empezar a disfrutar Radiolina puedes ejecutar los siguientes comandos desde tu consola.

Como frecuentemente lo actualizo, te recomiendo que utilices SVN para bajar el programa. En vez de la primer linea (wget...) utilizar

texte - 3.2 KB
radiolina
script bash
Comentarios (1) | Link

Publicado el 31 de marzo de 2009 | Categoría/s: Linux

Un comando muy práctico para hacer backups de una base de datos MySQL es mysqldump.

Eso hace un backup completo de la base base_de_datos (incluyendo la creación de todas las tablas.

Para restaurar ese backup se hace directamente inyectando el sql al interprete de mysql.

Respaldar sólo algunas tablas de la base

A menudo tenemos multiples sistemas instalados sobre la misma base de datos, Si sólo queremos respaldar algunas tablas bastaría enumerar las tablas luego del nombre de la base de datos

Pero si estas tablas son muchas, es engorroso definirlas una por una. Por suerte, en general, un prefijo asocia todas las tablas de un sistema.

En ese caso, se puede usar el siguiente compando que respalda todas las tablas con un prefijo, En este ejemplo, las que comienzan con "spip_":

¡Que se aproveche!

Comentarios (0) | Link

Publicado el 21 de marzo de 2009 | Categoría/s: Linux

Efecto Tábano es el programa radial de mi amigo Fernando Barraza. Objetivamente, uno de los mejores programas radiales de Argentina.

Lamentablemente, desde que me vine a Córdoba tuve que conformarme con los fragmentos de entrevistas o especiales que Fernando subía a la web. Pero ahora que la Radio Calf-UNC está online, la alegría está completa.

El único problema que queda es que no todos los días tengo el tiempo de escucharlo de 16 a 18hs, Necesitaba grabarlo para escucharlo offline.

Bien podría haber hecho esto localmente pero como al sitio lo administro yo, dije... ¿por qué no grabar el programa directamente desde el servidor, y que cualquiera pueda bajarlo cuando quiera?

Aquí está mi podcaster automático para Efecto Tábano.

La idea

Todo se basa en el glorioso Mplayer, Mplayer es capaz de reproducir casi cualquier formato en streaming.

Por supuesto, no habrá sonido en esa "reproducción" sobre el servidor, pero lo que queremos es la info para grabarla.

En vez de enviarla a la placa de sonidos, la información cruda (el sonido WAV) lo enviamos a un archivo fifo desde donde lame obtendrá su fuente de datos para comprimir a MP3 on the fly.

Todo esto, claro, se ejecutará al horario del programa (y durante el tiempo que se indique, en este caso casi 2 horas) mediante una tarea cron

Instalando lo necesario

Como anticipé, hace falta mplayer y lame. Estos programas en general no se encuentran en el servidor (por ejemplo Dreamhost) así que hay que instalarlos. Como tampoco somos root (la gran mayoría de las veces) habrá que compilarlos desde las fuentes e instalarlos a nivel usuario.

primero crear, si no existiése, un directorio /bin donde irán nuestros programas.

mkdir bin
chmod 775 bin

Mplayer y mencoder

wget http://www3.mplayerhq.hu/MPlayer/releases/codecs/essential-20061022.tar.bz2
bunzip2 essential-20061022.tar.bz2
tar -xf essential-20061022.tar
mv essential-20061022 $HOME/lib
wget http://www3.mplayerhq.hu/MPlayer/releases/MPlayer-1.0rc1.tar.bz2
bunzip2 MPlayer-1.0rc1.tar.bz2
tar -xf MPlayer-1.0rc1.tar
cd MPlayer-1.0rc1
./configure --prefix=$HOME --codecsdir=$HOME/lib/essential-20061022
make
make install

LAME

wget http://nchc.dl.sourceforge.net/sourceforge/lame/lame-3.97.tar.gz
tar -zxvf lame-3.97.tar.gz
cd lame-3.97
./configure "--prefix=$HOME" "--enable-shared"
make
make install

Con eso ya tendríamos los programas necesarios en ./bin

El script podcaster-efectotabano.sh

#!/bin/sh
#
# recorder — wrapper to pull remote audio stream and convert contents
# to mp3

# Path and arguments to lame (mp3 encoder)
lame="$HOME/bin/lame -S -b 32 -m m"

# Path and arguments to mplayer (stream decoder)
mplayer="$HOME/bin/mplayer -quiet"

# Where to put the output files
odir="$HOME/efectotabano.com.ar/podcast"

showname="efectotabano-`date +%Y-%m-%d`"
duration="6660"
url="http://78.159.108.83:8690/"

fifo="${showname}_fifo"
ofile="$odir/${showname}.mp3"

#- end config ----------------------------------------------------

mkfifo $fifo
$lame $fifo $ofile &
$mplayer  -vc null -vo null -ao pcm:file=$fifo $url &

sleep 5
pids=`ps auxww | grep $fifo | awk '{print $duration}'`

sleep `echo ${duration} | bc`

kill $pids
rm $fifo

La primera parte permite configurar las rutas y parámetros de los programas a usar, así como el formato y destino del mp3 de salida.

En este caso los parámetros de lame indican que se grabará a 32kbps en mono.

Los mp3 de salida irán a este destino

Este script se ejecuta de lunes a viernes a las 12:09 hora del servidor (16:09 en argentina) y durante 6660 segundo, de modo que termina tentativamente junto con la finalización del programa.

Para configurar la tarea en cron ejecutar crontab -e. La tarea a agregar luce así:

09 12 * * 1-5 ~/bin/podcaster-efectotabano.sh

Eso es todo. Todos los días, de lunes a viernes tendré mi programa para descargar.

TO DO

Por supuesto, para que esto sea un podcast le falta la sindicación. Por lo tanto, habría que agregar la tarea de injectar información pertinente en una base de datos del cual generar el XML de sindicación.

Lo dejo para una segunda etapa. Me tengo que ir a escuchar o melhor programa do mundo.

Comentarios (1) | Link



NqN/webs :: Desarrollo, Diseño y Hosting de Sitios Web por Martín Gaitán
Neuquén & Córdoba - Argentina - © Año 2004/2009 - Tel (+54) 0351 460·1524 - Celular: (+54) 351 153·308454
Contacto | Pagos | RSS | SPIP | Usa Firefox