Category: Desenvolvimento

Mergulho profundo no cache Caffeine: Desvendando o Window TinyLFU e implementações eficientes

2025-02-02

Este artigo mergulha profundamente no funcionamento interno da biblioteca de cache de alto desempenho Caffeine, focando em sua política de evicção única Window TinyLFU. Ele explica como o Window TinyLFU combina informações de frequência e recência, utilizando uma estrutura de dados CountMinSketch para estimativa eficiente de frequência. Além disso, o artigo analisa os mecanismos de expiração do Caffeine baseados em filas ordenadas e uma roda de temporizador hierárquica, e como sua política de cache adaptativa ajusta dinamicamente as configurações de cache usando um algoritmo de subida de colina para alcançar um gerenciamento de cache de alto desempenho.

Desenvolvimento

Qodo Merge 1.0: Evolução da Revisão de Código com IA

2025-02-02
Qodo Merge 1.0: Evolução da Revisão de Código com IA

O Qodo Merge 1.0, uma ferramenta de revisão de código impulsionada por IA, aborda os desafios inerentes à codificação assistida por IA após mais de um ano de desenvolvimento. A nova versão apresenta um modo de foco em problemas que prioriza problemas críticos como bugs e falhas de segurança; aprendizado dinâmico que refina sugestões com base em mudanças aceitas; integração de contexto de ticket em tempo real; e um comando `/implement` para traduzir feedback em mudanças de código acionáveis. O Qodo Merge 1.0 torna a revisão de código mais precisa, adaptável e eficiente.

Conquistando a Recursão à Esquerda: Corrigindo a Gramática de um Desmontador C++

2025-02-02

Este artigo detalha a jornada do autor ao resolver problemas de recursão à esquerda e recursão mútua à esquerda em uma gramática livre de contexto (CFG) enquanto reescrevia o desmontador C++ da RizinOrg, rz-libdemangle. Começa explicando os conceitos de recursão à esquerda e recursão mútua à esquerda, demonstrando com exemplos simples e diagramas de estado como transformar gramáticas recursivas à esquerda em gramáticas recursivas à direita para evitar recursão infinita. O autor então compartilha um problema do mundo real encontrado no desmontador Itanium ABI, mostrando uma gramática complexa com recursão à esquerda e recursão mútua à esquerda, e como ele usou macros e transformações de gramática inteligentes para resolver esses problemas, evitando erros de estouro de pilha.

PL/Rust: Desempenho Nativo para Funções PostgreSQL em Rust

2025-02-02
PL/Rust: Desempenho Nativo para Funções PostgreSQL em Rust

PL/Rust é uma linguagem processual carregável que permite o desenvolvimento de funções PostgreSQL em Rust, compilando para código de máquina nativo para desempenho otimizado. Ao contrário de alternativas interpretadas, ele utiliza o ecossistema do Rust e a segurança em tempo de compilação. Ele fornece acesso à SPI do Postgres (incluindo consultas dinâmicas e instruções preparadas), tipos Rust seguros para a maioria dos tipos de dados do Postgres e suporte para funções de gatilho. Em sistemas Linux x86_64 e aarch64, ele funciona como uma linguagem 'confiável', oferecendo garantias de segurança aprimoradas; em outros locais, funciona como 'não confiável'. Documentação abrangente, instruções de instalação e suporte de compilação cruzada estão disponíveis.

Desenvolvimento

SQL ou Morte? Série de Seminários da CMU Explora o Futuro dos Bancos de Dados

2025-02-02
SQL ou Morte? Série de Seminários da CMU Explora o Futuro dos Bancos de Dados

O Grupo de Pesquisa de Banco de Dados da Universidade Carnegie Mellon está realizando uma série de seminários, "SQL ou Morte?", explorando maneiras de melhorar dramaticamente o desempenho do SQL ou substituí-lo completamente. As palestras online apresentam especialistas discutindo avanços em otimização de consultas e linguagens de consulta alternativas. Os tópicos variam de procedimentos armazenados em TypeScript a linguagens inovadoras como PRQL e OxQL, prometendo uma visão fascinante do futuro da tecnologia de bancos de dados.

Desenvolvimento linguagem de consulta

Binários nativos multiplataforma do Mill via Github Actions

2025-02-02

O projeto Mill utiliza o Github Actions para construir binários nativos em várias plataformas (Mac, Windows, Linux) e carregá-los para o Maven Central. Uma configuração inteligente separa a publicação de artefatos compatíveis com JVM de binários nativos específicos da plataforma, garantindo compatibilidade multiplataforma. As tarefas `artifactName` e `jar` personalizadas geram arquivos versionados com sufixos de SO e arquitetura de CPU, permitindo que os usuários selecionem o executável apropriado para seu ambiente.

Ponteiros São Complicados II: Bugs Subtis em Otimizações do LLVM

2025-02-02

Esta postagem aprofunda a importância da semântica precisa para representações intermediárias de compilador (IRs), especialmente para linguagens como C, C++ e Rust que permitem manipulação de ponteiros inseguros. O autor demonstra como uma sequência de três otimizações de compilador LLVM aparentemente corretas pode levar a um comportamento de programa incorreto. A causa raiz é a proveniência do ponteiro – as informações extras embutidas em um ponteiro além de seu endereço de memória, detalhando como ele foi calculado. Isso requer uma especificação de IR LLVM mais precisa, incluindo uma definição precisa de comportamento indefinido (UB). Tratar IRs de compilador como linguagens de programação autônomas com especificações rigorosas é fundamental para resolver esses problemas.

Desenvolvimento semântica de ponteiros

Desenvolvedores de código aberto enfrentam sanções da OFAC: um novo guia navega pelas complexidades

2025-02-02
Desenvolvedores de código aberto enfrentam sanções da OFAC: um novo guia navega pelas complexidades

As sanções OFAC do governo dos EUA estão impactando a comunidade de código aberto, particularmente restringindo a colaboração com desenvolvedores de países sancionados. A Fundação Linux lançou um guia abrangente para ajudar os desenvolvedores de código aberto a entender e cumprir os regulamentos da OFAC, evitando riscos legais associados ao trabalho com indivíduos ou entidades sancionados. O guia destaca a "regra dos 50%", esclarece o escopo da isenção de "materiais informativos" e alerta os desenvolvedores para evitar o envolvimento bidirecional ou a colaboração indireta com desenvolvedores de regiões sancionadas. Embora a conformidade não seja fácil, este guia fornece um recurso valioso para desenvolvedores que navegam na complexa interseção de tecnologia, direito e relações internacionais.

Desenvolvimento Sanções OFAC Conformidade

Adeus, Mouse: Construindo uma Área de Trabalho Produtiva Sem Mouse

2025-02-01

Cansado do seu mouse? O autor compartilha sua jornada para uma área de trabalho sem mouse. Usando ferramentas como o gerenciador de janelas com tiling rolável PaperWM, palavras-chave de favoritos do Firefox, a extensão de navegador Vimium e o cliente de email baseado em terminal Aerc, juntamente com a extensão Quake Terminal do GNOME e o Input Remapper, o autor aumentou dramaticamente a produtividade e melhorou a ergonomia. O artigo detalha como usar e configurar essas ferramentas e compartilha sua experiência em ocultar os menus e barras de ferramentas do Emacs para reduzir ainda mais a dependência do mouse.

Desenvolvimento sem mouse

Cosmopolitan 3.0: Escreva uma vez, execute em qualquer lugar (e mais rápido!)

2025-02-01
Cosmopolitan 3.0: Escreva uma vez, execute em qualquer lugar (e mais rápido!)

A biblioteca Cosmopolitan versão 3.0 está aqui! Quase um ano em desenvolvimento, esta versão muda o jogo. Um único executável agora roda em arquiteturas AMD64 e ARM64 em Linux, macOS, Windows, FreeBSD, OpenBSD e NetBSD. Isso é possível graças a um novo linkador, apelink.c, que combina habilmente os formatos de arquivo PE, ELF, Mach-O e PKZIP. O Cosmopolitan 3.0 também apresenta melhorias significativas na compatibilidade com Windows e macOS, além de ganhos significativos em velocidade e eficiência de memória. Incluído está uma "distribuição Linux gorda", Cosmos, contendo ferramentas como Emacs, Vim e CoreUtils. Essa abordagem inovadora oferece não apenas portabilidade incomparável, mas também desempenho superior.

Desenvolvimento executável

Acabe com os cabeçalhos fixos!

2025-02-01

O autor odeia cabeçalhos fixos, aqueles elementos persistentes que grudam no topo dos sites e roubam um precioso espaço na tela. Para combater esse incômodo, ele criou um simples marcador de páginas que remove todos os elementos de posição fixa de uma página da web com um único clique. O marcador usa `querySelectorAll` para encontrar e remover esses elementos de forma eficiente, resultando em uma experiência de leitura mais limpa. O autor detalha os inconvenientes dos cabeçalhos fixos, como espaço reduzido na tela, rolagem interrompida pela barra de espaço e fluxo de leitura interrompido. Embora possa remover outros elementos fixos, uma simples atualização os restaura. Essa solução simples evita a complexidade de folhas de estilo personalizadas ou extensões do navegador.

Desenvolvimento marcador de páginas

Auto-Commit Bot: Commits Git Automatizados com IA Gemini

2025-02-01
Auto-Commit Bot: Commits Git Automatizados com IA Gemini

O Auto-Commit Bot é uma ferramenta Python que automatiza fluxos de trabalho Git. Ele monitora um diretório para alterações, gera mensagens de commit descritivas usando a IA do Google Gemini e as confirma. Isso elimina tarefas repetitivas e garante mensagens consistentes. Os recursos incluem monitoramento de arquivos em tempo real, confirmação automática, mensagens de commit com tecnologia de IA e fácil personalização. Basta instalar as dependências, definir sua chave de API e executar o comando.

Desenvolvimento API Gemini

Executando Python e Pygame em um PC Linux portátil de US$ 30

2025-02-01

Esta publicação detalha como o autor instalou o Debian e executou Python e Pygame no console portátil Miyoo A30 de aproximadamente US$ 30. Após instalar o spruceOS, um ambiente Debian chroot com Python 3, Pygame e bibliotecas necessárias foi criado usando o debootstrap. Para resolver problemas com drivers de gráficos e entrada, bibliotecas essenciais foram copiadas do spruceOS para o chroot. Finalmente, um script foi escrito para adicionar um jogo Pygame à interface do spruceOS, executando com sucesso um jogo personalizado no Miyoo A30. Embora o problema de rotação da tela em 90 graus persista, esta publicação fornece um guia completo para executar programas complexos em um console portátil de baixo custo.

Desenvolvimento

Pare de usar demais os flags de recursos: eles geralmente são desnecessários

2025-02-01
Pare de usar demais os flags de recursos: eles geralmente são desnecessários

Muitas equipes dependem muito do software de gerenciamento de flags de recursos, acreditando que ele resolve todos os problemas, mas isso introduz complexidade e riscos. Este artigo argumenta que, para a maioria das equipes, um simples arquivo de configuração JSON é suficiente; lido na inicialização do aplicativo para controlar a visibilidade do recurso. O uso excessivo de flags de recursos leva a código inadministrável e aumento dos riscos de segurança. O autor sugere que apenas quando for necessário alterar recursos em tempo de execução em larga escala, deve-se considerar o uso de software de gerenciamento de flags de recursos complexo, evitando a otimização prematura.

Desenvolvimento flags de recursos

BZip3: Um Sucessor Superior ao BZip2

2025-02-01
BZip3: Um Sucessor Superior ao BZip2

O BZip3 é um sucessor mais rápido e eficiente do BZip2, oferecendo taxas de compressão mais altas e desempenho aprimorado. Isso é alcançado por meio de um codificador de entropia de mistura de contexto de ordem 0, uma transformada Burrows-Wheeler rápida que utiliza matrizes de sufixos e uma passagem RLE com Lempel Ziv + Predição baseada em correspondência de string do tipo LZ77 e modelagem de contexto do tipo PPM. Benchmarks que o comparam a outros algoritmos de compressão, incluindo testes em um arquivo massivo de código-fonte Perl, demonstram suas vantagens significativas. O desempenho do BZip3 depende muito do compilador, com compilações x64 Linux clang13 mostrando velocidades impressionantes. O projeto é licenciado sob LGPLv3.

Desenvolvimento

Reprompt: Acelere sua carreira em IA em 3-4 anos

2025-02-01
Reprompt: Acelere sua carreira em IA em 3-4 anos

A Reprompt está contratando! Quer acelerar sua carreira em IA? Junte-se a nós e ganhe 3-4 anos de experiência em apenas três. Torne-se um especialista em IA top 0,01%, colabore com engenheiros experientes do Facebook, Robinhood e Mapbox, e aprenda sobre financiamento, gerenciamento de produto e liderança de equipe. Você construirá sistemas de extração de dados de IA de ponta. Espírito de colaboração, adaptabilidade e uma forte ética de trabalho são essenciais.

Desenvolvimento Desenvolvimento de Carreira

Meu Gerador Simples de Números Aleatórios Ficou Viral (e Quebrou)

2025-02-01
Meu Gerador Simples de Números Aleatórios Ficou Viral (e Quebrou)

Meses depois de criar um site simples de gerador de números aleatórios, o autor quase se esqueceu dele. Recentemente, ele inesperadamente ficou viral, levando a uma enxurrada de visitantes e vários problemas no servidor: esgotamento do pool de conexões, erros de análise de UUID e solicitações maliciosas. Por meio de logs, monitoramento e depuração, o autor resolveu gradualmente esses problemas e adicionou medidas preventivas, como limitação de taxa e restrições de comprimento de caracteres. Essa experiência destacou a importância de logs robustos, monitoramento e métricas, mesmo para projetos aparentemente simples.

Apple torna o Swift Build de código aberto: Um sistema de construção unificado para Swift

2025-02-01
Apple torna o Swift Build de código aberto: Um sistema de construção unificado para Swift

A Apple tornou o Swift Build de código aberto, seu poderoso e extensível mecanismo de construção usado pelo Xcode e pelos próprios sistemas operacionais da Apple. O Swift Build visa fornecer uma experiência de construção multiplataforma consistente e flexível para projetos Swift, com suporte para Linux e Windows. Ele apresenta integração robusta com o compilador Swift, otimizações do gráfico de construção para o máximo de paralelismo e suporte para uma ampla variedade de tipos de produtos. Isso resolve inconsistências entre os diferentes sistemas de construção usados no Swift Package Manager e no Xcode. Essa mudança deve fornecer aos desenvolvedores Swift uma experiência de desenvolvimento mais consistente e eficiente, preparando o terreno para melhorias e otimizações futuras.

Desenvolvimento Sistema de Construção

arXivLabs: Experimentos com recursos impulsionados pela comunidade

2025-02-01
arXivLabs: Experimentos com recursos impulsionados pela comunidade

arXivLabs é uma estrutura que permite a colaboradores desenvolverem e compartilharem novos recursos do arXiv diretamente no site. Participantes, tanto indivíduos quanto organizações, abraçam os valores do arXiv de abertura, comunidade, excelência e privacidade de dados do usuário. O arXiv está comprometido com esses valores e apenas se associa a aqueles que os compartilham. Tem uma ideia para um projeto que beneficiará a comunidade arXiv? Saiba mais sobre o arXivLabs.

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

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

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

Desenvolvimento

Executando DeepSeek R1 no seu próprio hardware: Um guia rápido e fácil

2025-02-01

Este artigo fornece um guia simples sobre como executar o modelo de linguagem grande DeepSeek R1 no seu próprio hardware. Usando Arch Linux e a ferramenta Ollama, o autor guia o leitor na instalação, configuração e execução do DeepSeek R1. O processo requer um computador ou VM com uma GPU dedicada e algum conhecimento básico de Linux. A segurança é enfatizada; é recomendável não executar isso no seu sistema principal. Por fim, o leitor pode executar o DeepSeek R1 localmente, desfrutando de uma experiência de IA sem nuvem, sem assinatura e sem vazamento de dados.

Desenvolvimento

FOSDEM 2024: Uma programação repleta de novidades em código aberto

2025-02-01
FOSDEM 2024: Uma programação repleta de novidades em código aberto

A programação do FOSDEM 2024 foi divulgada, com uma variedade de palestras e workshops. Os tópicos incluem Rust for Linux, um novo alocador de memória, LLVM libc, extensões SMB3.11 Unix, NixOS, testes de documentação de API com IA, um RISC-V TEE, um coletor de lixo de ponto de segurança, detecção aprimorada de spam e muito mais. Os painéis abordam ética de IA, integração de aplicativos colaborativos, banco de dados unificado RISC-V, atualizações do Android, HAMNET, DPoP e OpenLayers. Até mesmo desenvolvedores juniores são atendidos com introduções à programação em Python e computadores. Independentemente de sua área de interesse, o FOSDEM 2024 tem algo para você.

Visualizando os Livros do Mundo no Espaço ISBN

2025-02-01
Visualizando os Livros do Mundo no Espaço ISBN

Um desenvolvedor criou uma visualização impressionante dos livros do mundo usando ISBNs. Algoritmos inteligentes e curvas de preenchimento de espaço mapeiam conjuntos de dados massivos em um espaço 2D, renderizados em tempo real com WebGL e shaders GLSL. Os usuários podem explorar anos de publicação, países e muito mais, até mesmo personalizando a visualização. Este projeto mostra o poder da visualização de dados e a paixão de um desenvolvedor por conhecimento e tecnologia.

Desenvolvimento

De Vim e Jekyll para o Dropbox Paper: Melhorando meu fluxo de trabalho de blog

2025-02-01

O blogueiro Kyle Conroy reflete sobre seis anos de blog ineficiente, com uma média de menos de um post por ano. Seu fluxo de trabalho anterior envolvia escrever Markdown no Vim, gerar HTML com Jekyll e implantar no Heroku — um processo complicado e sem colaboração. Depois de experimentar o Dropbox Paper, ele descobriu que a exportação Markdown, a colaboração em tempo real e os recursos de comentários melhoraram significativamente sua eficiência de escrita, permitindo até mesmo escrever em seu celular enquanto esperava na fila. Embora a API do Paper tenha algumas limitações, ele lançou um cliente Go de código aberto e pretende continuar usando o Paper para blogar.

arXivLabs: Desenvolvimento de recursos do arXiv impulsionado pela comunidade

2025-02-01
arXivLabs: Desenvolvimento de recursos do arXiv impulsionado pela comunidade

arXivLabs é uma estrutura que permite a colaboradores desenvolverem e compartilharem novos recursos do arXiv diretamente no site. Participantes, indivíduos e organizações, abraçam os valores do arXiv de abertura, comunidade, excelência e privacidade dos dados do usuário. O arXiv está comprometido com esses valores e somente se associa a aqueles que os compartilham. Tem alguma ideia para melhorar a comunidade do arXiv? Saiba mais sobre o arXivLabs.

Desenvolvimento

Yandex lança Perforator: Ferramenta de Perfilhamento Contínuo sem Impacto na Produção

2025-02-01
Yandex lança Perforator: Ferramenta de Perfilhamento Contínuo sem Impacto na Produção

A Yandex lançou o Perforator, uma ferramenta de perfilhamento contínuo de código aberto baseada na tecnologia eBPF. O Perforator coleta perfis de CPU de ambientes de produção sem afetar o desempenho. Já implantado em dezenas de milhares de servidores Yandex, ele ajuda os desenvolvedores a identificar e resolver gargalos de desempenho. Suporta linguagens como C++, C, Go e Rust (com suporte experimental para Java e Python), possui armazenamento escalonável, uma linguagem de consulta amigável e IU, e geração de perfis sPGO para otimização guiada por perfil (PGO). O Perforator possui consumo mínimo de recursos e é facilmente implantável em vários ambientes, de laptops a clusters Kubernetes.

Desenvolvimento perfilhamento de desempenho

A Complexidade do Neovim: Dois Anos Depois, Sinto Saudades do Vim Simples

2025-02-01
A Complexidade do Neovim: Dois Anos Depois, Sinto Saudades do Vim Simples

Após quase dois anos usando o Neovim, o autor descobriu que sua complexidade é esmagadora. Embora o Neovim seja mais rápido e poderoso, seu gerenciamento de plug-ins e configuração são muito mais intrincados do que a simplicidade do Vim original. O ecossistema de plug-ins do Neovim é rico, mas exige uma configuração e coordenação extensas para funcionar corretamente, um contraste gritante com a simplicidade do Vim. O autor espera um Neovim futuro que priorize a experiência do usuário, reduzindo a configuração desnecessária e oferecendo mais funcionalidades prontas para uso.

Desenvolvimento Gerenciamento de Plug-ins

Gerando gráficos de funções como árvores binárias

2025-02-01

Esta postagem descreve um algoritmo que usa Python e a biblioteca NetworkX para gerar uma árvore binária. O algoritmo é baseado em uma função f(x) = [(x << 1) + 2, (x << 1) + 3], construindo um gráfico iterando sobre um domínio numérico e usando a saída da função para definir conexões entre nós. A postagem inclui implementação de código detalhada e explicações matemáticas, demonstrando como uma função matemática pode ser transformada em uma representação gráfica.

Desenvolvimento

Hoppscotch: Uma ferramenta leve de desenvolvimento de API

2025-02-01
Hoppscotch: Uma ferramenta leve de desenvolvimento de API

Hoppscotch é uma ferramenta leve e rápida para desenvolvimento de APIs, com uma interface de usuário minimalista e recursos abrangentes. Suporta vários métodos HTTP, personalização de temas, instalação de PWA, WebSocket, Server-Sent Events, Socket.IO, MQTT e GraphQL. Recursos avançados incluem histórico de solicitações, gerenciamento de coleções, scripts pré-solicitação, testes pós-solicitação, variáveis de ambiente, colaboração em equipe e gerenciamento de espaços de trabalho, permitindo testes e desenvolvimento de APIs eficientes. Os usuários podem criar e gerenciar solicitações de API facilmente e compartilhar e colaborar de várias maneiras.

A especialista em marketing da FreeBSD Foundation não usa FreeBSD?

2025-02-01

Na EuroBSDCon 2024, Kim McMahon, especialista em marketing contratada pela FreeBSD Foundation, fez uma apresentação defendendo o FreeBSD, mas admitiu usar um Mac e expressou desdém por usuários de Linux e Windows. Isso causou indignação na comunidade, acusando-a de hipocrisia e ser uma 'falsa profeta'. O artigo critica grandes empresas de tecnologia por lucrarem com comunidades de código aberto, ao mesmo tempo em que restringem a liberdade e violam a privacidade, expressando preocupações sobre o futuro do código aberto.

Desenvolvimento
1 2 161 162 163 165 167 168 169 204 205