efl
Flisol – Manaus – Amazonas
3
O 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.
A foto acima é da oficina de D-Bus.
Coordenação do Flisol indo almoçar.
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.
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
3Bom, 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.

