<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ricardo Zorzal Davila</title>
    <description>The latest articles on DEV Community by Ricardo Zorzal Davila (@rzorzal).</description>
    <link>https://dev.to/rzorzal</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F318832%2Fd548fb67-c774-43bf-bdf6-bcfeccdd2373.jpeg</url>
      <title>DEV Community: Ricardo Zorzal Davila</title>
      <link>https://dev.to/rzorzal</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rzorzal"/>
    <language>en</language>
    <item>
      <title>How to easy explain Machine Learning for everyone</title>
      <dc:creator>Ricardo Zorzal Davila</dc:creator>
      <pubDate>Thu, 29 Jul 2021 14:40:30 +0000</pubDate>
      <link>https://dev.to/rzorzal/how-to-easy-explain-machine-learning-for-everyone-2fmk</link>
      <guid>https://dev.to/rzorzal/how-to-easy-explain-machine-learning-for-everyone-2fmk</guid>
      <description>&lt;p&gt;Did you had to explain for someone what is a Machine Learning (ML) ? For your boss, investor, friend, family or anyone ? I think everybody who use ML at the work had to explain it. Sometimes it is hard because some people doen't know math or statistics very well ( and some other doesn't even know what it is). When I have to explain it I always try to understand who will listem, because if I was talking with my boss, he know something of math, and I can say things like 'function' or 'variable'. But when I'm talking with my friends, they don't even know what is it (sometimes they said that they are understaning, but I know that is a lie haha). This article is a methodoly that I develop to explain what is ML for everyone, without technical words or math language. I hope you can use it as much as I.&lt;/p&gt;

&lt;h2&gt;
  
  
  First things first
&lt;/h2&gt;

&lt;p&gt;Let me introduce you the meaning of learning. When we said: 'The machine is really think on that' it is the same of 'The machine is making some calcs'. I know that this may act like something hard to understand, but everybody make calc when we are trying to think. Let me show you.&lt;/p&gt;

&lt;p&gt;If I need to know what is the best way to go from here to the nearest starbucks. Our mind start thinking in: How much time it gonna take if I choose the A way, B way or even C way? Or other one will think: How much miles (or kilometers) do I will need to walk if I take A way, B way or C way? Look all those questions made you think in 'How much', but you can also think: What the way is more secure to go. But how we can measure securty ? The number of robers in the neighborhood ? The number of cars in the street ? The ammount of people transit in it on a day ? Even your qualitative question can be coverted at a quantitative one. And that is the beauty of thinking.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe9sub5829lr6enrtpw12.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe9sub5829lr6enrtpw12.jpg" alt="3-ways"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When we are trying to learning something we are simulating possibilities of doing something based on our own tests. We know that the way B is more short than way C, but way C in some hours of the day is not secure, so we can choose the way B instead of way C. Look, we are interpreting our data with our observations and learn with it. I know you had have to walk into all of theses ways to know the better choose.&lt;/p&gt;

&lt;p&gt;Machine will do the same as you did. But it will use math to understand the best choose. And it can use a lot of thinking types to choose the best. As you can prefer doing something because of something, the machine can think in a way different from the other one. We call it algorithm, and the data we are using to choose we call it features (or you can call it variables).&lt;/p&gt;

&lt;h2&gt;
  
  
  How we can predict something ?
&lt;/h2&gt;

&lt;p&gt;Now we understand what is learning in terms of thinking, how we can predict the future ?&lt;/p&gt;

&lt;p&gt;As we see at the top, we need to produce our observations based on our life. Machine can do the same to predict the future, but you need to give data for it. Machines can use the data from the past to understand better how the future will be.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpi89rquohk241qkh40d8.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpi89rquohk241qkh40d8.jpg" alt="baby-steps"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Imagine now that you start work in a new job, and don't know the better way to fo there. You need to start going there without any perceptions. After 10 times going to work, you can choose a better way, because you have data to understand what is the better. After 100 times, you may have a solid thinking in what is the better, and will choose always the right way.&lt;/p&gt;

&lt;p&gt;Machines will do the same. You can pass 10 observations and it will predict something, but when more and more data is passed, it can predict better. If you want to see them act by itself you can just pass sensors and say, go from A to B. It will start make your own observations, and you just need to say if it made a good or bad decisions.&lt;/p&gt;

&lt;p&gt;Look we now have 2 types os act. You can teach a machine passing data to it from the past, or you can just say if it made a good choice. This is called supervised and unsupervised methods.&lt;/p&gt;

&lt;p&gt;But how it can create the rules ? Lets imagine a configurable engine that make fruit juice. You can configure it to make orange juice pressing some buttons, insert the oranges into it and you will have orange juice at the final step. If you want mango juice, you need to set other configurations, input mango and it will produce mango juice. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fta01b4qrck6wdfrcrx11.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fta01b4qrck6wdfrcrx11.png" alt="orange-juice"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now you want papaya juice, but we don't now how to set the configuration. You will start pressing some buttons trying to create the correct configuration to do it. Now you are learning how to use this engine to produce papaya juice.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fivll32qgom4kdjko4l7l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fivll32qgom4kdjko4l7l.png" alt="papaya-juice"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ordinary functions act like the first exemple. We have data, and the rules and it produce a result to us. In the other hands, ML will need only the data and the result, and it will output the rules to do it. So if you pass papaya and papaya juice to the engine with ML, it will produce a configuration to make papaya juice to you. Now you can get this configuration and the data, put it into the engine without ML to start produce you papaya juice.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F95do2i9ctnodlyqlh4hg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F95do2i9ctnodlyqlh4hg.png" alt="papaya-juice-rules"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And that is wonderful. You can use ML to learn the rules of doing something, and with this rules in your hands, you can replicate it to predict the future.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;I know that this method is not accurate as expected, but for me it is working better than when I show graphs, functions, methods and all the boring stuffs for ordinary peoples. You can adapt it to your own observations, because after all, we are juice engines adapting our configurations to do the better fruit juice.&lt;/p&gt;

&lt;p&gt;Some people will start make some questions like: What you do when something occur ? What I need to start undersand better it ? How much time you studied to learn it ? And such others. In that case I advise you to try to explain with your own words and try to not scare them haha. Maybe they are thinking in learn more and you can be their teacher. Good luck and comment if you have any others ideas to explain better what ML is.&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>python</category>
      <category>datascience</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Conceitos básicos de blockchain (exemplo de iteração com React + Formik)</title>
      <dc:creator>Ricardo Zorzal Davila</dc:creator>
      <pubDate>Fri, 29 Jan 2021 20:50:33 +0000</pubDate>
      <link>https://dev.to/rzorzal/conceitos-basicos-de-blockchain-exemplo-de-iteracao-com-react-formik-24k6</link>
      <guid>https://dev.to/rzorzal/conceitos-basicos-de-blockchain-exemplo-de-iteracao-com-react-formik-24k6</guid>
      <description>&lt;p&gt;O mundo hoje presa por segurança e privacidade, principalmente no meio econômico. E foi nesse meio que se popularizou a blockchain. Neste artigo vamos entender alguns conceitos básicos desse ecossistema e uma implementação em React utilizando Formik que irá interagir com a rede.&lt;/p&gt;

&lt;p&gt;Este artigo é um artefato gerado da apresentação interna da empresa &lt;a href="//waproject.com.br"&gt;WA Project&lt;/a&gt; e que tem como autores &lt;a href="https://github.com/5ucr4m"&gt;Marcus Vinicius&lt;/a&gt;, &lt;a href="https://github.com/claudionts"&gt;Claudio Neto&lt;/a&gt; e &lt;a href="https://github.com/rzorzal"&gt;Ricardo Zorzal&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  O que é Blockchain afinal ?
&lt;/h1&gt;

&lt;p&gt;É um conjunto de transações colocados em blocos protegidos por criptografia formando uma grande corrente e são espalhados por vários computadores. A blockchain é pública e qualquer pessoa pode verificar e auditar as transações.&lt;/p&gt;

&lt;p&gt;Todas os blocos da blockchain são validados por pessoas que utilizam poder computacional para calcular o hash de cada bloco para garantir que as informações são verdadeiras e imutáveis. Dentro de cada bloco também encontramos o hash do bloco anterior, o que garante que informações não serão inseridas entre os blocos.&lt;/p&gt;

&lt;p&gt;Todos os blocos que são inseridos, são validados pela maioria da rede, ou seja, pelo menos 50%+1  da rede deve concordar que aquela transação é legítima e correta.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7zBnSHTM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/btmdbicsv7rn16lucfyd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7zBnSHTM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/btmdbicsv7rn16lucfyd.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Métodos de validação de transações
&lt;/h1&gt;

&lt;h3&gt;
  
  
  PoW - Proof-of-Work (Poder computacional)
&lt;/h3&gt;

&lt;p&gt;Esse método faz com que as transações sejam difíceis de provar a veracidade, gastando muito poder computacional, ou seja, ele faz o computador usar muito do seu CPU para realizar os cálculos de validação e provar a veracidade do nó.&lt;/p&gt;

&lt;h3&gt;
  
  
  PoS - Proof of Stake (Quantidade de Ativos)
&lt;/h3&gt;

&lt;p&gt;Esse outro usa a quantidade de ativos (tokens). Quanto mais ativos o usuário possuir, maior a chance de ele ser um validador da transação. Assim faz com que não gaste tanto poder computacional, consequentemente menos energia elétrica, mas o usuário ficaria com boa parte dos tokens destinados à essa finalidade.&lt;/p&gt;

&lt;h1&gt;
  
  
  Aplicações da blockchain
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Aplicações financeiras&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Contratos inteligentes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Serviços de cartórios e documentos.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;DNS descentralizado.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Aplicações reais
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Arcade.City&lt;/strong&gt; - Uma espécie de Uber peer-to-peer&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Direct.One&lt;/strong&gt; - Uso de blockchain para criação de documentos digitais e envio de mensagens transacionais com validade jurídica&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Nasdaq&lt;/strong&gt; - Emissão de título privados via blockchain&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The DAO - Decentralized Autonomous Organization&lt;/strong&gt;: Companhia de venture capital baseada em blockchain ( Fundo de investimento )&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Ná prática, como funciona?
&lt;/h1&gt;

&lt;p&gt;Para demonstrar o funcionamento, criamos um repositório que implementa uma votação usando esse serviço e um exemplo usando React + Formik que irá interagir com a blockchain.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/rzorzal/blockchain-vote-exemple"&gt;Blockchain&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/claudionts/blockchain-frontend"&gt;React + Formik&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Se quiserem aprender um pouco mais sobre o desenvolvimento do front-end, é só &lt;a href="https://dev.to/claudionts/utilizando-o-formik-context-15na"&gt;clicar aqui&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;Essa é uma tecnologia para se ficar de olho em 2021. Muitos sistemas vem crescendo e com o mundo se importante cada vez mais com privacidade e segurança muitas soluções usando blockchain podem vir a surgir. Acreditamos que ficar de olho e entender minimamente o que é e onde pode chegar essa ferramenta, poderá facilitar o desenvolvimento, nos tornando desenvolvedores cada vez melhores.&lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>react</category>
      <category>javascript</category>
    </item>
    <item>
      <title>[PT-BR] Node Secure update. Quais foram os problemas ?</title>
      <dc:creator>Ricardo Zorzal Davila</dc:creator>
      <pubDate>Sat, 08 Feb 2020 03:06:12 +0000</pubDate>
      <link>https://dev.to/rzorzal/pt-br-node-secure-update-quais-foram-os-problemas-856</link>
      <guid>https://dev.to/rzorzal/pt-br-node-secure-update-quais-foram-os-problemas-856</guid>
      <description>&lt;p&gt;Em fevereiro de 2020 foi liberada uma atualização para as versões 10x, 12x e 13x do Node.js e que causou uma certa ansiedade de discussão na comunidade em todo o globo. Ela veio para corrigir 3 problemas de servidores HTTP, principalmente aqueles que utilizam parser's nativos, como é o caso do mais utilizado e conhecido atualmente, o Express. Ambos os 3 problemas são encontrados na forma de interpretar uma conexão HTTP entre 2 (ou mais) pontas, podendo deixar os servidores vulnerareis ao ataque tanto em seu formato TSL quanto no inseguro HTTP.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quais foram os problemas encontrados ?
&lt;/h2&gt;

&lt;p&gt;O principal dos 3 se deve à uma má interpretação do header "Transfer-Encoding". Este header tem como objetivo deixar claro ao servidor como os dados do payload serão formatados, sendo valores possíveis para este: chunked, compress, deflate, gzip, identity. E todos podendo ser combinados usando uma virgula, como "chunked, compress" que neste caso seria interpretado como ou sendo "chunked" ou sendo "compress".&lt;/p&gt;

&lt;p&gt;O ataque poderia ser feito colocando uma formatação que não existe, como "eeee" e passando como body uma outra request. O servidor então terminava de interpretar o header do request e parava, enviando como response dados sensíveis, dando assim vazão ao ataque, que como no próprio release-note do node diz: "The payloads can be crafted by an attacker to hijack user sessions, poison cookies, perform clickjacking, and a multitude of other attacks depending on the architecture of the underlying system."&lt;/p&gt;

&lt;p&gt;O problema foi evidenciado pelo engenheiro de software do Ebay, Ethan Rubinson!&lt;/p&gt;

&lt;p&gt;Os relatados deste problema podem ser encontrados neste link:&lt;br&gt;
&lt;a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-15605"&gt;https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-15605&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O segundo problema que iremos entender é também um problema na forma de interpretar o header do HTTP, ou HTTPS. Dessa vez quem revelou o problema à comunidade foi Alyssa Wilk, que trabalha no Google.&lt;/p&gt;

&lt;p&gt;Neste caso a interpretação dos parser's nativos tratavam de forma errada os espaços em branco de alguns headers que até então não "tratava" os valores passados para o cabeçalho, com isso alguns ataques conseguiam fazer os servidores ignorarem alguns algoritmos de segurança que checavam a integridade da conexão entre os nós envolvidos.&lt;/p&gt;

&lt;p&gt;Esse ataque está relocionado no link abaixo:&lt;br&gt;
&lt;a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-15606"&gt;https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-15606&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora vamos para o terceiro problema de segurança corrigido, onde dessa vez tivemos 2 "autores" que informaram o problema, Rogier Schouten e Melvin Groenhoff.&lt;/p&gt;

&lt;p&gt;Este ataque consiste em configurar uma chamada TLS, ou seja HTTPS, onde seja passado a propriedade subjectAltName com 19 strings como certificado da conexão, isso fará com que o servidor caia e possibilitaria uma invasão por queda (ou um ataque de negação de serviço também) caso o servidor tente ler o certificado do nó que faz a requisição.&lt;/p&gt;

&lt;p&gt;Como esse caso é um pouco mais técnico e só acontecia em servidores que utilizassem o HTTPS e que o certificado estivesse mal configurado, o problema pode ter sido pouco utilizado pelos atacantes.&lt;/p&gt;

&lt;p&gt;Vocês podem acompanhar usando o link:&lt;br&gt;
&lt;a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-15604"&gt;https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-15604&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mesmo sendo uma atualização importantíssima para os servidores e todos os programas afetados, os mantenedores do Node.js ainda deixaram claro que para quais-quer fins você pode usar a flag "--insecure-http-parser" para não levar essas atualizações para o seu sistema, mas é de suma importância entender os riscos e que os desenvolvedores da plataforma dizem que não seria uma boa prática.&lt;/p&gt;

&lt;h2&gt;
  
  
  Legal, como eu faço para ver as correções ?
&lt;/h2&gt;

&lt;p&gt;O mais legal da comunidade Node.js é a facilidade de ver o trabalho dos mantenedores, você pode ficar atento ao próprio site nodejs.org e entrar nas versões e acompanhar os change logs de cada versão. Além de consultar vários artigos sobre as versões e atualizações da plataforma, no site mesmo.&lt;/p&gt;

&lt;p&gt;Outra ótima maneira é acessar o repositório no github e verificar os commits :) &lt;a href="https://github.com/nodejs/node"&gt;https://github.com/nodejs/node&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O mais legal de tudo, é que como tudo é documentado, testado e explicado dentro do próprio repositório, os casos de teste também podem ser rodados e avaliados por vocês.&lt;/p&gt;

&lt;p&gt;Como é o caso deste link, que mostra o commit feito para testar a solução do primeiro problema que apresentei aqui:&lt;br&gt;
&lt;a href="https://github.com/nodejs/node/commit/eea3a7429b"&gt;https://github.com/nodejs/node/commit/eea3a7429b&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Além desses canais, de tempos em tempos são feitas reuniões online da comunidade e dos mantenedores e tudo é postado no canal do Youtube. Exemplo de post: &lt;a href="https://www.youtube.com/watch?v=mj33ibz7Ias"&gt;https://www.youtube.com/watch?v=mj33ibz7Ias&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Comunidade acima de tudo
&lt;/h2&gt;

&lt;p&gt;Essas correções de segurança e os problemas que foram encontrados (até os quais ainda não temos solução) podem ser encontrados (e reportados por vocês) em sites como o &lt;a href="https://cve.mitre.org/index.html"&gt;https://cve.mitre.org/index.html&lt;/a&gt; e é muito importante, para todo o ecossistema, que a comunidade esteja ativa e troque bastante figurinha sobre todos os assuntos. &lt;/p&gt;

&lt;p&gt;Se os desenvolvedores que citei aqui não tivessem relatado os problemas e os mantenedores do Node correrem para os corrigir, talvez sua aplicação sofresse os ataques e você nunca iria entender à fundo o que houve.&lt;/p&gt;

&lt;p&gt;Contribua com a sua plataforma, com sua comunidade, com sua linguagem de programação favorita. O importante aqui é você participar :)&lt;/p&gt;

</description>
      <category>node</category>
      <category>http</category>
    </item>
  </channel>
</rss>
