11/Nov - O treinamento em GAE será iniciado apenas dia 20 e, o EAD que estava agendado para hoje foi remarcado p/ o dia 16 às 21H.

9/Nov - leia também: EAD Gratuito: Google App Engine

Para poder fazer qualquer coisa nesta vida é preciso motivação! Ela pode vir de diversas formas, mas especificamente neste post, eu vou comentar o que, sinceramente, o que me motiva a ministrar um curso sobre Google App Engine (GAE) em Goiânia, a um preço quase irrisório!

Sendo bem sincero, neste treinamento, assim como em vários outros que já dei, minha principal motivação para ensinar é forçar-me a aprender algo e compartilhar, com interessados, as descobertas que faço. Eu sou um tipo de profissional de TI, talvez de uma categoria um pouco diferente da maiora dos alunos que já tive. Para realmente aprender, eu preciso ensinar!

Desde os tempos de segundo grau (atualmente ensino médio), para entender algo de verdade, eu constumava ensinar as pessoas. Comecei, naquela época, dando aulas particulares de Matemática, Física, Química, etc. Fui para Universidade Católica de Goiás (UCG) fazer Engenharia Civil (depois mudei p/ Ciência da Computação) e, durante minha passagem por lá, iniciei minha primeira empresa de informática, na época desenvolvendo e ensinando programação em C e Pascal (era 1995). Eu me lembro que só aprendi os conceitos da disciplina "Algoritmos e Programação Estruturada" após ter tomado bomba uma vez por ter dado mais valor ao truco do que às aulas. A solução no semestre seguite foi ralar para ensinar esta disciplina para alguns amigos que, assim como eu, se tornaram campeões em truco ;-). O tempo passou, ensinei muita gente mas, ainda hoje, esta motivação permanece a mesma: "Para mim, ensinar é um prazer e é uma das melhores formas de se aprender algo". Neste instante, lembrei-me do post do Alê Gomes entitulado "Ensinem a aprender": é o que estou fazendo agora!

Apesar do GAE já não ser novidade para mim em vários aspectos e de eu até ter uma aplicação em produção atendendo a problemas deste próprio site, outro motivo que me leva a ensiná-lo é que eu desejo aprofundar-me em suas APIs e em seu uso com diferentes linguagens de programação. Por quê? Qual é a melhor forma para fazer isto?

Eu desejo me aprofundar no GAE porque ele, no meu ponto de vista, oferece uma das formas mais simples e rápidas para se colocar uma aplicação em produção, sem me estressar tanto com questões de infraestrutura. Esta é uma das principais razões para eu querer utilizá-lo. Colocar uma aplicação em produção no GAE e prepará-la para ser utilizada por muita gente não é algo tão complicado quanto, por exemplo, escrever uma aplicação Java EE, alugar uma máquina virtual (ou real) em algum Datacenter, instalar um servidor de aplicações Java, escrever scripts para implantação remota e, quando a aplicação entrar em produção, preocupar-me ainda em não deixar o servidor cair se a demanda aumentar, ajustar questões de segurança, utilização de recursos, etc. É claro que eu poderia, com os conhecimentos que detenho hoje acerca do JBoss AS, por exemplo, ter soluções para estes problemas e configurar clusters elásticos, que colocam instâncias em funcionamento quando há aumento de demanda, na nuvem computacional do Amazon EC2. Com isto, dá pra minimizar grande parte do esforço que eu teria para implantar e/ou monitorar aplicações em produção.

O que eu quero, neste momento, é experimentar novos modelos para implantação e execução de aplicações em nuvens computacionais, fugindo um pouco do padrão Java EE. Quero ter o mínimio de esforço necessário para colocar uma aplicação em produção e monitorar sua execução. Além disto, tenho um desejo particular de criar aplicações em linguagens que talvez sejam, para o negócio que tenho em mente, um pouco mais produtivas que a linguagem Java. Pretendo investigar realmente se Python, Groovy, Scala, Ruby e seus frameworks para desenvolvimento web podem ser verdadeiramente mais simples e práticos. Com os conhecimentos que detenho hoje, posso assegurar que, para vários tipos de aplicações web, criá-las com Python/Django e implantá-las no GAE é realmente simples e divertido. Demonstrarei isto num EAD agendado para a próxima quinta-feira. As inscrições para ele serão abertas amanhã! Quem participar estará concorrendo a uma bolsa de 80% sobre o preço de inscrição deste curso (que já é quase de graça ;-))

Ao produzir material para este treinamento, eu estou investigando o funcionamento de exemplos reais e criando formas didáticas para apresentá-los. Além disto, estou escrevendo exemplos mais simples e didáticos para complementar o ensino de características do exemplo real. Faço isto da melhor maneira que posso, imaginando até mesmo que os participantes não dominem a linguagem em que o exemplo foi criado. Sendo assim, para cada exemplo que apresentarei durante a aula, colocarei uma série de referências em posts anteriores ao sábado de sua ocorrência, para que os alunos possam investigar melhor as características da linguagem que foi utilizada na construção do exemplo que será explicado. A programação inicial para o curso, que será apresentado em seis sábados das 14:00 às 20:00 e nas condições que divulguei é explicada abaixo. Entretanto, ela está sujeita a mudanças a qualquer momento. Para acompanhá-las, esteja atento a @LadoServidor.

O projeto que está produção no GAE e que será explicado no primeiro dia de aula é o DropbProx. Ele é utilizado neste site para que, por exemplo, a URL http://dl.dropbox.com/u/5689841/servicos/index.html possa também ser acessada através do endereço http://a.ladoservidor.com/servicos/index.html. Todas as páginas estáticas do Lado Servidor são, após criadas e/ou atualizadas, transferidas para sua conta no Dropbox. Utilizando um proxy, o DropbProx roteia as requisições feitas a a.ladoservidor.com/* para dl.dropbox.com/u/5689841/* (servido pelo Dropbox) permitindo, desta forma, acesso a página. Através deste projeto e do Dropbox, todo o conteúdo estático do Lado Servidor pode ser acessado através de um subdomínio de ladoservidor.com. Além deste exemplo, serão explicados, no mesmo dia, diversos outros (didáticos e/ou em produção) e que foram criados com Python e talvez com o auxílio do Django. Se você é desenvolvedor Java e quer começar a entender um pouquinho sobre Python e Django, leia este tutorial que iniciei no ano passado.

No segundo sábado, o foco será o desenvolvimento de aplicações GAE utilizando a linguagem Java e frameworks ou APIs como JSF, GWT, Wicket, Seam, Weld, Spring (Roo), etc. Nesta área tem vários exemplos e, com toda a certeza, eu estou destacando os mais interessantes para podermos discutir. A alguns dias atrás eu pedi ao Bruno Borges que escrevesse uma aplicação de exemplo para rodar no GAE utilizando Wicket. Daremos uma olhada no que ele criou e também em vários outros exemplos reais e práticos. Eu também quero fazer build de aplicações GAE pelo uso do Maven, através do maven-gae-plugin. Talvez eu precise de mais de uma aula para mostrar tudo o que desejo, veremos!

O terceiro sábado abordará o uso do Groovy como linguagem para produção de aplicações web e do GAE como ambiente para sua execução. Guillaume Laforge escreveu um post bem interessente sobre como criar aplicações Groovy para o GAE e nós faremos isto :-). O Edgar Silva também me convidou há algum tempo para publicar algum serviço no CoreRest. Eu acho que este tempo chegou e farei uma boa exploração sobre o seu projeto. Se houver tempo, também exploraremos outros.

No quarto sábado, a bola (linguagem) da vez será o Scala. Assim como nos outros dias, o foco é na produção de aplicações com esta linguagem para a implantação no GAE. Leia um pouco destas discussões. Saiba também que eu vi estes slides e que também já deixei meu nome na aplicação exemplificada por eles em pairs.appspot.com. O código fonte desta aplicação está diponível e será apresentado. Também estou em busca de outros exemplos mais interessantes.

No quinto sábado eu explicarei um pouco de Ruby e demostrarei aplicações escritas nesta linguagem rodando no GAE através do JRuby. Dê uma olhadinha nos slides publicados pelo John Woodell.

O sexto sábado estará livre para discutirmos projetos pessoais ou de terceiros e também alternativas para a execução de aplicações GAE em outros ambientes, como o AppScale. Um post interessante sobre este projeto foi escrito e publicado no Google App Engine Blog, pelo estudante Chris Bunch que está fazendo seu Ph.D. na University of California, Santa Barbara.

Em resumo, o curso será como eu disse: PRAGMÁTICO. Se possível, leiam este livro antes, durante ou após o curso para ampliarem seus horizontes!


FAQ

Por que este curso ocorrerá em Goiânia e não em Brasília? Isto acontece por dois motivos:

  1. O laboratório que será utilizado em Goiânia está a minha espera desde o ano passado;
  2. Quero ficar em Goiânia em alguns domingos após o curso para comer a comidinha da mamãe :-);

Quando haverá este treinamento em Brasília? Ainda não tenho previsão, mas no início do ano que vem eu deverei ter um calendário publicado!

O preço deste curso será mantido em novas edições? Não! Este preço é promocional, ÚNICA CHANCE!