SlideShare uma empresa Scribd logo
Rubysoc
Ricardo Panaggio
Thiago Pradi
Experiences, thoughts andExperiences, thoughts and
how it can improve your careerhow it can improve your career
and the communityand the community
Thiago Pradi
● github.com/tchandy
● twitter.com/thiagopradi
● thiagopradi.net
● thiago.pradi@gmail.com
Ricardo Panaggio
● github.com/panaggio
● twitter.com/panaggio
● identi.ca/panaggio
● freebird.blog.br
● panaggio@ic.unicamp.br
Outline
● Introdução
● Nossas experiências
● Por que participar
● Conclusões
Introdução
Ínicio de Carreira
Dificuldades
Falta experiência
Estágio
Estágios Comuns
Chatos, na maioria
Muito trabalho repetitivo e maçante
Maior desafio é servir café aos mais experientes
Estágio para turbinar sua carreira
de verdade?!
Ruby Summer of Code!
Ruby Summer of Code
● Estímulo para estudantes participarem ativamente
na comunidade de software livre
● "Estágio" remunerado de 2 meses
Rubysoc == GSoC?
Participações no GSoC
2007
Participações no GSoC
2007 2008
Participações no GSoC
2007 2008 2009
Participações no GSoC
2007 2008 2009 2010
Rubysoc
● Google $ GSoC→
● Ruby $ RubySoC?→
Rubysoc
● Google $ GSoC→
● Ruby $ Rubysoc?→
● Comunidade/Empresas $ Rubysoc!→
Quanto $? 3 dias...
CC by Darrren Hester
US$ 100.000
CC byr Tracy O
20 bolsas de
US$ 5.000
CC by AMagill
Rubysoc final RubyConfBR
Ruby Summer of Code
● Programa ala Summer of Code do Google
● Focado em projetos em Ruby e ligados à
comunidade Ruby
● Promovido por empresas e comunidade
Objetivos
● Incentivar estudantes a desenvolver software livre
● Promover o trabalho em áreas ligadas a
Computação nas férias: Flip bits not burgers
● Envolvimento com desenvolvimento de software
num ambiente "real"
● Mais software livre desenvolvido e disponibilizado
● Ajudar projetos de software livre a identificar novos
desenvolvedores
Objetivos
● Ajudar estudantes a se envolver com
desenvolvimento em Ruby
● Ajudar estudantes a se envolver com a comunidade
Ruby
● Continuar com a tradição de bons projetos
desenvolvidos por estudantes em verões invernos
passados, como parte do GSoC
Como funciona
● Aplicação como mentor
● Aplicação como estudante
● Projetos aprovados
● Trabalho, trabalho, trabalho, ...
● Avaliação Intermediária
● Trabalho, trabalho, trabalho, ...
● Avaliação Final
Nossas Experiências
Nossos Projetos
● O que propusemos
● O que efetivamente fizemos
● Problemas enfrentados
● Tempo gasto, grau de dificuldade
Projetos submetidos
● Database Sharding com Rails 3
● Melhorar e implementar classes no core
● Rails agnóstico de framework JavaScript
Database Sharding com
ActiveRecord
● Várias implementações
● Não flexíveis
● Não compatíveis com Rails 3
Octopus
● Compatível com Rails 2 e 3
● Suporte a Database Sharding
● Suporte a replicação
● Desafio: Integrar de maneira segura no
ActiveRecord
Octopus @ github
Atualmente
● Pronto para produção
● Não depende da Stack Inteira do Rails
● Usuários ativos
Futuro
● Suporte a mais cenários
● Configuração automática das instâncias
● Sincronização/Movimentação dos dados entre as
bases
Proposta inicial
● Otimizar classes do core
● Implementar novas estruturas de dados em C
● Trees
● Lists
● PriorityQueues
E-mail Timeline
● Ruby Summer of Code Student Application
● Ruby Summer of Code; Maybe NextYear!
● Ruby Summer of Code, Open Spot!
● Ruby Summer of Code, Proposal #52, Project Slot #
17
● Ruby summer (or, winter, for those in Brazil)
“Projeto em branco”
● Reescrita do projeto
● Replanejamento
CC by Rennett Stowe
Tempo investido
3 semanas
● 8~10 horas/dia
● 7 dias por semana
1 semana
● MSc
● Atividades off-SoC
CC by Vicki's Pics
Aprendizado (on the fly)
● Ruby C
● Sync Primitives
● Metaprogramming
● Port de classes Ruby para Ruby C
● Port de código Ruby 1.8 para Ruby 1.9
CC by apoxapox
Benefícios
● Classes melhoradas
● (Sorted)Set
● Queue/SizedQueue/ConditionVariable
● Delegate
● Classes adicionadas
● (Fast)(Counting)Semaphore
Futuro
● Novos benchmarks
● Resolver minor bugs das classes já portadas
● Melhorar mais classes
Por que participar
US$ 5.000 :)
CC by AMagill
Diversão
CC by mjording
Networking
CC by WebWizzard
Oportunidades
CC by Egan Snow
Aprimoramento
CC by apoxapox
Programação
Ferramentas
CC by Svadilfari
Inglês
CC by JoX1989
Benefícios
● Database Sharding – Octopus
● Melhorias no core
● RVM
● Rails Engines
● IdentityMap no ActiveRecord
● Benchmark Suite para o Rails
Benefícios
● Extensões C para o JRuby
● JRuby no Android – Ruboto
● Hackety Hack
● Ruby Archive
● Mail Processing Framework - Mailman
Experiência de Mentor
Por que participar
● Bom para os estudantes
● Bom para os mentores
● Bom para a comunidade
● Bom para o ecossistema
...
Dicas
● Comece cedo
● Comunique-se
● Gerencie seu tempo
● Troque experiências
● Tenha paciência
Outros SoCs
● Rubysoc
● G(oogle)soc
● Fedorasoc
● ...
“I have been engaged in Ruby for 17 years and I think
it’s making sense for me to be passionate about Ruby.
But many others are passionate about Ruby. I don’t
understand why, but Ruby is loved. Love is driving
Ruby.” - Matz, Ruby World 2010
Compartilhe!
● Share your code
● Share your experiences
“Ruby is supported by passion.And by love.” - Matz,
Ruby World 2010
Compartilhe!
● Share your code
● Share your experiences
● Share the love!
© Co-Hack LLC, 2009. All Rights Reserved.
Rubysoc
Ricardo Panaggio
Thiago Pradi
Experiences, thoughts andExperiences, thoughts and
how it can improve your careerhow it can improve your career
and the communityand the community

Mais conteúdo relacionado

PPTX
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
PDF
JavaScript Moderno
PDF
Introdução ao Ruby on Rails
PPTX
Groovy e Grails 2
PDF
Groovy stack
PPT
ruby on rails e o mercado
PDF
Técnicas de frontend para aplicações django - PythonBrasil[9]
PDF
JavaScript Firme: Módulos com RequireJS e BDD com Jasmine
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
JavaScript Moderno
Introdução ao Ruby on Rails
Groovy e Grails 2
Groovy stack
ruby on rails e o mercado
Técnicas de frontend para aplicações django - PythonBrasil[9]
JavaScript Firme: Módulos com RequireJS e BDD com Jasmine

Destaque (6)

PPTX
Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados
PDF
Patterns vs zombies
KEY
Design Patterns on Rails
PDF
Twitter, Apache Camel e Enterprise Integration Patterns
KEY
Projeto Octopus - Database Sharding para ActiveRecord
KEY
Design Patterns with Python - Is it possible ? - Part 01
Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados
Patterns vs zombies
Design Patterns on Rails
Twitter, Apache Camel e Enterprise Integration Patterns
Projeto Octopus - Database Sharding para ActiveRecord
Design Patterns with Python - Is it possible ? - Part 01
Anúncio

Semelhante a Rubysoc final RubyConfBR (20)

ODP
Slides do curso Programação web com RubyOnRails
PDF
Ruby On Rails - Porque Utilizar?
PPT
Introdução ao Ruby on Rails (SOCIESC)
PDF
Ruby, Rails e Diversão (Campus Party Brasil 2009)
PDF
Ruby on rails porque usar rails?!
PDF
Esta começando a programar para a web? Então começe com Rails
PPT
Ruby on Rails e o Mercado
PPT
Entendendo um pouco melhor o que é Ruby
KEY
Palestra Fatec
PDF
Introdução ao Rails (Linguagil)
PDF
Minicurso Ruby on Rails
PDF
Dev in Rio - Uma Visão do Mundo Ruby
PDF
Desenvolvimento web com Ruby on Rails (parte 1)
PPT
Mini-curso RoR - Apresentação
PDF
Apresentação ruby + rails 2014
PDF
Rails - EXATEC2009
PDF
Palestra Desenvolvimento Ágil para Web com ROR UVA
PPTX
Ruby e Rails
PPTX
Ruby e sushi
PDF
Ruby on Rails
Slides do curso Programação web com RubyOnRails
Ruby On Rails - Porque Utilizar?
Introdução ao Ruby on Rails (SOCIESC)
Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby on rails porque usar rails?!
Esta começando a programar para a web? Então começe com Rails
Ruby on Rails e o Mercado
Entendendo um pouco melhor o que é Ruby
Palestra Fatec
Introdução ao Rails (Linguagil)
Minicurso Ruby on Rails
Dev in Rio - Uma Visão do Mundo Ruby
Desenvolvimento web com Ruby on Rails (parte 1)
Mini-curso RoR - Apresentação
Apresentação ruby + rails 2014
Rails - EXATEC2009
Palestra Desenvolvimento Ágil para Web com ROR UVA
Ruby e Rails
Ruby e sushi
Ruby on Rails
Anúncio

Último (8)

PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Mecânico de Manutenção de Equipamentos.pptx
PDF
Manejo integrado de pragas na cultura do algodão
PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PPTX
Arquitetura de computadores - Memórias Secundárias
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Mecânico de Manutenção de Equipamentos.pptx
Manejo integrado de pragas na cultura do algodão
Viasol Energia Solar -Soluções para geração e economia de energia
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Arquitetura de computadores - Memórias Secundárias
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx

Rubysoc final RubyConfBR