Arquivo

Textos com Etiquetas ‘Rails’

Ruby e Rails no Mundo Real 2010

15, março, 2010

Estão abertas as inscrições para o Ruby e Rails no Mundo Real 2010, o evento da comunidade de Ruby e Rails em São Paulo.

O evento, que é organizado pelo Guru-SP, acontecerá no dia 29 de maio, das 9h às 18h, no Century Flat Paulista, Rua Teixeira da Silva, 647 - Paraíso.

A edição do ano passado reuniu 160 participantes, e eu estava lá. Dá uma olhada no cara de camiseta laranja e boné vermelho na foto.

Esse ano as palestras serão:

O valor da inscrição é R$ 69,00 ou R$ 49,00 para quem participou do ano passado.

Demais informações você tem no site do evento.

Eventos, Ruby , , , ,

Use a cabeça! Aprenda Rails

16, novembro, 2009

Rails Summit 2009: o que rolou no segundo dia

18, outubro, 2009

Quarta, 14 de outubro, aconteceu o segundo e último dia do Rails Summit Latin America 2009, o maior evento das comunidades Ruby e Ruby on Rails da América Latina.

Todos os palestrantes do Rails Summit Latin America 2009 por Daniel Cukier

Vamos às palestras.

Richard Kilmer: MacRuby + HotCocoa

Richard Kilmer mostrou como o MacRuby e o HotCocoa podem simplificar o desenvolvimento para aplicações que rodam no Mac OS X. Ele disse que alguns objetivos da Apple são fazer o Mac OS X a melhor plataforma para desenvolvimento em Ruby e tornar Ruby a principal linguagem de programação para o framework Cocoa.

Ele explicou que com a utilização de RubyCocoa há o processo do Ruby rodando de um lado que conversa com o runtime do Objective-C, sendo assim há dois garbage collectors. Além disso, a sintaxe do RubyCocoa, adaptada do Objective-C é um tanto “odd”, quando se diz respeito a selectors do Objective-C.

Já com MacRuby, a sintaxe usando hashs nos parâmetros dos selectors ficam mais claras. Em geral, a sintaxe fica muito mais simplificada que a sintaxe que Objective-C. O MacRuby unifica o modelo de objetos de Ruby e Objective-C, tudo que é objeto no Ruby é objeto no Objective-C.

Com a versão 0.5 doMacRuby haverá uma nova máquina virtual chamada LLVM (Low Level Virtual Machine), que compila código Objective-C. Todas as características dinâmicas do Ruby iram rodar com melhor performance.

Richard por fim exemplificou como o HotCocoa simplifica o uso de recursos de Objective-C utilizando MacRuby. Foi mostrado um exemplo de código com e sem HotCocoa e a quantidade de código que se reduziu o programa foi incrível. Você consegue criar janelas, botões e outros controles com ele usando poucas linhas de código.

O vídeo da apresentação você pode assistir aqui e os slides da apresentação você pode visualizar aqui.

Carlos Villela: Ruby na ThoughtWorks

Carlos Villela fez sua apresentação baseada no artigo Ruby at ThoughtWorks publicado por Martin Fowler. Ele disse que a ThoughtWorks é pioneira em desenvolvimento ágil e que possui em torno de 42 projetos em Ruby espalhados pelo mundo. Na Inglaterra, a adoção de Ruby demorou um pouco em relação a outros países. A grande maioria dos projetos em Ruby aconteceram nos EUA.

Em uma pesquisa interna, foi perguntado se Ruby foi uma boa escolha? A maioria respondeu que sim e que Ruby era mais produtivo realmente, sendo que 13 dos 42 projetos acharam que a produtividade dobrou. Mas 5 disseram que não foi uma boa escolha, onde 4  dos 5 disseram que havia uma curva de aprendizado que não cabia no projeto.

Quanto a performance nenhum projeto teve problema.

Também foi pergunta na pesquisa se Ruby é difícil de entender? Existe muita coisa nova em relação a outras linguagens comerciais e há, além da curva de aprendizado, a curva de manutenção. Quando mais você usa meta-programação você acha que é óbvio e bom, mas excesso de meta-programação não é um bom sinal.

Ele disse que muitas vezes a plataforma Ruby não é viável por conta do ambiente da empresa, e enfatizou que Ruby não é uma solução para tudo.

No final da palestra ele apresentou algumas dicas:

  • Controllers magros, modelos cheios, mas não ter toda a lógica do sistema, somente o que for lógica de negócio.
  • Testes com ActiveRecord falando com banco de dados de verdade, sem usar stubs.
  • Exposição de SQL no AcitveRecord: muitas vezes é inevitável.
  • Requisições de longa duração: uso de filas quando possível e um módulo separado do Apache que não roda no Rails (gambi?).
  • Controle de Gems: tomar cuidado para uma atualização de gem não quebrar o que está funcionando.
  • Atualizações: pode quebrar seu código, não demore muito para atualizar suas gems.
  • Desenvolvimento no Windows: não rola, rodar em produção é viagem, desenvolver no Windows dá, mas não vale a pena.
  • Não se empolgue tanto com plug-ins: confira se o plug-in tem um mínimo de qualidade, não saia instalando tudo quanto é plug-in no seu projeto, planeje bem isso para não criar um monte de dependências.

O vídeo da apresentação você pode assistir aqui.

Nando Vieira: O que mudou no Ruby 1.9

Nando Vieira
por Levy Carneiro

Nando Vieira mostrou as diferenças da nova versão do Ruby e deu dicas para uma futura migração do seu código atual.

Os slides da apresentação você pode visualizar aqui.

Pratik Naik: Lessons Learnt in 2009

Pratik Naik
por Levy Carneiro

Eu não assisti a palestra do Pratik Naik. De acordo com Herbert Fischer, problemas como posicionamento de microfone e slides com fontes pequenas atrapalharam um pouco.

De qualquer forma, o vídeo da apresentação você pode assistir aqui.

Marcos Tapajós: CouchDB no Rails

Marcos Tapajós iniciou apresentando alguns recursos e características do CouchDB:

  • Orientado a documentos: no CouchDB um documento nada mais é do que um JSON.
  • Há uma maior flexibilidade, pois não há esquema definido.
  • Se quiser colocar mais um campo, vai lá no JSON e acrescenta, não precisa alterar o banco de dados.
  • A comunicaçào com o banco é feito por REST.
  • Todos os documentos armazenados no banco são versionados. Todas as operações que você faz no banco, é criada uma nova versão.
  • Há um rotina de manutenção para eliminar as versões de documentos anteriores, com um gerenciador de conflitos.
  • É legal você quebrar os documentos de uma forma que você evite a possibilidade de conflitos. Acaba sendo uma sutileza, não porque o documento vai ficar grande.
  • As consultas no CouchDB são feitas através de views, utilizando o conceito de map reduce.
  • É possível fazer replicação bidirecional no CouchDB. Essa replicação fica consistente por conta do versionamento de documentos.
  • A replicação traz uma grande vantagem de você ter uma aplicação offline, que pode ser sincronizada com outra base que funciona como Master. Funciona mais ou menos como no Git, onde você tem um repositório local e vai sincronizando com o repositório remoto.
  • É possível gravar arquivos binários (doc, pdf, jpg, etc) como “attachments”.  Nas consultas você não trafega os anexos, a não ser que você especifique isso quando quiser trazer o arquivo.

Depois ele falou que o casamento entre o CouchDB e o Ruby é muito bom. Você pode pegar o objeto como ele é na sua aplicação e jogar isso dentro do banco de dados. Com isso, elimina o mapeamento objeto-relacional.

APIs CouchDB de Rails que mapeiam como ActiveRecord não são legais. Você tem que quebrar o paradigma de um banco de dados relacional.

Por fim, ele recomendou o utilização da gem CouchRest para interagir com o CouchDB no Rails.

Os slides da apresentação você pode visualizar aqui.

Bruno Miranda e Jeison Seifer: Rails não Escala

Usando o estudo de caso do Cyloop, uma aplicação Rails por baixo do canal de áudio da MSN do Canadá até a Argentina, incluindo MSN Brasil, Bruno Miranda e Jeison Seifer mostraram como ajustar uma arquitetura para escalabilidade com técnicas incluindo filas, engines alternativos de storage, Rails Metal e Web Services.

O vídeo da apresentação você pode assistir aqui.

Vinícius Telles: Do serviço ao produto

Vinicius Telles contou a interessante trajetória de sua carreira. Não vou me alongar aqui, pois você pode (e deve) assistir a palestra inteira. Somente quero frizar algumas frases interessantes que foram ditas:

  • O líder sempre é o culpado, mas quem leva os méritos é a equipe.
  • Saiba escutar e reconheça seu erro.
  • Existe uma diferença entre os EUA e o Brasil: lá fora eles tem uma auto-estima enorme.
  • Se você não fizer algo que não lhe satisfaz, não faça mais isso. Você nunca conseguirá voltar no tempo.
  • Primeira coisa para abrir uma empresa: pense em ter uma reserva. Às vezes a reserva é seu próprio atual emprego.
  • Software tem muito a ver com relacionamentos entre pessoas, no caso seus clientes, do que mais do que tecnologia.
  • Converse com o cliente: pessoalmente ou por telefone. As pessoas não tem confiança que tem alguém do outro lado.
  • Isoladamente o software, a reserva e o relacionamento com o cliente não importa, o que importa é o conjunto que essas coisas geram.
  • Paciência é muito importante para o empreendorismo.
  • A melhor maneira de se destacar nesse mundo é compartilhar suas experiências. Ajudar as pessoas acaba sendo uma iniciativa de marketing.

Arthur Zapparoli: Git - Controle de Versões do Jeito Certo

A palestra do Arthur Zapparoli eu não assisti, mas os slides da apresentação você pode visualizar aqui.

Obie Fernandez: Mastering the Art of Application Development

Para fechar o Rails Summit 2009, Obie Fernandez fez sua apresentação dizendo que desenvolvimento de aplicações é arte. O importante é a prática, em tudo que você faz, para se tornar um mestre.

O desenvolvedor deve, ou deveria passar, por estágios semelhantes ao Shu Ha Ri:

Numa primeira fase, você está em Shu, o “seguir”, você ouve o que o instrutor/professor/sênior está lhe passando a informação e você simplesmente “recebe” e repete o que ele manda. Você ainda não é capaz de discutir ou raciocinar sobre isso agora porque você basicamente não tem conhecimento ou vivência o suficiente pra isso.

Em uma segunda fase você passa pra Ha e começa a experimentar caminhos diferentes, começa finalmente a raciocinar sobre o que está fazendo e fugir um pouco dos caminhos que o mestre ensinou.

Na última fase, o Ri ou transcendência, o estudante vira praticante e busca agora originalidade na prática, ele a aperfeiçoou de uma forma que ela não é mais igual a do seu mestre mas sim a melhor para ele mesmo.

Descrição de Shu Ha Ri retirada do comentário de Maurício Linhares de Aragão Junior no post http://akitaonrails.com/2009/09/26/off-topic-procurar-raciocionar-faz-bem

Obie sugeriu que para se tornar bom em alguma coisa, uma pessoa deve ter 10.000 horas de prática, enfatizando não só as 10.000 horas, mas também a prática correta, do jeito certo.

Ele questionou: Quantas horas você realmente codifica (pratica)? Em que você gasta o seu tempo?

E para finalizar: “Keep practicing for excelence. What you waiting for?”

O vídeo da apresentação você pode assistir aqui.

Eventos, Ruby , , , ,

Rails Summit 2009: o que rolou no primeiro dia

13, outubro, 2009

Hoje aconteceu o primeiro dia do Rails Summit Latin America 2009, o maior evento das comunidades Ruby e Ruby on Rails da América Latina.

Antes de iniciar a abertura do evento, eu e o Luciano Coelho aproveitamos para jogar algumas partidas de baseball e tênis num dos Wii que estavam disponíveis para a galera jogar. Mas vamos às palestras do dia.

Chad Fowler: Ruby on Rails Insurgency

Na primeira palestra do dia, Chad Fowler mostrou um pouco de como o Rails está alcançando desenvolvedores corporativos e sendo utilizados por empresas startups.

Chad Fowler é autor do livro The Passionate Programmer: Creating a Remarkable Career in Software Development, o qual você pode obter aqui.

O vídeo da apresentação você pode assistir aqui.

Gregg Pollack: Scaling Rails in 60 seconds

Gregg Pollack deu dicas de utilização de plugins do ActiveRecord e Rails, como o Bullet e o Rack-bug, e libraries, como o Mad Mimi, que ajudam a otimizar aplicações Ruby on Rails.

O vídeo da apresentação você pode assistir aqui e uma lista completa dos plugins você tem nesse link.

Carlos Brando: Como o Rails funciona por dentro

Em sua palestra, Carlos Brando acabou falando mais a respeito do framework Sociably, que está desenvolvendo na empresa SocialSmart.

Logo na introdução do apresentação ele perguntou à platéia quem programava em Rails. A grande maioria levantou a mão. Mas aí, ele disse: “Ninguém aqui programa em Rails, vocês programam em Ruby. Ruby on Rails não é linguagem de programação, é um framework Web desenvolvido em Ruby.”

Além disso, ele fez uma analogia com o Rails sendo igual macarrão instantâneo, pois rapidamente fica pronto. Mas não dá para fazer feijoada com miojo, então Rails não serve para tudo.

Os slides da apresentação você pode visualizar aqui.

Glenn Vanderburg: Tarantula - Rails Fuzz Testing

Glenn Vanderburg apresentou o Tarantula, um plugin Rails para realizar testes fuzz de maneira fácil e repetitível para aplicações Rails.

O vídeo da apresentação você pode assistir aqui.

José Valim: Geradores de código com Thor e Rails 3.0

José Valim explicou como o Thor uniu os geradores de código, tarefas e templates do Rails, substituindo o Rake, Sake e Rubigen.

Os slides da apresentação você pode visualizar aqui.

David Chelimsky: RSpec and Cucumber: Beyond the Basics

David Chelimsky, acabou falando praticamente somente de RSpec. Ele destacou que utilizando BDD com RSpec, você mantém o foco no comportamento, cria uma documentação executável, os testes são fáceis de ler e acabam sendo uma otimização de TDD.

Uma frase interessante da palestra foi “Balancing DRY and clarity is an art”.

David Chelimsky é autor do livro The RSpec Book: Behaviour Driven Development with RSpec, Cucumber, and Friends, o qual você pode obter aqui.

Fabio Kung: DSLs Internas e Ruby

Fabio Kung
por Levy Carneiro

Essa apresentação do Fabio Kung infelizmente eu não assisti, mas quem viu disse que gostou muito.

O vídeo da apresentação você pode assistir aqui, os slides da apresentação você pode visualizar aqui e o código-fonte você pode baixar aqui.

Fabio Akita: Agile, além do Caos

Nem me arrisco a falar muito dessa palestra do Fabio Akita. Ela foi muito boa, mas foi uma grande viagem. Coisas do tipo “Caos não é aleatório, caos não é caótico.” e “Auto-organização emerge de sistemas caóticos naturalmente.” ditaram o rumo da apresentação.

O que achei interessante é que no final das contas, as idéias foram lançadas, mas não houve conclusões. Cada um pensa a respeito do viu e ouviu e se quiser, ou puder, tire suas conclusões. Meu, viagem, assista.

O vídeo da apresentação você pode assistir aqui.

Matt Aimonetti: The Future of Ruby & Rails

Matt Aimonetti mostrou o que vem por aí na versão 3.0 do Rails com a junção do Merb. Também falou a respeito das novidades do Ruby, JRuby, IronRuby e MacRuby.

O vídeo da apresentação você pode assistir aqui.

Desconferência

A desconferência é um espaço para os participantes do evento fazerem suas próprias apresentações e palestras em um curto espaço de tempo.

O destaque foi para o Aldo Filho, um garoto de 11 anos, que fez uma apresentação da sua trajetória em dois meses para aprender a programar (desde o Oxente Rails) e depois, ao vivo, criou o tal do blog em 15 minutos.

E imaginar que tem nêgo barbado que não consegue fazer uma apresentação, o garoto teve a coragem de subir no palco e programar na frente de mais de 100 expectadores.

O vídeo da apresentação você pode assistir aqui.

Eventos, Ruby , , , ,

Rails Magazine: revista grátis sobre Rails e Ruby

5, setembro, 2009

Estou começando a desenvolver em Ruby on Rails e, da mesma forma que descrevi no post anterior, gostaria de ler uma revista específica sobre o assunto. Até então não havia encontrado nenhuma e estava até pensando se os rubystas brasileiros não tomariam a iniciativa.

Eis que ontem leio uma mensagem no Twitter do Fabio Akita recomendando a leitura da edição 4 da Rails Magazine. Fiquei muito feliz em saber sobre a existência dessa revista.

E como não poderia deixar de ser, já que estamos falando sobre Ruby, a revista é grátis. Você pode baixar o arquivo PDF de cada edição ou navegar no site pelas edições para ler online os artigos. Caso você opte pela versão impressa, aí sim terá que pagar pela mesma.

A Rails Magazine se auto-define como uma revista periódica, mas não especifica qual é essa periocidade. A revista é mantida pela comunidade Ruby on Rails e aceita contribuições e sugestões de artigos. Além disso, doações são bem vindas para manter a revista no formato atual.

Você pode acessá-la utilizando o endereço abaixo:
http://railsmagazine.com

Ruby , , , , ,

Rails Summit 2009

24, julho, 2009

Estão abertas as inscrições para o Rails Summit Latin America 2009, o maior evento das comunidades Ruby e Ruby on Rails da América Latina.

O evento, que é organizado pelo Locaweb, acontecerá nos dias 13 e 14 de outubro, no Centro de Convenções Anhembi, em São Paulo. A última edição reuniu mais de 550 participantes.

Palestrantes como Obie Fernandez, Chad Fowler, Fabio Akita, Richard Kilmer, Vinicius Telles e Carlos Brando estarão presentes.

O valor da inscrição é R$ 400,00 ou R$ 200,00 para estudantes. 10% de desconto para grupos de 5 ou mais registros inteiros (não-estudantes).

Inscrições, programação, lista completa dos participantes e demais informações você tem no site do evento.

Eventos, Ruby , , , ,

Livro Head First Rails em português

24, julho, 2009

Use a Cabeça Rails - Dawn GriffithsEstá previsto para 15/08/2009 o lançamento do livro Use a Cabeça Rails, pela editora Alta Books, que promete mostrar de uma maneira divertida como utilizar os recursos do Ruby on Rails, um framework para desenvolvimento ágil de aplicações Web baseado em Ruby, que aumenta a velocidade e a produtividade do desenvolvimento de suas aplicações sem comprometer a qualidade do código.

O livro original, Head First Rails de David Griffiths, publicado pela editora O’Reilly, faz parte da série Head First, que traz um formato diferente de transmitir conhecimento. Segundo os criadores da série, Kathy Sierra e Bert Bates, a abordagem consiste em apresentar a informação para o cérebro de forma amigável e interessante, usando exemplos do cotidiano, o que faz com que a aprendizagem seja mais fácil e prazerosa. O cérebro é estimulado a aprender. O truque é fazer com que seu cérebro defina qual informação é realmente importante.

Tendo como base pesquisas de neurobiologia, ciência cognitiva e teoria do aprendizado, os livros da série Head First têm um visual rico, recheados de ilustrações inteligentes, projetados na forma como seu cérebro funciona; não se tratando de uma abordagem pesada que faz com que você caia no sono profundamente.

A Alta Books já publicou várias traduções dos livros dessa série, com o nome de Use a Cabeça.

Através do Submarino, você pode cadastrar seu e-mail nesse endereço para ser avisado quando o livro estiver disponível para venda, pois o mesmo já aparece no catálogo.

O livro Use a Cabeça Rails, que tem como preço inicial R$ 76,41, é uma ótima opção para quem quer aprender ou está começando a mexer com Ruby on Rails.

Ruby , , , , ,

fisl10 - TDD e Rails: Mais rápido, mais forte e melhor

30, junho, 2009

A primeira apresentação que assisti no fisl10 foi muito boa. Lucas Húngaro mostrou formas de criar aplicações Ruby on Rails com testes, passando um pouco da sua experiência em desenvolvimento Web.

Lucas Húngaro

A palestra foi dividida em quatro partes: Fundamentos, Abordagens, Como eu desenvolvo com testes no Rails e Dicas. Mas separei aqui em mais duas: Boas Práticas e Maus Sinais.

Leia mais…

Apresentações, Eventos, Ruby, TDD , , , , , , , , , , , , ,

Curso de Ruby on Rails na Caelum

18, abril, 2009

Entre os dias 06 e 16 de abril tive a felicidade de participar do curso Desenvolvimento Ágil para Web 2.0 com Ruby on Rails na Caelum. Eu digo felicidade, pois o curso foi muito bom.

Eu sou bastante chato e seletivo em relação a cursos de informática. Na verdade, todos os cursos que fiz até hoje, sempre foram pagos pela empresa que eu trabalhava no momento. Eu sempre preferi um bom livro a contratar um curso.

Mas esse realmente foi diferente. Posso até dizer que foi o melhor curso que participei até então (talvez também porque eu não tenha participado de muitos).

O curso foi ministrado pelo Fabio Kung, que tem uma ótima didática e se mostrou ser um “fuçador” assim como eu. Só para você ter uma idéia, o cara fica fuçando código de compiladores. Acho que ele vai acabar criando um.

O que mais me chamou a atenção do curso vai a ênfase em mostrar como as coisas funcionam por trás dos panos. Toda a “mágica” do Rails foi dessecada e no final das contas o “ator principal” do curso foi o Ruby e não o Rails. Metaprogramação, duck typing, syntax sugar, missing method, mixins, programação funcional, “the Ruby way”, tudo isso foi mostrado de forma clara e entendível, o que tornou muito mais interessante o aprendizado.

Até então, o contato que eu tinha com Rails era um pouco com a sensação de pisar em ovos. Por exemplo, eu sabia como as validações no ActiveRecord eram usadas, mas não sabia como aquilo realmente acontecia. Depois de entender o dinamismo do Ruby, a coisa ficou totalmente clara. Em vários momentos do curso acendeu aquela luzinha do professor Pardal em cima da minha cabeça, com idéias do que eu posso fazer com o poder que o Ruby me oferece.

Agora já consigo vislumbrar um vasto número de possibilidades utilizando Ruby. Entender como as coisas realmente funcionam no Ruby é fundamental para aprender Rails.

É claro que, chato como sou, também não gostei de tudo no curso. A parte que não me agradou foi a utilização do Aptana RadRails como ferramenta de desenvolvimento. Na minha opinião, não deveria ser utilizada nenhuma IDE no curso, apenas um editor de texto. Mas o Fabio Kung deixou livre para que os alunos optassem pelo editor de texto ou a IDE. No final das contas ele preferia que usássemos o editor de texto.

Eu recomendo o curso a todos que queiram aprender Ruby on Rails e que pretendem ir além do básico. Que não querem ser mais um “programador usuário” de frameworks de mapeamento objeto-relacional. Você pode fazer muito mais além do que o Rails tem a oferecer. Quando a ficha cair, você vai parar de usar scaffold e vai descobrir que a mágica do Rails não é tão mágica assim, mas sim é mais um ótimo uso dos poderosos recursos de uma linguagem com tipagem dinâmica, como o Ruby.

Ah, e o meu obrigado à Locaweb que ofereceu o curso para mim e para minha equipe.

Cursos, Ruby , , ,