14 de abril de 2014

Terceiro e ultimo dia de QConSP 2014

Este post demorou um pouco para sair porque no ultimo dia do QCon meu notebook ficou sem bateria e o hotel não tinha nenhuma tomada no padrão novo, pode isso? Até tentei escrever o texto no aplicativo do Blogger no celular, mas acabei desistindo depois de perder o texto duas vezes. O dia logo após o término do QCon foi consumido pela viagem de volta para casa e uma confraternização; o dia subsequente foi consumido por um passeio turístico em outra cidade. Mas, finalmente estou em casa e, mesmo cansado, escrevo este post para nossa alegria.

O terceiro e ultimo dia do QConSP 2014 começou com a apresentação Introduction to Hadoop. Achei bem estranho uma keynote com "Introduction" no título. Acredito que ficou como keynote apenas por causa do palestrante: Todd Lipcon, um membro-fundador do Hadoop. Achei uma apresentação bem introdutória e não motivadora, logo não mereceria destaque como uma keynote. Na mesma lógica, não terá destaque neste post, até porque não tem muito o que falar mesmo. A parte memorável foi ver ele tentando fazer um notebook com Ubuntu e uma espécie de Fluxbox funcionar para projetar a apresentação. Deu dó. Depois de uns cinco minutos se batendo com a resolução, ele abriu uma máquina virtual com Windows XP para abrir a apresentação PPTX dele. Ha-ha. Mas daí a resolução não encaixou e ele se rendeu à utilizar um Macbook de um organizador.

Design-Driven Development & Context-Driven Experience

A segunda keynote do dia foi de um designer que trabalha na Prezi. Mostrou um pouco de história e do processo de desenvolvimento interno: iterativo e incremental. Parece que todo mundo reforça o modelo "fail fast, iterate".

Trouxe a tona um fato interessante: muita gente no evento estava usando Pebble Smartwatch e que as próximas tecnologias dominantes serão "vestíveis". Curiosamente isto combinou com um artigo que li no mesmo dia afirmando que o fundador do Evernote disse que "Apps Will Soon Be Obsolete".

O apresentador falou que é necessário pensar em três coisas a respeito da experiência do usuário para atender multi-dispositivos:

  1. Consistente: A experiência deve ser consistente com o dispositivo sendo utilizado. Cada dispositivo terá uma maneira diferente de apresentar e de interagir com o usuário.
  2. Contínua: A experiência deve ser contínua entre os dispositivos. Ele não deve ter que pensar toda vez que for mudar de dispositivo, e.g. ao começar a ler um livro no smartphone, ao pegar o tablet, o livro deve abrir na mesma página.
  3. Complementar: A experiência de um dispositivo pode complementar a de outro. A experiência pode iniciar em um dispositivo, continuar em outro e terminar em um terceiro. Um complementando o outro, e.g. comprar um ticket pelo notebook e utilizar o smartphone como carteira virtual.

Track talks

Java 8 na prática, do Lambda às novas APIs: Mostrou novas APIs do Java 8 para tratamento de datas e como ficou a sintaxe das expressões lambdas. Achei a sintaxe e as APIs apresentadas bem agradáveis. Apesar de serem mudanças bem suaves, mostram que a linguagem está evoluindo.

Monadic Java: Functional Programming Patterns Applied: Detectou três monads na nova API do Java 8 e tentou explicar de forma simples o que é um monad. Achei a apresentação válida, mas a explicação de monad foi fraca, não sei se o apresentador conseguiu atingir o objetivo. Eu achei tranquilo porque já passei por algumas tentativas de implementar monads no Java, já presenciei os problemas relacionados ao sistema de tipos do Java em relação à isto, então a apresentação dele me pareceu bem entendível e palatável. De qualquer forma, a melhor explicação que eu vi sobre monads até hoje está no YouTube no vídeo Brian Beckman: Don't fear the Monad.

Falling in Love with APIs without divorcing legacy software: Apresentação falou do uso do Mulesoft para expor APIs de código legado. Foi uma apresentação agradável e bem animadora. O produto deles parece estar muito bom.

Multithreading e Java EE: pouca mudança no código e muita nos resultados: Mostrou a utilização da anotação @Asynchronous em JavaEE. JavaEE é uma coisa estranha: é um padrão despadronizado. Cada servidor faz de um jeito. Durante a apresentação ocorreram duas exceções completamente alienígenas, mas que o apresentador já conhecia, então ele resolveu rápido. Não gosto muito de coisas que acontecem de forma demasiadamente mágica, que dependem do contexto em questão.

Arquiteturas na nuvem com os custos sob controle: processando bilhões de páginas na AWS sem estourar o cartão: Contou como eles fazem para utilizar a infraestrutura da AWS sem gastar muito. Desenvolveram um sistema interno para otimizar a compra de máquinas por leilão (spot instances). Achei muito interessante. Comentaram que pretender abrir como open source, então fiquem ligados nas noticias da TailTarget.

FIM. Pois é, acabou. Assim, sem mais e nem menos. Quando saí da apresentação anterior, os patrocinadores já estavam se recolhendo e os nerds estavam indo embora. Ano passado teve um keynote no final que permitiu que a organização fizesse um breve discurso de encerramento. Este ano não teve isto, achei bem estranho e meio "tosco", podiam pelo menos ter dito "até mais, e obrigado pelos peixes", ou qualquer frase curta para deixar o pessoal brevemente empolgado e falando bem do evento.

Gostou dos posts que fiz sobre o QCon? Então adiciona meu blog nos teus feeds. Nem falei de Haskell nesse post, o que mostra que também posso ser um cara legal! Afinal, eu podia estar falando de Haskell, mas tô aqui pedindo sua assinatura... :)