Minhas impressões – Google Developer Day 2010 (GDD2010) – 29/10/10

Caros amigos e leitores,

Depois de um bom tempo sem escrever algo no blog (desde já peço desculpas pela “ausência”, sei que preciso escrever mais e gerar mais conteúdo), e sem relatar eventos, vou escrever nesse post uma cobertura acerca do evento Google Developer Day 2010 (ou GDD2010), ocorrido na sexta (29/10/10). Essa foi a primeira edição da qual estive presente. Pretendo no ano que vem “repetir a dose”…rs. Confiram mais abaixo as novidades!

Panorama

Estive nesse evento juntamente com o André Pantalião, ex-companheiro de Voice Technology e hoje empreendedor no Vizir. Estava bastante motivado para participar, ver as novidades da Google, fazer networking, conhecer o pessoal (que não conhecia pessoalmente) do SP-GTUG (incluindo outros GTUG’s) e “figuras” que só conhecia por listas de discussão, Twitter ou Facebook.  Para mim foi a primeira participação no evento, o André já tinha participado no ano passado.

O evento ocorreu no mesmo local do ano passado, no Hotel Sheraton São Paulo WTC. Pessoalmente, eu não gostei muito da idéia de me locomover pra Berrini em um evento as 9h00 durante a semana. O transporte público é horrível nesse horário (eu teria que pegar ônibus, metrô e trem, tudo no horário entre 7h00 e 8h30, seria TENSO!). Ainda bem que o André resolveu ir de carro, e aproveitei a carona do mesmo 😉 Chegamos até com um pouco de antecedência no local (cerca de 8h35 da manhã). A partir daí foi só fazer o credenciamento, pegar alguns brindes e aguardar até as 9h00 para o início.

Abaixo vou colocar um resumo, informações e alguns apontamentos pessoais das palestras que conferi “in loco”.

Abertura do evento (Keynote) – Mario Queiroz e Eric Tholomé


Mesmo chegando com antecedência não foi fácil entrar na sala principal, que depois se subdividiu em 3 (sala[0], sala[1] e sala[2]), para ver o Keynote de abertura. Estava completamente lotada e o pessoal da organização montou salas auxiliares para o pessoal que não conseguiu lugar ver os slides e conferir o áudio. Pontualmente as 9h00 o evento se iniciou. Em português, Mario Queiroz (VP de Gerência de Produtos) deu início ao GDD2010.

Iniciou os trabalhos agradecendo o seleto público de desenvolvedores e usuários da plataforma do Google, parabenizando os 1000 selecionados (apesar de achar que tinha mais gente) para o evento, que teve cerca de 6000 inscritos. Citou estatísticas para o público, a fim de embasar os fatos que viriam posteriormente e ressaltar a importância do mercado brasileiro, tais como:

O foco do Keynote, e as novidades a serem passadas nesta parte do evento eram: Chrome e HTML5, GAE e Android.

Sobre Chrome e HTML5:

  • O uso da internet se tornou absurdamente grande, sendo o principal meio comunicativo, a frente da TV, Rádio e outras mídias;
  • HTML5 vem chegando com muita força e aceitação de desenvolvedores em apenas 2 anos;
  • Nos smartphones será visível o grande aumento de uso de HTML5 em aplicações em curto prazo.
  • Desafios da web: descobrir aplicações e fazer o usuário redescobrí-las sempre, a partir disso monetize;
  • Hoje no mundo o chrome tem 70 milhões de usuários, sendo que o Brasil é o segundo país que mais usa;

Para mostrar algumas novidades sobre o HTML5 foi chamado ao palco para apresentar uma demo Eric Bidelman, mostrando HTML5 através do hardware, animações controladas por acelerometro, movimento do mouse e etc. O pessoal ficou bastante animado com o que foi apresentado.

Sobre Cloud Computing (GAE):


Para falar sobre Google App Engine foi convidado a apresentar as novidades Eric Tholomé, abrangendo as novidades do Cloud Computing e como ele está sendo encarado pelo Google. Abaixo os principais pontos:

  • Avanço natural das tecnologias até chegar ao Cloud: Mainframe -> Internet -> PC -> Web -> Cloud;
  • Barateamento de disco, memória, processamento, etc.
  • Lema do GAE: Easy to Build, Manage and Scale;
  • O crescimento de uso do Google App Engine é grande: são 90 mil desenvolvedores, 130.000 aplicações e 5.5 bilhões de pageviews;
  • Credibilidade: hoje o símbolo do dirigível do GAE é sinônimo de garantia de escalabilidade. Não é preciso apresentar documentação ou gráficos avançados de rede pra provar;
  • Custo benefício de uso e desenvolvimento é muito mais em conta, geralmente 60% menos que as soluções comuns.

Foi convidado a subir ao palco, para apresentar um “case de sucesso”, Marcelo Marzola (CEO da Predicta). Foi ilustrado ao público o BTBuckets, tecnologia de marketing online e um dos maiores cases de sucesso de uso do GAE.

Eric Tholomé voltou ao palco e disponibilizou para o público o RoadMap do GAE:

E as novidades  do App Engine for Business, anunciado no Google I/O (mais informações nesse link):

  • Server Level Agreement;
  • Professional support;
  • Hosted SQL;
  • Secure by Default;
  • Custom Domain SSL;
  • Enterprise administration Panel;
  • Integração GWT+SpringRoo disponível;

A respeito do último tópico acima, Chris Ramsdale fez uma demo mostrando um exemplo de scaffold usando GWT+SpringRoo, usando a IDE Spring Source Tool Suite no GAE. No evento ele teria uma palestra abrangendo mais o assunto.

P.S. : No Twitter, alguns “Railers” “torceram o nariz” para o scaffold (ou gerador de código automático) e “re-deploy” automático da aplicação quando há alguma mudança de código, já subindo o projeto para o GAE. Eu achei bastante interessante, e verei se arranjo algum tempo para olhar mais detalhes do SpringRoo 😉

Sobre Android:


Estava por vir uma das partes que eu esperava mais no evento, as novidades sobre Android. Voltando ao palco, Mario Queiroz expôs os números mais recentes e as boas novas. Abaixo as informações:

  • Número de ativações por dia: 200.000;
  • Aplicações na Android Market: 100.000;
  • Números oficiais: 90 devices, 21 fabricantes, 50 operadoras, 49 países. Uma ascensão marcante, sendo que em outubro de 2008, no início de tudo, era apenas 1 fabricante, 1 operadora e um único device;
  • Melhorias no Android Market Licensing Server, o sistema anti-pirataria para aplicações na Android Market;
  • Cloud to device messaging;
  • Para as empresas: melhor integração com o microsoft exchange, opção de “remote wipe” (apagar todos os dados do aparelho de forma remota), etc. Acesse esse link para mais informações;
  • Speech API para desenvolvimento de reconhecimento de voz na versão 2.2 do Android.

Marcello Quintella (Product Manager) foi chamado ao palco para apresentar uma demo, usando o Milestone 2, do Google Navigation (liberado um dia antes, aqui no Brasil) e Pesquisa por Voz em aplicações (somente para a versão 2.2). Essa demo sim, agradou praticamente todos os presentes. Eu mesmo testei “na real”, depois do evento no caminho de volta pra casa, no carro do André. É fantástico! 🙂

Depois de todos esses dados anteriores, deu-se por encerrado o keynote de abertura do evento, que no final trouxe algumas informações das quais eu não tinha conhecimento, apesar de ler bastante sobre as tecnologias do Google :-p

Novidades na Google App Engine e Google App Engine For BusinessPatrick Chanezon Coffee break, networking, GTUG’s e conversas…rs

Após o Keynote houve uma parada para coffee break em um lounge com algumas placas subdividindo os interessados por assuntos como Cloud, Android, GAE e outros. O pessoal foi se enturmando e conhecendo o pessoal com idéias similares. Já de cara achei alguns companheiros do SP-GTUG e conhecidos da comunidade Java, Ruby, Android e outros GTUG’s  do Brasil (Belo Horizonte e Salvador) no coffee break. O nível da conversa estava tão bom e produtivo que acabei não vendo a primeira palestra que estava na minha lista 😦 Mas por outro lado, fiz networking com pessoas de outras listas de discussão, peguei alguns cartões e discuti alguns projetos da comunidade. Valeu a pena! 🙂

E o Patrick Chanezon liberou os slides dessa palestra, confira abaixo:

Google Web Toolkit: O que é, Como Funciona e Tópicos Mais ProfundosChris Ramsdale Overbooking, sala auxiliar cheia = auxílio pro SP-GTUG 😉


Nesse horário tinha em mente que iria assistir a palestra sobre GWT, na sala[1] (central). E quem disse que eu consegui entrar? Overbooking! O mesmo fator que ocorreu no dia anterior, no Android Developer Lab. Em outras palestras ao decorrer do dia aconteceu o mesmo fato. #FAIL! Perante essa situação pensei: vou assistir na sala auxiliar, assim aproveito alguma tomada para recarregar os gadgets, ouvir o áudio e ver os slides. #FAIL again! estava lotada e sem tomadas disponíveis. Fiquei cerca de 5 minutos em pé, não gostei da situação e saí.

Me dirigi a mesa reservada para o SP-GTUG. Lá estava o Paulo Fernandes dando um suporte para o pessoal com dúvidas sobre o GTUG e “caçando” brindes para sorteio no final do evento. Fiquei ali para auxiliar o pessoal também, ao lado da mesa do Google para New Business Development. Foi legal porque ali eu conheci o organizador do GTUG-Salvador, entre outras pessoas 🙂 Ah, consegui uma tomada (uma única mesmo) e usar um pouco o wifi para ler os emails.

Depois chegaram o pessoal da Lambda3 (@felipero, @flavia_oliv, @giovannibassi, @andrediasbr) e @scaphe, conhecidos por mim via Twitter. Essa turma ficou ali “trocando idéias”, “twittando” e codificando.

Após o horário do fim da palestra o André chegou e decidimos almoçar por ali mesmo, pois o Google disponibilizou para o pessoal (como no ano passado)  a “marmitinha” (lanche natural, maça, barra de cereais, bombom e refrigerante). Terminando de comer botei na cabeça que deveria entrar com uns 15 minutos na sala[1], pois começaria o track de Android com o lendário Tim Bray. Esse eu não ia perder por nada!

P.S. : a apresentação do Ramsdale não foi disponibilizada ainda. Quando for coloco no post o link para ela 😉

Ecossistema Android e NovidadesTim Bray

Consegui lugar finalmente! Estava a postos para ver a palestra do Tim, que hoje ocupa do cargo de “relacionamento com desenvolvedores Android”. Essa foi uma palestra básica para quem já viu ou programou para Android, com uma introdução ao “ecossistema” e uma descrição das últimas novidades. Alguns tópicos:

Para gerar aplicações para Android é preciso apenas seguir 6 passos, que mostram como um desenvolvedor trabalha:

  • Fala o download do SDK/NDK da página developer.android.com e escolha a versão desejada;
  • Instale o ADT, o plugin para o Eclipse;
  • Faça uso das ferramentas do SDK (“tools”) como ddms, logcat and traceview;
  • Faça o download do código fonte do sistema em source.android.com para usar como referência;
  • Registre-se como desenvolvedor por $25 (valor pago apenas uma única vez);
  • Faça upload  de sua aplicação para o Android Market 🙂

Os tópicos mais específicos foram:

E a melhor novidade na minha opinião:

  • Gingerbread foi oficializado: os desenvolvedores deverão liberar a versão no final desde ano, e o foco será em performance, melhorias no framework, suporte a mais línguas e melhorias para suportar games cada vez mais avançados 🙂

Sobre as novas diretrizes da Android Market:

  • Terá uma versão na web;
  • Tende a se tornar cada vez maior;
  • Buscas de aplicativos serão cada vez mais fáceis;
  • O mesmo irá ser aplicado a compra e “upload” de aplicativos.

Porque eu escolheria Android?

  • Open source (GPL +Apache2);
  • Baixa curva de aprendizado;
  • Programação em Java 😉
  • Suporte a múltiplas linguagens;
  • API robusta;
  • Abstração limpa.

Práticas Efetivas de Interface com o UsuárioTim Bray


Essa foi a segunda palestra seguida do Tim sobre Android, e ele ainda teria mais uma no evento. Houveram quatro palestras sobre Android, escolhi ver as três do Tim Bray (o pessoal no Twitter até brincou com isso, dizendo que as pessoas que escolheram essa programação (e foram muitas) estavam no TBDD2010 (Tim Bray Developer Day 2010)) :-p

Esta sessão teve como objetivo passar as boas práticas em termos de interface/design para os desenvolvedores. É de conhecimento da maioria que existe aquele certo “preconceito” de que desenvolvedor não sabe fazer/desenhar uma interface gráfica “atraente” e “polida”. Na maioria dos casos é verdadeira (eu faço parte dos números dessa estatística sim…rs).

Muitas vezes “quem vê cara não vê coração” 😉 E falando sério: o design de uma aplicação mobile, a usabilidade e facilidade de navegação fazem diferença. Abaixo algumas dicas que são imprescindíveis para o sucesso da sua aplicação:

  • Porque ter uma interface bonita? quanto melhor a interface, mais polida a aplicação. A partir daí existem melhores análises, melhor aceitação da sua aplicação pelo público e maior possibilidade de retorno (popular ou financeiro);
  • Visão de usuário é sempre diferente da visão de desenvolvedor, #fato;
  • Ouça seus usuários: lance versões alpha, beta… Antes de colocar no Android Market mostre a seus amigos. Lance versões cedo e com frequencia. Disponha um endereço (site, blog, redes sociais) para feedback e responda seus usuários, principalmente os que “metem o pau” na parte de comentários da Android Market;
  • Use o Google Analytics for Mobile (!)
  • Verifique erros, acesso a activities, settings e exceptions reportados pelos usuários, quando a aplicação “dá crash”;
  • Evite bugs: faça TDD (não seja um “bundão“). Apesar de ser mais difícil aplicar no desenvolvimento para Android, busque referências.
  • Disponha um bug tracker para o pessoal reportar erros e seja franco e sincero com o público;
  • Seja responsável com suas aplicações: evite que mensagens de crash apareçam;
  • Faça aplicações com bastante usabilidade: botões e textos grandes são bem vindos;
  • “Se o usuário tem que ler um help antes de usar sua aplicação então há algo errado” (Tim Bray);
  • Programadores geralmente não sabem fazer design: contrate ou peça ajuda de um!
  • Dê preferência a clareza, conteúdo e informações armazenadas na nuvem (seu telefone pode ser roubado viu…);
  • Faça aplicações que funcionem na horizontal e vertical!
  • Invista em ícones legais 😉
  • Integre com outras aplicações ou API’s se possível, não faça toda aplicação standalone;
  • Itens “sagrados”: status bar, back button, menu button and search button (não mude o comportamento deles e saiba aproveitá-los em suas aplicações).

APIs: Storage, Bigquery e PredictionPatrick Chanezon

Essa palestra acompanhamos eu e o André, por exclusão (no horário não havia alguma de total interesse para ambos) na “sala auxiliar”. Chegamos com uns 10~15 minutos de palestra decorrida no local. Dessa vez haviam lugares pra sentar e consegui uma tomada livre.  Encontrei por lá o Fábio Gama, também membro do SP-GTUG, aumentado a lista de conhecidos no evento.

Nessa palestra o Chanezon apresentou o mais “novo produto de armazenamento” do Google, o Storage. Ele é disponibilizado para desenvolvedores, e é oferecida uma API RESTful para armazenar e acessar dados no Google. No fundo você vai poder usar/usufluir de uma “pequena parcela” da infraestrutura de armazenamento do Google, bem como capacidades avançadas de compartilhamento e segurança. São exemplo de empresas que estão usando o Google Storage: VMWare, LTech, Memeo, The Guardian, e outras.

Para análise de dados pesados houve o desenvolvimento de duas dessas ferramentas, que estão disponíveis por inscrição limitada para desenvolvedores:

  • (1) BigQuery: análise interativa (via web services) de grandes conjuntos de dados;
  • (2) Prediction API: que permite fazer “predições informadas” sobre seus dados (sinceramente não entendi muito bem na hora, mas dando uma pesquisada achei esse link, que mostra que você tem acesso aos algoritmos de “aprendizagem” do Google, facilitando tomadas de decisão futuras em suas aplicações. Ainda não achei aplicação para isso :-p )

Como todas as API’s acessadas via REST, há um número limitado de requisições, favor acessar os links relativos a cada ferramenta. Todas tiveram demos mostradas pelo Chanezon. Para os interessados, a apresentação já foi disponibilizada e está abaixo:

Essa era a última palestra que antecedia o intervalo para o coffee break. No caminho encontrei o pessoal da Globalcode, a @yarasenger, @edermag e @rafanunes (o @drspockbr estava no Keynote uma fileira atrás da minha…rs). Dei uma passada lá na mesa do SP-GTUG e o pessoal continuava indo lá para tirar dúvidas. Foi bem útil o espaço disponibilizado para o grupo 🙂

Construindo Aplicativos de Alto DesempenhoTim Bray


Última palestra técnica do evento, a última do Tim Bray 😦 Essa foi bem técnica mesmo, com conteúdo para desenvolvedor que já está “por dentro” do “mundo Android”. Seguindo a linha da palestra 2 dele, aqui ele mostra exemplos, agora práticos e com código, de como “performar”, “debugar” e tornar sua aplicação mais versátil e com um tempo de resposta cada vez mais rápido, aproveitando ao máximo o framework de construção de aplicativos e as ferramentas do SDK. Abaixo as informações:

  • Pense duas vezes antes de fazer aplicações que escrevam na flash do seu aparelho (yaffs2): cada device tem um tipo de flash e velocidade de gravação e leitura. Pesquise! (link para estudo: YAFFS 2 Specification and Development Notes);
  • Perfomance para o SQLite: use indexes (EXPLAIN & EXPLAIN Query PLAN);
  • Para uso de log: sempre, SEMPRE dê file-append ao invés de escrever no banco (nem preciso falar que isso se reflete em qualquer software na vida real);
  • Escrever no disco é lento, usar rede é lento. Sempre assuma estar desenvolvendo para o pior caso. Os relatos no Android Market vão dizer se a performance está legal 😉
  • Use ferramentas como asyncTask;
  • Use uma ProgressDialog para mostrar que sua aplicação continua funcionando (isso é útil se algo demorar mais de 200ms(!));
  • Sobre desenvolvimento voltado para performance:

1 – É bom usar variáveis static, constantes final e getters e setters;
2 – Usar floats e enums é doloroso;
3 – Usar Reflection é doloroso e lento (independente da versão do Android);

Tim Bray apresentou uma demo usando o software LifeSaver, mostrando o gráfico de consumo de recursos (Garbage Collector, basicamente), e como analisar os possíveis pontos de falha de uma aplicação (o link da aplicação aponta para o próprio site do Tim Bray, com um post que faz alusão a maioria das citações dessa palestra, vale a leitura!).

Como mensagem final, Tim deixou a seguinte frase: “Premature optimization is the root of all evil” (Donald Knuth). Ela é original de um artigo escrito para a ACM Journal Computing Surveys, em 1974 (!), chamado “Structured Programming with go to Statements” (P.S. : Leia também “Otimização de Software: Quando? Onde? Porquê?“).

Na verdade, a frase completa é: “We should forget about small efficiencies, say about 97% of the time, premature optimization is the root of all evil”. Ou seja, é preciso ter cuidado com otimizações extremamente específicas, ou optar por uma “visão cega por performance 100%” (que não existe, métodos ineficientes sempre vão existir) na concepção  e decorrer do projeto, pois perde-se tempo útil com isso. O assunto é bastante extenso, mas é prato cheio para discussões!

O carisma do Tim com o público, o modo de apresentar o conteúdo e o estilo Crocodilo Dundee (ou Indiana Jones) fizeram das palestras do Tim as melhores no evento!

Painel VC: Empreendedorismo, Incubação e Capital de RiscoDon Dodge, Eric Acher, Humberto Matsuda, Alex Tabor


Essa última sessão estava na minha lista das mais esperadas, já que essa “hype“/”buzzword” chamada empreendedorismo é uma das tendências mais discutidas e importantes hoje. Conheço muitas pessoas que estão partindo para esse novo rumo e aprendendo bastante sobre o assunto. A experiência para a maioria que está empreendendo é muito rica e abrangente, seja na parte técnica, de processos (ciclos de produtividade e desenvolvimento), profissional e pessoal/relacional. De maneira mais próxima estou acompanhando o pessoal do Vizir, que estão fazendo um trabalho excelente. Logo, gostaria de tomar partido das novidades a partir dos especialistas! 😉

O pessoal vê como startups de sucesso aquelas do Vale do Silício apenas (ou principalmente), mas podem (e devem) ser construídas e financiadas em qualquer parte do mundo. Nesse painel os investidores de capital de risco (o Eric Acher e o Humberto Matsuda, principalmente) mostraram que estão investindo em startups no Brasil, fortemente. E os aportes financeiros chegam a 5 milhões de reais, um valor importante e bastante valoroso no financiamento de empresas, principalmente dos ramos de negócios de internet e tecnologias de educação (o foco dos investidores aqui no Brasil).

O pessoal passou boas dicas de como entrar numa incubadora, ou como ser financiado por um investidor de capital de risco ou “Angel Investor“. O Alex Tabor, CTO e co-fundador do Peixe Urbano, falou de suas experiências e como a sua idéia se tornou o primeiro e maior site de compras coletivas do Brasil.

O André anotou muito mais coisas do que eu, portanto vou aguardar o post do pessoal do Vizir sobre o assunto (certo André? :-p ), já que ele fez a cobertura e trocou algumas idéias com os palestrantes após o painel 😉

Muitas pessoas aproveitaram o final do painel pra fazer perguntas para os participantes, durou um bom tempo isso, provando que o assunto está em alta mesmo!

Encontro Social GTUG

E não é que o pessoal do SP-GTUG ganhou um espaço na sala[1] para divulgar seu trabalho 🙂 O Paulo Fernandes foi o responsável por fazer uma pequena apresentação do que é o SP-GTUG, nossa lista de discussão e o que está sendo produzindo. Foi apresentado um histórico das reuniões presenciais já feitas, sobre API’s do Google, Android, GAE, etc. Há em curso o projeto de reformulação do site do grupo para o GAE, baseado em Python, que terá continuidade em pouco tempo.

Foram também chamados ao palco os integrantes de outros GTUG’s, como o GTUG Belo Horizonte e GTUG Salvador. Foi legal para saber como anda o crescimento da comunidade pelo Brasil, sendo que essas iniciativas se deram a pouco tempo aqui no Brasil, cerca de 1 ano atrás, e que o pessoal está animado para continuar gerando material pra comunidade.

Um ponto legal pro pessoal que estava presente  foi a oportunidade de ver a aplicação vencedora do Rafael Ferreira (U3B – Use it before become broke) no 1º concurso para alunos da Globalcode sobre GAE, com incentivo do SP-GTUG. Nesta versão beta ele usou XMPP, GWT, GAE e BigTable. Para os interessados no projeto, o Rafael escreveu um post no seu próprio blog. Ficamos no aguardo de novos projetos relacionados as ferramentas do Google nas comunidades 😉

Ao final houve o sorteio de vários brindes para o pessoal presente, como chaveiros do Android, adesivos para notebook, camisetas e etiquetas do grupo. Foi divertido e o pessoal só arredou o pé no fim!

P.S. : fiquem de olho pois vai rolar um sorteio de um celular da Sony Ericsson com Android para os seguidores do SP-GTUG 😉

Happy Hour (coquetel), mais networking, camiseta do EuAndroid, etc…


Emendando esse final de evento houve um coquetel (happy hour), pro pessoal de todas as comunidades descontraírem, depois de um evento assaz cansativo (ufa!).

Legal foi conhecer uma galera “sinichtra aê” do Rio de Janeiro, que vai agitar a criação do GTUG-RJ. Esse pessoal está desenvolvendo o trabalho do “Eu, Android”, um site com tutoriais, notícias, podcasts, reviews e dicas de desenvolvimento para Android, tendo como objetivo se tornarem referências do assunto. Fui até entrevistado! (sei lá quando vai pro ar :-p ).

E como esse mundo é pequeno, fiquei sabendo que eles fazem parte de comunidades de desenvolvimento do Rio e conhecem o pessoal delas, como DevInRio, ForkInRio, PythOnRio e #HoraExtra. Vão aos dojos de Arduino, Ruby, Python e estão palestrando por aí. Pessoal fera! Com certeza iremos auxiliá-los no que for possível para o avanço do GTUG (isso serve para qualquer outro que venha a surgir) e quando houver a oportunidade de fazer eventos entre comunidades estamos aí!

Bom foi ver que nomes como Fábio Akita, “Irmãos Caelum” (Guilherme e Paulo Silveira), Rodrigo Yoshima, Guilherme Chapiewski, Marcos Tapajós, Henrique Bastos, Ramon Bispo (ramonpage), Álvaro Justen (turicas) e outros nomes relacionados ao desenvolvimento foram citados como “comum de dois”: importantes e bastante relevantes para a comunidade paulista e carioca de desenvolvimento. #WIN

No final acabei ganhando uma camisa do projeto do pessoal, muito legal! Quem quiser trocar idéia com o pessoal é só seguir o Andre Oliveira, Diego “Dukão” e Willen.

Conclusão

Nessa semana do GDD2010 tive que abrir mão de participar da RubyConfBR, que ocorria na mesma semana. 3 dias “full” fora da empresa ia ser complicado…rs. Mas o pessoal da empresa que foi ao RubyConf aprovou o evento, e eu digo o mesmo do meu primeiro GDD.

Na minha concepção:

Pontos negativos

  • Wi-Fi muito lento e instável. Em alguns lugares você conseguia conectar e usar (“duras penas”), de outros eram incomunicáveis os roteadores. Será que é complicado achar um “bom fornecedor” de rede sem fio para eventos? A mesma situação já ocorreu no FISL, RubyConfBR, TempoReal, entre outros (quase todos). Já virou ponto negativo e motivo de reclamação “default” do pessoal. É difícil falar de um evento com rede decente, acredito que só a Campus Party nesse sentido…
  • Como ocorrido um dia antes no Android Developer Lab, houve “overbooking”. Isso aconteceu em quase todas as palestras, uma pena. Já tendo em mente essa situação, o pessoal montou salas auxiliares, com áudio e os slides. As vezes até essas salas ficavam lotadas. Acredito que a organização ou não soube dimensionar o local para o público ou convidou pessoas a mais para o evento;
  • Local com número extremamente escasso de tomadas. Poderiam ser liberados alguns filtros de linha dentro dos auditórios. No lounge para descanso, onde haviam puffes, tinham um bom número de tomadas, mas só ali. Nesse ponto o pessoal que foi a RubyConfBR disse que o local era bem provido de tomadas. O pessoal que organiza eventos para o “povo geek” precisa saber que tomadas e wifi são imprescindíveis! :-p

Pontos positivos

  • DJ tocando música boa, algumas até “old school”. Legal a iniciativa do pessoal de deixar uma música rolando no intervalo das palestras 🙂
  • Pontualidade quanto ao horário de execução de cada palestra, intervalos e encerramento do evento
  • Brindes! Ganhei duas camisetas, uma capa para notebook, uma pasta, um bloco de notas considerável, caneta e squeeze =-)

  • Networking, envolvimento com novas comunidades, novas amizades e troca de idéias com as pessoas que só conhecia “virtualmente”

Para aqueles que queiram ver fotos do evento, vejam os links abaixo (usei algumas no meu post aqui):

E quem quiser acompanhar os tweets do evento:

Posts do evento, que já vi até agora:

Bem, acredito que seja isso que eu queria passar. Espero que vocês tenham gostado da cobertura e conforme as palestras, ou informações adicionais, forem liberadas eu atualizo o post.

Ano que vem no GDD2011? Quem sabe…vou torcer para isso!

Até mais!

Novidades na Google App Engine e Google App Engine For Business

HTC Evo 4G – Uma análise rápida…

Pessoal,

Ontem estive no 4º Bate Papo do SP-GTUG (confiram o post de divulgação no Globalcoders, escrito por mim…rs) onde os assuntos principais foram Java no Google App Engine (@rafanunes) e as novidades do Google I/O 2010 (@robsondantas). Em breve irei escrever sobre o evento (estou aguardando a liberação das apresentações dos palestrantes e mais fotos).

Mas, se não vou falar sobre o encontro agora vou falar sobre o que? Vou falar sobre Android, um dos meus atuais temas preferidos de pesquisa e discussão!

Ontem tive a oportunidade de analisar nas minhas próprias mãos o celular mais poderoso do momento com a plataforma Android: o HTC Evo 4G. O Robson Dantas, palestrante de ontem e que teve a oportunidade de participar do Google I/O teve a grata surpresa de ganhar o aparelho como cortesia da operadora americana Sprint, que fez uma parceria com o Google para o evento.

Junto com o HTC Evo ele ganhou o Google Nexus One, já prometido como parte dos “brindes” da inscrição/participação. Nada mal para um evento de 400 “doletas” (INVEJA ON) 😉

Abaixo vou colocar algumas observações acerca do aparelho, que impressiona mesmo…

Review

Não vou escrever um review completo do aparelho, pois muitos outros existem e existirão. Apesar do aparelho só ser lançado no dia 04 de Junho de 2010 (e eu já ter feito  parte de uma minoria que já analisou o aparelho antes de muita gente…rsrs), eu indico 3 referências para aqueles que queiram ver mais a fundo o que esse “monstro” pode fazer:

Há informação suficiente sobre o assunto e muito detalhada. Deleitem-se!

Vantagens e Desvantagens

Abaixo os pontos relevantes levantados por mim, acerca do que pude ver/analisar em cerca de 15~20 minutos com o aparelho em mãos.

Vantagens

  • O aparelho É RÁPIDO! 🙂
  • O aparelho É MUITO RÁPIDO! 🙂 🙂
  • O chip SnapDragon de 1Ghz + 512Mb de RAM fazem MUITA diferença na performance do aparelho. Imagine rodando a versão 2.2 do Android (vem com a versão 2.1)…
  • A tela de 4.3′ tem uma definição de cores e resolução das imagens excelente;
  • A interface HTC Sense trouxe boas impressões: é mais legal e bonita que a interface do “Android cru” (Non HTC Sense, MotoBlur, SonyEricsson UX e similares);
  • Tem mais áreas de trabalho nativas (no Evo são 7 áreas de trabalho, contra 3/5 da interface do “Android cru”);
  • Saída HDMI para ver vídeo em alta resolução na sua TV (!);
  • O aparelho reproduz vídeo em até 720p de qualidade (máximo valor que os vídeos do youtube permitem executar);
  • Tem uma “perna retrátil” que pode colocar o Evo em posição de porta retrato, facilitando a visualização de vídeos;

Desvantagens

  • Só funciona na rede WiMax/4G americana (não temos essa tecnologia por aqui ainda…);
  • É CDMA, portanto não vai funcionar no Brasil 😦 Quem sabe não saia em breve uma versão GSM…
  • Eu achei grande as dimensões do aparelho, apesar de não ser tão pesado;
  • É preciso usar alguma vestimenta que tenha um bolso de no mínimo 15×10 cm. (alturaxlargura) para carregá-lo com conforto…

Fotos e Vídeos

Disponibilizo aqui algumas fotos e vídeos que fiz com o meu “humilde” HTC Magic (Android 1.6 e câmera de 3.2 megapixels). Agora toda vez que olho pra ele tenho uma ponta de desdém…rs.

HTC EVO 4G é forte candidato ao título de melhor telefone celular

4º Bate Papo do SP-GTUG – Globalcode

Finalizando…

Esse aparelho é muito bom mesmo (tirando o tamanho…)! Ele vem pra ser o melhor modelo de Android do mercado, juntamente/rivalizando com o seu “irmão menor” (somente no tamanho) HTC Incredible. Se você me perguntasse qual modelo eu adquiriria eu diria que um Google Nexus One, pelas facilidades de desbloqueio, hacks disponíveis e preço do aparelho, além da real atualização para a versão 2.2 que os aparelhos vem recebendo.

O Robson infelizmente já vendeu o Nexus que ele trouxe do I/O, e que eu estava de olho 😦 😦 😦 😦  Mas oportunidades não faltarão 🙂

É isso aí! Espero que vocês tenham gostado desse review bem simples do aparelho, que por ora não está aqui no Brasil em versão GSM.

Até mais e aguardo opiniões, comentários, dúvidas e sugestões!

[Divulgação] – MotoDEV Summit 2010 (evento sobre a plataforma Android)

Informação retirada do blog Livro Android. Eu estarei lá! Já fiz minha inscrição, e você?

MOTODEV Summit: O futuro começa aqui!

O MOTODEV Summit é um evento gratuito de um dia organizado para oferecer acesso a tudo de que você precisa para desenvolver em Android, como ferramentas, orientações, conhecimento estratégico de marketing e suporte à comunidade, para ajudar você a criar uma geração totalmente nova de soluções fenomenais para os usuários.

Para conferir a programação do evento e se inscrever entre aqui:
http://developer.motorola.com/eventstraining/summit/brazil10/

Parabéns a Motorola pela iniciativa, e por trazer este grande evento ao Brasil!

[Estudo/Dicas] – 140 questões usadas nas entrevistas do Google

Estava eu a ler meus Feeds, RSS,  Reader e listas de discussão pela manhã (como é de costume e hábito assaz “viciante”…rs), quando achei uma notícia bem interessante, enviada pelo usuário Rafael Torres na lista de discussão de JavaME do SOUJava, onde o assunto da thread era “Como avaliar candidatos?”.

Eis que o mesmo sugere dar uma lida no post “140 Google Interview Questions e fazer extração de algumas perguntas para entrevistas, por exemplo. Interessado pelo título (é claro…rs) fui dar uma olhada lá no site…

O cara que escreveu o post chama-se Lewis Lin. O mesmo já trabalhou no Google, Citibank, Accenture  e hoje está na Microsoft(!). Ele transcreveu algumas questões que são feitas em entrevistas do Google para os mais diversos cargos.

O nível intelectual/profissional exigido para entrar no Google é impressionante. Só pelas perguntas você já consegue parametrizar o seu nível de conhecimento, sabendo se está muito ou pouco atualizado na sua área (ou para um cargo similar no Google). Esse é o objetivo de eu estar compartilhando esse material.

Portanto não perca tempo e dê uma lida no post do Lewis!

Ou você é capaz de me responder o que é um “dead beef” (pergunta feita para o cargo de Engenheiro de Sofware!)? Não vale procurar no Google hein…rsrs!

Até mais!

Como avaliar candidatos?

Minhas impressões – 1º Bate Papo do SP-GTUG (Globalcode – 03/03/10)

Caros colegas,

Vou escrever um pouco acerca das minhas impressões do 1º Bate Papo do SP-GTUG, ocorrido na Globalcode em 03/03/10. Estive presente em mais esse evento/encontro de pessoas interessadas nas tecnologias do Google. Se você quiser saber mais sobre o SP-GTUG, leia acerca do 1º encontro do SP-GTUG, ocorrido no ano passado (Agosto/2009).

Introdução

Após a primeira reunião do grupo, ocorrida no mês de Agosto/2009, houve um “hiato” em termos de organização de eventos e geração de conteúdo relativos as tecnologias Google, seja no blog do grupo, lista de discussão ou apresentações públicas. Graças aos incentivos, força de vontade e senso de organização do Paulo Fernandes, no começo desse ano foi organizado o 2º encontro do SP-GTUG, também na Globalcode em 06/02/10.

No 2º encontro os membros (alguns novos e outros remanescentes da primeira reunião) rediscutiram as estratégias do grupo, novos colaboradores e como incentivar a geração de conteúdo. Eis que uma das idéias que surgiu foi de organizar “bate papos”, que no final acabam sendo como os minicursos da Globalcode: membros que forem capacitados em alguma tecnologia do Google e se sentirem confortáveis em pesquisar e explicar, fazem uma apresentação para um público alvo interessado. Chegamos ao acordo que, a cada “bate papo”, 2 temas (2 palestras com 1h30 cada) seriam apresentadas e o assunto discutido com o público.

Com base nisso, foi marcado o 1º Bate Papo do SP-GTUG (!). Os assuntos do primeiro bate papo (e os “sortudos” que teriam a honra da estréia) foram:

  • Google AdWords, com Eric Gomes;
  • Opensocial, com Róbson Dantas.

Abaixo um pequeno resumo sobre as palestras.

Google AdWords – Eric Gomes

Eric Gomes, que é especialista em AdWords e já trabalha na área, trouxe a público um overview simples e direto sobre essa tecnologia. O AdWords nada mais são do que anúncios, encontrados em forma de link e presentes em ferramentas de busca (vulgo Google) de acordo com as buscas de um usuário (por meio das palavras  chave). Outros locais que podemos visualizar esses anúncios são  Youtube, Orkut, Gmail, Maps, etc. Favor não confundir AdWords com AdSense!…rs.

Alguns termos mais técnicos (e mais importantes da apresentação) sobre AdWords foram abordados, como:

Não é a toa que as propagandas perfazem, praticamente, o total do valor da renda arrecadada pelo Google, que é de cerca de 97% (Para mais informações ver esse post com os números do Google).

Quer saber mais do assunto? Veja os links abaixo:

Opensocial: aplicações e conceitos – Robson Dantas

“In particular, we’ve identified Robson Dantas (site) as an OpenSocial Guru for consistent demonstration of technical expertise and community involvement.” (Opensocial Google Group).

Para falar sobre OpenSocial nada melhor do que um Guru do Opensocial (como foi definido pelo próprio Google!), ou seja, Robson Dantas. Para não complicar (rs), vou transcrever a definição de Opensocial da Wikipédia:

O Google OpenSocial é uma plataforma do Google baseada em HTML convencional e Javascript. Uma API (Interface de Programação de Aplicativos) aberta [1] que permite que desenvolvedores criem widgets (aplicações ou add-ons) para rodar dentro de redes sociais [2] que aderirem à plantaforma OpenSocial. As redes sociais que já aderiram são o Orkut, MySpace, Friendster, LinkedIn, hi5, XING, Plaxo, Ning, Oracle, Viadeo e SalesForce[3].

O Robson passou para os presentes um panorama do desenvolvimento e oportunidades que podem ser aproveitadas nas redes sociais do Brasil e do mundo. Alguns números interessantes sobre esse nicho são:

  • Mais de 85% dos internautas usam redes sociais, seja Orkut, Facebook, Sonico ou outras;
  • No Orkut: 22 milhões de usuários. Acesso: 28 visitas ficando 496 minutos/mês.

Podemos explorar esse nicho desenvolvendo um ambiente formado por: Opensocial + aplicativos + criatividade (simples, sociais, atrativos e “virais”). Trazendo para a realidade temos alguns cases de bastante sucesso, como Buddy Poke, Mafia Wars e Farm Ville.

Alguns termos mais técnicos (e mais importantes da apresentação) sobre Opensocial foram abordados, como:

  • Opensocial API;
  • Conhecimentos que um desenvolvedor precisa ter: HTML, Javascript e outra linguagem (Java, PHP, Python, etc.);
  • Ferramentas a serem usadas: Firebug, Opensocial plugin, Sandboxes, Partuza, Shindig, OSDE;
  • Demo: Shindig + Opensocial e gadget “Hello World”;
  • Visão de mercado: desenvolvimento de plataformas de mídia, jogos online e aplicativos sociais (inclusive no próprio Google!).

Quer saber mais do assunto? Veja os links abaixo:

Conclusão

O encontro reuniu por volta de 20 a 25 pessoas, uma média considerável para um horário das 19h as 22h de uma quarta feira. E já teve 2 palestrantes de muito bom nível em sua primeira edição!

Espero que outros bate papos possam acontecer, e mais “especialistas” e interessados se disponham a apresentar. Mas, é importante ressaltar: nem só de apresentações viverá o grupo! Temos em mente que precisamos de mais colaboradores criando conteúdo no blog, participando dos eventos, enviando dicas na lista de discussão e oferecendo outras localizações para as reuniões do grupo (quando o auditório da Globalcode estiver ocupado).Participe da lista de discussão do SP-GTUG e dê sua opinião também!

Mais uma vez fica o agradecimento (e acredito que dos demais também) ao Paulo Fernandes de dar o “pontapé inicial” nessa iniciativa de angariar “sangue novo” para o grupo e estar organizando os encontros. Agradecimento também vai para a Globalcode, que pela terceira vez em três encontros (rs) cede o espaço gentilmente ao grupo.

Agora alguns avisos para os possíveis novos encontros (e bate papos). Já existem pessoas interessadas em apresentar alguns temas relacionados as tecnologias do Google. Abaixo listo alguns:

* Deise Garrido – Adsense

* Rodrigo Ribeiro (Isso mesmo: o “paguá” que escreve esse post…rs) – Android

* Paulo Fernandes – Overview de algumas tecnologias Google (a definir)

* Fabio Gama – Open Social, Maps, AppEngine

* Octavio Turra – Wave, Chrome

* Fernando Masanori – Python no AppEngine

Portanto não perca os “próxmos” capítulos! Interessado em participar? Venha discutir conosco! Acesse: http://groups.google.com/group/sp-gtug

Bem, por enquanto é só! Espero ter sido claro com as palavras e ter passado conteúdo útil com este post.

Até mais!

Ebook gratuito sobre Google App Engine (GAE) disponível para download

Romin Irani, autor do Blog Google App Engine Java Experiments, publicou um ebook completamente gratuito sobre como desenvolver aplicações Java no Google App Engine. Segundo críticas, o livro é excelente e conta com mais de 200 páginas abordando detalhadamente tudo o que é preciso saber para desenvolver aplicações no GAJ usando Java.

Baixar o Ebook

Link: http://gaejexperiments.wordpress.com/gaej-experiments-ebook/

P.S. : “Pinçado” do site JavaFree.org.

Baixando vídeos do YouTube mudando uma letra apenas (!)

Dica retirado do site Gizmodo Brasil. Muito útil para aqueles que procuram clipes musicais e sucessos do passado como eu…rs.

Como é que eu nunca tinha pensado nisso antes? Olha só:

1. Abra qualquer vídeo do YouTube (tipo este, de videocacetadas)

2. Na URL do vídeo, troque o “Y” em “YouTube” por um 3

3. Pronto!

Agora é só escolher se quer baixar em formato MP4 ou FLV. O KickYouTube também gerencia downloads de vídeo de forma simples e inteligente — basta colocar “kick” antes do “youtube” na URL do vídeo — e tem ainda mais opções. [Lifehacker]

P.S. : particularmente eu uso o KeepVid (http://www.keepvid.com), que tem o adicional de permitir salvar em qualidade hd (se o vídeo permitir isso, lógico).

Material de estudo – GWT

Para os interessados em GWT e desenvolvimento WEB com essa ferramenta do Google aqui está uma fonte muito legal do assunto, contendo tutoriais e e-books. Notícia retirada do site JavaFree.org.

GWT, Google WEB Toolkit, é o toolkit da Google para construção de aplicativos WEB. A principal característica do GWT é transformação de código Java em javascript/HTML. A programação das views, páginas que o usuário acessa, é feita de forma semelhante a programação de telas em Java Swing, no entanto, o resultado são páginas WEB, invés de um aplicativo desktop, como ocorre com Java Swing. GWT ainda emprega o conceito de RPC e possui um ambiente de programação para a IDE Eclipse.

O uso de GWT tem crescido com o aumento da necessidade de criação de aplicações ricas para a internet (RIA) e recentementa a versão 2.0 foi lançada.

O site oficial do Toolkit oferece diversos tutoriais e exemplos, mas ainda falta material mais avançado e/ou que aborde mais exemplos relacionados a aplicações enterprise.

Uma coletânea de material publicado pelo site Bookuter. relacionado a GWT poderá ajudar a diminuir essa falta de material para estudo. É uma coletânea de 25 arquivos, entre eles e-books e apresentações, que envolvem desde a apresentação do framework até exemplos de acesso a banco de dados. O material está em inglês.

Confira!

Link: http://www.bookuter.com/category/java/gwt/

Google lança uma nova API de collections para Java

Notícia interessante retirada do site INFO Online. Importante e de grande utilidade para os que apreciam “fuçar” em novidades do Java…

Getty Images

Google tem nova coleção Java

SÃO PAULO – O Google lançou uma nova biblioteca de coleção Java com novidades e suporte para as versões 5 e superiores da linguagem.

Segundo a empresa, a Google Collections Library 1.0 é uma extensão da Java Collection Framework, que contém diversas classes e interfaces.

Entre as novidades estão o Multimap, que permite a associação de diversos valores a uma única chave, e a Multiset, que habilita a duplicação de itens.

A nova Collections Library faz parte do projeto Guava, que reúne todas as bibliotecas Java utilizadas internamente pelo Google.

O download pode ser feito na página de códigos disponibilizada pela empresa, junto com informações, recursos e guias de utilização.

P.S. : Desculpem pela ausência e falta de postagens e “novidades” no blog. Estou em período de férias…rs. Mas estou voltando a ativa dentro de alguns dias, aguardem!

Go, a Programming Language by Google

Retirado do blog Google Blogoscoped. Incrível como eles criam coisas e mais coisas úteis para os profissionais das mais variadas áreas. Até onde eles vão? De onde eles tiram tanta inovação e idéias? rs.

Google has released a new programming language called Go. Google wants to offer a couple of benefits from their language: fast compilation, easy analyzing of dependencies, static types that nevertheless feel more lightweight compared to some other languages, and multi-core machine support.

Go is not (not yet anyway) an approved official Google-internal language, but apparently more of an experiment for “adventurous users”, started in September 2007 by Robert Griesemer, Rob Pike and Ken Thompson. The motivation for a new language is explained at the Go site:

Go is an attempt to combine the ease of programming of an interpreted, dynamically typed language with the efficiency and safety of a statically typed, compiled language. It also aims to be modern, with support for networked and multicore computing. Finally, it is intended to be fast: it should take at most a few seconds to build a large executable on a single computer. To meet these goals required addressing a number of linguistic issues: an expressive but lightweight type system; concurrency and garbage collection; rigid dependency specification; and so on. These cannot be addressed well by libraries or tools; a new language was called for.

Why doesn’t Go offer generic types? Google explains that the language does not offer them yet, but that they may well be added at some point. The site says:

Generics are convenient but they come at a cost in complexity in the type system and run-time. We haven’t yet found a design that gives value proportionate to the complexity, although we continue to think about it. Meanwhile, Go’s built-in maps and slices, plus the ability to use the empty interface to construct containers (with explicit unboxing) mean in many cases it is possible to write code that does what generics would enable, if less smoothly.

This remains an open issue.

Here’s a bit of Go code to give you an idea, and much more is explained in Google’s tutorials. I’ve just copied some syntax samples into this bit of code, not to create a compilable valid program but for the sake of showing off some of the := declaration syntax, the “missing” if and for brackets, the use of semi-colons as separators but not terminators (the tutorial code seems to be inconsequential about this, or I’m missing something), the implicit break in the switch statement and more:

package main

import fmt "fmt"

const (
    Space = " ";
)

func main() {
    var s string = "";
    for i := 0; i < 10; i++ {
        if i > 0 {
            s += Space
        }
        s += "foo"
    }

    var a int;
    b := 0;
    c := 0;
    switch {
        case a < b:
            c = -1
        case a == b:
            c = 0
        case a > b:
            c = 1
    }
}

[Thanks Manoj, DPic and Steffi!]

Atualizado em 13/11/09, as 10h02.

Parece que já existe uma linguagem de programação com o mesmo nome da linguagem criada pelo Google. Foi aberta uma discussão na página de código do Google a respeito do assunto. Para saber mais acerca disso acesse o link:

Code Google: Go page (Issue 9)