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
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

Destaque

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
Fernando Henrique
 
Patterns vs zombies
Patterns vs zombiesPatterns vs zombies
Patterns vs zombies
Jiéverson Maissiat
 
Design Patterns on Rails
Design Patterns on RailsDesign Patterns on Rails
Design Patterns on Rails
tchandy
 
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
Bruno Borges
 
Projeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecordProjeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecord
tchandy
 
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
 

Destaque (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
 

Semelhante a Rubysoc final RubyConfBR

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
Felipe 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 UVA
Thiago Cifani
 
Treinamento Agile com scrum
Treinamento Agile com scrumTreinamento Agile com scrum
Treinamento Agile com scrum
Eduardo Bregaida
 
Treinamento Agile com Scrum - V2
Treinamento Agile com Scrum - V2Treinamento Agile com Scrum - V2
Treinamento Agile com Scrum - V2
Eduardo Bregaida
 
Visao geralti netshoes03
Visao geralti netshoes03Visao geralti netshoes03
Visao geralti netshoes03
Ale Uehara
 
Visao geralti netshoes03
Visao geralti netshoes03Visao geralti netshoes03
Visao geralti netshoes03
Alexandre Uehara
 
Como Se Dar Bem Com Java
Como Se Dar Bem Com JavaComo Se Dar Bem Com Java
Como Se Dar Bem Com Java
Wagner Roberto dos Santos
 
DDD + BDD + TDD + Scrum
DDD + BDD + TDD + ScrumDDD + BDD + TDD + Scrum
DDD + BDD + TDD + Scrum
Eduardo Bregaida
 
Melhores praticas no desenvolvimento magento
Melhores praticas no desenvolvimento magentoMelhores praticas no desenvolvimento magento
Melhores praticas no desenvolvimento magento
Ricardo Martins
 
Mapa de aprendizado Front End
Mapa de aprendizado Front EndMapa de aprendizado Front End
Mapa de aprendizado Front End
Caio 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 ponta
Kirmayr tomaz
 
AutomaçãoWeb - Chaordic Academy
AutomaçãoWeb - Chaordic AcademyAutomaçãoWeb - Chaordic Academy
AutomaçãoWeb - Chaordic Academy
Fausto 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 01
Renato Sousa
 
Ruby On Rails - Porque Utilizar?
Ruby On Rails - Porque Utilizar?Ruby On Rails - Porque Utilizar?
Ruby On Rails - Porque Utilizar?
David Ruiz
 
Framework web 01 - Aula UTFPR 2018
Framework web 01 - Aula UTFPR 2018Framework web 01 - Aula UTFPR 2018
Framework web 01 - Aula UTFPR 2018
André Luiz Forchesatto
 
ESP204 - Cap. 2 - Processos.pdf
ESP204 - Cap. 2 - Processos.pdfESP204 - Cap. 2 - Processos.pdf
ESP204 - Cap. 2 - Processos.pdf
AndreLisboa13
 
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
Evandro Pires da Silva
 
Palestra Fatec
Palestra FatecPalestra Fatec
Palestra Fatec
almeidaricardo
 
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
Ismael
 
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
Giovanni Bassi
 

Semelhante a Rubysoc final RubyConfBR (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
 

Último

TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 

Último (8)

TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 

Rubysoc final RubyConfBR