Star Gazer

Hace un rato me topé con esta especie de Carl Sagan bizarro. Hay mercado para todo 🙂

httpv://www.youtube.com/watch?v=OTWoyHjQv4Q

Anuncios

Voy o Voy … y vos?

En estos momento @luchano está en plena presentación de Voyovoy, un sitio para encontrar qué hacer, no importa en donde estés parado.

Estamos lanzando con un subset recortado de las funcionalidades, pero lo básico está andando y en los próximos días iremos mostrando más del potencial que tenemos pensado para el sitio.

Pvm_mini

Palermo Valley Mendoza

Hoy a las 20:00hrs

En: Antares

Mendoza Valley es un emprendimiento sin fines de lucro que busca reunir y propulsar

@import “http://www.voyovoy.com/stylesheets/eventembed.css”;

Pueden seguirnos por twitter en @voyovoy o simplemente usar el sitio si les pinta.

Regalando cosas por Bluetooth

El año pasado Movistar había lanzado una campaña muy pedorra en el subte, en donde unos carteles en el piso te invitaban a prender tu Bluetooth y te enviaban un file. Lo que te enviaban era una simple imagen, con tanto texto que en mi celular era casi ilegible y no tenía consigna alguna.

Sin embargo esto sirvió para que me encaprichara y quisiera armar algo similar para la oficina, orientado a que un cliente que viene a una reunión se pueda llevar un regalo, que en este caso es un juego J2ME.

Hacerlo realmente es una boludez. El real problema, que no voy a tratar acá, es tener una placa Bluetooth soportada por Linux (creo que esta solución aplica Windows, pero no lo probé), lo que puede resultar complicado. Yo en mi anterior laptop fallé en cada intento. Hoy en día en mi MacBook anda todo out-of-the-box por suerte así que pude jugar un poco.

El protocolo que se utiliza para intercambiar cosas es Object Exchange (OBEX) y tenemos una excelente biblioteca llamada OpenObex. A nosotros nos interesa particularmente ObexFTP que nos da el File Transfer sobre Obex.

El primer problema que tuve es que en Jaunty no está el binding de ruby, por lo que me tuve que bajar el source y diff de Karmic y crear mis libobexftp-ruby_0.22-1_i386.deb y sus dependencias.

Salvando eso, con los ejemplos del wiki sale muy fácil. La biblioteca nos permite descubrir devices, abrir channels y enviar archivos en pocas líneas. Acá un en ruby ejemplo :

#!/usr/bin/env ruby

require 'obexftp'

puts "Scanning BT..."
intfs = Obexftp.discover(Obexftp::BLUETOOTH)
dev = intfs.first # Es un array, podríamos iterar sobre todas las encontradas

channel = Obexftp.browsebt(dev, Obexftp::PUSH)

cli = Obexftp::Client.new(Obexftp::BLUETOOTH)
puts cli.connectpush(dev, channel)
puts cli.put_file('ver.jpg')
puts cli.disconnect

Hacer lo mismo en Python, Perl o cualqueir otro lenguaje soportado es igual de simple.

Obviamente es muy minimalista: agarra el primer device encontrado, abre un channel para hacer un PUSH (si el device no soporta PUSH retorna -1 según creo), luego abre la conexión y le envía el archivo.

Desde el celular vemos un mensaje de que se está abriendo una conexión y luego el detalle de lo que se quiere enviar, nombre del archivo, tipo de archivo, tamaño, etc. Podemos aceptarlo o rechazarlo. De aceptarlo se descarga pero no se guarda ni se instala, es un paso extra que debemos decidir si lo hacemos o no.

Un problema que encontramos para enviar juegos es que algunos celulares están bloqueados para esa función (para así vendértelos por el portal WAP oficial de tu carrier). Ya lo pudimos probar con varios celulares Nokia, Motorola y Samsung y funciona razonablemente bien.

Sobre este ejemplo nosotros tenés un poco más de trabajo, ya que guardamos los device ID y el contenido enviado, así cuando volvés te damos un contenido diferente :). Si además no podés recibir el juego, te pasamos una imágen simpática :P.

Linux ath9k y beacon loss from AP

Hace unos días finalmente instalé Ubuntu 9.04 nuevamente en mi MacBook y estaba muy contento con el soporte (iRemote, iSight, Suspend e Hibernate, etc) hasta que empezaron los problemas con la placa Wifi.

El síntoma es que a cada rato se desconecta un segundo y vuelve, lo que lo hace insoportable para aplicaciones como Skype (y bue, de alguna forma cómoda hay que comunicarse con la flia) o trabajar por ssh.

El problema al parecer es una mezcla del driver ath9k y NetworkManager. Lo que sucede es que cuando el NM trata de refrescar la lista de APs dispara una operación que en el driver se reduce a ejecutar algunos cambios de frecuencia, reset de registros, etc. y eso si sobrepasa un cierto tiempo (que ahora no recuerdo si eran 2 o 4 segundos y tampoco guarde el link :D) dispara un trigger de “beacon loss from AP” y el NM cree que se desconectó y reinicia la conexión.

Hasta el momento el único workarround que encontré que parece funcionar bien es sacar NM e instalar wicd que no hace auto-scan de APs, por lo que no ocurre el problema (apt-get install wicd automáticamente desinstala NM).

¿Clarin apoyando la piratería?

El otro día hablando con un cliente sobre Taringa y las implicancias de simplificarle la piratería a la gente, me contó el puterío que al parecer hubo entre Clarín queriendo participar en este sitio y sus dueños (todos supuestos y conjeturas!, por si las moscas :D).

Lo interesante del caso, tal vez anecdótico, es que el multimedios más grande de la argentina al no poder subirse al caballito de T!, se cortó por su lado y lanzó Tipete, que no es más que un clon donde la gente puede compartir su piratería (o más bien los links, así después Taringa no me manda una carta documento :P), simplificando así esta práctica ilegal que antes al menos requería 2 dedos de frente :).

Un simple whois al dominio es clave 😉 :

Domain name: tipete.com

Administrative Contact:
Clarín Global S.A.
La Rioja 301
Ciudad Autónoma de Buenos Aires,  C1214ADG
AR

Como yapa, según me contaron algunos amigos “taringueros”, el lema de Tipete empezó siendo “más piratas que los del Caribe” cosa que no pude encontrar si era verdad o no.

MySQL a CSV remotamente desde el shell

Algo que siempre me molestaba de cuando una campaña deja de correr era la molestia de los día siguientes : “me exportas a,c,b de tal tabla”, “me das mejor b,a,c” y así sigue la molestia.

Más que nada porque tenía que loggearme al DB server, hacer un dump o correr algún script de php para armarlo.

Bueno, hoy buscando otra cosa caí sin querer en este tip que usa el comando myql y sed desde el shell. Así que ahora puedo tirar la query por la VPN (bueno, cuando ande bien voy a poder :D) directo al DB server y mandar por email el CSV :).

mysql -u user -h host -p --execute="SELECT campo1, campo2, campoN FROM  table_name" database_name | sed 's/t/","/g;s/^/"/;s/$/"/;s/n//g'

Esto lo tira al stdout, agregando un “> output.csv” estamos hechos.