Category: Desenvolvimento

Melhorias significativas no MSVC Address Sanitizer (ASan)

2025-02-25
Melhorias significativas no MSVC Address Sanitizer (ASan)

A Microsoft melhorou significativamente a qualidade do MSVC Address Sanitizer (ASan). Eles transferiram com sucesso grandes partes do ASan para o LLVM, permitindo uma integração mais rápida das melhorias da comunidade LLVM. Além disso, integraram o ASan na base de código do MSVC, incluindo o compilador, o vinculador e as ferramentas, permitindo a detecção de problemas de segurança de memória em integração contínua. O Visual Studio 2022 versão 17.13 inclui várias correções, reduzindo falsos positivos, melhorando os relatórios de erros e lidando com cenários de multiprocessamento.

Desenvolvimento

Xcode constantemente se conecta à internet: preocupações com privacidade e gargalos de velocidade de construção

2025-02-25

O desenvolvedor Jeff Johnson descobriu que o Xcode se conecta frequentemente aos servidores da Apple durante a construção de projetos, levando a tempos de construção lentos, especialmente na fase de "Coleta de entradas de provisionamento". Ao desabilitar as conexões com developerservices2.apple.com usando o Little Snitch, ele resolveu o problema de velocidade de construção. Além disso, ele descobriu que o Xcode se conecta a outros servidores da Apple, como devimages-cdn.apple.com e appstoreconnect.apple.com, na inicialização e na abertura de projetos, aparentemente desnecessariamente e potencialmente transmitindo informações do desenvolvedor para a Apple. Jeff argumenta que o Xcode atua como um mecanismo de coleta de dados analíticos de desenvolvedores, comprometendo a privacidade do desenvolvedor.

Desenvolvimento Velocidade de Construção

HTTP/2: Por que não importa em servidores HTTP Ruby

2025-02-25

Este post discute a relevância do suporte HTTP/2 em servidores HTTP Ruby como o Puma. O autor argumenta que, embora a principal vantagem do HTTP/2 - multiplexação para tempos de carregamento de página mais rápidos - seja significativa na internet, ele oferece pouco benefício em uma LAN. Baixa latência e conexões de longa duração em uma LAN minimizam o impacto do slow start do TCP. Além disso, o recurso de push do servidor HTTP/2 se mostrou prejudicial e foi substituído pelo 103 Early Hints mais elegante. O autor defende deixar o tratamento do HTTP/2 para balanceadores de carga ou proxies reversos, simplificando a implantação e a manutenção para o servidor de aplicativos.

Desenvolvimento Desempenho de Rede

LLPlayer: Um Reprodutor de Mídia Multilíngue para Aprendizagem de Idiomas

2025-02-25

O LLPlayer é um reprodutor de mídia de código aberto projetado para aprendizagem de idiomas. Ele possui exibição de legendas duplas, geração de legendas em tempo real com IA (compatível com 99 idiomas), tradução em tempo real (134 idiomas), reconhecimento de legendas OCR, suporte a vários formatos de vídeo e legenda, pesquisa instantânea de palavras e muito mais. Aproveitando tecnologias como OpenAI Whisper, Google Translate, DeepL e ffmpeg, o LLPlayer oferece alta eficiência e inclui uma barra lateral de legendas e proteção contra spoilers. Todo o código-fonte é escrito em C# para facilitar a personalização.

Desenvolvimento legendas

DeepEP: Uma biblioteca de comunicação eficiente para Mixture-of-Experts

2025-02-25
DeepEP: Uma biblioteca de comunicação eficiente para Mixture-of-Experts

DeepEP é uma biblioteca de comunicação projetada para Mixture-of-Experts (MoE) e paralelismo de especialistas (EP), oferecendo kernels de GPU all-to-all de alta taxa de transferência e baixa latência (despacho e combinação MoE). Ela suporta operações de baixa precisão, incluindo FP8. Otimizada para o algoritmo de portões com limite de grupo no DeepSeek-V3, a DeepEP fornece kernels para encaminhamento de largura de banda de domínio assimétrico (por exemplo, NVLink para RDMA). Esses kernels alcançam alta taxa de transferência, adequados para treinamento e tarefas de preenchimento de inferência. O controle do número de SM (Streaming Multiprocessors) também é suportado. Para decodificação de inferência sensível à latência, kernels de baixa latência usando RDMA puro minimizam os atrasos. Um método de sobreposição de comunicação-computação baseado em hook é incluído, sem exigir recursos SM. A biblioteca é testada com InfiniBand e é teoricamente compatível com RoCE.

Desenvolvimento Comunicação GPU

Blogs ainda são relevantes na era da IA?

2025-02-25
Blogs ainda são relevantes na era da IA?

Este artigo explora o valor do blogging na era do ChatGPT e outras ferramentas de IA. Embora a IA possa acessar e sintetizar informações facilmente, o blogging continua valioso: solidifica o conhecimento próprio, ajuda outras pessoas, constrói uma marca pessoal (embora isso seja difícil de alcançar apenas com blogs), proporciona uma sensação de realização e constrói um portfólio de escrita mostrando habilidades de pensamento, beneficiando o desenvolvimento profissional. O autor argumenta que o principal impacto da IA ​​no blogging é reduzir a sensação de realização da interação com o leitor, mas isso não nega o valor geral do blogging.

Desenvolvimento

Debate entre Tio Bob e John Ousterhout sobre Design de Software

2025-02-25
Debate entre Tio Bob e John Ousterhout sobre Design de Software

Robert "Tio Bob" Martin e John Ousterhout travaram um debate acalorado sobre princípios de design de software, abordando tópicos importantes como comprimento de métodos, comentários de código e Desenvolvimento Guiado por Testes (TDD). Eles discutiram veementemente o grau de decomposição de código, a necessidade de comentários e os prós e contras do TDD, usando exemplos de código e cenários específicos para apoiar seus argumentos. Esse debate destaca a importância das compensações no design de software e a necessidade de evitar extremos ao buscar concisão e legibilidade.

Criando um DSL de construtor HTML em Lua: Uma abordagem inteligente

2025-02-24
Criando um DSL de construtor HTML em Lua: Uma abordagem inteligente

Este artigo demonstra como construir uma Linguagem Específica de Domínio (DSL) em Lua para gerar HTML. O autor usa inteligentemente recursos sintáticos do Lua, como parênteses opcionais e encadeamento de funções, juntamente com ambientes de funções e metatabelas, para criar uma solução concisa e elegante para geração de HTML. Um metamétodo `__index` personalizado gera dinamicamente funções de tags HTML, e uma função `append_all` concatena strings de forma eficiente. O resultado é um DSL de construtor HTML totalmente funcional, melhorando significativamente a legibilidade do código e a eficiência do desenvolvimento. O artigo também destaca a importância crucial da escape de HTML para prevenir vulnerabilidades de segurança.

Desenvolvimento Construtor HTML

Electro: Visualizador de Imagens Leve e Extremamente Rápido

2025-02-24
Electro: Visualizador de Imagens Leve e Extremamente Rápido

Electro é um visualizador de imagens leve e extremamente rápido, construído com Rust. Projetado com a experiência do desenvolvedor em mente, ele possui um terminal de comando integrado e exibe instantaneamente imagens locais e hospedadas na web. Seu ponto forte é o desempenho incomparável — as imagens são carregadas quase instantaneamente. O Electro é de código aberto e facilmente extensível, permitindo que os desenvolvedores contribuam com código ou construam suas próprias versões.

Desenvolvimento visualizador de imagens

Nível gratuito do Geocodio: Equilibrando a prevenção de abusos e usuários legítimos

2025-02-24
Nível gratuito do Geocodio: Equilibrando a prevenção de abusos e usuários legítimos

O Geocodio mantém um nível gratuito apesar do risco de abuso. Inicialmente, o bloqueio simples baseado em IP levou a uma experiência ruim do usuário e desperdício de tempo de suporte. Eles fizeram a transição para um sistema de pontuação de risco granular, usando dezenas de fatores (navegador, IP, e-mail, etc.) para identificar e lidar automaticamente com inscrições de alto risco. Inscrições de médio risco podem enfrentar CAPTCHAs ou verificação de e-mail. Este sistema minimiza a intervenção manual, equilibrando segurança e experiência do usuário, garantindo a sustentabilidade do nível gratuito.

Além de Bancos de Dados Vetoriais: Processamento Eficiente de Embeddings de Texto com Parquet e Polars

2025-02-24
Além de Bancos de Dados Vetoriais: Processamento Eficiente de Embeddings de Texto com Parquet e Polars

Este artigo apresenta um método para processamento eficiente de embeddings de texto sem depender de bancos de dados vetoriais. O autor usa arquivos Parquet para armazenar dados tabulares contendo embeddings de cartas de Magic: The Gathering e seus metadados, e utiliza a biblioteca Polars para busca de similaridade rápida e filtragem de dados. O recurso de cópia zero do Polars e o excelente suporte para dados aninhados tornam essa abordagem mais rápida e eficiente do que os métodos tradicionais de CSV ou Pickle, mantendo alto desempenho mesmo ao filtrar o conjunto de dados. O autor compara outros métodos de armazenamento, como CSV, Pickle e NumPy, concluindo que Parquet combinado com Polars é a escolha ideal para lidar com embeddings de texto de tamanho médio, sendo bancos de dados vetoriais necessários apenas para conjuntos de dados extremamente grandes.

Desenvolvimento embeddings de texto

Neut: Uma linguagem de programação funcional com gerenciamento de memória estática

2025-02-24

Neut é uma linguagem de programação funcional com gerenciamento de memória estática, combinando habilmente suporte completo para λ-cálculo, gerenciamento automático de memória previsível e a ausência de anotações no sistema de tipos. Ao contrário do gerenciamento de lixo tradicional, Neut usa uma abordagem orientada a tipos para lidar com recursos. O compilador garante que cada variável seja usada exatamente uma vez, traduzindo tipos em funções que podem descartar ou copiar valores. Mesmo quando a cópia é necessária, Neut evita sobrecarga desnecessária usando o operador T-necessidade na lógica modal, semelhante aos empréstimos do Rust. Neut compila para LLVM IR e binários e possui um servidor LSP integrado, formatador de código e uma experiência de prototipagem rápida semelhante a linguagens de script. Seu sistema de módulos exclusivo diferencia módulos usando resumos de tarballs e define identidades de módulos com informações de versão.

arXivLabs: Projetos experimentais com colaboradores da comunidade

2025-02-24
arXivLabs: Projetos experimentais com colaboradores 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 de 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

Introdução ao Cálculo Estocástico: De Passos Discretos à Aleatoriedade Contínua

2025-02-24

Esta postagem de blog fornece uma introdução acessível ao cálculo estocástico, começando com o triângulo de Pascal e a distribuição binomial para construir a intuição para o movimento browniano e o cálculo de Itô. Ela explica o significado físico e a derivação matemática do movimento browniano, introduz o lema de Itô e equações diferenciais estocásticas (EDEs), e aborda o cálculo de Stratonovich. A postagem apresenta inúmeras ilustrações e exemplos de código, tornando-a ideal para aqueles que desejam explorar o cálculo estocástico.

Um Bug Oculto no DOS 3.3 SYS.COM: O Mistério da Corrupção de Imagens de Disco NetDrive

2025-02-24

Este artigo detalha a investigação do autor sobre um bug no comando do sistema DOS 3.3 `SYS.COM`. Esse comando copia o código do bootloader para um disco, mas quando usado com imagens de disco virtual NetDrive, ele corrompe a imagem. Por meio de uma análise cuidadosa, o autor descobriu que o `SYS.COM` não verifica o código de retorno de uma chamada Generic IOCTL usada para obter os parâmetros do disco. Quando essa chamada falha (por exemplo, o driver NetDrive não suporta a função), o `SYS.COM` grava erroneamente dados corrompidos no setor de inicialização do disco, corrompendo a imagem. Esse bug só se manifesta em certos tipos de imagens de disco (por exemplo, imagens de disco rígido), pois o DOS tenta recuperar informações de geometria do disco, enquanto as imagens de disquete não. O autor finalmente identifica a causa raiz do bug e explica as condições em que ele ocorre.

Desenvolvimento

Ente: Hospedagem própria de uma alternativa ao Google Fotos e controle da sua privacidade

2025-02-24
Ente: Hospedagem própria de uma alternativa ao Google Fotos e controle da sua privacidade

Esta postagem de blog detalha como hospedar o Ente, uma alternativa de código aberto ao Google Fotos, implantando seu servidor em um cluster Kubernetes e o frontend no GitHub Pages. Ele fornece o código necessário, arquivos de configuração e instruções para configurar um banco de dados Cloudnative-PG, juntamente com a recuperação de segredos do AWS Parameter Store. Embora exija conhecimentos técnicos, é ideal para usuários familiarizados com Kubernetes que priorizam a privacidade. O artigo também abrange a construção de uma imagem Docker personalizada usando GitHub Actions e a gestão de repositórios GitHub com Terraform.

Desenvolvimento

Emacs 30.1: Compilação nativa, suporte para Android e muito mais

2025-02-24
Emacs 30.1: Compilação nativa, suporte para Android e muito mais

O Emacs 30.1 chegou, repleto de novos recursos e melhorias. A compilação nativa agora está ativada por padrão, resultando em um aumento significativo de desempenho. O suporte total para Android também chegou, juntamente com inúmeras melhorias para telas sensíveis ao toque. Outros destaques incluem um analisador JSON integrado, conclusão de minibuffer aprimorada, integração aprimorada do protocolo URI do modo Org e inúmeras melhorias na qualidade de vida. Essa versão representa um grande avanço para o Emacs.

Desenvolvimento Compilação Nativa

Rust no Kernel Linux: Progresso lento, debate acalorado

2025-02-24
Rust no Kernel Linux: Progresso lento, debate acalorado

A integração do Rust no kernel Linux, embora inicialmente promissora, enfrentou ventos contrários significativos. Apesar da aprovação de Linus Torvalds em 2022, o progresso foi lento devido à resistência de desenvolvedores experientes do kernel que hesitam em aprender uma nova linguagem e obstáculos não técnicos. Recentemente, a renúncia de Hector Martin, líder do projeto Asahi Linux, devido a obstáculos à implementação do Rust, acendeu um debate intenso. Embora Torvalds reconheça o potencial do Rust, ele enfatiza que a adoção não será forçada, sugerindo que uma solução mais matizada está em desenvolvimento.

Desenvolvimento

Construindo um Cliente BitTorrent do Zero: Um Projeto de Fim de Semana

2025-02-24

Este artigo detalha um projeto de fim de semana para construir um cliente BitTorrent. Ele explica o protocolo BitTorrent, cobrindo a descoberta de pares, análise de arquivos .torrent (Bencode), comunicação com rastreadores, aperto de mão com pares e download de partes de arquivos. O autor usa Go e fornece trechos de código-chave, incluindo um analisador Bencode, construtor de solicitações de rastreadores, analisador de mensagens e gerenciamento de downloads concorrentes. Detalhes técnicos como bitfields, solicitações de blocos e pipelines são discutidos, destacando o processamento concorrente e o gerenciamento de estado. Embora alguns códigos sejam omitidos, o artigo fornece um roteiro claro para construir um cliente BitTorrent.

Desenvolvimento

openCFS: Ferramenta de Simulação Multifísica de Código Aberto e Madura

2025-02-24

O openCFS é uma ferramenta de modelagem e simulação multifísica baseada em elementos finitos, com 20 anos de desenvolvimento impulsionado por pesquisa. Seu núcleo é usado em pesquisa científica e aplicações industriais. Recursos importantes incluem suporte para vários campos físicos e seus acoplamentos, técnicas de malha não conformes, otimização estrutural, troca de dados flexível, entrada XML com scripts e bibliotecas integradas poderosas. Um amplo conjunto de exemplos, um conjunto abrangente de testes e seu uso em cursos universitários facilitam o aprendizado. Uma comunidade vibrante e o suporte comercial da EnSimTech UG garantem ainda mais seu desenvolvimento contínuo e acessibilidade.

Desenvolvimento elemento finito multifísica

O Mistério do Sublinhado em `target='_blank'`

2025-02-24

Já se perguntou por que `target='_blank'` precisa daquele sublinhado? Antes do HTML5, desenvolvedores usavam `` para criar funcionalidades parecidas com SPA, dividindo a janela em frames com IDs únicos. O atributo `target` especificava em qual frame carregar um link. `_blank` não era um nome de frame; instruía o navegador a abrir uma nova janela (abridoras não eram comuns na época). O sublinhado denotava um valor especial, não um frame. Embora `` esteja depreciado, a convenção `_blank` permanece.

Desenvolvimento

JSON: Uma escolha prática para saída legível por máquina no Unix

2025-02-24

O autor defende o uso de JSON como formato de saída legível por máquina, baseado em sua experiência ao excluir emails de uma fila de correio Postfix. Embora não seja perfeito, o JSON oferece várias vantagens práticas em sistemas Unix: clareza, ampla compatibilidade, suporte abrangente de ferramentas e fácil conversão para outros formatos. Para novos programas, o autor sugere que usar apenas JSON é a abordagem mais simples, evitando as complexidades de projetar formatos personalizados e promovendo a interoperabilidade entre programas Unix.

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

2025-02-24
arXivLabs: Colaboração da Comunidade em Novos Recursos do arXiv

arXivLabs é uma estrutura experimental que permite que colaboradores desenvolvam e compartilhem novos recursos do arXiv diretamente no site. Indivíduos e organizações que trabalham com o arXivLabs adotaram e aceitaram nossos valores de abertura, comunidade, excelência e privacidade de 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

OBS Studio e Fedora Flatpak solucionam disputa

2025-02-24
OBS Studio e Fedora Flatpak solucionam disputa

Um conflito entre a equipe do OBS Studio e os desenvolvedores do Fedora Linux sobre a versão Fedora Flatpak do OBS Studio foi resolvido. Uma ameaça legal inicial elevou a situação, mas ambas as partes se envolveram em discussões. A equipe do OBS Studio retirou seu pedido para remover a propriedade intelectual ou renomear o aplicativo Fedora Flatpak. No futuro, eles colaborarão para resolver problemas técnicos restantes, incluindo regressões em tempo de execução do Qt, mecanismos de relato de bugs e problemas relacionados à aceleração de hardware, fallback do X11 e plug-ins.

Desenvolvimento

OpenAI admite: Mesmo os modelos de IA mais avançados não conseguem substituir programadores humanos

2025-02-24
OpenAI admite: Mesmo os modelos de IA mais avançados não conseguem substituir programadores humanos

Um novo artigo da OpenAI revela que mesmo os modelos de linguagem grandes (LLMs) mais avançados, como GPT-4 e Claude 3.5, são incapazes de lidar com a maioria das tarefas de engenharia de software. Os pesquisadores usaram um novo benchmark, SWE-Lancer, com mais de 1400 tarefas de engenharia de software do Upwork. Os resultados mostraram que esses modelos só conseguiam resolver problemas superficiais, falhando em encontrar bugs ou causas raiz em projetos maiores. Embora os LLMs sejam rápidos, sua precisão e confiabilidade são insuficientes para substituir programadores humanos, contradizendo previsões do CEO da OpenAI, Sam Altman.

Desenvolvimento

Algoritmo de Janela Deslizante Eficiente: Solução O(n) com Filas Funcionais

2025-02-24

Este artigo apresenta um algoritmo eficiente para resolver problemas de janela deslizante usando técnicas de programação funcional. Construindo filas funcionais baseadas em duas pilhas e aproveitando as propriedades de monoides, o algoritmo calcula várias estatísticas de janelas deslizantes, como máximo, mínimo ou soma, em tempo O(n). O artigo detalha a implementação de pilhas e filas anotadas com monoides, fornece exemplos de código e conclui com vários desafios algorítmicos relacionados.

Desenvolvimento janela deslizante

LeetArxiv: LeetCode para artigos do Arxiv - Guias de codificação prática para pesquisa

2025-02-24
LeetArxiv: LeetCode para artigos do Arxiv - Guias de codificação prática para pesquisa

O LeetArxiv oferece guias de codificação semanais e passo a passo baseados em artigos do Arxiv, direcionados a programadores que estão fazendo a transição para carreiras de pesquisa. Um estudo de caso se concentra na implementação da Transformada Discreta de Cosseno (DCT) AAN de um artigo de 1981. O guia fornece uma implementação em C (facilmente adaptável a outras linguagens) detalhando a equação DCT-II e as otimizações AAN: redução de cálculos de cosseno dispendiosos, exploração da simetria, uso de constantes precomputadas e habilitação de paralelismo. A apresentação abrange o fluxograma e o código do algoritmo, tornando a pesquisa complexa acessível por meio de exercícios práticos de codificação.

FlashMLA: Kernel de Decodificação MLA Eficiente para GPUs Hopper

2025-02-24
FlashMLA: Kernel de Decodificação MLA Eficiente para GPUs Hopper

FlashMLA é um kernel de decodificação MLA eficiente, otimizado para GPUs Hopper, projetado para servir sequências de comprimento variável. Alcançando até 3000 GB/s em configurações limitadas por memória e 580 TFLOPS em configurações limitadas por computação em H800 SXM5 usando CUDA 12.6, o FlashMLA usa precisão BF16 e um kvcache com paginação e tamanho de bloco de 64. Inspirado nos projetos FlashAttention 2&3 e Cutlass, o FlashMLA oferece melhorias significativas de desempenho para processamento de sequências em larga escala.

Milagre! Encontrei um bug na função de ordenação!

2025-02-24
Milagre! Encontrei um bug na função de ordenação!

O autor relata uma experiência incrível em seus anos de programação: ele encontrou um bug na função `sort()` integrada do JavaScript! Esse bug causou resultados de classificação incorretos, deixando-o intrigado por muito tempo. Eventualmente, ele relatou o bug à equipe do Code Studio, que respondeu rapidamente e o corrigiu. Essa história ilustra vividamente que até mesmo softwares de sistema aparentemente perfeitos podem ter bugs, e os programadores devem manter uma mentalidade cética, buscando persistentemente a causa raiz dos problemas em vez de culpar cegamente o compilador ou o sistema.

Desenvolvimento função sort

Quebrando a Barreira do Tempo Linear: A Ascensão dos Algoritmos de Tempo Sublinear

2025-02-24

Algoritmos de tempo linear foram considerados por muito tempo o padrão ouro para resolução de problemas. No entanto, com a prevalência de conjuntos de dados massivos, algoritmos de tempo sublinear estão ganhando cada vez mais atenção. Algoritmos de tempo sublinear lêem apenas uma fração minúscula da entrada, um feito aparentemente impossível. Embora algoritmos de tempo sublinear determinísticos existam para alguns problemas, a maioria requer aleatoriedade e fornece soluções aproximadas. Avanços recentes foram feitos em vários problemas, incluindo problemas clássicos de otimização e teste de propriedades. Técnicas como o Lema de Regularidade de Szemerédi e aproximações de matrizes de baixo posto estão se mostrando úteis no projeto de algoritmos de tempo sublinear, mas ainda há muito a ser compreendido sobre seu escopo e limitações.

1 2 152 153 154 156 158 159 160 214 215