Posts Tagged ‘Ruby’

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

Anúncios

Cobertura do evento “Ruby+Rails no mundo real 2010”

junho 1, 2010

Pessoal,

No sábado passado (29-05-10) Eu e o Fabrício Campos estivemos na segunda edição do evento “Ruby+Rails no mundo real 2010”, organizado pela Tempo Real Eventos em parceria com o GURU-SP (Grupo de usuários Ruby de São Paulo).

Para os interessados em saber quais foram as novidades mostradas nesse evento, eu escrevi uma cobertura do que aconteceu e um resumo de cada palestra no meu blog.

Quer conferir? Então acesse o link abaixo:

Minhas impressões – Ruby+Rails no mundo real 2010 – 29/05/10

No ano passado eu também escrevi a cobertura da primeira edição do evento (rs) e foi publicada aqui no Blog do Ensinar. Acesse o post pelo link abaixo:

Minhas impressões – Ruby + Rails no Mundo Real 2009 – 04/04/09

Acompanhe também as atualizações do pessoal que está postando no twitter acerca do evento!

Até mais e boa leitura a todos!

Minhas impressões – Quinto encontro Guru-SP – 18-07-09

julho 18, 2009

Caros colegas,

Neste sábado tive o prazer de participar do quinto encontro do Grupo de Usuários Ruby de São Paulo (Guru-SP), que aconteceu na sala de treinamentos da empresa onde trabalho (a Voice Technology :)).

Apesar de meu conhecimento da linguagem e do framework de desenvolvimento Web (Rails) ser baixa, o objetivo maior era angariar o maior número de informações, aprender e ter contato com o pessoal da comunidade. Assim poderia ter mais “idéia” do que é Ruby e porque está sendo tão falado, comentado e usado nas empresas e em projetos open source.

Nós da Voice Technology já temos algumas pessoas capacitadas em programar em Ruby, mas estamos em constante nível de aprendizado. Essa participação no encontro será importante para sanar as principais dúvidas e responder as expectativas pessoais e do pessoal da empresa que não esteve presente.

P.S.: Este post também está presente no Templário da Tecnologia.

Panorama Geral


Até o dia de ontem (17-07-09) era prevista a participação de no máximo 20 pessoas para toda a duração do evento (10h00 até ~17h00), o que já era um número excelente para uma reunião “informal”.

Para a nossa surpresa (André Pantalião, Rodrigo Ribeiro e Thiago Veiga, membros da empresa presentes) tivemos cerca de 25 pessoas participando (!). A procura foi grande e acho que o encontro respondeu as expectativas da melhor maneira possível.

“Escopo” da programação das palestras (pelo menos o pensado):

  • 10:30 (devido ao “delay” clássico de espera do pessoal) – Palestra de Ruby (e Rails) voltada para iniciantes
  • 13:00 – DataMapper
  • 14:30 – GIT
  • 16:00 – Bate-papo sobre itens de interesse / Coding Dojo

Palestras

Ruby on Rails para iniciantes – Rafael Rosa “Fu”


Rafael Rosa “Fu” tomou a iniciativa de levar o notebook a frente e passar alguns “Ruby fundamentals” para o pessoal. Primeiramente ele abriu uma “janela” para que todos falassem (momento “apresentação”) o nome, profissão, envolvimento com as linguagens de programação e porque “raios” estar presente em um sábado de manhã para ver uma reunião de Rails (rs).

Foi interessante para chegar a algumas conclusões:

  • Maioria do pessoal é oriundo da área de programação em Java, voltada para Web;
  • Muitos dos presentes (inclusive eu…rs) são iniciantes em Ruby e Rails. O objetivo era saber mais do que é, como usar e os objetivos da linguagem;
  • Já existem pessoas que trabalham só com Rails em empresas. Muitos dos presentes já fizeram curso também, em sua maioria na Caelum;
  • A comunidade Ruby e metodologias ágeis estão andando de “mãos dadas” e estão definitivamente “implantados” nas empresas que usam Rails.

Após isso foram mostrados conceitos (e prática) de como instalar e usar Ruby, tomando como exemplo o famoso modelo do “Faça seu blog em 15 minutos“. O interessante é que desde a criação de um projeto até a edição/criação de métodos html (POST, por exemplo), dentre outros poréns de um blog não é necessário escrever uma linha de código (!).

O Rails já tem muita coisa pronta, relativa a configuração de banco de dados, modelo MVC, testes e servidor de aplicação. Por isso temos a famosa “agilidade de escrita” de código e desenvolvimento.

Além disso foram discutidos termos como TDD, BDD e princípio da janela quebrada, ressaltando também o uso de ferramentas de testes com o Rails (RSpec, Remarkable e Cucumber).

Abaixo alguns links para aprendizado de Ruby e Rails:

DataMapper – Rafael Rosa “Fu”


DataMapper utiliza o design pattern para persistência de dados publicado por Martin Fowler, de mesmo nome e que também é utilizado pelo Hibernate. Foi criado pelo pessoal do Merb (Matt Aimonetti e Yehuda Katz). O conceito base é o ORM do Merb.

As vantagens do DataMapper são:

  • Não depende de estrutura de banco de dados;
  • Mais fácil de integrar com sistemas legados;
  • Migrações e múltiplos repositórios.

Rafael mostrou e explicou alguns exemplos de código, comparando classes usando DataMapper e Hibernate, exemplificando o funcionamento, mapeamento de chaves e campos usados, etc. Muitos exemplos de classes podem ser encontrados no site do DataMapper. Reinterou que Active Record (outro ORM  e manuseador de dados usado por Rails) não é DataMapper, sendo o último mais “poderoso” e modularizado.

Explicou sobre os muitos plugins existentes para DataMapper e encontrados no repositório GIT do mesmo, separados em “Resource Plugins” e “Is Plugins”, e os seus respectivos “poderes de fogo”. Complementando o assunto foram mostrados de maneira mais superficial Adapters, Integration e Utility, pois são temas mais aprofundados do DataMapper.

Nas futuras versões (0.10 e 0.11) haverão novidades:

  • Validações para objetos Ruby puros;
  • Melhorias no SEL.

Desvantagens do DataMapper:

  • Menos maduro (menor número de usuários usando e desenvolvendo DataMapper e muitos usando Active Record);
  • Não se itegra facilmente com Rails (ainda);
  • Pequena comunidade;
  • Pouca documentação (relativamente);
  • Ainda não tem Remarkable;

Como podemos participar do projeto?

  • IRC Freenode #datamapper e #dm-hacking

A palestra do Rafael foi interessante, apesar de ser bem técnica. Devido ao conhecimento de Hibernate (seja ele teórico ou prático, da maioria do pessoal) a assimilação do conteúdo passado foi melhor e mais inteligível.

Desvendando o GIT – Douglas Campos (qmx)


A palestra procurou passar uma introdução a respeito do GIT, sistema de repositórios altamente usado em projetos Ruby. Mudança de paradigma de versionamento (não só arquivos, mas conteúdo de arquivos são altamente analisados).

Na introdução mostrou-se que GIT é performático e foi baseado em um desenvolvimento de 45 dias para uma nova plataforma de versionamento para o Kernel (ao invés do BK – BitKeeper, proprietária) desenvolvida por Linus Torvalds. No sistema de repositórios CVCS há o problema do código muito centralizado. No DVCS já o contrário: não há ponto central imposto pela ferramenta, tudo é descentralizado. No GIT há mudança de paradigma, pois os commits podem ser locais e/ou não acessando o servidor.

Sobre o “core” do GIT:

  • Commits pequenos em Rails são muito usados, pois as mudanças no projeto geralmente requerem pequenas implementações de linhas de código;
  • O versionamento de conteúdo no git “impacta” no conteúdo da árvore inteira;
  • Commit: não é nada mais do que as diferenças aplicadas a árvore de código (pilha de alterações);
  • O conceito de índice é tirar um “snapshot” seletivo dos objetos da árvore;
  • Podemos melhorar o conceito de índice no/para GIT: coloca tudo o que está no indíce dentro do repositório e são indicados por um hash SHA único e definido por um diff;
  • Definição técnica de GIT: o repositório no GIT é um grafo acíclico dirigido;
  • Branches: são simples ponteiros dentro do grafo, apontando para índices.

Após isso foi feito um exemplo de aplicação com vários desenvolvedores alterando e “subindo” código para um projeto fictício em um repositório GIT de teste, simulando a realidade e com a finalidade de mostrar ao vivo os conceitos de merge, diff, commit e histórico de mudanças.

Alguns comandos foram mostrados e são importantes para uso e manutenção do repositório: git stash, git status, git tag, git reset, git rebase e outro comandos.

Você precisa pesquisar em que arquivo ficava aquele método? Use o comando: git log -S’def update’ –pickaxe-all (visualiza as “mudanças de história”. Procura métodos que foram alterados no projeto e ele mostra os logs de commit. Muito poderoso). Essa é uma dica que é muito útil e pouca gente sabe!

Na parte final, Douglas discutiu com o pessoal sobre os conceitos de Cherry pick, Cherry (commits pequenos e pontuais) e Bisect (famosa história: “Mas eu tinha consertado aquele bug…quem ‘quebrou’?”).

Para finalizar houve uma discussão sobre fluxos de trabalho em equipe, recuperação de “desastres” e boas práticas.

Sem dúvida uma palestra bastante técnica, mas bem moldada, concisa e dinâmica. O overview dado sobre GIT foi bom para os “imaturos” em Ruby e Rails e para os experientes, pois várias dúvidas foram sanadas e muitas perguntas respondidas, de ambos lados. E uma novidade: Douglas expôs a informação de uma nova comunidade que está surgindo de Rails, intitulada RailsBridge. Ela é muito completa e voltada também para fins educacionais, além de ter uma campanha para ter mulheres programando em Ruby (rs). Vale a pena dar uma olhada!

Apesar de ter sido a palestra mais técnica do encontro os parabéns ao Douglas são necessários, pois o conteúdo foi excelente!

Coding Dojo – Modelagem de uma classe usando RSpec (aplicação de TDD)


No final do dia houve um dojo para que o pessoal, de forma colaborativa, codificasse um “projetinho”. O objetivo foi modelar uma classe usando RSpec, com a finalidade de trazer a tona modelos de programação, estilos de código, implementação de patterns, etc. O foco principal era aplicar o princípio básico do TDD: escrever testes antes de codificar.

Algumas das características usadas foram:

Gems instaladas

* remakable ( from github )
* rspec-rails
* Zentest

User Story da classe Group
– Tem que um nome;
– Outras características.

User Story da classe User
– Tem que ter um nome, login, e-mail, senha;
– Tem que pertencer a um grupo;
– Tem que ter status: ativo ou inativo;
– Senha tem que ser guardada como Hash;
– Precisa de método para fazer login que:
– recebe login e senha;
– retorna false se deu errado (login inexistente, usuário inativo, senha inválida);
– retorna true se deu certo.

O feedback durante a sessão foi legal e muito interessante!

Conclusão

Na minha visão o evento foi muito interessante e produtivo, sanando muitas dúvidas minhas a respeito do Ruby. Até instalei o Ruby na minha VM! (posteriormente estarei testando alguma coisa, pois o tempo urge para mim nesses dias!). Esse evento não seria realizado sem a iniciativa de André Pantalião e o pessoal do Guru-SP, que mostraram um grande interesse em participar e interagir, trazendo para o ambiente Voice a disseminação do conhecimento, tanto para nós quanto para a comunidade Ruby e afins. Aguardem mais novidades daqui para frente!

Agradeço a todos pela leitura e até a próxima!

ConclusãoNa minha visão o evento foi muito interessante e produtivo, sanando muitas dúvidas minhas a respeito do Ruby. Até instalei o Ruby na minha VM! (posteriormente estarei testando alguma coisa, pois o tempo urge para mim nesses dias!). Esse evento não seria possível de ser realizado sem a iniciativa de André Pantalião e o pessoal do Guru-SP, que mostraram um grande interesse e participação (interação), trazendo para o ambiente Voice a disseminação do conhecimento, tanto para nós quanto para a comunidade Ruby e afins. Aguardem mais novidades daqui para frente!Agradeço a todos pela leitura e até a próxima!

Minhas impressões – Ruby + Rails no Mundo Real 2009 – 04/04/09

abril 19, 2009

Caros colegas,

Meu último relato de evento escrito para o Ensinar já continha o prenúncio para esse post  (…Já estou em vias de escrever um novo relato, relacionado ao evento “Ruby + Rails no mundo real 2009″, que presenciei no último sábado (04-04-09) em companhia de alguns colegas de empresa... (06-04-09″)).

Enfim, “cá” estou para falar dele! ( e me desculpem mais uma vez pela demora dos relatos. Como diria Milton Neves, que o Fabrício Campos diz que é o melhor comentarista do Brasil, “O tempo urge pra mim!”)

Não esperem nesse post análises mais técnicas, pois não domino a linguagem e este foi meu primeiro evento relacionado a Ruby.

Panorama geral


O “Ruby + Rails no Mundo Real 2009“, como já foi dito, aconteceu em 04 de Abril de 2009 e o pessoal da Voice Technology estava presente, prestigiando e adquirindo conhecimento. Éramos eu, André Pantalião, Joemir Luchetta, Natália Freitas e Eduardo Zaghi. Foi muito bem organizado pela Tempo Real Eventos, com preço bem acessível no começo das inscrições (R$ 50,00), facilidade de acesso ao local, apostila, brindes e coffee-break. Fora a presença de palestrantes com alto nível de conhecimento em Ruby, como o Fábio Kung e o pessoal do Guru-SP. O evento respondeu as minhas espectativas, pois  a maioria das palestras tinham conteúdo não muito técnico, facilitando o entendimento do assunto.

Palestras

Criando um Instant Messenger usando Rails – Vinícius Baggio Fuentes

Vinicíus, como já diz explicitamente o título, mostrou como se implementar um comunicador instantâneo usando Rails e o protocolo XMPP/Jabber. Sua introdução mostrou o motivo de “experimentar” Rails, pela sua rapidez de retorno de resultados, criatividade, liberdade de programação e o envolvimento e força da comunidade Rails. Após isso ele mostrou como realmente implementar o projeto (a “mão na massa”), com tópicos envolvendo troca de XML‘s pela rede, JID (Jabber ID), Autenticações, Web Services, Messages, possíveis integrações com outros serviços de mensagens (GTalk (que também usa XMPP), MSN, Yahoo! entre outros (protocolos proprietários)) e finalizando com Distributed Ruby (DRb). Gostei do conteúdo da palestra mas percebi que em alguns momentos o palestrante se mostrava inseguro para passar alguns conceitos, mas nada que pudesse prejudicar o resultado positivo da palestra.

Ruby, Rails e empreendedorismo – Hugo Lima Borges

Hugo apresentou a palestra, que na minha concepção, foi a mais interessante do evento, apesar de não ser apresentado um “case de sucesso” para embasar o assunto. Conseguiu unir o útil ao agradável, mostrando como são os meios de fazer empreendedorismo ná área de tecnologia e programação (da forma mais correta) e como unir isso a praticidade do Rails. Apresentou o panorama dos empreendedores no Brasil, com algumas informações interessantes:

  • O Brasil é o 8º país, dentre 43, que mais empreende;
  • O brasileiro geralmente é “aventureiro”, muito pela necessidade;
  • Os que não se aventuram por necessidade tem medo de falhar;
  • Nós somos movidos a fazer empreendedorismo muito mais pelo motivo de ser “eficiente” do que ser “inovador” e “gerador de tecnologia”;

Um livro indicado para o assunto foi “Start-Up” (Jessica Livingston), que não é difícil de adquirir.

Quais os passos para empreender? Eis abaixo:

  • Procure fazer com que os outros assimilem as idéias. Tente começar por grupos pequenos, pois eles são ideais para “espalhar”;
  • Faça “antropofagia”! Comece “comendo” idéias de projetos de sucesso;
  • Mude ou inove com o decorrer do tempo, tendo o “timing” correto para implementação das idéias. Deixe as “Killer App‘s (aplicações suicidas)” para depois…;
  • Não pense somente em software ou projetos open source, deixando os “softwares pagos” de lado, e vice-versa. Se usar open source então procure contribuir; se usar software pago procure pagar!
  • Uma das alternativas para “se dar bem” : Rails! ;

Alguns outros poréns devem ser levados em conta, como meios de conseguir dinheiro (“3 F’s: Family, Friends & Fools”, BNDES, FINEP, FAPESP e o próprio bolso), conciliação de tempo e montagem de equipe (talentosos, marqueteiros, especialistas e etc.). Boa palestra  Hugo!

Integrando Ruby e Java para facilitar a vida – Marcelo Castellani

Na verdade, essa palestra foi um “comparativo” de ferramentas ligadas a Ruby (toolkits), que podem auxiliar em um projeto Java. Foi muito mais uma mostra de quais são os desempenhos que cada uma tem, em diferentes sistemas operacionais, e qual a abordagem de desenvolvimento delas. As ferramentas apresentadas na palestra foram:

  • FXRuby ( plataforma Windows e aplicado em ERP, IDE e aplicações OpenGL, por exemplo);
  • Ruby GTK+ (ambientes GTK, como Ubuntu, OpenSolaris e BSD, e aplicado em criação de interfaces gráficas);
  • RubyCocoa & MacRuby (plataforma Mac e aplicado a desenvolvimento de aplicações para o Mac OS X);
  • Shoes ( qualquer tipo de plataforma (!), poderoso e praticamente aplicável para desenvolvimento de qualquer um dos tipos de aplicações já citadas acima).

Marcelo mostrou exemplos de códigos apenas no slide. Fiquei com o sentimento de “falta alguma coisa a mais”, como algum exemplo “real”, rodando para visualização do público. Fora isso não posso discutir o conteúdo de forma mais aprofundada.

Outsorcing, ou como trabalhar para as empresas gringas – Rodrigo Franco

“O Caffo”, como é conhecido na comunidade Rails, mostrou as vantagens e desvantagens de se trabalhar para os clientes gringos, nos mais diversos projetos e tipos de remuneração (agradáveis ou não, depende do seu ponto de vista).

  • Vantagens: melhor remuneração; receber dinheiro em dólar; trabalho do programador brasileiro é bastante valorizado pelo gringos; custos menores com transporte, alimentação e vestuário; horário flexível no home office ( pode ser bom ou ruim, dependendo do fuso horáro e tipo de cliente a tratar) e melhor controle da sua produtividade;
  • Desvantagens: o espaço de casa pode influenciar na produtividade, seja na aquisição de conteúdo de estudo ou no trabalho; dificuldade em mostrar trabalho;

Caffo explicou quais são as melhores maneiras de receber salário no Brasil pagando menos imposto (Pessoa física – 27.5%; Empresa – 7.5% e PayPal – 0%), e como “chamar” a atenção dos gringos para o seu trabalho, fazendo com que venham a existir mais recomendações de projetos para você ( faça um portfólio, participe de projetos open source, tenha um blog ativo e uma página com pessoas recomendando o seu trabalho). Trabalhar para consultorias virtuais ( Ex.: O’Desk e RentACoder ) são um bom modo de angariar fundos e reconhecimento na comunidade. A palestra foi muito interessante e deu um novo panorama para o pessoal que busca alternativas de trabalho no exterior, por mais que seja “home office”.

GlassFish on Rails: Escalabilidade e Confiabilidade – Maurício Leal

Foi muito mais uma palestra comercial do que explicativa ou técnica. Já tinha assistido uma outra palestra dele no “Profissão Java” (Tema: Como trabalhar com Java no exterior) que falava de um assunto parecido ao do Caffo nesse evento ; a anterior foi melhor e mais interessante. Fora a imparcialidade (“jabá” da SUN) ele explicou os conceitos do Glassfish (servidor de aplicação) e como ele vem evoluindo ao decorrer das versões EE (Enterprise Edition) do Java. O objetivo era mostrar como o Glassfish, dando suporte a Rails, pode trabalhar em conjunto com o Java permitindo escalabilidade e eficiência (Glassfish + Rails dá suporte a clusterização, gerenciamento de carga e alta disponibilidade). Para os interessados eu coloco os links mais interessantes da palestra do Maurício:

Acredito que o foco da palestra poderia ser mais direto, conciso e com mais conteúdo.

Só imaturos não testam – Carlos Brando

Carlos Brando fez uma apresentação sobre o porque, o quando e como testar em Ruby on Rails. O nome da palestra foi exemplificado com um trecho do filme “Stallone Cobra“, onde ele confronta um bandido dizendo duas frases marcantes: “Você é um imaturo, você é um cocô, eu vou matar você!” e “Você é a doença, eu sou a cura”. Com essa pitada de humor ele quis “linkar” a falta de maturidade do bandido frente a situação com a realidade daqueles que desenvolvem sem ao menos testar, seja no início, meio ou fim do processo. Após o introdutório ele colocou as 7 fases para se chegar ao nível de excelência no desenvolvimento. Veja onde você se encaixa e quais os passos a serem seguidos para se tornar um “desenvolvedor avançado”:

  1. Eu posso desenvolver qualquer coisa? (fase de participação em processos fáceis);
  2. Tem alguma coisa que eu não sou capaz de desenvolver? (fase de participação em processos difíceis);
  3. Eu posso corrigir isso? (fase onde a prioridade é a manutenção de código);
  4. É possível fazer algo sem que eu precise corrigir isso depois? (fase de questionamento);
  5. Talvez eu deva escrever alguns testes… (fase de procura de “verdadeiras” soluções);
  6. Eu vou testar isso, mas só depois de terminar de codificar (fase onde a “teoria da janela quebrada” está presente);
  7. Eu escrevo testes PRIMEIRO, e só depois eu codifico (Bingo! Meus parabéns, agora você é um desenvolvedor avançado!).

E quais as vantagens de ser um “desenvolvedor avançado” ? Se você escreve testes antes de codificar o seu código é melhor; você reduz o “código especulativo”, pois os requisitos e o que deve conter na aplicação já está descrito (nada mais, nada menos); você cria documentação (o terror dos desenvolvedores, seja em questão de software ou teste) e aumenta a qualidade do seu código. Esses preceitos ditados são a base do TDD e BDD. Como o Ruby detém ferramentas muito boas para testes e tem uma relação muito grande com o “desenvolvedor avançado”, é altamente indicado para desenvolver com rapidez e qualidade , além de ser usado para testar outras linguagens (Ruby testando Java, por exemplo). Ferramentas : RSpec e Remarkable, por exemplo. Finalizando sobre a palestra, gostaria de deixar os parabéns ao Carlos Brando pela ótima apresentação e dizer aos desenvolvedores: “Testem seus imaturos!” (rs).

O que é e como funciona o RubyLearning (mini-palestra) – Willian Molinari

Willian Molinari mostrou de uma forma simples e direta como funciona e o que é o RubyLearning, ferramenta de aprendizado que oferece cursos online para interessados em Ruby. Podem participar desde iniciantes na linguagem até conhecedores de nível intermediário ou avançado. Falou sobre seus fundadores, quem ministra o curso, o seu funcionamento, materiais de estudo, fórum e etc. Apesar de todo material ser em inglês, as pessoas que se consideram “ruim de inglês” conseguem “se virar”, pois o conteúdo é bem intuitivo. Para os interessados em informações mais completas, favor acessar a página do próprio Molinari, que é um dos mentores do projeto,  e ver a sua apresentação comentada slide a slide.

Ruby, muito mais do que reflexivo! – Fábio Kung

Para aqueles que estavam esperando “conteúdo de verdade” sobre Rails, o momento tinha chegado (“Antes tarde do que nunca”!). Na minha opinião se fosse no começo do evento seria mais interessante, “prendendo” bem mais a atenção do público. Ficando para o final foi um pouco “cansativo”, depois de um dia todo de palestras. Mas Fábio deu ao público o que ele esperava : código! Mostrou muitos exemplos e ferramentas para análise e desenvolvimento, quase todos práticos. Foi uma palestra verdadeiramente técnica, mostrando o quanto Ruby é dinâmico, metaprogramável (código que gera código em execução, sem alterar o mesmo) e reflexivo. Como não tenho conhecimento suficiente para analisar desenvolvimento em Ruby e abordar de forma mais técnica o assunto, vou apenas enumerar as ferramentas apresentadas por Fábio nessa apresentação, e que são indispensáveis no auxílio ao desenvolvedor:

  • SexpProcessor: análise e geração de relatório de código estático;
  • Flog: análise de complexidade do código;
  • Roodi: análise estática de código a partir de parâmetros pré-definidos;
  • Heckle: roda testes no código, modifica o código e tenta falhar os testes escritos para o código, verificando se a cobertura dos testes está sendo feita;
  • ParseTree;
  • Rfactor;
  • Ruby2Ruby;
  • Ruby2Java;
  • Ruby2Js.

Conclusão

Achei meu primeiro contato com Ruby proveitoso, devido as várias palestras conterem muitos pontos não-técnicos, facilitando a assimilação de conceitos. Os pontos negativos foram alguns palestrantes fazendo propaganda própria (“jabá” da empresa ou projeto no qual trabalham e desenvolvem) ou comentando de maneira imparcial a respeito de Ruby frente a outras linguagens (Java, por exemplo). Só porque algumas pessoas “ostentam” conhecimento de Ruby (em qualquer nível), tem um Mac e usam camisas de cunho “inteligente”, isso não dá a elas o direito de dizer que Ruby é superior, mais “bonito e “perfeito” que outros tipos de programação; ou que programar em Java, PHP, .Net ou outras linguagens é “feio”, não tem “estilo”. Quando você faz “crítica” a uma linguagem, na verdade você deve fazer em nível de análise de um ou mais pontos, e não fazendo piadas (pejorando). Acredito que deveria haver um respeito igualitário para qualquer tipo de linguagem. Todas tem suas qualidades e peculiaridades, cabe a cada um de nós escolhê-las.

Bom, espero ter respondido a expectativa de vocês. Abaixo coloco alguns links a respeito do evento:

Aguardem o próximo relato.

Até!