Python for Maemo

Embed Size (px)

Citation preview

Python for Maemo

APRESENTAO

Osvaldo Santana Neto

Pesquisador do INdT, trabalha com Linux desde 2000 e atualmente coordenador da comunidade PythonBrasil. No INdT faz parte da equipe de SDK onde cuida do port da linguagem Python para a plataforma Maemo.

INdT BRASIL / RECIFE

Instituto Nokia de Tecnologia

Instituio sem fins lucrativos, fundada pela Nokia em 2002.

Criado com investimentos da Lei de Informtica.

3 escritrios, em Manaus, Braslia e Recife.

Pesquisa & Desenvolvimento nas reas de Mecnica & Produtos Eletrnicos, Software, Multimdia, Telecomunicaes e Excelncia em Operaes e Logstica.

INdT - ESTRUTURA

Estrutura:

O INdT conta hoje com uma equipe de cerca de 100 profissionais altamente qualificados, divididos entre 2 reas-chave: tcnica e administrativa. A rea tcnica composta por quatro reas de conhecimento para a execuo de projetos. A rea administrativa inclui todas as funes de suporte para a execuo de projetos como Governana, Recursos Humanos, Administrativo e Financeiro, Escritrio de Projetos e TI.

Parcerias:

Estes so alguns parceiros do INdT para execuo de projetos:

CESAR - Centro de Estudos e Sistemas Avanados de RecifeFUCAPI - Fundao Centro de Anlise, Pesquisa e Inovao TecnolgicaINATEL - Instituto Nacional de TelecomunicaesPMR - Escola Politcnica da Universidade de So Paulo

UFAMUFCGUFMGUFRJ

PLATAFORMA MAEMO

Maemo uma plataforma para o desenvolvimento de aplicaes para Internet Tablets da Nokia e outros dispositivos portteis compatveis.

A plataforma formada por componentes populares de Softwares Livre que so largamente utilizados e esto presentes nas principais distribuies Linux da atualidade.

ESPECIFICAES TCNICAS

Kernel Linux (Core)

D-BUS (IPC)

GTK+ (GUI)

Xserver

Gconf

GnomeVFS

Hildon (GUI)

LibOSSO

NOKIA 770: 1 PRODUTO

Primeira verso:

OMAP 1710 DSP
ARM9 220MHzResoluo: 800x480
65 mil cores
4.13 widescreen
Touch screen
WLAN 802.11b/g Bluetooth 1.2
USB
Multimdia

NOKIA N800: 2 PRODUTO

Uma nova verso:

OMAP 2420 DSP
ARM11 330MHz
Resoluo: 800x480
65 mil cores
4.13 widescreen
Touch screen
WLAN 802.11b/g Bluetooth 1.2
USB
MultimdiaCmera VGARdio FM

DESENVOLVENDO PARA MAEMO

Desenvolvimento muito semelhante ao desenvolvimento Linux para Desktop:

As ferramentas so as mesmas utilizadas para desenvolvimento Linux

As bibliotecas so as mesmas utilizadas por dezenas de aplicaes Linux para Desktop com pequenas optimizaes

DESENVOLVENDO PARA MAEMO

As ferramentas necessrias para o desenvolvimento:

Ambiente para cross-compiling (scratchbox)

GNU Toolkit (gcc, gdb, make, autotools, ...)

Python

projeto criado e mantido pelo INdT de Recife

DESENVOLVENDO PARA MAEMO

Aplicao bem simples, componentes bsicos sendo utilizados. C e GTK+

Tela de abertura de um jogo escrito em Python com PyGame

for

PORQUE PYTHON?

Licenciamento:

Python possui uma licena de cdigo aberto compatvel com GPL

Todos os componentes esto sob a mesma licena, inclusive a mquina virtual / interpretador Python

Desenvolvimento aberto

Python possui uma comunidade participativa e aberta a sugestes

Python possui um modelo de desenvolvimento pouco burocrtico

PORQUE PYTHON?

Qualidade da Linguagem

Facilidade de uso, sintaxe limpa, estrutura de dados poderosas como lista, tupla e dicionrio

Paradigmas suportados: estrutural, bom para scripts rpidos e orientado a objetosfacilita o desenvolvimento de aplicativos de maior porte

Muitos mdulos reunidos

Parsers XML, HTML, servidores SMTP, HTTP, manipulao de textos, imagens e outros

DESAFIOS PARA O PORT

Ocupao de espao em disco:

Reduo da instalao padro

Remoo de mdulos desnecessrios

Otimizao dos mdulos com remoo das docstrings

Arquivamento dos mdulos principais em um arquivo ZIP

DESAFIOS PARA O PORT

Velocidade do Interpretador

O aplicativos em Python aparentam ter o comportamento esperado para uma linguagem interpretada

Calcanhar de aquiles: Tempo de inicializao

Experincias de melhoria do tempo de carga do mdulo GTK+

Python Launcher (experincia para a prxima verso)

Melhorias beneficiariam tambm os projetos OLPC e OpenMoko

CARACTERSTICAS DO PYMAEMO

PyGame

Bindings Python para biblioteca SDL. Permite o desenvolvimento de jogos

PyGTK/PyHildon

GTK componente padro no Linux

Hildon uma extenso do GTK para a plataforma Maemo

CARACTERSTICAS DO PYMAEMO

Python OSSO

Acesso servios do dispositivo

Outros bindings:

HildonDesktop - plugins e applets para a plataforma. Desenvolvido pela Nokia

Envolvimento do Lucas Rocha

LibIconic, GnomeVFS, D-Bus, BlueZ, Gstreamer, ...

IDIAS PARA O FUTURO

Otimizador de bytecode e compiladores nativos (Psyco, CPython, PyPy/LLVM, ...)

Personalizaes especficas para plataforma

Criao de uma API simplificada para a plataforma

Permitir coisas como:

from easy import camera, audio

image = camera.take_picture()image.save(foto.jpg)

audio.play(sonzera.mp3):

COMO SE ENVOLVER?

Em C:

http://maemo.org/

Em Python:

http://pymaemo.garage.maemo.org/

Em outras linguagens / plataformas:

Java

Muitas tentativas e poucos resultados

Mono (.Net)

Totalmente funcional

LINKS IMPORTANTES

http://www.maemo.org

Site oficial da plataforma.

http://www.maemo.org/maemowiki

Wiki oficial

http://pymaemo.garage.maemo.org

Python para Maemo

EXEMPLO DE APLICAO

Colocar o SolarWolf pra funcionar...

PERGUNTAS?

OBRIGADO!

[email protected]

Click to edit the text format

Click to edit the outline text format

Second Outline Level

Third Outline Level

Fourth Outline Level

Fifth Outline Level

Sixth Outline Level

Seventh Outline Level

Eighth Outline Level

Ninth Outline Level

Slide