<?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: Anderson Braz</title>
    <description>The latest articles on DEV Community by Anderson Braz (@andersonbraz).</description>
    <link>https://dev.to/andersonbraz</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%2F89400%2Fc8302aba-9003-4b1a-b4c2-972431097ad3.jpg</url>
      <title>DEV Community: Anderson Braz</title>
      <link>https://dev.to/andersonbraz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/andersonbraz"/>
    <language>en</language>
    <item>
      <title>Configurando NGINX + PHP no Mac OS</title>
      <dc:creator>Anderson Braz</dc:creator>
      <pubDate>Wed, 27 Jul 2022 01:30:29 +0000</pubDate>
      <link>https://dev.to/andersonbraz/configurando-nginx-php-no-mac-os-3bnk</link>
      <guid>https://dev.to/andersonbraz/configurando-nginx-php-no-mac-os-3bnk</guid>
      <description>&lt;p&gt;Para aqueles que gostam ou querem ter um web server, configurado em seu Mac OS, sugiro instalar o NGINX. Eu particularmente gosto de ter o NGINX juntamente com o interpretador de cdigo PHP instalados e configurados no meu Mac. E se voc quer saber como instalar e configurar siga as seguintes instrues:&lt;/p&gt;

&lt;h2&gt;
  
  
  Pr-requisitos
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Siga as instrues do artigo: &lt;a href="https://andersonbraz.com/instalando-nginx-server-no-mac-os"&gt;Instalando NGINX Server no Mac OS&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Siga as instrues do artigo: &lt;a href="https://andersonbraz.com/como-instalar-o-php-no-mac-os"&gt;Como instalar o PHP no Mac OS?&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Instrues de Configurao
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Configurar NGINX
&lt;/h3&gt;

&lt;p&gt;Abra o arquivo de configurao do NGINX com o seguinte comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;code /usr/local/nginx/conf/nginx.conf

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Configuração mínima/padrão
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;worker_processes 1;

events {
    worker_connections 1024;
}

http {
    include mime.types;
    default_type application/octet-stream;

    sendfile on;
    keepalive_timeout 65;

    server {
        listen 80;
        server_name localhost;

        charset utf-8;

        location / {
            root html;
            index index.html index.htm index.php;
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
            root html;
        }

        location ~ \.php$ {
           root html;
           fastcgi_pass 127.0.0.1:9000;
           fastcgi_index index.php;
           fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
           include fastcgi_params;
        }

    }

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step3
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Step4
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Step5
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Step6
&lt;/h3&gt;

&lt;h2&gt;
  
  
  Concluso
&lt;/h2&gt;

&lt;p&gt;Aps seguir as instrues acima voc dispem de um servidor web local capaz de lhe ajudar em tarefas de desenvolvimento de sites e pginas para web com uso de cdigo em PHP. Tambm possvel realizar implantaes de pequenas solues CMS que se utilizam do PHP como: Wordpress, Grav, Joomla e outros.&lt;/p&gt;

&lt;h2&gt;
  
  
  Crditos
&lt;/h2&gt;

&lt;p&gt;Photo by &lt;a href="https://unsplash.com/@agk42?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Alex Knight&lt;/a&gt; on &lt;a href="https://unsplash.com/s/photos/computer?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Git - Comandos e Cenários Reais Importantes</title>
      <dc:creator>Anderson Braz</dc:creator>
      <pubDate>Thu, 11 Feb 2021 22:01:50 +0000</pubDate>
      <link>https://dev.to/andersonbraz/git-comandos-e-cenarios-reais-importantes-4gl8</link>
      <guid>https://dev.to/andersonbraz/git-comandos-e-cenarios-reais-importantes-4gl8</guid>
      <description>&lt;p&gt;Fazer primeiramente a leitura da documentação, sobre qualquer produto, ferramenta ou uma linguagem de programação na qual você quer se desenvolver, é fundamental para qualquer profissional da área de tecnologia.&lt;/p&gt;

&lt;p&gt;Porém algumas documentações não se utilizam de técnicas de estudo dirigido apontando possíveis cenários na demonstração dos comandos ou escrita de código. E isso foi algo que me fez inicialmente sempre adiar a leitura da documentação do Git e recorrer a pequenos tutoriais pela internet que resolvesse meu problema de forma pontual.&lt;/p&gt;

&lt;p&gt;E como recentemente tive a necessidade de relembrar alguns comandos do Git para trabalhar diversos cenários via terminal resolvi pegar algumas anotações junto a um post antigo e reescrever descrevendo alguns cenários e necessidades muito comuns que aparecem quando estamos trabalhando com diversos repositórios e equipes grandes trabalhando com branch apartadas.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introdução
&lt;/h2&gt;

&lt;p&gt;O GIT hoje mostra-se como uma das melhores tecnologias para repositório de projetos de código. Assim é muito importante, enquanto desenvolvedor, conhecermos os principais comandos para atuarmos no nosso trabalho. Portanto preparei um guia de referência rápido que compartilho nas linhas a seguir.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cenários e comandos
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Clonar projeto do repositório remoto para meu local
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone [url_do_meu_repositorio_git]

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Atualizar meu projeto local com todas alterações do repositório remoto
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git fetch --all

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Mostrar todas as branch do projeto atual
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git branch --all

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Criar uma nova branch
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git checkout master -b [nome_nova_branch]

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Deletar uma branch local
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git branch --delete [nome_da_branch]

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Deletar uma branch remota
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git push origin --delete [nome_da_branch]

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Mostrar todas as tag do projeto atual
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git tag --list

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Listar todos os arquivos alterados pelo meu usuário no projeto atual a partir de uma data
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git log --pretty= --author="Anderson Braz" --name-only --since="2020-02-01"

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Fazer merge da minha branch para a master
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git checkout master
git merge [nome_da_branch]
git push origin master

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Subir um projeto local que está em andamento para um novo repositório no GitHub
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd [caminho_do_diretorio_do_projeto]
git remote add origin [url_do_meu_repositorio_git]
git branch -M master
git push -u origin master
git add .
git commit -m "Start Project - Up File(s)"
git push origin master

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Corrigir a mensagem do último commit
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git commit --amend

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O editor que estiver configurado será aberto apresentando a mensagem do último commit. Faça a correção necessária, salve a alteração e feche o editor e execute o comando abaixo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git push --force

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Visualizar árvore de branch e commit do projeto
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git log --pretty=oneline --graph --decorate --all

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Minhas sugestões
&lt;/h2&gt;

&lt;p&gt;Importante ler a documentação e também está bem alinhado as práticas de uso de repositório de sua equipe de trabalho para que as coisas fluam bem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;É sempre importante ter em mente que saber alguns destes comandos no dia a dia faz uma baita diferença quando você não tem a disposição uma boa ferramenta GUI para realizar essa interações com o projeto.&lt;/p&gt;

&lt;h2&gt;
  
  
  Créditos
&lt;/h2&gt;

&lt;p&gt;Photo by &lt;a href="https://unsplash.com/@richygreat?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Richy Great&lt;/a&gt; on &lt;a href="https://unsplash.com/?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

</description>
      <category>git</category>
      <category>projects</category>
      <category>code</category>
      <category>commandline</category>
    </item>
    <item>
      <title>Atualizando as credenciais de login do SourceTree Git</title>
      <dc:creator>Anderson Braz</dc:creator>
      <pubDate>Wed, 03 Feb 2021 18:09:25 +0000</pubDate>
      <link>https://dev.to/andersonbraz/atualizando-as-credenciais-de-login-do-sourcetree-git-33ka</link>
      <guid>https://dev.to/andersonbraz/atualizando-as-credenciais-de-login-do-sourcetree-git-33ka</guid>
      <description>&lt;p&gt;No meu ambiente de trabalho, temos nossos projetos em repositório Git para controle e versão de código. E por sermos um time relativamente grande e com uma boa frequência de criação de branch paralela, é inevitável buscar uma interface com boa apresentação visual para as interações Git no andamento do projeto. Sou muito fã de soluções Open-Source e desta forma optei por utilizar o SourceTree para gerenciar meu código. Como o meu contexto de trabalho envolve Finanças por lá sempre temos forte regras de segurança e, portanto, de tempos em tempos é necessária a renovação da minha senha, só que isso acabava ferrando o meu SourceTree. Isso porque deixo as regras do meu Git config em relação a autenticação e o SourceTree em algum momento faz essa guarda não tão explicita.&lt;/p&gt;

&lt;p&gt;Assim, quando eu mudo minha senha, o SourceTree não percebe ou é informado dessa mudança e então ele acab forçando a senha antiga e acaba bloqueando minha nova senha.&lt;/p&gt;

&lt;p&gt;A solução mais eficaz e simples que encontrei para o meu problema - não usa nenhuma das caixas de diálogo SourceTree. E encontrei no post &lt;a href="https://www.binarymoon.co.uk/2014/11/updating-sourcetree-git-login-credentials/"&gt;Updating SourceTree Git Login Credentials escrito por Ben&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Abra SourceTree e navegue até o repositório do qual deseja atualizar a senha&lt;/li&gt;
&lt;li&gt;Execute o comando 'Actions&amp;gt; Terminal' para pular para o local do repo na linha de comando&lt;/li&gt;
&lt;li&gt;Digite 'Git Pull' e pressione Enter para atualizar o repositório&lt;/li&gt;
&lt;li&gt;Quando solicitado digite sua senha&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;E pronto my friends, tá resolvido essa bagaça.&lt;/p&gt;

&lt;h2&gt;
  
  
  Créditos
&lt;/h2&gt;

&lt;p&gt;Photo by &lt;a href="https://unsplash.com/@yancymin?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Yancy Min&lt;/a&gt; on &lt;a href="https://unsplash.com/?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

</description>
      <category>git</category>
      <category>opensource</category>
      <category>productivity</category>
      <category>programmer</category>
    </item>
    <item>
      <title>Minha jornada no IBM Data Science Certificate</title>
      <dc:creator>Anderson Braz</dc:creator>
      <pubDate>Tue, 02 Feb 2021 14:17:54 +0000</pubDate>
      <link>https://dev.to/andersonbraz/minha-jornada-no-ibm-data-science-certificate-3e5b</link>
      <guid>https://dev.to/andersonbraz/minha-jornada-no-ibm-data-science-certificate-3e5b</guid>
      <description>&lt;p&gt;Para conclusão da minha jornada no &lt;a href="https://www.coursera.org/professional-certificates/ibm-data-science"&gt;IBM Data Science Professional Certificate&lt;/a&gt; com o &lt;a href="https://www.coursera.org"&gt;Coursera&lt;/a&gt;, eu tive que construir um &lt;a href="https://colab.research.google.com/drive/1zgMQmLBQftQ3x4K9Vv4QnwA8VIHtPsUZ"&gt;Jupyter Notebook&lt;/a&gt; mostrando toda minha análise de dados junto, também, de um relatório com informações sobre o problema estudado, onde eu evidencio os questionamentos que foram levantados e suas respectivas respostas acompanhadas de todos aspectos do estudo.&lt;/p&gt;

&lt;p&gt;Todo este trabalho também rendeu um post original que deixei nesta url por alguns dias. Mas tiveram algumas pessoas que me procuraram para entender melhor sobre este curso e o que de fato aprendi nessa jornada. Assim tomei a decisão de alterar o texto original e compartilhar um pouco dessa experiência com você que chegou até aqui.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introdução
&lt;/h2&gt;

&lt;p&gt;No início deste ano diversas mídias especializadas, tanto na área de economia como em desenvolvimento profissional, destacaram a profissão de Cientista ou Analista de Dados sendo uma das queridinhas para os próximos anos. Algumas matérias e artigos inclusive destacam o deficit que o Brasil tem de profissionais qualificados nestas disciplinas.&lt;/p&gt;

&lt;p&gt;Pois bem, aqui vale deixar claro que na verdade desde 2017 já tínhamos várias sinalizações sobre o crescimento de demandas na área de tecnologia no Brasil. Porém durante e após o momento de pandemia tivemos um forte crescimento do digital, o que acabou acelerando várias frentes de tecnologia, e por consequência a necessidade de profissionais qualificados para os serviços baseados em dados.&lt;/p&gt;

&lt;p&gt;Eu embarquei nessa jornada no final de 2019 e só consegui organizar melhor minha agenda de tempo entre trabalho e estudos no período de isolamento, já em 2020, provocado pela pandemia do COVID-19. O modelo de trabalho em home office me proporcionou melhor qualidade de vida em relação ao tempo que perdia com deslocamentos de casa para o trabalho. Assim fiz um plano de estudos o qual segui à risca.&lt;/p&gt;

&lt;p&gt;Confesso que demorei maior parte do tempo pensando sobre meu projeto final e também revisando todo o conhecimento teórico e prático que adquiri durante toda a jornada. Este é, talvez, um péssimo hábito que tenho de achar que nunca as coisas estão boas o suficiente, ou que o meu conhecimento deve ser aprofundado para que me sinta 100% seguro em defender todo o conhecimento necessário para obter a certificação final.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sobre o conteúdo
&lt;/h2&gt;

&lt;p&gt;Todo o conteúdo deste curso foi elaborado e é de propriedade da IBM junto ao Coursera. E também vale dizer que hoje a IBM é uma das maiores referências juntamente com seus produtos em AI e Data Science dentro dessa indústria.&lt;/p&gt;

&lt;p&gt;Tanto o conteúdo teórico como o conteúdo prático cobre completamente os conhecimentos e técnicas necessárias para a prática de trabalho de um Cientista de Dados.&lt;/p&gt;

&lt;h2&gt;
  
  
  Importância dessa certificação
&lt;/h2&gt;

&lt;p&gt;A certificação, sem dúvidas, é a melhor forma de você mostrar para recrutadores e empresas que você tem o devido preparo para os desafios que o profissional de Ciência de Dados enfrenta no seu dia-a-dia. E o fato de obter uma certificação dentro de uma instituição como o Coursera, com um conteúdo IBM destaca-se ainda mais pela relevância que os mesmos apresentam nos seus respectivos setores.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;A conquista dessa certificação pra mim teve um gosto diferente. Digo isso pelo ano, em partes difícil, com o enfrentamento ao COVID-19 e também porque me senti desafiado e muito orientado aos estudos. E isso foi um ingrediente muito bom para essa conquista ter um gostinho ainda melhor.&lt;/p&gt;

&lt;p&gt;Se você está pensando em fazer este curso - eu super recomendo e digo: "aproveite cada desafio e aprendizado adquirido nele que vale muito a pena!".&lt;/p&gt;

&lt;h2&gt;
  
  
  Código
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Veja a impressão do meu Jupyter Notebook com código e detalhes do estudo: &lt;a href="https://andersonbraz.github.io/Coursera/Capstone_DataScience/Notebook_CapstoneProject_The_Battle_Of_The_Neighborhoods.html"&gt;https://andersonbraz.github.io/Coursera/Capstone_DataScience/Notebook_CapstoneProject_The_Battle_Of_The_Neighborhoods.html&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>datascience</category>
      <category>course</category>
      <category>machinelearning</category>
      <category>python</category>
    </item>
    <item>
      <title>Formação Gratuita em Data Science</title>
      <dc:creator>Anderson Braz</dc:creator>
      <pubDate>Sat, 30 Jan 2021 01:56:57 +0000</pubDate>
      <link>https://dev.to/andersonbraz/formacao-gratuita-em-data-science-49fd</link>
      <guid>https://dev.to/andersonbraz/formacao-gratuita-em-data-science-49fd</guid>
      <description>&lt;p&gt;Escrevi este post para compartilhar com a galera de "quebrada" ou quem está "quebrado de grana" e que deseja se tornar um Cientista ou Analista de Dados. Sugiro essa trilha totalmente gratuita e muita rica na construção dessa carreira, que se encontra em alta no momento.&lt;/p&gt;

&lt;p&gt;Porém, já adianto que a trilha gratuita que vou sugiro por aqui está toda em inglês, mas vou dar algumas dicas para você percorrer essa trilha transpondo certas dificuldades comuns.&lt;/p&gt;

&lt;h2&gt;
  
  
  Importante Saber
&lt;/h2&gt;

&lt;h3&gt;
  
  
  O que é Ciência de Dados ou Data Science?
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;Ciência de Dados ou Data Science&lt;/strong&gt; é o processo de utilização de algoritmos, métodos e sistemas para extrair conhecimento e insights de dados estruturados e não estruturados. Ela usa o análises e machine learning para ajudar os usuários a fazer previsões, aprimorar a otimização e melhorar as operações e a tomada de decisão.&lt;/p&gt;

&lt;p&gt;É uma ciência que estuda as informações, seu processo de captura, transformação, geração e posteriormente, análise de dados.&lt;/p&gt;

&lt;h3&gt;
  
  
  O que faz um Cientista de Dados?
&lt;/h3&gt;

&lt;p&gt;O Cientista de Dados é um profissional multidisciplinar, responsável por realizar o processo citado no tópico anterior. Ou seja, é responsável por transformar dados em informações ou produtos de informações dentro de uma corporação.&lt;/p&gt;

&lt;h3&gt;
  
  
  O que faz um Analista de Dados?
&lt;/h3&gt;

&lt;p&gt;O Analista de Dados, analisa os dados disponibilizados em busca de solução para o problemas enfrentados.&lt;/p&gt;

&lt;h2&gt;
  
  
  Por onde posso começar?
&lt;/h2&gt;

&lt;p&gt;Para aqueles que, as vezes, não possuem ou não querem dispor dos seus recursos financeiros para experimentar essa trilha.&lt;/p&gt;

&lt;p&gt;Até o momento quando escrevo este post, recomendo o &lt;a href="https://cognitiveclass.ai/"&gt;Cognitive Class&lt;/a&gt; elaborado pela IBM.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SnilxakT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1611975352034/iJ1OwQqWZ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SnilxakT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1611975352034/iJ1OwQqWZ.png" alt="logo_cognitive_class_ibm.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  O que é o Cognitive Class?
&lt;/h2&gt;

&lt;p&gt;O Cognitive Class (anteriormente Big Data University) é uma iniciativa da IBM para disseminar a alfabetização em big data, fornecendo acesso gratuito a cursos online que abrangem habilidades práticas para trabalhar com dados. Os cursos seguem o modelo de entrega “aprenda a qualquer hora” sem restrições de tempo para concluí-los.&lt;/p&gt;

&lt;p&gt;O Cognitive Class foi criado para lidar com a escassez de habilidades em tecnologias emergentes, incluindo ciência de dados, IA, big data, computação em nuvem e blockchain.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vantagens do Cognitive Class
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Na finalização de cada curso você recede um badge, ou no português distintivo, que pode ser associado ao seu perfil no Linkedin. Esse distintivo, especialmente tendo passado pelos métodos de ensino da IBM, referencia o estudante em disciplinas e conhecimentos que o mercado busca.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O conhecimento construído em cada módulo é o suficiente para lhe dar uma base excelente para se desenvolver nas carreiras propostas.&lt;/p&gt;

&lt;h2&gt;
  
  
  Minhas Dicas
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Para aqueles que não dominam, ou dominam muito pouco o inglês:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Quando for assistir aos vídeos utilize o recurso de transcript e a função "traduzir para português" do seu browser/navegador.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Aproveite para exercitar o ouvido e a leitura junto da tradução para português para você se desenvolver no inglês.&lt;/p&gt;

&lt;h3&gt;
  
  
  Para aqueles que dominam o inglês:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Aproveite para ler artigos e se aprofundar mais nas coisas que acontecem em volta dessa disciplina e conhecimentos fora do Brasil.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Com certeza o domínio no inglês é um diferencial em vários sentidos, se aproveite disso.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;Construir uma carreira profissional dentro de qualquer área, exige de você dedicação de tempo em estudar e realizar treinos para se aperfeiçoar na execução. E iniciar este processo dentro de uma plataforma de ensino com gente gabaritada é extremamente importante e acredito que se você chegou até aqui você está muito próximo de alcançar algo muito grandioso dentro da sua carreira.&lt;/p&gt;

&lt;p&gt;** Pretendo escrever outros post com exemplos de atividades e desafios propostos nesse curso. Então acompanhe a gente... Abraço! e vamo que vamo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Créditos
&lt;/h2&gt;

&lt;p&gt;Photo by &lt;a href="https://unsplash.com/@heylagostechie?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;heylagostechie&lt;/a&gt; on &lt;a href="https://unsplash.com/s/photos/computer?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

</description>
      <category>learning</category>
      <category>datascience</category>
      <category>ai</category>
    </item>
    <item>
      <title>Data Science in Python: Pandas Read Sources</title>
      <dc:creator>Anderson Braz</dc:creator>
      <pubDate>Tue, 28 Jul 2020 03:00:00 +0000</pubDate>
      <link>https://dev.to/andersonbraz/data-science-in-python-pandas-read-sources-5127</link>
      <guid>https://dev.to/andersonbraz/data-science-in-python-pandas-read-sources-5127</guid>
      <description>&lt;p&gt;In this post I show basic knowledge and notes for data science beginners. You will find in this post an link to Jupyter file with code and execution.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pandas Basics
&lt;/h2&gt;

&lt;p&gt;Pandas is a fast, powerful, flexible and easy to use open source data analysis and manipulation tool, built on top of the Python programming language.&lt;/p&gt;

&lt;p&gt;Use the following import convention:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import pandas as pd

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Important
&lt;/h2&gt;

&lt;p&gt;Here I continue the content of the previous post &lt;a href="https://dev.to/braz_anderson/data-science-in-python-pandas-introduction-546e-temp-slug-2652034"&gt;Data Science in Python: Pandas Introduction&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This post I consider three sources: CSV, XLSX and SQL Query&lt;/p&gt;

&lt;h2&gt;
  
  
  Read and Write CSV
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pd.read_csv('origin-file.csv', header=None, nrows=5)
pd.to_csv('destin-file.csv')

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Read and Write Excel
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pd.read_excel('origin-sheet.xlsx')
pd.to_excel('destin-sheet.xlsx', sheet_name='Sheet1')

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Read and Write to SQL Query or Database Table
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from sqlahchemy import create_engine
engine = create_engine('sqlite:///:memory:')

pd.read_sql('SELECT * FROM my_table;', engine)
pd.read_sql_table('my_table', engine)
pd.read_sql_query('SELECT * FROM my_table;', engine)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;Pandas is flexible and easy to use analysis and manipulation data with external sources.&lt;/p&gt;

&lt;h2&gt;
  
  
  See on Practice - Code and Execution
&lt;/h2&gt;

&lt;p&gt;colab.research.google.com/drive/1XAr9EMsuwH..&lt;/p&gt;

&lt;h2&gt;
  
  
  Credits
&lt;/h2&gt;

&lt;p&gt;Photo by &lt;a href="https://unsplash.com/@markusspiske?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Markus Spiske&lt;/a&gt; on &lt;a href="https://unsplash.com/?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

</description>
      <category>pythonbeginner</category>
      <category>datascience</category>
      <category>collaboration</category>
      <category>pandas</category>
    </item>
    <item>
      <title>Data Science in Python: Pandas Introduction</title>
      <dc:creator>Anderson Braz</dc:creator>
      <pubDate>Mon, 27 Jul 2020 18:38:49 +0000</pubDate>
      <link>https://dev.to/andersonbraz/data-science-in-python-pandas-introduction-29h6</link>
      <guid>https://dev.to/andersonbraz/data-science-in-python-pandas-introduction-29h6</guid>
      <description>&lt;p&gt;In this post I show basic knowledge and notes for data science beginners. You will find in this post an link to jupyter file with code and execution.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pandas Basics
&lt;/h2&gt;

&lt;p&gt;Pandas is a fast, powerful, flexible and easy to use open source data analysis and manipulation tool, built on top of the Python programming language.&lt;/p&gt;

&lt;p&gt;Use the following import convention:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import pandas as pd

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Pandas Data Structure
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Series
&lt;/h3&gt;

&lt;p&gt;A one-dimensional labeled array capable on hold any data type&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;s = pd.Series([23, 55, -7, 2], index=['a', 'b', 'c', 'd'])
s

Output:
a 23
b 55
c -7
d 2
dtype: int64

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  DataFrame
&lt;/h3&gt;

&lt;p&gt;A two-dimensional labeled data structure with columns of potentially different types&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;data = {'Country' : ['China', 'India', 'United States', 'Indonesia', 'Pakistan', 'Brazil', 'Nigeria', 'Bangladesh', 'Russia', 'Mexico'],
'Population':[1406371640, 1372574449, 331058112, 270203917, 225200000, 212656200, 211401000, 170054094, 146748590, 126014024] }
df = pd.DataFrame(data, columns=['Country', 'Population'])
df

Output:
Country Population
0 China 1406371640
1 India 1372574449
2 United States 331058112
3 Indonesia 270203917
4 Pakistan 225200000
5 Brazil 212656200
6 Nigeria 211401000
7 Bangladesh 170054094
8 Russia 146748590
9 Mexico 126014024

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Selection
&lt;/h2&gt;

&lt;p&gt;Also see NumPy Arrays&lt;/p&gt;

&lt;h3&gt;
  
  
  Getting
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;s['b']

Output: 5

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;AND&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;df[6:]

Output:
Country Population
6 Nigeria 211401000
7 Bangladesh 170054094
8 Russia 146748590
9 Mexico 126014024

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Selecting, Boolean, Indexing &amp;amp; Selecting
&lt;/h3&gt;

&lt;p&gt;By Position&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;df.iloc[3, 0]

Output: 'Indonesia'

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;By Label&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;df.loc[[6], 'Country']

Output:
6 Nigeria
Name: Country, dtype: object

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Boolean Indexing&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;result = df[df['Population'] &amp;gt; 270203917]
result

Output:
Country Population
0 China 1406371640
1 India 1372574449
2 United States 331058112

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Setting&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;s['a'] = 777
s['d'] = 999
s

Output:
a 777
b 5
c -7
d 999
dtype: int64

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;Pandas is flexible and easy to use analysis and manipulation data.&lt;/p&gt;

&lt;h2&gt;
  
  
  See on Practice - Code and Execution
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://colab.research.google.com/drive/1XAr9EMsuwH74k9Adah6OS2kFkUdS9xi7?usp=sharing"&gt;https://colab.research.google.com/drive/1XAr9EMsuwH74k9Adah6OS2kFkUdS9xi7?usp=sharing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Credits
&lt;/h2&gt;

&lt;p&gt;Photo by &lt;a href="https://unsplash.com/@fabioha?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;fabio&lt;/a&gt; on &lt;a href="https://unsplash.com/?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

</description>
      <category>pythonbeginner</category>
      <category>datascience</category>
      <category>datastructures</category>
      <category>pandas</category>
    </item>
    <item>
      <title>Como limpar seus rastros no Google</title>
      <dc:creator>Anderson Braz</dc:creator>
      <pubDate>Fri, 20 Dec 2019 03:00:00 +0000</pubDate>
      <link>https://dev.to/andersonbraz/como-limpar-seus-rastros-no-google-3ln5</link>
      <guid>https://dev.to/andersonbraz/como-limpar-seus-rastros-no-google-3ln5</guid>
      <description>&lt;p&gt;Olá! Hoje aproveito para compartilhar alguns conhecimentos mais genéricos sobre o Google, mas com a visão de quem entende um pouco mais sobre as condições técnicas empregadas pelos algoritimos de busca.&lt;/p&gt;

&lt;p&gt;Então vamos lá... Imagine que no ano passado, estive muito tempo pesquisando sobre coisas ligadas a gravidez e cuidados referentes a recém nascidos, visto que estava esperando a vinda do meu segundo filho. Mas no momento atual tenho pesquisado sobre lançamentos de apartamentos na região onde desejo morar e também sobre vantagens e desvantagens do próximo modelo de carro que quero adquirir.&lt;/p&gt;

&lt;p&gt;Ah! é importante levar em consideração também minhas longas e incansáveis pesquisas sobre novas tecnologias e soluções de código que aplico nos meus projetos de trabalho.&lt;/p&gt;

&lt;p&gt;Percebo que meus gostos e interesses mudam, como os de qualquer ser humano. Então, por que nossos históricos de dados do Google devem ser eternos?&lt;/p&gt;

&lt;p&gt;Por anos, o Google mantém um registro de nossas pesquisas na Internet por padrão. A empresa acumula esses dados para criar perfis detalhados para nós, o que ajuda a fazer recomendações personalizadas para o conteúdo, mas também permite que os profissionais de marketing nos segmentem melhor com anúncios. Embora existam ferramentas que podemos usar para limpar manualmente nossos históricos de pesquisa do Google, poucos de nós se lembram disso.&lt;/p&gt;

&lt;p&gt;Por isso, recomendo que todos experimentemos as novas ferramentas de privacidade do Google. Este ano, a empresa introduziu uma opção que permite excluir automaticamente os dados relacionados às nossas pesquisas no Google, solicitações feitas com seu assistente virtual e nosso histórico de localização.&lt;/p&gt;

&lt;p&gt;No fim do primeiro semestre, o Google seguiu expandindo a capacidade de exclusão automática para o YouTube. Nas próximas atualizações, ele começará a implantar um novo modo privado para quando você estiver navegando para um destino com o aplicativo Google Maps, o que pode ser útil se você estiver indo a algum lugar que deseja manter em segredo, como o consultório de um terapeuta.&lt;/p&gt;

&lt;p&gt;"Todo esse trabalho serve para ter uma ótima experiência do usuário", destaca o executivo Eric Miraglia, diretor de proteção de dados do Google, sobre os novos recursos de privacidade. "Parte dessa experiência é: como o usuário se sente sobre o controle que possui?"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Como usamos melhor as novas ferramentas de privacidade do Google?&lt;/strong&gt; A empresa deu uma demonstração dos controles mais recentes, e, é possível testar as ferramentas que foram lançadas no início deste ano. Aqui está o que saber sobre eles.&lt;/p&gt;

&lt;h3&gt;
  
  
  Como excluir automaticamente seu histórico de pesquisa
&lt;/h3&gt;

&lt;p&gt;A maioria dos novos controles de privacidade do Google está em uma ferramenta da web chamada &lt;a href="https://myactivity.google.com/myactivity/?target=_blank"&gt;Minha atividade&lt;/a&gt;. (Aqui está o URL: myactivity.google.com.)&lt;/p&gt;

&lt;p&gt;Depois de acessar a ferramenta e clicar em Controles de atividade, você verá uma opção chamada Atividade na Web e de aplicativos. Clique em Gerenciar atividade e, em seguida, no botão abaixo do ícone do calendário. Aqui, você pode definir seu histórico de atividades em vários produtos do Google para se apagar automaticamente após três meses ou após 18 meses. Esses dados incluem pesquisas feitas no Google.com.br, solicitações de voz feitas com o Assistente do Google, destinos pesquisados no Google Maps e pesquisas na loja de aplicativos do Google Play.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Qual duração você deve escolher?&lt;/strong&gt; Depende de quanto você se preocupa em obter recomendações personalizadas.&lt;/p&gt;

&lt;p&gt;Digamos que você esteja fazendo muitas pesquisas no Google sobre cinema, lançamento de filmes e séries. O Google Notícias recomendará artigos de notícias para você ler sobre esses tópicos com base nessas pesquisas. Portanto, se você é firme em seguir as notícias de cinema, lançamento de filmes e séries, definir exclusão de pesquisas após 18 meses provavelmente será uma boa opção. Se você é mais inconstante com seus interesses, três meses podem para exclusão será mais adequado.&lt;/p&gt;

&lt;p&gt;Se você é do tipo que não deseja receber recomendações personalizadas sobre os produtos do Google, de forma alguma, basta desativar o histórico de pesquisas da sua conta. Ao lado da opção Atividade na Web e de apps, basta desativar.&lt;/p&gt;

&lt;p&gt;Espero ter contribuído... Até mais...&lt;/p&gt;

&lt;h2&gt;
  
  
  Créditos
&lt;/h2&gt;

&lt;p&gt;Photo by &lt;a href="https://unsplash.com/@rmrdnl?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Daniel Romero&lt;/a&gt; on &lt;a href="https://unsplash.com/?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

</description>
      <category>google</category>
      <category>privacy</category>
    </item>
    <item>
      <title>Desenvolvimento Ágil</title>
      <dc:creator>Anderson Braz</dc:creator>
      <pubDate>Fri, 15 Nov 2019 03:00:00 +0000</pubDate>
      <link>https://dev.to/andersonbraz/desenvolvimento-agil-o6m</link>
      <guid>https://dev.to/andersonbraz/desenvolvimento-agil-o6m</guid>
      <description>&lt;p&gt;Olá! havia algum tempo que não dedicava um tempo para escrever algo por aqui. E como atualmente estou como integrante de um &lt;strong&gt;Squad Agile&lt;/strong&gt; no cliente onde presto serviço, gostaria de compartilhar um pouquinho da minha experiência prática com vocês sobre desenvolvimento ágil, de forma bem genérica.&lt;/p&gt;

&lt;p&gt;Atualmente estou envolvido no desenvolvimento de um robô que faz abertura de uma mudança no BMC Remedy e respectivamente gere todas as tarefas do ciclo de vida da mudança. Logo que entrei neste projeto ficou muito claro quais os requisitos e objetivos que eram esperados para a entrega final. Porém empregaríamos o desenvolvimento ágil neste projeto e a mentalidade da forma como entregamos um produto, ou resultado final, muda e muitas coisas boas acontecem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mas o que é desenvolvimento ágil?
&lt;/h2&gt;

&lt;p&gt;O desenvolvimento ágil de software, ou Agile, é uma coleção de metodologias usadas para gerenciar equipes de desenvolvedores. Defende o planejamento adaptativo, o desenvolvimento evolutivo, a entrega antecipada e a melhoria contínua, além de incentivar uma resposta rápida e flexível à mudança.&lt;/p&gt;

&lt;p&gt;Nesse modelo pessoas e comunicação são consideradas mais importantes que ferramentas e processos.&lt;/p&gt;

&lt;p&gt;O Agile enfatiza a pergunta aos usuários finais o que eles querem e mostra frequentemente a eles demos do produto à medida que ele é desenvolvido. Isso contrasta com a abordagem "Waterfall", o desenvolvimento orientado por especificação e o que os profissionais do Agile chamam de "Design inicial grande". Nessas abordagens, os recursos são planejados e orçados antes do início do desenvolvimento.&lt;/p&gt;

&lt;p&gt;Com o Agile, a ênfase está na “agilidade” - poder responder rapidamente às necessidades dos usuários e outras circunstâncias em mudança.&lt;/p&gt;

&lt;p&gt;Muito importante para iniciantes em desenvolvimento ágil e até mesmo aqueles que já tem uma vivência com o assunto sempre revisitar o &lt;strong&gt;&lt;a href="https://www.manifestoagil.com.br/"&gt;Manifesto Ágil&lt;/a&gt;&lt;/strong&gt; para fixação de alguns conceitos.&lt;/p&gt;

&lt;h2&gt;
  
  
  Como funciona isso na prática?
&lt;/h2&gt;

&lt;p&gt;Voltando ao nosso projeto é importante destacar que aplicamos &lt;strong&gt;&lt;a href="https://www.desenvolvimentoagil.com.br/scrum/"&gt;SCRUM&lt;/a&gt;&lt;/strong&gt; como metodologia ágil, e assim explicar como organizamos as atividades e também apresentar alguns termos utilizados quando usamos essa metodologia ágil.&lt;/p&gt;

&lt;p&gt;Dividimos as etapas do projeto em pequenas entregas, o que no jargão do desenvolvimento ágil chamamos de sprint's. Antes de cada sprint definimos junto com o usuário ou demandante o que será o resultado final de cada entrega, ou sprint. Sempre pensando em funcionalidades mínimas e simples, mas que no final entregam em soma um resultado final totalmente alinhado as necessidades e expectativas do usuário demandante.&lt;/p&gt;

&lt;p&gt;Neste cenário foi me foi solicitado criar um serviço com linguagem de programação Java que conseguisse acessar o BMC Remedy via REST API e na sequência realizasse um registro de mudança com parâmetros mínimos pré-definidos.&lt;/p&gt;

&lt;p&gt;As etapas ficaram divididas mais ou menos assim:&lt;/p&gt;

&lt;p&gt;| | Produto | Evidência de Entrega / Resultado Final |&lt;br&gt;
| 1 | Robô Acessa | Programa java acessando o BMC Remedy via API por meio de token adquirido com usuário e senha. |&lt;br&gt;
| 2 | Robô Escreve | Programa java registra uma nova mudança no BMC Remedy via API por meio de token. |&lt;br&gt;
| 3 | Robô Recebe Entradas | Programa java recebe parâmetros de um emissor externo para realizar o registro no BMC Remedy. |&lt;br&gt;
| 4 | Robô Emite Saídas | Programa java recebe resultados de todas as interações com BMC Remedy e emite respostas para o emissor externo. |&lt;/p&gt;

&lt;p&gt;Observe que cada sprint gera entregáveis que serão sempre validados pelo demandante. Esta dinâmica de trabalho, gerando entregas, geralmente é curta o que dá uma dinâmica muito boa para os projetos tanto do ponto vista de prazo como de entrega de funcionalidades a todo tempo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quais as vantagens?
&lt;/h2&gt;

&lt;p&gt;Usando o método tradicional "Waterfall" para gerenciar projetos de desenvolvimento de software já vivenciei algumas experiências como: definição de atividades desnecessárias, prazos longos para atividades simples, priorização de atividades de baixa relevância para o resultado final esperado, mudança de visão do demandante a respeito dos processos ou cenário que geram a demanda, e o pior de todos eles, entregar ao final um produto ou resultado que atende parcialmente, ou não atende em nada as necessidades e expectativas do cliente (usuário ou demandante).&lt;/p&gt;

&lt;p&gt;Como no modelo ágil quebramos a entrega em etapas (ciclos ou sprints) permitimos um cenário onde cada funcionalidade ou detalhe é discutido e validado entre os envolvidos. Isso nos permite ter um melhor controle e certeza para todas as partes sobre o que está sendo feito e que de fato ao final o nosso resultado será satisfatórios a todos os anseios criados.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;Desenvolvimento Ágil é extremamente flexível e os projetos que exibem características dinâmicas beneficiarão desse processo, pois irá descobrir que os gerentes de projetos que trabalham neste ambiente tratam metas como “sprints”; o objetivo é adaptar-se continuamente às mudanças abruptas do feedback do cliente. É mais adequado para pequenos projetos de software constituídos por uma equipe altamente colaborativa ou um projeto que requeira iteração frequente.&lt;/p&gt;

&lt;h2&gt;
  
  
  Créditos
&lt;/h2&gt;

&lt;p&gt;Photo by &lt;a href="https://unsplash.com/@youxventures?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;You X Ventures&lt;/a&gt; on &lt;a href="https://unsplash.com/s/photos/agile?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

</description>
      <category>agile</category>
      <category>scrum</category>
      <category>development</category>
    </item>
    <item>
      <title>Forçar Redirect de HTTP para HTTPS</title>
      <dc:creator>Anderson Braz</dc:creator>
      <pubDate>Mon, 12 Nov 2018 21:13:48 +0000</pubDate>
      <link>https://dev.to/andersonbraz/forcar-redirect-de-http-para-https-536d</link>
      <guid>https://dev.to/andersonbraz/forcar-redirect-de-http-para-https-536d</guid>
      <description>&lt;p&gt;Neste post eu mostro como resolver um inconveniente que ocorre em servidores de hospedagem da web que utilizam o Apache como suportação do serviço.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introdução
&lt;/h2&gt;

&lt;p&gt;Hoje as pessoas são informadas em todas as mídias que: se um site não tiver um cadeado na côr verde, na barra de endereço do navegador/browser, este não é confiável. Daí você descobre junto ao seu provedor de hospedagem que para ter este cadeado você precisa obter um serviço de chave SSL.&lt;/p&gt;

&lt;p&gt;Correto! Você adquire o serviço mas descobre que se um usuário leigo digitar o endereço de alguma url do seu site usando apenas "http://", mesmo com o serviço de SSL contratado, ele vai acabar na cilada de não visualizar o tal cadeado verde ao entrar na sua página.&lt;/p&gt;

&lt;h2&gt;
  
  
  Como Resolver?
&lt;/h2&gt;

&lt;p&gt;Criar uma condição para que todas as requisições HTTP sejam forçadas ou redirecionadas para HTTPS.&lt;/p&gt;

&lt;p&gt;Parâmetro a ser incluído no arquivo .htaccess na raiz do seu domínio:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;Um detalhe de ajuste tão simples capaz de resolver aqui o que parecia um problemão. Seja Feliz!&lt;/p&gt;

&lt;p&gt;** ESTA SOLUÇÃO É APLICADA APENAS PARA WEBSERVER EM APACHE&lt;/p&gt;

&lt;h2&gt;
  
  
  Créditos
&lt;/h2&gt;

&lt;p&gt;Photo by &lt;a href="https://unsplash.com/@markusspiske?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Markus Spiske&lt;/a&gt; on &lt;a href="https://unsplash.com/?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

</description>
      <category>apache</category>
      <category>serverhosting</category>
      <category>ssl</category>
      <category>website</category>
    </item>
    <item>
      <title>Instalar Google Fonts no meu MacOs</title>
      <dc:creator>Anderson Braz</dc:creator>
      <pubDate>Wed, 18 Jul 2018 22:39:37 +0000</pubDate>
      <link>https://dev.to/andersonbraz/instalar-google-fonts-no-meu-macos-4bp9</link>
      <guid>https://dev.to/andersonbraz/instalar-google-fonts-no-meu-macos-4bp9</guid>
      <description>&lt;p&gt;Neste post eu demonstro como fazer a instalação de todas as fontes disponibilizadas pelo Google no seu computador MacOs para posteriormente utilizar essas tipografias em qualquer aplicativo que você estiver utilizando no seu computador pessoal.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introdução
&lt;/h2&gt;

&lt;p&gt;Sempre que preciso de uma tipografia mais marcante ou que destaque os meus trabalhos, no contexto de web, sendo mais acessível e sem custos, recorro ao Google Fonts. E isso se torna viciante e com o passar do tempo criamos a necessidade de termos essas tipografias no Keynote, Powerpoint ou Word. Assim descobrimos algo extremamente simples para resolver esse pequeno problema.&lt;/p&gt;

&lt;h2&gt;
  
  
  Como Resolver?
&lt;/h2&gt;

&lt;p&gt;Você precisa apenas criar um clone do repositório de Google Fonts no diretório de fontes do seu sistema operacional, no nosso caso, o MacOs.&lt;/p&gt;

&lt;h3&gt;
  
  
  Instalando o Google Fonts
&lt;/h3&gt;

&lt;p&gt;Execute no seu terminal o seguinte comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; cd ~/Library/Fonts/
 git clone https://github.com/google/fonts.git google-fonts

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Atualizando o Google Fonts
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd ~/Library/Fonts/google-fonts/
git pull

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Removendo o Google Fonts
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;rm -rf ~/Library/Fonts/google-fonts/

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;Como é simples resolver esse pequeno problema e aproveitar ao máximo do Google Fonts no seu computador pessoal.&lt;/p&gt;

&lt;p&gt;Seja Feliz!&lt;/p&gt;

&lt;h2&gt;
  
  
  Referência
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/google/fonts"&gt;Github - Google Fonts&lt;/a&gt;&lt;/p&gt;

</description>
      <category>fonts</category>
      <category>google</category>
      <category>macos</category>
      <category>typography</category>
    </item>
    <item>
      <title>Utilidades: Scripts com Powershell</title>
      <dc:creator>Anderson Braz</dc:creator>
      <pubDate>Thu, 15 Mar 2018 03:00:00 +0000</pubDate>
      <link>https://dev.to/andersonbraz/utilidades-scripts-com-powershell-2d75</link>
      <guid>https://dev.to/andersonbraz/utilidades-scripts-com-powershell-2d75</guid>
      <description>&lt;p&gt;Atuando na sustentação ou operação de aplicações para ambiente de produção. Sempre nos deparamos com situações corriqueiras que demandam a necessidade de tratarmos incidentes ou atividades de trabalho em curto espaço de tempo.&lt;/p&gt;

&lt;p&gt;Tratando-se de ambientes Windows eu costumo lançar mão de algumas rotinas utilizando o Powershell. E aqui gostaria de compartilhar alguns dos meus procedimentos mais rotineiros.&lt;/p&gt;

&lt;h2&gt;
  
  
  Verificação de Políticas de Execução
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Get-ExecutionPolicy -List

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Habilitando Políticas de Execução sem Restrições
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Set-ExecutionPolicy Unrestricted

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Exclusão de Arquivos
&lt;/h2&gt;

&lt;p&gt;Script para apagar arquivos temporários, ou com uma determinada extensão, de um determinado diretório especifico.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
$FilePath = "C:\Windows\Temp\*"
$KeyWord = "*.tmp"
$Files = Get-ChildItem -Path $FilePath -Include $KeyWord -Recurse

ForEach($File In $Files)
{
    $Item = $File.FullName
    Write-Output $Item
    Remove-Item $Item -Force
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Exclusão de Diretórios
&lt;/h2&gt;

&lt;p&gt;Script para apagar diretórios que contenham uma determinada palavra num determinado local especifico.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
$FolderPath = "C:\Temp\"
$KeyWord = "*Quarantine*"
$Files = Get-ChildItem -Path $FolderPath -dir -r | Where-Object {$_.name -like $KeyWord}

ForEach($Folder In $Folders)
{
    $Item = $Folder.FullName
    Write-Output $Item
    Remove-Item $Item -Force -Recurse
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Compactação de Arquivos (7zip)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
$KeyWord = "*.log"
$LogPath = "E:\Logs\W3SVC*\"
$Limit = (Get-Date).AddDays(-150)

$Files = Get-ChildItem -Path $LogPath -Include $KeyWord -Recurse | Where CreationTime -lt $Limit
ForEach ($File In $Files) 
{
    $Item = $File.FullName
    Write-Output "File Found: " $Item 
    &amp;amp; "E:\Program Files\7-Zip\7z.exe" a -tzip ($Item + ".zip") $Item

}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Validar Acesso ao Ip:Porta
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;New-Object System.Net.Sockets.TcpClient("192.168.0.15", 80)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Verificar Tamanho de Diretórios
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$Path = "C:\inetpub\wwwroot\andersonbraz\"
$colItems = Get-ChildItem $Path | Where-Object {$_.PSIsContainer -eq $true} | Sort-Object

ForEach ($i In $colItems)
{
    $subFolderItems = Get-ChildItem $i.FullName -Recurse -Force | Where-Object {$_.PSIsContainer -eq $false} | Measure-Object -Property Length -Sum | Select-Object Sum
    $i.FullName + " -- " + "{0:N2}" -f ($subFolderItems.sum / 1MB) + " MB"
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Créditos
&lt;/h2&gt;

&lt;p&gt;Photo by &lt;a href="https://unsplash.com/@pakata?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Pakata Goh&lt;/a&gt; on &lt;a href="https://unsplash.com/?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

</description>
      <category>windows</category>
      <category>powershell</category>
    </item>
  </channel>
</rss>
