linux

Usando wget para bajar canciones o imágenes

Un cliente me tiene que mandar varias imágenes (logotipos, fotos) para poner en el sitio web que les estamos haciendo y lo que se le hizo más fácil fue subirlo todo a una carpeta en el servidor web que tienen contratado. Me dice que tiene más cosas y que las va a ir subiendo durante la semana.

Yo quiero bajarlo todo, pero que flojera hacerlo archivo por archivo. Y luego queda el problema de estar revisando la página por archivos nuevos. Tanto trabajo manual va a reducir mi productividad y no podré estar checando mi Google Reader. Por suerte estamos en linux ;-)

GNU/Linux tiene una herramienta que queda como anillo al dedo para este tipo de tareas y se llama wget. Sirve para bajar archivos de Internet y soporta HTTP, HTTPS y FTP. Como dice en su documentación, sus principales ventajas son:

  • que no es interactivo, lo que permite utilizarlo sin necesidad de intervención por el usuario ;-)
  • te permite continuar descargas canceladas (para cuando se te cae la conexión por usar la wifi)
  • sabe distinguir entre archivos que ya bajaste y los nuevos de la página
  • es recursivo (te podrías bajar todo un sitio web completito con un solo comando)

Entonces, manos a la obra.

wget -r -l1 -np -nd -A.jpg,.png,.gif -N http://dominiodelcliente.com/folder_de_imagenes/

Este comando lo que hace es:

  • -r. bajar todo lo que este en la dirección recursivamente, es decir, seguir todas las ligas que aparezcan en la página (recursive)
  • -l1. pero sólo hasta un nivel de recursividad, es decir, sin seguir las ligas que aparezcan en las otras páginas que se baje (level 1)
  • -np. Sin bajarse los archivos de carpetas en niveles superiores (no parent)
  • -nd. Bajandolo todo en un sólo directorio (no directories)
  • -A. Bajando solamente los archivos que terminen en .gif o .png o .jpg. (Accept)
  • -N. Y bajando solamente los archivos nuevos que no existan ya en la carpeta a menos que el del servidor sea más nuevo

Este archivo lo puedo correr una vez al día, o ponerlo en el cron y me bajara cada vez los archivos nuevos que vaya encontrando. Chido.

Todo esto fue fácil de averiguar gracias al poder de google, este buen tutorial escrito en inglés y el man page de wget.

Free Geek

Este es un refrito de un email que mande hace algún tiempo. De hecho estoy publicando en este blog varios de esos correos que solía mandar para no perderles el rastro.


Hace poco me tocó ver un video de una organización muy chida llamada Free Geek. Es una organizaciones de fines no-lucrativos que básicamente reciben computadoras viejitas de gente que ya no las va a usar, y las venden a precios bajos, o las dan a quien las necesite de a grapa, o las reciclan, además dando cursos y otras cosillas. En realidad creo que el video lo dice mejor que yo:

En mi grupo de FEFUs ya lo vieron, y a varios de los que vamos de misiones al cerro del 4 nos latió mucho la idea. A muchos nos gustaría poner algo así (a mi me encantaría). Sólo que ciertamente requiere que le dediques tiempo y algo de lana.

Me he puesto a investigar y estos compas de free geek ayudan a formar nuevos free geeks. Al que le interese aqui les pongo las ligas (en inglés) de free geek donde hablan más acerca de cómo formar tu propio free geek:

http://wiki.freegeek.org/index.php/Free_Geek_Startups
http://wiki.freegeek.org/index.php/Free_Geek_Startup_Franchise_Application
http://wiki.freegeek.org/index.php/Final_Application_for_Ongoing_Status_as_a_Free_Geek_Franchise

Esta última es una liga del cuestionario final que se espera que llenes para hacer oficial a tu nuevo free geek, claro que para llenarlo pues hay un proceso en el que ellos mismos te pueden ayudar.

Si a alguien le interesa poner algo así en Guadalajara, por favor escríbanme un correo porque me gustaría ayudar =P. Yo lo tengo como proyecto en espera desde hace algún tiempo jeje.

Omitir archivos de svn al buscar con grep

Usar linux es una maravilla para un programador. Existen muchos comandos que te facilitan muchas cosas de la vida diaria. Uno de ellos es grep, que te permite buscar alguna cadena o patrón en los archivos de tus proyectos. El uso normal se ve así:

grep -r 'function setFormatName' lib/widget

Para buscar recursivamente (-r) en todos los archivos dentro de lib/widget donde esta definida la funcion setFormatName.

Lamentablemente, cuando usas subversion para algún proyecto, terminas con un montón de carpetas .svn con cadenas similares a la que buscas....

Ahora, en internet hay varias maneras sugeridas para evitar buscar en estas odiosas carpetas de svn (una de las razones por las que prefiero mil veces git, que solo tiene una carpeta .git en el root de tu proyecto.... pero me estoy desviando). La que más me gustó, porque no involucra opciones confusas que tienes que recordar cada que escribes el comando, es agregar unas opciones a tu archivo .bashrc y listo ;-).

GREP_OPTIONS="--exclude=\*.svn\*"
export GREP_OPTIONS

Después de agregar eso a tu .bashrc sólo corre el comando source .bashrc para que tomen efecto (o reinicia tu sesión). También puedes leer las instrucciones en inglés aquí.

Otra opción es mejor usar ack, funciona en windows y linux por igual... pero eso lo dejaré para otra ocasión.

Compilando git en ubuntu 7.10

Git es un sistema de control de versiones distribuido. Es decir, un programa tipo subversion o CVS pero que funciona también cuando no estás conectado a internet.

En Ubuntu 7.10 puedes instalar git usando apt-get. Lamentablemente la versión que instala es la 1.5.2 que ya es algo viejita. Actualmente git está en la versión 1.5.4 que trae bastantes mejoras, particularmente las que te permiten manejar submódulos en git (introducidas desde la versión 1.5.3).

Distribuir contenido

Back to top