/ 05.May.2008 at 09:12pm

Ola Bini é um colaboradores mais ativos do JRuby. É um programador jovem (tem seus 24 anos ou algo assim) mas conhece muito bem os detalhes da arte da programação. Apreciador de Lisp e inteligência artificial, é exatamente o tipo de artista que sabe apreciar a Boa Programação. Em luz dos recentes transtornos sobre a controvérsia Twitter, ele escreveu este divertido artigo que traduzo mais abaixo.
Diferente dos pseudo-gurus que continuamente apenas gostam de falar mal dos outros e jogar indiretas. Lembrem-se de uma coisa: um bom profissional não precisa falar mal dos outros como forma de parecer que está correto. Um bom profissional convence que o que ele acredita é bom por méritos próprios.
Outro bom exemplo? Avi Bryant. Ele teria todos os motivos do mundo para ser apenas mais um xiita, falar mal de Ruby, falar mal de Python, falar mal de Perl. Mas ele também é um artista. Ele acredita na tecnologia que desenvolve. Prova disso foi o que eu noticiei semana passada: em vez de cruzar os braços, foi ajudar a implementar Ruby sobre uma virtual machine Smalltalk. Não só isso, mas quando eu o entrevistei, ele disse abertamente que o carro-chefe do framework Seaside, o produto DabbleDB, também utiliza códigos em Ruby e Python. Bons programadores escolhem boas ferramentas para trabalhar. Xiitas precisam que os outros percam para que eles ganhem.
No longo prazo, adivinhem o que funciona? Bom, vamos à tradução:
/ 07.Mar.2008 at 09:26am

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:
/ 06.Mar.2008 at 11:13pm
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:
/ 01.Mar.2008 at 02:18pm
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.
/ 27.Feb.2008 at 11:45pm
Diretamente do blog. Aqui vai a tradução para todos acompanharem:
Capistrano é um utilitário para gerenciar servidores remotos e automatizar tarefas remotas. É popularmente usado para deployment de aplicações Rails (mas pode fazer muito mais!). A versão 2.2.0 está disponível agora:
1 2 |
gem install capistrano |
A versão 2.2.0 tem as seguintes mudanças:
/ 22.Feb.2008 at 07:38pm
Estou na minha temporada de traduções :-) Felizmente a blogosfera produz muitos artigos interessantes. Desta vez foi Steven Devijver que fez um artigo explicando sobre as diferenças entre os termos tipagem dinâmica e linguagem dinâmica.
Vamos à tradução:
/ 21.Feb.2008 at 10:03pm
Fazia muito tempo que eu não via um bom artigo sobre Estruturas de Dados. Na verdade, acho que desde o tempo da faculdade eu não lia um texto tão legal. Este achado veio do blog matasano chargen e resolvi traduzir para que todos possam apreciar a idéia. Mas avisando: um mínimo de ciências da computação é necessário para entender este texto.
O tema é Binary Radix Trie. Segue a tradução:
/ 11.Feb.2008 at 01:13am
Este artigo sobre variáveis de instância do Rick DeNatale é muito fascinante. Na hora que bati o olho nesse texto já queria traduzí-lo. É um texto bastante longo e talvez um pouco difícil para quem não tem muita base sobre compiladores e arquitetura de computadores, mesmo assim vale a pena para ter uma breve introdução ao mundo dos registradores. Mais interessante é ver como Java, Smalltalk e Ruby implementam variáveis de maneiras diferentes e que efeitos isso tem na prática.
Aqui vai a tradução:
/ 10.Feb.2008 at 05:18pm

Este artigo é muito interessante e me deixou intrigado porque eu – que sou um amador em técnicas Ágeis – pela primeira vez vi um enfoque diferente na explicação de certos termos Ágeis, em particular, “iteração” vs “incremental”.
Segundo o perfil no site do autor: Jeff Patton tem focado em técnicas Ágeis desde 2000 e se especializou na aplicação de técnicas de design centradas no usuário para melhorar requirimentos Ágeis, planejamento e produtos. Alguns de seus artigos mais recentes podem ser encontrados na www.AgileProductDesign.com e na Crystal Clear de Alistair Cockburn. Seu próximo livro será lançado pela série de Desenvolvimento Ágil da Addison-Wesley que dará conselhos táticos para quem procura entregar software útil, usável e de valor.
Atualmente ele trabalha como consultor independente, é o fundador e moderador da lista agile-usability no grupo de discussão do Yahoo, um colunista na StickyMinds.com e IEEE Software, e vencedor do Gordon Park Award 2007 da Agile Alliance por contribuições ao desenvolvimento Ágil.
E aqui vai minha tradução do artigo em questão:
/ 31.Jan.2008 at 11:45pm
/ 31.Jan.2008 at 11:44pm
Estou muito feliz vendo que meu Rails 2.0 Screencast foi muito bem recebido. Mais de 9.000 visitantes únicos assistiram (e centenas lêem o tutorial todos os dias). A idéia era mostrar Rails 2.0 muito rápido, apresentando o que é possível fazer em menos de 30 minutos.
Agora, irei quebrar aquele vídeo em suas partes principais e criar o primeiro tutorial passo-a-passo sobre Rails 2.0.
Como qualquer outro tutorial, eu não cubro 100% do Rails 2.0, apenas algumas características principais agrupadas em uma aplicação coesa. Eu recomendo o Peepcode’s Rails2 PDF e o Railscasts.com de Ryan Bates para mais detalhes.
Algumas pessoas se ofereceram para traduzir o tutorial original, que eu escrevi em inglês. Um deles foi o Lucas Húngaro. O problema foi que eu demorei demais a dar continuidade. Daí o Rafael DX7 me enviou uma versão traduzida também. Fiz algumas alterações e finalmente temos o tutorial em português. Agradeço a colaboração.
Este tutorial possui 2 partes, para a Parte 2, clique aqui. Cliquem aqui se quiserem imprimir esta página. O código completo está disponível aqui
Vamos começar!
/ 27.Jan.2008 at 09:00pm
Semana passada, Steve Jobs – como sempre! – deu mais um show na Macworld. Independente das opiniões sobre o novo Macbook Air. De longe Jobs faz algumas das melhores apresentações de produtos e serviços de tecnologia que já vi. O que me surpreende é que ele faz isso há mais de 10 anos, todo ano, na Macworld, na WWDC. Por que tão poucos copiam seu estilo minimalista e estusiástico?
Hoje estava lendo a BusinessWeek e me deparei com este artigo do treinador de comunicação Carmine Gallo. Achei interessante e como muitos de nós na comunidade de tecnologia fazemos palestras ou apresentações, grandes ou pequenas, acho que essas dicas valem muito a pena.

Eu não perco uma apresentação do Steve desde 1997 – a clássica, do seu retorno à Apple – e desde então, cada uma vem sendo melhor que a outra. Vocês podem achar algumas delas via YouTube ou YouTorrent+. A mais recente está disponível para download via iTunes ou para streaming, inclusive em qualidade HD.
Uma coisa que o autor não fala, mas tem que ser óbvio: seus produtos e serviços precisam ser BONS. Nem mesmo Steve Jobs consegue vender certos produtos e serviços que estamos acostumados a ver por aí …
Segue a tradução do artigo:
/ 27.Jan.2008 at 05:42am
Cá estou eu, trabalhando no meio da madrugada, quando apareceu este post de ninguém menos que Jim Weirich. Ele literalmente implementou um pequeno interpretador de Lisp … em Ruby!! Achei o feito tão interessante que resolvi traduzir o post para os interessados. Vamos lá:
Eu esbarrei nisto no blog do Bill Clementson e lembrei de usar o manual do programador de Lisp 1.5 na época da faculdade. Tenho fortes memórias dessa página em particular no manual e eu tentando entender suas nuances.
Se você nunca leu o Manual do Programador de Lisp 1.5, a página 13 é a entranha de um interpretador Lisp, as funções “eval” e “apply”. É escrito em Lisp, embora a notação usada seja um pouco estranha. O interpretador inteiro (menos duas funções utilitárias) é apresentado em uma única página do livro. Isso que é definição concisa de linguagem!
Eu frequentemente penso sobre implementar um interpretador Lisp, mas antigamente, o pensamento de implementar um garbage collector e todo o runtime era um pouco demais. Isso foi numa época antes do C, então minha linguagem de implementação teria sido assembler … eca.
Mas enquanto eu revia a página, percebi que com as linguagens modernas de hoje eu provavelmente poderia simplesmente converter as estranhas Expressões-M usadas na página 13 diretamente em código. Então … por que não?
/ 15.Jan.2008 at 01:15am
Update 26/01: Parabéns ao Júlio Monteiro, ele fez alguns ajustes ao tutorial, colocou um logo em português e gerou uma versão em PDF para quem quiser baixar para ler depois. Altamente recomendado.
Update 23/01: Pessoal, mil perdões pela demora. A culpa é minha. A partir do dia que primeiro anunciei esse projeto, em cerca de 4 ou 5 dias já estava tudo traduzido e revisado, mas só fui fechar o pacote hoje. Agradecimentos ao Júlio Monteiro por preparar o site oficial.
Agora vocês podem ler o Aprenda a Programar online. O tutorial inteiro do Chris Pine, destinado a todos os iniciantes não só em Ruby como em programação em geral. E para quem quiser “fuçar” mais, baixem o código do livro, que eu converti numa aplicação Rails (leia detalhes abaixo).
Aproveitem!! E agradeçam à comunidade, este é mais um trabalho da comunidade para a comunidade.
Update 15/01: Todos os capítulos estão traduzidos! Faltam apenas 3 capítulos para revisar, mesmo assim acho que já é seguro qualquer um baixar. Uma das coisas que eu fiz foi modificar o código original – que era apenas um handler CGI – para uma aplicação Rails simples (sem banco de dados). Primeiro, baixem o código do repositório público:
svn co http://opensvn.csie.org/learn_to_program_pt_br/trunk/
Feito isso, agora é simples:
ruby script/server -e production
Pronto, apenas aponte para http://localhost:3000 e vocês terão um livro-online interativo totalmente escrito em Ruby e colaborativamente traduzido para Português. Os colaboradores estão ativamente revisando o código ainda. Todo ele está em um repositório no OpenSVN então vocês já podem ser beneficiar de nosso trabalho agora mesmo. Ah sim, é necessário que vocês tenham o Rails 2.0.2 instalado para executar o livro.
O próximo passo: nos ajudem a divulgar este código. Vocês podem usar principalmente como material para ensinar novos programadores, principalmente aqueles que ainda não tem experiência com nenhuma outra linguagem de programação. Quando toda a revisão terminar, colocarei uma versão estática online. Mas o OpenSVN e o Google Groups continuarão online. Obrigado a todos!!
Update 10/01: Galera, só para atualizá-los que este projeto está de vento em popa. Temos muito mais colaboradores desta vez do que na época do Getting Real, e para um livro muito menor. Então talvez teremos a tradução pronta muito rápido. Só para ter uma idéia temos 23 voluntários neste momento. E se minhas contas não estão erradas, 8 módulos (de 15) já estão traduzidos! Vocês podem acompanhar por esta planilha.
Muitos que já são programadores em outras linguagens estão aprendendo Ruby e Rails. Para eles existem muitas boas referências como “The Ruby Way” ou “The Rails Way” e outros. Mas são livros voltados a quem já tem alguma experiência e que sabem inglês.
Mas existem outros livros para iniciantes. Minha última entrevista foi com Peter Cooper, o autor do livro “Beginning Ruby”, justamente para quem está iniciando em Ruby. Deve ser o melhor agora em sua categoria, mesmo assim está somente em inglês.
Mas existe uma categoria ainda mais inicial: um livro para quem tem pouquíssima ou quase nenhuma experiência com programação em geral. Para eles qualquer linguagem representa uma grande barreira, mesmo sendo Ruby. E acho que não há nenhum material mais simples para iniciantes assim do que o livro Learn to Program, de Chris Pine. O livro em papel pode ser comprado (impresso ou PDF) pela The Pragmatic Programmer.
Comprei esse livro há alguns meses na esperança de que minha esposa pudesse usá-lo para aprender alguma coisa, mas primeiro preciso convencê-la a tentar :-) Enfim, acredito que esse livro possa ser valioso para os iniciantes brasileiros.
Como a tradução comunitária do livro Getting Real foi um sucesso. Imaginei que poderíamos repetir o esforço. O livro de Chris é bem menor que o Getting Real, portanto o esforço será muito menor.
Hoje pela manhã conversei com o Chris Pine e obtive sua autorização para este projeto. A idéia é outro projeto sem fins lucrativos, feito pela comunidade para a comunidade. Então, este post é mais um Call to Arms que faço à comunidade para disponibilizarmos este material para a comunidade brasileira de Ruby. O que acham? Os interessados, por favor me enviem e-mail
/ 19.Sep.2007 at 04:50pm

Pra variar, estou muito atarefado (ainda tenho um artigo que está no forno faz dias para eu terminar), mesmo assim achei este artigo interessante e – para variar – me deu vontade de traduzí-lo aqui. Tem uma discussão no site do TSS também. O Artigo original está na InfoQ, por Sadek Drobi, publicado agora há pouco. Lá vai:
No evento da TSS em Barcelona, Martin Fowler e Neal Ford deram uma palestra sobre programação orientada a linguagem, resumida aqui. Em seu artigo anterior, Fowler definiu esse conceito como ‘o estilo geral de desenvolvimento que opera sobre a idéia de construir software ao redor de um conjunto de linguagens específicas de domínio’. Fowler e Ford desenvolvem algumas idéias apresentadas por Fowler na JAOO 2006 e questionam a eventualidade de um “passo evolucionário além de programação orientada a objetos”.
Latest Comments
"Aí vai uma lista com livros que cobrem Rails 2: ..."
lucas húngaro / 11.May.2008 at 10:38pm
"Akita, great post, and great help with this pdf + movie!
jose / 11.May.2008 at 05:39pm
"Ressuscitando este post! Muito bom o texto, no momento me e..."
raul souza lima / 10.May.2008 at 07:53pm
"Akita, perguntei isso em outro tópico mas tive resposta. O..."
raul souza lima / 10.May.2008 at 06:38pm
"Opa, Muito bom ver que os railers brasileiros est..."
thiago pradi / 10.May.2008 at 11:53am
"Amigo, procuro por empresas que prestem serviço ..."
guilherme / 10.May.2008 at 06:53am
"É muito bom ver que os americanos estão procurando por br..."
felipe / 09.May.2008 at 11:35pm
"@Bruno Eu discordo, apesar de ter apenas ótimos livros naq..."
thiago freire / 09.May.2008 at 05:47pm
"Eu li o Agile Web etc, e achei bom. Apesar de ter 700 pagin..."
thiago freire / 09.May.2008 at 05:40pm
"“se querem livros”, eu diria pra não ler uma p..."
bruno zanchet / 09.May.2008 at 05:36pm