Ring Buffer, também chamado de Circular Buffer é uma estrutura de dados muito poderosa. Seu nome já traz o spoiler e entrega o ouro, afinal não deixa de ser um buffer, só que trabalhando em formato de anel/circular. Se você não faz ideia do que seja, vem comigo nessa viagem pois vamos dissecar o assunto e ainda compará-la ao processo de uberização dos objetos custosos.
Em Outubro de 2018 eu recebi o primeiro prêmio Microsoft Most Valuable Professional! Como faltava pouco para a renovação (maio, com resultado em 1° de julho) minha renovação havia sido marcada para 2020. E agora estou aqui para contar um pouco sobre o programa!
No post passado o foco estava nos Agnostic Services e no uso de containers. Agora é hora de olharmos outra questão mais braçal. Rodar Azure Functions 3 com Containers, uma tarefa que deveria ser trivial, mas não é.
Vai rolar no dia 29/08/2020 (sábado), com foco em Serverless + Azure Functions e englobando o uso de tecnologias como: Azure Logic Apps, RabbitMQ, Apache Kafka, SQL Server, MongoDB, Redis, Application Insights, Azure Cosmos DB e GitHub Actions.
Acesse então o link a seguir para efetuar sua inscrição com o desconto especial de pré-venda (apenas R$ 200,00). Sim, é isso mesmo! De R$ 600 por R$ 200!!!!
Certa vez rolou uma discussão sobre Function as a Service (FaaS) e Containers questionando se um suplantaria o outro, ou se seríamos capazes de ignorar um em função do outro. Minha resposta curta e objetiva é: Não! Functions e Containers se complementam.
Sempre que olharmos para Function as a Service, o Lock-in bate à sua porta.
Nessa segunda-feira começou a Semana Nacional de Tecnologia. Sob o slogan “Usando conhecimento para transformar o mundo”.
Antes de mais nada, o que vem a ser esse evento?
É gratuito
É online
Transmitido via Microsoft Teams
Mais de 30 horas de palestras
Promovido por mais de 11 comunidades
As inscrições para o evento acontecem no sympla. Eu vou colocar o link no final pois preciso explicar como funciona.
Tudo fica mais fácil depois de explicar, eu prometo! A comunidade solidária
No tópico acima eu disse que o evento é gratuito, certo?! Sim, é 100% gratuito Mas se você quiser e tiver a chance de doar, há várias forma de você fazer isso.
Eu vou te mostrar isso logo abaixo do banner oficial!
Informação Importante
O evento é 100% gratuito. Então, se não quiser contribuir com nada, não tem problema algum!!!! Mas… se você tem interesse em contribuir, há várias formas de fazer isso. Tem modelo de contribuição para PF e PJ, e de uma forma super transparente!
Como contribuir?
se você quer contribuir com refeições
Mesmo sendo absolutamente gratuito, você tem também a chance/oportunidade de contribuir com uma instituição da região que preferir.
No Sympla a primeira opção de ingresso é “INSCRIÇÃO GRATUITA”, e abaixo dela tem mais 11 tipos, que seguem o padrão: “Doação 1 refeição – Região XX”.
Na mesma página tem uma lista de beneficiários por região.
Por exemplo, se você doar 1 refeição para RJ e 1 para Nordeste, os beneficiários serão:
Hospital Pedro Ernesto Boulevard – RIO DE JANEIRO Centro de Serviço à vida – PERNAMBUCO Lar Torres de Melo – CEARÁ
Se você optar por doar, cada doação fica no valor de R$ 20,00 (+ R$ 2,50 taxa).
Essa parte de transparência está incrível!
Aliás, sem pressão. A doação é opcional. O evento não diferencia quem faz doação de quem está usando ingresso gratuito.
Mas eu sim: Manda um email para contato@gago.io dizendo pra onde você doou!!!! Vou ficar muito feliz e vou te responder!
Como contribuir?
se você quer contribuir com cestas básicas
Se você quer contribuir com cestas básicas, e geralmente empresas tendem a preferir esse tipo de doação. Aqui tem também essa opção.
Na imagem acima eu destaquei essa parte. É um link de Doação para Empresas, mas qualquer um pode doar.
Esse link aponta diretamente para um form, basta preencher e aguardar o contato.
O fluxo é simples:
Você preenche o form
Nome
Email
Telefone
Quantidade de Cestas
Dados da empresa (nome, site, logomarca)
Instituição que deseja apoiar com cestas básicas (tem uma lista de 14 instituições)
A organização do evento envia a lista de contribuintes para o distribuidor de cestas básicas da região que você selecionou.
O distribuidor entra em contato com você para acertar valores, forma de pagamento.
Pronto!!!
Como contribuir?
se você quer contribuir com sua presença
Esse convite não é um convite para fazer você tirar o escorpião do Bolso, são mais de 30 horas de conteúdo.
Então, venha nos assistir.
Eu vou falar de Modernizando Aplicações Legadas com Containers na sexta-feira, dia 5 (jun/2020).
Começa 19:00, mas eu devo começar por volta de 20:30.
Mas, venha às 19, pois Renato Groffe (Microsoft MVP, MTAC) e Milton Camara Gomes (Microsoft MVP, MTAC) falarão sobre Application Insights em Application Insights: identificando problemas de performance em aplicações legadas com um mínimo de esforço.
Legal também, né?!
Como contribuir?
se você quer contribuir compartilhando
Basta encaminhar o link desse post.
Você pode compartilhar com seu chefe, com um amigo do trabalho. Com sua esposa, marido, namorada, namorado.
Se você tem alguém que queira assistir a alguma das palestras do evento… Compartilhe!
Se você tem alguém que queira doar… Compartilhe!
Se você tem algum gerente, diretor, head, CTO, CIO, CMO, CTO, CEO que eventualmente possa fazer sentido ajudar, repasse pra ele.
To esperando você na sexta!
Tá marcado então!
Então, bora lá?
Esse link vai te redirecionar para o Sympla onde você vai realizar sua inscrição.
Esse projeto nasceu de uma iniciativa de combate a SPAM. Spammers no telegram usam novas táticas todos os dias e corrida de gato-e-rato nos faz usar tecnologia para sanar e bloquear as iniciativas desses spammers.
Chegou a hora de avaliarmos o mercado, a situação na qual estamos e entender quais movimentos são possíveis. Entender friamente o que pode acontecer e quais são os movimentos possíveis nesse tabuleiro, nos permite antecipar ações para minimizar os efeitos de sermos atingidos de surpresa.
Neste episódio, em meio a uma pandemia do Coronavírus, o assunto ficou muito evidente, então falamos um pouco sobre o Home Office ou como é mais conhecido na atualidade: Trabalho remoto. Quais são as vantagens e desvantagens? Como se manter focado com tantas distrações? Que ferramentas e técnicas você pode utilizar para ser mais produtivo? Para descobrir isso e muito mais, ouça esse episódio no conforto da sua casa!
Para saber as respostas de tudo isso e muito mais, vem com a gente em mais um episódio.
Pessoal, vamos animar essa quarentena? Essa é a primeira vez que vamos fazer isso e vamos construir essa dinâmica juntos. Eu preciso da sua participação e sua ajuda para definir o roadmap, mas por hora vamos falar sobre tecnologia e ver no que dá!
Em janeiro de 2019 produzi um evento chamado Jornada Dev Hero. A jornada do desenvolvedor, mostrando o caminho que eu e diversos amigos trilhamos para chegar onde chegamos.
Eu achei o conteúdo tão rico e tão importante em termos de mensagem e capacidade de transformação que tinha reais planos de transformar em produto. Mas o momento é outro.
Essa jornada rolou em uma semana inteira de lives, foram 5, de segunda a sexta, e estou disponibilizando gratuitamente para você.
O impacto de uma Pandemia e do Isolamento Social
Não é brincadeira, isolamento social é uma necessidade. E assim eu me questionei sobre como poderia ajudar nesse período? O que eu poderia fazer para ajudar quem está em casa?
Eu cheguei a pensar em retransmitir algumas mensagens que pudessem esclarecer a situação e o avanço do coronavirus, já que eu tendo a ficar imerso no assunto, mas não passaria de um telefone sem fio, com chances de cometer gafes enormes no meio do caminho.
Mas eu não desisti da ideia de fazer alguma coisa, apenas desisti da ideia de que essa coisa fosse algo que informasse o status da epidemia. Acho que já tem gente demais falando disso! Na verdade eu sinto que muita gente não está habituada a ficar em casa, eu estou. Eu estou super tranquilo e mentalmente são, por enquanto. Mas conheço gente que já está surtando.
Foi vendo pessoas assim, quase surtando, que pensei no que estou começando a fazer: Diversão, Entretenimento e Aprendizado. Nós nos divertimos e conectamos quando estamos programando.
Então eu resolvi que, pelo menos nesse período de quarentena, quase que diariamente vou parar um tempo para fazer lives, live coding, e publicar alguns vídeos que nunca haviam sido publicados antes.
A ideia é conseguir oferecer uma opção de entretenimento que seja divertida e proveitosa, e dentro do nosso contexto técnico. Eu não sou a pessoa mais bem humorada da minha roda de amigos e portanto não fazia o menor sentido vir para a internet fazer piada. A chance de tomar um processo seria maior do que a probabilidade de alguém rir das piadas sem graças de tiozão!
Mas eu posso sim, resolver algumas questões que eu quero resolver da minha infra, do treinamento (docker definitivo), criando mais conteúdo para que você, por sua vez possa ter mais opções.
O que é a Jornada Dev Hero?
A jornada Dev Hero foi um evento em que eu abri as minhas estratégias de estudo o que eu uso no meu dia-a-dia. Tudo que faço que deu resultado estudando tecnologias e definindo meus próprios roadmaps de estudo.
Contei com presenças que me ajudaram com toda essa semana, incluindo Renato Groffe, Andre Secco, Tatiana Grego.
Foram algumas poucas dezenas de pedidos para que fosse apresentado novamente.
Neste episódio, o assunto é testes! Testes de unidade, integração, aceitação, carga e diversos outros. Qual a importância de testar sua aplicação? O que pode dar errado se você não fizer? Quais os tipos de teste? Quais os frameworks e ferramentas? Para saber isso e muito mais, aperta o play (sim, funciona, nós testamos).
Para saber as respostas de tudo isso e muito mais, vem com a gente em mais um episódio.
A gente está a tanto tempo nessa batida, que nem nos questionamos mais, mas há muita gente que ainda tem dúvidas ou precisa de argumentos. Enquanto de um lado sequer cogitamos fazer deploy de aplicações .NET Core no Windows, por outro há quem ainda tenha medo de sair do windows.
Parece um conceito banal, mas vou contar uma história atual, muito recente e vou contar o reflexo disso operacionalmente. É mais um daqueles casos em que a “boa vontade” é traduzida em processo e procedimentos equivocados que geram mais problemas do que soluções.
O contexto
Recentemente lancei um curso online. Resolvi abstrair toda a complexidade de lidar com meio de pagamento, distribuição, plataforma etc. Tudo isso foi abstraído ao usar uma plataforma all-in-one. Uma vez entregando o treinamento, tem um período de garantia, ok, e em um prazo de mais ou menos 30 dias você já pode sacar o dinheiro. Para sacar o valor, eu posso usar tanto pessoa física quanto pessoa jurídica. Para pessoa física há um limite, o valor que tenho a sacar é maior que esse limite. Portanto, faz todo sentido usar a pessoa jurídica. Ok? Pois é…
Você preenche um cadastro, submete dados da pessoa jurídica, dados financeiros (conta etc).
E aqui começa o problema!
Durante o processo de aprovação, não está claro se é um processo sistêmico ou manual, mas eles alteram o cadastro de PJ para PF, trocando CNPJ por CPF. Sim. Sabe-se Deus o por que, mas eles pegam os dados de PF que estão nos documentos (faz parte enviar dados de PF e PJ), e alteram meu cadastro. Quando eu volto na plataforma, eu vejo meu cadastro alterado, como se eu tivesse feito isso.
Uma vez alterado (por eles), eles aprovam o cadastro da conta! COM O CPF EM VEZ DO CNPJ.
Mas vem aí o efeito cascata dessa atrocidade! O pagamento entra em conflito por conta do CNPJ vs CPF. Nesse loop o pagamento nunca poderá ser realizado de fato.
Parece má vontade?
Sinceramente eu de coração acredito que um percentual muito pequeno das pessoas no mundo de fato são más, possuem esse tipo de maldade. Vontade de querer atrapalhar ou ferrar alguém. Por experiência lidando com os mais variados tipos de profissionais e pessoas, dos mais variados nichos, eu acredito muito mais no poder destrutivo da ignorância/desconhecimento.
Nesse caso a “boa vontade” produziu uma falha no processo, que por sua vez só pode ser percebida em outra etapa. O reflexo imediato é a insatisfação do cliente, mas calma… há mais sobre esse tema.
O DADO É DO USUÁRIO
Se você tem usuários que imputam informações no seu sistema, você não tem AUTORIDADE, para alterar os dados imputados pelo usuário. Não é papel nem da operação, nem do sistema ALTERAR dados imputados pelo usuário.
Você pode tratar, transformar, manipular e produzir novos dados a partir do dado do usuário, mas NUNCA alterá-lo. Nem você, nem teu sistema pode realizar uma edição no dado original, ele precisa ser mantido como foi imputado.
Isso se dá pela necessidade de confiabilidade.
Quando um dado que é alterado, como citei acima, gera desconfiança. Afinal, eu sequer tenho visibilidade a respeito do meu imput. Eu sequer consigo determinar, sem tirar prints, se eu errei no cadastro ou se eles alteraram meu dado. E para chegar a esas conclusão, sim: Eu tirei prints e guardei para comparar, na segunda vez que isso aconteceu (em menos de 15 dias).
O ponto é que não gera só a dúvida sobre o erro. Gera também a insegurança em torno da plataforma. Afinal, se eles tomam para si meu dado, ao ponto de alterá-lo deliberadamente, o que mais poderiam fazer?
Qual o nível de profissionalismo do serviço?
O dado é do usuário, e somente dele, e não pode ser alterado em sua origem.
É exatamente por estar pautado sob esse princípio que o banco recusa o pagamento!
O dado está errado? Recusa! Mas não tenta resolver à moda ……….. !
É assim que profissionais trabalham. O dado está correto, ok. Não está? Recusa-se!
Eu não espero que o banco olhe para o nome do titular da conta e por inferência corrija o dado.
Na verdade eu não espero que ninguém no processo altere os dados que imputei.
As premissas fundamentais e Conclusão
O dado é do usuário.
Usuário preencheu errado, valide e dê feedback. Não corrija o dado.
Você pode enriquecer um cadastro, não há nada de errado nisso, desde que não altere algo que o usuário imputou.
Quer automatizar algo? Crie um motherfucker botão, com uma confirmação, explicando o que acontecerá.
Sua iteração pode automatizar coisas enquanto o usuário consegue “recuperar” a ação, ou seja: Enquanto ele estiver olhando para o sistema, com capacidade de confirmar, recusar a alteração. Mas ele está ciente, ele está vendo a coisa acontecer.
Gravar algo da forma A e do dia para a noite, quando você volta para o sistema e encontra B no teu cadastro?! Isso não é admissível.
Agora é hora de mostrar como podemos tirar proveito dos contratos (interfaces) existentes para promover essa migração. Esse é o momento em que a “SOPA de LETRINHAS” ou melhor, os design patterns fazem sentido. Graças a eles, essa migração que poderia ser dolorosa e desastrosa, se torna algo fácil. Não é simples, mas exige pouco esforço. Esses patterns permitirão que o cliente tenha APENAS A FACTORY alterada nessa transição.
Não sei se você conhece WCF, rodando uma enquete eu percebi que uma parcela considerável sequer conhece WCF. Hoje vamos costurar o assunto com um outro post para que eu possa mostrar como fazer uma migração de WCF pra Web API no ASP.NET Core, rodando em containers Linux.
Nosso cenário de teste é super simples, uma API de Cálculo, que só tem uma operação de SOMA. Sem acesso a dados, uma API tão simples quanto isso.
Neste primeiro episódio da nossa segunda temporada, falamos um pouco sobre as “tretas” que aconteceram na comunidade em 2019, envolvendo artigos, opiniões e discussões sobre assuntos técnicos que achamos relevantes. Quer saber o que rolou? Então aperta o play!