Todos os Posts

Elastic Map Reduce - EMR - Arquitetura Geral
Olá pessoa! Depois de falarmos sobre Hadoop, que tal começar a falar sobre EMR, um dos serviços AWS que utiliza tudo que vimos no post anterior!
Introdução à Apache Hadoop
Olá pessoa! Depois de um bom tempo fora, estou de volta! Depois de uma virada na minha carreira, agora vamos começar uma série sobre serviços AWS e tecnologias envolvidas!
Café Debug: Algoritmos e Estrutura de Dados!
Olá pessoa! Eu participei de mais um podcast Café Debug, dessa vez sobre algoritmos e estrutura de dados!
Um projeto novo: Elidriel - Meu JRPG
Olá pessoa! Se você já ouviu minha história em algum podcast ou por aí no YouTube, já sabe que comecei na área por conta da minha vontade de desenvolver jogos. Bom, esse é meu novo projeto.
Café Debug: Programação funcional, um jeito diferente de programar!
Olá pessoa! Eu participei do podcast Café Debug sobre programação funcional, que tal dar uma olhada?
5 coisas que eu queria que tivessem me contado no início da carreira
Olá pessoa! Eu participei da live do Geek Hunter um tempão atrás, que tal tirar um tempo para dar uma olhada nela?
Hipsters ponto tech: Algoritmos e estrutura de dados
Olá pessoa! Se você viu o post passado, sabe que minha vida deu uma boa mudada, sei não estou dando tanta atenção por aqui, mas a frequência de publicações voltará a aumentar assim que tudo estabilizar novamente. Para quem não viu, semana passada participei do Hipsters ponto tech!
Minha Retrospectiva 2019
Olá pessoa! Esse ano foi demais, teve muita, mas muita coisa boa acontecendo. Passou aqui pelo blog aproximadamente 200 mil visitas únicas e 20 mil leituras lá no medium. Além de palestras ao vivo, viagens para 7 países diferentes e algumas conquistas que me enchem de orgulho!
Construindo Uma Lista Encadeada (Linked List)
Olá pessoa! Vamos continuar a série sobre estrutura de dados? -Dessa vez com listas encadeadas (ou listas ligadas).
Async em F#
Olá pessoa! Que tal entendermos como funciona uma pipeline usando o Async em F#?
Algoritmos de Ordenação - Parte I
Olá pessoa! Hoje vamos falar de algoritmos de ordenação!
Entendendo as respostas HTTP
Olá pessoa! Se você trabalha com serviços web é importante entender o que cada resposta pode significar, principalmente quando as coisas dão errado!
Criando o Jogo da Cobrinha em F# (ou será JavaScript?)
Olá pessoa! Como post de volta férias resolvi trazer algo um pouco diferente. Que tal usar F# no navegador?
Novidades e a Volta das 'Férias'
Olá pessoa! Faz praticamente um mês que não publico nada por aqui, então vale a explicação do motivo e como o título sugere, foi mais ou menos um período de férias.
Entendendo Programação Funcional com Stranger Things
Olá pessoa! Que tal explorarmos um pouco sobre as teorias de programação funcional com Stranger Things? -E claro, sem spoilers da nova temporada.
Construindo uma Queue usando JavaScript
Olá pessoa! Vamos continuar explorando estruturas de dados, dessa vez falaremos da Queue!
Estruturas de Dados com JavaScript (Stack)
Olá pessoa! Que tal implementarmos começarmos a implementar algumas estruturas de dados usando JavaScript?
Como Medimos a Complexidade de um Algoritmo?
Olá pessoa! Esse post vai ser um pouco mais teórico, mas muito útil! Será que você sabe medir a complexidade do algoritmo que está criando?
ML .NET: IA para ajudar o Detetive Pikachu com Descobertas sobre Pokémon
Olá pessoa! Que tal ajudarmos o detetive Pikachu em uma investigação usando IA para descobertas sobre Pokémon?
ML .NET: Classificador de Sentimentos
Olá pessoa! Já fizemos classificadores de sentimentos em Python e no Azure, agora chegou a hora do ML.NET.
Existe Azure Functions em F#?
Olá pessoa! Você já ouviu falar do Azure Functions? Que tal utilizar ele com F#? Vale a pena?
E os Testes Unitários em Programação Funcional?
Olá pessoa! Um dos posts mais antigos aqui do blog tratava do assunto de testes unitários em F#, surgiram algumas dúvidas nos comentários e vou tentar responder agora.
The Developer's Conference - Floripa 2019
Olá pessoa! Semana passada aconteceu o The Developer’s Conference aqui em Floripa SC e foi incrível!
A Heurística da Jóia do Tempo do Dr. Estranho
Olá pessoa! Hoje o post é de uma ideia muito legal (que não foi minha), sobre como o Dr. Estranho fez a busca nos futuros possíveis da luta dos vingadores com o titã Thanos.
Lançamento do Visual Studio 2019
Olá pessoa! Ontem, dia 2 de Abril de 2019 foi o lançamento do Visual Studio 2019! Fizemos um evento para celebrar e claro, falar de tecnologia!
InterOP Floripa
Olá pessoa! Na sexta-feira passada, dia 29 de março de 2019 rolou o InterOP Floripa, evento que fui convidado para falar sobre machine learning!
Machine Learning: Métricas para Modelos de Classificação
Olá pessoa! Mês passado publiquei um post sobre como criar um classificador de textos utilizando o Azure Machine Learning, que tal entendermos melhor as métricas de avaliação?
Visualização de Dados com F#
Olá pessoa! Já faz um tempo desde o último post sobre F# com Type Providers, hoje vamos fazer mais um! Dessa vez focando um pouco mais na visualização dos dados.
Classificador de Sentimentos - Azure ML
Olá pessoa! Em abril do ano passado publiquei um post em Python sobre a criação de um classificador de sentimentos, que tal fazermos o mesmo exemplo, dessa vez utilizando o Machine Learning Studio do Azure?
Azure Notebooks
Olá pessoa! Um dos lançamentos recentes da Microsoft é o Azure Notebooks, já ouviu falar? -Vamos olhar um pouco mais de perto como esse cara funciona!
Aquele sobre Recursividade (em Cauda)
Olá pessoa! Vários programadores se asssutam um pouco quando falamos de recursividade, mas é quase certo que você já conhece o conceito e/ou já precisou dele. Você também já deve ter escutado sobre funções recursivas serem mais lentas que loops tradicionais, será que é isso mesmo?
Vamos entender o IEnumerable? - Parte II
Olá pessoa! Vamos continuar com o post sobre IEnumerable em C#, dessa vez, vamos ver os efeitos colaterais de usar esta interface de maneira errada.
Mudanças na criação de conteúdo
Olá pessoa! O blog passou por algumas modificações de layout, você deve já deve ter notado, porque mudou bastante.
Vamos entender o IEnumerable?
Olá pessoa! Praticamente todo programador C# já se deparou com a interface IEnumerable, né? Principalmente com aquele ToList() depois de uma operação LINQ. E talvez, só talvez, você ainda não tenha entendido como esta interface funciona.
Longest Common Subsequence - Git Diff
Olá pessoa! Vocês já pararam para pensar como o Git Diff funciona? -Ok, talvez não seja exatamente assim, mas o LCS (longest common subsequence) é uma maneira de comparar textos, vamos implementar?
Microsoft Ignite - The Tour
Olá pessoa! Semana passada rolou o Microsoft Ignite, um mega evento lá em São Paulo!
Microsoft Connect();
Olá pessoa! Na sexta-feira passada estive em mais uma live, desta vez para comentar as novidades do Microsoft Connect();.
Fiz uma Live no canal DevelopersBR!
Olá pessoa! Semana passada teve mais uma live, dessa vez no DevelopersBR.
Apresentação no canal de YouTube da Resource
Olá pessoa! Esse mês saiu um vídeo meu lá no Vamos falar de TI? -Um programa no canal de Youtube da Resource.
Criando uma sintaxe mais limpa para o Bind
Olá pessoa! No post da semana passada falei um pouco sobre o mindset para criarmos um Continuation e também mostrei como fazer a equivalência entre um binding e uma expressão lambda, que tal continuarmos nesse assunto?
O Mindset por trás do Continuation
Olá pessoa! Se você acompanha meus posts, já deve ter ouvido falar de programação funcional e da biblioteca Tango. Um dos principais recursos dessa biblioteca é o tipo Continuation que permite criar um pipeline de execuções. Esse post talvez seja um dos mais pesados sobre funcional, mas vem comigo!
Azure Machine Learning Studio - Apresentação
Olá pessoa! Essa última semana fiquei alguns dias em SP e tive a oportunidade de apresentar uma aula sobre Machine Learning para o pessoal da engenharia da universidade Anhembi Morumbi.
Fiz uma Live no canal .NET!
Olá pessoa! Se você me acompanha nas redes sociais, deve ter notado que algum tempo atrás fiz uma live lá no canal .NET!
Olá, eu sou um emoji
Olá pessoa! Hoje trouxe um aplicativo que criei faz um tempinho utilizando JavaScript com IA!
Update na Tango
Olá pessoa! Lembram da Tango? A biblioteca para programação funcional em C# que publiquei ano passado? Que tal um post sobre o update dela que rolou semana passada?
Swagger e .NET Core - Parte 2
Olá pessoa! Um tempo atrás publiquei um post sobre como criar uma documentação viva com Swagger e .NET Core! Que tal melhorarmos um pouco a documentação gerada?
Usando o Pattern Matching do C#
Olá pessoa! Antes de qualquer coisa, sim, semana passada publiquei um post sobre a criação de uma nova alternativa para o pattern matching do C# (já tenho um experimento melhor, logo devo publicar por aqui) e para minha surpresa, boa parte dos leitores não conheciam essa feature. Então, vamos falar um pouquinho dela por aqui!
Criando um Pattern Matching em C#
Olá pessoa! Antes de qualquer coisa, sim, eu sei que existe um Pattern Matching nativo em C#, mas na minha opinião ele é relativamente estranho. Então vou propor algo um pouquinho diferente hoje. Criarmos o nosso próprio pattern matching.
MSP Tech Day - Balneário Camboriu
Olá pessoa! Se você acompanhou as redes sociais deve ter notado que esse último fim de semana rolou o MSP Tech Day, organizei este evento aqui na região com o apoio de várias pessoas e o resultado não poderia ser melhor!
Publicando seu React Web App em 10 segundos
Olá pessoa! Já pensou em criar uma aplicação React e fazer toda a publicação do front-end em 10 segundos? -Pois é, com Surge é bem fácil.
Padrão de Projeto: Decorator
Olá pessoa! Um bom tempo atrás escrevi sobre o padrão de projeto Command, hora de continuar a série. Dessa vez o padrão escolhido é o Decorator!
Python - Guia prático para iniciantes
Olá pessoa! Uma novidade aqui no blog, estou lançando um novo livro para você que quer começar a programar em Python! E precisa de conteúdo gratuito.
Utilizando Unidades de Medidas
Olá pessoa! Já ouviu falar de domínios ricos? Que tal utilizar unidades de medida nos seus valores númericos? -Com F# você pode!
O TDC São Paulo foi incrível!
Olá pessoa! Nessa última semana eu estava no The Developer’s Conference em São Paulo!
IA na Copa do Mundo
Olá pessoa! A copa do mundo já passou, mas como diria Roberto Carlos (o músico, não o jogador): são tantas emoções! Vamos utilizar o Azure Cognitive Services para visualizar a emoção dos jogadores na copa?
Me tornei um Microsoft MVP
Olá pessoa! Venho aqui no blog compartilhar uma notícia muito legal. Acabei de receber a premiação Microsoft MVP na categoria Visual Studio and Development Technologies!
Extraindo dados do World Bank
Olá pessoa! Aqui no blog tem vários exemplos de como extrair dados através dos type providers do F#, pois bem, vamos fazer mais um! Dessa vez vamos utilizar o World Bank Type Provider, talvez um dos mais poderosos. Através dele é possível nos conectarmos com o World Bank, um banco de dados que contém MUITA informações sobre os países. É sério, tem muita informação mesmo. Que tal obter informações sobre o mundo através deste recurso?
Lição 9: Funções Lambda
Olá pessoa! Este vai ser o último post da série para aprendizagem em Python, vamos fechar ela com um tipo diferente de função: as expressões lambdas!
Documentação Viva com Swagger e .NET Core
Olá pessoa! Hoje vamos tocar em um assunto que muita gente não gosta, mas é MUITO importante: documentação!
Visual Studio Summit 2018
Olá pessoa! Neste final de semana, durante os dias 01 e 02 de Junho, tive a oportunidade de palestrar no Visual Studio Summit 2018, um dos maiores eventos de Visual Studio da américa latina!
Crie tipos com Discriminated Unions
Olá pessoa! Já vimos como criar tipos utilizando tuplas, que tal darmos uma olhada nas discriminated unions?
Encontro Comunidade IA da ResourceIT
Olá pessoa! No começo dessa semana (07/05/2018) aconteceu o primeiro encontro com todos os membros da comunidade de inteligência artificial da Resource! Passei dois dias em São Paulo em uma experiência incrível.
Azure Cognitive Services - Uma visão macro
Olá pessoa! Vamos falar mais um pouco sobre IA? - Dessa vez, sobre o Azure Cognitive Services!
Lição 8: Modularização de código com Funções!
Olá pessoa! Mais um post na série para aprendizagem em Python, agora vamos aprender sobre como podemos quebrar nossos códigos em partes menores, ou seja, modularizá-lo! Vamos fazer isso com funções!
Machine Learning: criando um classificador de sentimentos
Tive duas “reclamações” aqui no blog: “Ah, mas machine learning com ferramenta pronta é diferente” e “Só faz código super básico em Python”. Então ok, vamos resolver os dois problemas juntos! Agora vamos fazer codificar uma Machine Learning com algoritmo de classificação com Python!
Lição 7: Use Dicionários!
Olá pessoa! Mais um post na série para aprendizagem em Python, desta vez, vamos utilizar os dicionários!
Padrão de Projeto: Command
Olá pessoa! Muita gente me pediu para escrever sobre os famosos design patterns. Pois bem, vamos conhecê-los! Começando com o padrão Command!
IA, ML, DL e RNA não são a mesma coisa!
Existem diversas buzzwords em alta no cenário de tecnologia atual, entre elas: Inteligência Artificial, Machine Learning, Deep Learning e redes neurais artificiais. De fato, há uma cortina de fumaça entre esses termos e o mercado os usa também como instrumento de marketing, aparentemente é bem bonito colocar eles em um texto falando sobre soluções inovadoras e tudo isso que você ouve por aí. Vamos clarear um pouco o que é cada um desses conceitos?
Lição 6: Laços de Repetição - Parte 2
Olá pessoa! Que tal continuar nossos exemplos com laços de repetição?
Publish-Subscribe - Um padrão para troca de mensagens
Olá pessoa! Acho que hoje é a primeira vez que veremos um padrão aqui no blog, ele será o publish-subscribe, um padrão para troca de mensagens de forma desacoplada! Deixo aqui o aviso, este post é um pouco mais avançado do que eu costumo colocar, mas vale a pena conferir!
Currying e Aplicação Parcial
Olá pessoa! Hoje veremos dois recursos presentes no paradigma de programação funcional, que causam um pouco de confusão. Tanto Currying quanto Aplicação Parcial são conceitos muito poderosos e que podem facilitar muito suas tarefas no dia-a-dia, mesmo em linguagens que não são totalmente funcionais. Para fins de exemplo, vamos utilizar C# e F#. Vamos lá!
Lição 5: Laços de Repetição - Parte 1
Olá pessoa! Hoje veremos um recurso muito importante em qualquer linguagem de programação: Os laços de repetição, também conhecidos como loops.
Lição 4: Operações com Listas
Olá pessoa! Se você tem praticado em Python você já deve ter se deparado com o problema de criação de variáveis para descrever listas, por exemplo, um conjunto de estudantes, um conjunto de carros estacionados ou até uma lista de compras! Você não precisa criar uma variável para cada item da lista! Como vimos no post passado, você pode manipular múltiplos valores sob uma única variável. Estas variáveis se chamam Listas!
Começando 2018 com o pé na porta!
Olá pessoa! Este ano está um tanto quanto ímpar. Sério! Comecei ele com pé na porta e quero compartilhar algumas novidades com vocês!
Lição 3: Valores None, Strings e Introdução à Listas
Olá pessoa! Se você está acompanhando esta série, você já deve ser capaz de criar variáveis e criar desvios condicionais em seu programa. Agora vamos olhar um pouco mais de perto algumas características dos tipos em Python!
Lição 2: Desvios condicionais, fazendo seu programa tomar decisões!
Olá pessoa! Se você está acompanhando esta série, já deve ter aprendido o básico sobre Python as variáveis e tipos do Python! Que tal continuar?
Métodos de Extensão em C#
Olá pessoa! Hoje vamos discutir sobre um conceito muito poderoso presente no C#. Trata-se dos extension methods, ou em português, métodos de extensão.
Lição 1: Começando com Python
Olá pessoa! No post anterior eu comentei sobre alguns motivos para você aprender Python, além disso, comentei que faria uma série de posts para ajudar você à aprender. Pois bem, vamos começar! Sem muita teoria agora, vamos por a mão na massa!
Encontro Itajaí .NET - Janeiro de 2018
Olá pessoa! No último sábado (27/01/2017) aconteceu o segundo encontro do grupo Itajaí .NET, como prometido vou usar o espaço aqui do blog para falar um pouco do evento e claro, compartilhar os slides e códigos!
Você deveria aprender Python
Olá pessoa! Quem me conhece ou me acompanha sabe que eu programo majoritariamente na plataforma .NET, mas também sabe que eu considero um erro enorme os programados se fecharem em seu mundinho, seja ele Java, .Net ou qualquer plataforma que seja. Se você quer começar a programar, qual a melhor linguagem? - Depende. Caso você esteja pensando em seguir carreira e já possui um mínimo de lógica e noções de programação, eu sugiro fortemente Python.
Nas profundezas do C#
Olá pessoa! Hoje vamos discutir sobre quatro conceitos importantíssimos no C#, conceitos estes que todos os programadores deveriam saber, mas na prática, não é bem assim. Você já ouviu falar de:
  • Stack vs Heap memory
  • Boxing vs Unboxing
Caso não esteja afiado, você pode ser surpreendido em uma entrevista de emprego! Vem comigo e vamos debater um à um!
Azure Machine Learning - Parte 2
Olá pessoa! Terminou o pré-processamento dos dados no post anterior? Vamos finalizar o exemplo!
Azure Machine Learning
Olá pessoa! Ultimamente tenho estudado e lido bastante sobre Machine Learning e devo confessar, eu fiquei assustado sobre o quão fácil é criar uma solução dessas com o Azure Machine Learning. Vamos fazer um exemplo?
Extraindo dados de uma planilha Excel - CSV
Olá pessoa! Alguém aqui já precisou importar dados de uma planilha Excel? - Sentiu aquela raiva do cliente? Por mais que você não goste, paciência. O mundo gosta do Excel e ele é bem maneiro. Aceite. É totalmente factível fazer esta implementação em C#, inclusive tenho um amigo que já fez isso, tantas, mas tantas vezes, que ele poderia dar uma aula aqui. Mas mesmo com toda a prática do mundo, eu ainda acho que C# não é a melhor linguagem para fazer isso, vamos mais uma vez apelar para a facilidade dos type providers do F#!. Três linhas de código, planilha do Excel em suas mãos.
Desmistificando Machine Learning
Olá pessoa! Hoje o post vai ser um pouquinho mais teórico, mas calma, é fácil e pode te ajudar muito! Se você está lendo este post provavelmente você já ouviu falar em Machine Learning, certo? Mas o que é Machine Learning? - Além de uma buzzword, claro. Vamos desmistificar este conceito e entender porque tanta gente fala disso.
Tuplas em C#
Olá pessoa! Hoje falaremos de uma funcionalidade que já existia no C#, mas que teve uma melhora absurda nas últimas atualizações! Estamos falando das Tuplas!
Seja bem-vindo 2018
Olá pessoa! Feliz ano novo para todo mundo! Espero que as festas tenham sido maravilhosas! Nada mais justo que fazer uma retrospectiva de 2017 e falar um pouquinho sobre os planos para 2018!
Extraindo dados da web - JSON
Olá pessoa! Na semana passada fiz um post sobre como extrair dados da web através dos type providers! Vamos continuar com essa extração, mas desta vez, ao invés de obtermos as informações via HTML iremos obtê-las com JSON. Provavelmente você já deve conhecer uma ou mais formas de obter os dados a partir de um retorno JSON, certo? Mas a facilidade que o F# provê, permite criar isso com três linhas de código. É sério, não tem enrolação, são só três linhas mesmo.
Lidando com a falta de valores
Olá pessoa! Hoje vamos ver como lidar com a falta de valores em nossa aplicação, nos casos onde geramos ou obtemos um valor. As implementações vão utilizar a linguagem C#, mas terá uma forte inspiração em implementações disponíveis em outras linguagens!
Extraindo dados da web - HTML
Olá pessoa! Hoje vamos mudar um pouquinho de linguagem, eu tenho dado muitos exemplos em C#, mas adivinha só? Não existe só ele. Esse tipo de raciocínio serve para qualquer desenvolvedor de qualquer plataforma, você pode gostar da sua linguagem, não há nada de errado nisso, mas ela nem sempre vai ser a melhor opção. Hoje é um exemplo bastante claro, vamos propor um problema simples: extrair dados da web.
Tango, uma biblioteca para programação funcional em C#
Olá pessoa! Hoje vou apresentar algo que estou trabalhando já faz um tempo, uma biblioteca para programação funcional em C#!
Não ignore os delegates!
Olá pessoa! Hoje vou trazer um tema bastante específico do C#, os assustadores delegates. Ok, eles não são assustadores de verdade, mas há uma relação estranha entre os desenvolvedores e os delegates. Nunca entendi o real motivo, mas é bastante comum ver os desenvolvedores negligenciarem ou até não entenderem esta feature da linguagem.
Primeiro encontro Itajaí .NET
Olá pessoa! Esta mês rolou o primeiro encontro do grupo Itajaí .NET e acho que não há hora melhor para falar sobre ele do que agora.
Semana cansativa, mas muito produtiva
Olá pessoa! Esta semana foi uma correria gigante, mas no final tudo deu certo. Segunda-feira ministrei uma palestra sobre a importância da programação funcional no dia-a-dia, explicando alguns conceitos práticos que melhora minha performance como programador, mesmo utilizando linguagens imperativas.
Os Universos Paralelos dos containers
Universos paralelos não são uma novidade no mundo das histórias em quadrinhos. Nas sagas do herói da DC, Flash, é comum existir este tipo de dinâmica. Toda vez que viajam para um universo paralelo, acabam em um planeta Terra muito similar ao nosso, inclusive com as mesmas pessoas. Mas estas pessoas tem outros empregos, outras personalidades e outros comportamentos.
Linguagem Ubíqua + Código Expressivo = Felicidade :)
Olá pessoa! No sábado deste fim de semana que passou (28/10/2017) aconteceu um Meetup sobre DDD - Domain-Driven Design.
Game of Thrones e probabilidade utilizando redes baysianas
Game of Thrones (GoT) é sem dúvida um fenômeno mundial. O último episódio da sétima temporada (última temporada exibida) bateu o recorde da série registrando assustadores 12.1 milhões de telespectadores nos Estados Unidos. Eu não sou nenhum fã super hardcore com conhecimentos sobre toda a mitologia da história e tudo mais, mas uma coisa eu sei, é uma série bastante popular e que nos fornece um bom conteúdo, inclusive para experimentos.
O null é mesmo um problema?
O null é mesmo um problema? Sim, é. Até mais e vamos ao próximo post. - Ainda não.
O programador e o cientista da computação
Tive uma conversa com um amigo e ele me disse a seguinte frase:
“Eu por muito tempo fiquei focado só em saber fazer o que é mainstream no mercado, mas tô começando a sentir falta de uma boa base científica, entende?”
Entendo.
Código em C#, teste unitário em F#
Olá pessoa, que tal falar um pouco sobre teste unitário? O foco deste post será propor uma forma de você começar a implementar seus testes unitários de aplicações .NET utilizando a linguagem F#.
Utilizando o Distinct do LINQ com dignidade
Olá pessoa do meu coração, depois de dois posts com bastante conversa e pouca programação, decidi que já era hora de mostrar um pouco de código, neste post irei ilustrar um problema bem específico, o método Distinct provido pelo LINQ.
Comparação Referencial vs Comparação Estrutural
Eu estava na sala de aula explicando para os alunos de ciência da computação sobre os arrays em C++ e suas características, entre elas a forma como ordenar e comparar elementos. Até que surge a pergunta:
“Professor, como faço para comparar o array inteiro?”
A resposta clara que vem em mente é: comparando elemento por elemento, mas será que isso é normal mesmo ou só nos acostumamos com esse comportamento?
Olá Mundo
O primeiro post não poderia ser diferente do famoso “Olá Mundo”. Se você está lendo isso, bom, seja bem-vindo ao meu blog!

Assine a Newsletter