20 Mil Léguas Sub-pythonicas
Filipe Fernandes
April 5, 2018
whoami
Filipe Fernandes
![]()
Oceanógrafo Físico por profissão, programador por acaso, educador por paixão.
ps aux != “work”

O que é oceanografia?
(em 3 slides)
- um curso essencialmente científico com foco primariamente acadêmico;
- bases em física, química, biologia, e geologia;
- oceanógraf@s sabem um pouco de tudo, mas nada em profundidade.
next(slides)
O que todos acham que é:

next(slides)
O que realmente é:

next(slides)
Mas nem tudo é trabalho

next(slides)
O mercado de trabalho…
ps aux | grep “work”
![]()
IOOS/RAs
![]()
ps aux | grep “volunteer work”

![]()
ps aux | grep “academia”



if bad_results: break

climatecode
Evasão da academia
![]()
ps aux | grep “OSS work”
![]()
ps aux | grep “OSS work”
![]()
![]()
- Apenas uma inspiração para não programadores na audiência.
- Projeto inicial era de um oceanógrafo!
- Fernando Perez é Físico e desenvolveu o projeto durante o doutorado.
- Minha participação foi pequena:
nbconvert.
![]()
- Comunidade do UK Met Office no GitHub.
- Todo o trabalho deles é OSS.
- Um exemplo de como um órgão governamental deve agir!
Iris
![]()
Cartopy
![]()
![]()
- Começo turbulento
- Muito academicismo e pouco Software
- Suporte da UNESCO e SCOR/IAPSO Working group 127
![]()
![]()
- Uma organização aberta a toda comunidade oceanográfica que se interessa por programação.
- A ideia é não ter vínculos com governo, empresas, universidades, etc.
- Um espaço aberto à todos.
gridgeo

gridgeo

python-ctd

pocean-core
erddapy
from erddapy import ERDDAP
constraints = {'time>=': '2016-07-10T00:00:00Z',
'time<=': '2017-02-10T00:00:00Z',
'latitude>=': 38.0, 'latitude<=': 41.0,
'longitude>=': -72.0, 'longitude<=': -69.0,}
variables = ['depth', 'temperature',]
e = ERDDAP(server='https://data.ioos.us/gliders/erddap',
constraints=constraints,
variables=variables,
)
erddapy

folium

![]()
- provavelmente o projeto de maior alcance fora de área de Met/Ocean
- comunidade com crescimento orgânico e rápido
- missão: facilitar a instalação de software
Por que?
![]()
@conda-forge/core
![]()
objetivo
![]()
- Segue os moldes do UK Met Office.
- Gerencia Software, uso das tecnologias, dados, e projetos no GitHub.
- O objetivo principal é melhorar a passagem do conhecimento através de várias gerências.
Data Demo Center

https://ioos.github.io/notebooks_demos
Code Gallery

Já que o assunto é Ciência
- Quantos aqui tem um diploma em ciência básica?
- Quantos não mais praticam essa ciência no dia-a-dia?
- Quem se (re-)encontrou na área de tecnologia/data science?
Quem faz ciência?
- constrói e organiza conhecimento
- testa explicações sobre o universo:
- sistematicamente,
- objetivamente,
- de forma transparente,
- e reprodutível.
Ciência conta com:
- revisão pelos pares
- ceticismo
- transparência
- atribuição
- prestação de contas
- colaboração
- e impacto!
Exemplo: missão da UFSC
Qualidade, Inovação, Atuação, Inclusão, Internacionalização, Liberdade e responsabilidade, Autonomia, Democrática e plural, Otimização administrativa, Transparência, Ética.
O ponto é
Fazer ciência não é tão diferente assim de programação!
Mas “codar” ciência não é fácil?
O que eu, profissional da tecnologia, tenho isso?
Por que devo me importar?
clique aqui para ver o notebook
Colocando a mão na massa!

Consigo ver o mar subindo? (Spoiler: não!)
http://pangeo.pydata.org
sea-surface-height.ipynb

Quer dizer, com um super cluster, jupyter, python, xarray, dask, kubernetes, data cloud, e +70 Gigas de dados, sim!
sea-surface-height.ipynb

Scientific Software pledge
- Desenvolver Software aberto desde o início, sempre que possível.
- Contribuir para a sustentabilidade do Software que uso e dependo.
- Aplicar práticas propostas de engenharia de software de acordo com as necessidades e recursos reais do projeto.
Scientific Software pledge..
- Ajudar os pesquisadores a melhorar a qualidade do seu software sem julgar.
- Publicar as contribuições intelectuais do meu software de pesquisa.
- Documentar (incluindo instruções de uso e exemplos de entrada e saída), pacotes, releases, e versões arquivadas do meu software.
Resumo
- É difícil conseguir unicórnios para programação científica.
- Mas não precisamo de unicórnios, precisamos apenas de uma ponte entre programadores e cientistas.
Perguntas?
![]()