FLUSP: FLOSS at USP Reunião de Férias do · Android (80% de todos os novos smartphones vendidos)...

Preview:

Citation preview

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

Grupo

● 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

● 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

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

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

Projetos

Linux Kernel● Mentores: Matheus, Marcelo,

Siqueira, Shayenne

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

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/

Estrutura do código

What it ISN’T What it IS

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)● ...

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

● Mentor: Giuliano

GCCGNU Compiler Collection

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!

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

Kworkflow

● Mentores: Siqueira, Giuliano

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

● Mentor: Giuliano

ULXRandR“Unofficial LXrandR fork with fixes”

● Mentor: Renato

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

● 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

● Mentores: Siqueira, Renato

FLUSP-Infra“FLUSP server management”

● Mentor: Siqueira

FLUSP-site“FLUSP site”

● Mentor: Renato

GoSPNA free, open-source inference and learning

library for Sum-Product Networks

Image Reconstruction with Sum-Product Networks

https://github.com/renatogeh/gospn

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

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

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

GSoC e Outreachy

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

● 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

Dúvidas?

Hora de brincar :)