chester's blog

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

QCon São Paulo 2010

12 Sep 2010 | Comments

QCon SP 2010O InfoQ é referência em notícias e informações sobre desenvolvimento de software corporativo, cuja versão nacional abriu caminho para viabilizar a primeira edição do QCon (evento popular promovido pelo site) na América Latina. Estou falando do QCon São Paulo 2010, organizado pela Caelum neste final-de-semana, ao qual tive a oportunidade de comparecer.

Pode parecer loucura gastar uma boa grana para passar o sábado e o domingo em um evento desse gênero, mas afirmo que vale a pena. A oportunidade de ver o Douglas Crockford (autoridade em JavaScript cujo livro merece seu próprio post) já valeria o esforço, mas não ficou só nisso: os keynotes e palestras no geral foram bons, o coffee break estava ótimo, enfim, tudo nos conformes. Apenas o WiFi deixou a desejar, limitando a possibilidade de falar sobre ele no Twitter.

A organização introduziu as palestras-relâmpago, que já estão se tornando tradicionais em eventos do gênero. Mas resolveram ir além, adotando um formato semelhante ao Ignite – as apresentações de 5 minutos têm que ter exatamente 15 slides, que avançam automaticamente a cada 20 segundos. Pode parecer um detalhe, mas isso torna a preparação das palestras um pouco mais complexa.

Apanhei para adaptar a palestra sobre o cruzalinhas (que eu já tinha apresentado no FISL 11 e no TDC 2010) a esse esquema, mas o resultado não desagradou. A Bani também teve que sambar para adaptar a aula/palestra/BoF dela sobre Licenças de Software Livre, mas sintetizou muito conteúdo (PDF) em 5 minutos. Detalhe: ela queria um relógio para contar o tempo, mas a falta de internet não deixava usar nenhuma das alternativas disponíveis. Aí a gente hackeou um “reloginho” em JavaScript minutos antes de começarem os lightning talks – olhando em retrospectiva, eu devia era ter falado disso nos meus 5 minutos. :-P

No final deu tudo certo, e o evento foi fantástico. Os brindes foram um show à parte: camiseta e bonequinho do evento, ioiô do PagSeguro, caneta bacanuda da Oracle, cupcake da Cupcakeria, estojo de post-its e bloquinho da Globo.Com e M&Ms da IBM. Dessa última a Bani ainda ganhou um iPod Touch (é, a gente atrai eles :-) ) escrevendo uma frase gigante sobre Gestão Colaborativa do Ciclo de Vida da Aplicação!

Os participantes foram o melhor: dos veteranos de eventos do gênero a vários outros que conheci por lá, rendeu conversas interessantes como poucos eventos corporativos. O consenso era que ter rolado num fim-de-semana meio que selecionou participantes que realmente gostam do que fazem. Recomendo participar das próximas edições (eu pretendo fazê-lo), onde quer que aconteçam.

Lei de Direito Autoral: ajude a mudar!

23 Aug 2010 | Comments

O governo abriu uma consulta pública com o objetivo de reformar a lei de direito autoral, e a grande vantagem é que você pode opinar pela internet. Como consumidor/usuário/fã, é a sua chance de garantir o seu direito de “fair use”, o que inclui, entre outras coisas, a liberdade de fazer cópias de segurança ou de permitir que uma sala de aula assista a um filme.

Não se trata de usuários x artistas: Quem produz conteúdo não pode deixar o controle de como vai distribuir sua obra nas mãos de associações/intermediários que raramente representam os interesses do artista. Não caiam no papo de “lei anti-pirataria”: qualquer um sabe muito bem que não é isso que vai impedir os mal-intencionados, e o maior prejudicado é justamente o maior apreciador da obra – aquele que paga para ter acesso a ela.

É fácil e rápido: você entra aqui para ver o texto da lei, e clicando em qualquer artigo pode dizer se concorda ou discorda, e, opcionalmente, acrescentar sua opinião. Na primeira vez o sistema vai dizer que você precisa estar autenticado, basta seguir o link para fazer um cadastro rápido. Cadastrar e votar não vai tomar cinco minutos.

Para quem está com pressa, recomendo ir ao Artigo 46 (busque por “Art. 46″ na página), com o qual você deve CONCORDAR se achar razoável a defesa dos direitos acima.

Só não perca tempo: o prazo termina essa semana! Depois não adianta reclamar que a lei é injusta, nem que parece piada o que as empresas de mídia fazem você passar…

Scott Pilgrim

21 Aug 2010 | Comments

Capa do Volume 3 (não é o que eu comprei, mas é uma capa legal :-) )Comecei a ler Scott Pilgrim sem saber do que se tratava – fui pelo burburinho e também por conta de boas experiências com a nova geração de quadrinhistas canadenses.

A história começa num estilo adolescente-nerd-pós-grunge-sem-rumo, mas ganha alguns elementos de ação/comédia nonsense quando o personagem-título descobre que o seu novo romance adolescente depende de derrotar (na porrada mesmo) a “Liga dos Ex-namorados do Mal”. Cada edição nacional engloba dois volumes da original e, portanto, teremos três livros bem recheados.

Essa mescla de clichês funciona absurdamente bem por conta do ritmo e da arte, e deixa a gente se coçando para ir atrás dos outros volumes. De quebra, descobri uma nova livraria online, a Memee, que tinha o melhor preço e entregou rapidinho – claro que se você preferir comprar no Submarino, pode usar o meu link patrocinado que eu fico muito feliz! E também tem aplicação iOS, que pode ser umas pra quem tem iPad (eu ainda gosto dos meus quadrinhos em papel).

E só depois de ler eu soube que muito do barulho tinha a ver com uma adaptação para o cinema (trailer normal ou maior e interativo), que tem um visual interessante e parece fiel. Tudo bem que o Kick-Ass também estava nas mesmas condições e eu me decepcionei um bocado com ele, mas quem sabe esse surpreende, né?

UPDATE: A editora colocou um preview aqui. Boa sacada!

Dev in Sampa 2010

16 Aug 2010 | Comments

Logo do Dev in SampaDe início eu nem ia escrever sobre o Dev in Sampa (que rolou no último sábado), já que os organizadores são brothers e temia pela subjetivdade de um post. Mas lá eu percebi que esse clima de “intimidade” é o diferencial do evento (mesmo pra quem chegou sem conhecer ninguém) – perdi mais de uma palestra em prol de conversas muito bacanas com os desenvolvedores mais rúts dos intertubes.

A atmosfera descontraída não deve ser confundida com amadorismo, muito pelo contrário: além de coffee breaks muito bem servidos, o evento permitiu almoçar no sempre vencedor refeitório da Abril. O WiFi não funcionou pra todo mundo, mas o pessoal foi dando um jeito. As palestras enfrentaram o desafio de atender a um público bastante variado em termos de nível e tipo de experiência, mas no geral conseguiram agradar a gregos e troianos.

Uma das mais surreais foi a palestra-peça-de-teatro “Por que eu sou fanático por testes e você é um bundão” – uma maneira lúdica que o pessoal da HeLabs encontrou de chamar a atenção para a importância da aplicação de boas práticas (em particular, TDD) no dia-a-dia do desenvolvimento de software. Como de costume em qualquer evento com participação da audiência, fui escalado para passar vergonha lá na frente :-) mas valeu, ainda mais pelo papo com o Sylvestre depois do final.

Enfim, um evento que misturou bem a parte didática/técnica com o networking “do bem”. Espero ver outros assim.

TEDxUSP

09 Aug 2010 | Comments

Para alguém que, como eu, não se cansa de ver os TED Talks (as palestras de curta duração que são o ponto alto do TED), a edição local do apresentada na Universidade de São Paulo (e dirigida, até um certo ponto, a ela) era uma oportunidade que não podia passar. Me inscrevi no TEDxUSP logo que abriram a chamada e tive a sorte de ser um dos selecionados para passar uma tarde na FAU ouvindo o que nomes de peso consideram que vale a pena espalhar.

Demi Getschko no TEDxUSP

Claro que cada um tem as suas preferências, mas a minha visão é que o segundo bloco de palestras foi, de longe, o melhor – talvez porque seja o que eu vi sem ser pelo telão, mas também conta o fato de que o primeiro bloco foi tomado pela conclamação ao meio acadêmico para que seus membros deixem os muros da faculdade e vão ao encontro do “mundo lá fora”. Embora necessário, o discurso se tornou um pouco repetitivo.

Era de se esperar que feras como Juca Kfouri e Marcelo Tas, bem como o irreverente “pai da internet brasileira” Demi Getschko não decepcionassem, mas assim que publicarem os vídeos eu recomendo assistir também as palestras de Linamara Battistella (acessibilidade), Antonio C. C. Guimarães (lentes cósmicas e bichos afins), Ligia Amagio (a experiência de uma engenheira que se tornou regente) e Agnaldo Farias (uma visão inspiradora sobre arte, da qual o link mostra um bom trecho).

Não posso deixar de falar da questão do credenciamento, muito comentada pelo Twitter. Mas antes (e acima) disso devo deixar claro que sei como é difícil organizar esse tipo de evento, e que reconheço e agradeço o empenho dos organizadores em transformar a idéia em realidade (ainda mais com os cancelamentos de última hora, que não foram poucos). Posto isso, é importante chamar a atenção para o fato de que o processo de credenciamento e alocação foi um pouco controverso.

Em resumo: não era garantido que os inscritos poderiam ir ao auditório – quem chegou bem cedo entrou, o restante se conformou com o telão (e muitos ficaram chateados). Os dois grupos se juntaram para o coffee break, e o resultado foi que na volta os excluídos tomaram a frente, deixando outros tantos enfurecidos para fora. Minha sugestão: de uma próxima, cadastre-se apenas a quantidade de pessoas que o lugar comporta, e que o telão fique para quem vier “por fora” (não vai faltar gente, ainda mais dando comida grátis na faculdade :-P ).

Pessoas montando mosaico no TEDxUSP com adesivos oferecidos na entrada

Mas isso foi um detalhe menor. O fato é que no geral o evento foi bacana como esperado, pelas palestras e pelas conversas. E, claro, pelo gostinho de ter participado e uma edição independente do TED – que faz jus ao slogan “ideas worth spreading“. Os dois recados que ficaram para mim: reflita sobre o seu caminho pessoal e faça coisas.

FISL 11, cruzalinhas e iG Code Golf

25 Jul 2010 | Comments

A edição desse ano do Fórum Internacional Software Livre foi interessante como de costume: palestrantes de renome e a troca de experiências dentro e fora do evento com as pessoas que fazem o software livre acontecer seguramente justificam passar esses dias em Porto Alegre. Esse ano fiz dois lances bacanas por lá:

O primeiro foi preparar e apresentar uma palestra-relâmpago sobre o cruzalinhas (slides aqui, vídeo em breve). Resolvi fazer isso na última hora, e me surpreendi com o interesse de pessoas de outras cidades (Manaus, Campinas, Florianópolis e da própria Porto Alegre) em fazer a mesma coisa, já que, segundo esse pessoal, a dificuldade em obter informações sobre o transporte público é a mesma.

O outro foi participar do Code Golf do iG, uma proposta inusitada, na qual são apresentados cinco problemas de programação. Eles são relativamente simples – o desafio é escrever o menor código-fonte que resolva cada um.

Claro que um código Python é bem menor que o seu equivalente Java, e por isso haviam categorias isoladas para cada linguagem suportada (Perl, Python, PHP, Java e Ruby). Fui o vencedor da categoria Java, com os códigos que estão no final do post.

Um aviso: NUNCA escreva código assim, a não ser que esteja participando de um Code Golf. O objetivo era sempre reduzir o tamanho e compensar a proibição de imports explícitos. Isso tem um custo: a performance quase sempre é horrível, a legibilidade é zero, é quase impossível modificar. Senti esse último lance na prática: tive que fazer uma gambiarra na questão 4 (o formato da entrada mudou, e o fix apropriado implicaria em reescrever tudo) – o tamanho dobrou e fui penalizado por isso.


Minhas soluções para o Code Golf (enunciados aqui)

  1. public class c{public static void main(String x[])throws Exception{int a=,b=1,c
    ,i;for(i=Integer.parseInt(x[]);i>;i--){System.out.print(b+(i==1?"":", "));b=b+
    a;a=b-a;}}}
  2. public class c{public static void main(String x[]) throws Exception{char m,s[]=x
    [].replace(" ","").toLowerCase().toCharArray(),i=;int f[]=new int[255],c,l=s.l
    ength;boolean p=true;for(;i<l;i++){p=p&&s[i]==s[l-i-1];f[s[i]]++;}System.out.pri
    ntln((p?"":"Não é ")+"Palíndrome");while(true){m=;for(i=;i<255;i++){m=f[m]>f[i
    ]?m:i;}if(f[m]==)return;System.out.println(f[m]+" "+m);f[m]=;}}}
  3. public class c{public static void main(String x[]) throws Exception{long a=,m=
    ,b,c,F=0xFFFFFFFF;int i,j=;for(;j<2;j++){c=;for(i=;i<4;i++)c=c*256+Integer.pa
    rseInt(x[j].split("\\.")[i]);a=m;m=c;}a=a|(F-m);b=32;for(c=0xFF000000l;c>;c/=25
    6){System.out.print(((a&c)>>(b-=8))+(b==?" /":"."));}for(b=32;(m&1)==;m/=2)b--
    ;System.out.print(b);}}
  4. public class c{static int h=-1;static void w(int i){if(h!=i)System.out.print(i+"
     ");h=i;}public static void main(String y[])throws Exception{String[]x=(y[]+",-
    ,"+y[1]).split(",");int m,l=x.length,n[]=new int[l],p=,i=,a=;for(;i<l;i++)if(
    x[i].equals("-")){a=i;p=i+1;}else n[i]=Integer.parseInt(x[i]);for(i=;(i<a&&p<l)
    ;){if(n[i]<n[p]){m=n[i];i++;}else{m=n[p];p++;}w(m);}for(;i<a;i++)w(n[i]);for(;p<
    l;p++)w(n[p]);}}
  5. public class c{public static void main(String x[])throws Exception{int c,p,t=,v
    []={1,3,3,5,10,50};while((c=System.in.read())>-1){p=("pcbtar".indexOf(c));t+=p>-
    1?v[p]:;}System.out.print(t);}}

Coders At Work (Peter Seibel)

14 Jul 2010 | Comments

Coders At Work, Peter SeibelDepois de ter curtido tanto as entrevistas com os fundadores das startups mais famosas no Founders At Work, eu esperava que o Coders at Work – fosse ser ainda mais bacana. Afinal, a lista de entrevistados é diversificada e impressionante: vai de gente mais “próxima” como os criadores do memcached, JavaScript e JSON até decanos como Fran Allen e Donald Knuth, cujos méritos acadêmicos e na indústria tornam desnecessárias quaisquer apresentações.

O livro foca no dia-a-dia dessas pessoas, em particular no momento em que estão criando código. Isso até é interessante: saber se um ninja desses depura código com um debugger ou com printf, quanto ele pensa antes de sair codando, se ele implementa código de forma top-down ou bottom-up e a visão deles de como o desenvolvimento de software evoluiu (ou não) nos dias de hoje sem dúvida dá uma nova perspectiva para o meu cotidiano.

Infelizmente, isso não impede que os capítulos se tornem repetitivos e maçantes ao longo do tempo – ao contrário do Founders, no qual cada entrevistado leva a reportagem para um lado diferente (e sempre interessante). Não sei se o quanto isso influenciou, mas o entrevistador, embora autor de um livro popular sobre Common Lisp e um dos primeiros funcionários da WebLogic, não é personagem de destaque no meio. Em contrapartida, a cicerone do Founders é co-fundadora do Y Combinator – uma credencial e tanto para quem quer falar de startups.

O Julio Daio Borges afirma em um review bacana do livro que “…a maioria dos programadores no livro são, basicamente, executores. Visionários são os empreendedores.” Não concordo plenamente com a afirmação – poucos ali são empresários, mas cada um deles empreendeu e inovou no seu campo – mas ela evidencia o fato: o livro anterior foca nesse lado empreendedor, este no lado pragmático/coder. Eu curto as duas coisas, mas em projetos editoriais desse porte, a primeira vai mais longe.

Super Munchkin

12 Jul 2010 | Comments

Eu até curto um jogo de cartas/tabuleiro mais elaborado, mas tenho alergia àqueles onde você queima horas aprendendo para só aí começar a jogar decentemente e se divertir. Felizmente o @btco me apresentou o Munchkin – jogo de cartas que, segundo o próprio fabricante, “captura a essência da experiência da aventura-em-masmorra, sem aquela parafernália de RPG” – o que seria uma afirmação à toa, se o fabricante em questão não fosse a própria Steve Jackson Games¹ – pioneira do gênero RPG nos EUA.

Esse tipo de humor auto-depreciativo mostra o diferencial do Munchkin: ao invés de vender a ilusão de que uma mecânica complexa demonstra algum tipo de superioridade intelectual dos participantes (como fazem tantos RPGs e jogos de carta/tabuleiro por aí), ele se baseia em um conjunto simples de regras. Os detalhes mais cabeludos ficam por conta de cada carta, facilitando muito o aprendizado e tornando-o divertido de imediato.

O jogo original deu origem a variantes temáticas – a que eu tenho, claro, é o Super Munchkin, na qual jogadores e monstros são, respectivamente, super-heróis e vilões. Assim como o original satiriza o gênero RPG medieval, esse não poupa os comics da ironia: a carta “erro de continuidade” anula tudo o que foi feito numa batalha (causando grande confusão), o nível do jogador sobe com cartas do tipo ”cueca pra fora da roupa”, e por aí vai. cartas de munchkin Um pré-requisito é entender inglês – não apenas para interpretar as cartas, mas para apreciar o humor nerd em cada uma delas. A Devir lançou uma versão nacional do original, mas parece que esgotou e não se encontra mais em lugar nenhum. O melhor é importar (ou procurar um pouco por aqui) e encarar o idioma.

¹ Quem leu o livro-reportagem The Hacker Crackdown deve lembrar que o serviço secreto americano investigou de forma truculenta a empresa quando soube que um dos seus colaboradores (responsável pelo GURPS Cyberpunk) circulava no submundo hacker – pesquisa de campo é isso aí, o resto é resto.

Outliers (Fora de Série), por Malcolm Gladwell

09 Jul 2010 | Comments

Peguei Outliers para ler no ano passado, mas só agora deu tempo de escrever. Ele abre apontando uma relação estatística entre o horóscopo e as chances de sucesso de um jogador de hóquei – e o nome original¹ pode dar a entender que se trata de outro livro na linha do Freakonomics.

Mas a proposta é outra: Malcolm Gladwell desconstrói alguns mitos sobre o que faz alguém se destacar nos negócios, esportes, artes ou qualquer outro campo. Ele ataca em particular aquela idéia comum de que o sucesso depende largamente do talento, em menor grau da dedicação e bem pouquinho da sorte.

Sem negar a influência desses fatores, o livro demonstra que o que entendemos por sorte tem muito a ver com as oportunidades e com estar no lugar e na hora certa. Também desfaz a lenda do “expert instantâneo”, chegando a postular que existe uma quantidade de tempo mínima que qualquer pessoa de destaque (dos Beatles a Bill Joy) dedica ao assunto de interesse antes ser considerada um expert: 10.000 horas.

São propostas ousadas – colocadas dessa forma, devem gerar muitas expressões de “ah, duvido”. E é isso que torna o livro interessante: após a sua leitura, todas elas se tornam no mínimo bastante plausíveis. Não sei se a tradução é boa, mas no original valeu muito a pena.

¹ Em Estatística, outlier é o nome que se dá àqueles dados completamente diferentes dos demais, os “fora da curva”.