Category: Desenvolvimento

Marimo: Revolucionando Notebooks Python com Grafos de Fluxo de Dados

2025-08-09
Marimo: Revolucionando Notebooks Python com Grafos de Fluxo de Dados

Marimo é um notebook Python de código aberto que representa notebooks como grafos de fluxo de dados, ao contrário dos REPLs tradicionais. Essa representação combina o melhor da computação interativa com a reprodutibilidade e a reusabilidade de software Python. Notebooks Marimo funcionam como notebooks reativos, scripts executáveis, módulos Python e aplicativos web interativos. Ele aborda as deficiências dos notebooks tradicionais em reprodutibilidade, interatividade, manutenção e reusabilidade, garantindo a sincronização de código e saída por meio de análise estática e suportando recursos como incorporação de SQL e recarregamento automático de módulos. Marimo é usado por empresas como Cloudflare, Shopify e BlackRock.

Desenvolvimento grafos de fluxo de dados

HorizonDB do Radar: Um banco de dados geoespacial com tecnologia Rust

2025-08-09
HorizonDB do Radar: Um banco de dados geoespacial com tecnologia Rust

O Radar processa mais de 1 bilhão de chamadas de API por dia, exigindo serviços de geolocalização de alto desempenho. Para atender a esse desafio, eles criaram o HorizonDB, um banco de dados geoespacial escrito em Rust, substituindo sua configuração anterior de MongoDB e Elasticsearch. O HorizonDB consolida vários serviços de localização e utiliza tecnologias como RocksDB, S2, Tantivy, FSTs, LightGBM e FastText para alcançar tempos de resposta em milissegundos e escalabilidade linear. Isso resultou em economia significativa de custos, melhoria da eficiência do desenvolvedor e uma base sólida para o crescimento futuro.

Efrit: Assistente de Codificação AI para Emacs

2025-08-09
Efrit: Assistente de Codificação AI para Emacs

Efrit é um assistente de codificação AI sofisticado que se integra perfeitamente ao Emacs usando avaliação direta de Elisp. Ele oferece várias interfaces: efrit-chat para conversas de várias rodadas, efrit-do para comandos de linguagem natural e uma interface de linha de comando para interações estruturadas. O Efrit possui suporte para conversas de várias rodadas, tratamento de erros robusto e compatibilidade com tema escuro. Requer Emacs 28.1+, uma chave de API Anthropic e uma conexão com a internet. A instalação é simples: clone o repositório e adicione-o à sua configuração do Emacs.

Desenvolvimento

12 Projetos em Meses: Meu Fluxo de Trabalho com o Claude Code

2025-08-09
12 Projetos em Meses: Meu Fluxo de Trabalho com o Claude Code

Esta publicação detalha a experiência do autor usando o Claude Code, um agente de programação LLM, para concluir 12 projetos em alguns meses. O autor enfatiza a importância de especificações claras, revisão de código (incluindo a solicitação ao agente para revisar seu próprio trabalho) e um guia de agente 'global' pessoal que descreve as melhores práticas, como progresso incremental e desenvolvimento orientado a testes. A revisão de código manual e testes completos são destacados como cruciais, independentemente da assistência de IA. Uma lista de projetos concluídos no GitHub é fornecida.

Desenvolvimento agente de programação

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

2025-08-09
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 no 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 aderem. Tem uma ideia para um projeto que agregará valor à comunidade do arXiv? Saiba mais sobre o arXivLabs.

Desenvolvimento

LLMs Locais: Construindo um Assistente de IA que Preserva a Privacidade

2025-08-09

Cansado de depender da nuvem para suas necessidades de IA? Uma equipe construiu um aplicativo LLM local priorizando a privacidade. Combinando LLMs, contêineres Docker e um navegador sem cabeça, seu sistema executa LLMs localmente, executa código em VMs leves e acessa a internet com segurança. Isso permite que os usuários realizem tarefas sensíveis à privacidade, como edição de fotos e vídeos, sem que os dados saiam de sua máquina. Embora o desenvolvimento de aplicativos para Mac tenha se mostrado desafiador, eles finalmente criaram uma ferramenta local poderosa que oferece verdadeiro isolamento de código e dados, dando aos usuários controle e privacidade sem precedentes.

Desenvolvimento código em contêiner

GPT-5 se destaca no benchmark de revisão de código da Qodo

2025-08-08
GPT-5 se destaca no benchmark de revisão de código da Qodo

A Qodo utilizou seu benchmark PR privado, simulando fluxos de trabalho de revisão de código do mundo real, para avaliar modelos de linguagem de ponta, incluindo o GPT-5. Os resultados mostraram que o GPT-5 se destacou na compreensão de diffs de código, na identificação de bugs e na sugestão de melhorias. Sua variante 'mínima' equilibrou velocidade e qualidade de forma impressionante. Embora o GPT-5 tenha apresentado algumas fraquezas, como falsos positivos e rotulagem inconsistente, seu desempenho geral na revisão de código foi impressionante, marcando um progresso significativo na revisão de código assistida por IA.

Desenvolvimento

Notte: Crie agentes de automação web confiáveis rapidamente

2025-08-08
Notte: Crie agentes de automação web confiáveis rapidamente

Notte é uma estrutura full-stack que combina agentes de IA e scripts tradicionais para construir e implantar agentes de IA que interagem perfeitamente com a web. Desenvolva, implante e escale seus agentes e automações web com uma única API. O core de código aberto permite que você execute agentes web, manipule saídas estruturadas e interaja com sites. O serviço de API recomendado oferece sessões de navegador stealth, fluxos de trabalho híbridos, cofres de segredos e personas digitais para reduzir custos e melhorar a confiabilidade. Um SDK Python simplifica o desenvolvimento, suportando vários navegadores e configurações personalizadas, como proxies e solução de CAPTCHA. Notte também apresenta um desempenho impressionante em benchmarks independentes.

Desenvolvimento

O Usuário Não É o Comprador: Desvendando o Enigma das Vendas B2B

2025-08-08
O Usuário Não É o Comprador: Desvendando o Enigma das Vendas B2B

Este artigo aborda o problema comum de SaaS B2B em que 'o usuário não é o comprador'. O autor argumenta que identificar o verdadeiro tomador de decisão é crucial, e nem sempre é a pessoa que possui o cartão de crédito. Em empresas menores, os desenvolvedores geralmente exercem influência significativa devido ao uso direto do produto e às restrições de tempo, impulsionando sua necessidade de ferramentas eficientes. No entanto, em empresas maiores, o poder de decisão geralmente reside com os CTOs ou a liderança, priorizando a segurança e os resultados. O autor sugere empoderar os desenvolvedores, fornecendo-lhes dados e ferramentas para demonstrar convincentemente o valor do produto à liderança, levando indiretamente à conversão de vendas.

Testando os Limites do Navegador com Valores CSS Infinitos

2025-08-08
Testando os Limites do Navegador com Valores CSS Infinitos

O autor experimentou definir a largura e a altura de um elemento para `calc(infinity * 1px)` em CSS para explorar como diferentes mecanismos de renderização de navegadores lidam com valores infinitos. O Chrome e o Safari limitaram o valor a aproximadamente 33.554.400 pixels. No entanto, o Firefox Nightly exibiu um comportamento incomum; a altura foi limitada à altura da linha de texto, enquanto a largura atingiu milhões de pixels, mas a largura do layout foi aproximadamente metade. Testes adicionais com tamanho da fonte e altura da linha revelaram discrepâncias semelhantes, com a renderização do Firefox drasticamente diferente de outros navegadores. O autor especula sobre as razões para essas peculiaridades e convida os leitores a fornecer explicações.

Desenvolvimento

Comentários de blog sem backend com Bluesky

2025-08-08
Comentários de blog sem backend com Bluesky

Cansado de sistemas de comentários pesados? Este autor usa inteligentemente o protocolo AT da plataforma social descentralizada Bluesky para criar um sistema de comentários de blog leve e sem backend. Ao publicar posts no blog no Bluesky e usar seu URI de postagem para buscar comentários via API, o autor consegue suporte a rich text, verificação de identidade e conversas multiplataforma. Não é necessário gerenciar banco de dados ou contas de usuário, resolvendo efetivamente os problemas de sistemas de comentários tradicionais. Isso melhora a experiência do usuário e aumenta a escalabilidade e a independência do blog.

Desenvolvimento comentários de blog

O Conhecimento Amaldiçoado da Equipe Immich

2025-08-08
O Conhecimento Amaldiçoado da Equipe Immich

A equipe do Immich compartilha uma série de frustrantes desafios de desenvolvimento, quase amaldiçoados. De problemas com o mecanismo de script do Zitadel que não suporta grupos de captura nomeados, às dimensões dos metadados EXIF que diferem das dimensões reais da imagem; do tratamento não intuitivo de espaços em branco no YAML às restrições de acesso a arquivos ocultos do Windows; de problemas com caracteres de retorno de carro em scripts bash ao protocolo HTTP padrão do Cloudflare Workers em solicitações Fetch; da remoção silenciosa de dados de GPS em dispositivos móveis ao mecanismo transacional do PostgreSQL NOTIFY que afeta o desempenho; de verificações de integridade ineficientes de scripts npm à indexação confusa em objetos de data do JavaScript; a limites de comprimento de senha do bcrypt, problemas de compatibilidade do Node.js, limitações de parâmetros do PostgreSQL e efeitos colaterais do TypeORM em operações de exclusão - a lista continua. Essas questões destacam as armadilhas e desafios ocultos do desenvolvimento de software, oferecendo lições valiosas aprendidas.

Desenvolvimento

Da insegurança ao desenvolvedor de software: Um diário da quarta semana do pré-curso Makers

2025-08-08

Este post de blog detalha a jornada de uma aluna durante a quarta semana do pré-curso Makers. A autora luta contra a insegurança ao criar seu currículo, depois domina progressivamente o Desenvolvimento Guiado por Testes (TDD) e enfrenta um projeto de codificação individual, mostrando seu crescimento e desafios no aprendizado de desenvolvimento de software. Ela abertamente compartilha suas experiências passadas, incluindo recuperação de doenças e mudanças de carreira, solidificando finalmente seu compromisso em se tornar uma engenheira de software. O post também destaca sua paixão pela programação e seu uso de um jogo de aventura de texto baseado em Go para reforçar seu aprendizado.

Desenvolvimento jornada de aprendizagem

Automatizando uma configuração robusta do Proxmox Homelab com Ansible

2025-08-08
Automatizando uma configuração robusta do Proxmox Homelab com Ansible

Para aumentar a flexibilidade e a robustez, o autor migrou seu homelab para um mini-PC Minisforum UM880 Plus, implantando o Proxmox VE. O post detalha todo o processo, desde a instalação de um SO Debian criptografado e a configuração de uma rede bridge até a automação da instalação e configuração do Proxmox usando o Ansible. Os desafios encontrados, como uma instalação do Proxmox que quebrou o sistema, são documentados juntamente com suas soluções. O resultado é uma configuração do Proxmox altamente automatizada, fornecendo uma base sólida para futuras experimentações com o Kubernetes.

Desenvolvimento

Construindo um Método de Acesso a Tabela em Memória Personalizado para Postgres

2025-08-08

Este artigo detalha a jornada do autor na construção de um método de acesso à tabela PostgreSQL personalizado, criando efetivamente um mecanismo de armazenamento em memória simples. Começando com uma compilação de depuração do PostgreSQL, o autor implementou incrementalmente as várias funções da API do método de acesso à tabela, culminando em um sistema totalmente funcional capaz de criar tabelas, inserir dados e consultar resultados. O processo envolveu superar vários desafios, incluindo depuração e compreensão das internas do PostgreSQL, que foram resolvidos por meio de registro e depuração iterativa. Isso serve como um excelente exemplo de desenvolvimento de extensão do PostgreSQL, fornecendo experiência e orientação valiosas para outros desenvolvedores.

Rodando aplicativos x86_64 em um desktop AArch64: Um experimento com FEX-Emu

2025-08-07
Rodando aplicativos x86_64 em um desktop AArch64: Um experimento com FEX-Emu

Esta publicação detalha um experimento rodando aplicativos x86_64 em um sistema desktop AArch64 baseado em Ampere Altra usando o FEX-emu. Embora Steam e Factorio tenham rodado, o desempenho foi ruim, obtendo pontuações baixas de 459 e 4110 nos testes de núcleo único e multi-núcleo do Geekbench 6, respectivamente. Otimizações na configuração do FEX-emu e a substituição da versão x86_64 da ferramenta de construção Ninja por uma versão aarch64 proporcionaram algumas melhorias de desempenho. Em última análise, o autor conclui que a emulação x86_64 neste sistema AArch64 é limitada na praticidade, sendo principalmente útil para executar jogos mais antigos.

Desenvolvimento emulação x86_64

Esqueça Monads: Abrace Transformações Naturais

2025-08-07

Este artigo questiona o uso excessivo de Monads na programação funcional. O autor argumenta que o conceito de Monads é excessivamente abstrato e propõe o uso direto das transformações naturais subjacentes para programação. Usando a linguagem Я como exemplo, o artigo explica como combinar diferentes Functors usando transformações naturais, comparando essa abordagem com Monad Transformers. Finalmente, defende a substituição de Monads por transformações naturais mais flexíveis e de baixo nível para um design de programa mais limpo e poderoso.

Desenvolvimento transformações naturais

Stasher: Compartilhamento de Segredos Efêmero e Sem Contas

2025-08-07
Stasher: Compartilhamento de Segredos Efêmero e Sem Contas

Stasher é uma ferramenta de linha de comando para compartilhamento de segredos seguro e efêmero. Sem contas, sem backend, apenas transmissão de segredos pura e criptografada usando AES-256-GCM. A funcionalidade de uso único garante que os segredos sejam excluídos após um único uso. Construído com total transparência da cadeia de suprimentos (criptograficamente assinado, atestado SLSA v1, registrado no Rekor), a natureza de código aberto do Stasher e a segurança verificável o tornam ideal até mesmo para os usuários mais paranoicos.

Splatshop: Edição Interativa de Modelos de Splat Gaussianos Massivos

2025-08-07

Splatshop é uma caixa de ferramentas altamente otimizada para edição interativa (seleção, exclusão, pintura, transformação, etc.) de modelos de splatting gaussianos 3D, manipulando até 100 milhões de primitivas em tempo real. Equilibrando velocidade e precisão, permite edições precisas sem sacrificar o desempenho. Além disso, o Splatshop é compatível com VR, sendo o primeiro editor VR para modelos de splatting gaussianos em larga escala — um passo significativo em direção a um 'Photoshop' para essa tecnologia.

Desenvolvimento

1,5 Anos de Programação Assistida por IA: Reflexões e Lições Aprendidas

2025-08-07
1,5 Anos de Programação Assistida por IA: Reflexões e Lições Aprendidas

Este artigo compartilha a experiência do autor de 1,5 ano usando IA para programação. A IA se destaca em tarefas de codificação repetitivas, refatoração e projetos simples, mas luta com problemas complexos e desenvolvimento novo, muitas vezes introduzindo erros e abstrações ineficientes. Interfaces de CLI se mostram mais eficazes do que IDEs devido ao maior controle do desenvolvedor. A IA auxilia no design e na escrita, mas a 'codificação vibe' (confiar exclusivamente em código gerado por IA) é desencorajada, levando a uma dívida técnica significativa e vulnerabilidades de segurança. O autor conclui que os principais beneficiários da IA ​​não são os desenvolvedores, mas sim os gerentes e clientes, facilitando a comunicação e a colaboração aprimoradas. O futuro da IA ​​na programação é brilhante, mas as empresas não devem usá-la como desculpa para demissões.

Desenvolvimento

Gemini CLI GitHub Actions: Seu companheiro de codificação com IA chegou!

2025-08-07
Gemini CLI GitHub Actions: Seu companheiro de codificação com IA chegou!

O Google lança o Gemini CLI GitHub Actions, um assistente de codificação com IA gratuito que automatiza a gestão de problemas e pull requests no GitHub. Ele classifica e prioriza problemas de forma inteligente, fornece feedback rápido sobre revisão de código e até mesmo escreve código, testes e muito mais com base em suas instruções. Basta mencionar @gemini-cli em um problema ou pull request para obter assistência de IA. Atualmente em versão beta, disponível para desenvolvedores em todo o mundo.

Desenvolvimento

Debouncing em Programação: Lidando Eficientemente com a Entrada do Usuário

2025-08-07
Debouncing em Programação: Lidando Eficientemente com a Entrada do Usuário

Em programação, debouncing é uma técnica usada para lidar com eventos frequentes, como entrada contínua do usuário. Ele descarta operações que ocorrem muito próximas umas das outras em um intervalo de tempo especificado, consolidando-as em uma única invocação para evitar lentidão na IU. Por exemplo, quando um usuário digita uma consulta de pesquisa, o debouncing espera por uma pausa antes de executar a pesquisa, melhorando a eficiência e a experiência do usuário. Semelhante ao throttling, mas ao contrário do throttling, que limita a frequência de operações contínuas, o debouncing espera por um período de inatividade antes de agir.

Dicas Avançadas de Depuração de Testes Unitários Zig: Combinando Depuração de Impressão e o Depurador

2025-08-07

Este artigo apresenta técnicas para aprimorar a depuração de testes unitários Zig, combinando depuração de impressão e o depurador. O autor primeiro aborda o problema da saída detalhada da depuração de impressão usando `errdefer` para imprimir apenas quando um teste falha, reduzindo a desordem. Em seguida, o script `build.zig` é usado para executar o depurador durante o processo de construção, simplificando a depuração de binários de teste. Finalmente, a compilação condicional, combinada com a opção de compilação `-Ddebugger`, permite habilitar breakpoints do depurador apenas quando necessário, evitando interferência do depurador durante execuções de teste normais. Essa abordagem melhora significativamente a eficiência da depuração de testes unitários Zig.

Desenvolvimento

Superando o CPython: Otimizando o Interpretador Plush para Fibonacci

2025-08-07
Superando o CPython: Otimizando o Interpretador Plush para Fibonacci

O autor detalha a jornada de otimização de seu interpretador Plush, uma linguagem de programação brinquedo, superando o CPython no microbenchmark de Fibonacci. As otimizações incluíram a fusão de instruções, a análise de perfil com a ferramenta Linux perf e a correção de código para eliminar pesquisas em hash. O resultado? Quase o dobro da velocidade no benchmark, mas surpreendentemente, nenhuma melhora de desempenho em seu programa de raytracing paralelo, destacando as limitações dos microbenchmarks.

Quebrando a Barreira de Ordenação: Novo Algoritmo Acelera a Busca pelo Caminho Mais Curto

2025-08-07
Quebrando a Barreira de Ordenação: Novo Algoritmo Acelera a Busca pelo Caminho Mais Curto

Por décadas, um problema clássico da ciência da computação — encontrar o caminho mais curto de um ponto de partida específico em uma rede para todos os outros pontos — foi limitado por uma 'barreira de ordenação'. Recentemente, Ran Duan e sua equipe da Universidade Tsinghua quebraram essa barreira, criando um novo algoritmo que supera todos os algoritmos baseados em ordenação em velocidade. O algoritmo usa inteligentemente estratégias de agrupamento e o algoritmo Bellman-Ford, evitando a ordenação ponto a ponto e alcançando melhorias significativas de desempenho, abrindo um novo capítulo na pesquisa de problemas de caminhos mais curtos.

comptime.ts: Computação em tempo de compilação para TypeScript

2025-08-07
comptime.ts: Computação em tempo de compilação para TypeScript

comptime.ts é um compilador TypeScript simples e eficiente projetado para avaliar expressões marcadas com `comptime` em tempo de compilação. Isso permite otimização de código, movendo cálculos do tempo de execução para o tempo de compilação. Suporta vários casos de uso, incluindo o cálculo de constantes, geração de conteúdo estático e otimização de código crítico para desempenho. A integração é simples por meio do Vite, Bun ou da CLI, aumentando a produtividade do desenvolvedor. No entanto, as expressões comptime devem ser serializáveis para JSON, e expressões complexas podem aumentar o tempo de compilação.

Uso excessivo do ChatGPT em Psicologia da Engenharia: Um pesadelo de projeto em grupo

2025-08-07

Um estudante de psicologia da engenharia relata sua frustração com colegas de grupo que dependem excessivamente do ChatGPT para um projeto de classe. Seus colegas de equipe colaram diretamente texto gerado por IA em sua proposta de projeto, resultando em conteúdo irrelevante e de baixa qualidade. Isso aumentou significativamente a carga de trabalho do estudante e o desmotivou. Embora reconhecendo os benefícios potenciais do uso do ChatGPT para inspiração, o estudante critica a adoção acrítica de conteúdo gerado por IA sem avaliação ou compreensão.

Desenvolvimento projeto em grupo

Herbie: Aumentando a Precisão de Ponto Flutuante

2025-08-07

O projeto Herbie visa melhorar a precisão dos cálculos de ponto flutuante. Ao longo de vários anos, o Herbie lançou várias versões, melhorando continuamente os algoritmos, aumentando a velocidade e adicionando recursos como uma interface de navegador e plugins para linguagens como Rust e Haskell. Recentemente, o Herbie obteve melhorias significativas de precisão no conjunto de testes de referência Hamming e adicionou uma nova API de plataforma para destinos de compilação plugáveis. A equipe do Herbie participa ativamente de pesquisas acadêmicas, publica artigos e realiza inúmeras palestras, compartilhando suas descobertas de pesquisa e planos futuros.

Desenvolvimento projeto Herbie

Além de Arrays Dinâmicos: O Eficiente e Estável Segment Array

2025-08-07
Além de Arrays Dinâmicos: O Eficiente e Estável Segment Array

Este artigo apresenta o Segment Array, uma estrutura de dados de alto desempenho que combina a flexibilidade de arrays dinâmicos, as vantagens de ponteiros estáveis e excelente compatibilidade com alocadores de arena. Ao contrário de arrays dinâmicos que movem elementos durante o redimensionamento, o Segment Array usa segmentos pré-alocados de tamanhos fixos, evitando fragmentação de memória e invalidação de ponteiros. Cada segmento tem o dobro do tamanho do seu predecessor, com novos segmentos alocados apenas quando necessário, atingindo complexidade de tempo média O(1). O autor fornece uma implementação em C e detalha seu funcionamento interno, incluindo o cálculo eficiente de índices e a integração com genéricos. O Segment Array é particularmente útil em cenários que exigem gerenciamento de memória dinâmica eficiente dentro de um alocador de arena, como em um perfil de compilação.

Desenvolvimento

Mergulho profundo no Tyr: Um driver de GPU Rust para Arm Mali CSF

2025-08-07
Mergulho profundo no Tyr: Um driver de GPU Rust para Arm Mali CSF

Esta publicação, a segunda de uma série, mergulha no desenvolvimento do Tyr, um driver de GPU Rust de ponta para o kernel do Linux que suporta GPUs baseadas em Arm Mali CSF. Usando o aplicativo VkCube (renderizando um cubo giratório via Vulkan) como um estudo de caso, ele explica a interação entre drivers de modo de usuário (UMDs) e drivers de modo de kernel (KMDs). O artigo fornece uma visão geral concisa da API do Tyr, comparando-a com o Panthor (o driver C para o mesmo hardware). As responsabilidades principais do KMD, como alocação de memória, envio de trabalhos e escalonamento de hardware, são destacadas. O artigo divide a API do Tyr em seções que cobrem informações do dispositivo, gerenciamento de memória, criação e gerenciamento de grupos, envio de trabalhos e gerenciamento de heap de ladrilhos.

Desenvolvimento
1 2 12 13 14 16 18 19 20 198 199