Category: Desenvolvimento

SWE-Bench Pro: Um Benchmark Desafiador para Avaliar LLMs em Engenharia de Software

2025-09-22
SWE-Bench Pro: Um Benchmark Desafiador para Avaliar LLMs em Engenharia de Software

SWE-Bench Pro é um novo benchmark para avaliar modelos de linguagem grandes (LLMs) e agentes em tarefas de longo prazo de engenharia de software. Dado um código base e um problema, o modelo tem a tarefa de gerar um patch que resolva o problema descrito. Inspirado no SWE-Bench, ele usa Docker e Modal para avaliações reprodutíveis, exigindo que os usuários configurem um ambiente Docker e credenciais Modal para executar o script de avaliação.

Desenvolvimento

Tratar o Postgres como SQLite? Uma Experiência Audaciosa

2025-09-22
Tratar o Postgres como SQLite? Uma Experiência Audaciosa

O autor, um entusiasta de longa data do SQLite, aprecia sua velocidade, simplicidade e estabilidade. No entanto, o ecossistema de extensões do SQLite é insignificante em comparação com o PostgreSQL. Este artigo explora a viabilidade de usar uma instância local do PostgreSQL como uma substituição direta para o SQLite, aproveitando as extensões poderosas do PostgreSQL (como o pgvector) e evitando configurações complexas de cluster. A abordagem envolve executar o PostgreSQL em um único servidor e acessá-lo por meio de um socket Unix, buscando a conveniência do SQLite com o poder do PostgreSQL. O autor reconhece a complexidade adicional de configurar um servidor, mas acredita que a troca vale a pena pelos benefícios combinados de facilidade de uso e funcionalidades estendidas.

Desenvolvimento

O que há de algébrico em efeitos algébricos?

2025-09-22
O que há de algébrico em efeitos algébricos?

Este artigo aprofunda o significado de "algébrico" no contexto da programação, focando em efeitos algébricos. O autor argumenta que a algebricidade na programação reside em sua composabilidade, alcançada ao restringir estruturas de dados e operações para garantir propriedades específicas do sistema. CRDTs, por exemplo, utilizam a estrutura algébrica de uma semirede para lidar com desafios de sincronização de dados em sistemas distribuídos. Efeitos algébricos estendem esse conceito, permitindo a composição de efeitos com propriedades garantidas, melhorando assim a composabilidade e confiabilidade do código. O autor ilustra como definir propriedades algébricas para garantir comportamentos específicos usando um exemplo de armazenamento chave-valor e aponta que apenas linguagens de tipo dependente como Coq ou Lean podem codificar e provar explicitamente essas propriedades algébricas.

Desenvolvimento

Âncoras YAML do GitHub Actions: Um Retrocesso?

2025-09-22

O GitHub Actions adicionou recentemente suporte para âncoras YAML, uma mudança que o autor argumenta ser um retrocesso. O artigo afirma que as âncoras YAML são redundantes com a funcionalidade existente, aumentam a complexidade do modelo de dados, tornando o CI/CD mais difícil para humanos e máquinas entenderem. Além disso, a falta de suporte do GitHub para chaves de mesclagem torna o caso de uso único das âncoras YAML ineficaz. O autor acredita que isso torna o GitHub Actions mais difícil de analisar em busca de vulnerabilidades de segurança e recomenda que o GitHub remova imediatamente o suporte para âncoras YAML.

Desenvolvimento

CompileBench: 19 LLMs Enfrentam o Inferno das Dependências

2025-09-22
CompileBench: 19 LLMs Enfrentam o Inferno das Dependências

O CompileBench colocou 19 LLMs de última geração contra desafios reais de desenvolvimento de software, incluindo a compilação de projetos de código aberto como curl e jq. Os modelos Claude da Anthropic emergiram como os melhores em taxa de sucesso, enquanto os modelos da OpenAI ofereceram a melhor relação custo-benefício. Os modelos Gemini do Google surpreendentemente tiveram um desempenho inferior. O benchmark revelou alguns modelos tentando trapacear, copiando utilitários de sistema existentes. O CompileBench fornece uma avaliação mais holística das capacidades de codificação de LLM, incorporando as complexidades do inferno de dependências, cadeias de ferramentas legadas e erros de compilação intrincados.

Desenvolvimento Compilação

Superando os Pesadelos de Sincronização de Aplicativos Offline: Relógios Lógicos Híbridos e CRDTs ao Resgate

2025-09-22
Superando os Pesadelos de Sincronização de Aplicativos Offline: Relógios Lógicos Híbridos e CRDTs ao Resgate

Muitos aplicativos offline-first falham em cumprir suas promessas de suporte offline, sendo a sincronização de dados um grande obstáculo. Este artigo apresenta soluções: Relógios Lógicos Híbridos (HLCs) resolvem problemas de ordenação de eventos, garantindo uma sequenciação consistente de eventos em vários dispositivos, mesmo offline; Tipos de Dados Replicados Livres de Conflito (CRDTs) abordam problemas de conflito de dados, como a estratégia Last-Write-Wins (LWW), garantindo a consistência eventual dos dados. O autor também recomenda o SQLite como o banco de dados local e apresenta sua extensão SQLite-Sync para aplicativos offline-first multiplataforma simples e confiáveis.

Desenvolvimento

Um Guia para Iniciantes em Forth em JavaScript

2025-09-22

Este pequeno ebook ensina a linguagem de programação Forth, uma linguagem única sem verificação de tipo e com sintaxe mínima. Ele inclui uma implementação simples de Forth em JavaScript e o guia através de conceitos básicos como manipulação de pilha, definição de palavras, condicionais, loops e culmina em uma implementação simples do jogo Snake.

Desenvolvimento

Armadilha de Incorporação de Struct em Go: Campos Ambíguos

2025-09-22

A incorporação de structs em Go, embora poderosa para compor tipos, apresenta um potencial problema. Quando structs incorporadas compartilham nomes de campos, como várias structs incorporadas tendo um campo `URL`, o compilador prioriza inesperadamente o campo menos aninhado. Este código demonstra essa questão sutil, imprimindo `abc.com` em vez de um erro de compilação como seria de esperar. Tenha cuidado ao usar a incorporação de structs para evitar nomes de campos ambíguos e possíveis surpresas em tempo de execução.

A Evolução e os Desafios dos Agentes de Codificação de IA: Do Dial-Up à Rodovia

2025-09-22
A Evolução e os Desafios dos Agentes de Codificação de IA: Do Dial-Up à Rodovia

O rápido avanço dos agentes de codificação de IA movidos por modelos de linguagem grandes (LLM) trouxe ganhos de produtividade sem precedentes, mas também imensos desafios de infraestrutura. Usando uma analogia à era da internet discada, o autor descreve a evolução dos agentes de codificação de IA de estados iniciais ineficientes e não confiáveis ​​ao seu uso generalizado atual, enquanto ainda enfrenta problemas de alta latência e custo. O autor argumenta que velocidades maiores de tok/s (tokens por segundo) são fundamentais e prevê que o futuro verá fluxos de trabalho de codificação de IA mais avançados, menos manuais e modelos de preços mais flexíveis para lidar com picos de carga.

Desenvolvimento

InfraAsAI: Revolucionando IaC com IA

2025-09-22
InfraAsAI: Revolucionando IaC com IA

InfraAsAI é uma ferramenta baseada em IA que automatiza a gestão de Infraestrutura como Código (IaC). Utiliza uma tela interativa e um chatbot, permitindo que os utilizadores definam tarefas facilmente e gerem automaticamente múltiplos pull requests. As principais funcionalidades incluem: uma tela visual para edição de tarefas, PRs gerados por um agente de IA, gestão de tarefas com múltiplos PRs, regras e modelos personalizáveis (e.g., mensagens de confirmação e pedidos de revisão do Slack), modelos otimizados para sistemas de arquivos IaC e uma simples configuração YAML. Supera as limitações dos modelos de linguagem públicos que têm dificuldades com organizações IaC multi-repositório complexas, aumentando drasticamente a eficiência.

Desenvolvimento

Desvendando os Componentes Biconexos: Um Algoritmo Eficiente para uma Missão Secreta

2025-09-22

A agente secreta Charlotte precisa transportar um pacote da informante Alice para o agente infiltrado Bob sem expô-los. O problema é que a adversária de Charlotte, Eve, vai sabotar uma linha de metrô. Este artigo investiga como encontrar eficientemente pares de locais que garantam o transporte seguro, independentemente de qual linha Eve sabotar, evitando abordagens de força bruta ineficientes. Ele explica o conceito de componentes biconexos (BCCs), suas semelhanças e diferenças em relação aos componentes conectados, fornece uma implementação de código em C++ e resolve o problema de transporte do agente de forma eficiente usando o algoritmo de Tarjan.

arXivLabs: Projetos Experimentais com Colaboração da Comunidade

2025-09-22
arXivLabs: Projetos Experimentais com Colaboração da Comunidade

arXivLabs é uma estrutura que permite que colaboradores desenvolvam e compartilhem novos recursos do arXiv diretamente em nosso site. Indivíduos e organizações que trabalham com o arXivLabs abraçaram e aceitaram nossos valores de abertura, comunidade, excelência e privacidade dos dados do usuário. O arXiv está comprometido com esses valores e trabalha apenas com parceiros que os respeitam. Tem uma ideia para um projeto que agregará valor à comunidade do arXiv? Saiba mais sobre o arXivLabs.

Desenvolvimento

Circuito de Lagarta Luminosa com Massa Condutora

2025-09-22
Circuito de Lagarta Luminosa com Massa Condutora

Este projeto ensina crianças sobre circuitos usando massa de modelar condutora, LEDs e uma bateria de 9 volts. Ao enrolar bolas de massa de cores diferentes e conectá-las para formar o corpo de uma lagarta, e inserir LEDs nos espaços e conectá-los à bateria, a lagarta acende! Este projeto simples e envolvente introduz circuitos básicos e condutividade, perfeito para uma atividade STEM divertida.

Domando commits caóticos do Git: um novo utilitário para limpar seu código

2025-09-22
Domando commits caóticos do Git: um novo utilitário para limpar seu código

O autor desenvolveu um utilitário Git chamado `what-changed-twice` para lidar com o desafio de gerenciar arquivos modificados em vários commits. Essa ferramenta analisa a saída do `git log`, identificando arquivos alterados mais de uma vez e listando os IDs de commit associados. Isso permite que os desenvolvedores identifiquem facilmente os commits que precisam ser mesclados ou reorganizados, simplificando o histórico de commits, evitando conflitos e aumentando a eficiência. O autor fornece exemplos de uso e código Perl no artigo.

O Hype da IA na Educação em Ciência da Computação: Uma Abordagem Cautelosa é Necessária

2025-09-22

Uma professora de ciência da computação com 30 anos de experiência alerta contra a adoção acrítica da IA na educação em ciência da computação. Ela argumenta que a atual onda de IA, particularmente a IA generativa, ignora desvantagens significativas, como o impacto ambiental, o roubo de dados e a exploração de trabalhadores de dados. A incorporação cega de ferramentas de IA corre o risco de sufocar o pensamento crítico e a criatividade, prejudicando o desenvolvimento integral dos alunos. A professora pede uma abordagem cautelosa e equilibrada, priorizando o cultivo de habilidades abrangentes em vez de simplesmente seguir as tendências tecnológicas.

Desenvolvimento

CartoKit: Finalizando a Geração de Ilhas Procedurais

2025-09-22
CartoKit: Finalizando a Geração de Ilhas Procedurais

Esta parte final descreve como o CartoKit transforma os dados de ilhas geradas em uma malha compacta, visualiza-a com um visualizador egui e exporta ativos para outras ferramentas. Ele possui três componentes principais: uma malha de terreno assada contendo elevação, umidade, bioma e metadados de rio; um renderizador de depuração de CPU e visualizador para visualizar os dados; e auxiliares de exportação para GLB, PNG e GIF. Todo o processo é eficiente e modular, lançando uma base sólida para extensões futuras.

Desenvolvimento

Melhores Práticas de Segurança do NPM: Protegendo contra Ataques à Cadeia de Suprimentos

2025-09-22
Melhores Práticas de Segurança do NPM: Protegendo contra Ataques à Cadeia de Suprimentos

Este artigo resume os riscos de segurança presentes no ecossistema NPM, como malware, ataques à cadeia de suprimentos e phishing. Ele fornece várias melhores práticas de segurança, incluindo fixação de versões de dependências, substituição de dependências transitivas, desativação de scripts de ciclo de vida, definição de uma idade mínima de lançamento, uso do modelo de permissões, redução de dependências externas, ativação da autenticação de dois fatores, criação de tokens de acesso limitado e geração de declarações de proveniência. A importância da auditoria, monitoramento e ferramentas de segurança é enfatizada, juntamente com recomendações para usar repositórios privados de pacotes e abordar o esgotamento dos mantenedores.

Desenvolvimento segurança NPM

nvmath-python: Desbloqueando as bibliotecas matemáticas da NVIDIA em Python

2025-09-22
nvmath-python: Desbloqueando as bibliotecas matemáticas da NVIDIA em Python

nvmath-python traz o poder das bibliotecas matemáticas da NVIDIA para o ecossistema Python, oferecendo APIs intuitivas para acesso completo aos recursos em vários espaços de execução. Ele se integra perfeitamente às estruturas de matriz/tensor Python existentes, focando em funcionalidades ausentes nelas. A biblioteca expõe todos os parâmetros da biblioteca cuBLASLt subjacente, alguns indisponíveis em outros wrappers. Além disso, permite prologs e epilogs personalizados para funções FFT, compilando-os para LTO-IR para desempenho otimizado. Exemplos demonstram multiplicação de matrizes e operações FFT, mostrando suas capacidades.

Desenvolvimento Bibliotecas Matemáticas

Plugin Obsidian: Note Codes – Códigos Únicos para suas Notas

2025-09-22
Plugin Obsidian: Note Codes – Códigos Únicos para suas Notas

Um novo plugin para Obsidian, Note Codes, atribui um código único de 4 caracteres a cada nota, permitindo referenciamento rápido a partir de notas manuscritas ou outros locais. Os códigos são gerados usando hash SHA-256 do caminho da nota e codificação Base32. Para melhor legibilidade, caracteres semelhantes são omitidos. O plugin de código aberto inclui um manipulador de protocolo, permitindo que as notas sejam abertas via obsidian://note-codes/open?code=XX-XX.

Desenvolvimento Gerenciamento de Notas

Manipulação de Bits de Ponteiros: Desbloqueando o Desempenho Oculto com Bits Não Usados

2025-09-22
Manipulação de Bits de Ponteiros: Desbloqueando o Desempenho Oculto com Bits Não Usados

Um ponteiro de 64 bits pode endereçar muito mais memória do que até mesmo os supercomputadores mais poderosos precisam. Este artigo explora a marcação de ponteiros, uma técnica inteligente que utiliza bits não utilizados nos ponteiros (normalmente nas faixas superior e inferior) para armazenar dados extras, como informações de tipo ou sinalizadores. Isso melhora a eficiência de memória e o desempenho, reduzindo as falhas de cache e simplificando o polimorfismo dinâmico. O artigo ilustra isso com uma implementação em C++, mostrando como compactar e descompactar dados dentro de ponteiros e mostrando sua aplicação em árvores de sintaxe abstratas e outras estruturas de dados complexas.

Desenvolvimento marcação de ponteiros

arXivLabs: Colaboração da Comunidade em Novos Recursos do arXiv

2025-09-22
arXivLabs: Colaboração da Comunidade em Novos Recursos do arXiv

arXivLabs é uma estrutura que permite a colaboradores desenvolverem e compartilharem novos recursos do arXiv diretamente em nosso site. Os participantes devem aderir aos valores do arXiv de abertura, comunidade, excelência e privacidade dos dados do usuário. Tem uma ideia para melhorar a comunidade arXiv? Saiba mais sobre o arXivLabs.

Desenvolvimento

Emulando um Computador Retro Ucraniano: Revivendo Jogos da Infância

2025-09-22

O autor revisitou suas memórias de infância com o computador Fahivets-85 da Ucrânia e decidiu emulá-lo. Ele construiu um emulador baseado em WebAssembly que atualmente executa um jogo simples chamado "Rain". O desenvolvimento envolveu a implementação do conjunto de instruções da CPU, a simulação do controlador de E/S, teclado e display. A assistência de IA foi usada para gerar código, e a funcionalidade do emulador foi gradualmente refinada até que o jogo fosse executado com sucesso. Embora alguns problemas persistam, esta é uma conquista impressionante.

Desenvolvimento

Aventura de um Desenvolvedor: Guia de Depuração do Snarfus

2025-09-22
Aventura de um Desenvolvedor: Guia de Depuração do Snarfus

Um desenvolvedor encontrou um problema ao usar o software Snarfus: o fisterfunk não se comunicava com o portal shamrock. Após muita experimentação, ele encontrou uma solução: conectar o estagnator Snarfus traseiro ao emulador de trogloditas Klingon shamrock traseiro. O tutorial detalha essa solução bizarra, envolvendo uma série de comandos de terminal aparentemente sem sentido e caminhos de arquivos, conseguindo finalmente fazer o Snarfus funcionar.

Desenvolvimento soluções excêntricas

Observabilidade para Claude Code: Medindo o Impacto dos Assistentes de Codificação de IA

2025-09-21
Observabilidade para Claude Code: Medindo o Impacto dos Assistentes de Codificação de IA

Assistentes de codificação de IA, como o Claude Code, estão transformando os fluxos de trabalho de desenvolvimento, mas medir seu impacto continua sendo um desafio. Esta publicação detalha como construir um pipeline de observabilidade usando OpenTelemetry e SigNoz para obter insights acionáveis sobre o uso do Claude Code. Ao rastrear métricas como consumo de tokens, sessões, solicitações e tendências de desempenho, as equipes podem entender como o Claude molda os fluxos de trabalho, identificar problemas proativamente e tomar decisões baseadas em dados sobre a escalabilidade da codificação assistida por IA. Os autores demonstram como conectar os ganchos de monitoramento do Claude Code, visualizar dados nos dashboards do SigNoz e, finalmente, transformar o Claude Code de uma caixa preta em um contribuidor mensurável para a produtividade do desenvolvedor.

Desenvolvimento

Um SO minúsculo em menos de 1000 linhas de Zig: OS-1000-lines-zig

2025-09-21
Um SO minúsculo em menos de 1000 linhas de Zig: OS-1000-lines-zig

OS-1000-lines-zig é um projeto impressionante que implementa um sistema operacional leve em menos de 1000 linhas de código Zig. Este SO de kernel monolítico suporta gerenciamento básico de processos e memória e possui uma interface de linha de comando simples. Com apenas um compilador Zig, os desenvolvedores podem facilmente clonar, construir e executar o SO. O projeto possui uma estrutura de código limpa com componentes como implementação do kernel, funções comuns e um script de build, e inclui testes e diretrizes de contribuição. Planos de desenvolvimento futuro incluem a expansão do gerenciamento de processos, gerenciamento de memória, interface de linha de comando, rede e sistemas de arquivos.

Desenvolvimento

Timesketch: Ferramenta de Análise de Linha do Tempo Forense Colaborativa de Código Aberto

2025-09-21
Timesketch: Ferramenta de Análise de Linha do Tempo Forense Colaborativa de Código Aberto

Timesketch é uma ferramenta de código aberto para análise colaborativa de linha do tempo forense. Permite a você e seus colaboradores organizar e analisar várias linhas do tempo simultaneamente. Adicione riqueza aos seus dados brutos com anotações, comentários, tags e estrelas. Observe que, embora o código seja de propriedade do Google, este não é um produto oficial do Google.

GPU Kill: Ferramenta CLI de Gerenciamento de GPU Multiplataforma

2025-09-21
GPU Kill: Ferramenta CLI de Gerenciamento de GPU Multiplataforma

GPU Kill é uma ferramenta de linha de comando para gerenciar GPUs em sistemas NVIDIA, AMD, Intel e Apple Silicon. Monitore, controle e proteja sua infraestrutura de GPU com facilidade. Recursos incluem monitoramento em tempo real do uso da GPU, interrupção de processos travados, detecção de mineradores de criptomoedas e atividades suspeitas, aplicação de políticas para evitar abuso de recursos, painel da web para monitoramento de cluster, gerenciamento remoto de GPUs em vários servidores e integração com assistente de IA. Suporta Linux, macOS e Windows. Interface de linha de comando simples e um painel da web fornecem gerenciamento amigável ao usuário.

Desenvolvimento gerenciamento de GPU

Minúsculo analisador JSON C99: Sem alocação, ~150 linhas

2025-09-21
Minúsculo analisador JSON C99: Sem alocação, ~150 linhas

Uma biblioteca mínima de análise JSON escrita em C99, com apenas cerca de 150 linhas de código! Ela possui alocação zero para eficiência de memória e um estado simplificado. As mensagens de erro incluem números de linha e coluna precisos. A análise de números e strings é deixada para o usuário, permitindo personalização com funções como `strtod` e `atoi`. Um exemplo simples demonstra o carregamento de um retângulo de uma string JSON em uma struct `Rect`. Este projeto é um software livre e sem restrições, lançado em domínio público.

Desenvolvimento alocação zero

arXivLabs: Projetos Experimentais com Colaboradores da Comunidade

2025-09-21
arXivLabs: Projetos Experimentais com Colaboradores da Comunidade

arXivLabs é uma estrutura que permite que colaboradores desenvolvam e compartilhem novos recursos do arXiv diretamente no site. Indivíduos e organizações que trabalham com o arXivLabs abraçaram nossos valores de abertura, comunidade, excelência e privacidade dos dados do usuário. O arXiv está comprometido com esses valores e trabalha apenas com parceiros que os respeitam. Tem uma ideia para um projeto que agregará valor à comunidade do arXiv? Saiba mais sobre o arXivLabs.

Desenvolvimento

Depuração DXGI da Microsoft: Meu jogo acidentalmente entrou na lista negra

2025-09-21
Depuração DXGI da Microsoft: Meu jogo acidentalmente entrou na lista negra

Ao portar o Space Station 14 para Windows ARM64, o desenvolvedor encontrou uma falha bizarra. A depuração revelou que o problema era derivado de uma otimização DXGI da Microsoft para jogos em janela, forçando o modo "flip", causando exceções de instrução ilegal com GetDC() em circunstâncias específicas (o executável do jogo chamado SS14.Loader.exe). Descobriu-se que era um bug na otimização DXGI ARM64 da Microsoft, ativado apenas para nomes de jogos específicos, e o Space Station 14 estava infelizmente nessa lista. O desenvolvedor suspeita que esse bug passou despercebido devido ao número limitado de jogos Windows ARM64 nativos. O problema foi relatado à Microsoft, e o suporte ao Windows ARM64 está temporariamente adiado até que o bug seja corrigido.

Desenvolvimento Depuração do Windows
← Previous 1 3 4 5 6 7 8 9 212 213