Python R2


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