chester's blog

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

Scroogenomics: A Economia dos Presentes

24 Dec 2010 | Comments

Um livro cujo título junta Economics (economia) e Scrooge (personagem avarento do conto de Dickens, que também foi homenageado por Carl Barks ao nomear o Tio PatinhasUncle Scrooge no original), pode parecer mal-intencionado. Mas não é: o objetivo de Scroogenomics é mostrar que a compra desenfreada de presentes no natal não é exatamente a oitava maravilha para a economia nacional ou global – ao contrário do que o senso comum (compras ⇒ aquecimento econômico) possa sugerir.

A idéia central é que quando eu pago, digamos, R$ 50 por uma mercadoria, é porque considero que aquilo vale (em termos de satisfação, utilidade ou qualquer critério de valor) pelo menos aqueles R$ 50. Se eu toparia pagar, digamos, R$ 70 por essa mercadoria (caso não a achasse por R$ 50), criou-se valor nesta compra. Em contrapartida: se você gastou R$ 50 para me dar um presente, mas é algo pelo que eu não pagaria mais de R$ 40, o seu ato de boa-vontade destruiu R$ 10 de riqueza dentro da nossa economia.

Parece bobeira, mas somando toda a perda de valor, o número ultrapassa os US$ 60 bilhões – só nos EUA! Com bom humor e sem exigir conhecimento de econometria ou outros assuntos técnicos, o autor mostra como quantificou e qualificou estes números, e pincela algumas soluções – sem querer fazer spoiler, ele pondera até as limitações de presentes em dinheiro (que seriam ideais em uma visão de economia na qual todos os agentes econômicos fossem racionais), defende os gift cards (conhecidos aqui como “vale-presente”) como um bom meio-termo, e apresenta razões suficientes para levar em conta as versões filantrópicas destes cartões, isto é, os que a pessoa usa não para reverter em compras para si, mas sim para “gastar” em caridade dentre uma gama de instituições e causas.

Um exemplo desse tipo de presente são os gift cards do Kiva. O Kiva é um site de microcrédito (que já mencionei antes), através do qual pessoas físicas podem fazer empréstimos de baixo valor – empréstimos estes que fomentam atividades econômicas em comunidades de baixa renda ao redor do globo. O gift card deles permite que você dê ao seu amigo ou familiar a oportunidade de, como diz o lema do site, mudar vidas. O livro mostra que esse tipo de presente não apenas destrói pouco ou nenhum valor entre quem dá e quem recebe, mas que, no somatório da economia, constrói valor como poucas outras coisas conseguiriam.

Mesmo que você não considere esse tipo de iniciativa, ainda é interessante aprender com este economista para onde vai o dinheiro (e, mais importante, o valor) toda vez que dá ou recebe um presente, e, no mínimo, conseguir mais satisfação do presenteado por real gasto.

(Interessado? Compre o meu na lojinha!)

Chester em San Francisco

20 Dec 2010 | Comments

Chester nos arredores da Golden GateNa minha cabeça, Califórnia é aquele lance descrito pelo Joel Spolsky: todo mundo plugado, surfe, e o verão do amor. A realidade, contudo, é outra: o WiFi nas ruas é escasso (e é difícil conseguir um chip pré-pago com dados), a chuva lembra a garoa paulistana, e me imaginar num calção de banho iniciava uma crise psicológica de hipotermia. Mas os amigos que nos acolheram tambem ofereceram Wi-Fi, dicas e companhia, viabilizando um passeio por San Francisco (e arredores) em apenas quatro dias – com direito a uma aula do Knuth em pessoa!

Numbers Rule Your World

29 Nov 2010 | Comments

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 | Comments

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 | Comments

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 | Comments

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 | Comments

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 | Comments

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 | Comments

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 | Comments

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!