From 95e34d09711116ccda0ec4d9d5bc8dee8dc322a8 Mon Sep 17 00:00:00 2001 From: Julio Biason Date: Wed, 11 Dec 2019 10:33:05 -0300 Subject: [PATCH 1/2] Flattened the stream processing presentation --- intro-stream-processing.html | 389 +++++++++++++++++------------------ 1 file changed, 189 insertions(+), 200 deletions(-) diff --git a/intro-stream-processing.html b/intro-stream-processing.html index d79d5f1..1f29a9d 100644 --- a/intro-stream-processing.html +++ b/intro-stream-processing.html @@ -76,30 +76,26 @@ - -
-
-
-
-

Uma Não-Gentil Introdução ao Stream Processing

-
-
- -
-
- Me - - -
-
+ +
+
+
+

Uma Não-Gentil Introdução ao Stream Processing

+
+ +
+ Me + + +

Agenda:

@@ -115,7 +111,7 @@
-

This is a CDN

+

This is a CDN

Lista de pontos de presença da CDN da Amazon
@@ -201,9 +197,7 @@

... a não ser que registros antigos fosse apagados.

... que é o que serviços de mensageria fazem.

-
-

Message Brokers

@@ -217,12 +211,12 @@ clientes: - Um dos clientes é um "Producer", responsável pela - geração de dados; numa analogia com banco de dados, - seria um aplicativo que somente fizesse INSERRTS. + geração de dados; numa analogia com banco de dados, + seria um aplicativo que somente fizesse INSERRTS. - O outro cliente é o "Consumer", responsável por - ler os dados gerados os dados gerados pelo - Producer. + ler os dados gerados os dados gerados pelo + Producer.
@@ -255,10 +249,10 @@
- Kafka Logo - RabbitMQ Logo - AWS SQS Logo - ZeroMQ Logo + Kafka Logo + RabbitMQ Logo + AWS SQS Logo + ZeroMQ Logo
- -

Batch Processing

@@ -320,21 +312,19 @@
- +
- Apache Spark Logo - Apache Hadoop Logo + Apache Spark Logo + Apache Hadoop Logo
-
-

Programação Funcional

@@ -363,7 +353,7 @@
def mult(a):
-    return a * 4
+ return a * 4
@@ -376,42 +366,42 @@
class LightSwitch:
-    def __init__(self):
-        self.state = False
+	def __init__(self):
+		self.state = False
 
-    def switch(self):
-        self.state = not self.state
-        print(self.state)
+ def switch(self): + self.state = not self.state + print(self.state)
-
-
light = LightSwitch()
+					
+
light = LightSwitch()
 light.switch()
- True + True -
light.switch()
- False -
+
light.switch()
+ False +
-
-
print()
+
+
print()
- + -
INSERT INTO table (value, value)
+
INSERT INTO table (value, value)
- + -
random()
-
+
random()
+

"Idempotência"

@@ -423,110 +413,110 @@ light.switch()
-
-

Imutabilidade

- -

Uma vez que o dado é gerado, ele nunca muda.

- -

(Transparência referencial)

-
- -
- - - -
- -
-
    -
  • map
  • -
  • reduce (fold)
  • -
  • filter
  • -
-
- -
-
    -
  • (map lambda iterable)
  • -
  • (fold lambda iterable start)
  • -
  • (filter lambda iterable)
  • -
-
- -
-
    -
  • map: transforma cada um dos - elementos do iterador através do função lambda - em uma nova lista.
  • -
  • fold: converte todos os elementos - da lista em um único valor, começando com um - valor adicionar (por exemplo, sum).
  • -
  • filter: remove elementos do - iterador que não sejam verdadeiros pelo lambda - e produz uma nova lista.
  • -
-
+
+

Imutabilidade

+ +

Uma vez que o dado é gerado, ele nunca muda.

+ +

(Transparência referencial)

+
+ +
+ + + +
+ +
+
    +
  • map
  • +
  • reduce (fold)
  • +
  • filter
  • +
+
+ +
+
    +
  • (map lambda iterable)
  • +
  • (fold lambda iterable start)
  • +
  • (filter lambda iterable)
  • +
+
+ +
+
    +
  • map: transforma cada um dos + elementos do iterador através do função lambda + em uma nova lista.
  • +
  • fold: converte todos os elementos + da lista em um único valor, começando com um + valor adicionar (por exemplo, sum).
  • +
  • filter: remove elementos do + iterador que não sejam verdadeiros pelo lambda + e produz uma nova lista.
  • +
+
-
-
-

Stream Processing

-
+
+
+

Stream Processing

+
sudo cat /etc/shadow | cut -d ':' -f 2 | sort | uniq -c
-
sudo cat [broker] | cut -d ':' -f 2 | sort | uniq -c
+
sudo cat [broker] | cut -d ':' -f 2 | sort | uniq -c
-
sudo cat [broker] | map | sort | uniq -c
+
sudo cat [broker] | map | sort | uniq -c
-
sudo cat [broker] | map | fold
+
sudo cat [broker] | map | fold
-
sudo cat [broker] | map | fold
-
sudo cat [broker] | map | fold
-
sudo cat [broker] | map | fold
-
sudo cat [broker] | map | fold
-
sudo cat [broker] | map | fold
+
sudo cat [broker] | map | fold
+
sudo cat [broker] | map | fold
+
sudo cat [broker] | map | fold
+
sudo cat [broker] | map | fold
+
sudo cat [broker] | map | fold
-
sudo cat [broker] | map | group_by | fold
-
sudo cat [broker] | map | group_by | fold
-
sudo cat [broker] | map | group_by | fold
-
sudo cat [broker] | map | group_by | fold
-
sudo cat [broker] | map | group_by | fold
+
sudo cat [broker] | map | group_by | fold
+
sudo cat [broker] | map | group_by | fold
+
sudo cat [broker] | map | group_by | fold
+
sudo cat [broker] | map | group_by | fold
+
sudo cat [broker] | map | group_by | fold
-
- -
+
+ +
-
- -
+
+ +
-
- Apache Storm Logo - Apache Flink Logo - Wallaroo  Logo - Apache Beam Logo -
+
+ Apache Storm Logo + Apache Flink Logo + Wallaroo  Logo + Apache Beam Logo +
@@ -572,9 +562,9 @@ light.switch()
- "A distributed system is one in which the failure of a - computer you didn't even know existed can render your - own computer unusable" + "A distributed system is one in which the failure of a + computer you didn't even know existed can render your + own computer unusable" -- Leslie Lamport, 1987
@@ -606,52 +596,51 @@ light.switch() graças ao jupyter.
-
- -
- - -

- -

- Perguntas? -

-
-
-
- - - - +
+ - +

+ +

+ Perguntas? +

+
+
+
+ + + + + + + From 3ac12beb7406e4f993809ae5844bc687d5f1d3b7 Mon Sep 17 00:00:00 2001 From: Julio Biason Date: Wed, 11 Dec 2019 11:02:43 -0300 Subject: [PATCH 2/2] Small updates to how/why --- porque-como-opensource.html | 911 ++++++++++++++++++------------------ 1 file changed, 450 insertions(+), 461 deletions(-) diff --git a/porque-como-opensource.html b/porque-como-opensource.html index beead8d..ee6d79a 100644 --- a/porque-como-opensource.html +++ b/porque-como-opensource.html @@ -56,574 +56,563 @@ -
-
-
-
-

Por que e Como Participar de Projetos Open Source

-
-
- -
-
- Me - - -
-
- -
-
-

Motivação

- - -
-
- -
-
-

Por Que Participar?

- -

Aprender algo novo

- - -
- -
-

Por Que Participar?

- -

Para retornar à comunidade

- - -
- -
-

Por Que Participar?

- -

"Scratch an itch"

- - -
- -
-

Por Que Participar?

- -

Fator abandono.

- - -
- -
-

Por que participar?

- -

- - The Hidden Benefit of Giving Back to Open Source Software - -

-
+
+
+
+

Por que e Como Participar de Projetos Open Source

-
-

Como Participar

- -

Contribuir com código

-
+ Me + + +
-
-

Enviar Código

+
+

Motivação

-

Enviar código com novas features é a forma mais direta mas não a mais fácil.

-
+ +
-
    -
  • Veja o código de conduta.
  • -
  • Aclimate-se ao ambiente do projeto (IRC, Maillist, Slack, etc)
  • -
  • Seguir os padrões de codificação do projeto (HACKING.md, CONTRIBUTING)
  • -
  • Entender os objetivos do projeto (isso está na cabeça dos mantenedores)
  • -
+
+

Por Que Participar?

+
-

Anedota: Mitter.

+
+

Por Que Participar?

-
- Um usuário pediu pra criar a feature de retweet antigo. Eu tive - que explicar que suportar duas formas diferentes seria mais - complexo do que esperado e desejado para o projeto. Felizmente, - ele entendeu. - -
+
+

Por Que Participar?

-
-

Enviar Código

+

Para retornar à comunidade

-

- Por onde começar? -

+ +
-
    -
  • Issue tracker
  • -
  • Entenda quais são as suas habilidades
  • -
  • Procure issues nessas habilidades
  • -
  • Defina um tempo para se dedicar
  • -
  • Paciência
  • -
+
+

Por Que Participar?

- -
+

"Scratch an itch"

-
-

Enviar Código

+ +
-

Lembre-se: para alguém, o projeto é seu filho.

+
+

Por Que Participar?

-

Anedota: IceWM.

+

Fator abandono.

-
- Como o meu patch gerou mais burburinho na lista de discussão e - IRC do que o que o mantenedor estava fazendo, ele portou meu - patch, trocando os nomes das variáveis. No final, eu fiquei como - "co-autor" da feature e não como contribuidor. +
+

Por que participar?

- Mas eu ganhei a feature que eu queria. +

+ + The Hidden Benefit of Giving Back to Open Source Software + +

+
- (Dica: o que eu usei pra achar onde estava a função foi - `grep`.) - -
+
+

Como Participar

+
-
-

Enviar Código

+
+

Como Participar

-

PR = "Puppy Request"

+

Contribuir com código

+
- - Brett Cannon (Microsoft) - Setting expectations for Open Source participation - -
+
+

Enviar Código

-
-

Enviar Código

+

Enviar código com novas features é a forma mais direta mas não a mais fácil.

+
-

Algumas vezes, o projeto já está abandonado pelo autor - original, mas a comunidade ainda mantém indiretamente.

+
+

Enviar Código

+ +
    +
  • Veja o código de conduta.
  • +
  • Aclimate-se ao ambiente do projeto (IRC, Maillist, Slack, etc)
  • +
  • Seguir os padrões de codificação do projeto (HACKING.md, CONTRIBUTING)
  • +
  • Entender os objetivos do projeto (isso está na cabeça dos mantenedores)
  • +
+ +

Anedota: Mitter.

+ + +
-

Anedota: Blackbox.

+
+

Enviar Código

+ +

+ Por onde começar? +

+ +
    +
  • Issue tracker ou pedir "onde posso ajudar?"
  • +
  • Entenda quais são as suas habilidades
  • +
  • Procure issues nessas habilidades
  • +
  • Defina um tempo para se dedicar
  • +
  • Paciência
  • +
+ + +
- -
+
+

Enviar Código

-
-

Enviar Código

+

Lembre-se: para alguém, o projeto é seu filho.

-

- Muito raramente, o desenvolvedor simplesmente não tem tempo - para pesquisar como corrigir uma feature que ele mesmo quer - colocar. -

+

Anedota: IceWM.

-

Anedota: Htop.

+
- "Ah, não tô com vontade." +
+

Enviar Código

- Por pura irritação, eu baixei o fonte do psutils e olhei o - nome da função que encontrava o usuário e passei pra ele. - Meu nome está no "Thanks" do Htop 1 até hoje simplesmente - por isso. +

PR = "Puppy Request"

- (Dica: o que eu sei pra encontrar a função foi `ctags` pra - mapear o conteúdo do projeto e fui correndo de função em - função) - -
+ + Brett Cannon (Microsoft) - Setting expectations for Open Source participation +
-
-

Como Participar

+

Enviar Código

-

Bug reports

-
+

Algumas vezes, o projeto já está abandonado pelo autor + original, mas a comunidade ainda mantém indiretamente.

-
-

Bug Reports

+

Anedota: Blackbox.

+ + +
-

- Quando encontrar um problema, tente repetir; tente isolar - o que causa o problema (uma configuração, o nome do arquivo); - se conseguir, envie para o desenvolvedor. -

+
+

Enviar Código

-

Anedota: Skyrim.

+

+ Muito raramente, o desenvolvedor simplesmente não tem tempo + para pesquisar como corrigir uma feature que ele mesmo quer + colocar. +

- -
+ -
+
+

Enviar Código

+ +

3 coisas:

+ +
    +
  • Aprenda Git
  • +
  • Aprenda Inglês
  • +
  • + + Não tenha medo de perguntar alguma coisa porque não sabe; não saber não é defeito. + +
  • +
+
-
-

Bug Reports

+
+

Como Participar

+

Traduções

+
-

- Se não (quiser|saber) programar, descreva - passo-a-passo como reproduzir o erro. -

-
+
+

Traduções

-
-

O Fork

+

Se você não entende de código, pode ajudar traduzindo + a aplicação para a sua língua.

-

- Quando o desenvolvedor original do projeto não tem mais - interesse e não quer continuar, sempre há a possbilidade - de ter um desenvolvimento em separado. -

+

Anedota: Fábio Beneditto

-

Anedota: Jenkins, Pillow

-
+ +
-
-

O Fork

+
+

Como Participar

+

Documentação

+
-

- ... e há vezes que um fork, com ajuda da própria comunidade, - volta para o projeto original. -

+
+

Documentação

+ +

+ Desde "como instalar esse projeto" ao "o que ele faz", + ainda falta documentação de muita coisa. Nem é preciso + saber programar, pegando algumas dicas com o autor do + projeto. +

+ +

+ Dica: Embora alguns desenvolvedores reclamem da falta + de man pages, é possível fazer coisas bem legíveis + usando projetos como ReadTheDocs + e Gitbook. +

+
-

Anedota: Compiz, GCC

-
+
+

Como Participar

+

Bug reports

-
-

Como Participar

+

Bug Reports

-

Traduções

-
+

+ Quando encontrar um problema, tente repetir; tente isolar + o que causa o problema (uma configuração, o nome do arquivo); + se conseguir, envie para o desenvolvedor. +

-
-

Traduções

+

Anedota: Skyrim.

-

Se você não entende de código, pode ajudar traduzindo - a aplicação para a sua língua.

+ +
- -
+
+

Bug Reports

+ +

+ Se possível, crie um teste que mostre como o + problema se repete (o que é mais fácil para bibliotecas + e frameworks do que projetos). +

+ +

Anedota: MongoEngine.

+ +
-
-

Como Participar

+

Bug Reports

-

Artwork

-
+

+ Se não (quiser|saber) programar, descreva + passo-a-passo como reproduzir o erro. +

+
-
-

Artwork

+
+

Como Participar

+

O Fork

+
-

- Muitos projetos precisam de um site bonito e até - mesmo um logotipo interessante. Ajudar o desenvolvedor - mantendo um site que consiga comunicar o objetivo - do projeto sempre ajuda. -

+
+

O Fork

+ +

+ Quando o desenvolvedor original do projeto não tem mais + interesse e não quer continuar, sempre há a possbilidade + de ter um desenvolvimento em separado. +

-

Anedota: Alguma-Coisa-Dog.

-
+

Anedota: Jenkins, Pillow

-
-

Como Participar

+

O Fork

-

Documentação

-
+

+ ... e há vezes que um fork, com ajuda da própria comunidade, + volta para o projeto original. +

-
-

Documentação

- -

- Desde "como instalar esse projeto" ao "o que ele faz", - ainda falta documentação de muita coisa. Nem é preciso - saber programar, pegando algumas dicas com o autor do - projeto. -

+

Anedota: Compiz, GCC

+
-

- Dica: Embora alguns desenvolvedores reclamem da falta - de man pages, é possível fazer coisas bem legíveis - usando projetos como ReadTheDocs - e Gitbook. -

-
+
+

Como Participar

+

Artwork

-
-

Como Participar

+

Artwork

-

Doações

-
+

+ Muitos projetos precisam de um site bonito e até + mesmo um logotipo interessante. Ajudar o desenvolvedor + mantendo um site que consiga comunicar o objetivo + do projeto sempre ajuda. +

-
-

Doações

- -

- Alguns projetos tem pessoas trabalhando full time e - precisam de alguma forma de pagar essas pessoas. -

+

Anedota: Alguma-Coisa-Dog.

+
-

Anedota: VIM, Mozilla

+
+

Como Participar

+

Doações

+
- -
+
+

Como Participar

+

Evangelização

-
-

Como Participar

+

Evangelização

-

Evangelização

-
+

+ Você pode ajudar um projeto a crescer divulgando o mesmo + em palestas ou até mesmo comentando com seus colegas. +

-
-

Evangelização

+

+ Dica: Evite guerras santas do tipo "meu projeto vs seu projeto". +

-

- Você pode ajudar um projeto a crescer divulgando o mesmo - em palestas ou até mesmo comentando com seus colegas. -

- -

- Dica: Evite guerras santas do tipo "meu projeto vs seu projeto". -

+

Anedota: Eu ;).

+
-

Anedota: Eu ;).

-
+
+

Como Participar

+

"Obrigado"

-
-

Como Participar

- -

"Obrigado"

-
+

"Obrigado"

-
-

"Obrigado"

- -

Poucas coisas conseguem ser tão poderosas como um +

Poucas coisas conseguem ser tão poderosas como um simples "obrigado por ter feito esse projeto".

-

- Dica: Cerveja e Pizza também contam como obrigados. -

+

+ Dica: Cerveja e Pizza também contam como obrigados. +

-

Anedota: Htop.

-
+

Anedota: Htop.

+
+ +
+

"One more thing..."

-
-

"One more thing..."

-
- -
- -
- -
-

- "I think that openness as a practice – not just - code you can fork but the transparency and - accessibility of the development process." -

- -

- -- Mike Hoye, Mozilla -

-
- -
- -
-
- -
-
-

Perguntas?

- - -
-
-
-
- - - + + - +
+

+ "I think that openness as a practice – not just + code you can fork but the transparency and + accessibility of the development process." +

+ +

+ -- Mike Hoye, Mozilla +

+
- +
+ +

Perguntas?

+
+ + + + + + + + +