Desenvolvedores Rails que vieram de Java já devem ter notado: XML não faz falta. Não me entendam mal: XML é uma ótima ferramenta para descrever estruturas de dados, principalmente com os XML Schema ou DTDs adequados para validá-los. A vantagem em relação aos tradicionais textos com colunas separadas por vírgula ou similares é a exatidão da descrição, com possibilidade de validação antes de consumir esses dados. A primeira desvantagem óbvia é o processamento maior para realizar o parsing e também a gordura no tamanho por causa da redundância de tags. Existem maneiras de eliminar essas desvantagens.

Porém, muitos perverteram esse objetivo original. Temos visto os piores exemplos de como usar uma boa ferramenta para a coisa errada. Nós, programadores Java, começamos a ter que aprender outras “pseudo-linguagens”: Struts-config, Hibernate Mapping, JBpm Rules, Tapestry, Spring, etc. Qualquer pequeno projeto que use dois ou três desses frameworks já começam a ter problemas. E esqueçam os diversos plugins e IDEs, eles funcionam caso-a-caso. Sim, projeto XPTO usou com sucesso, mas diversos outros falharam miseravelmente. E também não venham colocar a culpa toda no programador. É realmente entediante dar manutenção ou extender aplicativos costurados com pseudo-linguagens. Não importa quão bem intencionados foram seus arquitetos.

Espero que todos gostem do novo blog. Acabei de migrar todo o conteúdo do antigo balanceonrails.blogspot.com, com todos os artigos publicados até hoje (27 de setembro). Este blog é baseado no excelente Typo 4. Dessa forma chegamos próximos ao lançamento do livro de Rails, agora em outubro, com estilo: afinal a casa é de ferreiro e o espeto também tem que ser de ferro! Finalmente ganhei as funcionalidades que não tinha no Blogger como categorização dos artigos, pesquisa (que inclusive utiliza ...

Pessoal, está confirmado, faremos um evento de lançamento do livro “Repensando a Web com Rails” no dia 24 de outubro a partir das 19hs, em São Paulo, na FNAC Paulista. Segue o endereço : Av. Paulista, 901 (ext. Alameda Santos, 960) O livro mesmo estará à venda nas livrarias antes disso, muito provavelmente a partir do dia 5 de outubro. E quem quiser comprar com desconto já pode adquirí-lo via pré-venda no site da Brasport. Aliás, meus agradecimentos a todos que já compraram e que me acompanha...

Há muito tempo leio posts esporádicos do blog Joel on Software, escrito por Joel Spolsky. Na verdade, para mim, Joel sempre foi algo do tipo “não cheira nem fede”, quer dizer, não me faz diferença. Nada pessoal, apenas nunca li nada dele que me interessasse. Seu feed está na minha lista e no meio de 80 outros feeds que leio diariamente, é apenas mais um.

Porém, quem acompanha a blogsfera Ruby foi pego de surpresa por uma discussão inusitada. Joel começou distribuindo FUD ao mundo (Fear, Uncertainty, Doubt – a estratégia de confundir as pessoas usando Medo, Incerteza e Dúvida). David Hansson é famoso por suas opiniões fortes e de não levar desaforo para casa. Ele entrou nessa argumentação no seu blog Loud Thinking.

Estamos muito próximos do lançamento do Rails 1.2. Alguns imaginavam que ele sairia antes da RailsConf Europe. Eu pessoalmente espero que não saia antes do fim do ano. Não, não estou torcendo contra, apenas acredito que com tempo adicional DHH e o resto do Core Team poderão estabilizar e testar melhor. Existem funcionalidades grandes e que dependem de muito teste antes de enfrentar o escrutínio do público.

Qualquer um pode acompanhar a evolução em direção à versão 1.2 baixando o Edge Rails (como já disse várias vezes em posts anteriores). Isso é muito importante não apenas para ver de antemão o que nos espera, mas também para colaborar enviando, pelo menos, relatórios de bugs encontrados e, preferencialmente, sugestões para correção. Sugiro que todos que tenham algum tempo sobrando, façam isso. Além de ser extremamente educativo, ainda contribuimos para a qualidade da comunidade.

David Hansson acabou de postar o relatório Decompressing RailsConf Europe em seu blog Loud Thinking. Ele descreve como foi o primeiro evento europeu sobre Rails, terminando a sequência da RailsConf Chicago de alguns meses atrás.

Espero que todos estejam atentos ao evento aspirante a uma futura RailsConf nacional: o evento promovido pela livraria Tempo Real e que acontecerá agora, dia 28 de outubro, na Universidade São Marcos, com apoio da br-linux.org, Dicas-L, RubyOnbr, Webmasters.

Ainda não é desta vez que teremos personalidades como David Hansson, David Black, Martin Fowler pelos trópicos, mas é um excelente começo. Congratulações a todos os organizadores do evento por mais esta iniciativa. Espero que todos vendo este blog possam participar, para que coisas grandes aconteçam é preciso que uma grande quantidade de pessoas apostem e apostem alto. Aliás, aprender uma nova tecnologia não deveria ser encarada como “difícil” ou “possível perda de tempo”. Eu perdi a conta de quantas tecnologias e linguagens aprendi nos últimos de anos. Aprendo pelo menos uma coisa nova por dia e encaro aprender como algo natural.

Falei sobre a RailsConf Chicago alguns posts atrás, agora traduzirei o post de David sobre a RailsConf Europe. Espero que isso ajude a incentivar as pessoas a pensarmos em uma RailsConf Brasil Oficial.

Não lembro se escrevi sobre isso em algum post ou se foi no meu livro mesmo, porém existe um senso comum que chamo de “Evolução pela Concorrência”. Discussões como “Ruby VS Java”, “Rails VS J2EE” não são exclusividades da comunidade Ruby on Rails (RoR). Muito pelo contrário. Vamos listar algumas discussões recentes no mundo da informática:

  • Firefox VS Internet Explorer
  • Macs VS PCs
  • Windows VS Linux
  • C# VS Java

A Microsoft é favorito no papel de vilão. Ela atua em praticamente todos os mercados de informática, por isso sempre será motivo de críticas. “Windows é ruim”, “Office é uma droga”, “Internet Explorer não presta”, “Visual Basic não é linguagem profissional”, etc. Alguns argumentos são válidos, outros são apenas birra de visões estreitas.

Críticas são construtivas quando as pessoas tomam atitudes. Radicais são desnecessários neste mundo. Pessoas que apenas xingam e não agem são irrelevantes: “quem não faz parte da solução, faz parte do problema”.

Galera, o livro está na reta final. Já está disponível para pré-venda no site da Brasport. Infelizmente a expectativa da segunda semana de setembro não será cumprida. A boa notícia é que esse atraso decorreu do fechamento recente do patrocínio da Balance Consulting ao livro, uma colaboração em prol da iniciativa. Ainda não temos uma data fixa da editora, mas será alguma coisa entre fim de setembro ou começo de Outubro. A todos que esperavam para agora peço desculpas, mas infelizmente é um pro...

Para os programadores avançados nas diversas tecnologias de conteúdo e web design, provavelmente o termo Adobe Flex não será novidade. Para os iniciados, o runtime Flash é tão ubíquito hoje que ninguém mais se preocupa se um browser suporta ou não animações flash. Depois de quase uma década, o Flash se tornou o que os Applets Java tentaram ser no começo: um runtime de aplicações Web em ambiente de interface rica (mais do que HTML). “E Ajax?” alguns perguntariam. Existe outra longa discussão d...

O primeiro contato de um novo Railer é através da funcionalidade de scaffold. Criando o projeto com o script "rails", depois criando os models com o gerador "script/generate model ", finalmente criamos as primeiras telas através do gerador "script/generate scaffold ". Nos screencasts disponíveis no site oficial do Rails, em diversos tutoriais espalhados pela internet e inclusive na apresentação da plataforma em meu livro, sempre o passo mais rápido é começar com sca...

Desde o dia 9 de agosto houve muito barulho a respeito do primeiro grande buraco de segurança no Rails. Já falei sobre ele em um post anterior mas acho importante documentar aqui, em português, sobre o que se trata. O conserto do bug traz uma funcionalidade extra que explicarei a seguir.

O mais importante: não existe sistema 100% seguro. Como argumentei antes, sistemas são feitos por pessoas e pessoas não são perfeitas. Toda plataforma tem problemas de segurança, alguns mais graves e periódicos (ahem, Windows), outros mais raros (OpenBSD). Isso não é apenas uma desculpa, é uma realidade que todo administrador de sistemas DEVE levar em consideração na sua rotina. A discussão no link acima deve ilustrar como os nervos estavam à flor da pele. David costuma ser bastante incisivo quanto a críticas. É seu estilo e não tiro sua razão.

Impressionante o nível de histeria dos javeiros hoje no TheServerSide.com. Primeiro, um serviço de utilidade pública: se você utilizar Rails 1.0 ou superior, obrigatoriamente deve atualizar para o patch 1.1.5 ou a versão 1.1.6. Foi descoberto um problema sério de segurança. David Hansson e o Rails Core Team recomendam que a atualização seja feita para ontem, sem titubear. Não existe “talvez”: principalmente se você tiver um website público em Rails, atualize! (Veja documentação completa com d...

Um amigo meu acabou de avisar deste post no site oficial do RadRails. Para quem não conhece RadRails é uma das IDEs mais famosas para Rails, usando (pasmem!) a tradicional plataforma Eclipse, escrita em Java, para abrir as portas para desenvolvedores Rails. E agora até a poderosa SAP começou a dar ouvidos a esse movimento. Depois do apoio da IBM tanto à RubyCentral como com o lançamento do pacote Starter Toolkit for DB2 on Rails, agora é a vez da SAP. A coincidência é que esse post levanta as...

O assunto de hoje não poderia ser outro senão a abertura da WWDC 2006 (Apple WorldWide Developer Conference) e a apresentação sempre eloquente de Steve Jobs a respeito da finalização da transição para a plataforma Intel (trabalho incrível feito em menos de um ano) e o lançamento dos novos Mac Pro, XServe (absurdos Dual-Core 2 Duo de 3Ghz com 4Mb de L2) e o tão esperado Mac OS X 10.5 Leopard (chamado no evento de Vista 2.0, ou “a próxima coisa que a Microsoft irá copiar”). Para a comunidade Ra...

nota sobre o livro: só para informá-los que finalmente recebi a cópia impressa do texto revisado para que eu resolva algumas dúvidas do revisor e também repasse o texto. Devo entregar a versão final do texto nesta semana para o material seguir para o pessoal de editoração. Depois disso deve levar cerca de 15 a 20 dias para editorar e, finalmente, mais uns 10 dias até chegar à versão impressa final. O material impresso é grande: mais de 900 folhas de papel, é difícil imaginar a quantidade física quando se acostuma a trabalhar apenas nos arquivos Word. Não entendi ainda porque não usam o recurso de Track Changes do Word, mas enfim …

Voltando ao assunto deste post, a versão 1.1 saiu faz pouco tempo mas estamos vendo com entusiasmo a chegada próxima da versão 1.2. Dentre as novidades provavelmente teremos um instalador mais simples para ajudar os iniciantes a ter um ambiente funcional mais rápido. Além disso também poderemos ver o servidor Webrick ser deprecado em favor do fabuloso Mongrel, de Zed Shaw. Felizmente foi uma previsão que fiz algum tempo atrás quando decidi detalhar o Mongrel no meu livro, em vez de alternativas com FastCGI ou mesmo simplesmente mostrar o Webrick. Finalmente, a funcionalidade técnica que deve mudar um pouco a maneira de desenvolver: simply_restful.

Quando lemos alguma descrição de Ruby frequentemente vemos a sigla DSL (Domain Specific Language). Quando lemos uma descrição de Rails também vemos a definição que “Rails é uma DSL para aplicativos Web”.

Mas o que é uma DSL? Martin Fowler, um renomado escritor de livros de engenharia de software, especialmente no assunto de Design Patterns, nos dá uma definição para DSL em seu Bliki. Vejamos a tradução:

Acabei de ler um post chamado “Cool Reception” no blog Cocoa. Ele lida com um assunto delicado: “por que programadores Java mostram tanta resistência a Rails”.

Eu colocaria isso mais genericamente: “por que muitos programadores mostram tanta resistência a qualquer mudança?”.

A conclusão é simples. Aqui vai a tradução de seu post:

Há alguns dias finalmente comprei o novo Macbook White 2.0Ghz Core Duo com 2Gb de RAM.

É uma máquina fantástica que supera em muito meu notebook anterior, um velho Toshiba Sattelite P15 2.8Ghz Hyperthreading com 1.5Gb de RAM.

“O que Macs tem a ver com um blog de Rails?” alguém poderia se perguntar. Tudo a ver. Vejam as fotos da RailsConf no post mais abaixo ou então no álbum do Flickr. Segundo alguns relatos, compareceram cerca de 500 pessoas e mais de 80% delas carregando Macbooks.

E não é só na RailsConf. Quem foi à OSCON ou outros eventos Open Source deve ter visto a mesma coisa: a população de MacBooks crescendo dramaticamente dentro de todas as comunidades de desenvolvedores. O próprio David Heinemeir Hansson é um grande defensor de Macs e ele utiliza um Macbook tanto para fazer suas apresentações quanto para desenvolver o Rails.

Apenas para atualizar o status do andamento do livro, anuncio que a revisão do texto ainda está em andamento e a época de lançamento continua sendo aproximadamente no começo de setembro agora. Não temos uma data exata ainda. Para piorar o trabalho do revisor e da editora eu enviei hoje um novo material de última hora. Na realidade apenas mais 4 páginas. Há mais de um mês, quando ainda estava escrevendo o livro, enviei duas entrevistas a duas pessoas: a primeira foi para Yukihiro Matsumoto que...

Para quem não conhece, Jeff Bezos é o lendário fundador da Amazon.com (espero não ter que explicar o que é a Amazon). 37signals é a empresa criadora de produtos como Basecamp, Ta-da List, Writeboard, Backpack, onde David Heinemeir-Hansson trabalha e de onde saiu Ruby on Rails. Dois dias atrás foi anunciad que a 37signals aceitou investimento da Bezos Expeditions, uma Venture Capitalist. Até hoje a 37signals seguiu uma filosofia de startup auto-suficiente, mas pelo visto eles querem crescer ma...

Vamos lá pessoal! Por que os brasileiros precisam ser os últimos a largar na corrida? Enquanto a maioria ainda tenta evitar o inevitável, lá fora já tivemos Canada on Rails, RubyKagi no Japão, está acontecendo a RailsConf Chicago e dentro de algumas semanas a RailsConf Europe. Isso significa que a América do Norte, Europa e Ásia estão cobertos com Rails. Menos a América do Sul. Menos o Brasil! Queremos um evento como este, a RailsConf Chicago que está acontecendo agora: Programação não deve s...

Estava demorando um pouco para fazer isso, mas finalmente arranjei algum tempo para mais uma apresentação que deve complementar o do post anterior (10 coisas que todo programador Java deve saber sobre Ruby). Entendendo Rails é uma apresentação que toma como base o vídeo “Criando um Weblog em 15 minutos com Rails”, disponível no site oficial do Ruby on Rails na categoria “screencasts”. Porém, este vídeo ainda utiliza versões antigas do Rails. Nesta nova versão tomei a liberdade de fazer divers...

Estou muito satisfeito por anunciar que está a caminho o primeiro livro de Ruby on Rails em português, no Brasil. O contrato foi assinado recentemente e o livro vem sendo escrito há algumas semanas. O status atual é de mais de 400 páginas com meta para 500 e deve estar pronto nos próximos dias. A editora Brasport estará distribuindo o livro algumas semanas depois. O título provisório é “Repensando a Web com Rails”, seu autor sou eu mesmo, Fabio Akita. Entrei em contato com a comunidade estran...

Este post é um pouco velho, mas nem por isso menos interessante. Principalmente se considerar que o relato é baseado em uma versão antiga de Rails, a 0.13.1, bem antes da 1.0.

O post completo está neste link. Mas para aqueles que tem preguiça de ler em inglês (envergonhem-se), resolve dar uma colher de chá e traduzir em português, pelo bem da comunidade. Este texto merece ser divulgado.

Como testamento à facilidade do Rails, resolvi testar a criação de um plugin implementando um algoritmo conhecido no mundo de bancos de dados relacionais.