Posts Tagged ‘git’

RubyConf 2010 – estivemos lá! – Segundo dia

novembro 11, 2010

O segundo dia começou com o keynote do Evan Phoenix, que palestrou sobre o Rubinius, uma Virtual Machine para Ruby. Na palestra houve uma visão geral do Rubinius que é um plataforma para rodar código Ruby e houve grande destaque na parte de performance que o Rubinius fornece e também nas facilidades que ele traz, como por exemplo para fazer testes de performance.

Charles Nutter falou sobre o JRuby, a máquina virtual Ruby que roda sobre a JVM. Ele explicou detalhes, funcionalidades e vantagens do JRuby como:

  • Instalação e configuração rápida do JRuby;
  • Ampla gama de plataformas suportadas pelo JRuby, incluindo Windows, Z/OS, AS/400, Android.
  • Suporte a Threads nativas reais no JRuby;
  • Uso e reúso de bibliotecas Java e bibliotecas nativas no JRuby;
  • Diferenças de performance grandes em relação a VM Ruby “canônica”;
  • Compilador JIT;
  • Rails executa corretamente no JRuby;
  • Suporte a quase toda API do Ruby até 1.9.

Também tivemos exemplos rápidos de aplicativos durante a palestra:

  • “jirb”, o console interativo do JRuby;
  • Um simulador de piano rodando no JRuby;
  • Um renderizador de círculos rodando no JRuby para o Android;
  • Um jogo que usava JMonkeyEngine rodando no JRuby.

A palestra do David Chelimsky foi muito interessante pois ele falou sobre a manutenção do equilíbrio, reduzindo a duplicação de códigos em uma variedade de formas e os riscos associados a cada um. estratégias para reduzir a duplicação, sem sacrificar princípios de design como encapsulamento, baixo acoplamento e alta coesão.

O princípio DRY (Don’t Repeat Yourself) sugere que “cada pedaço do conhecimento deve ter uma única representação autoritativa dentro de um sistema.” Uma orientação forte, mas muitas vezes é atendido sem uma clara compreensão de suas motivações subjacentes, nem a consideração de outros princípios que poderiam levar o código a outras direções.

Depois do almoço houve a palestra do Ola Bini que falou sobre “O passado e o futuro das linguagens de programação”. A palestra dele foi bem interessante, pois mostrou as linguagens em que o Ruby foi inspirado, baseado em suas características principais.

Scott Chacon palestrou sobre Git, e sua palestra foi separada em duas partes: na primeira ele falou das novas funcionalidades da última versão do Git (1.7.3) e na segunda parte falou sobre alguns comandos do Git que não são tão populares. Maiores detalhes da palestra do Chacon podem ser encontrados na sua apresentação.

Após o coffee break o Alexandre Gomes falou de algumas escolhas, erros, acertos, atitudes e coragem? Como por exemplo: Computação ou medicina? Passar num concurso, enviar curriculos ou abrir uma empresa? Web, mobile ou desktop? Desde os tempos de escola somos inundados de questões que somente o curso da vida nos é capaz de responder. Em nossa formação escolar, somos orientados a seguir um único caminho, o caminho da estabilidade, segurança e conforto. Educam-nos a sermos submissos e obedientes e, condutas fora do padrão esperado são rechaçadas e condenadas ao castigo. Protagonizando essa história, estamos nós,  sob avaliação incisiva dos olhos críticos da sociedade. Poucos, acertam de primeira em suas escolhas de vida. Outros, no entando, não têm a mesma sorte e atrofiam-se em gaiolas de outro sem gozar do prazer de se viver dia após dia.

Fez refletir-nos sobre todos estes fatos, usando exemplos reais de rotinas de profissionais na mais diferentes situações e analisando porque a paixão pelo trabalho é a principal virtude compartilhada por profissionais e empreendedores de sucesso.

A última palestra do Ruby Conf 2010 foi a de Jim Weirich, uma das palestras mais aguardadas do evento, onde todos foram reunidos no mesmo horário e na mesma sala.
Figura importante no mundo Ruby, Jim é o cientista-chefe da EdgeCase LLC, uma empresa de desenvolvimento Rails localizado em Columbus Ohio.
A palestra falou sobre os princípios SOLID que são um conjunto de princípios de design que melhoram um design orientado a objeto.
Os cinco princípios são:
  • Princípio da Responsabilidade Individual
  • Principio Aberto / Fechado
  • Princípio da substituição Liskov
  • Princípio da Segregação de Interface
  • Princípio da Inversão de Dependência
Jim explicou cada um dos princípios, dando exemplos e principalmente fazendo muitas perguntas à platéia para que todos que quisessem opinar ficassem a vontade para falar a respeito das práticas de programação do SOLID.
O SOLID surgiu das linguagens de programação OO como C++ e Java, durante a palestra, Jim explicou como é possível utilizar o SOLID no Ruby on Rails.

Conclusão

A RubyConf 2010 foi excelente, com ótimas palestras sobre temas bem variados e com palestrantes de alto nível. No geral, as palestras foram de nível intermediário para avançado, isso é ruim por um lado, pois em várias acabamos “boiando”, mas em contrapartida é bom, pois nos faz perceber que precisamos aprender mais e força as pessoas a terem mais interesse em buscar entender melhor os assuntos e se aprofundar mais.

Esperamos que a RubyConf 2011 seja melhor ainda (com wifi funcionando rs). Parabéns a todos da organização e ao Fabio Akita pelo trabalho singular que vem exercendo na comunidade Ruby.

Autores:

Bruna Oliveira

Daniel Sakuma

Fabrício Campos

Glaucia Mekaru

William Nishio

Fonte imagens:

http://www.flickr.com/photos/locaweb/

RubyConf 2010 – estivemos lá! – Primeiro dia

outubro 29, 2010

Ocorreu entre os dias 26 e 27 a RubyConf Brasil, o maior evento de Ruby na América Latina. O evento foi no Centro de Convenções Frei Caneca, aqui em São Paulo. E nós da Voice Technology estivemos lá. 🙂

A seguir, segue as nossas impressões sobre a RubyConf 2010.

Organização

A organização da RubyConf foi muito boa, vários pontos merecem destaque:

  • A presença de uma “mestra de cerimônias”, para coordenar as trocas de palestras e dá os avisos, que ficou praticamente na sala 1, enquanto o Fabio Akita ficou na sala 2, cumprindo muito bem o papel também;
  • Coffee Break bem organizado, o único problema era o pouco espaço do saguão, frente a tantas pessoas que foram (a RubyConf LOTOU!);
  • As tradicionais Booth Babes da Locaweb (rs) que ajudaram nas horas das perguntas e do credenciamento.

Além disso, a localização do evento foi bem acertada, por ser perto do metro e como foi dentro do Shopping Frei Caneca, na hora do almoço, havia várias opções de restaurantes.

Palestras

Foram muitos palestras e não tem como falar sobre cada uma, mas vamos dá uma visão geral de como foram as que a nossa equipe participou (houveram duas trilhas).

A RubyConf começou com o keynote do Fabio Akita, onde ele deu uma visão geral sobre “ecossistema” em volta do Ruby, principalmente falando sobre Rails e a sua jornada como evangelizador de Rails, contando como ele começou com a linguagem e o framework e também citando as pessoas que fazem a diferença na comunidade, como por exemplo, o brasileiro José Valim, que é membro do core team do Rails.

Depois do keynote do Akita teve um excelente coffee break, onde o pessoal pode fazer o networking, e várias pessoas referências da comunidade estavam presentes na RubyConf.

Após o coffee havia duas trilhas de palestras e nossa equipe foi assistir a palestra do Yehuda Katz na sala 1, que falou sobre o uso de javascript do lado servidor e do cliente, dando boas dicas sobre como usar de forma eficiente. E também falou sobre o desenvolvimento do jQuery e SproutCore, dando boa enfâse na parte da performance do Sproutcore.

A palestra do Chris Wanstrath, co-fundador do Github, foi dada pelo Scott Chacon, que também é da equipe do GitHub. O tema da palestra foi o Resque, que é um sistema gerenciador de jobs em filas, que é uma boa alternativa para trabalhar com a execução de vários jobs e a distribuição deles de forma paralela.

O Resque é um projeto desenvolvido pelo próprio pessoal do GitHub para ajudar eles a processarem o grande volume de jobs do próprio GitHub. Após utilizar vários sistemas de filas, como por exemplo, o Delayed Job, eles acabaram optando por desenvolver o Resque , que hoje já conta com várias empresas utilizando ele e vários plugins.

Após o almoço, houve a palestra do José Valim, onde foi abordada as mudanças que o Rails 3 trouxe e o que será implementado na versão 3.1, que deverá sair em dezembro desse ano. A palestra foi muito boa, e deu pra perceber que o core team do Rails, está atuando fortemente para tornar o Rails cada vez melhor, tanto na parte da performance quanto na melhora do código em si, se preocupando bastante em deixar mais DRY e também mais modularizado e assim, flexível.

Logo após a palestra de José Valim, na sala 2 o tema era “Integrando o iPhone com Ruby on Rails + Geração de gráficos com Ruby on Rails”, apresentada por Pedro Franceschi.

Mais do que o tema, talvez o que chamou bastante atenção foi o palestrante: um garoto de apenas 14 anos que ganhou notoriedade desbloqueando aparelhos da Apple como Iphone e Ipod touch. Interessado em programação desde os oito anos de idade, atualmente, Pedro trabalha em uma empresa de tecnologia no Rio de Janeiro desenvolvendo aplicativos e jogos para diversos produtos da Apple.

Durante a palestra, apesar da pouca idade, o garoto mostrou bastante conhecimento técnico e desenvoltura em sua apresentação, mostrando e explicando códigos em Ruby on Rails de aplicativos que rodam no celular.

Na segunda parte da palestra, Pedro apresentou diversas gems utilizadas para gerar gráficos, explicando as vantagens e desvantagens de se utilizar cada uma dessas bibliotecas.

A palestra do Ricardo Panaggio e Thiago Pradi, foi sobre as suas experiências na RubySoC e ocorreu em paralelo com a do Pedro, na sala 1. Foi bem legal a palestra, deu pra entender bem o intuito de se participar de um evento como a RubySoC, onde o participante tem que contribuir com algum projeto open-source, seja uma solução própria, ou a melhoria de algo, e poderá receber até $5.000 pelo trabalho no projeto open-source. Ou seja, além da oportunidade de aprender MUITO e contribuir com a comunidade, o participante ainda irá receber por isso. Um ponto bem bacana que foi falado, foi que a participação em projetos open-source é uma ótima maneira de aprendizado, e não só no que tange a linguagem de programação, mas como também no uso do inglês e do trabalho e comunicação em conjunto, principalmente pela forte interação entre o participante e o seu mentor.

Depois da palestra do Ricardo e do Thiago houve o coffee break da tarde e logo após o coffee a última palestra do dia, do Lucas Húngaro onde ele compartilhou os seus conhecimentos sobre Rails.

O tema da palestra do Lucas parecia bastante interessante, mas logo no início deu para perceber que a apresentação foi feita as pressas e que não foi feita nenhuma prévia para verificar os slides no projetor.

Foi praticamente impossível acompanhar a apresentação pelo telão, pois a cor escolhida para o fundo foi um roxo tão escuro e a fonte em preto que tornou impossível ler qualquer coisa pelos slides. Lá para o fim da apresentação, o palestrante resolveu das um jeito na fonte, mas isso não impediu a platéia de gritar alguns comandos e atalhos para ver se dava uma forcinha ao Lucas.

Mas basicamente a palestra falou um pouco sobre algumas gems utilizadas e recomendadas, tais como: query_reviewer e rails_indexes para otimização e performance de banco de dados, oink para profiling e kasket e cachy para caching.

Além de abordar técnicas e soluções para problemas em rails, sugestões como utilização de checklists durante o desenvolvimento como uma boa forma de adquirir bons hábitos e se o projeto está difícil de ser testado em isolamento ele está mal projetado e deve ser revisto.

A palestra abordou também temas como SOLID, programação defensiva e lei de Demeter.

E assim foi encerrado o primeiro dia, que foi excelente. Ainda teve depois a desconferência, com várias lightning talks, mas a gente acabou não assistindo, o que foi uma pena, pois pelos comentários no Twitter, foram excelentes.

Em breve publicaremos as nossas impressões sobre o segundo dia da RubyConf. Fique de olho no Ensinar. 😉

Autores:

Bruna Oliveira

Daniel Sakuma

Fabrício Campos

Glaucia Mekaru

William Nishio