23.9.09

Error 'Directory .svn containing working copy admin area is missing"

Elimine accidentalmente un directorio ".svn" de una workingcopy y el error "svn: Directory .svn containing working copy admin area is missing" empezo a quemarme el coco.

La solucion fue hacer un checkout del directorio al que le borre el ".svn" en un directorio temporal y luego copiar el nuevo directorio ".svn" a mi working copy para reemplazar el que borre.

$ svn checkout http://devserver/myproject/trunk/direjemplo dirtemporal
$ mv dirtemporal/.svn /mnt/myproject/direjemplo

3.9.09

Redireccionar direccion sin www a direccion con www

Algunas personas se sienten incompletas sin las tres doble-v adelante de cualquier dominio a la hora de ver una pagina (no es mi caso) y para suplir esa irracional necesidad tenemos unas reglas de apache.

Supongamos que tenemos el dominio "direccion.com.ar" y queremos que cuando se ingresa la direccion "direccion.com.ar" o "www.direccion.com.ar" ambas apunten a "www.direccion.com.ar". La regla que necesitamos es:

RewriteEngine on
RewriteCond %{http_host} ^direccion.com.ar [NC]
RewriteRule ^(.*)$ http://www.direccion.com.ar/$1 [R=301,NC]

La podemos poner en el .htaccess o sobre la configuracion de apache para este dominio en particular. Ademas de cuestiones esteticas (con www, sin www), cuestiones de costumbre (esos bichos raros: "sin las www? creo que esta mal!") podemos usar esta regla para centralizar/unificar y evitar que un mismo contenido este en dos direcciones distintas. Entre otras cosas (que me da pereza comentar).

18.8.09

El Caballo Flogger

Especimen encontrado en las cercanias de un camping en la provincia de Entre Rios durante un fin de semana de kayak y bicicleta.

Se presume que el caballo flogger, cuyo nombre es un misterio, tiene amorios varios con caballos de otros campings cercanos. Durante nuestra estadia, y mientras posaba para la foto, ofrecio claras seniales de apareamiento. Estamos en vias de organizar un tour para que todos lo puedan visitar y queremos que la aun inexistente Floggerconf tenga como mascota oficial a este amiguin.

22.7.09

Colores en el diff de Subversion

Hay varias maneras de tener colores cuando hacemos 'svn diff', una de las mas simples y que no requiere instalar software adicional (como colordiff) es utilizando 'vim' de la siguiente forma:

svn diff | vim -R -

El resultado de este comando deberia resultar en algo parecido a esto:

14.7.09

TTYtter, un cliente de consola para Twitter

Siendo las funciones basicas de Twitter enviar y recibir texto, no me parecio que amerite instalar algun cliente que funcione en X y decidi buscar uno de terminal que consuma pocos recursos de sistema. Empeze a usar TTYtter hace unas semanas y no esta en mis planes cambiarlo.


TTYtter es un script hecho en Perl, puede usarse de manera interactiva o pasarle directamente comandos para integrarlo con otros scripts o llamarlo desde cron. El script pesa solo 80K y requiere, ademas de Perl, tener curl o lynx. Ademas, el soporte para SSL, nos permite encriptar los datos que intercambiamos contra el servidor de Twitter dandonos seguridad y privacidad.

29.6.09

AFIP: ignorancia, inutilidad y baja tecnologia

Dentro de todos los ambitos en donde la AFIP se desenvuelve, el marco digital es uno de los peores. Empezando por su pagina web (que no funciona en todos los navegadores) y siguiendo por los odiadisimos aplicativos que solo funcionan en sistemas operativos privativos (el que uso estos aplicativos -SIAP & Friends- sabe de lo que estoy hablando). A continuacion, un correo no solicitado (SPAM) que me envia la AFIP a mi direccion personal de e-mail:



Asi que, ya saben, mas informacion http:// internet / !

30.4.09

Backup/dump y restore de MySQL comprimido

Una tarea frecuente para todo desarrollador o administrador es hacer copias de resguardo de MySQL para posteriormente restaurarlas. Generalmente se hace un dump y luego se comprime el archivo (siendo este texto plano y con muchos caracteres repetidos, suele comprimirse *mucho*). Vamos a hacerlo de un tiron con el siguiente comando:

$ mysqldump -h localhost -u usuario -p basededatos | gzip > basededatos-2009-04-30.sql.gz

En caso de querer restaurar el backup tenemos que hacer:

$ gunzip < basededatos-2009-04-30.sql.gz | mysql -h localhost -u usuario -p basededatos

En los ejemplos anteriores localhost simboliza al hostname de la base de datos, usuario al nombre de usuario que utilizaremos para conectarnos a MySQL, basededatos al nombre de la base de datos y basededatos-2009-04-30.sql.gz al archivo en donde vamos a guardar la copia de resguardo de la base de datos.

Si tienen instalados otros compresores, como bzip2 o lzma, pueden utilizarse de la misma manera (bzip2/bunzip2 y lzma/unlzma respectivamente).

16.4.09

Eliminando directorios .svn con bash

Si tenemos una working copy de Subversion y queremos eliminar los directorios '.svn' que quedan cuando hacemos un checkout podemos ejecutar la siguiente linea parados en el directorio que queremos limpiar:

find . -name ".svn" -exec rm -rf {} \;

En caso de querer hacer un checkout sin los directorios '.svn' utilizen el comando export de svn.

7.4.09

Havaianas Radioactivas

Me regalaron unas hojotas glow-in-the-dark!

22.3.09

Touring Pehuenia

La primera semana de Marzo tome un micro -bici adentro- de Retiro hacia Zapala para recorrer las rutas y paisajes de lo que llaman 'La ruta de la araucaria'. Mi equipaje estaba compuesto por: una bici (Zenith Andes), carpa para uno (Eureka!), bolsa de dormir, aislante, cocinita portatil, comida, ollas, dos mudas de ropa, un libro de Carl Sagan, herramientas y cositas de camping basicas.


Zapala - Primeros Pinos - Villa Pehuenia

El micro se retraso y llegue tarde a Zapala. Ni bien baje del micro empeze a armar la bici, la lleve en una funda que me regalaron mis amigos para mi cumpleanios, hubo que desarmar ambas ruedas para que entre y en el espacio libre meti la bolsa de dormir, casco, guantes, aislante y una alforja. Tarde aproximadamente minutos en armar todo, compre dos botellas grandes de agua y a las 14 ya estaba pedaleando la Ruta 13 hacia el Este con la idea de acampar en Primeros Pinos.

La ruta estaba desertica, tanto de trafico como de vegetacion. A las dos o tres horas de salir me encontre con otro ciclista: Rodolfo, pare a charlar un rato, pedaleamos otro rato juntos (tenia problemas con los cambios de su bici) y luego me adelante. Habia viento de frente que fue no-tan-maldito hasta que llegue a un punto en donde no podia avanzar hacia adelante, ni arriba ni abajo de la bicleta.

Cuando el viento me pegaba fuerte de costado tiraba la bici y tuve que hacer un rato del trayecto a pie por que era imposible avanzar.

Se estaba haciendo de noche y tenia que acamapar, le hice dedo a una camineta que paso y con la mejor onda me llevaron hasta Villa Pehuenia. Me quedaban 10KM a Primeros Pinos y con el viento como estaban eran imposibles de hacer -frustrante para un primer dia-. Con 50KM y viento en contra todo el dia, acampe a las 23 en el camping Don Cirilo, me prepare unas lentejas y volque en la carpa.


Descanso (Volcan Batea Mahuida)


Desayune, mude el campamento cerca del lago y me heche a descansar. Pensaba tomarme todo el dia para descansar pero estaba inquieto y sali nuevamente a la ruta (sin equipaje) a dar unas vueltas. Empeze a recorrer el camino que iba a hacer al otro dia (con el Lago Alumine precioso a mi izquierda todo el tiempo), llegue hasta el Volcan Batea Mahuida y comenze a subir (camino de ripio, muy bueno, todo subida). A la hora y media de ascenso vi que eran las 17 y me puse a volver. Pense que iba a tardar mucho mas en volver, pero en las bajadas iba volando y me pase 10KM del camping... me di cuenta cuando la ruta se hizo de tierra otra vez, jeje.


Moquehue - Camping Trenel

Ya habia hecho el dia anterior el principio del camino, la parte que me quedaba era toda de ripio -Ruta 11- por momentos rodeando el Lago Alumine y luego el Lago Moquehue a mi izquierda y precioso bosque de araucarias (y demas) a mi derecha. La bici se comportaba bien en el ripio, tanto en las subidas como en las bajadas, las alforjas no se movian mucho y el unico ruido ademas de las ruedas sobre las piedritas era de mil porquerias que llevaba en el portamapas (frutas secas, galletias, camara de fotos, llaves, linterna, agua, pendrive -al re pedo-, pomada china, hilos). Predominaba la bajada y por algunos lugares en camino tenia serrucho.

Pare en una cabania en donde hacen salidas con trineos y perros (tambien crian), caminatas por la montania y otras actividades en temporada. Tome una coca fria y descanse un rato, segui hasta el Camping Trenel por adentro de Moquehe (me guiaron en el puesto de gendarmeria). El camino seguia siendo de ripio y asi iba a seguir los demas dias hasta llegar a las cercanias de Alumine.

La subida al camping era pronunciada, por suerte no era mucha. El camping estaba buenisimo, me toco un lugar con vista espectacular al Lago Moquehue. Ademas parrilla para fogon, bancos y mesa, tenia senderos para bajar a una playita preciosa que tenia algunas piedras grandes con araucarias saliendo de entremedio.

Lave mi ropa en los piletones de agua, merende mucho, baje a la playa a tirarme en la arena a la sombra de una araucaria gigante, volvi a merendar y me fui a tocar el cuenco a algunos metros de donde habia armado campamento. En todo el camping habia 2 lugares ocupados ademas del mio: mucha paz. A la noche comi unos sorrentinos con bolognesa y tome una cerveza en un lugar con mesas muy lindo que tenia el camping. La noche estaba preciosa, la luna brillante sobre el lago, el frio hacia que el fuego sea deleite puro.

From Touring Pehuenia

Moquehue - Lago Ñorquinco


Me levante temprano otra vez, tome un cafe con sonrisas, algunas frutas secas (en una dietetica consegui una mezcla de banana, avellanas, pasas de uva, almendras, nueces y pedazitos de frutilla) riquisimas y fuego (habia juntado mucha leña la noche anterior).

La ruta estaba solo un poquito peor (con mas serrucho) habia mucho sol y pocas subidas. La hice rapidisimo disfrutandolo tanto que casi ni saque fotos (estaba en un trance), el paisaje en todo el camino fue espectacular, cruzando entre dos montanias, nada de gente, lugares muy lindos para descansar, varios arroyos y mucha vegetacion.
Pare a acamapar a las 16 al lado de una proveduria que esta justo en la entrada al Parque Nacional Lanin, antes de cruzar el puente. El camping consistia en campo con arboles al costado del rio. Estaba solo en todo el lugar (salvo por unas gallinas y el tipo del camping), me prepare comida y pase lo que quedaba de la tarde leyendo al lado del rio.


Alumine

Me levante con ganas de un rico cafe (como todos los dias) pero no encontraba la bolsa con la comida. Sali a dar unas vueltas en bici por el camping por que me parecio que a la noche hubo unos perros dando vuelta "revisando la basura". Bueno, ademas de la basura, saquearon mi bolsa de comida que deje al lado de la carpa (mal lo mio, tambien). Estaba entre unos arboles toda abierta y mordisqueada, lo unico que safo fue una botellita de aceite (se comieron hasta los caldos). Me aprovisione con comida para dia y medio en la proveduria y sali hacia Alumine. El camino no era muy duro pero estaba mucho peor mantenido que todo el anterior (mucho serrucho), era mas arido y desolado. En la mitad del camino me encontre nuevamente con Rodolfo y hasta Alumine segui viaje con el. Paramos a cargar agua en el Rio Pulmari y seguimos camino a charla, contando por donde habiamos estado y como nos habia ido.

Este tramo bordeaba el Rio Alumine, precioso al sol que nos hacia clamar cerveza. Aproximadamente 1km antes de alumine, encontramos un camping (en el cual nos tomamos la imaginada cerveza) y acampamos. Iba a ser mi ultima noche de camping por que ya me volvia, Rodolfo seguiria viajando una semana mas. El camping no era tan bueno, estaba muy sobre la ruta y cerca del pueblo. Recomendaban un camping (si mal no recuerdo, se llamaba Piedras Verdes) que esta unos kilometros antes de Alumine pero estaba cerrado por que no era temporada.

A la noche comimos en 'Las Araucaria' en Alumine, hacia mucho que no comia algo que no sea comida-de-campamento y la milanesa con fritas a caballo estaba espectacular. Me dormi (como toodas las noches), muy rapido, cansado y contento. Al otro dia Rodolfo seguia viaje y yo iba a dar unos recorridos livianitos por los alrededores de Alumine. Encontre unas playitas muy lindas cerca de Rahue, tambien me cruce con dos ciclistas con los que me quede charlando unos buenos ratos (ambos me dejaron sus telefonos por si volvia, para salir a pedalear juntos) me contaron las salidas que hacen ellos por ahi.

Di una cuantas vueltas por Alumine (es chiquito) y a las 20 fui otra vez para 'Las Araucaria' a comer Lomo a la suiza. Me quede mirando ni-me-acuerdo-que en la tele hasta eso de las 23, a las 0:30 salia el micro para Neuquen y tenia que preparar la bici para el viaje.

El viaje de vuelta en Transportes Plaza fue PESIMO, uno de los peores viajes en micro que tuve en mi vida. El servicio malisimo, no llegabamos a tiempo a ningun lugar, el micro estaba sucio, las pantallas rotas, nos dejaron sin comer desde las 1 del mediodia hasta las 12 de la noche y el conductor era un peligro. Lease, intenten viajar en cualquier cosa menos por Transportes Plaza.


Ya en Retiro, despues de las 500 horas de viaje en el interminable micro del mal, arme nuevamente la bicicleta despues de un desencuentro con mi viejo y volvi a casa pedaleando. Desde ya que estoy planeando mas y mas viajes, es lo que le pasa a uno cuando hace estas cosas lindas. En la proxima, alguien acompania?

FOTOS TOURING PEHUENIA

16.2.09

Python SSH con paramiko

No me acordaba si Webfaction tenia la posibilidad de crear usuarios de ftp en vez de sftp (aunque todos deberiamos usar sftp!) y para un script en python que sube archivos via FTP me mataria. Encontre la libreria paramiko, una implementacion de SSH para python y por otro blog un ejemplo de como hacer sftp en python. Al menos tengo la info si tengo que usar el script y hostear ahi (ganas de re-codearlo tengo, tiempo no).

8.2.09

Servicio de Orientacion al Desorientado

Mesa de ayuda para cuando te sientas en ningun lugar, arreferenciado y esperando guia: 0-800-aaa-hhhh!

30.1.09

Los "Tags" en lanacion.com estan de adorno

No se que hacen! Creo que no hacen nada y son para agregarle un par de palabras a la nota. Deberian comportarse de otra manera. No entiendo. Quiero tocarlos y que me lleven a notas con los mismos tags!

23.1.09

Indentacion y Tab en vim

A pedido de rober, copio un pedazo de mi configuracion del vim en donde pongo que tanto los tab como los comandos para indentar en vim (que son '>' y '<') sean de cuatro espacios en vez de ocho. Editen su archivo vimrc (en su home ~/.vimrc o en /etc/vim/vimrc) y agreguen lo siguiente:
set softtabstop=4
set shiftwidth=4
set tabstop=4

19.1.09

4mil

La semana pasada mi bici cumplio sus 4000KM contados, asi que en un ataque de disipar toda la alegria y felicidad que me dio, les digo: hay que andar en bicicleta. Mas alla de que no contamine (sonora ni ambientalmente), sea saludable, un metodo de transporte rapido en las ciudades y seguro (al lado de los salvajes que manejan carruajes de mas de 300Kg generandores de calor) sino por que tambien es divertido. Ho! =D

Y como DeLa-arruga inaguro la bicisenda por la ciudad capital, queremos que Macri la recorra toda mientras la gente lo saluda. Tiene que tener un casco bien bala. Y retar a los policias que no les hacen multas a los incivilizados que se estaciona ahi.

Tendra que tomar sol o tiene un dispositivo que le calienta la sangre?

13.1.09

Dump de MySQL con Stored Procedures

Vengo guardando cositas que estuve usando/encontrando ultimamente. Me encontre en la necesidad de hacer un dump de una base de datos MySQL que tenia stored procedures, pero 'mysqldump' no lo hace por defecto asi que hay que pasar el parameto '-R' de la siguiente manera:

mysqldump -R -h host -u username -p my_db > my_db.sql

Siend 'host' el hostname o direccion IP de la base de datos, 'username' el nombre de usuario y 'my_db' el nombre de nuestra base de datos.

Mas informacion en 4.5.4. mysqldump — A Database Backup Program

7.1.09

Como encontrar los archivos mas grandes de un directorio en linux

Haciendo uso de tres comandos podemos saber cuales son los archivos que mas ocupan en el directorio y subdirectorios (recurse!) desde donde estamos parados. Tipeen en una terminal lo siguiente (si queren resultados rapidos asegurense de estar parados en un directorio que no tenga muchas cosas):

du | sort -rn | head

El primer comando ('du') lista (recursivamente) cuanto pesa cada archivo que esta en el directorio, en bytes. El segundo comando ('sort -rn') ordena este listado haciendo una comparacion numerica (-n) y ordena de mayor a menor (-r, reverse). El ultimo comando ('head', que viene a ser el gemelo malvado de 'tail') devuelve solo las primeras 10 lineas de la lista.

Podemos cantidad la cantidad de archivos que queremos ver utilizando el parametro '-n' de 'head' de la siguiente manera:

$ du | sort -rn | head -n 5
81416 .
34188 ./nuoveXT.2.2
21336 ./gnome
9104 ./gnome/scalable
6460 ./hicolor

Estoy reviviendo unos Drafts que tenia archivados por ahi y no se como llegaron a parar en donde sea que estaban. Proximamente: como formatear un salero.