<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/feed.rss.xml" type="text/xsl" media="screen"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Gabriel Leopoldo Ferreira</title>
    <description>Software developer and cartoonist in my free time </description>
    <link>https://speakerdeck.com/gleopoldo</link>
    <atom:link rel="self" type="application/rss+xml" href="https://speakerdeck.com/gleopoldo.rss"/>
    <lastBuildDate>2020-03-30 11:13:39 -0400</lastBuildDate>
    <item>
      <title>Um bom design</title>
      <description>Design é um conceito de ampla discussão, e extremamente subjetivo. De forma análoga, discutir se um design é bom ou não é um tópico que gera profundas discussões, muitas vezes porque somos influenciados por nossas perspectivas e experiências anteriores. Então, como chegar a um consenso sobre o que é um bom design? E qual a importância disso?

Nessa talk discuto princípios que nos ajudam a entender e diagnosticar uma proposta de design, trazendo insights para um maior aprofundamento no tema</description>
      <media:content url="https://files.speakerdeck.com/presentations/5e21904502bf4f898cf2bf8084beefd3/preview_slide_0.jpg?20054764" type="image/jpeg" medium="image"/>
      <content:encoded>Design é um conceito de ampla discussão, e extremamente subjetivo. De forma análoga, discutir se um design é bom ou não é um tópico que gera profundas discussões, muitas vezes porque somos influenciados por nossas perspectivas e experiências anteriores. Então, como chegar a um consenso sobre o que é um bom design? E qual a importância disso?

Nessa talk discuto princípios que nos ajudam a entender e diagnosticar uma proposta de design, trazendo insights para um maior aprofundamento no tema</content:encoded>
      <pubDate>Wed, 12 Jan 2022 00:00:00 -0500</pubDate>
      <link>https://speakerdeck.com/gleopoldo/um-bom-design-38de1d84-b4ae-45c2-8948-657492273d94</link>
      <guid>https://speakerdeck.com/gleopoldo/um-bom-design-38de1d84-b4ae-45c2-8948-657492273d94</guid>
    </item>
    <item>
      <title>RubyConf BR 2021 - Uma talk eventualmente consistente</title>
      <description>"Eventualmente consistente" é a expressão que usamos para informações que não são atualizadas em tempo real mas que, eventualmente, se tornam consistentes. Essa estratégia de delaying pode ser vital para um sistema, como foi no nosso caso, em que reduzimos o tempo para recalcular relatórios de envio por hora de 4 horas em média para apenas 5 minutos. Esta talk traz um compilado de aprendizados sobre o uso consciente dos recursos disponíveis, tomando por base um ambiente altamente concorrente com processamento diário de mais de 10M de eventos.</description>
      <media:content url="https://files.speakerdeck.com/presentations/fd4edb591063490cb37bd4cdd9ba43c4/preview_slide_0.jpg?18668080" type="image/jpeg" medium="image"/>
      <content:encoded>"Eventualmente consistente" é a expressão que usamos para informações que não são atualizadas em tempo real mas que, eventualmente, se tornam consistentes. Essa estratégia de delaying pode ser vital para um sistema, como foi no nosso caso, em que reduzimos o tempo para recalcular relatórios de envio por hora de 4 horas em média para apenas 5 minutos. Esta talk traz um compilado de aprendizados sobre o uso consciente dos recursos disponíveis, tomando por base um ambiente altamente concorrente com processamento diário de mais de 10M de eventos.</content:encoded>
      <pubDate>Thu, 29 Jul 2021 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/gleopoldo/rubyconf-br-2021-uma-talk-eventualmente-consistente</link>
      <guid>https://speakerdeck.com/gleopoldo/rubyconf-br-2021-uma-talk-eventualmente-consistente</guid>
    </item>
    <item>
      <title>12 [Anti] Factors</title>
      <description>Vamos falar sobre os 12-Factor, mas sob uma ótica diferente: o que não fazer. A ideia desta talk é expor algumas práticas que podem ajudar nossas aplicações a rodar em ambientes distintos seguindo alguns conceitos simples definidos pelos 12 Factors.</description>
      <media:content url="https://files.speakerdeck.com/presentations/eb2cf735b9b24e0ab463bc42d132b295/preview_slide_0.jpg?15770181" type="image/jpeg" medium="image"/>
      <content:encoded>Vamos falar sobre os 12-Factor, mas sob uma ótica diferente: o que não fazer. A ideia desta talk é expor algumas práticas que podem ajudar nossas aplicações a rodar em ambientes distintos seguindo alguns conceitos simples definidos pelos 12 Factors.</content:encoded>
      <pubDate>Thu, 02 Jul 2020 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/gleopoldo/12-anti-factors</link>
      <guid>https://speakerdeck.com/gleopoldo/12-anti-factors</guid>
    </item>
    <item>
      <title>Techtalk - My method is missing!</title>
      <description>Esta apresentação foi ministrada em um curso de desenvolvimento e a traz uma dinâmica acerca da implementação do algoritmo de method lookup e constant lookup do ruby.</description>
      <media:content url="https://files.speakerdeck.com/presentations/92d036495a764682884768a5de60f565/preview_slide_0.jpg?15221740" type="image/jpeg" medium="image"/>
      <content:encoded>Esta apresentação foi ministrada em um curso de desenvolvimento e a traz uma dinâmica acerca da implementação do algoritmo de method lookup e constant lookup do ruby.</content:encoded>
      <pubDate>Wed, 22 Jan 2020 00:00:00 -0500</pubDate>
      <link>https://speakerdeck.com/gleopoldo/techtalk-my-method-is-missing</link>
      <guid>https://speakerdeck.com/gleopoldo/techtalk-my-method-is-missing</guid>
    </item>
    <item>
      <title>RubyConf BR 2019 - Domain Driven Rails</title>
      <description>Esta talk fala sobre um case de sucesso em que conseguimos substituir uma abordagem rails-way usando MVC por uma solução mais elegante e expressiva para modelar o contexto de negócio usando apenas Ruby (sem dependências diretas de banco de dados) usando Domain Driven Design e uma arquitetura hexagonal.</description>
      <media:content url="https://files.speakerdeck.com/presentations/b911df9c51174c798676c54042bd890b/preview_slide_0.jpg?15221553" type="image/jpeg" medium="image"/>
      <content:encoded>Esta talk fala sobre um case de sucesso em que conseguimos substituir uma abordagem rails-way usando MVC por uma solução mais elegante e expressiva para modelar o contexto de negócio usando apenas Ruby (sem dependências diretas de banco de dados) usando Domain Driven Design e uma arquitetura hexagonal.</content:encoded>
      <pubDate>Thu, 28 Nov 2019 00:00:00 -0500</pubDate>
      <link>https://speakerdeck.com/gleopoldo/rubyconf-br-2019-domain-driven-rails</link>
      <guid>https://speakerdeck.com/gleopoldo/rubyconf-br-2019-domain-driven-rails</guid>
    </item>
    <item>
      <title>Techtalk - Desenvolvendo uma pirâmide de testes</title>
      <description>Esta talk foi ministrada em um curso de desenvolvimento e traz uma visão diferente acerca de testes: a principal ênfase está em "quais feedbacks meu teste pode dar a respeito do meu código", e como extrair máximo proveito disso para contribuir com um código de melhor qualidade.</description>
      <media:content url="https://files.speakerdeck.com/presentations/605b40f9312d492db4e1aea3d700c085/preview_slide_0.jpg?15221667" type="image/jpeg" medium="image"/>
      <content:encoded>Esta talk foi ministrada em um curso de desenvolvimento e traz uma visão diferente acerca de testes: a principal ênfase está em "quais feedbacks meu teste pode dar a respeito do meu código", e como extrair máximo proveito disso para contribuir com um código de melhor qualidade.</content:encoded>
      <pubDate>Fri, 01 Mar 2019 00:00:00 -0500</pubDate>
      <link>https://speakerdeck.com/gleopoldo/techtalk-desenvolvendo-uma-piramide-de-testes</link>
      <guid>https://speakerdeck.com/gleopoldo/techtalk-desenvolvendo-uma-piramide-de-testes</guid>
    </item>
    <item>
      <title>RubyConf BR 2018 - Um paralelo com Ruby</title>
      <description>Paralelismo é um dos principais alicerces sobre os quais nos apoiamos quando pensamos em otimização de processamento, e é um dos principais pontos criticados no Ruby quanto a performance. Mas será que esse problema é tão grande quanto nos é apontado? Nesta talk apresento uma comparação entre os modelos de concorrência adotados pelo Erlang OTP - sobre o qual a linguagem Elixir está fundamentada - e a implementação de concorrência do Ruby, e como extrair máximo proveito das abordagens. Além disso, trago um preview das principais mudanças que ocorreram neste quesito com a chegada do ruby 3x3</description>
      <media:content url="https://files.speakerdeck.com/presentations/eacfb90422cb458cb1f77da8b927355a/preview_slide_0.jpg?15221429" type="image/jpeg" medium="image"/>
      <content:encoded>Paralelismo é um dos principais alicerces sobre os quais nos apoiamos quando pensamos em otimização de processamento, e é um dos principais pontos criticados no Ruby quanto a performance. Mas será que esse problema é tão grande quanto nos é apontado? Nesta talk apresento uma comparação entre os modelos de concorrência adotados pelo Erlang OTP - sobre o qual a linguagem Elixir está fundamentada - e a implementação de concorrência do Ruby, e como extrair máximo proveito das abordagens. Além disso, trago um preview das principais mudanças que ocorreram neste quesito com a chegada do ruby 3x3</content:encoded>
      <pubDate>Thu, 13 Dec 2018 00:00:00 -0500</pubDate>
      <link>https://speakerdeck.com/gleopoldo/rubyconf-br-2018-um-paralelo-com-ruby</link>
      <guid>https://speakerdeck.com/gleopoldo/rubyconf-br-2018-um-paralelo-com-ruby</guid>
    </item>
    <item>
      <title>RubyConf BR 2017 - Explorando stacks do Ruby</title>
      <description>Quem nunca se deparou com um erro "stack level too deep"? Curiosamente isso não acontece em Elixir - a todas implementações de loop são baseadas em recursão com um pequeno detalhe a mais que não vem habilitada por padrão no Ruby. Esta talk mergulha fundo no processo de interpretação / compilação de um script em Ruby de forma didática a fim de resolver esse problema.

Esta é a mesma apresentação que fiz na TDC - SP 2017, e também na GURUSP, no mesmo ano</description>
      <media:content url="https://files.speakerdeck.com/presentations/5c78ffb02302434f92c95ba894962773/preview_slide_0.jpg?15221158" type="image/jpeg" medium="image"/>
      <content:encoded>Quem nunca se deparou com um erro "stack level too deep"? Curiosamente isso não acontece em Elixir - a todas implementações de loop são baseadas em recursão com um pequeno detalhe a mais que não vem habilitada por padrão no Ruby. Esta talk mergulha fundo no processo de interpretação / compilação de um script em Ruby de forma didática a fim de resolver esse problema.

Esta é a mesma apresentação que fiz na TDC - SP 2017, e também na GURUSP, no mesmo ano</content:encoded>
      <pubDate>Thu, 16 Nov 2017 00:00:00 -0500</pubDate>
      <link>https://speakerdeck.com/gleopoldo/rubyconf-br-2017-explorando-stacks-do-ruby</link>
      <guid>https://speakerdeck.com/gleopoldo/rubyconf-br-2017-explorando-stacks-do-ruby</guid>
    </item>
  </channel>
</rss>
