miércoles, 26 de agosto de 2009

Stallman en Argentina

El día martes 25 de agosto, participe de la conferencia de Richard Stallman, lider de la Fundacion del Software Libre (FSF, por sus siglas en ingles). Mas allá de la emoción de ver en vivo a una de las personalidades mas influyentes en la cultura libre, la conferencia fue clara, amena y divertida.

He aquí la evidencia:

jueves, 20 de agosto de 2009

Buscando con Google desde Python (2.6) Parte 1

Empezé a investigar, para un nuevo proyecto, como utilizar la API AJAX de Google para Busquedas en conjunto con Python, lenguaje que se encargara del procesamiento en el lado del servidor y generara la pagina con los resultados.

Me encontré con el blog de Damon Cortesi que contiene un ejemplo de uso, que utiliza simplejson, incorporado en la biblioteca estandar a partir de Python 2.6.

Nuestro uso del api se limita a construir un URL que incluya los terminos a buscar y las restricciones de la misma.
La URL base es http://ajax.googleapis.com/ajax/services/search/images , a la que tendremos que agregar el termino a buscar, la version del protocolo, la cantidad de resultados devueltos

# -*- coding: utf-8 -*-
#!/usr/bin/python

import urllib
import json
# vamos a crear la consulta
query = urllib.urlencode({'q' : 'flores', #cadena a buscar
'v' : '1.0', #version del protocolo
'rsz' : 'large'}) # estableces que se devuelvan 8 resultados por consulta
#completamos el url
url = 'http://ajax.googleapis.com/ajax/services/search/images?%s' \
% (query)
#solicitamos el url
resultados = urllib.urlopen(url).read()
#interpretamos el objeto json. json.loads() nos devuelve un diccionario
json = json.loads(resultados)
#creamos un diccionario con los datos que nos interesan
resultados = json['responseData']['results']
#los imprimimos!
for i in resultados:
print i['title'] + ": " + i['url']

"""Salida:
flores089.gif: http://i121.photobucket.com/albums/o207/bicfomh/rec/flores/flores089.gif
ashley-flores.jpg: http://www.hoax-slayer.com/images/ashley-flores.jpg
z-flores.gif: http://www.zwani.com/graphics/portuguese/flores/images/z-flores.gif
Flor_289035504_017_flores.jpg: http://images.recados.net/img/recados/Flor_289035504_017_flores.jpg
z-flores1.gif: http://images.zwani.com/graphics/portuguese/flores/images/z-flores1.gif
z-flores3.gif: http://www.zwani.com/graphics/portuguese/flores/images/z-flores3.gif
z-flores10.gif: http://www.recados.com/graficos/flores/images/z-flores10.gif
RanchodeLasFlores3.jpg: http://www.herecomestheguide.com/images/location/RanchodeLasFlores/RanchodeLasFlores3.jpg
"""



Durante esta semana voy a seguir investigando, y voy a pasar de urllib a urllib2, que es mas eficiente(segun lo que lei)

Si quieren saber mas sobre la api AJAX lo pueden encontrar en:
http://code.google.com/intl/es/apis/ajaxsearch/documentation/reference.html#_intro_fonje
Hasta la proxima!

lunes, 22 de junio de 2009

A veces escribo

A veces escribo para dejar la rabia por fuera de mi cuerpo, por exorcizar mis miedos.
En este momento estoy pasando por un momento de estancamiento profesional y personal. No me atrae ninguna carrera, estoy dejando mi segunda carrera. Eso me abre grandes interrogantes.
¿Cual es el camino para realizarse? ¿Como detecta uno cual es la carrera mas indicada? ¿Soy un reverendo imbécil?¿Que somos?

Un agravante.

Me gustan demasiadas cosas.

Me disperso fácil.

Deje mi ganas guardadas en algun lado y no las encuentro.

Cuando uno conoce un poco de todo es mas dificil....

lunes, 4 de mayo de 2009

Instalando Open OPC en Python 2.6

Despues de volverme loco con dos interpretes de python instalados (el 2.5 y el 2.6) decidi desinstalar el mas viejo, que solo tenia para poder usar la aplicación OpenOPC[1].

No fue muy complicado migrarla. Los Pasos estan Abajo
-Instalar Pyro[2]
-Instalar PyWin[3]
-Instalar OpenOPC
Va a decirnos que no puede instalar las librerias de desarrollo porque no encuentra el python.
Le damos ok y seguimos el proceso.
Cuando Termina vamos a la carpeta donde esta instalado el OpenOPC (Por Defecto esta en C:\OpenOPC) luego a "\src" y copiamos los cuatro archivos a la carpeta '\Lib\site-packages' de nuestro Python 2.6(Por defecto es C:\Python26\Lib\site-packages)
Y voala!!
ya funciona....

Igualmente le escribi un correo al mantenedor, para que lo upgradiemos!


[1]OpenOPC for Python is a free, open source OPC (OLE for Process Control)
[2]Python Extensions for Windows
[3]Python Remote Objects


lunes, 27 de abril de 2009

Cambios en el Blog

Bienvenidos lectores casuales de este Blog.
Mediante este comunicado extraordinario les informo que el perfil pseudopoetico de este blog será modificado abruptamente, para convertirse en un blog dedicado a proyectos relacionados con microcontroladores, python, linux, matematicas, fisica y alguna que otra receta de cocina.

Cualquier sugerencia o pedido pueden realizarlo a traves de los comentarios.

Como Topico para abrir esta nueva etapa voy a esbozar un proyecto proximo a ser comenzado:

El "Brazo Modelador 3D"

Consiste de un brazo articulado en dos puntos, con 6 grados de libertad en total, que va a permitir tomar coordenadas tridimensionales, para luego procesarlas en blender (preferentemente).
Su aplicación es principalmente para artistas 3D que quieran tener una forma sencilla y DIY[1] de construirse un escaner 3d

Materiales a Utilizar:
- 6 Encoders de mouse de bola (se necesitan 3 mouses completos)
- 1 Microcontrolador y su periferia (La interfaz deberia ser preferentemente USB)
- Imaginación y material espacial[2] (Cantidad Suficiente)

Implementación del driver:

La idea es usar algo como pyserial[3] pero USB para poder comunicarse con el microprocesador. EL formato del mensaje del micro seria "E,x,y,z" donde E seria el estado del micro (cosas como 'Iniciando', 'Esperando Punto', 'Lectura OK' etc...) y 'x', 'y', 'z' son las coordenadas del punto tomado. El driver Devuelve una Repetición de los datos leídos, si son iguales se pone la salida a 0 y sigue, sino, reenvía los datos. Después se formatea para poder abrirlo con Blender[4] ( Debo buscar la documentación)
Como funciones adicionales se puede mover la ubicación del origen de coordenadas para superficies complejas.

TO DO:

-Buscar documentación de el hardware a utilizar.
-Diseño mecánico preciso del dispositivo.
-Programa del micro.
-Programa Driver en Python.
-Documentación de Blender.

En la próxima entrega un plano esquemático y links a documentación.

Enjoy!
--
Referencias
[1]http://es.wikipedia.org/wiki/DIY
[2]En mi Colegio Industrial la llamabamos asi a todo lo que "Caida del Cielo" lease Chatarra o Similar
[3]http://pyserial.wiki.sourceforge.net/pySerial
[4]http://www.blender.org/