flusp: floss at usp reunião de férias do · android (80% de todos os novos smartphones vendidos)...

35
Reunião de Férias do FLUSP: FLOSS at USP

Upload: others

Post on 27-Sep-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: FLUSP: FLOSS at USP Reunião de Férias do · Android (80% de todos os novos smartphones vendidos) Top 500 supercomputadores ... Makefile (conhecimento básico) ... Às vezes, pode

Reunião de Férias doFLUSP: FLOSS at USP

Page 2: FLUSP: FLOSS at USP Reunião de Férias do · Android (80% de todos os novos smartphones vendidos) Top 500 supercomputadores ... Makefile (conhecimento básico) ... Às vezes, pode

Grupo

Page 3: FLUSP: FLOSS at USP Reunião de Férias do · Android (80% de todos os novos smartphones vendidos) Top 500 supercomputadores ... Makefile (conhecimento básico) ... Às vezes, pode

● Doações da Analog Devices

● Gosto pelo Kernel e FLOSS

● Mais em: https://flusp.ime.usp.br/about

História● Laboratório de Métodos Ágeis (2°

sem de 2018)

● 20% de todas as contribuições no linux-iio, no período

Page 4: FLUSP: FLOSS at USP Reunião de Férias do · Android (80% de todos os novos smartphones vendidos) Top 500 supercomputadores ... Makefile (conhecimento básico) ... Às vezes, pode

● Contribuir para FLOSS

○ Aprender com códigos de sucesso

○ Interagir com a comunidade e empresas

● Compartilhar conhecimento

○ Primeiros passos e diretrizes

○ Dos and don’ts

● Oportunidades

○ GSoC/Outreachy

○ Empregos/estágios

● Have fun! (cliché)

Objetivos

Page 5: FLUSP: FLOSS at USP Reunião de Férias do · Android (80% de todos os novos smartphones vendidos) Top 500 supercomputadores ... Makefile (conhecimento básico) ... Às vezes, pode

Valores● Liberdade de código e conhecimento

● Organização horizontal

● Compartilhamento mútuo de conhecimento

● Revisão é tão importante quanto desenvolvimento

● Passar o bastão

Page 6: FLUSP: FLOSS at USP Reunião de Férias do · Android (80% de todos os novos smartphones vendidos) Top 500 supercomputadores ... Makefile (conhecimento básico) ... Às vezes, pode

Organização do Grupo● Descentralização

● Sistema de mentoria

● Dinamicidade

● Fazedocracia

● Background Agile

○ Stand up meetings

○ Pair Programming

○ Sprints

FLUSP

GCC

Kernel

GoSPN

Beep

flusp-site

flusp-infra

ULXRandR

Kworkflow

Page 7: FLUSP: FLOSS at USP Reunião de Férias do · Android (80% de todos os novos smartphones vendidos) Top 500 supercomputadores ... Makefile (conhecimento básico) ... Às vezes, pode

Projetos

Page 8: FLUSP: FLOSS at USP Reunião de Férias do · Android (80% de todos os novos smartphones vendidos) Top 500 supercomputadores ... Makefile (conhecimento básico) ... Às vezes, pode

Linux Kernel● Mentores: Matheus, Marcelo,

Siqueira, Shayenne

Page 9: FLUSP: FLOSS at USP Reunião de Férias do · Android (80% de todos os novos smartphones vendidos) Top 500 supercomputadores ... Makefile (conhecimento básico) ... Às vezes, pode

Linux Kernel em númerosArquivos 63.074

Linhas 26.209.167

Commits 809.891

Autores 19.577

Isso só na branch ‘master’ de https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/ em 05/01/2018

Page 10: FLUSP: FLOSS at USP Reunião de Férias do · Android (80% de todos os novos smartphones vendidos) Top 500 supercomputadores ... Makefile (conhecimento básico) ... Às vezes, pode

Linux Kernel em números● Android (80% de todos os novos smartphones vendidos)

● Top 500 supercomputadores

● Servidores

● International Space Station

○ OpsLAN

○ Robonaut R2

● Bolsa de valores de NY, Tokyo e Londres.

Fontes: https://www.top500.org, https://training.linuxfoundation.org/solutions/corporate-solutions/success-stories/linux-foundation-training-prepares-the-international-space-station-for-linux-migration/, https://www.linuxfoundation.org/about/

Page 11: FLUSP: FLOSS at USP Reunião de Férias do · Android (80% de todos os novos smartphones vendidos) Top 500 supercomputadores ... Makefile (conhecimento básico) ... Às vezes, pode

Estrutura do código

What it ISN’T What it IS

Page 12: FLUSP: FLOSS at USP Reunião de Férias do · Android (80% de todos os novos smartphones vendidos) Top 500 supercomputadores ... Makefile (conhecimento básico) ... Às vezes, pode

Motivações● Contribuir com um dos projetos mais usados no mundo● Desafios de programação e projeto● Interagir com desenvolvedores do mundo todo● Interagir com grandes players da indústria (Intel, IBM, RedHat, …)● Ter revisões de código (e revisar também)● ...

Page 13: FLUSP: FLOSS at USP Reunião de Férias do · Android (80% de todos os novos smartphones vendidos) Top 500 supercomputadores ... Makefile (conhecimento básico) ... Às vezes, pode

Recomendações● Conforto com C e ponteiros● Conforto com terminal e interface de linha de comando● Desejo de ler/escrever código de baixo nível● Makefile (conhecimento básico)● Git● Operações Bitwise● Big Endian e Little Endian

Page 14: FLUSP: FLOSS at USP Reunião de Férias do · Android (80% de todos os novos smartphones vendidos) Top 500 supercomputadores ... Makefile (conhecimento básico) ... Às vezes, pode

● Mentor: Giuliano

GCCGNU Compiler Collection

Page 15: FLUSP: FLOSS at USP Reunião de Férias do · Android (80% de todos os novos smartphones vendidos) Top 500 supercomputadores ... Makefile (conhecimento básico) ... Às vezes, pode

O que é o GCC● Compilador para várias plataformas e Sistemas Operacionais

○ x86, ARM, PPC, …

○ Linux, Mac, BSD, Windows, DOS, ...

● Primeiras versões datam da década de 80

● Compilador principal no Linux

● As mesmas motivações do Linux valem aqui!

Page 16: FLUSP: FLOSS at USP Reunião de Férias do · Android (80% de todos os novos smartphones vendidos) Top 500 supercomputadores ... Makefile (conhecimento básico) ... Às vezes, pode

Recomendações● Conforto com C e aspectos de linguagens de baixo nível

○ Às vezes, pode ser necessário fazer um dump do assembler para encontrar o problema

● Conforto com Terminal e Linha de Comando

● Ter alguma noção de Teoria de Compiladores○ Autômatos, Regex e Linguagens Livre-de-Contexto

○ Grafos de Controle de Fluxo

○ ...

● Conforto com o funcionamento de Ponto Flutuante○ Se for trabalhar nessa parte

Page 17: FLUSP: FLOSS at USP Reunião de Férias do · Android (80% de todos os novos smartphones vendidos) Top 500 supercomputadores ... Makefile (conhecimento básico) ... Às vezes, pode

Kworkflow

● Mentores: Siqueira, Giuliano

Page 18: FLUSP: FLOSS at USP Reunião de Férias do · Android (80% de todos os novos smartphones vendidos) Top 500 supercomputadores ... Makefile (conhecimento básico) ... Às vezes, pode

O que é o Kworkflow (kw)● Conjunto de scripts que busca facilitar o processo de desenvolvimento

para o Linux

● Surgiu como uma tentativa de juntar diversos scripts

● Em desenvolvimento

Recomendações● Bash

● Fluxo de desenvolvimento do Kernel

● Máquinas virtuais

Repositório: https://github.com/rodrigosiqueira/kworkflow

Page 19: FLUSP: FLOSS at USP Reunião de Férias do · Android (80% de todos os novos smartphones vendidos) Top 500 supercomputadores ... Makefile (conhecimento básico) ... Às vezes, pode

● Mentor: Giuliano

ULXRandR“Unofficial LXrandR fork with fixes”

Page 20: FLUSP: FLOSS at USP Reunião de Férias do · Android (80% de todos os novos smartphones vendidos) Top 500 supercomputadores ... Makefile (conhecimento básico) ... Às vezes, pode

● Mentor: Renato

Beep“IRC bot framework in C++ and libircclient”

Page 21: FLUSP: FLOSS at USP Reunião de Férias do · Android (80% de todos os novos smartphones vendidos) Top 500 supercomputadores ... Makefile (conhecimento básico) ... Às vezes, pode

● IRC○ Internet Relay Chat○ Text only○ Usado em vários projetos FLOSS

■ GNU Hurd (...)

■ Linux Kernel

■ FreeBSD

■ Debian

○ FLUSP também usa :)

■ irc.freenode.net | #ccsl-usp

Beep● Beep

○ C++11○ https://github.com/RenatoGeh/beep

● Boost○ https://www.boost.org/

● libircclient○ C○ http://www.ulduzsoft.com/libircclient/

● Features○ Framework simples○ Building blocks○ Modular (comandos são modules)

● Por que contribuir?○ Fácil de começar○ Quase nenhuma dependência○ Só codar

Page 22: FLUSP: FLOSS at USP Reunião de Férias do · Android (80% de todos os novos smartphones vendidos) Top 500 supercomputadores ... Makefile (conhecimento básico) ... Às vezes, pode

● Mentores: Siqueira, Renato

FLUSP-Infra“FLUSP server management”

Page 23: FLUSP: FLOSS at USP Reunião de Férias do · Android (80% de todos os novos smartphones vendidos) Top 500 supercomputadores ... Makefile (conhecimento básico) ... Às vezes, pode

● Mentor: Siqueira

FLUSP-site“FLUSP site”

Page 24: FLUSP: FLOSS at USP Reunião de Férias do · Android (80% de todos os novos smartphones vendidos) Top 500 supercomputadores ... Makefile (conhecimento básico) ... Às vezes, pode

● Mentor: Renato

GoSPNA free, open-source inference and learning

library for Sum-Product Networks

Page 25: FLUSP: FLOSS at USP Reunião de Férias do · Android (80% de todos os novos smartphones vendidos) Top 500 supercomputadores ... Makefile (conhecimento básico) ... Às vezes, pode

Image Reconstruction with Sum-Product Networks

https://github.com/renatogeh/gospn

Page 26: FLUSP: FLOSS at USP Reunião de Férias do · Android (80% de todos os novos smartphones vendidos) Top 500 supercomputadores ... Makefile (conhecimento básico) ... Às vezes, pode

https://youtu.be/vhpWQDX2cQU

https://github.com/renatogeh/godrive

Autonomous Mobile Robot Driving Through Image Classification Using Discriminative Learning of Sum-Product Networks

https://www.ime.usp.br/~renatolg/mac0499

Page 27: FLUSP: FLOSS at USP Reunião de Férias do · Android (80% de todos os novos smartphones vendidos) Top 500 supercomputadores ... Makefile (conhecimento básico) ... Às vezes, pode

Próximos passos

● RAT-SPNs (Random-Tensorized Sum-Product Networks)○ Resultados comparáveis a DNN○ Mas:

■ Inferência exata linear■ Robusto em missing features■ Modelo gerativo

Page 28: FLUSP: FLOSS at USP Reunião de Férias do · Android (80% de todos os novos smartphones vendidos) Top 500 supercomputadores ... Makefile (conhecimento básico) ... Às vezes, pode

Recomendações● Probabilidade e Estatística

○ MAE0121, MAE0212 ou equivalentes

● Grafos○ MAC0328 pelo menos

● Disposição para ler artigos● Git● Linguagem Go● Vontade de aprender :)

Page 29: FLUSP: FLOSS at USP Reunião de Férias do · Android (80% de todos os novos smartphones vendidos) Top 500 supercomputadores ... Makefile (conhecimento básico) ... Às vezes, pode

GSoC e Outreachy

Page 30: FLUSP: FLOSS at USP Reunião de Férias do · Android (80% de todos os novos smartphones vendidos) Top 500 supercomputadores ... Makefile (conhecimento básico) ... Às vezes, pode
Page 31: FLUSP: FLOSS at USP Reunião de Férias do · Android (80% de todos os novos smartphones vendidos) Top 500 supercomputadores ... Makefile (conhecimento básico) ... Às vezes, pode

● Ajudar as comunidades de software livres a obterem novos membros● Trabalho remoto e durante as férias de verão (EUA)● Valor total da bolsa: 4500 dólares (pago em três parcelas)● Data importantes:

○ 26 de Fevereiro: Lista das organizações aceitas○ 25 de Março: Início das aplicações○ 9 de Abril: Fim das inscrições○ 6 de Maio: Resultado dos selecionados○ 27 de Maio: Os trabalhos começam oficialmente○ 3 de Setembro: Resultado final

Google Summer of Code (GSoC)

Page 32: FLUSP: FLOSS at USP Reunião de Férias do · Android (80% de todos os novos smartphones vendidos) Top 500 supercomputadores ... Makefile (conhecimento básico) ... Às vezes, pode
Page 33: FLUSP: FLOSS at USP Reunião de Férias do · Android (80% de todos os novos smartphones vendidos) Top 500 supercomputadores ... Makefile (conhecimento básico) ... Às vezes, pode

● Estágio de apoio à diversidade em projetos de software livre e código aberto

● Trabalho remoto● Valor total da bolsa: 5500 dólares (pago em três parcelas)● Outreachy tem dois oferecimentos por ano:

○ Inscrições abertas Fevereiro Setembro○ Contribuições até Março Outubro○ Seleção Abril Novembro○ Estágio começa Maio Dezembro○ Estágio termina Agosto Março

● Leia mais em: https://www.outreachy.org

Outreachy

Page 34: FLUSP: FLOSS at USP Reunião de Férias do · Android (80% de todos os novos smartphones vendidos) Top 500 supercomputadores ... Makefile (conhecimento básico) ... Às vezes, pode

Dúvidas?

Page 35: FLUSP: FLOSS at USP Reunião de Férias do · Android (80% de todos os novos smartphones vendidos) Top 500 supercomputadores ... Makefile (conhecimento básico) ... Às vezes, pode

Hora de brincar :)