24.12.08

Cicloturismo Express por Entre Rios

El ultimo fin de semana largo (que ya no puedo marcar en el calendario, oh! volatilidad!) incursione en tierras Entrerrianas en bici junto con Machunga. Salimos el viernes a la tardenoche desde Retiro y llegamos a Victoria con varias horas de atraso. A esas horas de atraso le sumamos horas de estar perdidos en Victoria interpretando mapas en calles oscuras llenas de peligros imaginarios y exaltacion (ambas cosas fueron aplacadas por un mini-shop de una estacion de servicio).

No quiero volcar un journal aca, solo una sintesis. Una sintesis que cuente como armamos la carpa en un camping municipal a las 6AM, o que diga que recorrimos Victoria todo el sabado (pasando por la Abadia Benedictina y el Ombusal), fuimos pedaleando para la Reserva Pre-Delta -y entramos a ella furtivos en la noche- y luego a Parana (en donde, entre otras cosas, descubrimos junto a Ciro la posta de la movida alien-benedictina despues de varios documentales sobre OVNIs y Chernobyl mas el conocimiento acumulado durante el viaje.

Dejo a continuacion alguns imagenes del viaje: http://picasaweb.google.com/cacopatane/TouringEntreRios

No conocia Entre Rios como lo conoci ese finde, me gusto mucho -sobre todo el tipo de paisaje de la reserva-. La unica advertencia que tengo para hacerles a los ciclistas es que las rutas de Entre Rios son un sube-y-baja gigante destructor rodeadas de hermosos paisajes sojeros.

12.11.08

Resaltar busquedas en vim

Para que queden resaltadas las coincidencias de patron de busqueda en vi tenemos que activar 'hlsearch' ya sea enviando el comando directamente a vim:

:set hlsearch

O agregando a nuestro ~/.vimrc (o /etc/vim/vimrc, para que funcione para todos los usuarios del sistema) la siguiente linea:

set hlsearch

Cuando busquemos, por ejemplo, el string Blog (escribiendo en modo normal del vim /Blog) nos va a mostrar lo siguiente:


Y vamos ser muy felices.

10.11.08

Convertir palabras a mayusculas y minusculas en vim

Un par de ejemplos practicos para convertir palabras/lineas a mayusculas/minusculas (uppercase/lowercase) en vim. Para convertir una palabra a mayusculas, nos paramos al principio de la palabra y escribimos:
gUw

En caso de querer convertir una palabra a minusculas:
guw

Supongamos que queremos convertir 5 palabras que estan en mayusculas a minusculas:
gu5w

Y a mayusculas:
gU5w

Por ultimo, si queremos convertir toda la linea a mayusculas:
gU$

Y a minusculas:
gu$

Hay mas informacion acerca de como convertir cosas a mayusculas y minusculas en la pagina del vim.

30.9.08

Ignorar archivos en GIT

Supongamos que estamos desarrollando una aplicacion en Python y queremos que el versionador GIT no nos muestre como "Untracked" los archivos con extension '.pyc' que se generan al ejecutar los archivos '.py'.

Parados en el raiz del repositorio de nuestro proyecto, editamos el archivos '.git/info/exclude' y despues de las lineas comentadas agragamos '*.pyc'.

# git-ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
*.pyc

Con esto, cuando ejecutemos 'git status' para ver es estado del repositorio, los patrones de archivos definidos en '.git/info/exclude' van a ser ignorados. Otra manera de excluir/ignorar archivos es utilizando '.gitignore'. Consulten la pagina del manual de gitignore para mas informacion.

16.9.08

Escuchar Online

En la ultima semana estuve aprendiendo a usar Django, un framework web para Python. El sitio tiene unos scripts en Python que buscan referencias a archivos de audio, revisan los tags ID3 y siguiendo ciertos criterios los almacenan en la base de datos. La interface del usuario permite buscar temas de musica para escuchar y, en algunos casos, escuchar un CD entero de una banda (la funcionalidad que estaba buscando en un sitio que me habia gustado y le faltaba!). El desarrollo de la interface al usuario fue muy rapido (muy facil de integrar templates), el administrador que genera es util y la documentacion me fue llevando bien (pegue unos saltos en algunas partes que luego lamente!).

Ya hay una demo usable en http://escucharonline.homelinux.org/, de a poco estoy subiendole mas datos y correcciones. Y la eterna duda con el disenio.

Este fin de semana me voy de vacaciones asi que no voy a poder seguirlo mucho, seguro cuando vuelva voy a estar sediento de programar y kab00M: zombismo electronico.

3.9.08

Maximizar el MSN

Es tan pero tan de cyber usar el MSN maximizado. No lo hagan. Menosuno a etiqueta, resta tres puntos de gloria y menosdos a todas las tiradas de destreza (por exceso lipidico).

1.9.08

Horror ancestral javascriptoso microsoftero

Estoy modificando un site para un laburo y en el codigo me encuentro con esto:

<script language="JavaScript1.2" fptype="dynamicanimation" src="file:///C:/Archivos%20de%20programa/Microsoft%20Office/Office10/fpclass/animate.js">
</script>

JASHKAJFHVSDQWDPOCXZXMVCNALuhGHTTT!!!

Cabe aclarar que el site es muy viejo y hecho "a la antigua" con FrontPage (que debe ser el causante de esa linea que se ve tan mal).

29.7.08

Como reducir el tiempo de compilacion en Flex usando fcsh bajo linux

Hace muy poco comenze a ver Flex como una manera de agregar algunos chiches a Webs usando linux. Empece a hacer unos experimentos en mi maquina, luego lo pase a un servidor chico (Pentium 4 de 1.6GHz) que usamos para desarrollar y los tiempos de compilacion se fueron de 8 a 20 segundos.

Hoy estuve probando fcsh para achicar los tiempos de compilacion y funciona. Evitando cargar la JVM cada vez que compilamos y guardando informacion que le es util en memoria fsch nos ahorra preciado tiempo a hora de compilar desde la terminal. Despues de decir un par de "que bueno!" con bastante emocion, paso directamente a hacer una prueba y poner los resultados a continuacion.

Creamos un archivo mxml con un reducidisimo "Hola Mundo!" en nuestro directorio "bin" de Flex. Vamos a ponerle testfcsh.mxml:

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="300" height="300">
<mx:Panel title="Mi prueba">
<mx:Label text="Hooooooooooooooooooooooola!"/>
</mx:Panel>
</mx:Application>

Ahora lo compilamos usando "mxmlc" con la opcion '-benchmark', mi copia de Flex esta en mi home dentro de los directorios ~/dev/flex/ y, tanto el compilador como fcsh, se encuentran en el directorio 'bin' dentro del de Flex:
caco@square05 ~/dev/flex/bin $ ./mxmlc -benchmark=true testfcsh.mxml 
Loading configuration file /home/caco/dev/flex/frameworks/flex-config.xml
Initial setup: 327ms
Loaded 8 SWCs: 838ms
Files: 327 Time: 3893ms
Linking... 107ms
Optimizing... 409ms
SWF Encoding... 81ms
/home/caco/dev/flex/bin/testfcsh.swf (158538 bytes)
Total time: 5679ms
Peak memory usage: 52 MB (Heap: 28, Non-Heap: 24)

Vemos que en total tardo 5.6 segundos, ahora probemos con fcsh. Primero ejecutamos fcsh:
caco@square05 ~/dev/flex/bin $ ./fcsh                
Adobe Flex Compiler SHell (fcsh)
Version 3.0.0 build 477
Copyright (c) 2004-2007 Adobe Systems, Inc. All rights reserved.

(fcsh)

En el prompt (fcsh) vamos a escribir el mismo comando que usamos para compilar con el mxmlc:

(fcsh) mxmlc -benchmark=true testfcsh.mxml
fcsh: Assigned 1 as the compile target id
Loading configuration file /home/caco/dev/flex/frameworks/flex-config.xml
Initial setup: 324ms
Loaded 8 SWCs: 788ms
Files: 327 Time: 3649ms
Linking... 57ms
Optimizing... 399ms
SWF Encoding... 97ms
/home/caco/dev/flex/bin/testfcsh.swf (158537 bytes)
Total time: 5324ms
Peak memory usage: 54 MB (Heap: 30, Non-Heap: 24)

El tiempo de compilacion es casi igual pero ahora, cada vez que recompilemos, vamos a estar haciendo uso recursos que ya estan en memoria y veremos como acortan los tiempos de compilacion. Para compilar nuevamente la misma aplicacion podemos enviarle a fsch el comando "compile" utilizando el id "1" que se le asigno a nuestro testfcsh.mxml cuando enviamos el primer comando. Voy a cambiar el string "Hooooooola mundo!" que uso en el ejemplo (fcsh detecta si no cambio ningun archivo, y nosotros queremos recompilarlo) y compilamos:

(fcsh) compile 1
Loading configuration file /home/caco/dev/flex/frameworks/flex-config.xml
Initial setup: 12ms
Loaded 8 SWCs: 17ms
Recompile: /home/caco/dev/flex/bin/testfcsh.mxml
Reason: The source file or one of the included files has been updated.
Files changed: 1 Files affected: 0
Files: 327 Time: 423ms
Total time: 453ms
Peak memory usage: 58 MB (Heap: 34, Non-Heap: 24)
Linking... 12ms
Optimizing... 171ms
SWF Encoding... 64ms
/home/caco/dev/flex/bin/testfcsh.swf (158546 bytes)
Total time: 250ms
Peak memory usage: 52 MB (Heap: 28, Non-Heap: 24)

Lo hizo en menos de un segundo, unas siete veces mas rapido que con el primer metodo! Estas pruebas las hice en un Pentium 4 HT de 2.80GHz, hago a pedido las mismas pruebas en una maquina mas lenta pero no ahora.

Tener abierta la terminal fcsh me esta consumiendo aproximadamente 65MB de memoria. Cabe aclarar, tambien, que quienes usan Flex Builder ya hacen uso de fcsh. En caso de no tener el fcsh, pueden bajarlo de la pagina de Adobe y para mas informacion visiten la documentacion de fcsh.

22.7.08

Mensajeria Memorable (no tanto)

Dump pre-eliminacion de emisiones varias desde y hacia mi persona. Para que no se esfumen los momentos volatiles que se sostienen a rayos en miniatura:

(Nicko) Loco no me anda la placa wailer

(Nicko) La placa wailer loco!

(Nessie) Estoy nuclear en ramos

(Machunga) No pasa el subte. Retroceda 5 casilleros.

(Nessie) Hay un dibujo animado peronista. Los peques se llama

(Caco_Patane) Caverna Sambayon!

(+813) Personal le informa que ha detectado un error en su domicilio de facturacion declarado Por favor comuniquese al *111 s/cargo para actualizar el mismo Gracias

(Nessie) E goacheen awante la keius majjjiiii!

(Caco_Patane) Hay una locavudu gritandole al jesus de al lado

. volatilvolatilvolatil .

1.7.08

Milanesa vencida

Betty! Esos muniequitos que dejaste atendiendo tu fiambreria me encajaron un sanguche de milanesa muy caduco. Me rendi en la mitad de la batalla. Que vuelva la ternura al paladar, las mandibulas quieren mantecas!

16.6.08

La cerveza artesanal Gilbert no esta buena

Esto forma parte de una nota mental que encontre hace un rato. El mensaje es simple, la cerveza Gilbert no tiene casi nada de lo rico que tienen las cervezas artesanales. No esta buena. Si la ven ahi, y se quieren tomar un vasito... bien, pero no se hagan ilusiones. Yo me las hice y lo amargo no fue solo la cerveza. Me gusta muchisimo mas la cerveza artesanal de Cossab y no tengo que irme hasta el sur para tomarla.

9.6.08

Si a los carriles exclusivos

No a los taxis que te encierran y despues te putean amparandose en "estoy laburando, pibe". Que frenan en la bicisenda y cuando les decis que no pueden estacionar ahi te ignoran, que andan a 5km/h y despues te matan a bocinazos por mas que estes llendo a 40km/h prendido fuego con la bici.

Hagan paro, va a ser apreciable un dia sin tanto ruido y humo. Los taxis NO SON transportes eficientes, economicos, sanos ni ecologicos. Puede ser un dia feliz.

2.6.08

Generando ID unicos (UUID) en MySQL

La funcion UUID() de MySQL nos devuelve un Identificador Unico Universal que podemos utilizar como ID unico en nuestras aplicaciones.

Podemos probarlo ejecutando la siguiente consulta:

select uuid() as uid;

El resultado esta compuesto por 5 grupos de caracteres hexadecimales separados por un guion:


+--------------------------------------+
| uid |
+--------------------------------------+
| 107782ca-8250-102b-bae9-001a92ba7031 |
+--------------------------------------+


Si estan usando PHP pueden validar el UUID con la funcion ValidateMySqlUid();

Validando UUID de MySQL en PHP

Funcion de PHP para validar (regexp de fede) los IDs unicos generados por MySQL:
function ValidateMySqlUid($string) {
if (strlen($string) == 36) {
if (preg_match('/[0-9a-f]{8,8}-([0-9a-f]{4,4}-){3}[0-9a-f]{12,12}/', $string)) {
return true;
}
}
return false;
}

31.5.08

"Ketchup Hot" es puro Marketing


Cientificos de nuestros laboratorios nos informan que el llamado "Ketchup Hot" fabricado por "La Campagnola" es mentira y no tiene nada de hot. Y todo esto, no fue solo validado por la ciencia: religiosos del picante estan uniendose para dar conferencias sobre el fraude desestabilizador que este producto mentiroso esta causando al universo del picor.

Si quieren comer algo parecido al "Ketchup Hot", de igual gusto, calidad (baja) y sabor pero picante, pueden agregar el "Aji Picante" (Adhereso a base de aji picante) de Knorr. Una solucion menos groncha seria conseguir algun picante decente.

27.5.08

Eliminar directorios (y sus contenidos) en PHP

La funcion rmdir() de PHP solo elimina directorios que se encuentren vacios, lo cual hace un poco denso eliminar estructuras de directorios grandes y complejas. En el manual de PHP hay un comentario que contiene una funcion para eliminar directorios y sus contenidos de forma recursiva:

function rm_recursive($filepath) {
if (is_dir($filepath) && !is_link($filepath)) {
if ($dh = opendir($filepath)) {
while (($sf = readdir($dh)) !== false) {
if ($sf == '.' || $sf == '..') {
continue;
}
if (!rm_recursive($filepath.'/'.$sf)) {
throw new Exception($filepath.'/'.$sf.' could not be deleted.');
}
}
closedir($dh);
}
return rmdir($filepath);
}
return unlink($filepath);
}

La entrada de rmdir() en el manual de PHP tiene otras recetas similares a la que use anteriormente. Otros ejemplos usan glob() pero, al parecer, tarda mucho en soltar los archivos y esto puede generar problemas aleatorios con los permisos de los archivos. El comentario correspondiente a la funcion tambien expone que utilizar opendir() es mas rapido que glob().

26.5.08

Un spam de Michael Ellis

De las series comicas de television que consumo, Monty Python (Monty Python's Flying Circus) es la que mas me gusta. Para aquellos que no conocen la serie, suelo explicarla (desporlijamente) como un Cha Cha Cha (la de Casero, vamos) de Inglaterra de los años 70. El excelentisimo capitulo 41, titulado "Michael Ellis", gira alrededor de un personaje que tiene el mismo nombre que el capitulo y del cual no se sabe nada mas que su nombre... que se repite constantemente en diferentes momentos mientras vuelve loco al protagonista ("Chris", en este capitulo).

Los parlantes de un shopping gritan mientras Chris sale de una tienda de mascotas despues de comprar una hormiga:

Will Mr Michael Ellis please go straight to the manager's office... I'll repeat that... (Chris mira para todos lados y escucha con atención) Will Mr Nigel Mellish please go straight to the manager's office.

Y un dia paso algo RARO, maravilla, asombro, mirada estupefacta contra el vidrio emisor. Spam de Michael Ellis, comienzo a reirme:



El no poder compartir una coincidencia asi con nadie compenso con la agudeza del mensaje, fue el Spam que mas certero senti hasta el momento. Y eso que, algunas veces, puedo pasar varias horas leyendo a ver de que van.

29.4.08

El Verdadero Curanto Patagonico (receta)

Comida de nuestra tierras patagonicas, a piedra y fuego. Mucho se habla, pero no todo el mundo esta al tanto de como se prepara el curanto. A pesar de que el tiempo pasa y transforma las recetas, lo mas escencial de esta receta y su preparacion permanece firme, solido.

Para comenzar se debe hacer un aujero en la tierra de 13 centimetros de produndidad en donde se colocaran rocas y se calentaran con todo el fuego posible elevando su temperatura al limite. Luego las piedras deben ser cubiertas con una capa de hojas de nalca o maqui. Sobre esta capa se colocan ingredientes: carne de vaca, de cordero, de cerdo, pollos, chorizos, papas, batatas, manzanas y zapallos ahuecados rellenos con queso, crema y arvejas.

Se procede, a continuacion, a formar una nueva capa de hojas por sobre la comida, cubrir esta capa con telas humedas y tapar nuevamente con tierra. Para finalizar esta sobrosa y tradicional comida, los cocineros orinan la superficie caliente, algunas veces invitando a sus mascotas a hacer lo mismo. El sabor, aroma y las particulas distintivas del orin no llegan a la comida pero esta se cocina con sus vapores formando una olla a presion natural. A pesar de que este ultimo paso pueda disgustar a algunas personas, sigue siendo parte de la tradicion y debemos tomarlo como parte de este delicioso y unico festin de nuestras tierras.

23.4.08

El Gobierno de la Ciudad hace Spam

Hoy me llego un mail a mi casilla personal promocionando unos cursos de capacitacion gratuita. Llego con mi nombre, segundo nombre y apellido. Me gustaria saber de donde sacaron estos datos y salir de esa lista (como de cualquier lista de correo masivo en la que este).


El envio lo hicieron a travez de "FromDoppler.com" asi que ahora una organizacion privada tiene mis datos (y los de vaya-uno-a-saber cuantos mas!) a su disposicion. Por mas que me desuscribi al envio, dudo que FromDoppler tenga la lista original, con lo cual se hace muchisimo mas dificil de conseguir salir de la misma.

Macri tendra estas cosas? Alguien haga algo!

20.4.08

IdleRPG en Freeenode (irc)

Hace un par de dias un amigo me invito a entrar al canal #idlerpg en el servidor de Freenode (irc.freenode.net) donde nos juntamos frecuentemente -por no decir "todo el dia"-. Dentro de este canal se juega a IdleRPG, un juego de rol en donde se sube de nivel sin hacer nada. Es mas, hacer cualquier tipo de accion tiene penalizaciones. Cuanto mas tiempo estes en el canal idleando, mas poderoso va a ser tu personaje. Ciertas acciones como encontrar objetos y atacar a otros personajes se hacen de manera automatica.

Puede que resulte un tanto estatico si no se esta acostumbrado a estar incontables horas en IRC, pero les aseguro que es practico y poco invasivo. Uno puede, tranquilamente, salir a dar una vuelta, ver una pelicula o desatender completamente el canal del juego y todo va a seguir su curso.

En http://idlerpg.numist.net/newdlebot/ se encuentran las instrucciones para comenzar a jugar. Nos vemos ahi (quizas).

13.4.08

La cultura como organismo burocratico del sentir

Enfoque en el cual, el conjunto de informacion cultural junto con sus patrones de comportamiento y desarrollo, aplica normas y procedimientos excesivos afectando al SENTIR de manera que ocurra una desestabilizcion por la cual nuestra energia se utiliza de manera ineficiente. La cultura, como entidad-una, posee ciertos mecanismos en el individuo que se comportan de manera egoista, solo colaborando en la obtencion de ciertos objetivos para la organizacion (cultura). Los recursos utilizados por estos mecanimos alejan al individuo de sus capas mas basicas dejandolo dando vueltas en juegos ilusorios que lo alejan de sus objetivos existenciales-primarios (cuales sean). Ademas, se implantan objetivos secundarios disfrazados que disparan preguntas sobre lo preguntado, correcciones de rumbos ya elegidos y dudas respecto al sentir. El sentir carece de dudas: los conflictos en el, no son mas persecusiones de todo lo que lo rodea.

5.4.08

Google dona US$18.000 para el desarrollo de Freenet

Ayer anunciaron en la pagina de Freenet que el equipo Open Source de Google realizo una donacion 18.000 dolares a Freenet. Las donaciones sirven, principalmente, para emplear a Matthew Toseland: el programador full-time que trabaja para el proyecto.

3.4.08

Desparramado por mi escritorio

Corchos, perinola, posa vasos, vaso, cenicero, porta lapices, dados, leds, potes, pilas, colgantes, cepillo, pantita de cania en botellita de agua, cilindros, anteojos, labial de cacao, destornilladores, fichas caducas de casino, aceite, micro-machines, pins, papeles, parlante, velas, muniecos, juguetes, voodoo de rambo protector, tachitos, tornillos, anotadores, propaganda cristiana, stickys, pomada china y mucho... muchisimo tiempo.

Lanzan el Release Candidate 1 de Freenet 0.7.0

El lunes pasado se lanzo el release candidate 1 de Freenet, la aplicacion P2P anonima y descentralizada. Freenet esta diseñada para permitir a sus usuarios transmitir informacion a travez de la red P2P de manera segura y anonima. La procedencia del contenido que se publica y se descarga no puede ser determinada, esto ofrece cierta seguridad frente a las recientes acciones legales que tomaron algunas discograficas y grupos dedicados a combatir la pirateria.

Si bien el fin de Freenet no es la pirateria, resulta ser un ambiente comodisimo para estas actividades. Actualmente, no hay mucho material pirata si lo comparamos con BitTorrent e eDonkey. El espiritu por detras de este software es garantizar la libertad de expresion apoyandose en el concepto del anonimato, permitir que los usuarios intercambien informacion, publicaciones, mensajes y naveguen paginas sin posibilidad de censura o represion.

Hasta ahora, la red viene funcionando muy bien y cumpliendo con los objetivos propuestos, pero queda mucho por hacer. El unico bache que le encuentro es que no mucha gente la usa, lo cual hace reducido el material que se puede encontrar dentro. Es un espacio, podria decirse, virgen: ideal para comenzar cosas-dentro.

19.3.08

Firebug en Firefox 3

Al fin, el Firebug era lo que me impedia moverme de Firefox2 al Firefox3. La version del Firebug 1.2.0a, todavia en estado alfa, se encuentra disponible en la seccion releases de la pagina de Firebug.

Para los que no conocen esta extension, les permite hacer Debug intensivo de paginas web monitoreando requests, modificando HTML y valores de CSS sobre la marcha (del lado del navegador), hacer debug de JavaScript y ejecutar JavaScript en una consola. Una vez que se lo comienza a usar se vuelve indispensable al punto que uno llega a decir que no puede trabajar sin el.

23.1.08

Hawking sobre el destino (cita)

"I have noticed even people who claim everything is predestined, and that we can do nothing to change it, look before they cross the road." -Stephen Hawking

20.1.08

Mensaje muy especial (hacia un ente de 5 minutos)

Adam Brown, vos nunca me contaste nada de lo que me decis que me contaste. Es mas, nunca te vi, oir hablar de vos o se quien carajo sos. No voy a ir a tu site.

18.1.08

Soporte Tecnico Fibertel

El servicio de internet de Fibertel, si bien no puedo decir que es bueno, es aceptable. Lo que es inaceptable es el servicio de Soporte Tecnico: la unica manera de que te atiendan es llamar a ventas. En estos momentos tengo el telefono con una musiquita de mierda en espera hace 25 minutos. Del 80% de las veces que llame, nunca me pudieron solucionar nada, en algunos casos era incompetencia de la gente de soporte y en otros me derivaban rapidamente a las insoportables musicas... para luego decirme que no hay ningun problema y ofrecerme mandarme un tecnico con la condicion que "si no es un problema de Fibertel el tecnico tiene costo".

En fin, el soporte tecnico de Fibertel es una mierda. Ojala hubiera empresas que se preocupen por brindar un buen servicio, tanto de internet como de telefonia.

3.1.08

Autotransformadores


Seamos sinceros, el slogan "Maxima Calidad" no le llega ni a los talones a "Voltron". Cuanto poder, por favor! En mi vida 75 wats de potencia me causaron tanta transmision! Un nombre-ente que tira todo el poder. Voltron! Si! Voltron!