viernes, diciembre 14, 2007

Control remoto Marmitek en Linux con LIRC


Primero aclaro que ya tengo bastante experiencia con el tema de lirc, que es un software que basicamente permite ejecutar acciones en un PC usando un control remoto tradicional. Llevo ya 7 años usandolo en casa en mi servidor y hace parte de mi dia a dia ya que el PC funciona entre otras cosas como centro de entretenimiento. La primera vez que use lirc lo hice realmente desde ceros, fabrique mi propio "receptor" de IR (infrarojos) siguiendo unas instrucciones que encontre en Internet para armarlo y conectarlo por el puerto serial y configure un control remoto generico de 5 euros. Con el tiempo fui haciendo cambios aqui y alla, pero basicamente solo cambiaba el control remoto buscando cada vez mas amigabilidad y al final termine usando un control de Sony que por cierto fue muy bueno. Lirc permite diferentes tipos de cosas, como ejecutar comandos al presionar una tecla (ejemplo: ejecutar o cerrar la aplicacion para ver Television, o la de ver DVDs, o la de oir musica, etc) o enviarle comandos directamente a aplicaciones (ejemplo: Adelantar la pelicula que estamos viendo, subirle volumen, darle pausa a un video, etc).

Realmente no tenia pensado cambiar el control remoto, todo funcionaba perfectamente, especialmente cuando vivia en mi apartamento anterior, donde tenia el servidor en mi habitacion la cual era relativamente pequeña, pero hace ya casi dos años me mude a un apartamento mas grande y ahora el servidor esta en la sala, la cual es mas grande. La recepcion comenzo a darme ciertos inconvenientes por la distancia y basicamente porque tenia que apuntar el control remoto hacia el PC y que no hubiesen mayores obstaculos en el camino (como una persona en la mitad). Aunque era un inconveniente menor, podia vivir con el.

Pero hace unas semanas estaba investigando acerca de un nuevo proyecto que tengo en mente para mi proximo apartamento/casa cuando me vuelva a mudar, tengo la idea de instalar un sistema de automatizacion del hogar, esto significa controlar elementos conectados a la red electrica a traves de un control remoto y/o del PC. Por ejemplo, quiero apagar la luz de la sala cuando voy a ver una pelicula, lo haria con un control remoto, quiero cerrar las cortinas electricas (en caso que tenga), lo haria con el control remoto, quiero que a las 9 am todos los dias entre semana el PC verifique que todas las luces esten apagadas y en caso de que haya olvidado apagar alguna antes de salir a trabajar, el PC la apagaria. Esto se hace con una tecnologia llamada X10. Leyendo me encontre con que Linux ya cuenta con todo lo necesario para hacer uso de ella, parece que hay muchos nerds en el mundo usando Linux hoy en dia, lo cual no me sorprende. Cuando quise hacer una lista y evaluar los precios del proyecto, me fui por la marca mas reconocida del mercado, Marmitek y me lleve una sorpresa grandisima, ellos fabrican un control remoto que combina la tecnologia IR (para controlar aparatos tradicionales como televisores, DVD players, etc) con tecnologia RF (radio frecuencia) para comunicarse con un PC. Solo por curiosidad revise si LIRC soportaba este control remoto y no podia creer lo que habia descubierto, el control remoto es plenamente soportado y funciona perfectamente. Ahora lo que realmente sacudio el alma de geek que llevo dentro fue que al leer las especificaciones descubri que por funcionar a traves de RF en modo PC, el control remoto tiene un alcance de hasta 20 metros y no importa que hayan obstaculos de por medio, o sea, atraviesa paredes y lo que sea. Apenas termine de leer esto ya estaba decidido, una busqueda rapida para encontrar el lugar mas barato donde lo pudiese comprar y lo ordene inmediatamente, 20 euros mas 5 por el envio. Cabe anotar que el control remoto ademas soporta X10, asi que cuando implemente mi sistema de automatizacion podre usar el mismo control.

La instalacion fue increiblemente sencilla, el receptor del control es USB, asi que fue cuestion de simplemente conectarlo al PC. Como funciona por RF no hay ningun problema respecto a la ubicacion, asi que lo conecte a un puerto de atras del PC y lo deje escondido.

El siguiente paso fue instalar el driver de LIRC. Sencillo tambien, si se tiene alma de nerd. Hay que escoger el driver "atiusb" y no hay que configurar nada mas (cuando usaba el anterior hecho por mi, debia configurar el IRQ y UART del puerto serial y no recuerdo que mas cosas). Se compila el driver y se instala de la forma tradicional (make ; make install). Un detalle es que la version 0.8.2 de lirc no compila correctamente bajo Ubuntu Dapper, asi que tuve que usar la version anterior 0.8. Cuando los programadores entenderan que las versiones ESTABLES tambien sin importantes?

Hice una busqueda rapida en Google y encontre que esta persona tenia un ejemplo de la configuracion de los botones, el link es este:

http://www.t3i.nl/php/blogdload.php?file=lircd.marmitek.tgz

Yo uso basicamente el control remoto para controlar una aplicacion llamada FREEVO, asi que no queria usar el circulo grande de arriba como mouse (tiene 8 botones direccionales, arriba, abajo, derecha, izquierda, y uno en medio de cada uno de ellos). Freevo se controla facilmente con ARRIBA, ABAJO, IZQUIERDA, DERECHA, PLAY, STOP, asi que por comodidad puse el circulo grande de arriba a comportarse como las flechas de abajo que tienen botones muy pequeños y son incomodas de usar. Complete la configuracion poniendo los botones que emulan los clicks del mouse L y R como STOP y PLAY y ENTER respectivamente. El resto fue carpinteria, otros botones mas como los numericos, los de adelantar, atrasar, pausa, menu, ok, etc.

Si a alguien le interesa, mi archivo de configuracion esta aqui:

http://ciudadmomia.com/linux/lirc/lircd.conf

Finalmente las pruebas de rigor que fueron mas que satisfactorias. La recepcion es excelente, funciona correctamente desde cualquier parte del apartamento (el cual es de dos pisos). Aun no lo he probabo desde fuera del edificio (vivo en quinto y sexto piso), pero estoy seguro de que funciona. No puedo mas que recomendar este control remoto, es lo mejor que he usado hasta el momento. Los unicos inconvenientes es que es relativamente grande y pesado y que usa cuatro pilas AAA y dado que funciona con RF, asumo que duran menos que las de un control normal IR.

martes, noviembre 06, 2007

Ajedrez: De lobo a oveja.

El fin de semana estaba en una rumba y me puse a jugar con un amigo que solo sabia mover las fichas, algunas otras personas le daban consejos, pero realmente la logica decia que debia darle mate en cuestion de 15 minutos. Yo me llene de triunfalismo y cuando el iba a cometer errores graves, de buena gente le avisaba y lo dejaba retractarse. Lo deje mover un rato y prepare mi remate final, cuando lo tenia a dos movimientos de darle materile el hombre sin saberlo hizo una jugada magistral que tumbo mi estrategia, yo sonrei y le explique como sin quererlo habia hecho lo unico que podia hacer para salvarse, mas gente de la rumba se intereso y poco a poco casi todo el mundo estaba mirando la partida.

De ahi en adelante fue una de esas situaciones inexplicables, yo me sentia en una pelicula de Lynch, yo preparaba algo y el hombre inocentemente movia un peoncito y me bloqueaba el ataque. Luego el se fue acercando a mi rey y pense que no tenia posibilidad de hacer nada peligroso cuando de pronto hizo un movimiento que para el era simplemente un jaque con animo simple de decir la palabra jaque, pero que analizandolo fue brillante. El publico comentaba al respecto y los que sabian jugar decian que era imposible que el simplemente "solo supiera mover las fichas", como yo lo conozco se que es cierto, solo que tenia a la virgen jugandole al lado. Yo comence a titubear, ya no me sentia triunfalista y estaba atemorizado, ya no movia en 15 segundos sino que me tomaba 2 o 3 minutos para pensar que movimiento improbable haria mi contrincante.

Ya no estaba en plan de decirle ningun error, aun asi no podia darle ningun golpe contundente y lo peor era que a veces hacia preguntas como "La reina tambien se mueve en diagonal?". Yo me sentia impotente y el publico estaba dividido, como era logico la mayoria apoyaba al debil. Comence a dudar y tome una mala decision, o mejor, jugue y perdi, me di cuenta que el no sabia bien el valor de cada ficha porque algunas veces arriesgaba fichas mas valiosas que las que atacaba, asi que arme una estrategia que podia terminar en matazon y donde yo saldria perdiendo, el tuvo oportunidad de comer ganando pero no la tomo, eso me dio seguridad y arriesgue mas, nuevamente una jugada donde el podia comer y ganar y tampoco lo hizo, el publico hacia comentarios en voz baja entre si y finalmente arriesgue el todo por el todo y el hizo lo que yo no queria, dio el paso para la comezon y yo termine sin reina.

De ahi en adelante ya fue una batalla por recuperarme y realmente me tuve que esforzar, finalmente lo logre, uno de esos mates sin casi fichas en el tablero, con rey (el mio) y peon involucrados, de esos matecitos que ya son con las ultimas.

Una partida que debio ser corta termino durando 90 minutos y con toda la gente de la fiesta viendola, apenas acabamos de jugar nos fuimos todos porque ya era lo unico que mantenia la gente interesada al final de la noche. Aun recuerdo lo que le dije a un amigo cuando estaba armando el tablero al comienzo, borracho en soberbia: Este lo saco hasta con mate pastor, pero dejemoslo jugar un rato.

viernes, julio 20, 2007

Linux/Unix is idiot proof - Linux/Unix es a prueba de idiotas

VERSION EN ESPAÑOL: por favor bajar

----------------------------------------------------------------------

scsiformat is a utility for low level formatting partitions. As we all know, formatting means your data is gone and low level formatting means it is gone even further. But this utility is clever, let's see what happens when you try to format a partition:

# scsiformat /dev/sda1
About to format SCSI disk /dev/sda on host 2 chan 0 id 0 lu
Short INQUIRY answer :-(i
Partitions:
8: 0 sda 262 MiB
8: 1 sda1 261 MiB

Formatting 262 MiB can take very long. Estimate: 1 min

Warning! About to lowlevel format / partition /dev/sda!

This will erase all data on /dev/sda, on any partition, be
To ensure that you are really awake and as a confirmation,
the solution for this simple multiplication:

21 * 14 = 444

Wrong. You lost, but your data won.




As you can see, the utility asks for a simple question, a multiplication. If you do not answer correctly the partition is not formatted. You lose but your data wins.

But we all know as well that almost every single Linux/Unix program includes a way to force the execution, normally it is either -f or -F. Let's see what the manual says about:


-F arg
forced operation, do not ask prior to format. arg must be 'Ene Mene Meck, und Du bist weg!' with proper spaces and capitalisation. (this is a German child rhyme kissing someone goodbye...


Of course you can force the execution of the command!!! You only need the option -F with an extra argument, the German sentence 'Ene Mene Meck, und Du bist weg!'. You can format your partition but scsiformat will ensure that you knew what you were doing!

----------------------------------------------------------------------------------------------------------------------------------

ESPAÑOL:

scsiformat es una utilidad para formatear particiones SCSI a bajo nivel. Como todos sabemos, formatear implica perder los datos que alli estaban y formatear a bajo nivel implica que estan se perderan del todo. Pero esta utlidad es inteligente, miremos que pasa cuando queremos formatear una particion:

# scsiformat /dev/sda1
About to format SCSI disk /dev/sda on host 2 chan 0 id 0 lu
Short INQUIRY answer :-(i
Partitions:
8: 0 sda 262 MiB
8: 1 sda1 261 MiB

Formatting 262 MiB can take very long. Estimate: 1 min

Warning! About to lowlevel format / partition /dev/sda!

This will erase all data on /dev/sda, on any partition, be
To ensure that you are really awake and as a confirmation,
the solution for this simple multiplication:

21 * 14 = 444

Wrong. You lost, but your data won.




Como podemos ver, la utilidad pregunta por la respuesta de una multiplicacion, si no respondemos correctamente la particion no es formateada. El mensaje de error es gracioso: Usted perdio, sus datos ganaron.

Pero todos sabemos que practicamente toda utilidad de Linux/Unix include una forma de forzar su ejecucion, normalmente es con la opcion -f o -F. Miremos que dice el manual acerca de eso:


-F arg
forced operation, do not ask prior to format. arg must be 'Ene Mene Meck, und Du bist weg!' with proper spaces and capitalisation. (this is a German child rhyme kissing someone goodbye...


Por supuesto que puede forzar la ejecucion del comando, solo es cuestion de utilizar la opcion -F acompañada de un parametro extra bien sencillito, la frase en aleman 'Ene Mene Meck, und Du bist weg!'. Su particion sera formateada, pero scsiformat esta seguro de que usted sabia que estaba haciendo!

martes, abril 24, 2007

Como se llega a ser jefe?

(Aunque esto esta orientado al area de sistemas que es en lo que me desempeño creo que es facilmente aplicable a otros areas de trabajo)

Nunca se ha preguntado como su jefe llego a esa posicion si es un bruto completo? Ya se dio cuenta que la mayoria de los jefes no tienen ni idea de lo que hacen? Como es posible que alguien que no sabe nada sea su jefe? Facil, cualquier persona que tenga unos cuantos años de experiencia puede confirmar lo que voy a explicar aqui, para llegar a ser jefe hay que ser un empleado mediocre durante los primeros años de su trabajo, tener paciencia y contar con un poco de suerte, eso es todo.

Como comienza la carrera de un jefe? A nadie lo nombran jefe porque si, hay que dar ese primer paso y eso es lo que es relativamente dificil ... o muy facil. Un jefe comienza su carrera como todo empleado, por abajo (a menos que sea el hijo del dueño o el sobrino del gerente general, pero esos casos no son los que discutiremos aqui) y normalmente los futuros jefes son malos empleados. Al comienzo lo tratan como un empleado nuevo normal, le dan cosas para hacer pero siempre tiene problemas, sus soluciones son increiblemente mediocres o no funcionan del todo, aparte de que pierde confiabilidad ya que nunca termina nada a tiempo. El jefe que tenga en ese momento se da cuenta de lo mediocre que es el empleado pero normalmente una vez los empleados estan medio entrenados los jefes no los despiden ya que llegar al punto donde una persona puede ser productiva es muy caro, se aplica el mejor malo conocido que bueno por conocer. Entonces que hacer? el jefe decide darle tareas de menor responsabilidad al empleado mediocre, cosas que sean repetitivas y no necesiten mucho analisis, normalmente eso significa que el futuro jefe terminia haciendo pruebas o escribiendo la documentacion. El "pobre" futuro jefe pasa a ser una especie de paria y los demas empleados o se la montan o le tienen lastima sin saber que en un futuro este "bruto" puede ser su jefe.

El futuro jefe tiene una cualidad, no se achicopala, asi que con mucho orgullo comienza a vivir su nuevo mundo de pruebas repetitivas y documentar cosas hechas por otros, una pesadilla para nosotros pero a el hasta le gusta. El tiempo pasa y su jefe al ver que el hombre ha estado cumpliendo bien con esas labores que nadie quiere, decide hacer lo que todo el mundo hace en esas situaciones, le da mas de esas labores aburridas y como el vivo vive del bobo el jefe comienza a pasarle pequeñas cosas cansonas que tecnicamente son su responsabilidad, asi que el futuro jefe termina haciendole reportes de gastos al jefe, escribiendole minutas de reuniones y hasta respondiendole sus emails. Como a la gente le gusta la vida facil y andar siempre en coche, el jefe decide que es mas facil si se carga a su esclavo personal para aqui y para alla, asi el puede hacerle todas esas tareas mamonas directamente. Y ahi es cuando el futuro jefe comienza a aprender el arte de ser jefe. Con el pasar del tiempo el futuro jefe ya se conoce como funciona la compañia a la perfeccion, como funciona la burocracia y quienes son los que realmente deciden todo. No se sorprenda cuando ud vaya por ahi caminando con el futuro jefe y este salude a Sutanito y a Perencejo, gente que ud que lleva mas años en la empresa que el nunca ha tenido la menor idea de quienes son y cuando le pregunte al futuro jefe quienes son ellos, el tranquilamente le responda, ese es Sutanito el de Contraloria y Perencejo el de Compras.

Finalmente llega el dia en que el futuro jefe dara el paso trascendental, una de esas epocas en que hay exceso de trabajo y todo el mundo esta sofocado y "hasta las tetas", ese dia apocaliptico el jefe tomara la decision de darle un proyectico chiquito al futuro jefe ya que el no puede manejar todo solo. El futuro jefe tiene todas las probabilidades de tener exito ya que lleva rato viendo como funciona todo, ademas asi no supiera, esos "proyecticos" nunca fallan porque al final de cuentas lo terminan haciendo dos o tres personas que en verdad saben del asunto y nunca generan choques que necesiten de decisiones gerenciales. Ese dia ud comenza a entender que paso cuando el bobo que se sentaba al lado suyo y que no sabe ni cambiarle la IP al PC llegue y le diga: A ver Ramirez, necesito que me calcule los esfuerzos para estos desarrollos, aqui estan las especificaciones, ojala lo pueda tener para mañana por la mañana porque por la tarde tengo una reunion con el cliente y tengo que pasarle la propuesta.

Ahora que ya sabe como funcionan las cosas es sencillo, si ud aun es joven y quiere ser jefe algun dia, solo tiene que ser mediocre y muy paciente. Porque si ud es bueno en lo que hace se volvera "imprescindible" y hara lo mismo por el resto de su vida.

martes, febrero 20, 2007

Manejar borracho nunca es bueno. Parte 1

Erase una tarde de un sabado de junio de 1995, yo acababa de llegar de un viaje de Brasil luego de estar alrededor de 3 meses clavado en un proyecto dia y noche, como era ya costumbre mis amigos llegaron a la casa a darme la "bienvenida" y pasamos la tarde tomando un trago infernal llamado cachaca (la c es con cedilla pero mi teclado aleman no la tiene) que acostumbraba traer de Brasil y que en lugar de tomarlo en caipirinhas como buenos indios que eramos nos lo tomabamos puro. El trago diabolico se acabo y seguimos con uno mas infernal, el aguardiente Nectar, asi paso la tarde y mis amigos ya un poco ebrios dedicieron irse a sus casas a dormir la perra. Yo aun estaba "bien", tenia la adrenalina de llegar finalmente a mi querida Bogota y aun tenia pilas para rato y fue cuando el celular sono y eran unos compañeros de trabajo que se disponian a subir de rumba a La Calera y me invitaban, todo como anillo al dedo, llame a mi mejor amiga que vivia en el mismo conjunto que yo y cuadramos la hora de partida. Me di un duchazo rapido, me puse la pinta de rockero rebelde que me caracterizaba en esa epoca, aun lo recuerdo perfectamente, una camisera de Pantera y unos jeans Levi's. Cuando ya estaba perfumandome para salir me llamo mi amiga y me dijo que no podia ir, se disculpo y yo como estaba ansioso de irme de rumba le dije que todo bien, que hablabamos al otro dia, procedi a llamar a un compañero del trabajo que tambien iba a ir y que habia estudiado conmigo toda la carrera en la universidad y era muy amigo mio y le dije que iba a subir solo, el me dijo que entonces no tenia sentido llevar dos carros y me pidio que lo recogiera, el al final tambien fue solo.

Sali en mi turbo Renault 9, recogi a mi amigo y subi La Calera velozmente, llegamos a la discoteca, era esa que se quemo y que las malas lenguas dicen que los dueños la quemaron para cobrar el seguro. Yo ya iba borracho y obviamente termine mas borracho que Ruso bebiendo vodka en invierno. La rumba estuvo buena, me baile mis merenguitos y muy alegres salimos rumbo a casa. Yo baje La Calera como alma que lleva el diablo, a lo que daba el carro, las llantas chillaban en las curvas, en cuestion de nada estaba en la septima, la tome hacia el norte y vire en la 127, deje a mi amigo en la 127 con 19 y tome la 19 hacia el norte rumbo a Villa Magdala donde vivia. Ya iba tan borracho que iba manejando por instrumentos, no veia bien la calle pero me sabia todo de memoria porque la habia recorrido innumerables veces, sabia donde estaba cada hueco. Pase la 134 con un semi pare y meti chancleta nuevamente, repeti la operacion en la 140 y en la 147 sin saber que el infortunio estaba cerca. A unos 200 metros de la 147, por donde quedaba la primera peluqueria Paul's (famosa porque era donde se cortaban el pelo los chocolocos de Margaritas, Villa Magdala y Capri, incluyendome a mi) habia un arbol caido en la mitad de la calle. Como hps hay un arbol en la mitad de la calle? Cuando yo lo vi ya estaba encima y en cuestion de un micro segundo muchas cosas pasaron por mi mente, lo primero fue mirar hacia la derecha y pensar en mi amiga y al ver el puesto vacio recorde que no habia ido, luego mire nuevamente al frente y analice la situacion rapidamente, es increibe en un momento de esos como uno puede llegar a pensar y analizar tantas variables en medio segundo, mi conclusion fue Montoyesca, decidi quebrar la cabrilla a la derecha, acelerar, montarme al anden y esquivar el arbol. Cuando ya lo iba a hacer me arrepenti y cambie de estrategia, me puse la mano en el cinturon para confirmar que lo tuviera puesto, me pegue a la izquierda, se me olvido el agnosticismo y le pedi a Dios que me sacara de esta y clave frenos, el impacto fue brutal, el arbol se movio unos dos o tres metros y luego el carro lo volvio a golpear. El carro se hizo mierda, la silla del pasajero salio a volar y las ramas entraron y quedaron a mi derecha a escasos centimetros de mi cabeza, luego los expertos me explicarian que a esa valocidad las ramas se vuelven mortales y que mi solucion de tratar de esquivar el arbol era un suicidio. Luego del impacto tarde en reaccionar, con la mirada perdida trataba de entender si estaba vivo o no, pero no podia llegar a ninguna conclusion, luego de un par de minutos la gente llego con la noveleria y algunos se acercaron a preguntarme si estaba bien, alguien me toco en el hombro y senti el calor de su mano, senti mi corazon latiendo, senti mi respiracion y me di cuenta que estaba vivo. Movi mis brazos un poco y luego las piernas y todo parecia estar bien. La cabrilla del carro se movio hacia mi pecho y me aprisionaba pero afortunadamente no se movio lo suficiente para causarme daño. Ese instante fue uno de los momentos mas felices de mi vida, saber que estaba vivo.

Continuara ...

jueves, enero 18, 2007

Porque cambiar es tan dificil?

Es curioso, todos vamos cambiando poco a poco, si recordamos como eramos, vestiamos, actuabamos, etc hace 10 años probablemente nos dara pena, esto confirma que lentamente hemos cambiado y a largo plazo dichos cambios de aprecian facilmente. Entonces porque hacer un cambio radical es tan dificil?

Esta comprobado que el 95% de las dietas fallan pero en lugar de asumir que el problema esta en la gente en si que no es capaz de asumir los cambios en las costumbres alimenticias que se tienen tomamos el lado facil y decimos que esa dieta no sirvio y mas tarde se prueba otra diferente. El problema es la dieta y no la persona, que conclusion mas absurda.

Porque no apagamos las luces que no estamos utilizando si sabemos que con eso ayudamos al planeta y lo mas importante, a nuestro bolsillo? Sencillamente porque no somos capaces de cambiar las costumbres que tenemos y la luces seguiran prendidas.

Porque preferimos conducir autos, gastar mas dinero y estresarnos en un trancon por una hora o mas en lugar de tomar transporte publico, gastar menos dinero y tiempo e ir tranquilamente oyendo musica y admirando el paisaje citadino? Porque estamos acostumbrados a andar en automovil y no queremos cambiar asi la logica indique que es la alternativa mas correcta.

Porque la mayoria de la gente no vota pero se la pasa todo el tiempo quejandose de los gobernantes que tienen? Porque tienen apatia y no son participativos y eso no cambiara, igual que diferencia puede hacer mi voto?

Hay personas que tienen multiples tarjetas de credito y viven sacando adelantos de una para pagar la otra, haciendo un hueco mas grande para tapar el hueco anterior. Porque no simplemente cambiar el estilo de vida y reducir los gastos hasta un nivel que puedan pagar sin necesidad de endeudarse de esa forma tan ilogica? Porque cambiar el estilo de vida es dificil.

Y esta negatividad al cambio puede llegar a casos extremos. El 50% de las personas que tienen una enfermedad mortal pero tratable no siguen el tratamiento que los podria salvar. Si hay que tomarse 3 pastillas diarias se toman solo 1 o 2 pensando en que un dia de no seguir el tratamiento no hara ninguna diferencia y desde el dia siguiente lo comenzaran a hacer bien, cosa que nunca pasa. Se pueden morir por no tomarse los medicamentos y ni eso los hace reaccionar al cambio.