Category: 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

Não crie sua própria criptografia: por que os desenvolvedores continuam falhando na criptografia

2025-02-01
Não crie sua própria criptografia: por que os desenvolvedores continuam falhando na criptografia

Desenvolvedores frequentemente acreditam erroneamente que o uso de bibliotecas de criptografia de baixo nível evita os riscos de 'criar sua própria criptografia'. Este artigo argumenta que muitos desenvolvedores não entendem a criptografia, e mesmo o uso de bibliotecas existentes não garante segurança se erros forem cometidos no design do protocolo ou no gerenciamento de chaves. O autor apresenta exemplos do mundo real e destaca a importância de um gerenciamento de chaves robusto e a necessidade de os desenvolvedores entenderem profundamente e terem revisão especializada de suas implementações criptográficas.

Desenvolvimento

Fuja das Gigantes: Abraçando a Liberdade e os Desafios do Linux

2025-02-01

Este artigo mergulha nas razões para mudar de sistemas operacionais proprietários para o Linux. O Linux, baseado em princípios de código aberto, dá aos usuários controle completo sobre seu ambiente de computação e oferece uma grande quantidade de aplicativos gratuitos. Embora o Linux possa apresentar desafios, como uma curva de aprendizado íngreme e problemas de compatibilidade, seu forte suporte comunitário, alta personalização e proteção da privacidade do usuário o tornam uma opção muito atraente. O artigo também apresenta distribuições do Linux amigáveis ​​para iniciantes (como Ubuntu, Linux Mint e Fedora) e algumas alternativas de software de código aberto comumente usadas.

Desenvolvimento

Terminal Linux do Android 16 agora executa aplicativos gráficos Linux

2025-02-01
Terminal Linux do Android 16 agora executa aplicativos gráficos Linux

A ambição do Google de transformar o Android em um sistema operacional de PC completo está dando um grande passo. O aplicativo Terminal Linux na próxima versão beta do Android 16 agora possui a capacidade de executar aplicativos gráficos Linux, incluindo Doom. Essa façanha impressionante se deve a melhorias na aceleração de hardware e suporte ao servidor de exibição. Embora ainda não esteja disponível na versão beta mais recente, essa funcionalidade, que utiliza o Android Virtualization Framework (AVF), prepara o caminho para executar programas de desktop mais complexos no Android, potencialmente fechando a lacuna entre o Android e o Chrome OS.

Por que o Tracebit escolheu C#? A história da pilha de tecnologia de uma startup de segurança

2025-02-01
Por que o Tracebit escolheu C#? A história da pilha de tecnologia de uma startup de segurança

O Tracebit, um produto de segurança SaaS B2B, surpreendentemente escolheu C# em vez de alternativas populares como Python ou Go. O autor detalha o raciocínio por trás dessa decisão, considerando fatores como produtividade, disponibilidade de código aberto, recursos multiplataforma, popularidade, segurança de memória, coleta de lixo, tipagem estática, estabilidade, bibliotecas integradas e ferramentas. Os pontos fortes do C# em produtividade, estabilidade e um ecossistema rico se mostraram cruciais para a rápida iteração e crescimento do Tracebit, especialmente no gerenciamento de uma grande base de código e na colaboração eficaz dentro de uma equipe.

Servidor Mirascope MCP: Integrando LLMs com Serviços Locais de Forma Segura

2025-02-01
Servidor Mirascope MCP: Integrando LLMs com Serviços Locais de Forma Segura

O servidor MCP (Protocolo de Contexto de Modelo) do Mirascope permite expor recursos, ferramentas e prompts a clientes LLM por meio de um protocolo padronizado. Este artigo demonstra a construção de um servidor simples de recomendação de livros usando MCP, mostrando como registrar ferramentas, recursos e prompts. Ele detalha dois estilos de definição: decorador e função-primeiro. O servidor MCP suporta vários recursos, incluindo funções síncronas e assíncronas, opções de configuração flexíveis e compatibilidade com ferramentas e prompts Mirascope padrão, permitindo a integração segura e confiável entre clientes LLM e serviços locais.

Desenvolvimento

Mentiras que Programadores Acreditam Sobre Ponteiros Nulos

2025-02-01
Mentiras que Programadores Acreditam Sobre Ponteiros Nulos

Este artigo desmascara equívocos comuns sobre ponteiros nulos. Explora falácias que vão do simples (a dereferência de um ponteiro nulo nem sempre causa um crash imediato do programa) ao bizarro (o endereço de um ponteiro nulo nem sempre é 0). O autor argumenta contra a dependência em otimizações do compilador ou especificidades de hardware, destacando os perigos de assumir comportamentos consistentes entre plataformas. O artigo enfatiza que C deve ser tratado como uma linguagem de alto nível, não apenas como "assembly portátil", e encoraja o uso de recursos de segurança de memória de linguagens modernas para código mais robusto e portátil.

Desenvolvimento ponteiro nulo

Ferramenta de Coleta de Dados Open Source RudderStack Coleta Senhas

2025-02-01
Ferramenta de Coleta de Dados Open Source RudderStack Coleta Senhas

A ferramenta de coleta de dados de código aberto RudderStack foi descoberta com uma grave vulnerabilidade de segurança que, em determinadas circunstâncias, coleta senhas de usuários. A vulnerabilidade decorre de seu recurso autotrack, que coleta todos os atributos DOM dos elementos em que um usuário clica. Esses atributos podem conter informações sensíveis, como senhas. Isso reflete uma vulnerabilidade semelhante encontrada no Mixpanel há dois anos. Embora a RudderStack tenha corrigido parcialmente o problema, a correção está incompleta e riscos potenciais permanecem. Os usuários são aconselhados a proceder com cautela e monitorar as atualizações.

Desenvolvimento coleta de dados

Sparrow: Implementação C++ Leve do Apache Arrow

2025-02-01
Sparrow: Implementação C++ Leve do Apache Arrow

Sparrow é uma nova biblioteca C++ projetada para simplificar a integração do formato colunar do Apache Arrow. Criada para atender às necessidades de projetos como o ArcticDB, ela fornece uma API C++ leve e moderna, focada na leitura e escrita de dados Arrow. Aproveitando iteradores, intervalos e conceitos da biblioteca padrão C++, o Sparrow oferece uma interface limpa e fácil de usar, facilitando a integração com projetos C++ existentes. Ele suporta vários tipos de dados, incluindo tratamento de valores nulos, e fornece construtores para simplificar a criação de estruturas de dados complexas.

Desenvolvimento Armazenamento Colunar

Temporizadores Watchdog: Um Mal Necessário (ou Bem Essencial)?

2025-01-31

Este artigo explora o papel crítico dos temporizadores watchdog em sistemas embarcados. Usando a falha da missão espacial Clementine devido a um watchdog mal implementado e a necessidade de reinicializar um exaustor de cozinha como exemplos, o autor destaca a importância de temporizadores watchdog confiáveis na prevenção de falhas de software. O artigo detalha vários projetos de temporizadores watchdog, incluindo opções internas e externas, e oferece estratégias para construir temporizadores watchdog altamente confiáveis. Isso inclui o uso de watchdogs com janela, watchdogs externos independentes da CPU e o monitoramento do estado de todas as tarefas em um sistema multitarefa. O autor defende a inclusão de temporizadores watchdog até mesmo em sistemas aparentemente simples, defendendo técnicas como redefinições periódicas de estruturas de dados para aumentar a confiabilidade.

Desenvolvimento temporizadores watchdog

Executando Linux em um PDF: Um emulador RISC-V no seu navegador

2025-01-31
Executando Linux em um PDF: Um emulador RISC-V no seu navegador

O desenvolvedor @ading2210 conseguiu o feito notável de executar um sistema Linux dentro de um arquivo PDF. Aproveitando o mecanismo Javascript dentro de PDFs e uma versão compilada em asm.js do emulador RISC-V TinyEMU, um ambiente Linux funcional é criado. A saída é exibida usando caracteres ASCII, e a entrada é gerenciada por meio de um teclado virtual. Embora os tempos de inicialização sejam lentos (30-60 segundos), o projeto mostra as capacidades surpreendentes do formato PDF. O código é de código aberto e suporta sistemas de 32 e 64 bits.

Desenvolvimento

Experimento de Programação Assíncrona: Integrando Lua com libuv e Módulos C

2025-01-31
Experimento de Programação Assíncrona: Integrando Lua com libuv e Módulos C

Este projeto explora a integração de módulos compilados em C com scripts Lua, utilizando a biblioteca libuv para operações assíncronas. O projeto inclui o interpretador Lua, a biblioteca libuv e módulos C personalizados, demonstrando como compilar e carregar módulos C em Lua, resultando em um servidor HTTP simples. A estrutura do projeto é clara, com instruções detalhadas de instalação e compilação, além de exemplos de código, tornando-o ideal para aprender sobre a integração de Lua e C e técnicas de programação assíncrona.

Desenvolvimento

O triunfo inesperado da amostragem por rejeição: um mergulho profundo nos testes de desempenho

2025-01-31

Ao otimizar seu ray tracer, PSRayTracing, o autor se aprofundou nos testes de desempenho para algoritmos que geram vetores aleatórios dentro de um círculo/esfera unitária. Inicialmente, ele acreditava que uma solução analítica seria mais eficiente do que a amostragem por rejeição. No entanto, benchmarks em Python e C++, em vários compiladores e plataformas de hardware, produziram resultados surpreendentes: com otimizações de compilador ativadas, a amostragem por rejeição frequentemente superou a abordagem analítica. O autor conclui que testes de desempenho práticos são cruciais ao otimizar o código, evitando a dependência de suposições teóricas, pois as estratégias de otimização do compilador e as variações de hardware afetam significativamente o desempenho final.

arXivLabs: Projetos Experimentais com Colaboradores da Comunidade

2025-01-31
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 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 projetos experimentais

arXivLabs: Experimentos com Colaboração da Comunidade

2025-01-31
arXivLabs: Experimentos com Colaboração da Comunidade

arXivLabs é uma estrutura que permite a colaboradores desenvolverem e compartilharem novos recursos diretamente no site do arXiv. 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 plataforma aberta

A Classe Singleton do Ruby: Um mergulho profundo

2025-01-31

Este artigo mergulha na classe singleton do Ruby, um recurso crucial para sua semântica orientada a objetos, apesar de ter faltado um nome oficial por anos. Ele explica que uma classe singleton não é realmente um singleton ou uma classe, mas sim uma solução elegante para o problema de anexar métodos a uma classe específica em uma linguagem puramente orientada a objetos. O artigo compara as soluções em Python e Smalltalk, detalhando o mecanismo do Ruby para implementar métodos de classe usando classes singleton, incluindo três sintaxes para definir métodos de classe singleton. Finalmente, ele explora por que o Ruby escolheu essa abordagem, destacando a consistência e a importância das classes singleton dentro do sistema orientado a objetos do Ruby.

Desenvolvimento Classe Singleton

O Enigma do Desembrulho da Pilha no Perf

2025-01-31
O Enigma do Desembrulho da Pilha no Perf

Perf, uma poderosa ferramenta de análise de desempenho, usa interrupções de estouro de contador PMU para capturar estados de thread para perfilhamento. No entanto, o desembrulho da pilha apresenta um desafio. Compiladores modernos omitem ponteiros de quadro por padrão, tornando o rastreamento de pilha difícil. Embora seja possível recompilar com -fno-omit-frame-pointer, é caro e pode levar a incompatibilidades de bibliotecas do sistema. DWARF oferece uma alternativa, mas sua complexidade e sobrecarga de desempenho são substanciais, levando Linus Torvalds a rejeitar seu uso no desembrulho de pilha do kernel. Portanto, o Perf emprega um compromisso: copiar apenas a parte superior da pilha para o espaço do usuário para desembrulho. Isso limita o tamanho da pilha (65.528 bytes), mas equilibra efetivamente o desempenho e a praticidade.

Biblioteca de Scripting em Go: script — Simplificando Tarefas de Administração de Sistemas

2025-01-31
Biblioteca de Scripting em Go: script — Simplificando Tarefas de Administração de Sistemas

A biblioteca `script` para Go oferece recursos semelhantes a scripts shell para administradores de sistemas, incluindo leitura de arquivos, execução de subprocessos, contagem de linhas, correspondência de strings e muito mais. Ela processa fluxos de dados usando uma abordagem de pipeline com uma API limpa, tornando a programação em Go tão eficiente e conveniente quanto scripts shell. `script` suporta uma ampla gama de operações, desde E/S de arquivos e solicitações HTTP até execução de comandos externos e filtros personalizados, simplificando significativamente as tarefas de administração de sistemas. Por exemplo, ela replica facilmente a funcionalidade do `grep` e suporta execução concorrente para melhor desempenho.

Desenvolvimento

uscope: Um depurador gráfico de código nativo para Linux

2025-01-31
uscope: Um depurador gráfico de código nativo para Linux

uscope é uma ferramenta de depuração gráfica de código nativo e cadeia de ferramentas de introspecção para Linux, atualmente em desenvolvimento inicial. O autor planeja adicionar recursos como suporte para várias linguagens de programação (C, Zig, C++, Go, Rust, Odin, Jai, etc.), depuração de programas multithread, navegação de código, depuração remota e muito mais. O projeto visa construir um sistema de depuração flexível e extensível com uma interface amigável para o usuário. O autor também planeja construí-lo como uma biblioteca para que outros desenvolvedores possam construir ferramentas mais interessantes com base nele.

Desenvolvimento código nativo

VoidDB supera LMDB, BoltDB, LevelDB e BadgerDB em benchmarks

2025-01-31
VoidDB supera LMDB, BoltDB, LevelDB e BadgerDB em benchmarks

Benchmarks recentes revelam o desempenho superior do VoidDB em comparação com bancos de dados incorporados líderes, como LMDB, BoltDB, LevelDB e BadgerDB. O VoidDB supera significativamente a concorrência nas operações Put, Get e GetNext. Especificamente, a operação Put do VoidDB é quase quatro vezes mais rápida que a do BoltDB e quase três vezes mais rápida que a do LevelDB. Isso destaca o desempenho convincente do VoidDB em cenários de alta taxa de transferência, oferecendo aos desenvolvedores uma opção de banco de dados altamente eficiente e confiável.

Desenvolvimento banco de dados incorporado

MillenniumDB: Um novo sistema de gerenciamento de banco de dados orientado a grafos

2025-01-31
MillenniumDB: Um novo sistema de gerenciamento de banco de dados orientado a grafos

MillenniumDB é um sistema de gerenciamento de banco de dados orientado a grafos desenvolvido pelo Millennium Institute for Foundational Research on Data (IMFD). Ele suporta vários modelos de grafos, oferecendo suporte bastante completo para RDF/SPARQL e uma linguagem de consulta de grafo de propriedades personalizada. Embora ainda esteja em desenvolvimento ativo e não esteja pronto para produção, ele fornece funcionalidade substancial e planeja adicionar suporte a GQL em breve. São fornecidas instruções detalhadas de instalação, configuração e uso, incluindo implantação do Docker.

Linux 6.14: Atualizações de Virtualização KVM

2025-01-31

O próximo kernel Linux 6.14 inclui diversas melhorias no subsistema de Máquina Virtual baseada em Kernel (KVM). As atualizações incluem: remoção de limpezas de TLB redundantes em CPUs AMD; reformulação da infraestrutura de recursos KVM x86 CPUID para melhor rastreamento de capacidades de vCPU; trabalho contínuo no suporte a máquinas virtuais Intel Trust Domain Extensions (TDX); aprimoramento do tratamento de VM-exit para melhor paridade entre VMX e SVM; e suporte adicionado para as extensões Zabha, Svvptc e Ziccrse para convidados RISC-V KVM. Essas mudanças prometem melhor desempenho e estabilidade para máquinas virtuais.

Desenvolvimento

Construindo Malhas com Incorporação Esférica: Uma Nova Abordagem de Reconstrução de Superfície

2025-01-31

Este artigo explora uma nova abordagem para reconstrução de superfície 3D: incorporação esférica. Este método projeta uma nuvem de pontos em uma esfera e, em seguida, usa o casco convexo para construir uma malha, abordando os problemas de buracos que os métodos tradicionais podem encontrar ao lidar com formas complexas e dados ausentes. Embora este método mostre algumas vantagens ao processar o modelo Stanford Bunny, especialmente em garantir a integridade da malha, ainda há espaço para melhorias em eficiência e precisão. Em comparação com métodos tradicionais, como a reconstrução de superfície de Poisson, ele requer mais iterações e ajuste de parâmetros para atingir resultados ideais. O artigo detalha o processo de implementação do algoritmo e demonstra o desempenho do algoritmo sob diferentes parâmetros com exemplos de código.

FOSDEM 2025: Vislumbrando a trilha de dispositivos móveis de código aberto

2025-01-31
FOSDEM 2025: Vislumbrando a trilha de dispositivos móveis de código aberto

O FOSDEM, um evento gratuito para desenvolvedores de software em Bruxelas, Bélgica (1º e 2º de fevereiro de 2025), terá uma trilha dedicada a 'FOSS em dispositivos móveis'. Esta sessão de meio dia (1º de fevereiro, 14h55 - 19h00) sediará várias palestras sobre desenvolvimento móvel de código aberto. Além das palestras, vários estandes de projetos oferecem oportunidades para networking e colaboração. Um encontro casual está programado para domingo, 2 de fevereiro, às 14h. Não perca a chance de se conectar com outros desenvolvedores e pegar alguns adesivos!

Desenvolvimento Desenvolvimento Mobile

Restrições de Aplicação de Sugestões de Código GitHub: Problemas que Você Pode Encontrar

2025-01-31
Restrições de Aplicação de Sugestões de Código GitHub: Problemas que Você Pode Encontrar

Este trecho da documentação do GitHub lista várias restrições encontradas ao aplicar sugestões de código, como nenhuma alteração de código, pull requests fechados, visualização de um subconjunto de alterações, aplicação de apenas uma sugestão por linha, aplicação em linhas excluídas, sugestões inválidas e outras restrições temporárias. Essas limitações visam manter a integridade e a consistência da base de código e garantir a aplicação eficaz das sugestões.

ldump: Serializador Lua para Estruturas de Dados Complexas

2025-01-31
ldump: Serializador Lua para Estruturas de Dados Complexas

ldump é um serializador Lua robusto capaz de lidar com estruturas de dados complexas, incluindo referências circulares, funções (mesmo com upvalues), metatabelas, corrotinas e dados do usuário. Ele serializa dados em código Lua executável, desserializado via `load(data)()`. O ldump prioriza funcionalidade e flexibilidade em vez de velocidade e tamanho, tornando-o ideal para cenários que exigem o salvamento de estados de jogos complexos. Embora a saída seja grande, algoritmos de compressão modernos podem reduzir significativamente seu tamanho. Ele suporta Lua 5.1 a 5.4 e LuaJIT, e foi extensivamente testado para casos de borda.

Desenvolvimento
1 2 172 173 174 176 178 179 180 214 215