Encontrei essa excelente dica no blog do Brunno Gomes e não deixei de postar!
Para os desenvolvedores Python que precisam da funcionalidade de auto-completar e infelizmente ainda desconheciam como ter isso direto do seu interpretador Python, agora os problemas acabaram!
Vejam abaixo como fazer:
Ao abrir o shell interativo do Python (digitar "python" no terminal), rode os comandos:
1
importreadline
2
importrlcompleter
3
readline.parse_and_bind("tab: complete")
Agora é só usar o TAB sem dó para completar os comandos, e é muito útil para descobrir coisas novas também.
Por exemplo digitando "de" e apertando TAB ele mostra as opções:
1
defdeldelattr(
E se você por acaso não conhecia o "delattr()" pode começar a pesquisar e ver que ele é útil para você.
Para comemorar o octingentésimo post do meu blog (800 posts), decidi postar umas das minhas recentes idéias que tive durante momentos de reflexão. Este post retorna uma série de posts em 2006 que postei com várias idéias para projetos mobile.
Problema: Um dos maiores problemas que hoje enfrentamos em Recife e grandes centros pelas metropóles no Brasil é a falta de estacionamento público, em especial, localizada em famosas "zonas azuis". Vamos para um caso real: o Recife Antigo, sede do maior parque tecnológico de Pernambuco. Lá atualmente, para quem procura um estacionamento pelas ruas do Recife, sofre para encontrar uma vaga em aberto, e isso piora, quando chegamos em horários de pico como no meio da manhã ou no meio da tarde. A busca acaba em diversas rodadas de carro pelo Recife Antigo até achar uma vaga. O que isso custa ? Tempo para o motorista que perde tempo até achar uma vaga disponível, Combustível para o automóvel até encontrar a vaga e finalmente para o meio ambiente a poluição, o quanto é dispensado se essa busca é feita diariamente por centenas de carros, o quanto de poluição é dispensada.
Solução: A minha solução proposta é o uso de um aplicativo que acompanhe o usuário desde a sua chegada até o estacionamento e a sua saída do estacionamento. Nada mais coerente, do que usar o próprio celular do motorista como plataforma-alvo deste aplicativo. Além de ter hoje capacidades suficientes para processamento, eles vêm com sistemas de localização como GPS e acesso à web como 3G e futuramente WIFI (de acordo com o governo do estado de PE).
A minha proposta é desenvolver um aplicativo móvel que consulta uma webservice REST. Esta permitirá que o usuário possa encontrar rapidamente vagas livres em tempo real. A idéia inicial é ter uma tela com um mapa o qual o usuário mediante uso do GPS que vá consultando automaticamente num raio de X metros ao redor do aparelho (veículo) possíveis vagas em aberto. Assim que estacionar, ele poderia fazer um check-in, ou seja a vaga deixa de aparecer para outros usuários do sistema. Uma opção também é que mesmo que a pessoa que estacione deixe de fazer o check-in na vaga, isto é, ocupa a vaga, o sistema tem um timer que após 20 min por exemplo, a vaga em aberto deixa de aparecer. As vagas existentes livres são marcadas por um marcador o qual são coloridas como um mapa de calor (vaga mais recente -> vermelho escuro , vaga menos recente até timeout -> vermelho bem claro). Isso permitiria que o usuário pudesse avaliar no mapa as vagas mais recentes ou arriscar pelas vagas menos recentes. A pessoa também pode marcar novos lugares em abertos, por exemplo, a pessoa saiu do estacionamento deixando a vaga livre, ela pega o aparelho e marca como 'livre' aquela vaga (check-out).
Logicamente, quanto mais pessoas usarem a aplicação mais vagas aparecerão e o sistema será mais eficiente na localização de vagas livres em estacionamentos públicos nas cidades. Sim, e qual a vantagem de um usuário avisar que está saindo ? Pensei em um sistema de recompensa, como pontos de recompensa que são acumulados à medida que você encontra novos lugares disponíveis.
Esse sistema de recompensa pode ser usado futuramentem algum modelo de negócios para recompensar os usuários. Mas, a priori poderiamos ter uma lista dos top usuários que mais interagiram com sistema, inclusive tendo pequenos badges (insigneas) para estimulo de marcacao de novos lugares.
O modelo de negócios não é ainda definido, mas penso em um futuro próximo uma parceria com a zona azul por exemplo, para facilitar esse sistema rotativo, por inclusão de alertas para o usuário quando o tempo está próximo de expirar ( 5h , 2h , etc). Por exemplo, a localizacao de vagas, inclusive podendo integrar algum servico futuro de zona azul automático sem uso do papel ou até uso de propagandas junto à aplicação. Não está ainda muito bem definido.
Com certeza, um tipo de aplicação que pode ser exportada em moldes de modelo mundial, não apenas em Recife e capitais brasileiras.
Logicamente, é um ponto de partida, deixo aberto a discussão sobre a viabilidade desse pequeno projeto. Outra coisa a se definir é se há interesse dos usuários em marcar tais lugares ou se há aparelhos com acesso internet e tecnologia para viabilidade e popularidade desse aplicativo ? É importante frisar que é um sistema colaborativo, onde é essencial a participação do usuário na alimentação de dados no sistema.
Talvez eu construa este projeto mais como um protótipo para estudos sobre serviços REST e webservices. Quem quiser conversar e trocar idéias, fiquem à vontade para postar comentários abaixo.
Batizo o codinome deste projeto como: Socialnamento. ( O estacionamento agora é social!)
Este post é resultado de um experimento rápido que eu realizei nestas semanas sobre uma curiosidade que me alimentava há um certo tempo: " É possível desenvolver com Python na plataforma Android ?"
E a ótima notícia é que sim, é possível! Eu estava brincando com meu N900 da Nokia que vem com o Maemo OS e este tem suporte total ao Python nativo. Mas, é difícil no mercado brasileiro você comprar um N900, especialmente depois que a Nokia divulgou o seu preço oficial que fica acima da faixa de R$ 1000 reais. E ultimamente tenho visto uma tendência positiva de aparelhos embarcados com a plataforma Android da Google e suportada por fabricantes bastante populares no mercado brasileiro como a Motorola, Samsung, HTC, LG, etc. Como sou um fã da linguagem Python e pelas suas particularidades que fazem desta linguagem ser uma ferramenta para construção rápida de aplicativos, fiquei curioso para saber se o Android suportava desenvolvimento com Python.
Mas calma, nem tantas alegrias! De fato a plataforma oficial de desenvolvimento para o Android é a linguagem Java e que permite total integração com o sistema operacional e consequentemente a construção de aplicativos completos que possuam GUI e ao mesmo tempo instaláveis. Por enquanto assim como Python e outras linguagens de script é necessário que você instale um interpretador runtime para o Android e assim você poderá rodar seus scripts Python. De acordo com alguns forums que venho acompanhado, parece que há uma movimentação no Google para tornar possível a construção de aplicativos completos com linguagens de script como Python, inclusive disponibilizando-os via a loja virtual Android Market.
Agora que sabemos que é possível desenvolver pequenos aplicativos Python no Android, vamos para a próxima etapa que é como e por onde começamos a desenvolver. A resposta para esta pergunta está no projeto extra-oficial android-scripting (ASE).
Este projeto apresentado oficialmente em meados de 2009 agora conhecido como SL4A (Scripting Layer for Android) trouxe ao sistema Android o suporte a linguagens baseado em scripts como Python, Perl, JRuby, Lua, JavaScript, Tcl, e até o Shell. De acordo com o wiki do projeto, ele pode ser executado via terminal ou em background.
Tela de Edição do ASE
Existem 2 maneiras de instalar o interpretador e executá-lo: Por meio de um aparelho que tenha o sistema operacional Android ou pelo uso do emulador. Neste tutorial focarei na instalação no emulador, pois mesmo você não tendo um aparelho em mãos pode já começar a escrever códigos Python para executar no emulador e no futuro com seu aparelho em mãos vê-los em tempo real. Deixo claro que nem todas funcionalidades estarão ativas por meio do emulador como conexão bluetooth, speech-to-text, câmera e outras funcionalidades avançadas. Você pode ter mais detalhes sobre o emulador no site oficial do Android.
Vamos ao passo - a - passo (neste tutorial foi usado o sistema operacional Mac OS 10.5)
1 - Instalar o Android SDK
Por meio deste post (existem diversos pela internet (Windows)) eu consegui instalar o SDK do Android (neste tutorial a última versão era a 2.2). Com apenas o passo 2: Download the Android SDK, já é possível ter o emulador pronto para uso.
2 - Configurar o Android Virtual Device (AVD)
O próximo passo é criar uma dispositivo virtual (AVD), com este é possível simular o dispositivo com a versão do Android desejado. Para isso navego até a pasta onde eu extraí o android sdk:
/android-sdk-mac_86/tools (meu caso no Mac)
C:\android-sdk-windows\tools\android.bat (possível no Windows)
Executo o comando:
./android (no Mac OS) , C:\android-sdk-windows\tools\android.bat (no Windows).
Crio um novo AVD, nomeado 'ASE_test', conforme a imagem abaixo:
Selecione o AVD criado e clique no botão 'Start..'
3 - Instalação do ASE (Android Scripting Enviroment)
Você pode instalar por via console, baixando os pacotes no seu browser e depois instalando mediante comandos no console (ver este link) ou você pode fazer toda a instalação dentro do próprio emulador! Muito mais fácil, pois o Google permite instalar aplicativos no seu emulador como se fosse um dispositivo real! Para facilitar esta a visualização desta etapa, preparei um vídeo passo-a-passo ilustrando a instalação completa e inclusive como editar e executar scripts python com o ASE no emulador Android (serve também no dispositivo móvel).
O que está acontecendo por baixo ? Para simplicar, o ASE provê uma classe facade (fachada) que permite a integração via API por meio JSON RPC que funciona como um proxy. Assim funcionalidades nativas podem ser acessadas por meio desta fachada em interpretadores como Python e Lua. Claro que estas devem estar encapsuladas pelas classes AndroidFacade e AndroidProxy que de acordo com os autores do projeto são simples de extender.
4- Só programar e se divertir!
Pronto pessoal, vocês podem ter agora o Python rodando no seu emulador ou até no seu aparelho (os mesmos passos podem ser feitos em um dispositivo real). No emulador, embora limitado, já dá uma prévia do que é capaz a plataforma Android que abrange milhares aparelhos de diversas fabricantes. Vale ficar de olho nela, em especial no Brasil! Pode tomar o lugar da Nokia na categoria Smartphones, se a Nokia não acelerar seu desenvolvimento com o MeeGo.
Há mais informações no site oficial do projeto do ASE-Android e se quiser acompanhar a lista de dicussão do mesmo, também se encontra neste link.
Espero ter ajudado a todos a conhecerem mais uma plataforma que Python está presente: A plataforma Android da Google!
Este sábado participei do V Encontro do Usuários de Python de Pernambuco (PUG-PE), onde ministrei uma mini-palestra introdutória sobre padrões de projeto com a linguagem de programação Python. Na verdade, essa palestra foi extremamente introdutória e apenas um pontapé inicial para abrirmos dicussões sobre esse tópico tão recorrente especialmente em desenvolvimento de software.
Nesta palestra falei um pouco sobre os conceitos básicos de OO como Herança (IS-A), Composição (HAS-A) e Encapsulamento. A principal discussão ficou sobre o comando property de python que permite criar um mecanismo de encaspulamento em cima de atributos declarados em Python, visto ue os mesmos ao ser declarados são públicos. Ou seja, não há modificadores de acesso em Python. Esse comando permite você associar getters/setters (métodos) ao seu atributo que ao fazer operações de leitura e escrita sobre o mesmo, tais métodos são chamados automaticamente.
Com isso, o famos problema dos cursos de programação com OO com o exemplo do Saldo da Conta Bancária pode ser sanado. Saldo negativo jamais! hehe
Um exemplo de fone de ouvido foi utilizado para ilustrar esse exemplo e se encontra disponível nos slides no link abaixo.
O Encontro foi muito bom e tiveram ótimas palestras envolvendo Reconhecimento de Gestos, Twitter com Python, Iron Python e minha palestra sobre padrões de projeto. Parabenizar a todos presentes e envolvidos, e rumo ao VI Encontro do PUG-PE!!
Um resumo de todo o encontro pode ser encontrado neste link inclusive com os slides para download das outras apresentações.
Convido a todos para participarem da quinta edição do nosso encontro mensal dos usuários de Python de Pernambuco (PUG-PE) e neste não seria diferente: Além de discutir sobre a linguagem de programação Python e derivados, sempre há espaços com discussões abertas sobre open-source e tecnlogia! Para quem não conhece Python, já menciono que é uma das linguagens mais populares do mercado devido à sua flexibilidade e facilidade na construção de programas. Está em diversos ambientes desde servidores, web e até sistemas embarcados, sem esquecer, é claro, sua importância no ensino de linguagens de programação utilizada em cursos de universidades como MIT e UFRPE. Mais informações podem ser obtidas a partir deste link [1].
Para esta edição nosso encontro pretende trazer a seguinte programação:
1 -Introdução sobre Iron Python com Tiago Bockholt
2 – Padrões de Projeto com Python (Parte 01) – Marcel Caraciolo
3 - Open Allure (Reconhecimento de Gestos com Python) – Nielson Santana
4 - Introdução ao Desenvolvimento Ágil com Django - Filipe Varjão
5 – Como Construir Bots com Twitter e Python – Cirdes
6 – Espaço Aberto (Discussão para digestão do conhecimento e tópicos para o próximo encontro)
Muitas palestras e um prato cheio para trocas de idéias e aquisição de conhecimento!
A única diferença neste evento é que a sede mudou de lugar e nesta vez o local será a Escola Politécnica de Pernambuco (POLI) em Recife na Sala K3. O horário é a partir das 08:00 neste sábado (03/07).
Saiba como chegar através deste link [2] .
Mais informações sobre o grupo, podem ser encontradas neste links [3] [4].
Não conhece Python e gostaria de saber o que é e como começar?
Ontem ao ler alguns dos meus feeds, encontrei este aplicativo lançado pelo Lluís Danés chamado Py SyncNotes. É um aplicativo desenvolvido em Python, especificamente Python para S60 (PyS60) que roda em aparelhos Symbian S60 3nd Edition como E73, N95, N96, etc.
Py Sync Notes
O que achei mais legal da aplicação foi a capacidade de você compartilhar arquivos de texto (notas) entre o seu celular e a web, ou seja, você pode sincronizar os arquivos entre seu PC e o aparelho móvel. Achei muito útil, visto que de vez em quando você quer adicionar uma lista de compras no supermercado e não quer ficar digitando no apertado teclado do aparelho, item por item. Haja trabalho! Com esta aplicação, você monta sua lista no seu PC por meio de uma página web provida e posteriormente você pode fazer sincronizá-lo a partir do seu celular (tendo acesso à internet, claro.)
Uma opção muito interessante, e sem dúvidas com uma interface muito agradável! Parabéns ao Lluís e espero que esta aplicação seja lançada oficialmente (No momento disponível apenas para testes).
Mais uma aplicação desenvolvida com Python para celulares, muito legal ein? Lembrem-se que se quiserem testar, é necessário ter o PyS60 2.0 instalado no seu aparelho Symbian.
Disponibilizo um vídeo- demonstração fornecida pelo autor da aplicação abaixo!
No último post apresentei como iniciar o desenvolvimento de aplicativos para o N900 com a linguagem de programação Python. Durante o tutorial construí o primeiro Hello World. Porém, utilizamos a conexão sem fio para estabelecer a comunicação entre o aparelho N900 e o Mac/PC. Se não tivermos uma conexão sem fio disponível uma outra opção é fazer a comunicação entre o N900 e seu computador por USB. Como procedemos ?
1 - O primeiro passo é conectar o cabo USB no seu MAC/PC ao N900 e setar a conexão no modo "PC Suite Mode". (lembre-se que dever ser PC Suite Mode e não "Mass Storage Mode".
2 - Depois no seu N900, abra o X Terminal e execute o comando:
$ root
$ ifup usb0
Este comando gera uma configuração de rede válida via USB para o N900. O mais importante para você é que ele gera um ip e uma máscara de rede válida para uma rede local.
Agora para seu PC/Mac enxergue seu telefone, é necessário você configurar o IP estaticamente nele. Para isso vá até a sua configuração de rede (de acordo com o seu sistema operacional) e adicione um ip estático conforme abaixo:
IP: 192.168.2.xx (Pode ser na faixa entre 1 a 254)
Máscara de Rede: 255.255.255.0
Por exemplo, esta é uma possível configuração no Mac OS X 10.5 Leopard:
Configuração do IP Estático no MACOS/X
Feito esta configuração, agora só iniciar a conexão remota ao seu aparelho por meio do terminal do seu Mac/PC.
$ ssh root@192.168.2.15
$ root@ip_do_n900's password: (digite a senha para o ssh)
Caso a configuração não funcione, verifique se você realmente estabeleceu um ip válido na mesma sub-rede do N900 para sua máquina. O N900 deve estar configurado com o ip 192.168.2.15/255.255.255.0.
Verifique realmente se foi gerado um ip válido após o comando ifup usb0 . Um comando ifconfig -all no N900 pode te informar se ele gerou um ip. Lembre-se que este comando deve ser feita toda vez que você desligar o aparelho.
O fluxo segue conforme o post anterior a partir do passo 3.
O pessoal da comunidade Maemo.org arregaçou as mangas e desistiu de esperar por aplicativos para o N900 na Ovi Store. Eles se juntaram e lançaram uma competição de aplicativos no Maemo.org!
Como assim ?! A chamada começou no fórum da comunidade por meio de uma simples brincadeira, mas acabou se tornando algo mais sério. A idéia é construir uma aplicação funcional para o N900, entretanto ele deve se encaixar em uma das seguintes categorias:
Desktop
Sistema e Utilitários
Jogos
Gráficos e Multimídia
Localização e Navegação
Outros
Hehe, acredito que é tudo! O mais legal que o autor do post lá no fórum tomou a iniciativa e já colocou como prêmio o valor de $50 dólares para a melhor aplicação no geral. E também deixou disponível para quem quiser colaborar, poderá doar do seu bolso para aumentar o valor do prêmio.
Se você achou bom, imagina que a Nokia já ficou sabendo da competição e decidiu colaborar com prêmio. Os vencedores de cada categoria ganharão passagem e estadias pagas para o MeeGo Conference 2010, que ocorrerá na Irlanda no mês de novembro.
O período de inscrição para os aplicativos começou em 21 de maio, e extenderam o prazo até 21 de julho. A escolha será feita por meio de uma votação popular, no próprio Maemo.org
Não é proibido que programas já existentes sejam inscritos, desde que possuam novas funcionalidades que os diferenciem da atual. E o programa pode ser em qualquer linguagem (Apenas a documentação básica deve ser em inglês).
Para se inscrever basta alterar a página da wiki do Maemo.org incluindo seu programa.
É isso aê pessoal!! Agora é só pensar em uma aplicação, codificar e torcer pela sua aplicação!
Estou pensando em participar, vamos ver o que dá para ser feito com Python! ;D
Há algumas semanas adquiri o recém lançado aparelho da Nokia Tablet N900 embarcado com sistema operacional Maemo 5. Para aqueles que não conhecem, este dispositivo pode ser considerado um tablet e também um telefone (na verdade são ambos). Ele foi um dos aparelhos mais comentados na mídia especialmente pelo seu poder de processamento que chega aos 600 MHZ e 256 mb de RAM. Sem contar o seu sistema operacional que é baseado na distribuição Debian e sua placa aceleradora gráfica 3D com suporte ao OpenGL. Mais informações sobre ele no site oficial.
Mas o motivo deste post não é somente falar sobre este aparelho. O que me atrai nele é o ambiente de desenvolvimento para construção de aplicativos, inclusive a comunidade de desenvolvedores que está por trás dela. Quem não conhece o maemo.org e quiser participar é muito bem vindo! Uma das coisas mais legais que eu vi é que você pode compartilhar seus aplicativos por meio de repositórios específicos que quaisquer usuários, habilitando-os, poderão ter acesso à sua aplicação.
Além de ter uma forte cultura open-source por trás do Maemo, visto que todos os aplicativos são gratuitos, pelo menos nos repositórios, você ainda poderá explorar bem as funcionalidades do aparelho já que o mesmo fornece todo um SDK com suporte ao Qt, Python, Perl, C++, etc. Mas qual linguagem escolher para desenvolver ?
Eu escolhi Python por 2 fatores. Além do total suporte do Maemo para esta linguagem, visto que é uma distribuição GNU/Linux, ele possui muitos programas essenciais do sistema escritos em Python. O outro fator é o simples fato de Python ser uma linguagem fácil de aprender e simples de programar. Com qualquer editor de texto, você pode escrever algum código! Para aqueles que não conhecem python, recomendo dar uma olhada no site oficial que tem muito material disponível!
A partir de agora começarei uma série de posts sobre dicas e informações de como começar a desenvolver no Maemo N900 por meio da linguagem Python. Este material pretende ser referência em língua portuguesa, visto que há muito material em inglês, e às vezes um desenvolvedor não entende como fazer, pois não detém o conhecimento da língua inglesa.
Espero que possa ajudar a desenvolvedores e entusiastas de programação que desejam a construir seus aplicativos na plataforma Maemo. Vale salientar que neste post é necessário que você tenha um aparelho N900 mãos. Irei demonstrar passo a passo como colocar uma primeira aplicação Hello World rodando no mesmo. Em outro post irei demonstrar como instalar o emulador do aparelho para aqueles que não tem o N900 em mãos.
Estou executando todos os passos através do sistema operacional Mac OS 10.5, porém pode ser adaptado facilmente para o sistema operacional baseado no Linux (Ubuntu, Debian, Fedora, etc.)
Este artigo cobrirá os seguintes passos:
Instalação dos pacotes necessários para conectividade entre N900 e o Mac.
Algumas sugestões de editores de código em Python
Como construir seu Primeiro "Hello World" em PyGTK
Como transferir a aplicação para o N900
Como executar a aplicação
1 - Instalação dos pacotes no N900 e no Mac OS
O primeiro passo é ter seu N900 com acesso à internet (mediante GPRS ou Wi-FI). Você precisará instalar os seguintes aplicativos no N900.
OpenSSH é um aplicativo que permite enviar comandos remotamente no seu N900. Este aplicativo é extremamente importante para enviar os arquivos/comandos ao aparelho.
O rootsh é um aplicativo que permite você enviar comandos como root no X Terminal (pode-se usar sudo gainroot ou root). Você pode ver mais informações sobre acesso root aqui.
Procure pelos aplicativos rootsh e OpenSSH no search no seu App Manager.
A instalação irá requisitar uma nova senha de root para acesso SSH. Escolha uma.
Aguarde até a instalação estar completa.
Já no seu Mac/Linux/Windows:
Um cliente SSH. Para o linux, existe já o OpenSSH (via comando ssh) assim como o Mac que já possui o cliente o qual pode ser acessado mediante comando 'ssh' no terminal. No Windows tem o Tera Term
Um cliente SCP/SFTP. Tanto para o Mac como o Linux, pode ser utilizado o OpenSSH (mediante comando "scp"). Já o Windows você pode usar os programas WinSCP ou FileZilla. .
** Neste artigo não instalaremos o Scratchbox. Ele será comentado em outro post, quando falarei sobre instalação de emuladores.
2 - Acessando seu N900 pelo terminal.
Agora vamos acessar o terminal do N900 via root remotamente. Para isso existem 2 opções: Você pode usar a própria rede sem fio o qual seu PC/Mac e o N900 estão conectados. Este é o método mais rápido ou você pode acessar via conexão USB. Este exige algumas configurações prévias. Este método é mais complicado exige um post especial à parte.
2.1 - Conexão sem fio
1 - Digite os comandos abaixo no terminal do N900 (Para abri-lo va no menu Principal -> Terminal)
$ root
$ ifconfig wlan0 | grep inet
Você verá wlan0 - que refere-se a wireless network interface (Wlan) e o inet addr: que é o IP alocado ao N900. Ver figura acima. Anote este IP pois você utilizará para acesso remoto na sua máquina.
2.2 - Conexão Remota no seu terminal.
Agora vamos estabelecer a comunicação remota entre sua máquina e o N900. Para isso digite os seguintes comandos (Substitua o ip_do_n900 pelo ip obtido pelo passo acima).
Parabéns! Você já pode acessar seu N900 remotamente! Agora vamos ao seu primeiro programa python no N900!
3- Escrevendo código
Agora você deve começar a digitar seu código Python. Você pode utilizar qualquer editor de texto. Isto é o mais legal de Python! A escolha do ambiente é sua! Abaixo deixo alguns exemplos de editores famosos:
O que este código acima faz? Ele utiliza o framework de componentes gráficos disponível no Maemo chamado GTK. Com ele você pode construir aplicativos com suporte a janelas, botões, campos de texto, etc. Ele já vem instalado nativamente no Maemo e muitos aplicativos no mesmo utilizam o GTK para a construção de suas telas. O aplicativo acima apenas cria uma nova janela e coloca um botão no meio com o rótulo "Hello World" e adiciona o mesmo a ela. Posteriormente, o comando show_all() manda exibir a tela no N900. Para saber mais informações sobre o GTK você pode saber aqui.
4- Transferindo sua aplicação
Estamos quase lá. Agora vamos transferir sua aplicação para o telefone. Para isto vamos copiar os arquivos da sua aplicação (que neste caso é o pyMaemo.py) para o telefone por meio do cliente SFTP ou SCP. Abra outra instância do seu terminal (NO PC/MAC) e digite o seguinte comando:
Substitua minha_aplicacao/ pelo caminho do diretório o qual contêm os arquivos da sua aplicação. Este comando copia os arquivos da sua aplicação para o diretório correspondente no seu telefone.
5- Executando a aplicação
Finalmente, execute a sua aplicação. Você pode digitar os comandos abaixo ou no seu terminal (mediante a conexão estabelecida com seu PC e o N900. Ver o passo 2.1.) ou no X Termina do seu N900.
$ cd /root/my_application
$ python py_maemo.py
Finalmente, este comando python minha_aplicacao.py fará executar a sua aplicação no telefone. Você verá uma tela similar a essa!
Parabéns! Sua primeira aplicação em Python foi executada com sucesso!
Pronto pessoal, você tem uma aplicação simples em Python funcional no seu N900! Logicamente, há muito mais que pode ser feito e isto será coberto por mim em outros posts. Pode-se observar que é fácil você montar um ambiente de desenvolvimento em Python para o N900 com poucos minutos e já ter uma aplicação rodando. O N900 é uma plataforma realmente poderosa para construir suas aplicações, especialmente com Python!
Dica: Se você quiser tirar screenshots das telas do teu N900, você só precisa em qualquer tela pressionar os seguintes botões:
Ctrl + Shift + P
As imagens ficarão salvas na pasta:
~/MyDocs/.images/Screenshots ou Nokia N900/Images/Screenshots
Pessoal, tem um vídeo também disponível com os passos comentados acima pelo wiki do PyMaemo. Quem quiser, pode vê-lo pelo vídeo abaixo.
Valeu pessoal e até a próxima! Dúvidas ou sugestões estou à disposição!
O nosso IV Encontro do PUG-PE (Grupo de Usuários de Python de Pernambuco) foi um sucesso, considero como um dos melhores encontros! Tivemos uma palestra muito legal sobre TDD com Python (Testing Driven Development) e para por em prática os conhecimentos de TDD, finalizamos com um Codingo Dojo com Python! A interação entre os presentes foi constante, envolvendo iniciantes e já desenvolvedores experientes. Mais informações e inclusive com o material utilizado no nosso encontro, vocês podem ver no blog do PUG-PE pelo link abaixo.
Estamos convidando a todos para participarem do IV Encontro do Grupo de Usuários de Python de Pernambuco (PUG-PE). Para quem não conhece, o grupo em seu encontros discute sobre tecnologia, open-source e claro sobre a plataforma de programação Python.
Para os que não conhecem Python, ela se tornou uma das linguagens mais populares no mercado e devido à sua flexibilidade e facilidade para construção de aplicativo. Ela se tornou uma ferramenta atrativa para desenvolvedores, entusiastas e até educadores. Utilizada desde servidores, web, e até dispositivos móveis. É extremamente recomendada para ensino também de linguagem de programação utilizado em cursos em universidades como MIT e UFRPE.
Mais informações podem ser obtidas a partir deste link [1].
Para esta edição nosso encontro pretende trazer a seguinte programação:
1 - Palestra sobre Test Driven Development, por Rodrigo Vieira [2]
2 - Coding Dojo com algum problema na área de programação [3]
3 - Espaço aberto para alguma palestra de última hora ou para nossa
tradicional troca de idéias.
O local será o Centro de Informática (CIN) situado na UFPE em Recife. O horário é a partir das 08:00 neste sábado (22/05).
Mais informações sobre o grupo, podem ser encontradas neste links [4] [5]
Não conhece Python e gostaria de saber o que é e como começar? Compareça!! Todos são bem vindos!!
Se você quiser adicionar na sua agenda, o nosso evento!
Neste encontro, tive a oportunidade de falar sobre minhas experiências e mostrar um guia com exemplos de como utilizar expressões regulares com a linguagem de programação Python.
Para quem não conhece Expressões Regulares, ela é uma linguagem formal oriunda da teoria da computação e teoria dos autômatos que ajuda no tratamento e parseamento de arquivos, especialmente quando se trata de dados em grande volume. Pesquisar, validar e filtrar elementos podem se tornar um trabalho exaustivo se manuseado manualmente. Técnicas e Algoritmos como Expressões Regulares ajudam a facilitar a extração de conteúdo de forma bem eficiente.
Como a linguagem Python suporta nativamente expressões regulares, acaba-se sendo uma linguagem atrativa para introdução e manuseio de expressões regulares, devido à sua simplicidade e legibilidade na produção de código.
Essa ferramenta é extremamente útil para tratamento de arquivos texto, quando você tem padrões os quais você quer extrair ou filtrar de um texto. Recomendo a todos o uso desta ferramenta!
Abaixo seguem os slides e o código Python utilizado na apresentação.
Gostaria de divulgar o nosso III Encontro do grupo de usuários de Python de Pernambuco (PUG-PE) no Centro de Informática (CIN) na Universidade Federal de Pernambuco a partir das 08:00 no dia 17/04 (Sábado).
Neste encontro, teremos a seguinte programação:
Apresentação de quem ainda não compareceu aos encontros
Para aqueles que quiserem participar, bastam comparecer! A entrada é franca! Venha conhecer a tecnologia Python e discutir temas associados com outros usuários! E logicamente, ampliar seu networking!
Publiquei no meu outro blog sobre Mineração de Dados e Inteligência Articial (http://aimotion.blogspot.com) sobre meu novo projeto que estou desenvolvendo para obtenção do título de mestre em ciência da computação pela UFPE (Universidade Federal de Pernambuco). Eu dou um breve resumo sobre os desafios, motivação e proposta para desenvolvimento de um sistema de recomendação inteligente focado em mídias móveis.
O resumo está em inglês, mas quem estiver interessado em ler e discutir comigo sobre alguns aspectos e críticas sobre esta proposta. Se sintam à vontade!!
Áreas do conhecimento: Mineração de Dados, Sistemas de Recomendação, Mídias Móveis, Web Services, Geolocalização, SOA, Middleware, Redes Sociais, Microblogs, Inteligência Coletiva e Aprendizagem de Máquina.
Gostaria de postar uma notícia que vi em blogs internacionais na área de mobilidade, especialmente relacionada à Nokia, o qual lançou o produto chamado Nokia Bots. Este produto é composto por uma coleção de mini-utilitários (agentes autonômos) que monitoram a forma e uso do seu telefone e tenta melhorar a experiência com o sistema através de sugestões ou alterando configurações automáticas de acordo com o uso. Por exemplo, imagine que você geralmente ponha o despertador do seu celular para te acordar em um determinado horário. A idéia que o bot responsável por monitorar os serviços relacionados à alarme aprenda o horário que você geralmente dorme e sugere tanto o alarme , como também configura automaticamente o alarme. Legal ein?!
O Nokia Beta Labs, responsável pela criação desses aplicativos, informa que os mesmos, por enquanto, só funcionam no Nokia N97 e no Nokia N97 mini e ficam executando na tela principal do aparelho como pequenos widgets. Além do Alarm bot, existe o Profile bot, que automaticamente altera as configurações de telefone (volume, toque, silencioso, etc) enquanto você está em reuniões (logicamente, utilizando informações oriundas do aplicativo agenda do seu telefone). Há também o Shortcut bot que rastreia as aplicações que o usuário usa mais frenquentemente, e os coloca como atalhos na tela principal do aparelho. A idéia é facilitar o acesso à aplicação, substituindo os existentes na barra de atalhos. Por fim o Battery Bot, que monitora os níveis de bateria e avisa ao usuário quando a bateria precisa ser carregada previamente, afim de evitar a síndrome da bateria descarregada no dia posterior. Para isso ele põe uma mensagem na sua tela inicial, informando que você precisa recarregar seu telefone, Abaixo algumas screenshots do Nokia Bots:
Abaixo um vídeo do Nokia Labs falando do Nokia Bots:
Abrindo agora meus comentários, achei a idéia genial e acredito que já tenha postado essa idéia aqui no meu blog há algum tempo. A idéia de ter aplicações que rodem no seu aparelho ocultamente e aprenda com o uso do telefone pelo usuário pode facilitar a vida do usuário, especialmente quando envolve atividades que sejam repetitivas ou periódicas. Logicamente, que esse tipo de aplicação necessita de um certo tempo para que ela aprenda o seu comportamento e consequentemente possa sugerir configurações para seu telefone a partir do interesse real do usuário naquele momento. Queria ter um N97 para fazer uns testes! Mas estou preocupado o quanto esse monitoramento deve consumir da bateria do aparelho. Será que essas rotinas por trás para monitorar o uso do aparelho ficam executando de forma exaustiva?! E o aprendizado é contínuo ?! Qual o intervalo de tempo que ele "reaprende" com o usuário ?! Perguntas que estão na minha mente! Gostaria de saber se há alguma técnica inteligente executando por trás. Acredito que não, acho que é mais uma tabela de frequência.... Perguntas que ficam em minha mente!
É isso pessoal, quem tiver um N97 e testar o aplicativo, favor postar comentários!!
Estou aqui para divulgar uma apresentação que dei hoje, na verdade uma aula para a turma de Turismo e Hotelaria da Universidade Federal de Pernambuco (UFPE-PE) sobre Noções Básicas de Internet com o micro-tema: "Internet aplicada para o Turismo".
A turma foi bem receptiva e bem engajada com a apresentação, embora tenha sido apenas o pessoal do primeiro período da turma de turismo. Espero ter despertado não somente o espirírito empreendedor no pessoal, como também mostrar como a internet pode ajudar a atingir novas formas de comercialização ao seu cliente. Para quem quiser acessar ou fazer download dos slides clicar aqui.
Quero agradecer ao professor Germano pela oportunidade e confiança em me selecionar para ministrar essa aula à turma de turismo! Sim, claro e falei de mobilidade! heheh tinha que falar né?!
Gostaria de publicar a contribuição do colega Richard Matovu (@matrich) ao meu projeto PysChart que foi um dos meus primeiros projetos open-source envolvendo Python e computação móvel. O projeto foca em disponibilizar um pequeno framework para construção de gráficos em aplicações para dispositivos móveis Symbian S60 (Ex: N95, N73, 5800 XM, E71, etc.)
Esta biblioteca foi construída em meados de outubro de 2008, fruto de um projeto o qual eu utilizei tal biblioteca para construção de gráficos de linha. O mais interessante é que o Richard me procurou, e ele da Uganda na África, para utilizar o framework e também fazer umas melhorias! O resultado está lá no site oficial do projeto hospedado no Google Project, o qual você pode agora construir gráficos de linha com mais de uma série! Sensacional!
Quem quiser conhecer mais sobre o projeto e quiser utilizá-lo ou modificá-lo, visite o site oficial do projeto PySChart. Ele roda sobre o runtime do Python para celulares Symbian S60: o PyS60.
O que mais me impressiona, é a convergência de pessoas que a cultura open-source promove. Nunca se sabe quais pessoas ao redor do mundo podem estar usando coisas que você desenvolveu! E o mais legal a interação que você tem com essas pessoas. Recomendo a todos a criarem projetos se possível open-source, você pode conhecer várias pessoas e receber contribuições ao seu projeto de diversas formas! Está aí a prova!
Quem quiser saber mais sobre o depoimento do Richard sobre o PysChart, clique aqui.
Aproveito este post para comentar sobre o II Encontro do Grupo de usuários Python de Pernambuco (PUG-PE) que ocorreu neste último sábado no Centro de Informática (CIN)/UFPE. O evento foi de alto nível, o qual manteve a qualidade do nosso último encontro. Podemos ver a palestra do Rodrigo Amaral sobre desenvolvimento de aplicações Python para web com o Google App Engine e a introdução ao Coding Dojo com Brunno Gomes. Fora a discussão saudável no fim de praxe sobre o uso de python nas universidades!
Foto do II Encontro do PUG-PE
Para quem quiser saber mais sobre como foi o evento, e inclusive fazer download do material apresentado no encontro, visitar o blog do PUG-PE:
E se você ainda não faz parte do PUG-PE, aproveite e acompanhe nossa lista de discussão! Conheça essa linguagem poderosa que é Python e o que ela pode fazer por você!!
O III Encontro já está em pauta e previsto para abril! Participem!
Este post é para falar sobre a minha palestra no II Encontro Livre realizada na Livraria Cultura, quinta-feira passada com o tema "Conhecendo Python e por que ele importa ?". Primeiramente, gostaria de agradecer a todos os presentes, admito que fiquei extasiado ao ver o auditório cheio de pessoas. Isso me levou a acreditar que a linguagem de programação Python realmente desperta a curiosidade de muitos, e também vejo que a nossa lista de discussões do PUG-PE (Grupo de usuários de Python de Pernambuco), está incentivando pessoas usarem Python em seus projetos.
Um agradecimento especial à comissão de organização do evento do Encontro Livre, Célia e Gustavo que me atenderam e me ajudaram com toda infra-estrutura para palestra. Sem dúvidas, esse tipo de evento tem um evento promissor especialmente fugindo das fronteiras de Recife, indo mais além: Pernambuco e até Nordeste. Com certeza, irei submeter novos trabalhos em futuras edições do encontro.
Falando um pouco sobre a minha palestra, eu tentei envagelizar o pessoal falando sobre o que é e como eu posso começar desenvolver com Python, e finalmente por que eu deveria usar Python ?! Fiz algumas pesquisas pela internet, e inclusive, recebi vários depoimentos de colegas e empresas que usam Python em seus projetos. Exemplos são presentes aqui em Pernambuco como: I2 Tecnologia, Orygens, Instituto Nokia de Tecnologia. Outra informação interessante é a crescente oferta de empregos envolvendo Python inclusive no exterior!! Grandes empresas vem utilizando Python, o que mostra que ela ainda tem grande potencial e mercado!
Mostrei também algumas demonstrações envolvendo o uso de Python na Web e Mobile. Um dos produtos foi o desenvolvimento de um crawler para o Twitter que extrai informações de trânsito das principais vias aqui de Recife, e posta as mesmas no Twitter de forma automática. Construí usando a engine do Google App Engine e Python básico com parsers em XML. Os dados são provenientes do portal da Prefeitura do Recife gratuitamente. Esta aplicação também segue o mesmo molde, sendo totalmente gratuita! A experiência foi fantástica, e consegui fazer o aplicativo com apenas 65 linhas de código em 1 tarde, usando somente Python!
Quem quiser ver o aplicativo e acompanhar o trânsito do Recife ao vivo, basta acompanhar/seguir o usuário do TrânsitoRecife no twitter pelo endereço:
Vale salientar que ainda há novas funcionalidades a adicionar neste sistema, como tornar isso de forma mais inteligente de acordo com a requisição específica do usuário, em vez de despejar o conteúdo das 28 câmeras no twitter. Um Parser inteligente, talvez?!! Interessante idéia!
Desenvolvi outra aplicação mobile para telefones móveis embarcados com sistema operacional Symbian (Exemplos: N95, N97, N73, E71, etc. [Modelos da Nokia]) . Escrito em Python, e executado pelo interpretador do Python portado para celulares Symbian S60, o TransitoRecife Mobile, permite você acessar as informações do trânsito através do seu aparelho móvel. Nesta versão eu adicionei algumas informações como a localização da câmera em um mapa, as imagens das mesmas e por fim a situação do trânsito se está lento, congestionado ou livre. Estou gerando um aplicativo instalável para poder disponibilizar gratuitamente a todos que quiserem testar em seus aparelhos, em breve publicarei em um post por aqui. Por enquanto vejam alguns screenshots da aplicação:
É isso pessoal, estou também disponibilizando os slides da minha apresentação para download. Gostaria apenas que quem usá-la por favor, entre em contato comigo para a gente discutir em como usá-la sem ferir os direitos autorais. É gratuito, mas gostaria de ter o reconhecimento pelo trabalho desenvolvido! =D
No fim da palestra, recebi algumas pessoas, o qual trocamos idéias sobre o uso de Python. Espero ter envagelizado e ter convencido mais entusiastas por esse mundo de programação fácil, poderosa e simples que Python provê!
Agradeço ao II Encontro Livre, e aguardo a próxima edição!