efl

flisol-manaus-logo

Flisol – Manaus – Amazonas

3

flisol-manaus-logoO flisol em manaus foi um sucesso na minha opnião, graças ao comprometimento dos “pigs” da comunidade de software livre em manaus, pessoas como Antônio Junior, Davyd Smelk, Marcelo Mendes entre outros e a estes pigs deixo aqui postado meus parabéns. houve uma quantidade razoável de participantes, todas as palestras estavam cheias e as oficinas foram também bastante frequentadas.

Tirei algumas fotos do evento apartir do meu E71, a câmera não é boa mas como estava de dia até que as fotos ficaram boas. Segue abaixo algumas fotos.

Oficina de D-Bus

A foto acima é da oficina de D-Bus.

25/04/2009

Coordenação do Flisol indo almoçar.

Mais fotos no meu flickr.

Também não pude deixar de contribuir e fiz uma palestra sobre Python com EFL e ajudei em algumas oficinas. Como prometi na minha palestra que iria postar a minha apresentação no blog, cá estou eu postando.

Slides Python e EFl

Segue abaixo os códigos que fiz de exemplo, mas faltou tempo para comentar linha a linha. Para quem quiser estudar segue código.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/usr/bin/env python2.5
# -*- coding: utf-8 -*-
# Copyleft
#
# @author: Daniel Martins

import ecore
from ecore.evas import SoftwareX11
import evas
import edje

X_DIRECTION, Y_DIRECTION = range(2)


w, h = 800, 480
ee = ecore.evas.SoftwareX11(w=w, h=h)
canvas = ee.evas

states = 0
anime = False
anime_max = 0


bg = canvas.Rectangle(color=(255, 255, 255, 255), size=ee.size)
bg.show()


def change_object(o, e):
    global w, h, states, anime_max
    im_w, im_h = o.image_size
    if states == 0:
        o.pos_set(w-im_w, 0)
    elif states == 1:
        (x, y) = o.pos_get()
        o.pos_set(x, h-im_h)
    elif states == 2:
        (x, y) = o.pos_get()
        o.pos_set(0, y)
    elif states == 3:
        (x, y) = o.pos_get()
        o.pos_set(0, 0)
        states = 0
        return
    states += 1
   


ball_object = canvas.Image(file="Generic_football.png", geometry=(0, 0, 66, 65))
im_w, im_h = ball_object.image_size
ball_object.fill_set(0,0, im_w, im_h)
ball_object.on_mouse_up_add(change_object)
ball_object.show()


# Load and setup UI
ee.title = "Exemplo de Python EFL"


ee.show()
ecore.main_loop_begin()

Exemplo animado:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#!/usr/bin/env python2.5
# -*- coding: utf-8 -*-
# Copyleft
#
# @author: Daniel Martins


import ecore
from ecore.evas import SoftwareX11
import evas
import edje

X_DIRECTION, X_DIRECTION_NEGATIVE, Y_DIRECTION, Y_DIRECTION_NEGATIVE = range(4)


w, h = 800, 480
ee = ecore.evas.SoftwareX11(w=w, h=h)
canvas = ee.evas

states = 0
anime = False
anime_max = 0


bg = canvas.Rectangle(color=(255, 255, 255, 255), size=ee.size)
bg.show()

def anime_ball(img_obj, direction):
    global anime_max
    (x,y) = img_obj.pos_get()    
    if direction == X_DIRECTION:
        img_obj.pos_set(x+5,y)
        img_obj.pass_events_set(True)
        if x > anime_max:
            img_obj.pass_events_set(False)
            return False
    if direction == X_DIRECTION_NEGATIVE:
        img_obj.pos_set(x-5,y)
        img_obj.pass_events_set(True)
        if x < anime_max:
            img_obj.pass_events_set(False)
            return False
    elif direction == Y_DIRECTION:
        img_obj.pos_set(x,y+5)
        img_obj.pass_events_set(True)
        if y > anime_max:
            img_obj.pass_events_set(False)
            return False
    elif direction == Y_DIRECTION_NEGATIVE:
        img_obj.pos_set(x,y-5)
        img_obj.pass_events_set(True)
        if y < anime_max:
            img_obj.pass_events_set(False)
            return False
    return True
     


def change_object(o, e):
    global w, h, states, anime_max
    im_w, im_h = o.image_size
    if states == 0:
        anime_max = w-im_w
        ecore.animator_add(anime_ball, o, X_DIRECTION)
    elif states == 1:
        anime_max = h-im_h
        ecore.animator_add(anime_ball, o, Y_DIRECTION)
    elif states == 2:
        anime_max = 0
        ecore.animator_add(anime_ball, o, X_DIRECTION_NEGATIVE)
    elif states == 3:
        anime_max = 0
        ecore.animator_add(anime_ball, o, Y_DIRECTION_NEGATIVE)
        states = 0
        return
    states += 1


ball_object = canvas.Image(file="Generic_football.png", geometry=(0, 0, 66, 65))
im_w, im_h = ball_object.image_size
ball_object.fill_set(0,0, im_w, im_h)
ball_object.on_mouse_up_add(change_object)
ball_object.show()


# Load and setup UI
ee.title = "Exemplo de Python EFL Animado"

ee.show()
ecore.main_loop_begin()

Link para baixar tudo, inclusive a imagem. Só não esqueça que para executar é preciso ter instalado as EFL e os python bindings.Para a instalação tenho um post sobre. Confira.

Espero que tenham gostado do evento tanto quanto eu gostei. Qualquer dúvida, crítica e/ou sugestão pode colocar nos comentários.

Até a próxima.

Estudando python EFL – edição especial :-P

3

Bom, irei participar de um treinamento de python EFL onde o instrutor será o Gustavo Barbiery, tentarei fazer um resumo do curso até mesmo para que me sirva de referência futura e postarei aqui no blog, tenho conhecidos que trabalham e estudam também EFL e python e que ficaram tristes por não poderem participar do treinamento, infelizmente não é possível que todos participem. Mas como sou um cara legal e sempre gostei de compartilhar conhecimento :-) , além de fazer o resumo do curso que conterá muito código de exemplo. Irei também reportar a evolução do curso pelo meu Twitter em tempo real. Para isso instalei um widget no sidebar do wordpress, o qual vocês podem acompanhar ao seu lado direito da tela.

Para quem tem twitter, pode me seguir e fazer perguntas sobre a tecnologia em tempo real, para quem não tiver, pode deixar comentário no blog pois ficarei o tempo todo on line. Não atenderei todas as perguntas, irei filtrar as mais interessantes, portanto caprichem nas perguntas (se houver) que na primeira oportunidade que surgir perguntarei ao Gustavo e postarei no resumo do blog a resposta, sei que muitas das minhas dúvidas são as dúvidas de outros que começaram a trabalhar com EFL a pouco tempo, portanto muita coisa será respondida no resumo que farei do curso e não de forma imediata.

Qualquer coisa, seja sugestão ou crítica comenta ai. :-)

Update: Posts só sairão, no final de semana. Tá cruel, muita coisa pra fazer/estudar. :-|

Go to Top