Python R2


Si bien no es de Python los espero.(LogicAr en innovar 2012 Tecnopolis 2012)

Posted in General,Informatica,Inteligencia Artificial,Nuestros Proyectos por Arturo Elias Antón en 26 septiembre 2012

Les cuento que voy a estar exponiendo en Tecnopolis, en el galpon de Innovar 2012 el proyecto LogicAR  durantes estos 3 dias.

¿Que es LogicAr?

  • LogicAr es una plataforma en la cual podrá, modelar múltiples orígenes de datos como un único dominio (hechos lógicos) mediante los TempleteLogic(TL) y explotar los mismos con reglas lógicas (escritas en lenguaje Prolog) y ejecutar tareas mediante scripts Groovy.

Algunas ventajas

  • LogicAR permite inferir sobre todos los datos de la organización sin necesidad de DataWarehouse.
  • LogicAR  es expansible en base a plugin de extracción de datos.
  • LogicAR reduce la incertidumbre y la subjetividad en el proceso de toma de decisiones.
  • LogicAR permite tener alertas inteligentes en todas las áreas de la organización.
  • LogicAR infiere datos nuevos a partir de los viejos gracias a reglas lógicas.
  • LogicAR facilita la integración de sistemas.

Los espero!!!!!! y les dejo un PDF mas explicativo.

LogicAr

Todo concluye al fin

Posted in General por Arturo Elias Antón en 11 mayo 2010

Bueno como les cuento ya no escribire mas en este blog. Si bien lo dejare online un tiempo y seguire atendiendo las dudas de las notas no escribire nuevas notas.
De ahora en mas empesare una nueva etapa en el nuevo blog mas general Software Potter.

Bueno Gracias por esta etapa y espero que me acompañen en mi nuevo emprendimiento….🙂

OpenCv+Gtk+Glade+Thread

Posted in General,OpenCV,Python por achauque en 13 noviembre 2009

La idea de este pequeño código publicado es entender un poco más sobre los Thread en Python. Básicamente es una ventana con un widget para imágenes y 3 botones (play, stop y capture).

La idea es ver en una ventana (GTK) las imágenes del cámara en “tiempo real”, para lo cual me valgo de los threads

El ejemplo trabaja con Opencv. Lo que por el momento no he podido lograr es terminar el hilo de ejecución para liberar el dispositivo. Por lo cual es bienvenida cualquier sugerencia para poder terminar la clase.

DOWNLOAD

Primeros pasos: Python+GTK+MySQL+Glade

Posted in Python por achauque en 5 noviembre 2009

En principio quiero agradecer por el espacio para poder expresarme!
Hace un par de meses empece a investigar sobre OpenCV y Python. Hoy estoy desarrollando un proyecto que me ha permitido escribir un par de funciones que espero les ayuden.
Estoy abierto a cualquier sugerencia para mejorar las funciones y ampliar la biblioteca.
Básicamente son 2 funciones que permiten cargar un control TreeView y un ComboBox a partir de consultas SQL.
El archivo comprimido cuenta con todo lo necesario para poner a funcionar un ejemplo basico:
* un script.sql para crear y cargar una tabla de usuario.
* un gui.glade para poder editar la interface grafica.
* y los *.py con el codigo Python.

DOWNLOAD

Python + Cairo

Posted in Python por Arturo Elias Antón en 15 mayo 2009
Tags: , , , , , ,

Estaba en casa arreglando mi cuarto cuando de pronto me encontre con una nota de la revista  mundo linux donde decia

“Cairo es una completa librería gráfica que permite la renderización tanto a pantralla como a impresora de gráficos en 2D. El trabajo con gráficos vectoriales, la integración con GTK+ y OpenGL son características fuertes. Si a esto le sumamos la utilización de un lenguaje como Python, la productividad está asegurada “

De esta misma nota saque un Script de demo que pondré aquí.

import cairo
WIDTH, HEIGHT = 600, 400

def draw_spiral (ctx, width, height):
	wd = 0.02 * width
        hd = 0.02 * height

        width  -= 2
        height -= 2
        ctx.move_to( width + 1, 1-hd)

        for i in range (9):
        	ctx.rel_line_to(0, height - hd * (2 * i - 1))
                ctx.rel_line_to(-(width - wd * (2 * i)),0)
                ctx.rel_line_to(0,- (height- hd * (2 * i)))
                ctx.rel_line_to(width - wd * (2 * i + 1),0)
	ctx.set_source_rgb(0,0,1)
        ctx.stroke()

surface = cairo.ImageSurface (cairo.FORMAT_ARGB32, WIDTH,HEIGHT)
ctx = cairo.Context(surface)

ctx.set_source_rgb(1,1,1)
ctx.set_operator(cairo.OPERATOR_SOURCE)
ctx.paint()

draw_spiral(ctx,WIDTH,HEIGHT)
surface.write_to_png('spiral.png')

Como siempre espero que les guste en la próxima integrare Cairo con GTK+ pero como eso no estaba en la revista me va a llevar mas tiempo jejejeje😛

Beta – PyWars 2.0.1

Posted in Python por Arturo Elias Antón en 5 mayo 2009
Tags: , , , , , ,

Hola a todos aca les dejo el servidor de pyWars-Beta que tiene todo para desarrollar un bot para el próximo torneo. La principales diferencia con el pyWars 1.0 son

  • Se puede disparar en diagonal.
  • Un solo disparo por Bot. (uno de cada Bot en la pantalla)
  • Se puede ver la contienda en un visor en 3D.
  • Otra diferencia es que el Visor se separo totalmente del servidor.

Aclaración: El visor Oficial para el torneo seguirá siendo el 2D.

bueno espero que propongan fechas y modalidad.

Link a descarga:  http://www.binsd.com.ar/descarga/pyWars-2.0.0.1-Beta.tar.gz

Para los que no estan en tema les cuento que pyWars es un juego para programadores.

Cada Programador (jugador) debe programar una clase que herede de  Bot. Un Bot es un cuadradito de color rojo o azul.
Los Bot en  esta versión solo podran tener un disparo en pantalla. El primer Bot que logra darle a su contrario ganara. en caso de que esto choquen empataran.

Al bajar el servidor se bajaran también los visores y algunos Bot de demostración.

Espero sus comentarios y propuestas.

Mouse Facila escrito en Python con OpenCV para Linux

Posted in Python por Arturo Elias Antón en 3 mayo 2009
Tags: , , , , ,

R2-mouse es un pequeño proyecto que presente en la Flisol de Carmelo 2009. No es mas que la evolución de los proyectos de mouse y openCV anteriores. Para poder correr este proyecto necesitaremos instalar:

  • python-opencv
  • python-xlib
  • PIL
  • pyGame

Descarga

Espero que les guste.

Como crear los XML haartraining para OpenCV

Posted in Python por Arturo Elias Antón en 28 abril 2009
Tags: , , , , , ,

En esta oportunidad les quiero mostrar un documento de un miembro de la lista de binsd. Gracias a él ya no quedaran misterios para que nuestra camara detecte cualquier objeto.

Bueno les dejo el documento de Chauque, Esteban Alejandro. Download

Gracias Alejandro!!!!!!!!!!!!!!!!!!!!!!!

Mi visita a la FLISOL de Carmelo 2009

Posted in Python por Arturo Elias Antón en 27 abril 2009
Tags: , ,
logo flisol

Hoy solo publicare mi experiencia en la FLISOL de Carmelo 2009.
La verdad que le viaje empezó medio complicado ya que viaje por la Cacciola una lancha del tigre y tuvimos un pequeño inconveniente y nos tuvieron que cambiar de lancha en el agua. Igual quiero dejar claro que el servicio de Cacciola es muy bueno más allá de los enojos del momento jejej. Luego al llegar a Carmelo me estaba esperando Jose Mignone y Fabian la verdad dos tipazos que hicieron que  estemos cómodos todo el tiempo tanto a mi como a mi viejo que me acompaño todo el viaje. Fuimos primero al hotel Urbano donde dejamos los bolsos y de ahi a ADEC, el instituto que era el responsable de la organización de esta FLISOL. En ADEC nos encontramos con Diego y Damián de ahi nos fuimos a comer a un barcito de la plaza central llamado FayFay que estaba muy bueno. Diego nos contó un par de historias muy entretenidas. De ahi a hotel a dormir.
El día de la charla nos levantamos con mi viejo y fuimos a desayunar en el hotel habia de todo para desayunar la verdad muy bueno.  De ahi fuimos a la escuela N° 6, donde se hacia el evento (FLISOL Carmelo 2009),  Conocí primero a Rodolfo que dio una charla copada de Ubuntu donde presento el entorno y algunas aplicaciones que ya vienen instaladas por defecto. En ese ínterin se nos cortó Internet y dimos un par de vuelas con Jose, Fabian y Damián  para ver como poder hacerla andar. Luego de este problemita  me tocaba hablar a mí. Yo presente un par de proyectos propios escritos en  Python y explique como programar un juego muy simple ya que apunte la charla a la educación ya que la gente que había era chicos y maestros.
De ahi nos fuimos a comer a Piccolino pidan un combinado se los recomiendo. A la tarde acompañe a Federico en su charla de Pippy un entorno de desarrollo para chicos que viene en el OLPC que da el plan ceibal. Quiero hacer un párate en esto de la OLPC y decirle a todos, que la verdad Uruguay me dejo sorprendido por su alto compromiso con el Software Libre y el funcionamiento de este plan Ceibal que funciona en todas las escuelas publicas. Y muy bien.
Al otro día volvimos a desayunar en el hotel y ahi nos encontramos nuevamente con Fabian quien me facilito las instalaciones de ADEC para poder dejar mi notebook y mi celular cargando para el viaje y de ahi nos fuimos a conocer con él y mi viejo la playa. Luego se sumo Jose quien la verdad le tengo que agradecer muchísimo ya que a pesar de tener familia de afuera en su casa fue un anfitrión todo el tiempo espectacular. Los 4 nos fuimos a comer al refugio donde tienen que pedir Pamplona.

Queria agradecer a Jose por darme la posibilidad dar la charla y decirle a todos no dejen de conocer Carmelo.

Fotos del evento click

Jugando con Automatas en Python (AFN -> AFD)

Después de tanto tiempo de no escribir y ya preparando la charla para dar en la FLISOL de  Carmelo me puse a jugar un poco con autómatas (Talvez muestre algo de esto allá). Este script lo que hace es bastante simple transforma un autómata finito no determinista a un autómata finito determinista.😉 Saludos y espero que les guste.

#!/usr/bin/python
# Clase AFN para transformar un AFN en un AFD

class AFN:
    def __init__(self,AFN):
        self.AFN = AFN
        self.SimbolosDelLenguaje =  self.LenguajeDeAFN()
        self.AFD = self.ToAFD()
    def Transaccion(self,e,t):
        return filter(lambda s:s[0]==t,filter(lambda s:s[0]==e,self.AFN)[0])[0][1]

    def EstadoInicial(self):
        # retorna una lista con el unico estado inicial
        return filter(lambda s:len(s)>=4 and s[3]=='>',self.AFN) #simpre tendria que ser uno por definicion de automatas

    def LenguajeDeAFN(self):
        # simbolos del lenguaje del AFN
        return [l[0] for l in  filter(lambda s:len(s)==2,self.AFN[-1])];

    def EstadosTratados(self):
        return [e[0] for e in  self.AFD] # los estados de llegada que fueron tratados

    def EstadosNoTratados(self):
        return map(lambda e:e[1],filter(lambda s:s[0] in self.SimbolosDelLenguaje and s[1] not in self.EstadosTratados(),self.AFD[-1]))

    def ToAFD(self):
        self.AFD =[]
        vecEstTmp= self.EstadoInicial()

        while len(vecEstTmp) <> 0:
            self.AFD.append( vecEstTmp[0])
            for estado in self.EstadosNoTratados(): #se recorren todos los estados que no fueron tratados
                TransaccionDelAFD=[] #en este vector se calculara los  las transacciones del AFD resultantes
                for simbolo in self.SimbolosDelLenguaje: # recorro para todos los simbolos del lenguaje
                    nuevoEstado=[]                       # defino nuevoEstado para armar el nuevo estado del AFD
                    for e in estado:                     # calculo la union con los conjuntos de llegada de todos los estados
                        for t in self.Transaccion([e],simbolo):
                            if t not in nuevoEstado:
                                nuevoEstado.append(t)
                        nuevoEstado.sort()

                    TransaccionDelAFD.append([simbolo,nuevoEstado])

                vecEstTmp.append([estado]+TransaccionDelAFD)

            vecEstTmp.pop(0)

        #busco los estados de Aceptacion y le pongo el *
        estasdosDeAceptacion = [l[0][0] for l in filter(lambda s:len(s)>=4 and s[-1]=='*',self.AFN)] #estados de Aceptacion
        for e in self.AFD:
            Aceptacion = False
            for ea in estasdosDeAceptacion :
                        if not Aceptacion:
                            Aceptacion =  ea in e[0]
            if Aceptacion and '*' not in e: e.append('*')

        return self.AFD

AUT = AFN(
        [
        [ [1], ['a',[1]] ,['b',[1,2]],'>'],
        [ [2], ['a',[] ] ,['b',[3]  ]],
        [ [3], ['a',[3]] ,['b',[3]  ],'*']
        ]#tabla de trancicion marcando con una -> el estado inicial y con * los estados favorables
        )

for l in  AUT.AFD:
    print l
Página siguiente »