Pular para o conteúdo principal

· Leitura de 5 minutos
Vitor Stahelin

Na próxima whiteStone_dev, contaremos com três feras da blockchain: Doug, Fifo e Gabriel. Cada um com uma rica experiência e perspectivas valiosas para compartilhar. A seguir, apresentamos um pouco mais sobre a carreira desses profissionais e o que você pode esperar nas suas palestras.

Doug (Douglas da Silva) – Blockchain em 2025: Eliminando o Ruído

Doug (Douglas da Silva)

Doug da Silva é o Chief Technology Officer (CTO) da Cheesecake Labs, uma empresa líder em desenvolvimento de software no Brasil e América Latina. Com mais de uma década de experiência como engenheiro de software, Doug começou como desenvolvedor e logo passou para cargos de liderança. Foi Desenvolvedor Sênior e VP de Desenvolvimento de Negócios na Cheesecake Labs, unindo visão técnica e de negócios para entregar produtos digitais inovadores.
Essa combinação de expertise levou Doug a liderar times de desenvolvimento em diversos projetos internacionais, desde apps mobile até plataformas blockchain.

Ao longo da carreira, Doug liderou projetos que implementam tecnologias emergentes para resolver problemas reais. Um exemplo recente foi sua análise sobre o Real Digital – a moeda digital brasileira emitida pelo Banco Central – onde explorou aplicações de CBDC (Moeda Digital de Banco Central) e tokenização de ativos. Sua visão estratégica e experiência no campo permitem a Doug separar o hype da realidade quando o assunto é blockchain.

Na palestra “Eliminando o Ruído: Blockchain em 2025 – Os Casos de Uso que Realmente Estão Transformando as Indústrias”, Doug compartilhará exatamente isso: quais aplicações de blockchain realmente fazem a diferença nas empresas atualmente e quais tendências estão moldando o futuro próximo. Com ampla experiência, incluindo projetos de blockchain em cadeias de suprimento e no setor financeiro, Doug oferece insights preciosos para quem quer saber onde focar no cenário atual. Não perca a chance de aprender com quem lidera projetos inovadores e sabe como transformar tecnologia em valor real.

Conecte-se com Doug:

Fifo Zatti – Interoperabilidade e Hyperledger Cacti

Fifo Zatti

Fifo Zatti é um especialista em blockchain com ampla experiência em diversas áreas da TI. Ele é Principal Blockchain Engineer da Cheesecake Labs, onde lidera iniciativas de desenvolvimento com redes blockchain. Sua carreira já soma mais de 12 anos, tendo começado no suporte técnico e gestão do conhecimento (ele foi Knowledge Management Champion da SAP por 10 anos) e avançando para a gestão de projetos e produtos em empresas de tecnologia. Essa base sólida permitiu sua entrada no mundo blockchain com habilidades de liderança e visão de negócios.

Na Cheesecake Labs, Fifo se destacou em criar pontes entre diferentes redes e soluções blockchain. Ele contribuiu diretamente com a comunidade open source ao criar o Stellar Connector para o Hyperledger Cacti – um módulo que integra a blockchain Stellar com a plataforma Hyperledger, promovendo a interoperabilidade entre blockchains. Em resumo, ele "constrói pontes" entre sistemas descentralizados distintos.

Fifo também é um entusiasta de Web3 e DeFi, criando conteúdo educativo sobre blockchain em linguagem acessível. Você pode encontrá-lo nas redes sociais como @oififo, compartilhando dicas e projetos. Todo esse conhecimento será abordado em sua palestra “Interoperabilidade entre Blockchains e o Hyperledger Cacti”. Se você quer aprender como blockchains diferentes podem se comunicar, um tema vital para adoção tecnológica e escalabilidade, Fifo é a pessoa certa. Sua abordagem didática e técnica vai te levar pelos detalhes da integração entre redes como Ethereum, Hyperledger e Stellar, e sobre os projetos de interoperabilidade que estão definindo o futuro do ecossistema blockchain. Prepare suas perguntas sobre Hyperledger Cacti, protocolos cross-chain e desafios de integração, pois a experiência do Fifo promete um mergulho profundo nesses temas!

Conecte-se com Fifo:

Gabriel Soares Costa – Desmistificando as Stablecoins no Mundo Cripto

Gabriel Soares Costa

Gabriel Soares Costa é um Engenheiro de Software na Cheesecake Labs, uma empresa líder em desenvolvimento de software especializada em serviços de design e engenharia. Na Cheesecake Labs, Gabriel contribui para o desenvolvimento de aplicações web e mobile, colaborando com equipes multidisciplinares para entregar soluções digitais de alta qualidade.

Formado em Sistemas de Informação pela Universidade Federal de Santa Catarina (UFSC), Gabriel tem se dedicado nos últimos anos à construção de aplicações para empresas de tecnologia. Ao longo de sua trajetória profissional, participou de projetos que envolvem desde ferramentas de produtividade até soluções fintech. Essa experiência prática em programação o levou a colaborar com empresas renomadas como EdgeConneX, FINN, MoneyGram e Vibrant, demonstrando sua capacidade de atuar em projetos diversos e inovadores.

Na sua flash talk “No volátil mundo das criptos, o que é uma ‘stablecoin’?”, Gabriel esclarecerá um dos conceitos mais importantes do mercado de criptomoedas: as stablecoins. Ele abordará questões como: Por que as stablecoins existem? Como elas funcionam tecnicamente para manter um valor estável lastreado em moedas fiduciárias ou outros ativos? Quais são os principais tipos (como USDT, USDC, DAI) e seus usos práticos no dia a dia? Espere uma apresentação didática e envolvente, onde Gabriel utilizará analogias simples e exemplos do mundo real para desmistificar as moedas estáveis. Sua perspectiva como desenvolvedor, curiosa e conectada às comunidades online, certamente inspirará tanto aqueles que estão começando no assunto quanto os que já investem ou trabalham com criptomoedas a olhar as stablecoins sob uma nova luz.

Conecte-se com Gabriel:


Se você quer entender como o blockchain está revolucionando diversas indústrias, explorar as possíveis integrações entre redes ou aprofundar seu conhecimento sobre criptomoedas estáveis, este evento é imperdível. Garanta já seu lugar e venha conosco desvendar o futuro da tecnologia blockchain!

🔗 Conecte-se conosco

· Leitura de 10 minutos
Daniel da Rosa

Seus Índices no MongoDB Estão Turbinados ou Te Deixando na Mão? 🤔

Quem nunca se deparou com aquela lentidão раздрашивающая nas consultas ao banco de dados, não é mesmo? 😩 Em um cenário como esse, otimizar os índices do MongoDB pode ser a chave para turbinar a performance da sua aplicação! 🚀

Neste artigo, vamos mergulhar em um caso real de troubleshooting de índices no MongoDB. Você vai aprender a identificar gargalos, analisar o plano de execução de queries com o poderoso explain() e descobrir como criar índices eficientes para deixar suas consultas voando baixo! 💨

Recentemente, no trabalho, enfrentei um desafio com uma collection no MongoDB que estava apresentando lentidão em algumas consultas. 🐌 A collection era grande (4 milhões de documentos), mas a lentidão era sorrateira, mascarada em meio a outros processos demorados.

O problema veio à tona com a ajuda do Sysdig, que apontou essa collection como a mais lenta do banco! 🚨 Quer saber como configurar um agente Sysdig no MongoDB? Clique aqui!

Para ilustrar a situação, imagine uma collection com 4 milhões de registros de pessoas, seguindo este modelo:

{
"_id": ObjectId("5fab44b1153579ed0dacdb88"),
"name": "danidr7",
"cpf": "12345678900",
"age": 28,
"occupation": "programmer",
"phone": "123456789"
}

Curioso para simular essa situação? Usei este script para gerar dados aleatórios no MongoDB!

O primeiro passo foi identificar quais campos eram mais consultados nessa collection. Analisando as queries, encontrei os seguintes padrões:

// 1. Busca por nome e CPF
db.person.find({ name: 'danidr7', cpf: '12345678900' })

// 2. Busca por profissão e CPF
db.person.find({ occupation: 'programmer', cpf: '12345678900' })

Em seguida, verifiquei os índices existentes na collection:

$ db.person.getIndexes()
[
{
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "test.person"
},
{
"v" : 2,
"unique" : true,
"key" : {
"name" : 1,
"cpf" : 1
},
"name" : "name_1_cpf_1_idx",
"ns" : "test.person"
},
{
"v" : 2,
"key" : {
"occupation" : 1
},
"name" : "occupation",
"ns" : "test.person"
}
]

Ok, tínhamos um índice composto por 'name' e 'cpf', e outro individual para 'occupation'. 🤔 Será que esses índices estavam sendo bem aproveitados? O que acontecia por trás dos panos quando o MongoDB executava as queries? Para responder essas perguntas, a ferramenta chave é o explain()! 🕵️‍♀️

O explain() é o nosso detetive de queries! 🕵️ Ele nos revela o plano de execução da consulta, permitindo analisar se os índices estão sendo utilizados e como a query está performando. Vamos investigar a primeira query:

$ db.person.find({name: "danidr7", cpf: "12345678900"}).explain("executionStats")
{
"queryPlanner" : {
"plannerVersion" : 1,
"namespace" : "test.person",
"indexFilterSet" : false,
"parsedQuery" : {
"$and" : [
{
"cpf" : {
"$eq" : "12345678900"
}
},
{
"name" : {
"$eq" : "danidr7"
}
}
]
},
"winningPlan" : {
"stage" : "FETCH",
"inputStage" : {
"stage" : "IXSCAN",
"keyPattern" : {
"name" : 1,
"cpf" : 1
},
"indexName" : "name_1_cpf_1",
"isMultiKey" : false,
"multiKeyPaths" : {
"name" : [ ],
"cpf" : [ ]
},
"isUnique" : false,
"isSparse" : false,
"isPartial" : false,
"indexVersion" : 2,
"direction" : "forward",
"indexBounds" : {
"name" : [
"[\"danidr7\", \"danidr7\"]"
],
"cpf" : [
"[\"12345678900\", \"12345678900\"]"
]
}
}
},
"rejectedPlans" : [ ]
},
"executionStats" : {
"executionSuccess" : true,
"nReturned" : 1,
"executionTimeMillis" : 0,
"totalKeysExamined" : 1,
"totalDocsExamined" : 1,
"executionStages" : {
"stage" : "FETCH",
"nReturned" : 1,
"executionTimeMillisEstimate" : 0,
"works" : 2,
"advanced" : 1,
"needTime" : 0,
"needYield" : 0,
"saveState" : 0,
"restoreState" : 0,
"isEOF" : 1,
"docsExamined" : 1,
"alreadyHasObj" : 0,
"inputStage" : {
"stage" : "IXSCAN",
"nReturned" : 1,
"executionTimeMillisEstimate" : 0,
"works" : 2,
"advanced" : 1,
"needTime" : 0,
"needYield" : 0,
"saveState" : 0,
"restoreState" : 0,
"isEOF" : 1,
"keyPattern" : {
"name" : 1,
"cpf" : 1
},
"indexName" : "name_1_cpf_1",
"isMultiKey" : false,
"multiKeyPaths" : {
"name" : [ ],
"cpf" : [ ]
},
"isUnique" : false,
"isSparse" : false,
"isPartial" : false,
"indexVersion" : 2,
"direction" : "forward",
"indexBounds" : {
"name" : [
"[\"danidr7\", \"danidr7\"]"
],
"cpf" : [
"[\"12345678900\", \"12345678900\"]"
]
},
"keysExamined" : 1,
"seeks" : 1,
"dupsTested" : 0,
"dupsDropped" : 0
}
}
},
"serverInfo" : {
"host" : "my-host",
"port" : 27017,
"version" : "4.2.8",
"gitVersion" : "43d25964249164d76d5e04dd6cf38f6111e21f5f"
},
"ok" : 1
}

Ufa! 😅 O explain() retorna um caminhão de informações! 🚚 Mas calma, vamos focar no essencial: winningPlan e executionStats. Quer saber o que cada campo significa? A documentação do MongoDB te explica tim-tim por tim-tim!

O winningPlan revela o plano de consulta vencedor, escolhido pelo otimizador do MongoDB. Ele pode ter até 3 estágios (inputStage). Os estágios mais importantes para a nossa análise são:

  • FETCH: Recupera os documentos propriamente ditos, buscando-os a partir das chaves retornadas no estágio anterior. 📦
  • COLLSCAN: Realiza uma varredura completa na collection, documento por documento. 🐌 Sinal vermelho! 🚨 Índices não estão sendo usados!
  • IXSCAN: Varre as chaves dos índices, buscando de forma otimizada os documentos. 🚀 Índices em ação!

No winningPlan do nosso exemplo, vemos os estágios FETCH e IXSCAN. 🎉 Ótima notícia! Um índice está sendo usado! O nome dele? indexName nos revela: name_1_cpf_1.

Agora, vamos analisar o executionStats:

"executionStats" : {
"executionSuccess" : true,
"nReturned" : 1,
"executionTimeMillis" : 0,
"totalKeysExamined" : 1,
"totalDocsExamined" : 1,
}
  • nReturned: Número de documentos retornados pela consulta. 🔢
  • executionTimeMillis: Tempo total de execução da consulta em milissegundos. ⏱️
  • totalKeysExamined: Número de chaves de índice examinadas. > 0 indica uso de IXSCAN. 🔑
  • totalDocsExamined: Número de documentos examinados durante a consulta. Pode ocorrer em estágios FETCH e COLLSCAN. 📄

Com base nos números do executionStats, a primeira query está performando muito bem! ✅ O estágio IXSCAN filtrou as chaves de índice de forma eficiente, retornando apenas 1 resultado para o estágio FETCH buscar o documento.

Agora, vamos repetir a análise para a segunda query. Para facilitar a visualização, vamos focar apenas no executionStats:

$ db.person.find({occupation: "programmer", cpf: "12345678900"}).explain("executionStats")
{
...
"executionStats" : {
"executionSuccess" : true,
"nReturned" : 1,
"executionTimeMillis" : 1101,
"totalKeysExamined" : 799296,
"totalDocsExamined" : 799296,
"executionStages" : {
"stage" : "FETCH",
"executionTimeMillisEstimate" : 50,
"docsExamined" : 799296,
"filter" : {
"cpf" : {
"$eq" : "12345678900"
}
},
"nReturned" : 1,
"works" : 799297,
"advanced" : 1,
"needTime" : 799295,
"needYield" : 0,
"saveState" : 6244,
"restoreState" : 6244,
"isEOF" : 1,
"alreadyHasObj" : 0,
"inputStage" : {
"stage" : "IXSCAN",
"nReturned" : 799296,
"executionTimeMillisEstimate" : 18,
"works" : 799297,
"advanced" : 799296,
"needTime" : 0,
"needYield" : 0,
"saveState" : 6244,
"restoreState" : 6244,
"isEOF" : 1,
"keyPattern" : {
"occupation" : 1
},
"indexName" : "occupation_1",
"isMultiKey" : false,
"multiKeyPaths" : {
"occupation" : [ ]
},
"isUnique" : false,
"isSparse" : false,
"isPartial" : false,
"indexVersion" : 2,
"direction" : "forward",
"indexBounds" : {
"occupation" : [
"[\"programmer\", \"programmer\"]"
]
},
"keysExamined" : 799296,
"seeks" : 1,
"dupsTested" : 0,
"dupsDropped" : 0
}
}
}
}

OPA! 🚨 Sinal vermelho de novo! Na segunda query, os números do executionStats já acendem o alerta:

"executionStats" : {
"nReturned" : 1,
"executionTimeMillis" : 1101, // Tempo de execução ALTO! 🐌
"totalKeysExamined" : 799296, // Muitas chaves examinadas! 🔑
"totalDocsExamined" : 799296, // Muitos documentos examinados! 📄

Tempo de execução alto, um mar de chaves e documentos examinados... 😫 O que aconteceu? Analisando o executionStages, o mistério se revela:

No estágio IXSCAN:

"inputStage" : {
"stage" : "IXSCAN",
"nReturned" : 799296, // Retornou MUITOS documentos! 🤯
"indexName" : "occupation_1", // Índice utilizado: occupation_1
...
}

O índice occupation_1 foi utilizado, mas retornou 799296 documentos! 😱 Isso porque o índice cobre apenas o campo occupation. Ele filtrou por profissão, ok, mas encontrou todos os programadores da collection!

No estágio FETCH:

"executionStages" : {
"stage" : "FETCH",
"docsExamined" : 799296, // Examinou MUITOS documentos! 😫
"nReturned" : 1, // Para retornar APENAS 1! 🤦‍♀️
...
}

O estágio FETCH teve que examinar TODOS os 799296 documentos retornados pelo IXSCAN para só então encontrar o documento que também correspondia ao filtro de cpf! 🤯 Um trabalho hercúleo e desnecessário! 😫 Precisamos de um índice mais inteligente! 🧠

Vamos criar um índice composto que inclua os campos cpf e occupation:

$ db.person.createIndex({cpf: 1, occupation: 1})
{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 3,
"numIndexesAfter" : 4,
"ok" : 1
}

Por que um índice composto de cpf e occupation e não apenas um índice para cpf? 🤔 O MongoDB escolhe apenas um índice por consulta. Precisamos analisar quais campos são mais relevantes para o índice. Índices compostos (até 32 campos!) são poderosos para otimizar queries com múltiplos critérios de filtro. 💪

Será que o novo índice fez mágica? ✨ Vamos rodar o explain() novamente:

$ db.person.find({occupation: "programmer", cpf: "12345678900"}).explain("executionStats")
{
...
"executionStats" : {
"executionSuccess" : true,
"nReturned" : 1,
"executionTimeMillis" : 11, // Tempo de execução LÁ EMBAIXO! 🚀
"totalKeysExamined" : 1, // Apenas 1 chave examinada! 🔑
"totalDocsExamined" : 1, // Apenas 1 documento examinado! 📄
"executionStages" : {
"stage" : "FETCH",
"nReturned" : 1,
"executionTimeMillisEstimate" : 10,
"works" : 3,
"advanced" : 1,
"needTime" : 0,
"needYield" : 0,
"saveState" : 0,
"restoreState" : 0,
"isEOF" : 1,
"docsExamined" : 1,
"alreadyHasObj" : 0,
"inputStage" : {
"stage" : "IXSCAN",
"nReturned" : 1, // Retornou APENAS 1 documento! 🎉
"executionTimeMillisEstimate" : 10,
"works" : 2,
"advanced" : 1,
"needTime" : 0,
"needYield" : 0,
"saveState" : 0,
"restoreState" : 0,
"isEOF" : 1,
"keyPattern" : {
"cpf" : 1,
"occupation" : 1
},
"indexName" : "cpf_1_occupation_1", // Índice composto em ação! 💪
...
}
}
},
...
"rejectedPlans" : [ // Planos rejeitados pelo otimizador
{
"stage" : "FETCH",
"filter" : {
"cpf" : {
"$eq" : "12345678900"
}
},
"inputStage" : {
"stage" : "IXSCAN",
"keyPattern" : {
"occupation" : 1
},
"indexName" : "occupation_1", // Plano rejeitado usava o índice antigo! 👎
...
}
}
],
...
}

QUE MELHORA INCRÍVEL! 🤩 O tempo de resposta despencou de 1101ms para apenas 11ms! 🚀 No executionStages, o IXSCAN agora utiliza o índice composto cpf_1_occupation_1 e retorna apenas 1 chave! 🎉 O índice composto resolveu o problema!

Outro ponto interessante é o rejectedPlans. Ele lista planos de consulta que foram considerados, mas rejeitados pelo otimizador do MongoDB, que optou por um plano mais eficiente. No nosso caso, o rejectedPlans mostra um plano que utilizava o índice antigo occupation_1. Como esse índice se tornou obsoleto para essa query, podemos removê-lo da collection! 🧹

Considerações Finais 🤔

Otimizar índices no MongoDB exige cautela e análise. Lembre-se:

Com as ferramentas e técnicas certas, você pode dominar a arte da otimização de índices no MongoDB e garantir que suas aplicações voem em alta performance! 🚀 E você, já usou o explain() para otimizar suas queries? Compartilhe sua experiência nos comentários! 👇

· Leitura de 3 minutos
Gabriel Soares Costa

Se você é da área de tecnologia, com certeza já se deparou com o Stack Overflow em suas buscas! 🧐 Para quem está começando, essa plataforma é um verdadeiro tesouro, um gigante fórum de perguntas e respostas que abrange um universo de linguagens de programação e tecnologias. É o lugar ideal para desvendar dúvidas e trocar ideias com a comunidade de desenvolvimento.

Recentemente, o Stack Overflow divulgou os resultados da sua pesquisa anual sobre o perfil do desenvolvedor, um estudo super aguardado pela comunidade tech. Na edição de 2019, cerca de 90 mil participantes, desde entusiastas até profissionais experientes, compartilharam suas opiniões sobre as tecnologias que utilizam, seus salários e as tendências do mercado. Queremos te apresentar os principais destaques dessa pesquisa! 😉

Python Brilha Mais Forte 🐍

O Python continua sua ascensão meteórica! Na pesquisa de 2019, a linguagem ultrapassou o Java no ranking das mais utilizadas e conquistou o 2º lugar entre as linguagens mais amadas pelos desenvolvedores. E não para por aí: pelo terceiro ano consecutivo, o Python lidera a lista de linguagens que os profissionais desejam aprender no futuro.

Esse crescimento exponencial do Python pode ser atribuído à sua versatilidade e aplicação em áreas de grande destaque, como:

  • IoT (Internet das Coisas): Python impulsionando dispositivos embarcados e conectados.
  • Inteligência Artificial (IA): Linguagem chave para Machine Learning e Deep Learning.
  • Análise de Dados: Ferramenta poderosa para Big Data e Data Science.

DevOps em Alta 🚀

Os especialistas em DevOps ganharam ainda mais destaque na pesquisa, figurando entre as profissões mais bem remuneradas e com os profissionais mais satisfeitos. E por falar em profissão, a pesquisa revelou que a maioria dos desenvolvedores se considera Full-Stack (52%).

Javascript Imbatível na Web 🌐

Javascript se mantém no topo como a linguagem mais utilizada no desenvolvimento web, um reinado que parece não ter fim! Além de ser a linguagem mais popular, o ecossistema Javascript também domina o Top 3 de frameworks web com jQuery, React e Angular, e ainda emplaca o Node.js como framework número 1 entre "outros frameworks".

Visual Studio Code: IDE Queridinha 🏆

No quesito IDEs (Ambientes de Desenvolvimento Integrado), o Visual Studio Code (VS Code) se consagrou como a ferramenta preferida da maioria dos desenvolvedores. No desenvolvimento mobile, o VS Code ainda fica em segundo lugar, perdendo por pouco para o Android Studio, mas lidera em todos os outros cenários.

Mapa das Tecnologias 🗺️

O Stack Overflow também elaborou um mapa visual incrível, conectando as tecnologias mais utilizadas e mostrando como elas se relacionam. Vale a pena explorar essa rede de conhecimento!

Mapa das Tecnologias


Outras Curiosidades da Pesquisa 💡

  • Elon Musk Influencer Tech #1: Para a comunidade de desenvolvedores, Elon Musk é a figura mais influente no mundo da tecnologia (30,2%), seguido por Jeff Bezos (7,2%) e Satya Nadella (4,4%).
  • Programação Ainda é Majoritariamente Masculina: Apesar do aumento da participação feminina, os homens ainda representam a grande maioria (91,7%) dos programadores.
  • Open Source é Colaboração: Aproximadamente 65% dos desenvolvedores afirmam contribuir com projetos open-source.
  • Blockchain: Jovens x Veteranos: Desenvolvedores mais jovens se mostram otimistas com o futuro do Blockchain, enquanto os mais experientes são mais céticos.

Quer mergulhar ainda mais nos dados? Acesse o estudo completo no link: Stack Overflow’s Developer Survey Results 2019 e explore todos os detalhes da pesquisa! 😉

E você, o que achou dos resultados da pesquisa? Comente abaixo suas impressões! 👇

· Leitura de um minuto
Whitestone Dev

Faaaala galera, beleza? Na última semana rolou o nosso primeiro encontro na Pedra Branca em parceria com o RubyFloripa!

O evento ocorreu no Impact Hub, dentro do Atrium Offices, patrocinado pela Eurotec Nutrition.

Foi um encontro bem heterogêneo, com talks sobre empreendedorismo, IoT e microsserviços. Tudo foi transmitido ao vivo pelo Facebook e você pode assistir à gravação aqui embaixo, além de ter acesso às apresentações.

Assista ao encontro:

A multiplicação dos Devs! Dicas para empresas e devs se relacionarem melhor - Isaac Souza

Introdução à arquitetura de microsserviços - Leandro Parazito

Internet das Coisas: Desenvolver e empreender - Vinicius Sebastião

Valeu pessoal, nos vemos em breve

Interessado no próximo evento? Siga nossas redes para mais novidades. Facebook - Instagram - GitHub

Acompanhe nosso blog -> posts todas as semanas.

· Leitura de 6 minutos
Rafael Mateus

Você já parou para pensar em como a tecnologia está cada vez mais conectada? 🤔 A Internet of Things (IoT), ou Internet das Coisas, é exatamente sobre isso! 🌐 Imagine desde uma pessoa com um implante de monitor cardíaco ❤️ até um carro 🚗 que te avisa da pressão baixa dos pneus... Tudo isso, e muito mais, faz parte do universo IoT!

Basicamente, IoT é qualquer objeto físico 📦 que consegue coletar e trocar dados 🔄 através da internet. Não é ficção científica, é a realidade que já vivemos e que está transformando o mundo! 🌍

Cada vez mais empresas 🏢 em todos os setores estão adotando a IoT para:

  • 🚀 Aumentar a eficiência: Operações mais inteligentes e otimizadas.
  • 🤝 Entender melhor os clientes: Para oferecer um atendimento que realmente faz a diferença.
  • 📊 Tomar decisões mais inteligentes: Baseadas em dados concretos.
  • 💰 Gerar mais valor para o negócio: Inovação que se traduz em resultados.

Em 1999, Kevin Ashton, um dos fundadores do Auto-ID Center no MIT, foi o primeiro a usar o termo "Internet of Things" numa apresentação para a Procter & Gamble (P&G). 📢 Ele queria mostrar como a internet, que era a grande novidade da época, poderia ser aplicada a objetos físicos.

[Image of Kevin Ashton presenting Internet of Things in 1999]

Curiosamente, no mesmo ano, o professor do MIT Neil Gershenfeld lançou o livro "When Things Start to Think", que, embora não usasse o termo "IoT", já apontava para essa direção. 📚

[Image of the book cover of "When Things Start to Think" by Neil Gershenfeld]

A IoT que conhecemos hoje é resultado da união de diversas tecnologias:

  • Redes sem fio 📡: Conexão sem cabos, facilitando a comunicação.
  • Sistemas microeletromecânicos (MEMS) ⚙️: Sensores minúsculos e poderosos.
  • Microsserviços 🧩: Sistemas flexíveis e fáceis de integrar.
  • Internet 💻: A espinha dorsal da comunicação global.

Essa combinação quebrou barreiras entre o mundo da tecnologia operacional (TO) e da tecnologia da informação (TI), permitindo analisar dados de máquinas de forma inédita e gerar insights valiosos. 💡

Apesar de Ashton ter popularizado o termo, a ideia de dispositivos conectados já existia desde os anos 70. 👴 Os primeiros exemplos eram mais rudimentares, como os monitores de internet embutida e a computação difundida.

Um caso clássico é a máquina de Coca-Cola da Universidade Carnegie Mellon, no início dos anos 80. 🥤 Programadores podiam usar a internet para verificar se havia Coca-Cola gelada na máquina antes de ir até lá! 😅 [Image of a vintage Coca-Cola vending machine]

A IoT também é uma evolução da comunicação máquina a máquina (M2M), onde dispositivos se comunicavam entre si sem intervenção humana. 🤖➡️🤖 A IoT leva isso a outro nível, criando uma rede gigante de bilhões de dispositivos inteligentes 🤯 que conectam pessoas, sistemas e aplicativos para coletar e compartilhar dados em larga escala.

E não podemos esquecer do SCADA (Supervisory Control and Data Acquisition), um sistema de software essencial para controle de processos industriais 🏭 e coleta de dados em tempo real de locais remotos. O SCADA é como um "ancestral" da IoT no mundo industrial.

Como a IoT Funciona na Prática? ⚙️

Um sistema IoT é como um ecossistema vibrante! 🌿 Ele é composto por:

  • Dispositivos inteligentes: Equipados com sensores, processadores e hardware de comunicação. Eles coletam dados do ambiente 🌡️, processam informações e se comunicam em rede.
  • Gateways IoT: Funcionam como pontes 🌉, conectando os dispositivos à nuvem.
  • Nuvem: Onde os dados são armazenados ☁️, processados e analisados. É aqui que a mágica acontece! ✨

[Image of a diagram illustrating an IoT ecosystem with devices, gateway, and cloud]

Os dispositivos IoT trocam informações entre si e com a nuvem de forma autônoma, sem precisar de humanos o tempo todo. 🧑‍💻 Mas, claro, nós podemos interagir com eles para configurar, dar comandos ou acessar os dados.

A conexão entre esses dispositivos pode ser feita de diversas formas: Wi-Fi, Bluetooth, redes celulares, entre outras. A escolha depende da aplicação e das necessidades de cada caso. 📶

Benefícios da IoT para Empresas e para Você! 🚀

A IoT oferece uma série de vantagens incríveis, tanto para empresas quanto para o nosso dia a dia:

Para Empresas 🏢:

  • Visão global dos negócios 🌍: Monitore processos em tempo real, em qualquer lugar do mundo.
  • Experiência do cliente aprimorada 😄: Produtos e serviços mais personalizados e eficientes.
  • Economia de tempo e dinheiro ⏱️💰: Otimização de recursos e redução de desperdícios.
  • Aumento da produtividade 📈: Funcionários mais eficientes e processos otimizados.
  • Novos modelos de negócio 💡: Crie soluções inovadoras e explore novos mercados.
  • Decisões mais assertivas ✅: Baseadas em dados concretos e análises precisas.
  • Mais receita 🤑: Crescimento do negócio e novas fontes de lucro.

Para Você 🙋:

  • Casas inteligentes 🏠: Mais conforto, segurança e economia de energia.
  • Cidades inteligentes 🏙️: Trânsito mais fluido, segurança reforçada, serviços públicos mais eficientes.
  • Saúde conectada ⚕️: Monitoramento da saúde em tempo real, tratamentos mais personalizados.
  • Agricultura inteligente 🌾: Produção de alimentos mais eficiente e sustentável.
  • E muito mais! As possibilidades são infinitas! ✨

O Futuro Promissor da IoT 🔮

O futuro da IoT é exponencial! 🚀 As estimativas do mercado são impressionantes:

  • A Bain & Company prevê que a receita anual de hardware e software IoT ultrapasse 450 bilhões de dólares até 2020. 🤯
  • A McKinsey & Company estima que o impacto da IoT será de 11,1 trilhões de dólares até 2025. 😲
  • A IHS Markit acredita que o número de dispositivos IoT conectados crescerá 12% ao ano, atingindo 125 bilhões em 2030. 📈
  • A Gartner avalia que 20,8 bilhões de "coisas" conectadas já estavam em uso em 2020. 🌍

[Image of a futuristic city with connected devices representing the future of IoT]

O mundo está cada vez mais conectado, inteligente e eficiente graças à Internet das Coisas. Prepare-se para um futuro onde tudo, ou quase tudo, estará conectado! 😉

E você, o que acha do futuro da IoT? Deixe seu comentário abaixo! 👇

· Leitura de um minuto
Rafael Mateus

Segundo o repositório, o Oh My Zsh é uma estrutura orientada a comunidade e de código aberto para gerenciar sua configuração de zsh. 🤓 Parece chato? Vamos tentar de novo... 😉

Oh My Zsh não fará de você um desenvolvedor 10x ... mas você pode se sentir como um! 😎

Uma vez instalado, seu terminal se tornará a conversa da cidade ou seu dinheiro de volta! 🤩 Com cada pressionamento de tecla no seu prompt de comando, você aproveitará as centenas de plugins poderosos e temas bonitos. As pessoas vão ver você programando no café e te perguntar: "Isso é incrível! Você é algum tipo de gênio?" 🤯

Install 💻

  • via curl
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
  • via wget
sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

Parabéns! 🎉

Boa dev! O terminal já ficou mais elegante, não? 😎

Reinicie o terminal para finalizar 🔄