Minhas impressões – Campus Party 2011 – Dia 4 – 20/01/11

Veja também:

Olá caros amigos leitores,

Eis que chegamos ao 4º dia da Campus Party, mais da metade do evento já transcorreu e nos aproximamos da reta final. Abaixo vai o resumo rápido do que eu vi nesse quarto dia.

Panorama

Nesse quarto dia tudo ocorreu sem problemas graves, incrível! Não houveram quedas de energia e internet, para felicidade de todos 🙂 Me programei para assistir duas palestras, uma de JavaScript e a re-ascensão no cenário atual de desenvolvimento e outra sobre a Wikileaks e liberdade de informação. No resto do tempo aproveitaria a feira e a internet 😉

Confira os resumos das palestras abaixo.

Palestra: JavaScript: agora é sério – Luciano Ramalho

O Luciano Ramalho, muito conhecido na comunidade Python brasileira, trouxe para o público uma visão de como o JavaScript está em reascensão entre as linguagens, inclusive ganhando crédito com ele mesmo. As facilidades e suporte do HTML5, navegadores web (até do IE9, vejam só :-p ), o crescimento das plataformas móveis entre outros transformaram JavaScript numa opção muito “atraente” para aplicações baseadas em RIA.

Para introduzir o assunto para o pessoal, ele deu uma introdução acerca da linguagem (desmistificação do nome JavaScript, fundação do padrão ECMAscript, entre outros pontos). O artigo na Wikipedia acerca do JavaScript (em inglês) é aceito como uma das melhores referências iniciais sobre o assunto, até mesmo pelos acadêmicos.

Como foi desenvolvido pelo Netscape e pela fundação Mozilla, então é comum que as novidades, updates e suportes novos sejam testados e lançados primeiro no Firefox. Para quem é desenvolvedor essa é uma informação importante. O padrão suportado pela maioria dos navegadores é o ECMAScript3, mas a versão mais atual é o ECMAScript5.

Para quem é oriundo de linguagens do paradigma OOP, poderá encontrar alguns percalços para entender o paradigma de programação funcional (presente nas funções de primeira classe) e a tipagem fraca (muito observada na análise de validação de condições booleanas) de JavaScript, por exemplo. Uma crítica construtiva foi feita acerca disso: nos centros universitários do Brasil é comum o ensino da linguagem Java, em sua maioria (juntamente com C/C++ em outras). Os alunos não tem contato com outros paradigmas de programação. Seria interessante, para aquele que conhece Java, aprender outra linguagem funcional ou com elementos de programação funcional (importância do Programador Poliglota).

Iniciativas ligadas ao JavaScript, como o HTML5, Canvas, Node.JS e outras, fizeram JavaScript renascer e retomar importância no cenário da programação moderna. Por isso o título da palestra.

Para os interessados em discutir seriamente esse novo momento da linguagem o próprio Luciano criou o grupo JSPro, no Google Groups, para discussões avançadas sobre essas novas tecnologias.

Livros indicados? Dois:

Acessem também a tag JavaScript do Delicious do Luciano, #ficadica.

Abaixo os slides apresentados:

Visita as tecnologias da Área Expo

Aproveitei o hiato do horário do almoço e começo da tarde para visitar estande por estante da área expo. Eu e o Fabrício Campos fomos ver as novidades relacionadas a tecnologia por lá. Os mais bacanas foram o simulador de F1 da AMD, um desktop ligado a 5 TV’s (com resolução fina de 6000×1600) para jogar Street Fighter 4 (usando a tecnologia Eyenfinit) e o Kinect, que eu ainda não tinha visto em ação. Todos são muito interessantes, diversão na certa!

Para quem tiver oportunidade de comparecer como visitante: a programação de apresentações dos projetos “Campuseiros empreendem” e “Campuseiros inventam” está na área expo, com acesso livre ao público. Muitas idéias e startups estão apresentando projetos lá, venha conferir!

Para quem gosta de apetrechos “nerds” a LinuxMall está com um estande vendendo de tudo (verei se no último dia de evento compro uma camiseta…rs). O Terra está com a rádio Sonora aqui e umas picapes para DJ’s, depois irei para fuçar, dizem que tem uma balada silenciosa com fones de ouvido :-p O estande da Vivo está com alguns modelos de Tablet com Android para “teste drive” (ZTE, Dell e Samsung), apesar de eu ainda não curtir a idéia do tablet, vale pelo conhecimento da nova tecnologia.

Para os interessados em presenciar essa atmosfera do evento é um passeio legal (não deixando de ser nerd) para o fim de semana 😉 #ficadica

Debate: Toda informação deve ser livre? – Sergio Amadeu (UFABC), Fabio Zanini (Folha de SP), Marcelo Trasel (PUC-RS), Daniela Silva (Esfera)

A Wikileaks executou vazamento de documentos secretos dos mais variados países. Constrangeu governos e abriu um novo debate sobre os limites da liberdade de informação na era digital: tudo deve ser divulgado? Deve existir transparência completa? Sites que vazam informações sigilosas são aliados ou inimigos da democracia? Em cima das indagações desse preâmbulo, os debatedores formularam respostas e levantaram informações e teorias para explicar esse fenômeno.

No mundo tivemos uma boa parte da mídia apoiando a Wikileaks e divulgando o material proveniente dela de tempos em tempos, como El País (Espanha), The Guardian (Inglaterra), Globo e Folha de SP (Brasil).

Um dos documentos pioneiros que fez a Wikileaks sair do anonimato para o conhecimento do público comum foi sobre o acordo comercial antipirataria (Acta), um acordo para facilitar os membros das indústrias de direitos autorais e patentes dos EUA, algo que já estava sendo “tramado” a dois anos antes. O vídeo do helicóptero americano abatendo inocentes e 2 jornalistas da Reuters na guerra do Iraque foi “o fim da picada”.

Dentro desse panorama temos alguns confrontos para se pensar:

* Poder dos ativistas X poder da mídia tradicional – com o alcance da Internet, a maior interatividade do público com a informação e a facilidade de mobilização, a rede é tão poderosa (ou mais) quanto a mídia tradicional (que na maioria das vezes é apoiada pela máquina do estado);
* Quebra da infra-estrutura principal do site da Wikileaks X Levantamento de novos nós e endereços na rede (distribuição descentralizada de informação de todos os documentos, via torrent);
* Liberdade de expressão ambígua: Wikileaks X Falha de SP X Lula é minha anta (livro do Diogo Mainardi);
* Ditaduras do capital bloqueando as contas do Assange/Wikileaks (uso irregular do poder) X crimes políticos e burocracias judiciais para quebrar sigilo financeiro X DDOS (ataque ou forma de protesto?);
* Poder da rede distribuída de conteúdo e democracia virtual X Poder das operadoras de rede para a Internet nas camadas físicas (cabos e backbones) e lógicas (proxies) + interesses dos estados.

Os jornalistas da mesa revelaram que as matérias que saem no Globo e Folha de SP são feitas em parceria com o pessoal da Wikileaks. Discussões conjuntas são feitas para formatação e produção de conteúdo a ser divulgado, relativo aos documentos vazados (lógico, os de interesse de todas as partes).

A frase que marcou a apresentação pra mim, e que faz sentido pra todos os leitores tenho certeza, é:

“Nos dias de hoje o difícil não é falar, o difícil é ser ouvido.”

A comunidade, a rede de usuários e a democracia internética são os meios que nos permitem ser ouvidos.

Eu gostei bastante dessa palestra, deu pra ouvir coisas bem interessantes, ótimos pontos de vista e gerou muitas perguntas. Uma das perguntas foi minha ao pessoal da mesa, no fim do debate: o próprio EUA não pode estar sendo “beneficiado” e usando tudo isso como argumento para aumentar o cerco na internet? Em nenhum momento eles disseram “Não, tudo mentira, calúnia!”. Aceitaram tudo até agora calados… Assange é herói ou vilão nesse jogo de interesses? Quem é a Wikileaks na verdade?  #conspirationfeelings

E pra minha surpresa essa é uma das perguntas que um o Marcelo Trasel faria a Assange na entrevista do próximo mês para a revista Carta Capital 🙂

Participe de uma petição, divulgada pelo Sergio Amadeu acerca da liberdade de expressão e o direito à informação, contra a perseguição ao Wikileaks, ao FALHA de S.Paulo e ao CMI.

Conclusão

Com o saldo de quatro dias sinto que está sendo bem interessante seguir uma trilha mais voltada pra assuntos não-técnicos aqui na Campus Party (empreendedorismo, liberdade de informação, licenciamento de software, redes sociais, etc). Mas os assuntos técnicos também tem seus lugares (Node.JS foi bacana, TV Digital, Android, etc.).

Espero que tenham gostado. Amanhã divulgo o dia de sexta.

Até mais!

Anúncios

Minhas impressões – Campus Party 2011 – Dia 3 – 19/01/11

Veja também:

Caros colegas

Eis que 3 dias de evento já se passaram, estamos próximos da metade do período de Campus Party 2011. Aqui estou eu novamente para relatar as novidades do terceiro dia de evento. Espero que gostem, será bem curto 🙂

Panorama

Esse terceiro dia, de acordo com minha agenda seria de poucas palestras (na verdade uma única do meu interesse…rs) e bem mais uso do computador, interação com a área Expo e pra conhecer a Campus Party como um todo.

Palestra Startup: As não-lições do Silicon Valley


O objetivo da palestra era “desmistificar” o Silicon Valley, mostrando que lá não é  O “lugar perfeito” para os empreendedores. Não basta você viajar para a Califórnia com uma idéia na cabeça, um plano de negócios e você voltará para o Brasil com um aporte de dinheiro e suporte a sua Startup. O pessoal da ResultsON, que esteve no Vale do Silício deu exemplos de quais são os erros e problemas mais comuns no Vale e como o Brasil pode aprender com eles. Não há um modelo perfeito para conseguir entrar lá, e ainda mais: sem o famoso QI (quem indica) você não consegue horário para falar com qualquer investidor, ressaltando cada vez mais o conceito de networking.

A cultura empreendedora nos centros universitários americanos (Stanford e outras universidades do Vale do Silício, por exemplo) é feita para formar empreendedores e idéias úteis para a sociedade. Aqui no Brasil temos uma propagação de cultura limitadíssima a respeito do assunto: nossas universidades mantém o mote de formar engenheiros para o mercado.

No momento estamos vivendo um momento único de oportunidades, que o empreendedorismo digital nos proporciona. O Brasil é um dos países onde há maior criatividade em termos de soluções baseadas em redes sociais, e o reflexo disso são os futuros investimentos e a chegada do Silicon Valley aqui em curto prazo 🙂

Abaixo algumas frases que marcaram a palestra, achei bem importante esses pontos de vista.:

“Há falta de investidores no Brasil que falem a linguagem dos empreendedores. É preciso haver uma re-educação de algum dos lados”.

“Precisamos de mais pessoas fazendo empreendedorismo de alto risco, “indo pro pau”.

A palestra, rapidamente, já está disponível no site da ResultON. Confiram abaixo o vídeo no youtube:

Amigos e GTUG-SP

Encontrei aqui na Campus Party o Bruno Moraes, do GTUG-SP. Gente boa, trocamos idéias a respeito dos projetos do grupo (novo site, sessões de coding dojo, etc.). Sentimos falta de mais membros do GTUG presentes até o momento aqui no evento, para quem sabe fazermos uma reunião. O Renato Santos, Renato Mangini (GTUG-BH), Gustavo Uchoa e o Wesley,  ainda não apareceram…

Fizeram companhia aqui durante o dia de ontem o André Pantalião, Daniel Bronzeri (acampando como eu) e Roberto Elvira.

Que-Fala! e a fama do Bronzeri

O projeto Que-Fala! do Daniel Bronzeri para o Campuseiros Inventam está dando o que falar por aqui, ele está dando entrevista a “torto e a direito” (próximas serão para Gazeta, Globo e Terra) 🙂 Foi um dos selecionados para a fase classificatória, bem repercutido por todos que participam da competição, e candidato a finalista.

Para quem não conhece vale a pena dar uma olhada nos slides:

Conclusão

Dia bom de Campus Party, estou cada vez mais ambientado ao local, as pessoas (apesar de muito estranhas…pude ver o quanto eu NÃO SOU TÃO NERD :-p ), a má organização e as falhas de rede (ontem não caiu a energia, mas teve queda parcial da rede para algumas mesas do campus).

Amanhã tem a parte 4, até mais!

E não deixem de acompanhar as novidades que coloco via Twitter, Picasa e Youtube.

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

Minhas impressões – Ruby+Rails no mundo real 2010 – 29/05/10

Caros amigos e leitores,

Vou escrever nesse post uma cobertura acerca do que ocorreu no evento do dia de ontem e que estive presente, o Ruby+Rails no mundo real 2010, em sua segunda edição. No ano passado também estive presente nesse mesmo evento e fiz um post de cobertura do que aconteceu. Esse ano vou “repetir a dose”…rs. Confiram abaixo!

Panorama

Ontem foi mais um sábado perdido…brincadeira…mais um sábado dedicado a angariar informação ao “portifólio de conhecimento”, como gosto de citar. Estive nesse evento juntamente com o colega de empresa Fabrício Campos. Estávamos motivados e com expectativa alta para a segunda edição do evento, muito pelo que ocorreu no ano passado. Para mim foi a segunda participação no evento, Fabrício estava participando pela primeira vez.

A localização (e a manutenção do local do evento, mesmo do ano passado) do Century Flat facilitou bastante a chegada até o local, muito pela variedade de vias de acesso e disponibilidade de transporte público até a Av. Paulista. Cheguei com um pouco de antecedência (cerca de 8h35 da manhã), fiz meu credenciamento e aguardei até as 9h00 para o início.

Consegui um bom lugar para me estabelecer: perto de tomadas 🙂 Assim consegui manter meu notebook e celular “vivos” até o fim do evento! Apesar de no “fundão” o pessoal ter passado alguns “apertos” para visualizar alguns slides com código…

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

Wilian Molinari – Abertura do evento e o GURU-SP


Wilian Molinari, a.k.a PotHix, fez a abertura do evento contando para o pessoal o histórico sobre a idéia de criação do GURU-SP, e como eram as primeiras reuniões do grupo: o primeiro e segundo encontro tinham poucas pessoas (cerca de 3 ou 4). As reuniões eram esporádicas, mas conforme a lista de discussão crescia o desejo de se criar um evento crescia também. Assim o “Ruby+Rails no mundo real” (edição 2009, primeiro do grupo) foi bastante produtivo e aumentou consideravelmente o número de inscritos na lista.

A partir disso a comunidade Ruby aqui em SP cresceu e se tornou bastante sólida e ativa. As palestras subseqüentes (a maioria nos encontros mensais do grupo) foram melhores e com mais pessoas. Os encontros tornaram-se mais constantes e muitas outras empresas passaram a apoiar a o GURU-SP (inclusive a que trabalhamos eu e o Fabrício hoje: Voice Technology, que já recepcionou uma das reuniões do GURU-SP).

O GURU-SP hoje conta com alguns projetos e atividades:

Finalizando a abertura, foi passado um vídeo com uma mensagem do Matz (criador do Ruby) para o GURU-SP:

Abaixo a apresentação do PotHix na abertura (via Slideshare):

Douglas Campos & Scalone – Processamento batch – Escalando um sistema sem “fermento”


Nessa primeira palestra, @qmx e @scalone centraram as atenções para o conceito de processamento em batch, fazendo um paralelo (um tanto quanto extenso…) com a produção de pão.

A linha principal de raciocínio era: quando sua aplicação cresce muito e “escala sem esperar”, uma hora ela fatalmente não vai suprir a demanda(e “de repente” vai cair). Nesse ponto é preciso analisar alguns pontos e procurar um culpado (lógico! rs). O banco de dados (DBA), infra (sysadmin), entre outros são os primeiros da lista. O desenvolvedor nunca é o culpado (o famoso: “Eeeuu…que isso….eu não erro” rs). Por isso conhecer e saber desenvolver um sistema que possa processar múltiplas tarefas é necessário.

Para isso eles deram como “solução” o uso de dois processadores de tarefas: DJ e BJ.

Para um processamento de imagens pesadas em batch (ou conversão de vídeo), por exemplo, o mais indicado é uso do DJ. Abaixo algumas características:

Vantagens

  • Documentação e tutoriais vastos;
  • Curva de aprendizado baixa.

Detalhes

  • Sinatra-dj;
  • Compatível com rails > 2.2;
  • Usa daemon ou worker.

Desvantagem

Exemplos de código

Uma outra biblioteca útil para trabalhar em conjunto com o DJ é o delayed_paperclip.

Abaixo as informações acerca do outro framework, o BJ:

Vantagens

  • Mais simples e robusto;
  • Instalação fácil;
  • Curva de aprendizado mais baixa que o DJ.

Desvantagens

Um ponto importante que deve ser sempre ressaltado: DJ e BJ não são balas de prata. Uma outra ferramenta citada na apresentação foi o resque, usado em conjunto com o Redis (banco de dados NoSQL), para criação de filas de uso muito mais rápidas e escaláveis. Tem uma interface de administração legal e é uma solução muito valiosa.

As seguintes ferramentas de monitoração para soluções de processamento em batch foram dadas: Monit, God, Munin. E toda essa palestra se baseou em cases de sucesso, como o da própria AutoSeg (empresa onde trabalham ambos os palestrantes) e GitHub. Aliás, o GitHub também usa um servidor chamado Unicorn, que é faz parte das muitas soluções usadas pelo site para manter-se no ar com estabilidade.

Uma outra fonte muito legal sobre o assunto, que encontrei em pesquisas (o autor desse post mesmo…rs), foi um post do Tobin Harris intitulado “6 ways to run background jobs in Ruby“.

Para encerrar, só queria citar o ponto de que ambos os palestrantes estavam muito dispersos, divagaram demais no começo da apresentação. Até chegar na parte técnica mesmo foi “muito pão e poucas explicações claras”. Houve demora pra chegar no “core” da palestra (apesar das boas pitadas de humor). Mas tirando isso tudo certo…rs.

Abaixo confiram o vídeo da palestra (“produções Agaelebe”, by Hugo Borges, que gravou o evento todo e irá disponibilizar os vídeos a medida do possível):

[blip.tv ?posts_id=3716284&dest=-1]

A apresentação no Slideshare:

David Paniz e Leonardo Bessa – Entendendo metaprogramação e por que magia negra não existe (Voodoo é pra jacu)


O objetivo da apresentação, totalmente cercada por exemplos práticos (e a frase de título foi devido aos exemplos usando classes com o nome “Pica-pau”), era conhecer por dentro a metaprogramação e como ela realmente funciona  dentro da linguagem Ruby. Ambos os palestrantes demonstraram o porque não é um bicho de “sete cabeças” mesmo…rs.

Primeiramente, a definição da Wikipedia para metaprogramação é complicada:

“Metaprogramação é a programação de programas que escrevem ou manipulam outros programas (ou a si próprios) assim como seus dados, ou que fazem parte do trabalho em tempo de compilação.”

O correto seria : Metaprogramação é escrever código que escreve/gera código. Assim fica mais claro (!).

Em Ruby é totalmente aceitável aproveitar as open classes, ou seja, a facilidade que a linguagem dá pra mudar o comportamento de objetos em tempo de execução, ao contrário de outras linguagens (Java e C#, por exemplo). Mas, usar e abusar disso não é legal: deve ser feito com responsabilidade e a medida que for necessário usar, sempre com comprometimento e responsabilidade.

Na apresentação as demos mostradas eram exemplos práticos dos mais variados assuntos: eu realmente posso adicionar um método a um objeto? onde o método fica? que tipo de objeto pode definir métodos? Métodos são adicionados em classes ou objetos?

E para complementar o assunto houveram definições de Singleton Class, Metaclass e EigenClass. Apesar de ser um assunto fora do meu conhecimento, consegui “pescar” alguns conceitos. 🙂

Abaixo o vídeo da palestra, gravado pelo Agaelebe:

[blip.tv ?posts_id=3728666&dest=-1]

E a apresentação no Slideshare:

Hugo Baraúna – Keynote: O que há de novo no Rails 3?


Hugo Baraúna, desenvolvedor Ruby/Rails há 3 anos na Plataforma Tecnologia (empresa focada em projetos/coaching em Rails, onde trabalha também José Valim, core Rails), trouxe um overview acerca das novidades do Rails 3, a ser lançado no segundo semestre de 2010. A maioria das informações se encontram no RailsGuides.

Abaixo os pontos, informações e mudanças mais importantes:

Para quem estiver interessado,  a Plataforma mantém um profile no GitHub com alguns projetos relacionados a Rails 3. Abaixo 2 deles:

  • Mail Form: “Send e-mail straight from forms in Rails with I18n, validations, attachments and request information”;
  • Responders: “A set of Rails 3 responders to dry up your application”.

Abaixo o vídeo da palestra, gravado pelo Agaelebe:

[blip.tv ?posts_id=3721460&dest=-1]

E os slides presentes no Slideshare:

Marcelo Castellani – Rhodes, um framework para o desenvolvimento de aplicações nativas para smartphones usando Ruby


Essa para mim era uma das principais palestras do evento, pois já tinha ouvido falar dessa ferramenta (além do Titanium, que é open source também), para construção de aplicativos para dispositivos mobile (leia-se smartphones) multiplataforma.

O mercado mobile é muito promissor e já é uma realidade, fato. Há perspectivas para que no ano que vem existam mais acessos a internet pelo celular do que pelo Desktop (leia uma das fontes da notícia aqui). Portanto, conhecer e dominar técnicas de escrita de aplicativos para o mundo mobile, e não só para Desktop ou Web, é necessário.

Abaixo uma listagem das features do Rhodes, citadas pelo Castellani na apresentação:

  • Faz parte da “família Rhomobile“, composta pelo Rhodes, RhoSync e Rhohub;
  • Suporte a Iphone OS, Android, Blackberry, Symbian e Windows Mobile. Ou seja, praticamente 95% do mercado;
  • As aplicações são nativas mesmo, para cada plataforma. Não há aplicações web rodando por baixo e mascaradas;
  • O Rhodes possibilita a criação de aplicativos de celular com linguagem Ruby, ou seja, existe ganho de produtividade;
  • A API é bem extensa para todos tipos de celulares;
  • Rhodes é open source 🙂 ;
  • Como vantagens podemos citar uns dos lemas do Java 😉 : Write once, Run everywhere;
  • Há abstração de hardware (não há necessidade de saber a arquitetura física do celular);
  • RhoSync é pago 😦
  • RhoHub tem um plano Free e outros pagos 😦
  • Programa interessante para análise: Pivotal Tracker (Traker-r);
  • Instalação: gem install rhodes / rhodes-setup.  “Very easy” 😉
  • Atenção: o interpretador de Ruby do Rhodes é um subset do Ruby 1.9, portanto não há algumas funcionalidades da linguagem;
  • A parte de persistência é feita através do Rhom: é um mini object mapper disponível no Rhodes (como se fosse um Active Record);
  • É possível criar splash screen (tela de carregamento da aplicação), páginas de tratamento de erro, pode-se definir arquivos específicos por plataforma, usar GPS, câmera, etc;
  • Para usar GPS na aplicação é preciso implementar Ajax. A plataforma Blackberry é a única que não suporta Ajax;
  • Existe uma biblioteca para implementação de testes: Mspec;
  • Licença: livre para aplicativos open source; 1000 dólares para aplicativos que forem cobrados.

Castellani tinha uma hora para apresentar e terminou em 45 minutos (!). Ao final muitas perguntas foram feitas e o pessoal realmente achou o assunto interessante!

A apresentação no Slideshare se encontra abaixo:

E o vídeo da palestra no blip.tv:

[blip.tv ?posts_id=3730009&dest=-1]

Anderson Leite – BDD e Cucumber


Antes de iniciar a sua palestra (e após um longo hiato de espera onde o pessoal dispersou…), Anderson Leite informou ao público que a nova reunião do GURU-SP está marcada previamente para o dia 26/06/10. Mas a data pode ser alterada (pois já existem outros eventos oficiais marcados, como o Agile Brazil e o Profissão Java, por exemplo).

A respeito da palestra, a mesma se centrou em 3 pontos: BDD, Cucumber e Cobertura de testes.

A idéia central é que um software deve ter testes, e devem estar de acordo com a visão do cliente, com o comportamento do software e daquilo que pode ser útil/com finalidade. É sabido que cerca de 80% de um software não é usado pelo cliente final.

Para nos auxiliar a fazer aplicações de valor (usando Ruby) a implementação dos conceitos de BDD se torna necessária. Algumas informações adicionais:

  • Livros indicados para leitura: The RSpec Book e Domain Driven Design;
  • Frameworks de teste baseados em BDD necessitam de uma linguagem de domínio;
  • A linguagem de domínio no BDD deve ser baseada na visão dos stakeholders;
  • No BDD faça o suficiente. Sempre entregue de valor real. Tudo é comportamento. Prefira algo “sem papelada”.

O Cucumber é uma ferramenta para a linguagem Ruby, baseada em BDD, que dificulta a perda de informação acerca de um domínio entre cliente, desenvolvedor e testadores. O Anderson fez alguns exemplos práticos, mostrando cenários de teste, mas para não “chover no molhado” nesse post e colocar informação repetida, eu indico algumas referências para o aprendizado:

Para encerrar ele indicou um projeto para cobertura de testes: relevance-rcov.

E lembre-se: escrever código sem testes é uma #putafaltadesacanagem

Abaixo a apresentação no Slideshare:

E o vídeo no blip.tv:

[blip.tv ?posts_id=3737359&dest=-1]

Cassio Marques – Refatorando Ruby – Técnicas de Orientação a Objetos e Design Patterns Aplicados a Linguagens Dinâmicas


Essa foi a última palestra do evento, ufa! Mas não é aquele “ufa!” de “putz, não vai acabar essa joça não…”, pelo contrário: essa não foi aquela palestra que você não vê a hora de terminar para ir embora. Cassio Marques segurou o público até o final com um tema muito bom e de grande interesse do pessoal, inclusive o meu!

Para explicar e pensar no assunto precisamos responder algumas perguntas como: O que é refatorar um código? Porque mexer no código? Se o código está funcionando porque vou mexer??

As motivações, ou melhor, razão para refatoração em código são muitas:

  • Muitas pessoas usam Ruby mas não sabem orientar a objeto (ainda tem dúvidas do paradigma Procedural x OO);
  • Raciocínio estático;
  • Uso de linguagem nova mas usando hábitos antigos;
  • Organização de código;
  • Modularizar o código;
  • Facilitar manutenção e compreensão do código.

E quais as motivações para usar Design Patterns:

  • Ajuda Ruby a ser “Enterprise”;
  • YAGNI” (eu não conhecia esse termo não…rs!).

E não esquecendo de que escrever, ter uma suíte de testes escritos e uma cobertura de testes é necessário pra verificar uma refatoração.

As dicas sobre refatoração foram:

  • Mantenha seus métodos pequenos e facilitando compreensão e coesão;
  • Dê nome aos parâmetros dos métodos;
  • Uma classe não deve realizar trabalhos que não estejam relacionadas a ela! Tenha coesão;
  • Substitua “números mágicos” por constantes;
  • Encapsule variáveis/propriedades de objeto (como getters e setters do Java);
  • Substitua condicionais por polimorfismo;
  • Simplifique expressões condicionais;
  • Padrões que valem ser estudados para Ruby: Command, Strategy, Delegation.

Abaixo a palestra, disponibilizada pelo Cassio Marques. Deixo meus parabéns para o mesmo pela apresentação e responsabilidade de fechar o evento!

O vídeo gravado e disponibilizado no blip.tv pelo Hugo Borges (@agaelebe) está abaixo:

[blip.tv ?posts_id=3737667&dest=-1]

Conclusão

O evento superou minhas expectativas? De certo modo não, de certo modo sim…(momento Cléber Machado…rs). Se eu fosse comparar com o evento do ano passado, na minha concepção, a grade de palestras do ano passado foi melhor. Esse ano o nível de palestras foi bom (nota 7). O diferencial, sem dúvida, foi a interação do pessoal, que fez muito mais networking e estava muito mais ativo em relação ao ano passado, junto com o aumento do número de patrocinadores e estandes de empresa no local.

Na minha concepção:

Pontos negativos

  • Coffee break fraco;
  • Wi-Fi muito lento e instável. Ano passado não houve disponibilidade de sinal, e esse ano foi praticamente se não tivesse também;
  • Tela de projeção muito baixa, dificultando visão do pessoal do fundo da sala;
  • Houve um hiato muito grande entre a palestra do Castellani e do Anderson, fora o sorteio e o problema do datashow. Nesse momento o pessoal dispersou no “fundão” do local…

Pontos positivos

  • Boa localização
  • Fabrício Campos foi sorteado e ganhou uma mochila da Localweb com alguns brindes dentro! 🙂

Para aqueles que queiram ver fotos do evento, vejam os links abaixo:

E quem quiser acompanhar os tweets do evento:

O Ricardo Almeida escreveu um post no site #horaextra, contendo as apresentações e vídeos das palestras.

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.

Nos vemos no Ruby+Rails no mundo real 2011 e viva a comunidade Ruby em Sampa!

Até mais!

Apresentação sobre “Os seis chapéus do pensamento”

No 8º encontro do GURU-SP, no qual estive presente e hei de escrever um report, aprendi acerca do assunto “os seis chapéus do pensamento”, via Rafael Rosa. Fiquei empolgado com o assunto e além de fazer a aquisição do livro (coisa que o Rafael  não indicou, mas fiz mesmo assim…rs) montei uma apresentação para repassar o conteúdo pro pessoal da empresa onde trabalho (Voice Technology). Abaixo coloco o link da apresentação no slideshare:

Caros leitores: qualquer opinião ou dúvida fiquem a vontade para falar!

P.S. : Fiz a apresentação há 3 horas atrás e o pessoal gostou bastante do conteúdo! A idéia de fazer mais lightning talks na empresa, aparentemente, foi bem aceita e com bom público. Só queria deixar o agradecimento, novamente, ao Rafael Rosa pela “luz”!

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!

Dojo com Program-ME e Arduino na Globalcode – 10-12-09

Como diz o ditado: “antes tarde do que nunca” 🙂

Com um pouco de atraso vou divulgar aqui algumas informações a respeito da minha participação no Dojo com Program-ME e Arduino, que aconteceu no dia 10 desse mês (a uma semana exatamente) na Globalcode (Unidade São Paulo). Por lá tive a felicidade de encontrar um companheiro de trabalho (Alex Moraes), que também é interessado em programação, novas tecnologias e participa do grupo de Ruby da Fatec-SP.

A questão é: o que é um dojo (mais precisamente coding dojo) ?

Vou usar como referência um texto retirado da página do Coding Dojo UFSC:

Segundo o http://codingdojo.org/: “Um Coding Dojo é um encontro onde um grupo de programadores se reúne para trabalhar em conjunto em um desafio de programação. Eles estão lá para se divertir, e, através de uma metodologia pragmática, melhorar suas habilidades de programação e de trabalho em grupo.”

O Coding Dojo tem algumas regras básicas:

  • Desenvolvimento guiado por testes: Antes de fazer qualquer implementação, deve ser escrito um teste, que ao passar indica que a implementação está correta.
  • “Passos de bebê”: Se um teste não está passando, você deve escrever o código mais simples possível que faça o teste passar. Quando for escrever um novo teste para o mesmo método, escreva um teste que teste só um pouquinho a mais da funcionalidade desejada.
  • Pair programming: A programação é feita em duplas. Cada dupla tem um piloto e um co-piloto. Ambos pensam em como passar no teste atual, mas só o piloto digita. Cada par tem por volta de 5 a 10 minutos no seu turno. Quando esse tempo acaba:
    • O piloto volta para a platéia
    • O co-piloto assume o lugar do piloto
    • Um novo co-piloto vem da platéia
  • Todos devem entender: O piloto e o co-piloto devem sempre explicar em voz alta o que estão tentando fazer para solucionar o problema. Qualquer um na platéia pode pedir explicações se não entender algum raciocínio.
  • Três fases: Um Coding Dojo sempre está em alguma dessas 3 fases, dependendo do estado dos testes:
    • Vermelha: Pelo menos um teste não está passando. A dupla da vez deve se concentrar em fazer o teste passar. A platéia não deve falar nessa fase, para não atrapalhar piloto e co-piloto.
    • Verde: Os testes acabaram de ser rodados e todos estão passando. Essa é a hora de quem está na platéia dar sugestões para melhorar o código.
    • Cinza: O código foi modificado de acordo com as sugestões, mas a bateria de testes ainda não foi rodada. Deve-se evitar fazer grandes modificações no código nessa fase.

Qual o objetivo desse codingo dojo (Retirado da página de notícias da Globalcode)?


Neste Dojo, os participante deverão implementar uma aplicação que simulará o antigo brinquedo eletrônico conhecido como Genius.A simulação deverá gerar as seqüências de cores usando LEDs para um jogador interagir fisicamente com aplicação através de botões coloridos para repetir a seqüencia aleatória apresentada. O algorítimo deverá então captar essas ações e identificar se a seqüência realizada pelo jogador está correta ou não.

Durante este evento, com a participação especial do Felipe de Almeida Rodrigues (Fratech, ou “cover” do Martin Fowler, rs) e pelo Alberto Spock Lemos (Dr. Spock), que participaram de um DOJO no Linguágil, você aprende aplicar TDD e Pair Programing ao revesar na escrita do código a cada 7 minutos com outros participantes. Portanto, o problema deverá ser resolvido “ao vivo”.

Participando,  voce aprende técnicas ágeis de desenvolvimento, uma linguagem de programação, conhece o Program-ME e o que é computação física.

A minha opiniao do evento

O meu interesse em participar desse minicurso veio da palestra “Robótica Open Source – Vinícius Senger & Paulo Carlos dos Santos”, que aconteceu no OpenTDC 2009, onde finalmente consegui ver ao vivo as coisas acontecendo. Planejo, em futuro próximo, adquirir um kit desses para “brincar”…rs.

Achei legal a experiência e primeiro contato com o Arduino e os meios de programação do mesmo. Os instrutores trouxeram uma nova maneira de “fazer minicursos”: não é só uma pessoa falando durante 3 horas seguidas de um assunto, sem haver interação com o pessoal. São as mesmas 3 horas de interação, diversão, mão-na-massa e descobertas de momento acerca do assunto que foi abordado. Esse foi o ponto principal: todos participaram e fizeram o minicurso! (até eu tive meus 14 minutos, como co-piloto e piloto 🙂 )

Abaixo coloco algumas fotos tiradas por mim no evento (em algumas está Alex Moraes, no seu momento “co-piloto”):

Ao final do minicurso, Felipe e Dr. Spock disseram ao público que há a intenção de serem feitos mais dojos na Globalcode, de Arduino (é claro) e de outros assuntos. Portanto aguardem mais informações.

O Dr. Spock (que também escreve em seu blog sobre Arduino) já publicou dois artigos sobre esse dojo, inclusive com o código final gerado pelo pessoal do minicurso, alcançando o objetivo do projeto. Para conferir, acesse:

Bom, por enquanto é só e agradeço desde já aqueles que deram uma passada no meu blog e fizeram a leitura.

Até a próxima e aguardem as novidades!!