SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
Python no Motorola Z6



   Henrique G. G. Pereira
     ikkibr@gmail.com
Sobre a apresentação
●   Nível: Intermediário
●   Escopo:
    ●   Python em celulares
    ●   Celulares Motorola rodando Linux
    ●   Port do Python para celulares Motorola Z6
●   Pré-Requisitos:
    ●   Nenhum
         ●   Processos de Compilação
O que é Python?
●   Altíssimo Nível
●   Interpretada
●   Multiplataforma
    ●   Windows, Linux, Mac, BSD, Symbian
●   Multidispositivo
●   Python Software Foundation License
    ●   Compatível com a GPL
Por que Python?
●   Desenvolvedores ativos
●   Poderosa
    ●   Biblioteca padrão muito boa
●   Simples
    ●   Comandos fáceis de memorizar
●   Boa aceitação
Python em Celulares
●   Smartphones com Windows
●   Iphone
●   Palm OS
    ●   Versão 1.5
●   Nokia
    ●   Python for Series 60
Python for Series 60
●   Symbian OS
●   Baseado no Python 2.2.2
●   Mantido pela Nokia
    ●   Desenvolvido pela Nokia
●   Open Source
●   http://opensource.nokia.com/projects/pythonfors60/
Python for Series 60
●   Comunidade Ativa
●   Eventos Internacionais
    ●   Forum Nokia
    ●   Nokia CodeCamp
●   Integração total com o celular
●   Padrão de desenvolvimento
Motorola
●   Fundada em 1928
    ●   Rádios para carros
●   Hoje em dia
    ●   Equipamentos de Telecomunicação
         ●   Walk-talkies, Radios
         ●   Celulares
              ●   Celulares que rodam Linux!!!
Motorola + Linux
●   LiMo Foundation
    ●   Criar um sistema aberto para celulares
    ●   Baseado em Linux
    ●   Motorola, NEC, Samsung, LG, Ericson
●   OpenSource
    ●   http://opensource.motorola.com
MOTOMAGX™
●   Plataforma Linux da Motorola
●   1ª Geração
    ●   A728, A760, A768, A780, E680, E680i, E680g
●   2ª Geração
    ●   A910, A1200, Rokr E2, Rokr E6, A810
●   3ª Geração
    ●   Rokr E8, Rokr Z6, Razr2 V8, i876, U9, A1600, A1800
MOTOMAGX™
●   3 ambientes de programação
    ●   Java ME (1ª geração)
    ●   WebUI (2ª geração)
    ●   Linux (3ª geração)
         ●   QT!
MOTOMAGX™
MOTOROKR Z6
●   Processador ARM
●   GSM
●   MiniUSB / Bluetooth
●   64MB memória on-board
●   Java
●   Linux 2.6.10
    ●   QtLite
Portando o Python!
●   Motivações
●   Por onde começar?
●   Problemas
●   Funciona, e agora?
●   Trabalhos Futuros
Motivações
●   Meu celular rodar Linux
●   Python roda em qualquer lugar
●   Python é OpenSource
●   Vou fazer meu celular rodar Python!
Por onde começar?
●   Baixar os fontes
    ●   Python 2.5
●   Compilar os fontes
    ●   Z6 não tem compilador
         ●   Cross-compilar no pc e mover pro Z6
              ●   MotoDev Studio
MOTODEV Studio for Linux
●   Desenvolver aplicações nativas
    ●   C/C++
●   IDE baseada no Eclipse
●   Máquina Virtual
●   Toolchain específico
Cross-Compilando
●   Complicado
    ●   Python usa o próprio binário pra compilar e
        instalar alguns módulos
         ●   binário pra arm não funciona em x86
    ●   Python tenta importar módulos compilados
         ●   muitos erros
         ●   Módulos desaparecidos
●   Necessidade de alterar a maneira como
    a compilação é executada
Compilou, e agora?
●   Testar na máquina virtual
    ●   Verificar o que deu errado
         ●   Corrigir e recompilar
              ●   Tudo funciona Ok!



●   Enviar pro celular
    ●   Cartão MicroSD
Problemas
●   Como rodar o Python?
    ●   Instalando e rodando
         ●   Como instalar o Python?
    ●   Direto no shell
         ●   Mas cadê ele?
O primeiro problema
●   Como instalar?
    ●   Assinatura Digital
         ●   $$$
    ●   Certificação
         ●   $$$


    ●   Open EZX
         ●   G1 e G2
O problema da shell
●   Modding
    ●   MP LinuxMod
         ●   Bash, Telnet, FTP
              ●   Outras coisinhas legais



    ●   MP Power of Linux
         ●   Shell, Telnet
Soluções Atuais
●   Rodando via Telnet
    ●   Precisa de outro computador
    ●   Mostrar pra outras pessoas
Soluções Atuais
●   Rodando pelo Bash
    ●   Roda no celular
    ●   Complicado
         ●   Teclas pequenas demais
Problemas (ainda) Sem Solução
●   Threads
●   Interface Gráfica
     ●   API meia-boca
Trabalhos Futuros
●   Distribuição
    ●   Versão Pública
●   Acesso
●   Interface Gráfica
    ●   Bindings pro Qt
●   Camera
Dúvidas?
             Sugestões?
Henr“Ikke” G. G. Pereira
ikkibr@gmail.com

Mais conteúdo relacionado

Destaque

Computação visual com Python
Computação visual com PythonComputação visual com Python
Computação visual com PythonHenrique Bastos
 
Slide PyQt versus Pyside
Slide PyQt versus PysideSlide PyQt versus Pyside
Slide PyQt versus PysideWill Filho
 
Desenvolvendo aplicações Mobile em Python
Desenvolvendo aplicações Mobile em PythonDesenvolvendo aplicações Mobile em Python
Desenvolvendo aplicações Mobile em PythonRelsi Maron
 
Introdução a programação em python d3
Introdução a programação em python d3Introdução a programação em python d3
Introdução a programação em python d3Moises de Paula
 
Arduino e Python: Do It Yourself
Arduino e Python: Do It YourselfArduino e Python: Do It Yourself
Arduino e Python: Do It YourselfBruno Nascimento
 

Destaque (7)

Python 3 - tutorial
Python 3 - tutorialPython 3 - tutorial
Python 3 - tutorial
 
Python Interface Gráfica Tkinter
Python Interface Gráfica TkinterPython Interface Gráfica Tkinter
Python Interface Gráfica Tkinter
 
Computação visual com Python
Computação visual com PythonComputação visual com Python
Computação visual com Python
 
Slide PyQt versus Pyside
Slide PyQt versus PysideSlide PyQt versus Pyside
Slide PyQt versus Pyside
 
Desenvolvendo aplicações Mobile em Python
Desenvolvendo aplicações Mobile em PythonDesenvolvendo aplicações Mobile em Python
Desenvolvendo aplicações Mobile em Python
 
Introdução a programação em python d3
Introdução a programação em python d3Introdução a programação em python d3
Introdução a programação em python d3
 
Arduino e Python: Do It Yourself
Arduino e Python: Do It YourselfArduino e Python: Do It Yourself
Arduino e Python: Do It Yourself
 

Semelhante a Python Z6

Apresentação Minicurso PyS60
Apresentação Minicurso PyS60Apresentação Minicurso PyS60
Apresentação Minicurso PyS60Antonio Santana
 
Desenvolvimento de Jogos em Python
Desenvolvimento de Jogos em PythonDesenvolvimento de Jogos em Python
Desenvolvimento de Jogos em PythonAndrews Medina
 
ArduinoDay 2015 - OpenDevice
ArduinoDay 2015 -  OpenDeviceArduinoDay 2015 -  OpenDevice
ArduinoDay 2015 - OpenDeviceRicardo Rufino
 
OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)Ricardo Rufino
 
Python Com Baterias Incluídas
Python Com Baterias IncluídasPython Com Baterias Incluídas
Python Com Baterias IncluídasJonh Edson
 
ASP.NET vNext no MAC OS
ASP.NET vNext no MAC OSASP.NET vNext no MAC OS
ASP.NET vNext no MAC OSJorge Maia
 
Robótica e PHP com Arduino - PHPn' Rio 2011
Robótica e PHP com Arduino - PHPn' Rio 2011Robótica e PHP com Arduino - PHPn' Rio 2011
Robótica e PHP com Arduino - PHPn' Rio 2011Marco Antonio Maciel
 
Netduino e .NET Micro Framework
Netduino e .NET Micro FrameworkNetduino e .NET Micro Framework
Netduino e .NET Micro FrameworkIgor Kondrasovas
 
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013javamanrj
 
Desenvolvendo Produtos para Internet das Coisas
Desenvolvendo Produtos para Internet das CoisasDesenvolvendo Produtos para Internet das Coisas
Desenvolvendo Produtos para Internet das CoisasMarco Antonio Maciel
 
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé LeiteComo ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé LeiteTchelinux
 
Introdução ao desenvolvimento web - 2 - iDez 2010
Introdução ao desenvolvimento web - 2 - iDez 2010Introdução ao desenvolvimento web - 2 - iDez 2010
Introdução ao desenvolvimento web - 2 - iDez 2010Maurício Linhares
 
Linguagens de Programação para Ficar de Olho em 2019 - DevRocks
Linguagens de Programação para Ficar de Olho em 2019 - DevRocksLinguagens de Programação para Ficar de Olho em 2019 - DevRocks
Linguagens de Programação para Ficar de Olho em 2019 - DevRocksRodrigo Wanderley de Melo Cardoso
 

Semelhante a Python Z6 (20)

Apresentação Minicurso PyS60
Apresentação Minicurso PyS60Apresentação Minicurso PyS60
Apresentação Minicurso PyS60
 
Py S60
Py S60Py S60
Py S60
 
Desenvolvimento de Jogos em Python
Desenvolvimento de Jogos em PythonDesenvolvimento de Jogos em Python
Desenvolvimento de Jogos em Python
 
ArduinoDay 2015 - OpenDevice
ArduinoDay 2015 -  OpenDeviceArduinoDay 2015 -  OpenDevice
ArduinoDay 2015 - OpenDevice
 
Mono Codebits
Mono CodebitsMono Codebits
Mono Codebits
 
OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)
 
Programador Repentista
Programador RepentistaProgramador Repentista
Programador Repentista
 
Python Com Baterias Incluídas
Python Com Baterias IncluídasPython Com Baterias Incluídas
Python Com Baterias Incluídas
 
ASP.NET vNext no MAC OS
ASP.NET vNext no MAC OSASP.NET vNext no MAC OS
ASP.NET vNext no MAC OS
 
Robótica e PHP com Arduino - PHPn' Rio 2011
Robótica e PHP com Arduino - PHPn' Rio 2011Robótica e PHP com Arduino - PHPn' Rio 2011
Robótica e PHP com Arduino - PHPn' Rio 2011
 
Netduino e .NET Micro Framework
Netduino e .NET Micro FrameworkNetduino e .NET Micro Framework
Netduino e .NET Micro Framework
 
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
 
Desenvolvendo Produtos para Internet das Coisas
Desenvolvendo Produtos para Internet das CoisasDesenvolvendo Produtos para Internet das Coisas
Desenvolvendo Produtos para Internet das Coisas
 
Mono
MonoMono
Mono
 
TDC2014 - Arduino Legacy
TDC2014 - Arduino LegacyTDC2014 - Arduino Legacy
TDC2014 - Arduino Legacy
 
Gentoo
GentooGentoo
Gentoo
 
Firefox OS
Firefox OSFirefox OS
Firefox OS
 
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé LeiteComo ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
 
Introdução ao desenvolvimento web - 2 - iDez 2010
Introdução ao desenvolvimento web - 2 - iDez 2010Introdução ao desenvolvimento web - 2 - iDez 2010
Introdução ao desenvolvimento web - 2 - iDez 2010
 
Linguagens de Programação para Ficar de Olho em 2019 - DevRocks
Linguagens de Programação para Ficar de Olho em 2019 - DevRocksLinguagens de Programação para Ficar de Olho em 2019 - DevRocks
Linguagens de Programação para Ficar de Olho em 2019 - DevRocks
 

Mais de Henrique Gabriel Gularte Pereira

Python com Django: ganhando espaço em uma Universidade Federal
Python com Django:  ganhando espaço em uma Universidade FederalPython com Django:  ganhando espaço em uma Universidade Federal
Python com Django: ganhando espaço em uma Universidade FederalHenrique Gabriel Gularte Pereira
 
Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...
Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...
Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...Henrique Gabriel Gularte Pereira
 
Como não programar em python ou Python Tricks que você ainda não conhecia
Como não programar em python ou Python Tricks que você ainda não conheciaComo não programar em python ou Python Tricks que você ainda não conhecia
Como não programar em python ou Python Tricks que você ainda não conheciaHenrique Gabriel Gularte Pereira
 

Mais de Henrique Gabriel Gularte Pereira (20)

EBAC Django
EBAC DjangoEBAC Django
EBAC Django
 
BogoSort 2015
BogoSort 2015BogoSort 2015
BogoSort 2015
 
Mythbusters - Front in SM
Mythbusters - Front in SMMythbusters - Front in SM
Mythbusters - Front in SM
 
O Estado do Python
O Estado do PythonO Estado do Python
O Estado do Python
 
Não é uma palestra sobre Python
Não é uma palestra sobre PythonNão é uma palestra sobre Python
Não é uma palestra sobre Python
 
Site da UFSM: Django a 700 requisições por segundo
Site da UFSM: Django a 700 requisições por segundoSite da UFSM: Django a 700 requisições por segundo
Site da UFSM: Django a 700 requisições por segundo
 
Python com Django: ganhando espaço em uma Universidade Federal
Python com Django:  ganhando espaço em uma Universidade FederalPython com Django:  ganhando espaço em uma Universidade Federal
Python com Django: ganhando espaço em uma Universidade Federal
 
Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...
Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...
Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...
 
Introdução ao Python com Django
Introdução ao Python com DjangoIntrodução ao Python com Django
Introdução ao Python com Django
 
DevOps com Python
DevOps com PythonDevOps com Python
DevOps com Python
 
Como programar como o coelho assassino de caerbannog
Como programar como o coelho assassino de caerbannogComo programar como o coelho assassino de caerbannog
Como programar como o coelho assassino de caerbannog
 
Como não programar em python ou Python Tricks que você ainda não conhecia
Como não programar em python ou Python Tricks que você ainda não conheciaComo não programar em python ou Python Tricks que você ainda não conhecia
Como não programar em python ou Python Tricks que você ainda não conhecia
 
Bogosort [CfC]
Bogosort [CfC]Bogosort [CfC]
Bogosort [CfC]
 
Welcome to the Django
Welcome to the DjangoWelcome to the Django
Welcome to the Django
 
BogoSort 2.0
BogoSort 2.0BogoSort 2.0
BogoSort 2.0
 
Antigo_Scrum
Antigo_ScrumAntigo_Scrum
Antigo_Scrum
 
Análise do BogoSort
Análise do BogoSortAnálise do BogoSort
Análise do BogoSort
 
Usando o WICD com localizacao fisica de dispositivos
Usando o WICD com localizacao fisica de dispositivosUsando o WICD com localizacao fisica de dispositivos
Usando o WICD com localizacao fisica de dispositivos
 
O Software Livre no Mundo do MicroBlogging
O Software Livre no Mundo do MicroBloggingO Software Livre no Mundo do MicroBlogging
O Software Livre no Mundo do MicroBlogging
 
Estabelecimento e Encerramento de Conexão
Estabelecimento e Encerramento de ConexãoEstabelecimento e Encerramento de Conexão
Estabelecimento e Encerramento de Conexão
 

Python Z6

  • 1. Python no Motorola Z6 Henrique G. G. Pereira ikkibr@gmail.com
  • 2. Sobre a apresentação ● Nível: Intermediário ● Escopo: ● Python em celulares ● Celulares Motorola rodando Linux ● Port do Python para celulares Motorola Z6 ● Pré-Requisitos: ● Nenhum ● Processos de Compilação
  • 3. O que é Python? ● Altíssimo Nível ● Interpretada ● Multiplataforma ● Windows, Linux, Mac, BSD, Symbian ● Multidispositivo ● Python Software Foundation License ● Compatível com a GPL
  • 4. Por que Python? ● Desenvolvedores ativos ● Poderosa ● Biblioteca padrão muito boa ● Simples ● Comandos fáceis de memorizar ● Boa aceitação
  • 5. Python em Celulares ● Smartphones com Windows ● Iphone ● Palm OS ● Versão 1.5 ● Nokia ● Python for Series 60
  • 6. Python for Series 60 ● Symbian OS ● Baseado no Python 2.2.2 ● Mantido pela Nokia ● Desenvolvido pela Nokia ● Open Source ● http://opensource.nokia.com/projects/pythonfors60/
  • 7. Python for Series 60 ● Comunidade Ativa ● Eventos Internacionais ● Forum Nokia ● Nokia CodeCamp ● Integração total com o celular ● Padrão de desenvolvimento
  • 8. Motorola ● Fundada em 1928 ● Rádios para carros ● Hoje em dia ● Equipamentos de Telecomunicação ● Walk-talkies, Radios ● Celulares ● Celulares que rodam Linux!!!
  • 9. Motorola + Linux ● LiMo Foundation ● Criar um sistema aberto para celulares ● Baseado em Linux ● Motorola, NEC, Samsung, LG, Ericson ● OpenSource ● http://opensource.motorola.com
  • 10. MOTOMAGX™ ● Plataforma Linux da Motorola ● 1ª Geração ● A728, A760, A768, A780, E680, E680i, E680g ● 2ª Geração ● A910, A1200, Rokr E2, Rokr E6, A810 ● 3ª Geração ● Rokr E8, Rokr Z6, Razr2 V8, i876, U9, A1600, A1800
  • 11. MOTOMAGX™ ● 3 ambientes de programação ● Java ME (1ª geração) ● WebUI (2ª geração) ● Linux (3ª geração) ● QT!
  • 13. MOTOROKR Z6 ● Processador ARM ● GSM ● MiniUSB / Bluetooth ● 64MB memória on-board ● Java ● Linux 2.6.10 ● QtLite
  • 14. Portando o Python! ● Motivações ● Por onde começar? ● Problemas ● Funciona, e agora? ● Trabalhos Futuros
  • 15. Motivações ● Meu celular rodar Linux ● Python roda em qualquer lugar ● Python é OpenSource ● Vou fazer meu celular rodar Python!
  • 16. Por onde começar? ● Baixar os fontes ● Python 2.5 ● Compilar os fontes ● Z6 não tem compilador ● Cross-compilar no pc e mover pro Z6 ● MotoDev Studio
  • 17. MOTODEV Studio for Linux ● Desenvolver aplicações nativas ● C/C++ ● IDE baseada no Eclipse ● Máquina Virtual ● Toolchain específico
  • 18. Cross-Compilando ● Complicado ● Python usa o próprio binário pra compilar e instalar alguns módulos ● binário pra arm não funciona em x86 ● Python tenta importar módulos compilados ● muitos erros ● Módulos desaparecidos ● Necessidade de alterar a maneira como a compilação é executada
  • 19. Compilou, e agora? ● Testar na máquina virtual ● Verificar o que deu errado ● Corrigir e recompilar ● Tudo funciona Ok! ● Enviar pro celular ● Cartão MicroSD
  • 20. Problemas ● Como rodar o Python? ● Instalando e rodando ● Como instalar o Python? ● Direto no shell ● Mas cadê ele?
  • 21. O primeiro problema ● Como instalar? ● Assinatura Digital ● $$$ ● Certificação ● $$$ ● Open EZX ● G1 e G2
  • 22. O problema da shell ● Modding ● MP LinuxMod ● Bash, Telnet, FTP ● Outras coisinhas legais ● MP Power of Linux ● Shell, Telnet
  • 23. Soluções Atuais ● Rodando via Telnet ● Precisa de outro computador ● Mostrar pra outras pessoas
  • 24. Soluções Atuais ● Rodando pelo Bash ● Roda no celular ● Complicado ● Teclas pequenas demais
  • 25. Problemas (ainda) Sem Solução ● Threads ● Interface Gráfica ● API meia-boca
  • 26. Trabalhos Futuros ● Distribuição ● Versão Pública ● Acesso ● Interface Gráfica ● Bindings pro Qt ● Camera
  • 27. Dúvidas? Sugestões? Henr“Ikke” G. G. Pereira ikkibr@gmail.com