Blog

  • Alerta Crítico: Vulnerabilidade no n8n exige atualização imediata

    Alerta Crítico: Vulnerabilidade no n8n exige atualização imediata

    O ecossistema de automação low-code acaba de receber um aviso importante. Uma falha crítica de segurança foi identificada no n8n, a popular plataforma de automação de workflows, colocando em risco milhares de servidores que utilizam a ferramenta para integrar APIs, bancos de dados e modelos de Inteligência Artificial. 

    A vulnerabilidade, catalogada como CVE-2025-68668, atingiu uma pontuação alarmante no índice CVSS, o que, na prática, significa que o risco é máximo e a exploração é relativamente simples. 

     Onde mora o perigo 

    O problema reside especificamente no Code Node configurado para Python. Até então, o n8n utilizava o ambiente Pyodide para tentar isolar a execução desse código em uma sandbox. No entanto, descobriu-se que esse isolamento é falho (CWE-693).  

    Um usuário autenticado, mesmo com permissões básicas de edição, pode inserir scripts maliciosos capazes de “saltar” para fora da caixa e executar comandos diretamente no servidor que hospeda o n8n. 

    Na prática, o impacto dessa vulnerabilidade vai muito além da execução de um comando isolado. Hoje, o n8n é o ‘cérebro’ de muitas operações de IA, concentrando chaves de API de alto custo e sensibilidade, como OpenAI, Anthropic e Google Gemini, além de credenciais de bancos de dados e sistemas de CRM. 

    Em minhas análises e experiências com a ferramenta, observo que a facilidade de criar workflows complexos muitas vezes mascara o risco: um invasor que ganha controle do servidor através dessa falha não apenas compromete a máquina física, mas herda todas as conexões autenticadas da empresa. Isso significa que ele poderia, em teoria, vazar bases de dados inteiras via LLMs ou utilizar seus créditos de IA para fins maliciosos, gerando um prejuízo financeiro e reputacional imensurável. 

     Quem está em risco? 

    Se você gerencia ou possui em sua empresa uma instância do n8n, a atenção deve ser redobrada se sua versão estiver entre a 1.0.0 e a 1.111.0. 

    O ataque não exige interação do usuário final… basta que um atacante com acesso à interface de edição crie um fluxo mal-intencionado. Uma vez que o comando é executado no host, o invasor pode:

    • Instalar backdoors para acesso futuro.
    • Ler e sequestrar arquivos sensíveis.
    • Realizar movimentação lateral na rede interna da empresa. 

     A Solução Definitiva 

    Atualize para a versão 2.0.0! A grande mudança não foi apenas um “remendo”, mas uma substituição completa na arquitetura de execução de Python. 

    Agora, o sistema utiliza um modelo de task runner nativo, que isola o código de maneira muito mais robusta. Para quem utiliza Docker ou Kubernetes, a recomendação é clara: reconstrua seus containers com as imagens mais recentes imediatamente. 

     Não consigo atualizar agora, e agora? 

    Se a sua operação impede uma atualização imediata para a versão 2.0, existem medidas de contenção (workarounds) que podem mitigar o risco: 

    • Desativar o Code Node: Use a variável de ambiente NODES_EXCLUDE para remover o n8n-nodes-base.code. 
    • Desabilitar o Python: Defina N8N_PYTHON_ENABLED=false (disponível desde a v1.104.0).
    • Isolamento via Runner: Ative o novo modelo de runner nativo através das variáveis N8N_RUNNERS_ENABLED e N8N_NATIVE_PYTHON_RUNNER. 

     Para mais informações, acesse:  

    https://www.cisoadvisor.com.br/falha-no-n8n-permite-execucao-arbitraria-de-comandos/ 

    https://github.com/n8n-io/n8n/security/advisories/GHSA-62r4-hw23-cc8v 

     Em um cenário onde a automação e a IA são os pilares da produtividade, a segurança da infraestrutura que sustenta essas ferramentas não pode ser negligenciada. O caso do CVE-2025-68668 serve como um lembrete de que, mesmo em ferramentas open-source consagradas, o isolamento de código é um desafio constante. 

     Descomplicando a Cibersegurança 

    Quer saber mais sobre Cibersegurança de uma forma simples e direta, construindo uma base de conhecimento que suporte os desafios da IA? 

    Conheça meu livro: “Descomplicando a Cibersegurança” e tenha acesso a um conteúdo essencial para gestores e profissionais que precisam de clareza para navegar no cenário de riscos digitais. 

    https://www.gonew.co/ebooks/descomplicando-a-ciberseguranca  

  • Empregabilidade em T.I. para Iniciantes: como se preparar para o mercado de trabalho ainda na universidade

    Empregabilidade em T.I. para Iniciantes: como se preparar para o mercado de trabalho ainda na universidade

    A empregabilidade em Tecnologia da Informação deixou de ser um assunto restrito ao final da graduação. Hoje, estudantes que conseguem boas oportunidades ainda durante a universidade têm algo em comum: começaram a se preparar muito antes do diploma.

    Este artigo inaugura uma coluna recorrente no iMasters sobre empregabilidade, carreira e entrada no mercado de T.I., com foco especial em quem está começando: alunos de graduação, cursos técnicos e pessoas em transição de carreira.

    O mercado de tecnologia mudou; e a formação precisa acompanhar

    Durante anos, o caminho parecia linear: estudar, se formar e, só então, procurar trabalho. No mercado atual de tecnologia, esse modelo se tornou insuficiente.

    Empresas buscam profissionais que demonstrem, desde cedo:

    • Capacidade de aprender continuamente
    • Experiência prática, ainda que inicial
    • Postura profissional
    • Entendimento do ambiente de trabalho
    • Comunicação técnica básica

    Esses fatores pesam tanto quanto, ou até mais do que, o diploma em si.

    O diploma ainda importa, mas não resolve tudo

    É importante deixar claro: a formação acadêmica continua relevante, especialmente para estágios, programas de trainee e processos formais.

    No entanto, na prática, recrutadores avaliam muito mais do que o histórico escolar. Eles buscam sinais de maturidade profissional, como:

    • Participação em projetos práticos
    • Envolvimento com a comunidade
    • Capacidade de resolver problemas reais
    • Organização e constância
    • Clareza ao explicar o que sabe e o que está aprendendo

    A empregabilidade em T.I. é construída ao longo do curso, não apenas ao final dele.

    O erro mais comum entre estudantes de Tecnologia da Informação

    Um erro recorrente entre iniciantes é concentrar toda a energia apenas em:

    • Notas
    • Provas
    • Aprovação nas disciplinas

    Esses elementos são importantes, mas representam apenas o nível básico esperado.

    O diferencial competitivo surge quando o estudante:

    • Aplica o conhecimento fora da sala de aula
    • Constrói projetos paralelos
    • Participa de desafios práticos
    • Desenvolve autonomia técnica

    Esperar “estar pronto” para começar costuma ser o maior atraso.

    Como se preparar para o mercado ainda durante a graduação

    1. Projetos práticos desde os primeiros semestres

    Projetos pessoais são um dos principais fatores de empregabilidade para iniciantes em T.I.

    Eles não precisam ser complexos. Bons exemplos incluem:

    • Aplicações CRUD simples
    • Pequenos sistemas web
    • Automações para tarefas reais
    • Scripts de organização ou análise de dados
    • Dashboards básicos

    Projetos bem concluídos demonstram:

    • Raciocínio lógico
    • Capacidade de aprendizado
    • Disciplina
    • Responsabilidade técnica

    No mercado, execução consistente vale mais do que ideias grandiosas não finalizadas.

    2. Hackathons, desafios e maratonas técnicas

    Hackathons oferecem uma simulação acelerada do ambiente profissional:

    • Trabalho em equipe
    • Prazos curtos
    • Tomada de decisão
    • Definição de prioridades
    • Comunicação clara

    Mesmo quando o resultado final não é perfeito, a experiência adquirida tem alto valor em processos seletivos, especialmente para vagas de estágio e júnior.

    3. Eventos, workshops e comunidades de tecnologia

    Grande parte das oportunidades em tecnologia surge primeiro em redes de relacionamento.

    Participar de:

    • Eventos técnicos
    • Workshops
    • Meetups
    • Comunidades online e presenciais

    ajuda o estudante a:

    • Entender melhor o mercado
    • Aprender fora do currículo formal
    • Criar conexões profissionais
    • Ganhar visibilidade

    Empregabilidade também é presença.

    4. Habilidades básicas que fazem diferença na prática

    Algumas competências simples são frequentemente ignoradas, mas impactam diretamente a contratação:

    • Uso adequado de Git e GitHub
    • Leitura e interpretação de documentação
    • Escrita de README claros
    • Comunicação técnica objetiva
    • Capacidade de apresentar um projeto em poucos minutos

    Um profissional iniciante que se comunica bem se torna mais fácil de integrar em times reais.

    5. Construção de presença profissional desde cedo

    LinkedIn não deve ser visto apenas como um repositório de currículo.

    Mesmo estudantes sem experiência formal podem compartilhar:

    • Aprendizados recentes
    • Projetos em andamento
    • Participação em eventos
    • Reflexões técnicas iniciais

    Mostrar evolução constante gera credibilidade e abre portas ao longo do tempo.

    Um caminho prático para quem está começando

    Para quem ainda se sente perdido, um plano simples e realista inclui:

    1. Escolher uma área-base em tecnologia
    2. Desenvolver pequenos projetos com regularidade
    3. Participar de eventos ao longo do ano
    4. Documentar aprendizados e projetos
    5. Construir relacionamentos profissionais

    Não se trata de velocidade, mas de consistência ao longo do curso.

    Lembre-se

    A universidade é um pilar fundamental da formação em Tecnologia da Informação, mas não pode ser encarada como o único fator de empregabilidade.

    No mercado atual, quem se destaca é o estudante que:

    • Aprende continuamente
    • Aplica o conhecimento
    • Se envolve com a comunidade
    • Constrói sinais claros de maturidade profissional

    Empregabilidade não começa no diploma. Começa na postura e na ação diária.

    Próximos artigos da coluna

    Nos próximos textos desta coluna no iMasters, vamos aprofundar temas como:

    • Como montar um portfólio técnico do zero
    • O que recrutadores realmente avaliam em vagas de estágio
    • Como escolher a primeira área em T.I.
    • Erros comuns em entrevistas técnicas para iniciantes
    • Como transformar projetos acadêmicos em ativos de carreira
  • Entre hypes e flops: o verdadeiro balanço tecnológico de 2025

    Entre hypes e flops: o verdadeiro balanço tecnológico de 2025

    2025 foi um ano em que a tecnologia avançou com velocidade, mas também mostrou seus próprios limites. Os agentes de IA autônomos, que entraram em 2025 como uma das maiores apostas do setor, deram passos importantes, ainda que não tenham alcançado, de maneira estável, tudo aquilo que a empolgação inicial fazia parecer iminente.

    Essas soluções, capazes de automatizar tarefas, colaborar com outros agentes e executar ações em nosso nome, já evidenciam um potencial enorme, mas ainda precisam evoluir em confiabilidade e controle para funcionarem com segurança em larga escala. Mesmo assim, o ano mostrou que o caminho está aberto: o “quase” de hoje soa mais como amadurecimento do que como decepção, e a tendência é avançarmos ainda mais nessa direção.

    Isso não significa, porém, que a inteligência artificial tenha decepcionado. Muito pelo contrário: 2025 foi o ano em que a IA se tornou incontornável. Usamos mais, discutimos mais e dependemos mais dessas ferramentas do que nunca. As aplicações de texto, imagem, vídeo e código se ampliaram a ponto de transformar rotinas de trabalho, processos educacionais e até o consumo digital. Mesmo para quem vive o setor diariamente, ficou evidente que este foi um período fora da curva para a indústria tecnológica.

    Paralelamente a esse crescimento, vimos surgir uma preocupação cada vez mais urgente: como garantir autenticidade e combater a desinformação em um mundo moldado por conteúdos sintéticos? Isso acelerou a criação de estruturas de governança para IA, com foco em ética, transparência, rastreabilidade e responsabilidade corporativa. Ao mesmo tempo, a corrida pela superinteligência dominou debates técnicos e regulatórios, evidenciando o desafio de equilibrar inovação com direitos legais, autorais e sociais (áreas que, ainda hoje, caminham mais devagar que a tecnologia).

    Blockchain, hiperautomação e a transformação silenciosa das empresas

    Enquanto algumas tendências ficaram aquém do hype, outras amadureceram de forma visível. O blockchain, por exemplo, deixou de ser observado como experimento e passou a operar mais ativamente no sistema financeiro. Em 2025, bancos e fintechs incorporaram stablecoins às transferências internacionais, reduzindo prazos e custos. O que antes era tratado como curiosidade tem virado infraestrutura.

    A hiperautomação seguiu o mesmo caminho. Ela ultrapassou o discurso e começou a remodelar cadeias operacionais inteiras, eliminando tarefas manuais e fortalecendo decisões guiadas por dados em tempo real. Do setor financeiro às indústrias e órgãos públicos, a palavra de ordem passou a ser eficiência. Empresas que entenderam isso cedo saíram na frente  e desenham um cenário em que gestão e tecnologia já são praticamente indistinguíveis.

    Os apagões digitais e o alerta sobre a resiliência da internet

    Se por um lado 2025 trouxe maturidade tecnológica, por outro expôs fragilidades importantes da nossa infraestrutura digital. A queda da Cloudflare em novembro derrubou parte significativa da internet mundial, incluindo redes sociais a serviços corporativos, expondo o tamanho da dependência que temos de algumas poucas empresas responsáveis por manter essa engrenagem funcionando. Quando um componente como esse falha, todo o ecossistema sente.

    Semanas antes, a AWS já havia enfrentado seu próprio colapso, provocado por um bug no DynamoDB. O incidente afetou dezenas de plataformas e durou quase um dia inteiro, interrompendo operações críticas usadas por milhões de pessoas. Esses episódios se somam a eventos recentes, como o apagão de 11 horas da AT&T e a falha da CrowdStrike no ano anterior, que paralisou hospitais, cancelou voos e gerou prejuízos bilionários. O padrão é claro: estamos apostando demais em nós mesmos e pouco em alternativas mais distribuídas.

    Mas há um lado positivo. Cada grande falha acelera discussões sobre arquitetura descentralizada, redundância e diversificação de provedores. A pressão por uma internet mais resiliente está levando empresas a repensar suas estruturas e a investir em infraestruturas menos vulneráveis. No longo prazo, essa reação pode nos conduzir a um ecossistema digital mais robusto e preparado para o ritmo das inovações.

    O balanço final: um ano intenso, mas promissor

    Assim, 2025 termina como um período marcado por contrastes altamente produtivos. De um lado, a IA segue redefinindo nossa forma de trabalhar, aprender e criar. Do outro, os apagões cibernéticos ainda nos lembram o quanto dependemos de sistemas que podem falhar a qualquer momento. Ainda assim, o saldo é animador.

    Se tudo o que vimos este ano foi apenas o aquecimento, 2026 chega com a promessa de ser ainda mais acelerado, daquelas temporadas em que mal conseguimos piscar entre um avanço e outro. E é justamente isso que mantém vivo o entusiasmo pelo que estamos construindo: um futuro tecnológico potente, complexo e, acima de tudo, em constante evolução.

  • Como crio controles que funcionam: um método simples de governança e projetos

    Como crio controles que funcionam: um método simples de governança e projetos

    1. Quando percebi que o problema não era o controle, mas a forma como ele era feito

    Em um dos meus primeiros projetos ligados a compliance bancário, lembro de abrir um catálogo de controles e pensar: “isso parece mais uma planilha feita para satisfazer auditoria do que para ajudar alguém de verdade”.

    Era um documento enorme, cheio de siglas, status atualizados por obrigação e linhas que ninguém sabia explicar no dia a dia.
    Com o tempo, percebi que o valor de um catálogo de controles está em ser vivo, prático e conectado ao negócio. Ele deve ajudar as pessoas a tomar decisões melhores, não apenas existir como vitrine de conformidade.

    Quando comecei a atuar mais perto das áreas operacionais, entendi que montar um catálogo útil é menos sobre técnica e mais sobre diálogo. No fim, todo controle precisa responder a uma pergunta simples: como isso reduz risco real dentro do processo?

    2. O cenário: entre o risco e a operação

    Em um banco, cada controle existe para proteger um processo crítico, seja o onboarding de clientes, o monitoramento de transações ou a gestão de alertas de AML.

    Certa vez, durante uma revisão de controles de primeira linha, o time de operações me chamou para entender por que o controle de data quality parecia tão distante da realidade.
    Na planilha, o controle dizia: “verificar a integridade dos dados mestres a cada ciclo mensal”. Mas ninguém sabia o que isso significava na prática.

    Sentamos juntos e traduzimos para algo que fizesse sentido operacional:
    “comparar o campo source of funds do KYC com o cadastro do sistema Sigma e validar divergências acima de 5%”.

    A mudança foi imediata.

    O mesmo controle, que antes era só texto, virou um instrumento de decisão. A área conseguia medir, corrigir e mostrar resultado.
    Na semana seguinte, outros times começaram a pedir o mesmo tipo de clareza. Foi quando percebi que o segredo não está em listar controles, mas em torná-los aplicáveis.

    3. O que faz um catálogo de controles ser realmente útil

    Depois de montar e revisar dezenas deles, aprendi alguns princípios que sempre me guiam:

    1. Cada controle precisa responder a um risco específico.
      Se o risco é “clientes com documentação inconsistente”, então o controle deve atacar exatamente isso e com evidência clara.
    2. O dono do controle precisa entender o porquê.
      O melhor controle é aquele que o analista sente como parte natural do seu trabalho. Por isso, sempre descrevo impacto, frequência e quem é responsável.
    3. Evidência tem que ser simples de coletar.
      Se o controle depende de dez prints e três e-mails, ele morre. Automatizar a evidência, nem que seja só o básico, é o que mantém o catálogo vivo.
    4. O catálogo deve se conectar à jornada do risco.
      Em programas estruturados, cada controle se conecta a um pilar (Screening, Monitoring, Data Quality etc.) e ao tipo de teste da segunda linha.
      Assim, o catálogo conversa com o restante da governança, em vez de viver isolado.
    5. Atualização é processo, não evento.
      Catálogo de controles não se revisa uma vez por ano. Ele evolui com o produto, com o sistema e com o comportamento dos clientes.

    No fim, um bom catálogo é quase como um mapa vivo da governança: mostra onde estão as proteções, o que está funcionando e onde há brechas para o risco passar.

    Hoje, quando alguém me pede ajuda para montar um catálogo de controles, costumo responder:
    vamos começar entendendo o problema que você quer evitar.
    Só depois disso é que vale abrir o Excel ou a ferramenta.

  • Aplicações Java inteligentes usando Spring AI e Gemini

    Aplicações Java inteligentes usando Spring AI e Gemini

    Neste tutorial, desenvolveremos um aplicativo cliente de bate-papo simples usando o Spring AI integrado ao Google Gemini, um poderoso modelo de linguagem do Google. Para desenvolvedores Java familiarizados com o framework Spring, usar o Spring AI facilita a criação de aplicativos inteligentes sem a necessidade de dependência de fornecedor.

    Criaremos uma aplicação semelhante àquela apresentada no tutorial anterior:

    Crie um novo projeto Spring Boot.

    Crie um novo projeto Spring Boot usando o Spring Initializr (https://start.spring.io/) ou sua IDE.

    Seleções:

    • Projeto: Maven
    • Idioma: Java
    • Spring Boot: 3.4.1 (selecione a versão mais recente)
    • Insira os metadados do seu projeto (nome do pacote, nome do artefato) conforme desejado.
    • Java: 23 (ou a versão mais recente disponível)

    Dependências:

    • Spring WebPara criar endpoints REST.
    • Vertex AI GeminiPara integração com os modelos de linguagem do Google.

    Verifique o arquivo pom.xml

    Certifique-se de que seu pom.xmlprojeto inclua as dependências necessárias para a integração com o Google Gemini:

    <dependencies>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
      </dependency>
      <dependency>
        <groupId>org.springframework.ai</groupId>
        <artifactId>spring-ai-vertex-ai-gemini-spring-boot-starter</artifactId>
      </dependency>
    </dependencies>

    A dependência spring-ai-vertex-ai-gemini-spring-boot-starterfornece os componentes necessários e a autoconfiguração para usar a API do Gemini em uma aplicação Spring Boot, semelhante ao que spring-ai-openai-spring-boot-starteré fornecido para o OpenAI.

    Configurando o projeto

    Ao usar a IA do Google em um projeto Spring AI, precisamos configurar duas propriedades no application.propertiesarquivo (ou YAML):

    spring.ai.vertex.ai.gemini.projectId=${GEMINI_PROJECT_ID}
    spring.ai.vertex.ai.gemini.location=us-east4

    Embora o ID do projeto possa ser compartilhado, é uma boa prática também passar esse valor como uma variável de ambiente caso você esteja usando projetos diferentes para ambientes diferentes (DEV, QA, PROD).

    Então, como obtemos essa informação?

    Primeiro, você precisa criar uma conta do Google Cloud. Se ainda não tiver uma, você pode obter US$ 300 em créditos gratuitamente para começar: https://cloud.google.com/gcp

    Em seguida, acesse o console e crie um novo projeto, caso ainda não tenha um no Console do Google Cloud :

    Após a criação do projeto, você precisará:

    1. Ative a cobrança para o projeto.
    2. Habilite a API Vertex para o projeto clicando em Enable all Recommended APIs:

    Em seguida, precisaremos instalar a ferramenta de linha de comando gcloud.

    Instalando a CLI do Google Cloud

    Siga o passo a passo listado na documentação para instalar gcloudlocalmente: https://cloud.google.com/sdk/docs/install-sdk.

    Após a instalação, inicialize a CLI:

    ./google-cloud-sdk/bin/gcloud init

    Faça login e selecione o projeto que você criou para usar com o Gemini:

    Pick cloud project to use:
     [1] [my-project-1]
     [2] [my-project-2]
     ...
     Please enter your numeric choice:

    Se você tiver apenas um projeto, gcloud initele será selecionado automaticamente.

    Anote o ID do seu projeto para usar no arquivo de propriedades e selecione também a região mais próxima de você. Você pode encontrar todos os locais disponíveis aqui: https://cloud.google.com/gemini/docs/locations.

    Com a configuração concluída, estamos prontos para começar a programar.

    Criando a classe SimpleChatService

    Para começar, vamos criar um SimpleChatServiceobjeto que contenha o ChatClientmodelo e um método que podemos invocar a partir do controlador:

    import org.springframework.ai.chat.client.ChatClient;
    import org.springframework.stereotype.Service;
    
    @Service
    public class SimpleChatService {
    
        private final ChatClient chatClient;
    
        public SimpleChatService(ChatClient.Builder chatClientBuilder) {
            this.chatClient = chatClientBuilder.build();
        }
    
        public String chat(String message) {
            return this.chatClient.prompt()
                    .user(message)
                    .call()
                    .content();
        }
    }

    Onde:

    • Oferece ChatClientuma API para comunicação com um modelo de IA. Suporta modelos de programação síncrona e de fluxo contínuo.
    • O objeto ChatClienté criado ChatClient.Builder. Você pode obter uma ChatClient.Builderinstância autoconfigurada para qualquer ChatModel do Spring Boot ou criar uma programaticamente.
    • O método chat methodrecebe uma solicitação message. Usaremos o Promptobjeto da solicitação ChatCliente definiremos a entrada do usuário, passando a mensagem recebida. O call()método envia uma solicitação ao modelo de IA e o content()método retorna a resposta do modelo de IA como uma string.

    Observe que o código é exatamente o mesmo do tutorial anterior. Novamente, usar o Spring AI facilita a criação de aplicativos inteligentes sem a dependência de um único fornecedor.

    Criando o GoogleGeminiChatController

    Crie um controlador e adicione o seguinte código a ele:

    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RequestBody;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    @RequestMapping("/api/google-gemini")
    public class GoogleGeminiChatController {
    
        private final SimpleChatService simpleChatService;
    
        public GoogleGeminiChatController(SimpleChatService simpleChatService) {
            this.simpleChatService = simpleChatService;
        }
    
        @PostMapping("/chat")
        public ChatResponse chat(@RequestBody String message) {
            return new ChatResponse(this.simpleChatService.chat(message));
        }
    }

    Este controlador processa as requisições POST para o /api/google-gemini/chatendpoint, extraindo a mensagem do corpo da requisição.

    Isso ChatResponseé um recordsinal para que possamos formatar a saída:

    public record ChatResponse(String message) {}

    6: Testando via requisição HTTP

    Se você estiver usando o IntelliJ IDEA Ultimate , pode criar um arquivo api.httpcom o seguinte conteúdo (isso é muito conveniente para testes de requisições HTTP):

    POST http://localhost:8080/api/google-gemini/chat
    Content-Type: application/json
    
    {
        "message": "Tell me a joke"
    }

    Alternativamente, você também pode usar o Postman ou ferramentas similares para simular a requisição HTTP.

    Se enviarmos a solicitação, poderemos obter uma saída semelhante à seguinte:

    {
      "message": "Why don't scientists trust atoms? \n\nBecause they make up everything! \n \nLet me know if you'd like to hear another one! 😄  \n"
    }

    Resumo

    Você criou com sucesso um aplicativo Java básico usando Spring AI e Google Gemini. Explore mais consultando [link para o guia/plataforma].

    • A documentação oficial do Spring AI: https://docs.spring.io/spring-ai/reference/api/chat/google-vertexai.html
    • E a documentação da API Google Gemini: https://ai.google/

    Boa programação!

  • Novidades .NET 10: novas formas de uso do .NET CLI

    Novidades .NET 10: novas formas de uso do .NET CLI

    Com o .NET 10 a linha de comando também passou por melhorias, incluindo novos aliases para a execução de alguns comandos. Essas mudanças envolvem uma nova maneira de execução de comandos em que o .NET CLI ( dotnet ) aconteceu por um nome + o verbo que identifica a ação , muito embora a forma original ainda continue válida (iniciando por um verbo, como em dotnet add ).

    A seguir estão as novas formas, seguidas pelos comandos em sua maneira original:

    • dotnet package add , que equivale a dotnet add package
    • lista de pacotes dotnet , equivalente a um pacote de lista dotnet
    • dotnet package remove , também equivalente a dotnet remove package
    • dotnet reference add , que equivale a dotnet add reference
    • lista de referências dotnet , equivalente a uma lista de referências dotnet
    • dotnet reference remove , também equivalente a dotnet remove reference

    O motivo dessas mudanças, de acordo com a documentação, é tornar as instruções de linha de comando mais legíveis e consistentes em scripts ou documentações.

    Na imagem a seguir podemos observar um uso do comando dotnet package add (uma nova forma para dotnet add package ):

  • 3 Competências Essenciais para Programar com IA em 2026

    3 Competências Essenciais para Programar com IA em 2026

    A gente sempre fala sobre como a tecnologia e as linguagens de programação estão sempre mudando né?  Mas dessa vez estamos vivendo uma virada histórica, e é obvio que eu estou falando dela mesma, a IA!. 

    Nos próximos anos, IAs vão gerar grande parte do código chato e repetitivo (95% nos próximos 5 anos segundo o GitHub). Parece assustador? Só à primeira vista. Na prática, isso abre espaço para um tipo de trabalho muito mais estratégico e interessante.

    Máquinas são velozes e impecáveis na sintaxe, mas continuam péssimas em criatividade, contexto e visão sistêmica. E é exatamente aí que você pode brilhar. ✨

    Estamos migrando de um modelo baseado em digitar código para um modelo centrado em orquestrar soluções. Não importa quantas linhas você escreve em um dia. Importa se você entende o problema, desenha boas arquiteturas e sabe guiar as ferramentas de IA como uma regente experiente (artístico né? haha). 

    Para chegar lá, vou deixar aqui três habilidades vão te colocar na frente agora, não só no futuro (até porque né, quem sabe do futuro?).

    Habilidade 1: Domine a engenharia de prompt (contexto!)

    IA não lê mentes. Ainda bem, né? Mas isso significa que, se você der contexto pela metade, vai receber código genérico ou alucinado, então mais importante do que pedir, é como você pede.

    Ferramentas como GitHub Copilot Spaces vieram justamente para resolver esse problema. Em vez de tratar cada pergunta como se fosse a primeira vez, você cria ambientes onde a IA entende seu projeto, seu estilo e suas regras.

    Como aplicar hoje:

    • Crie espaços de contexto dedicados para cada projeto.
    • Alimente a IA com tudo que importa: documentação, arquivos reais, padrões internos.
    • Peça com precisão. Não é “crie uma query SQL”, é “crie uma query SQL usando o esquema que anexei, filtrando usuários ativos”.
    • Compartilhe esse contexto com sua equipe. Ensinar a IA não precisa ser um trabalho solitário.

    Habilidade 2: Exercite o julgamento crítico

    Já que a IA consegue gerar sintaxe com facilidade, o que mais importa agora é a sua capacidade de avaliar, rejeitar, adaptar e alinhar as soluções.

    A IA pode revisar seu PR e apontar problemas óbvios, mas a decisão final é sua, você é a pessoa que conhece a arquitetura, o cliente, a realidade da equipe e o futuro do produto.

    Como fortalecer esse olhar:

    • Use IA como par de revisão antes de envolver humanos.
    • Questione sempre. A IA sugere padrões, mas raramente entende as exceções que quebram tudo amanhã.
    • Personalize regras no projeto. Um simples arquivo copilot-instructions.md pode transformar a qualidade das sugestões.

    Habilidade 3: Aprenda para Sempre

    A vida útil das skills técnicas encurtou. Hoje você domina um framework; amanhã ele vira um meme. No mundo assistido por IA, o conhecimento estático vale menos do que a capacidade de aprender rápido.

    Para se manter relevante:

    • Reforce fundamentos de IA. Se ainda não domina Python, comece daí (Autocrítica: Pachi de 2026, aprenda Python). Entenda o básico de frameworks de ML e o que rola por trás dos modelos que você usa.
    • Aprenda NLP e princípios de LLMs. Quanto mais você entende, melhores ficam seus prompts.
    • Crie prova social. Contribua em open source, escreva, mostre seu processo. Aprender em público te destaca.
    • Tire certificações em ferramentas de IA. Não pelos diplomas, mas pelo pra mostrar que você está se atualizando de verdade.

    O futuro é promissor para quem se move agora

    Inspirador esse subtitulo né? Até parece que foi o GPT que escreveu haha Mas fui eu, eu sou inspiradora.

    Programação assistida por IA não elimina o humano (ainda rs) mas aumenta a importância de quem pensa bem, sabe se comunicar e enxerga o todo. O mercado vai continuar mudando rápido, mas quem combina IA com criatividade, contexto e aprendizado contínuo acompanha e se mantém relevante.

    O código continua importante, mas a sua visão estratégica vale muito mais do que qualquer linha escrita às pressas por uma máquina.

    Quer dar o próximo passo?

    Se você quer realmente se preparar para esse novo cenário da programação, tem uma oportunidade perfeita rolando agora: o Bootcamp GitHub Copilot – Código na Prática, da DIO em parceria com o GitHub. É gratuito, já está com inscrições abertas.

    É a chance de aprender, na prática, como desenvolver com IA ao seu lado: criar APIs, refatorar código com segurança, gerar testes automatizados e construir projetos reais que aumentam sua produtividade de verdade.
    Bora garantir sua vaga enquanto ainda tem?

  • DevSecOps encontra DevSeQOps: a revolução quântica das assinaturas digitais com um Q a mais

    DevSecOps encontra DevSeQOps: a revolução quântica das assinaturas digitais com um Q a mais

    Durante anos, a segurança digital se apoiou em um dogma simples: se é matematicamente difícil, é seguro. Mas e se, de repente, o que era impossível se tornasse trivial? É isso que o avanço da computação quântica promete — ou ameaça — fazer.

    Os algoritmos que sustentam praticamente toda a infraestrutura de confiança do mundo digital — RSA, ECDSA, Ed25519 — estão com os dias contados. E para quem vive no universo DevSecOps, isso significa uma coisa: chegou a hora de adicionar um Q a mais nas suas pipelines.

    O Q que muda tudo

    O “Q” de quântico não é apenas uma letra a mais. É uma nova variável na equação da segurança.

    Computadores quânticos não são apenas máquinas mais rápidas; eles pensam diferente. Enquanto um computador clássico tenta quebrar uma chave de criptografia testando bilhões de combinações sequenciais, um quântico explora milhões de estados simultâneos — e encontra o caminho direto.

    Em outras palavras, o que antes levava séculos de tentativa e erro agora pode ser resolvido em minutos. Quando isso acontecer, toda assinatura digital clássica poderá ser adulterada, e toda comunicação “segura” poderá ser aberta como um livro.

    O novo campo de batalha

    O NIST, órgão americano que define padrões globais de segurança, encerrou em 2024 uma das maiores corridas científicas da história moderna: o processo de padronização da criptografia pós-quântica.

    O resultado foi uma nova geração de algoritmos projetados não apenas para resistir aos ataques clássicos, mas também aos ataques de computadores quânticos.

    Entre eles, o destaque vai para:

    ⚫CRYSTALS-Dilithium, o novo padrão para assinaturas digitais;
    ⚫ CRYSTALS-Kyber, para troca de chaves seguras;
    ⚫ e Falcon e SPHINCS+, para cenários específicos que exigem assinaturas mais compactas ou baseadas em hashes.

    Esses nomes vão se tornar tão comuns quanto “RSA” e “AES” foram um dia. São as novas fundações da confiança digital.

    O impacto nas pipelines e na cultura DevSecOps

    Para quem vive o ciclo contínuo de build, teste, release e monitoramento, a segurança já não é mais uma etapa — é um DNA. E esse DNA agora precisa evoluir.

    A assinatura de builds, a validação de artefatos e a publicação de imagens Docker dependem de algoritmos clássicos. Eles ainda funcionam, mas têm um prazo de validade criptográfico.

    É aqui que entra o modelo híbrido, o primeiro passo da adaptação quântica: combinar uma assinatura tradicional com uma assinatura pós-quântica sobre o mesmo artefato.

    Hoje, você assina com Ed25519. Amanhã, adiciona o Dilithium no mesmo pipeline. O resultado é um build duplamente confiável — compatível com o presente, mas pronto para o futuro.

    Exemplo prático: pipeline híbrida (clássica + pós-quântica)

    A seguir, um exemplo completo de pipeline GitLab CI/CD que implementa a abordagem híbrida: ela gera um manifesto de hashes, assina com RSA-3072 (clássico) e depois com Dilithium3 (pós-quântico) usando liboqs-python.

    O resultado é um bundle JSON contendo ambas as assinaturas, pronto para auditoria e validação.

    Estrutura do projeto

    Script de assinatura PQC — ci/sign_pqc.py

    import base64, hashlib, os, sys
    from oqs import Signature
    
    ALG = os.environ.get("OQS_SIG_ALG", "Dilithium3")
    ART = os.environ.get("ARTIFACT_PATH", "artifact/.filehashes")
    
    with open(ART, "rb") as f:
        data = f.read()
    digest = hashlib.sha256(data).digest()
    
    PQC_SK_B64 = os.environ.get("PQC_SK_B64")
    PQC_PK_B64 = os.environ.get("PQC_PK_B64", "")
    
    if not PQC_SK_B64:
        print("PQC_SK_B64 não definida", file=sys.stderr)
        sys.exit(2)
    
    sk = base64.b64decode(PQC_SK_B64)
    pk = base64.b64decode(PQC_PK_B64) if PQC_PK_B64 else None
    
    sig = Signature(ALG, secret_key=sk)
    signature = sig.sign(digest)
    sig_b64 = base64.b64encode(signature).decode()
    
    print(sig_b64)  # stdout: assinatura PQC em base64
    
    if pk:
        with open("artifact/.filehashes.dilithium.pub", "wb") as f:
            f.write(base64.b64encode(pk))

     

    Pipeline GitLab — .gitlab-ci.yml

    image: python:3.11-slim
    
    stages:
      - package
      - sign
      - bundle
    
    variables:
      CODE_DIR: "app"
      OQS_SIG_ALG: "Dilithium3"
    
    package_artifact:
      stage: package
      image: alpine:latest
      before_script:
        - apk add --no-cache tar coreutils
      script:
        - mkdir -p artifact/
        - find "$CODE_DIR" -type f ! -name "artifact/.filehashes" -exec sha256sum {} \; > artifact/.filehashes
      artifacts:
        paths:
          - artifact/.filehashes
    
    sign_classic:
      stage: sign
      image: alpine:latest
      needs: [package_artifact]
      before_script:
        - apk add --no-cache openssl coreutils
        - printf '%s' "$CLASSIC_SK_PEM" > classic_sk.pem
      script:
        - ARTIFACT_PATH="artifact/.filehashes"
        - openssl dgst -sha256 -sign classic_sk.pem -out "$ARTIFACT_PATH.rsa.sig" "$ARTIFACT_PATH"
        - base64 -w0 "$ARTIFACT_PATH.rsa.sig" > "$ARTIFACT_PATH.rsa.b64"
        - sha256sum "$ARTIFACT_PATH" | awk '{print $1}' > "$ARTIFACT_PATH.sha256"
      artifacts:
        paths:
          - artifact/.filehashes.*
        expire_in: 1 week
    
    sign_pqc:
      stage: sign
      image: python:3.11-slim
      needs: [package_artifact]
      before_script:
        - apt-get update && apt-get install -y --no-install-recommends git build-essential cmake ninja-build pkg-config libssl-dev
        - pip install --no-cache-dir liboqs-python==0.14.0
      script:
        - python ci/sign_pqc.py > artifact/.filehashes.dilithium.sig.b64
      artifacts:
        paths:
          - artifact/.filehashes.dilithium.*
        expire_in: 1 week
    
    bundle_signatures:
      stage: bundle
      image: alpine:latest
      needs:
        - sign_classic
        - sign_pqc
      before_script:
        - apk add --no-cache jq coreutils
      script:
        - ART="artifact/.filehashes"
        - HASH_HEX=$(cat "$ART.sha256")
        - SIG_CLASSIC_B64=$(cat "$ART.rsa.b64")
        - SIG_PQC_B64=$(cat "$ART.dilithium.sig.b64")
        - PK_PQC_B64=$(cat "$ART.dilithium.pub" 2>/dev/null || echo "")
        - |
          jq -n \
            --arg hash "$HASH_HEX" \
            --arg sig_classic_b64 "$SIG_CLASSIC_B64" \
            --arg sig_pqc_b64 "$SIG_PQC_B64" \
            --arg pk_pqc_b64 "$PK_PQC_B64" \
            '{
              hash_sha256: $hash,
              signatures: [
                { scheme: "classic", algorithm: "RSA-PSS-SHA256", signature_b64: $sig_classic_b64 },
                { scheme: "pqc", algorithm: "Dilithium3", signature_b64: $sig_pqc_b64, public_key_b64: $pk_pqc_b64 }
              ]
            }' > artifact/.filehashes.sigbundle.json
      artifacts:
        paths:
          - artifact/.filehashes.sigbundle.json

     

    Esse modelo demonstra o princípio da assinatura híbrida: duas camadas de confiança coexistindo no mesmo artefato.
    Hoje, a assinatura clássica garante compatibilidade. Amanhã, a pós-quântica garantirá a sobrevivência.

    O DevSecOps do futuro é pós-quântico

    A chegada da computação quântica é inevitável — mas a perda da segurança não precisa ser.

    Aqueles que incorporarem desde já práticas e ferramentas pós-quânticas terão uma vantagem gigantesca quando o colapso da criptografia clássica começar.

    Isso vai além da tecnologia. É sobre preparação.

    É sobre escrever código que sobreviva ao tempo — e ao avanço da ciência. Cada build assinado com Dilithium, cada chave migrada para um padrão resistente a qubits, é um investimento no amanhã.

    Conclusão — o commit que vai atravessar o tempo

    A revolução quântica não será um “dia zero” de caos — será uma transição silenciosa. Os sistemas preparados continuarão funcionando. Os outros, simplesmente, deixarão de ser confiáveis.

    Adicionar um “Q” ao seu DevSecOps não é uma tendência futurista. É um movimento inevitável de quem entende que segurança não é apenas reagir a ameaças, mas antecipar o futuro.

    A próxima revolução da segurança digital já começou — e ela assina seu código em duas dimensões: a clássica e a quântica.

  • O ano em que a engenharia de software mudou de patamar: o que aprendemos em 2025 e o que esperar de 2026

    O ano em que a engenharia de software mudou de patamar: o que aprendemos em 2025 e o que esperar de 2026

    2025 foi o ano em que percebi que não havia mais volta

    Em março, quando revisei o backlog de um projeto, notei algo que me fez parar por alguns segundos. Um trabalho que normalmente consumia semanas, a refatoração completa de um módulo, estava praticamente resolvido com apoio da IA. Não foi automático e não foi perfeito, mas foi a primeira vez em que senti que o meu papel dentro do time tinha mudado de fato.

    De uma hora para outra, eu já não era apenas quem escrevia o código. Eu me tornava a pessoa que garante coerência, conecta decisões e ajusta o caminho. Em vários times que acompanhei ao longo do ano, a sensação era a mesma. A gente deixou de ser mão de obra e virou pensamento crítico aplicado. 2025 consolidou essa virada.

    O desenvolvimento virou uma atividade híbrida

    Quase ninguém mais começa um arquivo do zero. A IA virou companhia constante, desde a primeira linha de um teste até a sugestão de estrutura para um novo serviço. Só que esse movimento não reduziu o valor do desenvolvedor. Pelo contrário. Ele destacou onde realmente fazemos diferença: leitura de contexto, decisões de arquitetura, interpretação de impacto no negócio, clareza técnica e responsabilidade sobre escolhas.

    Em um dos times de plataforma com que trabalhei, fizemos um experimento simples. Migramos parte de um microserviço legado para um novo padrão interno. A IA produziu grande parte do rascunho inicial, mas a decisão final, o refinamento e a proteção contra riscos vieram das pessoas. Foi quando percebemos que produtividade deixou de ser medir linhas de código e passou a medir qualidade de pensamento.

    A engenharia ganhou novos papéis

    Se anos anteriores foram sobre aprender IA, 2025 foi sobre reorganizar a engenharia ao redor dela. Vi funções surgirem ou se fortalecerem de uma forma que não estava no radar no começo do ano.

    Platform Engineers deixaram de ser suporte e passaram a conduzir o desenho de fluxos produtivos. Especialistas em experiência de desenvolvedor começaram a influenciar decisões arquiteturais. Curadores de padrões assumiram a missão de definir caminhos recomendados para o time inteiro. Arquitetos se aproximaram do negócio como nunca.

    Percebi que não adianta acelerar um time se a esteira não está pronta. 2025 foi sobre arrumar essa casa.

    A pergunta que guiou o ano foi simples: isso realmente gera valor

    Com a facilidade de produzir código, houve também o risco de testar coisas demais sem direção. Algumas equipes se perderam em provas de conceito que não mudavam nada no dia a dia. Em contrapartida, os times que mais cresceram foram aqueles que tinham coragem de parar e perguntar se aquilo resolvia um problema real.

    Em um dos times de governança, fizemos uma triagem de automações solicitadas. Havia mais de 40 pedidos. Ao analisar o fluxo ponta a ponta, descobrimos que só sete eram essenciais. As outras não resistiram à pergunta sobre impacto e necessidade. Foi um choque e ao mesmo tempo um alívio. 2025 ensinou que velocidade só faz sentido quando está apontada para o lugar certo.

    O que espero para 2026

    A sensação que levo para 2026 é que a engenharia não será mais medida apenas por entregas. Será medida pela maturidade dos processos, pela segurança das decisões, pela clareza dos fluxos e pela capacidade de aprender rápido.

    Vejo ambientes cada vez mais automatizados e seguros. Testes e auditorias ganhando inteligência e reduzindo o tempo de ciclo. Times menores, mas muito mais eficientes, por trabalharem em plataformas já preparadas. E, acima de tudo, vejo desenvolvedores valorizados não pela quantidade de código, mas pela qualidade das escolhas que fazem.

    Fecho 2025 com a impressão de que vivemos a maior mudança desde a popularização da internet. E abro 2026 com a certeza de que estamos apenas no começo.

  • A inteligência artificial: realidade e mito, artigo de Fabrício Carraro

    A inteligência artificial: realidade e mito, artigo de Fabrício Carraro

    Nos últimos anos, a inteligência artificial (IA) tem ocupado um papel central em debates públicos, trazendo grandes expectativas, mas também preocupações intensas. Um dos temas mais discutidos é a possibilidade da AGI, a IA geral, uma hipotética inteligência capaz de realizar qualquer tarefa intelectual humana com autonomia plena. Mas quais riscos atribuídos à IA realmente possuem fundamento, e quais são exageros alimentados por desinformação e mitos?

    Atualmente, a IA já está presente no nosso cotidiano e no funcionamento de diversos setores, transformando a maneira como trabalhamos e tomamos decisões. Técnicas como o aprendizado de máquina (machine learning) e o aprendizado profundo (deep learning) dominam, aplicando-se a tarefas específicas como reconhecimento facial, processamento de linguagem natural e automação de processos industriais e administrativos.

    Porém, a IA geral ainda é uma perspectiva distante, mais uma ideia para o futuro do que uma realidade tecnológica.

    Riscos efetivos que merecem atenção

    Os perigos reais trazidos pela IA hoje estão longe de histórias futuristas de máquinas autônomas dominando o mundo. São aspectos palpáveis que já afetam pessoas e instituições, entre eles:

    • A reprodução de preconceitos existentes: sistemas de IA treinados com dados históricos podem refletir vieses discriminatórios, influenciando decisões importantes em áreas como concessão de crédito, contratações e justiça.

    • A manipulação da informação: modelos generativos de IA criam textos, imagens e vídeos falsos, cada vez mais realistas, podendo alimentar a disseminação de notícias falsas e influenciar a opinião pública.

    • Substituição de trabalhos: a automação, ao eliminar tarefas repetitivas e até algumas complexas, gera deslocamentos e exige que profissionais se qualifiquem para novas funções.

    • Segurança e privacidade: o uso intensivo de dados pessoais para treinar IA, além de IAs cada vez mais avançados podendo ajudar maus atores, levantam sérias questões sobre proteção de informações e vulnerabilidade a ataques cibernéticos.

    Esses desafios demandam esforços coordenados de empresas, governos e sociedade para mitigar riscos e garantir o uso ético e seguro da IA.

    Desmistificando exageros e temores infundados

    Alguns dos principais medos em relação à IA geral não passam de exageros ou equívocos. A ideia de máquinas superinteligentes assumindo o controle da humanidade ainda é mais ficção científica do que algo próximo de acontecer. Desenvolver uma IA com autonomia total envolve obstáculos técnicos e éticos gigantescos.

    Também não faz sentido prever a extinção completa do trabalho humano. Algumas posições podem deixar de existir ou mudar de escopo, como sempre ao longo da história, mas o cenário mais provável é o da colaboração entre pessoas e máquinas, onde a IA pode complementar habilidades humanas, especialmente em tarefas que requisitam criatividade, empatia e julgamento crítico (capacidades ainda fora do alcance das máquinas).

    Outro equívoco comum é entender a IA como uma entidade consciente. Na realidade, ela atua por meio de padrões extraídos de dados, sem qualquer compreensão ou intenção real.

    O mercado tecnológico já aprendeu a diferenciar entre modismos exagerados e aplicações reais e úteis. O foco atual está na entrega de resultados concretos, mensuração de impactos e integração ética da IA nos processos.

    Para isso, é fundamental manter o controle humano nas decisões (o conceito “human in the loop”) e investir em equipes qualificadas que garantam transparência e responsabilidade no uso das tecnologias.

    Analisar os perigos da inteligência artificial exige um olhar crítico e fundamentado em dados. Enquanto é essencial agir para resolver riscos presentes, também precisamos desfazer mitos que podem atrasar avanços tecnológicos benéficos. A influência da IA no futuro dependerá da forma como a aplicamos hoje: com ética, pragmatismo e responsabilidade, garantindo que a tecnologia seja uma ferramenta para transformação positiva, e não motivo de medo infundado.

    *Fabrício Carraro é Program Manager da Alura, maior e mais completa escola online de educação em tecnologia, e autor publicado sobre IA.