2008 March 28, 15:54 h
No fim de outubro do ano passado eu escrevi um artigo chamado Onde estão os Web Designers me indagando porque é tão difícil encontrar bons web designers. Foi um dos artigos mais comentados da época no meu site. Um dos motivos de ter escrito esse artigo foi justamente porque nós da Surgeworks estávamos procurando por um bom web designer. Apareceram alguns candidatos mas depois de muito procurar encontramos o Renato Carvalho, de Brasília, que tem um ótimo equilíbrio entre bom gosto visual e cri...
2008 March 27, 02:43 h
De vez em quando nos deparamos com o cenário onde precisamos gerar um ID único não-sequencial (auto increment do banco de dados não serve). Pode ser para várias coisas, por exemplo, um link que você quer enviar por e-mail ao seu usuário que, quando ele clickar, vai levar diretamente a uma página customizada para mudar de senha sem que ele precise logar antes. Ou algo assim.
Uma das diversas maneiras é usar um gerador de UUIDs ou “Universally Unique Identifier”, um número de 128-bits representado como uma string de 36 caracteres. Existem algumas bibliotecas para isso em Ruby, uma delas é o uuidtools, que você instala simplesmente assim:
sudo gem install uuidtools
Ele funciona muito bem, mas há alguns ‘poréns’, principalmente se estiver usando Windows. Veja aqui por que.
2008 March 25, 18:24 h
Last week I presented ActiveResource’s capabilities to some friends.
In summary, it’s a great library, but not perfect just yet, and should improve in the next versions. On the other hand, the majority of ‘REST’ APIs available – as they say – are not actually RESTful. Flickr and YouTube come to mind. Check out this link to learn on how to talk to Twitter. This other link to learn how to extend ActiveResource for non-REST APIs and this link to understand how to consume YouTube feeds.
But besides that I found out a small surprise: ActiveResource is documented in a way to imply that it has working client-side validations, but it’s not fully implemented! So I decided to investigate what would it take to have it working.
2008 March 25, 17:58 h
Semana passada fui apresentar os recursos de consumo de APIs REST usando ActiveResource como client.
Em resumo, é uma ótima biblioteca, mas não é perfeita ainda, ela deve melhorar nas próximas versões. E por outro lado, a maioria das APIs ditas ‘REST’ não são REST de verdade. Flickr e Youtube são dois exemplos. Veja este link para aprender a conversar com o Twitter. Este outro link para aprender como estender o ActiveResource para APIs não-REST e este link para entender como consumir o YouTube.
Mas além disso encontrei uma pequena surpresa: o ActiveResource tem uma documentação afirmando ter suporte a validações porém ele não as implementa! Então resolvi ver o que seria necessário para isso.
2008 March 25, 13:18 h
Essa semana muita gente instalou o novo Safari 3.1, tanto para Mac quanto para Windows. Um excelente browser, diga-se de passagem. Só abro o Firefox agora quando sou forçado a usar Firebug, senão eu prefiro não tê-lo aberto. Enfim, depois da atualização um projeto que estou trabalhando começou a dar problemas. O problema foi com o Active Scaffold. Erros de Javascript começaram a aparecer. Esse erro foi reportado no activescaffold-talk Em seguida, no caboose saiu uma informação sobre um método...
2008 March 23, 15:51 h
Durante a Campus Party eu conheci o Hugo, que é aluno de Ciências da Computação na USP e também é monitor de aulas de Smalltalk (é isso? :-) Estávamos conversando sobre Seaside e agora ele fez o primeiro screencast apresentando o ambiente Squeak. Ainda não é o Seaside, mas apenas algo para se acostumar com alguns dos aspectos do Squeak. Então, sem mais delongas, dêem uma olhada no blog dele para baixar o vídeo.
2008 March 12, 02:17 h

Hoje recebi mais um e-mail de uma pessoa perguntando “Será que Ruby on Rails serve para criar aplicações grandes e robustas, como um ERP?”
Me perguntam muito isso. Sendo direto ao assunto, se alguém me perguntasse isso no meio do caminho e precisasse de uma resposta rápida acho que o mais coerente seria dizer “Não”. Mas não parem aqui! A resposta mais longa seria “Talvez”.
2008 March 07, 09:26 h

Depois do anúncio de ontem da Apple com o Roadmap de Software do iPhone, muitos pundits ainda tem negativismo em vista. Mas são as pessoas que nunca se darão por satisfeito. Quando o iPhone foi lançado vieram as críticas: faltam recursos, não tem GPS, não tem flash, a câmera precisa de mais megapixels.
Tudo isso se provou irrelevante e apesar das negativas, o iPhone teve um crescimento meteórico ao longo de meros 8 meses, abocanhando o mercado a largas dentadas e deixando os concorrentes desorientados. Todo mundo está correndo atrás do próprio rabo.
A última grande crítica eram os aplicativos. Pois bem, ontem a Apple respondeu e em praticamente tudo superou até mesmo as expectativas dos mais positivos, entregando muito mais do que o esperado. Acham que os pundits ficaram satisfeitos? Claro que não.
Todos já se conformaram que Palm, Symbian, Windows Mobile não serão páreos para o iPhone, a última grande “esperança” é o Google Android. Mas eles falham em entender que o Android não será concorrente ao iPhone também.
Em mais um de seus artigos esclarecedores, Daniel Eran Dilger explica porque neste momento do mercado o iPhone não tem nenhum concorrente à sua altura. O principal é o seguinte: a Microsoft é uma empresa de Software; o Google é uma empresa de serviços. A Apple é a única que tem a cadeia inteira no seu controle: hardware, software, design, distribuição, varejo, rede online.
A segunda grande coisa é o seguinte: não é interesse do Google concorrer com a Apple e sim com a Microsoft. Os objetivos da Apple e do Google estão mais ou menos coerentes entre si, o que os torna mais aliados do que rivais. A Apple não tem portfolio que cruza com o Google e vice-versa. Quem está tentando sobrepujá-la (mas está fracassando categoricamente) na área de procura online, redes sociais e serviços online é a Microsoft.
E finalmente, por que adotar Linux em celulares não tem nada a ver com liberdade e tudo a ver com custos baixos (US$ 0.00). Acompanhem a tradução do artigo do Daniel:
2008 March 06, 23:13 h
Jason Fried, da 37signals, acabou de escrever um post que sumariza o que todos nós que estamos acompanhando o fenômeno iPhone estamos sentindo. Sigam com a tradução:
2008 March 06, 17:00 h
Finalmente, foi anunciado hoje o tão esperado iPhone SDK. Faz tempo que centenas de aplicações já existem via o Unofficial SDK e o (complicado) toolchain. Funcionou por um tempo para toy-applications, mas agora finalmente teremos aplicações robustas de verdade. Um exemplo? Que tal o ultra-esperado Spore no iPhone?
Vejam a cobertura completa pelo Gizmodo, AppleInsider, ArsTechnica
2008 March 01, 14:48 h
Esta semana Zed Shaw apareceu nas manchetes novamente! Desta vez escrevendo um longo artigo de 4 páginas para a CIO.com (mais uma dessas revistas para CIOs que “acham” que entendem alguma coisa de informática). De qualquer forma, ao contrário do que se imagina, o artigo de Zed é equilibrado, bem escrito, razoavelmente bem argumentado, expondo suas experiências sobre o que é Ruby, a comunidade, os prós e contras de se adotar Ruby. E são bons pontos. As vantagens foram expostas, os pontos fraco...
2008 March 01, 14:18 h
A menos que você já tenha estudado Estatística e Probabilidade ou seja um fã de matemática, é provável que seja um verdadeiro ingênuo em termos matemáticos, para não dizer outra palavra.
Principalmente se, mesmo com pouca frequência, tente explicar eventos puramente aleatórios como “coincidências misteriosas” que “precisam” ter alguma explicação mística ou sobrenatural.

Mesmo entre nós, programadores, muitos ignoraram a disciplina durante o que é ensinado normalmente no primeiro ano de Ciências da Computação. Um dos resultados práticos desse tipo de ignorância: Birthday Attacks que é um tipo de ataque criptográfico nomeado assim porque explora a matemática por trás do Birthday Paradox – que é explicado no artigo que traduzo abaixo.