SlideShare une entreprise Scribd logo
1  sur  61
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
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

Contenu connexe

En vedette

Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados
Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dadosVisual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados
Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dadosFernando Henrique
 
Design Patterns on Rails
Design Patterns on RailsDesign Patterns on Rails
Design Patterns on Railstchandy
 
Twitter, Apache Camel e Enterprise Integration Patterns
Twitter, Apache Camel e Enterprise Integration PatternsTwitter, Apache Camel e Enterprise Integration Patterns
Twitter, Apache Camel e Enterprise Integration PatternsBruno Borges
 
Projeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecordProjeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecordtchandy
 
Design Patterns with Python - Is it possible ? - Part 01
Design Patterns with Python -  Is it possible ? - Part 01 Design Patterns with Python -  Is it possible ? - Part 01
Design Patterns with Python - Is it possible ? - Part 01 Marcel Caraciolo
 

En vedette (6)

Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados
Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dadosVisual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados
Visual Studio Summit 2013 - Patterns para criação de camadas de acesso a dados
 
Patterns vs zombies
Patterns vs zombiesPatterns vs zombies
Patterns vs zombies
 
Design Patterns on Rails
Design Patterns on RailsDesign Patterns on Rails
Design Patterns on Rails
 
Twitter, Apache Camel e Enterprise Integration Patterns
Twitter, Apache Camel e Enterprise Integration PatternsTwitter, Apache Camel e Enterprise Integration Patterns
Twitter, Apache Camel e Enterprise Integration Patterns
 
Projeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecordProjeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecord
 
Design Patterns with Python - Is it possible ? - Part 01
Design Patterns with Python -  Is it possible ? - Part 01 Design Patterns with Python -  Is it possible ? - Part 01
Design Patterns with Python - Is it possible ? - Part 01
 

Similaire à Rubysoc: Como participar e contribuir para a comunidade Ruby

RubyConf 17 - Colocando sua aplicação vue nos trilhos
RubyConf 17 - Colocando sua aplicação vue nos trilhosRubyConf 17 - Colocando sua aplicação vue nos trilhos
RubyConf 17 - Colocando sua aplicação vue nos trilhosFelipe Gadelha Ruoso
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAThiago Cifani
 
Treinamento Agile com scrum
Treinamento Agile com scrumTreinamento Agile com scrum
Treinamento Agile com scrumEduardo Bregaida
 
Treinamento Agile com Scrum - V2
Treinamento Agile com Scrum - V2Treinamento Agile com Scrum - V2
Treinamento Agile com Scrum - V2Eduardo Bregaida
 
Visao geralti netshoes03
Visao geralti netshoes03Visao geralti netshoes03
Visao geralti netshoes03Ale Uehara
 
Melhores praticas no desenvolvimento magento
Melhores praticas no desenvolvimento magentoMelhores praticas no desenvolvimento magento
Melhores praticas no desenvolvimento magentoRicardo Martins
 
Mapa de aprendizado Front End
Mapa de aprendizado Front EndMapa de aprendizado Front End
Mapa de aprendizado Front EndCaio Vaccaro
 
Coders on beer javascript de ponta a ponta
Coders on beer   javascript de ponta a pontaCoders on beer   javascript de ponta a ponta
Coders on beer javascript de ponta a pontaKirmayr tomaz
 
AutomaçãoWeb - Chaordic Academy
AutomaçãoWeb - Chaordic AcademyAutomaçãoWeb - Chaordic Academy
AutomaçãoWeb - Chaordic AcademyFausto Siqueira
 
Curso Programação Web com Ruby on Rails - Aula 01
Curso Programação Web com Ruby on Rails - Aula 01Curso Programação Web com Ruby on Rails - Aula 01
Curso Programação Web com Ruby on Rails - Aula 01Renato Sousa
 
Ruby On Rails - Porque Utilizar?
Ruby On Rails - Porque Utilizar?Ruby On Rails - Porque Utilizar?
Ruby On Rails - Porque Utilizar?David Ruiz
 
ESP204 - Cap. 2 - Processos.pdf
ESP204 - Cap. 2 - Processos.pdfESP204 - Cap. 2 - Processos.pdf
ESP204 - Cap. 2 - Processos.pdfAndreLisboa13
 
Acelerando o caminho para nuvem com serverless e java
Acelerando o caminho para nuvem com serverless e javaAcelerando o caminho para nuvem com serverless e java
Acelerando o caminho para nuvem com serverless e javaEvandro Pires da Silva
 
O que vi na QCon 2012 São Paulo
O que vi na QCon 2012 São PauloO que vi na QCon 2012 São Paulo
O que vi na QCon 2012 São PauloIsmael
 
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Giovanni Bassi
 

Similaire à Rubysoc: Como participar e contribuir para a comunidade Ruby (20)

RubyConf 17 - Colocando sua aplicação vue nos trilhos
RubyConf 17 - Colocando sua aplicação vue nos trilhosRubyConf 17 - Colocando sua aplicação vue nos trilhos
RubyConf 17 - Colocando sua aplicação vue nos trilhos
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
 
Treinamento Agile com scrum
Treinamento Agile com scrumTreinamento Agile com scrum
Treinamento Agile com scrum
 
Treinamento Agile com Scrum - V2
Treinamento Agile com Scrum - V2Treinamento Agile com Scrum - V2
Treinamento Agile com Scrum - V2
 
Visao geralti netshoes03
Visao geralti netshoes03Visao geralti netshoes03
Visao geralti netshoes03
 
Visao geralti netshoes03
Visao geralti netshoes03Visao geralti netshoes03
Visao geralti netshoes03
 
Como Se Dar Bem Com Java
Como Se Dar Bem Com JavaComo Se Dar Bem Com Java
Como Se Dar Bem Com Java
 
DDD + BDD + TDD + Scrum
DDD + BDD + TDD + ScrumDDD + BDD + TDD + Scrum
DDD + BDD + TDD + Scrum
 
Melhores praticas no desenvolvimento magento
Melhores praticas no desenvolvimento magentoMelhores praticas no desenvolvimento magento
Melhores praticas no desenvolvimento magento
 
Mapa de aprendizado Front End
Mapa de aprendizado Front EndMapa de aprendizado Front End
Mapa de aprendizado Front End
 
Coders on beer javascript de ponta a ponta
Coders on beer   javascript de ponta a pontaCoders on beer   javascript de ponta a ponta
Coders on beer javascript de ponta a ponta
 
AutomaçãoWeb - Chaordic Academy
AutomaçãoWeb - Chaordic AcademyAutomaçãoWeb - Chaordic Academy
AutomaçãoWeb - Chaordic Academy
 
Curso Programação Web com Ruby on Rails - Aula 01
Curso Programação Web com Ruby on Rails - Aula 01Curso Programação Web com Ruby on Rails - Aula 01
Curso Programação Web com Ruby on Rails - Aula 01
 
Ruby On Rails - Porque Utilizar?
Ruby On Rails - Porque Utilizar?Ruby On Rails - Porque Utilizar?
Ruby On Rails - Porque Utilizar?
 
Framework web 01 - Aula UTFPR 2018
Framework web 01 - Aula UTFPR 2018Framework web 01 - Aula UTFPR 2018
Framework web 01 - Aula UTFPR 2018
 
ESP204 - Cap. 2 - Processos.pdf
ESP204 - Cap. 2 - Processos.pdfESP204 - Cap. 2 - Processos.pdf
ESP204 - Cap. 2 - Processos.pdf
 
Acelerando o caminho para nuvem com serverless e java
Acelerando o caminho para nuvem com serverless e javaAcelerando o caminho para nuvem com serverless e java
Acelerando o caminho para nuvem com serverless e java
 
Palestra Fatec
Palestra FatecPalestra Fatec
Palestra Fatec
 
O que vi na QCon 2012 São Paulo
O que vi na QCon 2012 São PauloO que vi na QCon 2012 São Paulo
O que vi na QCon 2012 São Paulo
 
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
 

Rubysoc: Como participar e contribuir para a comunidade Ruby