English readers, click here

Época de Ano Novo é quando olhamos o ano que passou e refletimos para o próximo ano. É quando desaceleramos um pouco para nos permitir ver o que fizemos, que diferença fizemos, e se ainda estamos caminhando na direção certa.

Felizmente, tudo que eu considerei importante (do ponto de vista de tecnologia) está no meu del.icio.us/fabioakita. Convido todos a assinarem o feed ou apenas darem uma olhada. Eu selecionei apenas alguns links que representam alguns dos eventos mais interessantes desse ano (pelo menos do meu ponto de vista).

Para mim, 2007 foi um ano incrível, sem reclamações. Eu trabalhei como louco nos últimos meses, mas pelo menos estou orgulhoso de ter tomado uma boa decisão mais de um ano atrás e me mantido com ela. E adivinhem só? Deu tudo certo! O livro que publiquei em setembro de 2006 foi um sucesso, estou trabalhando tempo integral com o grande pessoal da Surgeworks LLC e agora tenho uma equipe local própria, com 3 companheiros Railers (sigam os links para conhecê-los).

Participei de não menos que 5 encontros de Rails, uma a cada fim de semana desde 17 de novembro. Foi muito legal ver a comunidade Ruby on Rails brasileira florescendo. E espero que 2008 seja o ano em que as pessoas finalmente prestem atenção em nós.

Meu Screencast de Rails 2.0 foi um enorme sucesso, atingindo reconhecimento mundial (veja o gráfico do Google Analytics abaixo). Fiz grandes amigos como Dr. Nic, Geoffrey Grosenbach, Satish Talim e outros. (Leiam as entrevistas exclusivas aqui)

Mais importante de tudo: consegui me separar do mercado geral e fazer o que eu queria. Eu queria trabalhar com Rails tempo integral, e consegui. Esse é o caminho: faça o que quiser fazer, não o que outras pessoas lhe dizem. E educação é chave: a única maneira de tomar uma boa decisão para si mesmo.

Olá pessoal, finalmente parei um tempinho para subir os vídeos da RejectConf SP 07. Mil desculpas pela longa demora. Mesmo assim infelizmente eu ainda estou tendo problemas. Alguns dos vídeos foram gravados sem som, ainda não entendi porque e se realmente o som não está lá ou se é alguma besteira que estou fazendo. Enquanto não descubro isso, segue a lista dos vídeos que disponibilizei. Primeiro, meus agradecimentos ao Rafael Walter, da Improve it, que disponibilizou 3 vídeos no Google Video:...

English readers, click here


Novo Logo Oficial

Segundo este artigo o Matz deve lançar o Ruby 1.9 HOJE!! Provavelmente umas 22hs de hoje! (1AM EST).

Quem quiser saber o que tem de novo no Ruby 1.9 deve seguir o blog do eigenclass que há dois anos vêm relatando as mudanças na linguagem através de um script automatizado para analisar os CHANGELOGS. São 50 mil linhas analisadas!

Feliz Natal à Todos! Boas Festas!

If you didn’t read it, take a look at Part 1 where we get to know more about Avi Bryant and his amazing product Dabble DB. In Part 2 Avi goes a little bit more in elaborating his technology opinions and points of view. It’s a very insightful reading for every programmer.

As I always say – and Avi is competent pointing out -, Ruby has its drawbacks – most of them being improved on Ruby 1.9, JRuby and Rubinius. Avi gives us good reasons why Smalltalk is yet another great platform to learn, bringing back decades of evolution and maturity. So, here goes, the unabridged version of the interview.

And stay tuned! I hope to have Evan Phoenix, Hal Fulton, Peter Cooper and Adrian Holovaty as my next guests. Lot’s of material to begin 2008 in great style.

For english-speaking readers, click here for the original version

Se ainda não leu, dê uma olhada na Parte 1 onde conhecemos mais sobre Avi Bryant e seu incrível produto Dabble DB. Nesta Parte 2 Avi elabora um pouco mais suas opiniões e pontos de vista acerca de tecnologia. Uma leitura muito inspiradora para todo programador.

Como sempre diso – e Avi é competente em apontar -, Ruby tem seus problemas – muitos sendo melhorados no Ruby 1.9, JRuby e Rubinius. Avi nos dá boas razões de porque Smalltalk é mais uma grande plataforma para se aprender, trazendo décadas de evolução e maturidade. Então, aqui vai, a versão completa da entrevista.

E fiquem ligados! Espero ter Evan Phoenix, Hal Fulton, Peter Cooper e Adrian Holovaty como meus próximos convidados. Muito material para começar 2008 em grande estilo!

Resolvi criar essa nova categoria tidbits para que eu possa simplesmente escrever sobre diversos assuntos sem que eles tenham necessariamente uma relação entre si. Hoje quero falar sobre 37signals, iPhones e Erlang.

Para começar, ontem a 37signals divulgou alguns números internos sobre suas aplicações online que devem ajudar a demonstrar que tipo de exercício Rails suporta dentro da empresa dos seus criadores.

Basecamp (Gerenciador de Projetos)

  • 2 milhões de contas
  • 1,3 milhões de projetos
  • 13 milhões de to-dos
  • 9,2 milhões de mensagens
  • 12 milhões de comentários

Eu acabei de falar sobre SimpleDB e bancos de dados não-relacionais. Este é um mundo estranho mas cheio de grandes possibilidades. Infelizmente a maioria dos programadores já cresceu num mundo dominado pelos RDBMS, as commodities da tecnologia. Durante a RejectConf tive o prazer de conhecer o Carlos Villela, atual ThoughtWorker que palestrou no nosso evento. Agora uma curiosidade que eu não sabia: ele foi desenvolvedor do projeto Java Prevayler. Prevayler é um sistema de persistência de objet...

Recentemente eu escrevi um artigo explicando como funcionam os blocos/fechamentos em Ruby. É um recurso muito poderoso de algumas linguagens dinâmicas como Ruby.

Porém todo recurso poderoso deve ser usado com algum cuidado. E nesse caso é a utilização excessiva em casos que podem levar a alguns problemas. Mas não se preocupem, não é algo que deve afetar a grande maioria das aplicações. De qualquer forma vale a pena entender a mecânica de blocos conforme explicado por Ola Bini que, aliás, recomendo muito a leitura de seu blog que trás muitos behind-the-scenes das mecânicas de Ruby.

Vamos à tradução:

Muita gente está sofrendo um problema meio chato: para instalar o Rails 2.0 recomenda-se o seguinte:

sudo gem update —system
sudo gem install rails

Note que a instalação de gems não requer mais o flag -y ou —include-dependencies. Isso é uma nova feature no 0.9.5. Porém, ao realizar o update da primeira linha, seu Rubygems será atualizado para a versão 0.9.5. Se você estiver em Windows é bem capaz que verá este erro:

ERROR: While executing gem … (Zlib::BufError) buffer error

Parece que as gems ainda não foram atualizadas para 2.0.2, acabei de tentar atualizar mas ainda não vieram. Mesmo assim a tag rel-2_0_2 já existe em o DHH deve anunciar em algumas horas no blog oficial. Se houver algum bug de última hora pode ser que ele vire 2.0.3 antes mesmo do anúncio, como aconteceu com o 2.0 para 2.0.1.

Update 15:00hs: Como eu disse, o DHH acabou de fazer o anúncio sobre essa nova release ;-)

Bancos de Dados não relacionais é um tema alienígena à grande maioria dos web developers. Na realidade a maioria dos programadores sequer sabe que, o que eles chamam de “banco de dados”, é na realidade um “banco de dados relacional”, ou RDBMS.

A Amazon recentemente anunciou seu novo serviço SimpleDB ou seu database in the cloud. Ele trabalhará em conjunto com o serviço de storage S3 para prover armazenamento e administração de um banco de dados orientado a documentos manipulada através de APIs SOAP. Veja, o SimpleDB não é relacional, não tem schema, portanto não é orientado a colunas.

Chad Fowler acabou de reportar que ele procurou no RubyForge se alguém por acaso já não teria criado algum wrapper para as APIs do SimpleDB e, de fato, elas já existem. Temos os projetos aws-simpledb, o aws-sdb e o simpledb. E quem quiser estudar em detalhes o funcionamento das APIs do SimpleDB, deve ver a documentação? da própria Amazon.

Someone once challenged all other frameworks implying that no one would get close to what we are doing in Rails … except for Avi.Seaside is such a departure from the status quo that Avi himself describes it of a ‘heretic’ framework. And he is right. He looked back in history and took what is considered ‘the’ father – and arguably ‘the’ best implementaton – of object-oriented languages: Smalltalk.

Taking clues from the venerable Apple WebObjects he set his way to implement Seaside and his very successful web product, Dabble DB. Check it out who is the man, what are his opinions and why he is so relevant to the Ruby and Rails community even though he advocates another language and another framework. Sounds strange, but when Avi speaks, you listen.

He was very kind to provide me a very long interview. It is so long I divided it in 2 parts. This is the first Part. I will release the second one in a few days. Hope you all enjoy it.

Read the Interview in English here

Alguém uma vez desafiou todos os outros frameworks implicando que ninguém conseguiria chegar ao nível de Rails … exceto por Avi. Seaside é tão diferente do status quo que o próprio Avi o descreve como um framework herético. E ele está certo. Ele voltou na história e pegou o que é considerado “o” pai – e provavelmente “a” melhor implementação – das linguagens orientadas a objeto: Smalltalk.

Pegando dicas do venerável Apple WebObjects, ele implementou Seaside e seu produto de grande sucesso, Dabble DB. Vejam aqui quem é o homem, quais suas opiniões e porque ele é tão relevante na comunidade Ruby e Rails mesmo sendo defensor de outra linguagem e outro framework. Parece estranho, mas quando Avi fala, você ouve.

Ele foi muito gentil de me dar uma longa entrevista. Tão longa que eu dividi em 2 partes. Esta é a primeira. Vou liberar a segunda em alguns dias. Espero que todos gostem.

Pessoal, a repercussão do Rails 2.0 está enorme! Meu screencast e tutoriais geraram um tráfego monstro para meu site. Quem quiser saber mais sobre o assunto não pode deixar de comparecer ao Rails for Kids 2007. Unindo o útil ao agradável, irei falar pela 3a vez ao público sobre Rails 2.0 (a primeira foi na WebDevCamp 2 semanas atrás, e o Rio on Rails sábado passado). Não percam, será provavelmente minha última palestra deste ano. Todos os fundos arrecadados serão destinados à instituição Coto...

O melhor livro de Ruby está sendo atualizado para a Terceira Edição, acompanhando a evolução do Ruby para a versão 1.9. A Pragmatic Programmer já está vendendo o beta do livro que Dave Thomas está atualizando a partir da excelente Segunda Edição. Toda nova versão de Ruby tem que ser acompanhada de um Pickaxe. 120 páginas já foram atualizadas. Matz e Koichi ainda estão melhorando a linguagem e ela deve sair logo, o livro será atualizado acompanhando cada nova atualização e só será publicada qu...

This the continuation of “Part 1”:

This is the continuation of Part 1.

For the Screencast that I did, that inspired this tutorial, click here

I am looking for volunteers who are willing to translate this 2 part tutorial into Brazilian Portuguese and someone that can convert this into nice PDFs for everyone to download. I will do it myself eventually but maybe someone else have more time to spare than me right now.

Hope you enjoy the ride!

for brazilians: click here.

I am very happy to see that my Rails 2.0 Screencast was very well received. More than 1,500 unique visitors watched it. The idea was to showcase Rails 2.0 very fast, showing what is possible to do in less than 30 min.

Now, I will break that video down into its main pieces and create the very first full featured step-by-step tutorial around Rails 2.0.

Like any other tutorial, it doesn’t cover 100% of Rails 2.0, just some of its main features packed in a cohesive application. I recommend checking out Peepcode’s Rails2 PDF and Ryan Bates Railscasts.com for more details.

This is a 2 part tutorial, for Part 2, click here. And for the full source codes of this tutorial, get it here.

Let’s get started!

Quando falei de RejectConf pela primeira vez, o Thiago L. Christofoletti sempre mostrou interesse em querer participar. Mas ele está na França (!) portanto não pôde vir. Mas em compensação ele participou do Paris on Rails. Vejam as fotos que ele tirou do evento aqui.

A Europe está começando a prestar atenção em Rails, mas ainda não é a mesma febre que nos Estados Unidos. Europeu sempre foi mais conservador :-) Mas parece que a comunidade lá também está ganhando tração. Abaixo coloco as impressões que ele teve do Rails francês nas suas próprias palavras.

Este sábado tivemos o Rio on Rails, o pessoal da Improve it, pra variar, está de parabéns! Foi um ótimo dia para conhecer pessoas e discutir Rails. Reunimos num lugar só o RejectConf (eu), o Minas on Rails (Ronaldo) e o Rio on Rails (Improve it), o Sudeste fez sua parte, e aí galera do Sul, Nordeste, Centro-Oeste, Norte, quando vamos cobrir o país todo? :-)

A maratona para mim começou no dia 17/11 no RejectConf e desde então não parei um único fim de semana. O último capítulo desta saga será no sábado que vem, no Rails for Kids. Não se esqueçam, será um sábado inteiro de palestras online com objetivo beneficiente! Todos já se inscreveram? Quem viu o screencast que postei hoje já teve um gostinho do que será minha palestra: Rails 2.0.

Click here for the brazilian portuguese version:

I am very very proud to announce that the world-wide best selling Ruby on Rails book Agile Web Development with Rails will come to Brazil, translated into portuguese. That’s great news for our local community.

The book is already translated, and will be release probably in the first quarter next year, by Bookman Editora. So the hard work was already done. But I was also contemplated with the honor to technically revise this material to make sure nothing got lost or mistaken in the translation process, which is common. Makes me very happy because 1 year and a half ago, the Rails market here in Brazil was non-existent so I made a high bet releasing the very first Ruby on Rails book with original content for the brazilian audience. And fortunately our community got traction, and now the best selling Rails book is landing here.

This comes at a perfect timing, because I was also writing my second Rails book and the approach would be something like Dave Thomas’ book. Now I will change the direction and write a complementary book. Dave’s book explains the nuts-and-bolts of Rails 1.2. I will write a book to to only pinpoint the changes in Rails 2.0 but also detail some other subjects like important Rails plugins, gems, support tools like Capistrano and so on. So we will have books for both beginners and advanced developers in 2008 here in Brazil.

Update 2013: This screencast is obviously obsolete (this is Rails 2 and Rails is already at version 4). It’s maintained here for historical reasons.

Page down for brazilian portuguese article

Update 12/12: For those of you that think I was too fast in the video, I just posted a Tutorial with most of the content you can see in the screencast plus a few bonuses. I’ve split it into Part 1 and Part 2. Enjoy!

The First Screencast

Rails 2.0 was released officially last friday and it was a coincidence because I would present a keynote about it at our local “Rio on Rails”: http://www.rioonrails.com.br event here in Brazil. In this keynote I first presented the Rails 2.0 screencast. Tonight I decided to replay it a second time and mix an english narration over it.

I didn’t do deep research but I think this is the very first Rails 2.0 screencast released – correct me if I am wrong. The inspiration was, of course, the Creating a Weblog in 15 minutes the original screencast by David Hansson that caused so much discussion and polemic and that ultimately made Rails recognized throughout the internet.

The irony is that David made the real time blog programming during his keynote at FISL (Forum Internacional de Software Livre), back in 2005 here in Brazil. At that time almost no one knew what Rails was all about and very few people attended it. Now, almost 3 years later I’d like to go full cycle over it and make the very first Rails 2.0 screencast available from Brazil again. I hope this time our local development community pay more attention.

This time Rails doesn’t have to prove itself: it’s already got past this part. 2.0 is not about revolution, it’s about a stable and steady evolution. It’s about refinement and polish, making for an even greater user experience. I am enjoying it very much.

Without further ado, here it goes:

Meu amigo Satish Talim do Ruby Learning me pediu para ajudar a divulgar seu curso de Programação em Ruby. Será um curso online, em inglês, com lições, exercícios e tarefas todos os dias. O curso já está disponível para que todos possam se adiantar no material. O curso em si começa Segunda, 7 de janeiro de 2008. Quem quiser se aprofundar na linguagem pode se matricular agora mesmo. No curso que aconteceu em Agosto de 2006, mais de 100 pessoas participaram, na de Agosto de 2007 mais de 500 pess...

Está com cara que hoje é o dia! Eu ainda não vi a tag rel_2-0-0 no Subversion. No trac parece que já está fechado! Se não me engano o David costuma postar esse tipo de coisa à noite (no nosso horário), foi assim com as Release Candidates e talvez seja assim hoje também. A menos que apareça algum show stopper, ele deve oficializar no blog oficial muito em breve! Update: eu disse :-) Só foi um pouco mais cedo do que eu esperava. Eu já estava testando os Release Candidates e estou achando as no...

Caramba, hoje saíram várias coisas novas. Não tenho tempo hoje para falar individualmente de cada uma então farei um breve resumo do que é interessante.

Primeiro, mais um excelente podcast acabou de ser lançado. Sempre é bom ouvir os think-tanks e a Thoughtworks lançou o primeiro episódio com ninguém menos que Martin Fowler e sua equipe Dr. Rebecca Parsons, Neal Ford e Jay Fields. O tema deste episódio é DSLs e eu realmente não consigo imaginar uma equipe melhor para falar do assunto.

Não, não! Não é mais um daqueles artigos “Ruby vs Smalltalk”. Estava hoje lendo um fórum e caí nesse dilema novamente. Quando se fala que Smalltalk é mais orientado a objetos que Ruby o exemplo mais usado é que em Ruby fazemos condicionais de maneira imperativa (uma das maneiras):1 2 3 4 5

a = if expression 1 else 2 end

E em Smalltalk se faz passando mensagens ao objeto True ou False: expression ifTrue:[ a := 1 ] ifFalse:[ a := 2 ]1 2 3 4 5 6 7 8 9

Onde ifTrue e ifFalse são repres...

Hoje e amanhã está acontecendo a webdevcamp São Paulo 07, na Av. Rebouças, 3181 – Casa Gafanhoto. Estou blogando ao vivo, neste momento o pessoal do MercadoLivre está palestrando (é um dos patrocinadores). Está bem legal, eu fiz a primeira palestra sobre Rails 2.0, com demonstração ao vivo do que está por vir. Além disso fiz um anúncio exclusivo que só quem veio ao evento soube em primeira mão :-) Depois conto a todos aqui.