chester's blog

technology, travel, comics, books, math, web, software and random thoughts

Numbers Rule Your World

29 Nov 2010

Numbers Rule Your WorldSeria um exagero dizer que todo mundo curte um bom livro sobre matemática. Mas não dá para ignorar a popularidade dos que tentam jogar fora a interpretação natural dos números em favor de uma nova ordem que possa emergir do caos aparente. Exemplos incluem o Freakonomics, com a sua investigação baseada em números; o Outliers, que olha para as pessoas e coisas que se destacam; o Free; o The Long Tail e toda uma série de livros cujo tema é a “matemática fora da caixa”.

Numbers Rule Your World vai na contramão disso. Ele é sobre a matemática que funciona. Cada um dos seus cinco capítulos aborda um aspecto da estatística que funciona muito bem, obrigado. E cada um desses tópicos é introduzido por um par de aspectos da vida real, que mostram o mesmo fator trabalhando em direções opostas, às vezes com resultados diferentes também – mas isso quando o aspecto socio-psicológico entra em jogo, introduzindo o erro e a superstição.

Ao comparar o problema das filas da Disney com os congestionamentos em estradas de alta velocidade, por exemplo, ele observa o contraste entre a solução ótima (controlar a variância do público nas atrações/entradas) e a crença popular de que mais capacidade ou uma espera média menor reduziriam o problema. Ele aproveita para desmistificar o “homem médio” (um conceito surpreendentemente aceito, dado que não é tão antigo quanto parece) e também para mostrar que a consideração do fator humano é o que torna o trabalho dos engenheiros da Disney mais aceito que o dos seus colegas do departamento de trânsito.

Outro caso curioso é o das possibilidades remotas: morrer na queda de um avião é tão improvável quanto ganhar na loteria, mas as pessoas continuam evitando viajar de avião e compram bilhetes em vão. Mas há um fato estatístico mais interessante: a investigação de padrões improváveis permitiu mostrar que não há companhia mais (ou menos) segura que outra para voar, além de possibilitar a detecção de fraudes lotéricas em resultados aparentemente aleatórios.

A assimetria de recompensas e punições é outro tema onde o social conflita com o matemático. Isso é visto no capítulo que compara testes anti-dopping e polígrafos para uso policial/militar. Vale lembrar que o inventor de um dos testes que levaram ao polígrafo também é o criador da Mulher-Maravilha e seu Laço da Verdade.

Os exemplos se desdobram, e sob este aspecto, o livro é fantástico. O que me incomodou um pouco foi o tom professoral: não apenas ele repete e repete e repete os mesmos conceitos em diferentes formas, mas ainda faz um apanhado geral no final. E também abusa do recurso de te convencer de um ponto de vista controverso (ex.: que uma pessoa é culpada de um crime), para depois mostrar o oposto através dos fatos. Na primeira vez isso é divertido, na quarta começa a ficar cansativo. Talvez seja o fato de ele estar pregando para um convertido, mas o fato é que daria para comunicar mais com menos.

Nas Redes do Sexo – Os bastidores do pornô brasileiro

21 Nov 2010

Nas Redes do Sexo foi mais um daqueles livros “fora da caixa” inseridos entre uma e outra leitura mais próxima do meu cotidiano – uma tática de expansão de horizontes que raramente me decepciona.

Baseado na pesquisa de campo da colombiana María Elvira Díaz-Benítez (doutora em antropologia social pela UFRJ), é uma análise interessante e minuciosa dos personagens (atores, produtores, recrutadores, técnicos, etc.) que formam a “rede” responsável pela produção de filmes pornográficos no Brasil, com foco particular na última década e na cidade de São Paulo – que, ao que tudo indica, é a Hollywood tupiniquim do gênero.

É um estudo bastante sério, livre de qualquer conteúdo erótico ou similar – se você procura pornografia, não é nele que vai encontrar. Mas abre espaço para alguma experimentação, cujo exemplo mais óbvio é a divisão da análise em capítulos que remetem à retratação cinematográfica do ato sexual em si: Preliminares foca no processo de recrutamento e pré-filmagem; Transa descreve os pormenores da captação e as polêmicas relacionadas (ex.: uso de camisinha), Consumação continua esse processo até a pós-produção/venda e Elenco faz um balanço sobre a vida e as perspectivas de atores e atrizes, dentro e fora do set.

O livro não perde de vista o olhar antropológico, o que pode tornar alguns trechos mais densos e menos interessantes para quem não tem inclinação para as ciências humanas. Não é o meu caso – mas se fosse, eu ainda recomendaria o livro, nem que fosse só pelas curiosidades e pelos bastidores desse suposto universo paralelo que, no fundo, é uma organização social como outra qualquer. É uma leitura sóbria, desprovida do erotismo que o título ou a capa podem sugerir – a menos, claro, do “voyeurismo intelectual” que qualquer texto com viés biográfico pode motivar…

Coding Dojo no Apontador

14 Nov 2010

O Encontro Ágil 2010 (que merecia seu próprio post) se destacou pelo face-to-face: os open spaces e interações entre participantes foram tão produtivos que a tradicional carência de conectividade sem fio da USP trabalhou a favor. E foi justamente uma dessas interações, o Coding Dojo (saiba o que é um) organizado pelo Bruno Gola (com o forte apoio do Asa) que me inspirou a organizar uma sessão equivalente no Apontador. Segue uma visão geral da experiência:

Preparação

Devido à heterogeneidade do público potencial (e também para levar o ambiente já preparado), era razoável escolher a linguagem com antecedência. Usamos Python por tres motivos: é fácil de aprender na hora para quem nunca viu, o código fica compacto e legível, e a expoisção a uma linguagem nova é um bônus extra (de fato, um dos pontos positivos mais enfatizados na retrospectiva).

A estação de trabalho era o meu Mac do trabalho mesmo, então usei o TextWrangler, um editor básico com sintaxe colorida e que permite alternar facilmente entre o programa e o teste. Deixamos o editor ocupando 2/3 da tela, e o restante dividido entre o console (posicionado estrategicamente para garantir a visibilidade do OK ou FAILED do teste) e o cronômetro – ter as duas coisas na tela dá mais segurança e tranquilidade à dupla.

Uma reprodução do jeitão da tela durante o Dojo no Apontador (clique para ampliar)

Eu queria um cronômetro offline – apesar da internet do Apontador ser boa, é sempre bom reduzir riscos. Adorei o Coding Dojo Screenlet, escrito pelo próprio Gola, cuja cor de fundo (vermelho/verde) reflete o status do teste, ajudando a audiência saber quando (não) é apropriado se manifestar, mas ele só existe para Linux. A solução foi o timer do Hora Agora (criado pela Bani), que, aliado à interface minimalista do Chrome, resolveu super bem: o alarme ininterrupto garantia que o piloto, ao sentar no teclado, não esquecesse de reiniciar o timer (usando o parâmetro “?t=05:00″, era só dar reload na página).

Num dojo (e em TDD no geral) é uma boa idéia que, quando viável, o teste seja executado automaticamente sempre que você salva o arquivo. Conseguimos isso graças ao uso de nose + tdaemon (que ainda dá o resultado em popups do Growl), mas tem outras alternativas por aí como o autotest e o watchr. Outra idéia é rodar todo o ambiente do Dojo online, usando o CyberDojo. Opções não faltam: escolha conforme a linguagem, ambiente e gosto – o importante é deixar tudo preparado antes de começar!

No Dia

Após uma rápida introdução ao conceito de dojo e às “regras do jogo” (a Karen recomenda esses dois resumos), compilamos no quadro uma lista ordenada dos participantes – o que evita confusão na hora de trocar a dupla. A lista foi pela ordem em que as pessoas se voluntariaram, mas acho válida também a sugestão do Gola de alternar entre pessoas mais e menos familiarizadas com a tecnologia.

Dojo era novidade para quase todos os presentes, então pareceu razoável começar com um problema introdutório (RandoriKata), e fizemos o RomanNumbers (não por acaso, o mesmo que foi feito no Encontro Ágil). Foi interessante ver como a dinâmica e a técnica de solução de um mesmo problema variam em dojos diferentes.

Conclusão

A retrospectiva foi parte importante da experiência – ajudou a medir o que aprendemos juntos, onde acertamos e onde poderíamos melhorar. E me chamou a atenção ver que, mesmo não sendo o objetivo principal do dojo resolver o problema em si, o pessoal não quis ir pra casa sem ver todos os testes funcionarem. Não tenho dúvidas sobre o impacto positivo que isso terá no dia-a-dia de cada um.

Organizar um dojo não é coisa de outro mundo (gastei mais tempo escrevendo esse post do que preparando) – só é preciso realmente ter um espaço com projetor, comida e interessados. Recomendo reservar entre 1h30 e 2h para a brincadeira, e levar o ambiente pronto, deixando o encontro focado em programar e interagir.

Abrace a simplicidade e ajude as pessoas a seguirem as regras, mas sem pressão. Não perca de vista o aspecto lúdico e não-competitivo do evento, e o resto sai por conta. O pessoal se animou a compartilhar o código e marcar os próximos logo de cara. E o Apontador está considerando promover **dojos abertos para visitantes – interessados, manifestem-se! **

Chester, por Ila Fox

07 Nov 2010

Já tem um tempo que eu queria voltar a ter uma ilustração para dar uma carinha mais simpática ao blog. Eu usava uma caricatura do Serginho (que ilustrava alguns artigos que escrevi para o Último Segundo) que é fantástica, mas retrata um Chester de dez anos, onze quilos e incontáveis cabelos atrás.

A Ila Fox publica todo dia uma ilustração nova no blog dela, e eu sempre curti o estilo. Resolvi então encomendar com ela o mini-Chester que vocês vêem aí embaixo. Curti tanto o resultado que estou usando um corte como avatar no Twitter e em outras redes.

O Chesterzinho é uma ilustração da Ila Fox

Curtiu? Vai lá na lojinha da Ila e encomende a sua também. Ela é muito atenciosa, eficiente e, acima de tudo, profissional – nem ligou de desenhar o Apple II, mesmo sendo MSXzeira de raiz :-) (essa antítese é meio que o Corinthians x Palmeiras da era 8 bits…)

Google Developer Day 2010

01 Nov 2010

GDD2010-logoA maratona de eventos do mês foi concluída com a edição deste ano do Google Developer Day em São Paulo. É um evento bastante concorrido (afinal, é gratuito, bom e ligado ao Google), o que deve tornar a escolha dos participantes um desafio interessante – mesmo para aqueles cuja missão já é meio que organizar/classificar o universo…

Esse ano o processo de inscrição incluiu uma provinha que gerou bastante “mimimi” nas listas e redes sociais: uns questionaram a eficácia de um teste tão básico (e para esses recomendo ler sobre FizzBuzz e programadores que não programam), outros se sentiram injustiçados com a eventual não-convocação. O fato e que ela ajudou: qualquer pessoa que você encontrasse lá esse ano era, em maior ou menor grau, apaixonada por código. Não era bem assim em anos anteriores, e isso fez diferença no café/happy hour. Sabem como é: developers, developers, developers!

A organização também melhorou em todos os aspectos: da alimentação (que já era boa) aos os brindes (incluindo uma camiseta bem bacana) e internet, tudo pareceu funcionar melhor. Tinha mais gente que nos outros anos, e o pessoal xingou muito no twitter esse aspecto. Pessoalmente, achei que acomodaram bem – e que o GDD escala.

O conteúdo era, como se esperava, um grande showcase de tecnologias Google. Como recém-convertido a Android (e vindo do ADL Bootcamp), fiquei empolgado com a ênfase dada à plataforma – que não sucumbiu à miopia das operadoras, como eu temia no meu primeiro contato, em 2007. De qualquer forma, com três palestras simultâneas divididas em quatro trilhas (Android, Cloud, APIs e Chrome/HTML5), era difícil achar um horário em que nada interessasse (só deixei de ver dois blocos, para fins de socialização e uma merecida soneca nos pufes).

As palestras eram mais abrangentes que profundas (ao menos as que eu vi) – o que, para autodidatas, é um fantástico “mapa da mina” sobre o que explorar no universo de tecnologias que o Google disponibiliza. Em particular gostei de ver novamente o p@ falando sobre AppEngine e outros tópicos, e o Ryan Boyd destrinchando OAuth e OpenID. O que deu menos certo, a meu ver, foi a participação de empresas que usam as APIs do Google: a intenção de levar “gente que faz” para mostrar seus cases foi boa, mas rolou desde constrangimento de ex-funcionário até palestra tomada pelo “jabá”.

Mas essas coisas acontecem, e nem de longe tiram o brilho do evento. Pelo contrário, esse mesmo espírito de abertura conduziu ao fechamento do evento com apresentação dos GTUGs (Google Technology User Groups) do Brasil (onde o Paulo Fernandes do SP-GTUG sorteou vários brindes) e ao happy hour, no qual Googlers e civis papearam bastante. Em resumo, o casamento entre tecnologia e fator humano tornou o evento um sucesso, que espero ver novamente em 2011.

RubyConf Brasil 2010

31 Oct 2010

Logo RubyConf 2010Um complemento bacana a participar da PythonBrasil foi estar na RubyConf Brasil 2010. O evento sucede os Rails Summit, e na mesma tradição desses tem a LocaWeb como organizador, mas com empresas como a Gonow (onde o Akita, pioneiro do Rails no Brasil, trabalha atualmente) e a Caelum (que vem expandindo sua posição já consolidada no mundo Java para os novos fronts do desenvolvimento) aparecendo em destaque.

Apesar da internet ter deixado a desejar (em particular no primeiro dia), o evento contou com estrutura ótima: comeu-se bem (não teve almoço, mas estávamos sobre um shopping center), o espaço foi suficiente (não tão grande quanto o dos anteriores, segundo os veteranos, mas coube todo mundo) e o local era de facílimo acesso.

As palestras focaram muito em aplicação das tecnologias que se consolidaram no mundo do Ruby nos últimos tempos. Eu, que andava um pouco afastado da tecnologia, curti muito a abordagem. Houve um espaço para “desconferências”, que funcionaram bem, mas eram um pouco formais demais, talvez desestimulando quem tivesse um recado mais curto para passar.

Como sempre, o lado social é importante. Houve um happy hour no Bar Opção (no qual fiquei pouco tempo, o cansaço dos eventos anteriores já se acumulava) e a impressão que ficou ao conversar com as pessoas é que as empresas estão ficando mais receptivas ao uso de linguagens dinâmicas – possivelmente um movimento em sintonia com a crescente adoção de práticas ágeis na gestão do desenvolvimento de software.

Toda essa vibração em torno de Ruby on Rails me faz ver que é questão de tempo até que apareçam as primeiras aplicações Ruby on Rails usando a Apontador API. Ela ainda não dispõe de biblioteca oficial para esse ambiente, mas com módulos como RestClient e oauth-plugin, creio que os rubistas não terão grandes dificuldades (e se estiverem, estamos lá para ajudar).

Android Developer Lab Bootcamp

31 Oct 2010

Karen e Lucas ganhando o Lego MindstormsQuase como um “esquenta” para o GDD, o Google marcou na véspera (e no mesmo local) o Android Developer Lab Bootcamp, cuja proposta foi ocupar metade do dia com um “bootstrap” da tecnologia, no qual desenvolvedores participaram de:

  • Uma apresentação rápida sobre Android (na qual ganhei um bonequinho de vinil respondendo a uma pergunta);
  • Uma demonstração na qual cada participante reproduziu¹ em seu micro o passo-a-passo da construção de um aplicativo;
  • Um desafio: adicionar um feature ao aplicativo em um intervalo de tempo reduzido. Os poucos que conseguiram ganharam camisetas, e participaram do sorteio de um Lego Mindstorms.

¹ O método utilizado foi uma aplicativo template, no qual o código dos features era “des-comentado” a cada passo (procure por “Step 0″). Parece bobo, mas na prática essa técnica alia o hands-on com a agilidade de algo pronto – gostei.

Uma pequena confusão foi causada pelo fato de o site do evento pedir para baixar as ferramentas, mas não para instalar as mesmas previamente. Algumas pessoas mal conseguiram concluir a configuração do ambiente, outras tantas perderam momentos preciosos da apresentação nesse processo de configuração. Mas no final deu tudo certo, e eu, recém-convertido ao Android, já estou com idéias envolvendo a migração de antigos projetos J2ME para a nova plataforma…

Bonequinho do Android que eu ganheiDesagradável mesmo foi o gaiato que se aproveitou do surgimento do FireSheep (que permite a pessoas sem conhecimento técnico capturar cookies de autenticação de sites como o Twitter) e da ausência de criptografia da rede Wi-Fi do evento (não que só isso seja garantia de segurança total, mas a falta dela viabiliza a coisa). Eu normalmente sou paranóico quando estou em redes públicas, mas acreditava que num evento desses o pessoal estaria mais focado em programar do que em brincar de “ráquer”. De qualquer forma, o Sheepsafe parece uma alternativa bacana para heavy users de redes públicas minimizarem esse tipo de inconveniente.

Finalmente, vale mencionar que quem ganhou o prêmio foi uma dupla, composta pelos meus amigos na foto: Lucas Uyezu e Karen Zamlutti – esta última também colega de IME/USP e integrante do time do Apontador. Detalhe: eles mal se conheciam, e trabalharam em par por iniciativa e inclinação natural a metodologias ágeis. Fica a lição.

Participando (e palestrando) na PythonBrasil[6]

26 Oct 2010

Estive na PythonBrasil[6], isto é, no “6º Encontro Brasileiro da Comunidade Python”, que rolou em Curitiba entre 21 e 23 de Outubro. Por conta da aula na UNESP, só pude chegar na sexta (22), mas ainda assim deu pra aproveitar bastante.

Alguém tuitou que este foi um encontro orientado a pessoas, e é verdade: todos lá estavam muito acessíveis – sem deixar de lado o perfeccionismo e profundidade no conteúdo, os palestrantes estabeleceram um diálogo muito positvo com todos os presentes, dentro e fora das palestras.

Uma das marcas da comunidade Python é receber bem todos os interessados, e este aspecto foi contemplado pela ilustre presença do Fabio Akita (@AkitaOnRails), que, à exemplo do que fez no QCon, mostrou onde a comunidade Ruby/Rails acertou e errou ao longo dos anos, deixando lições inestimáveis para os pythonistas que souberam enxergar além das diferenças.

Outro destaque foi o Pedro Valente (@pedrovalente), o elo perdido entre o jornalismo e o desenvolvimento de software. Ele agitou o #freecep nos open spaces e apresentou a versão python-ativada da sua consagrada exposição sobre extração de dados públicos “na marra” – que deixava uma dica para que eu fizesse (mais) uma lightning talk sobre o Cruzalinhas.

Eu achava que o assunto já tinha sido abordado o suficiente (falei dele no FISL 11 e no QCon), mas dado que a palestra original do Pedro Valente foi justamente o que me inspirou a criar o site, achei que não faria mal em complementar a apresentação dele (mesmo sem ter ensaiado ou feito slides próprios para a ocasião). Mas ver o pessoal abraçando à idéia de que serviços públicos implicam em dados públicos já valeu: o @botobr está tentando reproduzir o lance em Curitiba, o @jbochi abriu o fonte do Tô a Pé, entre outros.

De qualquer forma, eu estava no evento como palestrante: fui falar da Apontador API, a iniciativa do Apontador em abrir suas APIs (um assunto que merece seu próprio post, a seu tempo). Fiquei muito satisfeito com a resposta do público: não foram passivos, fazendo perguntas contundentes (acerca da qualidade, da relevância e do posicionamento do produto diante de alternativas) e dando sugestões muito coerentes (que já dispararam ações lá dentro). Audiência qualificada é tudo!

Os slides estão disponíveis no SlideShare (e abaixo), e incluem incluem exemplos básicos de uso da biblioteca Python (cujo código-fonte é livre e também pode ser obtido no github). Ficam os meus agradecimentos à organização pela oportunidade, ao público pela receptividade e a todos os participantes por um excelente evento!

Aula sobre Mashups Web na UNESP (SECCOMP 2010)

24 Oct 2010

Um prédio do Campus (fonte: site UNESP)A organização da XVIII Semana da Ciência da Computação (SECCOMP 2010) me convidou, por intermédio do Eduardo Maçan (o Kevin Bacon do software livre: todo mundo no meio o conhece), a ministrar uma aula (mini-curso) sobre mashups web para os alunos de Ciências da Computação no último dia 21.

Por se tratar de um tema pouco convencional, optei por uma abordagem mais descontraída: as origens musicais do tema foram ilustradas com um videoclip de música do Girl Talk e os exemplos iam de sites comerciais como o BuscaPé e o surreal Mobzombies.

Este panorama foi complementado por um passeio através de diversas tecnologias relevantes para quem quer integrar e misturar as fontes de dados e APIs existentes na web. A apresentação desta parte teórica (com links úteis no final, incluindo o ensaio que foi a base principal da aula) está disponível no SlideShare.

A prática foi feita em duas partes: um exercício usando o excelente Yahoo! Pipes para mesclar diferentes fontes de informação; e uma brincadeira simples, mas completa, na qual os alunos usaram a Apontador API para encontrar bares próximos à universidade e apresentá-los em uma página usando a API do Google Maps.

Foi uma experiência gratificante, na qual espero ter ajudado a mostrar para o pessoal que está chegando agora a importância da programação baseada no ecossistema Web 2.0, deixando um “hello world” sobre o qual eles possam criar coisas interessantes.

Exposição Sanrio 50 Anos: Hello Kitty, reloaded.

08 Oct 2010

Unha com desenho da Hello KittyEntrar em uma loja da Sanrio, a empresa por trás da Hello Kitty, é uma experiência interessante por si só (e fica a dica: é um lugar infalível para presentes femininos de última hora). Mas uma exposição de arte cuja temática são os personagens do “universo HK”, em releituras de artistas tão variados quanto Allan Sieber, Guto Lacaz (quem lembra dele na Chiclete com Banana?) e Lovefoxxx é imperdível, e fui com a @bani conferir.

A cantora do CSS não foi a única do meio musical: Lucas Silveira, vocalista do Fresno, fez um dos quadros mais simpáticos. Mas minha peça favorita foi a do grupo Laborg: nela, um bloco com pequenas esculturas monocromáticas recebe uma projeção multicolorida e milimetricamente ajustada. Com isso a personagem muda de roupa e de cara o tempo todo, a TV começa a passar telejornais nacionais, enfim, mil coisas que rolam ao mesmo tempo. Eu, que costumo torcer o nariz para “arte multimídia”, fiquei de queixo caído.

Mas o ponto épico de surrealismo japonês foi a pintura de unhas computadorizada. Essencialmente, você escolhe entre algumas dezenas de figuras, e as moças simpáticas pintam sua unha, prendem seu dedo na impressora e BAM: você tem seus personagens favoritos literalmente à mão. A brincadeira é mais dirigida a meninas, acho, mas era bizarro demais para não experimentar (e o passeio não seria completo sem isso). O resultado foi uma Hello Kitty no indicador, que vai ser infernal de explicar lá na Vila Ema…

Se você não está muito por dentro desse universo, não se preocupe: a exposição abre com uma introdução sobre cada um dos personagens. Nela você vai saber que a altura da Hello Kitty corresponde a cinco maçãs (se são maçãs estilo Turma da Mônica ou Fuji eu já não sei) e o peso equivale a três; que a Kuromi não se bica com a My Melody; e se for observador como a Bani vai notar a quase ausência do Tuxedo Sam – seria o “distúrbio alimentar” dele pegando mal?

No final da exposição você ainda ganha um imã de geladeira, e se quiser fechar a noite com chave de gato, pode esticar até a Bendita Hora Pizza & Arte (Moema), que está oferecendo uma Pizza Hello Kitty. A gente ficou pelo shopping mesmo, mas se for como aparecia em um dos monitores, eu quero experimentar!

Enfim, é uma exposição divertida e com entrada franca, vale a passada para quem está em SP. Está no Shopping Iguatemi (8o. 9º. andar), e abre das 12h às 21h durante a semana, das 10h às 22h no sábado e das 14h às 20h no domingo. Mas ela só vai até o dia 14 desse mês, então agilize!

E pra fechar: as peças expostas estão sendo leiloadas pela internet. Topa levar uma pra casa?

UPDATE: Eu e a Bani fomos contemplados com duas pizzas Hello Kitty (que estavam excelentes, parabéns ao pessoal da Bendita Hora). A falta de flash atrapalhou, mas tiramos duas fotos.