SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
ALÉM DO JAVA: AS OUTRAS
              LINGUAGENS DA JVM
                                  Maurício Linhares
                             @mauriciojr | http://techbot.me/




sábado, 9 de julho de 2011
QUEM?



    • Desenvolvedor               na OfficeDrop.com

    • Professor              na Faculdade iDez




sábado, 9 de julho de 2011
JAVA, ONTEM
                             Cool guy do início da década passada

sábado, 9 de julho de 2011
JAVA, HOJE
                               wastelands

sábado, 9 de julho de 2011
NOVOS TEMPOS
                              Java não está mais na moda

sábado, 9 de julho de 2011
O QUE ACONTECEU?
    • Busca              por padrões no papel estagnou a comunidade;

    •A    linguagem não sofria atualizações enquanto a concorrência
        seguia em frente;

    • Programação   concorrente trazendo a tona outra vez a
        programação funcional;

    • JavaScript;

    • Rails;



sábado, 9 de julho de 2011
MAS NA DIREÇÃO
                              CONTRÁRIA...

    •A    comunidade começa a se voltar a novas linguagens
        seriamente;

    •A    comunidade olha com carinho pra Java Virtual Machine e as
        coisas que já foram desenvolvidas em cima dela;

    • Em   2003 os primeiros passos sérios são dados com Scala e
        Groovy;


sábado, 9 de julho de 2011
JRUBY RESSURGE
                     Rails na Java Virtual Machine é agora uma realidade

sábado, 9 de julho de 2011
SEGUINDO EM FRENTE


    •A    atenção que o JRuby consegue na comunidade faz os seus
        dois desenvolvedores serem contratados pela Sun (e um
        terceiro pela ThoughtWorks)

    •A    realização de que a comunidade realmente está interessada
        em novas linguagens na JVM reforça projetos antigos, como
        Scala e Groovy e traz novidades, como Clojure;



sábado, 9 de julho de 2011
DA VINCI VM
             Transformando a JVM para que ela facilite a existência de
                            linguagens além do Java
sábado, 9 de julho de 2011
MULTI LANGUAGE VM


    •O      sucesso do JRuby criou a necessidade de que a própria
        máquina virtual simplificasse a vida de quem quer colocar sua
        linguagem de programação na JVM;

    • Novos     bytecodes, rotinas de execução e muita gente
        discutindo soluções novas pra que Java, como plataforma, seja
        onde os programas continuam executando;



sábado, 9 de julho de 2011
JAVA COMO PLATAFORMA

sábado, 9 de julho de 2011
E EU COM ISSO?

sábado, 9 de julho de 2011
MARTELOS! DIVERSOS!
       Para todos os seus pregos, mesmo que eles não sejam pregos!

sábado, 9 de julho de 2011
DIVERSIDADE


    • Cada    linguagem tem seus prontos fortes e fracos, conhecer
        várias linguagens adiciona novas ferramentas na sua caixinha
        de conhecimento;

    • Aprender    linguagens de ideais ou paradigmas diferentes faz
        com que você possa ter um ponto de vista diferente na hora
        de resolver os mesmos problemas;



sábado, 9 de julho de 2011
PROBLEMA
      Preciso enviar um arquivo para um armazenamento na nuvem,
      mas a rede não é confiável e pode falhar a qualquer momento.
       Meu código deve ser capaz de tentar por um número X de
               vezes até desistir e lançar o erro capturado.




sábado, 9 de julho de 2011
EM RUBY
    def retry( tries, &block)
      count = 0
      begin
        count += 1
        block.call
      rescue => e
        if count <= tries
          retry
    ! else
          raise e
        end
      end
    end

    retry(3) do
      send_file( "file" )
    end



sábado, 9 de julho de 2011
COMO FAZER O MESMO EM
                  JAVA?
                             É possível fazer o mesmo?




sábado, 9 de julho de 2011
“APRENDER UMA NOVA
                         LINGUAGEM DE
                      PROGRAMAÇÃO É SÓ
                      APRENDER A SINTAXE”
                             Alguém que você conhece




sábado, 9 de julho de 2011
AHÃ, SENTA LÁ, LUIGI

sábado, 9 de julho de 2011
APRENDA UMA NOVA
                   LINGUAGEM DE
                PROGRAMAÇÃO A CADA
                       ANO
        E que sejam diferentes, aprender C# se você já programa em
                           Java não traz vantagens


sábado, 9 de julho de 2011
SCALA

sábado, 9 de julho de 2011
CLOJURE

sábado, 9 de julho de 2011
RUBY

sábado, 9 de julho de 2011
JAVA

sábado, 9 de julho de 2011
SCALA

    • Une            programação orientada a objetos a funcional;

    • Sintaxe   próxima a do Java e integração completa com a
        linguagem, incluindo compilação de projetos híbridos Scala-
        Java;

    • Modelo    de objetos próximo ao do Java, é simples chamar
        objetos Scala a partir de código Java puro;


sábado, 9 de julho de 2011
CLOJURE

    • Lisp              on Java!

    • Linguagem   puramente funcional, um dialeto de Lisp,
        executando dentro da JVM;

    • Acesso   completo as bibliotecas do Java, incluindo todo o
        suporte a programação concorrente de verdade;

    • Macros, macros           and MACROS!


sábado, 9 de julho de 2011
JRUBY


    • Implementação    completa e funcional de um interpretador da
        linguagem Ruby executando na JVM;

    •É    capaz de executar normalmente aplicações Rails e a maior
        parte do código Ruby disponível atualmente;

    • Acesso                 simplificado a código nativo através de FFI e JNA;



sábado, 9 de julho de 2011
DEMO ON RAILS

sábado, 9 de julho de 2011
DÚVIDAS?
                               Obrigado!




sábado, 9 de julho de 2011

Contenu connexe

En vedette

Sistemas operacionais aula 01
Sistemas operacionais   aula 01Sistemas operacionais   aula 01
Sistemas operacionais aula 01Professor Douglas
 
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplina
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplinaFundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplina
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplinaHelder Lopes
 
Linguagens De ProgramaçãO Clp
Linguagens De ProgramaçãO ClpLinguagens De ProgramaçãO Clp
Linguagens De ProgramaçãO ClpJÚLIO PEIXOTO
 
Tipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisTipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisLuciano Crecente
 

En vedette (7)

Sistemas operacionais aula 01
Sistemas operacionais   aula 01Sistemas operacionais   aula 01
Sistemas operacionais aula 01
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
SO-04 Escalonamento de Processos
SO-04 Escalonamento de ProcessosSO-04 Escalonamento de Processos
SO-04 Escalonamento de Processos
 
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplina
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplinaFundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplina
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplina
 
Linguagens De ProgramaçãO Clp
Linguagens De ProgramaçãO ClpLinguagens De ProgramaçãO Clp
Linguagens De ProgramaçãO Clp
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Tipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisTipos de Sistemas Operacionais
Tipos de Sistemas Operacionais
 

Similaire à Além do java

TDC 2011 - E no sétimo dia ele escreveu testes
TDC 2011 - E no sétimo dia ele escreveu testesTDC 2011 - E no sétimo dia ele escreveu testes
TDC 2011 - E no sétimo dia ele escreveu testesRafael Dohms
 
Introdução à Programação Orientada a Objetos
Introdução à Programação Orientada a ObjetosIntrodução à Programação Orientada a Objetos
Introdução à Programação Orientada a ObjetosNécio de Lima Veras
 
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO ILIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO IOs Fantasmas !
 
Apresentação lazarus flisol
Apresentação lazarus flisolApresentação lazarus flisol
Apresentação lazarus flisolCícero Rocha
 
Além do Java - Maratona4Java 2005
Além do Java - Maratona4Java 2005Além do Java - Maratona4Java 2005
Além do Java - Maratona4Java 2005Phil Calçado
 
Fun driven development com Ruby
Fun driven development com RubyFun driven development com Ruby
Fun driven development com RubySuccesSoft LTDA
 
iOS, APIs e sincronização de dados
iOS, APIs e sincronização de dadosiOS, APIs e sincronização de dados
iOS, APIs e sincronização de dadosMaurício Linhares
 
Explorando O Potencial Das Linguagens De Programação Open Source
Explorando O Potencial Das Linguagens De Programação Open SourceExplorando O Potencial Das Linguagens De Programação Open Source
Explorando O Potencial Das Linguagens De Programação Open SourceRafael Jaques
 
JavaScript agora é sério (FISL 2011)
JavaScript agora é sério (FISL 2011)JavaScript agora é sério (FISL 2011)
JavaScript agora é sério (FISL 2011)Luciano Ramalho
 
Linguagens Dinâmicas na JVM
Linguagens Dinâmicas na JVMLinguagens Dinâmicas na JVM
Linguagens Dinâmicas na JVMRafael Nunes
 
Desafios no deploy de aplicações Java EE 6 no Microsoft Azure
Desafios no deploy de aplicações Java EE 6 no Microsoft AzureDesafios no deploy de aplicações Java EE 6 no Microsoft Azure
Desafios no deploy de aplicações Java EE 6 no Microsoft AzureDr. Spock
 
Curso Básico de Java - Aula 1
Curso Básico de Java - Aula 1Curso Básico de Java - Aula 1
Curso Básico de Java - Aula 1PeslPinguim
 
Conhecendo Java
Conhecendo JavaConhecendo Java
Conhecendo JavaTI Infnet
 

Similaire à Além do java (20)

TDC 2011 - E no sétimo dia ele escreveu testes
TDC 2011 - E no sétimo dia ele escreveu testesTDC 2011 - E no sétimo dia ele escreveu testes
TDC 2011 - E no sétimo dia ele escreveu testes
 
Introdução à Programação Orientada a Objetos
Introdução à Programação Orientada a ObjetosIntrodução à Programação Orientada a Objetos
Introdução à Programação Orientada a Objetos
 
Apresentação sobre JRuby
Apresentação sobre JRubyApresentação sobre JRuby
Apresentação sobre JRuby
 
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO ILIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
 
Apresentação lazarus flisol
Apresentação lazarus flisolApresentação lazarus flisol
Apresentação lazarus flisol
 
Groovy e Grails 2
Groovy e Grails 2Groovy e Grails 2
Groovy e Grails 2
 
Groovy & grails
Groovy & grailsGroovy & grails
Groovy & grails
 
Groovy & Grails
Groovy & GrailsGroovy & Grails
Groovy & Grails
 
Imergindo na JVM
Imergindo na JVMImergindo na JVM
Imergindo na JVM
 
Além do Java - Maratona4Java 2005
Além do Java - Maratona4Java 2005Além do Java - Maratona4Java 2005
Além do Java - Maratona4Java 2005
 
Ruby
RubyRuby
Ruby
 
Java virtual machine quantas linguas fala a jvm2
Java virtual machine   quantas linguas fala a jvm2Java virtual machine   quantas linguas fala a jvm2
Java virtual machine quantas linguas fala a jvm2
 
Fun driven development com Ruby
Fun driven development com RubyFun driven development com Ruby
Fun driven development com Ruby
 
iOS, APIs e sincronização de dados
iOS, APIs e sincronização de dadosiOS, APIs e sincronização de dados
iOS, APIs e sincronização de dados
 
Explorando O Potencial Das Linguagens De Programação Open Source
Explorando O Potencial Das Linguagens De Programação Open SourceExplorando O Potencial Das Linguagens De Programação Open Source
Explorando O Potencial Das Linguagens De Programação Open Source
 
JavaScript agora é sério (FISL 2011)
JavaScript agora é sério (FISL 2011)JavaScript agora é sério (FISL 2011)
JavaScript agora é sério (FISL 2011)
 
Linguagens Dinâmicas na JVM
Linguagens Dinâmicas na JVMLinguagens Dinâmicas na JVM
Linguagens Dinâmicas na JVM
 
Desafios no deploy de aplicações Java EE 6 no Microsoft Azure
Desafios no deploy de aplicações Java EE 6 no Microsoft AzureDesafios no deploy de aplicações Java EE 6 no Microsoft Azure
Desafios no deploy de aplicações Java EE 6 no Microsoft Azure
 
Curso Básico de Java - Aula 1
Curso Básico de Java - Aula 1Curso Básico de Java - Aula 1
Curso Básico de Java - Aula 1
 
Conhecendo Java
Conhecendo JavaConhecendo Java
Conhecendo Java
 

Plus de Maurício Linhares

Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDrop
Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDropUnindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDrop
Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDropMaurício Linhares
 
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDropMixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDropMaurício Linhares
 
Curso java 08 - mais sobre coleções
Curso java   08 - mais sobre coleçõesCurso java   08 - mais sobre coleções
Curso java 08 - mais sobre coleçõesMaurício Linhares
 
Curso java 06 - mais construtores, interfaces e polimorfismo
Curso java   06 - mais construtores, interfaces e polimorfismoCurso java   06 - mais construtores, interfaces e polimorfismo
Curso java 06 - mais construtores, interfaces e polimorfismoMaurício Linhares
 
Curso java 05 - herança, classes e métodos abstratos
Curso java   05 - herança, classes e métodos abstratosCurso java   05 - herança, classes e métodos abstratos
Curso java 05 - herança, classes e métodos abstratosMaurício Linhares
 
Curso java 04 - ap is e bibliotecas
Curso java   04 - ap is e bibliotecasCurso java   04 - ap is e bibliotecas
Curso java 04 - ap is e bibliotecasMaurício Linhares
 
Curso java 01 - molhando os pés com java
Curso java   01 - molhando os pés com javaCurso java   01 - molhando os pés com java
Curso java 01 - molhando os pés com javaMaurício Linhares
 
Curso java 03 - métodos e parâmetros
Curso java   03 - métodos e parâmetrosCurso java   03 - métodos e parâmetros
Curso java 03 - métodos e parâmetrosMaurício Linhares
 
Outsourcing e trabalho remoto para a nuvem
Outsourcing e trabalho remoto para a nuvemOutsourcing e trabalho remoto para a nuvem
Outsourcing e trabalho remoto para a nuvemMaurício Linhares
 
Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010Maurício Linhares
 

Plus de Maurício Linhares (20)

Mercado de TI
Mercado de TIMercado de TI
Mercado de TI
 
Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDrop
Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDropUnindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDrop
Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDrop
 
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDropMixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
 
Aprendendo ruby
Aprendendo rubyAprendendo ruby
Aprendendo ruby
 
Curso java 07 - exceções
Curso java   07 - exceçõesCurso java   07 - exceções
Curso java 07 - exceções
 
Curso java 08 - mais sobre coleções
Curso java   08 - mais sobre coleçõesCurso java   08 - mais sobre coleções
Curso java 08 - mais sobre coleções
 
Curso java 06 - mais construtores, interfaces e polimorfismo
Curso java   06 - mais construtores, interfaces e polimorfismoCurso java   06 - mais construtores, interfaces e polimorfismo
Curso java 06 - mais construtores, interfaces e polimorfismo
 
Curso java 05 - herança, classes e métodos abstratos
Curso java   05 - herança, classes e métodos abstratosCurso java   05 - herança, classes e métodos abstratos
Curso java 05 - herança, classes e métodos abstratos
 
Curso java 04 - ap is e bibliotecas
Curso java   04 - ap is e bibliotecasCurso java   04 - ap is e bibliotecas
Curso java 04 - ap is e bibliotecas
 
Curso java 01 - molhando os pés com java
Curso java   01 - molhando os pés com javaCurso java   01 - molhando os pés com java
Curso java 01 - molhando os pés com java
 
Curso java 02 - variáveis
Curso java   02 - variáveisCurso java   02 - variáveis
Curso java 02 - variáveis
 
Curso java 03 - métodos e parâmetros
Curso java   03 - métodos e parâmetrosCurso java   03 - métodos e parâmetros
Curso java 03 - métodos e parâmetros
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Feature Driven Development
Feature Driven DevelopmentFeature Driven Development
Feature Driven Development
 
Migrando pra Scala
Migrando pra ScalaMigrando pra Scala
Migrando pra Scala
 
Outsourcing e trabalho remoto para a nuvem
Outsourcing e trabalho remoto para a nuvemOutsourcing e trabalho remoto para a nuvem
Outsourcing e trabalho remoto para a nuvem
 
Mercado hoje
Mercado hojeMercado hoje
Mercado hoje
 
Análise de sistemas oo 1
Análise de sistemas oo   1Análise de sistemas oo   1
Análise de sistemas oo 1
 
Revisão html e java script
Revisão html e java scriptRevisão html e java script
Revisão html e java script
 
Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010
 

Além do java

  • 1. ALÉM DO JAVA: AS OUTRAS LINGUAGENS DA JVM Maurício Linhares @mauriciojr | http://techbot.me/ sábado, 9 de julho de 2011
  • 2. QUEM? • Desenvolvedor na OfficeDrop.com • Professor na Faculdade iDez sábado, 9 de julho de 2011
  • 3. JAVA, ONTEM Cool guy do início da década passada sábado, 9 de julho de 2011
  • 4. JAVA, HOJE wastelands sábado, 9 de julho de 2011
  • 5. NOVOS TEMPOS Java não está mais na moda sábado, 9 de julho de 2011
  • 6. O QUE ACONTECEU? • Busca por padrões no papel estagnou a comunidade; •A linguagem não sofria atualizações enquanto a concorrência seguia em frente; • Programação concorrente trazendo a tona outra vez a programação funcional; • JavaScript; • Rails; sábado, 9 de julho de 2011
  • 7. MAS NA DIREÇÃO CONTRÁRIA... •A comunidade começa a se voltar a novas linguagens seriamente; •A comunidade olha com carinho pra Java Virtual Machine e as coisas que já foram desenvolvidas em cima dela; • Em 2003 os primeiros passos sérios são dados com Scala e Groovy; sábado, 9 de julho de 2011
  • 8. JRUBY RESSURGE Rails na Java Virtual Machine é agora uma realidade sábado, 9 de julho de 2011
  • 9. SEGUINDO EM FRENTE •A atenção que o JRuby consegue na comunidade faz os seus dois desenvolvedores serem contratados pela Sun (e um terceiro pela ThoughtWorks) •A realização de que a comunidade realmente está interessada em novas linguagens na JVM reforça projetos antigos, como Scala e Groovy e traz novidades, como Clojure; sábado, 9 de julho de 2011
  • 10. DA VINCI VM Transformando a JVM para que ela facilite a existência de linguagens além do Java sábado, 9 de julho de 2011
  • 11. MULTI LANGUAGE VM •O sucesso do JRuby criou a necessidade de que a própria máquina virtual simplificasse a vida de quem quer colocar sua linguagem de programação na JVM; • Novos bytecodes, rotinas de execução e muita gente discutindo soluções novas pra que Java, como plataforma, seja onde os programas continuam executando; sábado, 9 de julho de 2011
  • 12. JAVA COMO PLATAFORMA sábado, 9 de julho de 2011
  • 13. E EU COM ISSO? sábado, 9 de julho de 2011
  • 14. MARTELOS! DIVERSOS! Para todos os seus pregos, mesmo que eles não sejam pregos! sábado, 9 de julho de 2011
  • 15. DIVERSIDADE • Cada linguagem tem seus prontos fortes e fracos, conhecer várias linguagens adiciona novas ferramentas na sua caixinha de conhecimento; • Aprender linguagens de ideais ou paradigmas diferentes faz com que você possa ter um ponto de vista diferente na hora de resolver os mesmos problemas; sábado, 9 de julho de 2011
  • 16. PROBLEMA Preciso enviar um arquivo para um armazenamento na nuvem, mas a rede não é confiável e pode falhar a qualquer momento. Meu código deve ser capaz de tentar por um número X de vezes até desistir e lançar o erro capturado. sábado, 9 de julho de 2011
  • 17. EM RUBY def retry( tries, &block) count = 0 begin count += 1 block.call rescue => e if count <= tries retry ! else raise e end end end retry(3) do send_file( "file" ) end sábado, 9 de julho de 2011
  • 18. COMO FAZER O MESMO EM JAVA? É possível fazer o mesmo? sábado, 9 de julho de 2011
  • 19. “APRENDER UMA NOVA LINGUAGEM DE PROGRAMAÇÃO É SÓ APRENDER A SINTAXE” Alguém que você conhece sábado, 9 de julho de 2011
  • 20. AHÃ, SENTA LÁ, LUIGI sábado, 9 de julho de 2011
  • 21. APRENDA UMA NOVA LINGUAGEM DE PROGRAMAÇÃO A CADA ANO E que sejam diferentes, aprender C# se você já programa em Java não traz vantagens sábado, 9 de julho de 2011
  • 22. SCALA sábado, 9 de julho de 2011
  • 23. CLOJURE sábado, 9 de julho de 2011
  • 24. RUBY sábado, 9 de julho de 2011
  • 25. JAVA sábado, 9 de julho de 2011
  • 26. SCALA • Une programação orientada a objetos a funcional; • Sintaxe próxima a do Java e integração completa com a linguagem, incluindo compilação de projetos híbridos Scala- Java; • Modelo de objetos próximo ao do Java, é simples chamar objetos Scala a partir de código Java puro; sábado, 9 de julho de 2011
  • 27. CLOJURE • Lisp on Java! • Linguagem puramente funcional, um dialeto de Lisp, executando dentro da JVM; • Acesso completo as bibliotecas do Java, incluindo todo o suporte a programação concorrente de verdade; • Macros, macros and MACROS! sábado, 9 de julho de 2011
  • 28. JRUBY • Implementação completa e funcional de um interpretador da linguagem Ruby executando na JVM; •É capaz de executar normalmente aplicações Rails e a maior parte do código Ruby disponível atualmente; • Acesso simplificado a código nativo através de FFI e JNA; sábado, 9 de julho de 2011
  • 29. DEMO ON RAILS sábado, 9 de julho de 2011
  • 30. DÚVIDAS? Obrigado! sábado, 9 de julho de 2011