Category: Desenvolvimento

Escapando do Inferno do YAML: KSON, uma linguagem de configuração projetada para humanos

2025-09-18
Escapando do Inferno do YAML: KSON, uma linguagem de configuração projetada para humanos

Cansado das infinitas dores de cabeça com arquivos de configuração YAML? Este artigo conta a história da queda de um programador da armadilha doce do YAML para um abismo doloroso, e apresenta o KSON — um projeto de código aberto dedicado a melhorar a experiência de configuração. O KSON é compatível com JSON e YAML, e adiciona muitos recursos amigáveis ao usuário, como tolerância a erros de indentação e suporte a editores de código robustos, com o objetivo de tornar a configuração uma alegria, e não um pesadelo.

Desenvolvimento

Geizhals doa US$ 10.000 para garantir o futuro do Perl 5

2025-09-18
Geizhals doa US$ 10.000 para garantir o futuro do Perl 5

O Geizhals Preisvergleich, um site alemão de comparação de preços fundado em 1997, doou US$ 10.000 à Fundação Perl e Raku para apoiar o Fundo de Manutenção do Núcleo do Perl 5. Construído com Perl desde o início, a doação do Geizhals destaca seu compromisso com o código aberto e a estabilidade a longo prazo do Perl. O fundo destina-se a correções críticas de bugs, garantindo que o Perl permaneça estável e seguro para inúmeros usuários e organizações. Essa contribuição generosa destaca o papel vital do apoio da comunidade na manutenção da infraestrutura de código aberto essencial.

Desenvolvimento Doação

Codificação assistida por IA: Dominando a unidade de trabalho

2025-09-18

Codificação assistida por IA eficaz não se trata apenas de modelos inteligentes; trata-se de gerenciar meticulosamente as unidades de trabalho. O autor argumenta que dividir tarefas em unidades de tamanho apropriado é crucial. Muito pequenas, e a eficiência sofre; muito grandes, e a perda de contexto leva ao acúmulo de erros. A unidade ideal deve possuir um valor comercial claro, como histórias de usuário, permitindo revisão humana e correção de erros, minimizando o acúmulo de erros de IA. O projeto StoryMachine visa definir unidades de trabalho mais eficazes para aprimorar a eficiência e a precisão da codificação assistida por IA, tornando, em última análise, o desenvolvimento de IA menos arriscado e mais fácil.

Desenvolvimento gerenciamento de contexto

KDE Plasma: Uma Experiência de Desktop Linux Surpreendentemente Prazerosa

2025-09-18

O autor recentemente mudou o ambiente de desktop de sua máquina de jogos para KDE Plasma, inicialmente para facilitar o uso de sua esposa. No entanto, ele ficou agradavelmente surpreso com seus recursos abrangentes e velocidade impressionante. O applet de rede do KDE Plasma fornece informações de rede extensas; sua ferramenta de captura de tela integrada é poderosa; e suas regras de janela nas Configurações do Sistema permitem uma extensa personalização de janelas de aplicativos. Além disso, o KDE Plasma possui muitas ferramentas pré-integradas, como configuração de permissões Flatpak, visualização de informações de hardware e prevenção de suspensão—recursos que normalmente exigem instalações de software separadas no Windows e macOS. Embora tenha encontrado problemas menores no início, o autor considerou o KDE Plasma uma experiência muito satisfatória, chamando-o do melhor ambiente de desktop Linux que usou em anos.

Desenvolvimento Ambiente de Desktop Linux

Evite o sono do desktop remoto: um truque simples do systemd-inhibit

2025-09-18
Evite o sono do desktop remoto: um truque simples do systemd-inhibit

Frustrado com sessões de desktop remoto sendo interrompidas pelo seu computador entrando em suspensão? Este artigo apresenta uma solução inteligente usando o comando `systemd-inhibit` e aliases do bash. Dois comandos simples, `block` e `unblock`, são criados. `block` inicia um processo em segundo plano que impede a suspensão, enquanto `unblock` mata esse processo, permitindo que o sistema entre em suspensão. Nenhuma configuração complexa necessária; basta adicionar duas linhas ao seu arquivo `.bashrc` ou `.zshrc` para resolver esse problema comum e melhorar seu fluxo de trabalho.

Desenvolvimento desktop remoto

Transformadas Rápidas de Fourier (FFT) Explicadas: O Algoritmo de Cooley-Tukey

2025-09-18

Este artigo mergulha nos algoritmos de Transformada Rápida de Fourier (FFT), focando no algoritmo de Cooley-Tukey. Começa definindo a Transformada Discreta de Fourier (DFT) e destacando sua complexidade de tempo ingênua O(n^2). O autor então deriva meticulosamente o algoritmo de Cooley-Tukey, que reduz a complexidade dividindo a DFT em DFTs menores, atingindo O(n log n) para entradas de comprimento 2^n. Uma visualização interativa demonstra o funcionamento do algoritmo. O artigo também corrige o uso incorreto comum de 'FFT' como sinônimo de 'DFT', esclarecendo que FFT se refere ao algoritmo, não à transformada em si.

Desenvolvimento

Práticas de Programação em C: Pureza, Velocidade e Correção

2025-09-18

Este documento apresenta notas sobre práticas de programação em C, cobrindo estilo de codificação, convenções de nomenclatura de funções e variáveis, formatação, comentários e truques inteligentes em C, como contagem de bits e desdobramento de loops. O autor enfatiza a busca pela pureza, velocidade e correção do código, oferecendo insights sobre o uso eficaz de arquivos de cabeçalho, compiladores e revisão de paradigmas de programação comuns, como o uso de instruções GOTO. O objetivo é melhorar a qualidade e a eficiência da programação em C.

Desenvolvimento

Adeus às classes CSS: Construindo um site sem classes

2025-09-18
Adeus às classes CSS: Construindo um site sem classes

Após uma publicação anterior defendendo o uso de elementos embutidos do navegador, o autor colocou essa filosofia em prática, removendo completamente todas as classes CSS de seu site pessoal. Ele experimentou estilos padrão mais granulares, seletores aninhados, recursos modernos de CSS como `:where()` e `:has()`, e elementos e atributos personalizados como substitutos. Embora isso exija um planejamento mais cuidadoso e não seja adequado para todos os projetos, o experimento levou o autor a questionar a necessidade de classes CSS e teve uma influência duradoura em seu trabalho futuro. Uma pequena concessão foi feita para um plugin de realce de sintaxe que utiliza classes.

Desenvolvimento Elementos Personalizados

Depurando Programas Chez Scheme: Um Guia Completo

2025-09-18

Este guia de R. Kent Dybvig fornece uma abordagem abrangente para depurar programas Chez Scheme. Começa com técnicas fundamentais, como entender mensagens de erro, simplificar o código e a entrada e posicionar estrategicamente instruções de impressão. O guia, então, avança para métodos avançados, incluindo o uso das facilidades de rastreamento e depurador do Chez Scheme para inspecionar o estado do programa e identificar bugs evasivos. Se você é um programador iniciante ou experiente, este guia oferece insights valiosos para depuração eficiente.

Desenvolvimento

Atualização do pnpm: Atualizações de dependências atrasadas e pesquisa avançada de dependências

2025-09-18
Atualização do pnpm: Atualizações de dependências atrasadas e pesquisa avançada de dependências

A versão mais recente do pnpm introduz dois recursos importantes: primeiro, uma nova configuração `minimumReleaseAge` que atrasa a instalação de dependências recém-lançadas para mitigar riscos de segurança; segundo, adiciona suporte para funções de busca em `.pnpmfile.cjs`, permitindo regras de busca personalizadas por meio de `pnpm list` ou `pnpm why` com a flag `--find-by`, possibilitando pesquisas mais granulares de dependências, como encontrar pacotes com uma versão específica do React em seus peerDependencies. Correções de bugs incluem a resolução de avisos de depreciação no Node.js 24 e garantindo um código de saída diferente de zero quando um processo é cancelado com Ctrl-C.

Desenvolvimento

Política de Cookies do Site Explicada

2025-09-18
Política de Cookies do Site Explicada

Este site usa dois tipos de cookies: cookies essenciais para as funções básicas do site e cookies de comentários para rastrear a atividade do usuário em várias sessões, incluindo nome de usuário, email e URL. Os cookies essenciais armazenam as preferências de consentimento de cookies do usuário por 30 dias; os cookies de comentários são cookies de sessão que expiram no final da sessão.

Desenvolvimento Rastreio do Usuário

Decodificando GZIP manualmente: Um mergulho profundo no algoritmo Deflate

2025-09-18

O autor tenta decodificar manualmente a string "TOBEORNOTTOBEORTOBEORNOT" comprimida com GZIP, fornecendo um mergulho profundo no algoritmo Deflate. O artigo detalha a estrutura de dados GZIP, incluindo números mágicos, métodos de compressão, timestamps e outros campos. Ele se concentra no núcleo da compressão Deflate — o algoritmo LZ77. LZ77 usa caracteres e comandos de cópia (comprimento e distância) para codificação, reduzindo efetivamente o tamanho dos dados. Ao analisar manualmente os dados comprimidos, o autor reconstrói a string original passo a passo. A conclusão: a codificação de bits é mais eficiente do que a codificação de bytes para compressão de dados, mas a decodificação manual é complexa.

Desenvolvimento

Pacotes npm maliciosos publicados por meio de fluxo de trabalho do GitHub Actions comprometido

2025-09-18
Pacotes npm maliciosos publicados por meio de fluxo de trabalho do GitHub Actions comprometido

Um fluxo de trabalho malicioso do GitHub Actions exfiltrou um token npm com amplas permissões de publicação de um repositório compartilhado, levando à publicação de versões maliciosas de 20 pacotes, incluindo o popular @ctrl/tinycolor. Embora a conta e o repositório do GitHub do autor não tenham sido comprometidos diretamente, um colaborador com acesso de administrador a um repositório compartilhado permitiu o sucesso do ataque. Os invasores exploraram um segredo do GitHub Actions contendo o token npm. As equipes de segurança do GitHub e do npm responderam rapidamente, despublicando os pacotes maliciosos. O autor lançou versões limpas para limpar os caches. O incidente destaca os riscos de repositórios compartilhados e tokens estáticos, incentivando uma mudança para o Trusted Publishing (OIDC) do npm para segurança aprimorada.

Desenvolvimento

Ton Roosendaal deixa o cargo de CEO da Blender

2025-09-18

Ton Roosendaal, fundador e CEO do software 3D de código aberto Blender, anunciou que deixará seu cargo em 1º de janeiro de 2026. Ele assumirá uma posição no recém-criado conselho de supervisão da Blender Foundation. O atual COO, Francesco Siddi, assumirá como CEO, juntamente com novos membros do conselho: Sergey Sharybin (Chefe de Desenvolvimento), Dalai Felinto (Chefe de Produto) e Fiona Cohen (Chefe de Operações). Roosendaal afirmou que estão se preparando para isso desde 2019 e confia na equipe para liderar a Blender na próxima década.

Desenvolvimento Transição de CEO

Hashing de Encontro: Um Algoritmo de Hash Distribuído com Excelente Balanceamento de Carga

2025-09-18

O hashing de encontro resolve o problema da tabela de hash distribuída gerando uma lista de servidores priorizados para cada chave e selecionando o primeiro servidor. Ao contrário do hashing consistente, ele oferece um balanceamento de carga superior, mas tem um tempo de pesquisa de O(N). É uma boa escolha para caches distribuídos de pequeno a médio porte, mas adicionar servidores em sistemas maiores requer um gerenciamento cuidadoso para manter a invariante de "primeira escolha". Sua popularidade ficou atrás do hashing consistente, possivelmente devido à falta de um momento de 'aplicativo matador', apesar de sua invenção anterior e vantagens inerentes.

Mantenedor principal do libxml2 renuncia

2025-09-18
Mantenedor principal do libxml2 renuncia

Nick Wellnhofer, o mantenedor principal do libxml2, anunciou sua renúncia, deixando o projeto em grande parte sem manutenção. Ele corrigirá regressões na versão 2.15 até o final de 2025. A notícia gerou ampla gratidão e preocupação da comunidade. Muitos desenvolvedores expressaram gratidão pela manutenção de longo prazo do libxml2, e um se ofereceu para assumir a manutenção, embora com algumas questões técnicas que exigem esclarecimento do antigo mantenedor.

Desenvolvimento

arXivLabs: Construindo Novos Recursos do arXiv com Colaboradores da Comunidade

2025-09-18
arXivLabs: Construindo Novos Recursos do arXiv com Colaboradores da Comunidade

arXivLabs é uma plataforma que permite a desenvolvedores e pesquisadores criar e compartilhar novos recursos do arXiv diretamente no site do arXiv. Essa iniciativa abraça os valores de abertura, comunidade, excelência e privacidade de dados do usuário, com o objetivo de melhorar a experiência do arXiv para todos. Tem uma ideia para melhorar o arXiv? Junte-se ao arXivLabs!

Desenvolvimento

Internos de Hipervisor e Fuzzing de Alto Desempenho em um Dia

2025-09-18

Este curso de um dia fornece um curso intensivo sobre o funcionamento interno de hipervisores e técnicas para escrevê-los para fuzzing de alto desempenho. Ele abrange os fundamentos das tecnologias de virtualização assistida por hardware, como VMCS/VMCB, troca de mundos convidado-host, EPT/NPT e recursos úteis, como interceptação de exceção para introspecção de máquina virtual durante o fuzzing. O curso combina palestras com exercícios práticos usando os materiais fornecidos e o código-fonte no diretório Hypervisor-101-in-Rust/hypervisor.

Desenvolvimento hipervisor

Wasm 3.0 Lançado: GC, Endereços de 64 bits e Mais

2025-09-18
Wasm 3.0 Lançado: GC, Endereços de 64 bits e Mais

Após três anos de desenvolvimento, o padrão WebAssembly (Wasm) 3.0 finalmente chegou! Esta atualização substancial apresenta recursos significativos, incluindo espaços de endereço de 64 bits, expandindo a memória endereçável para 16 exabytes; suporte para várias instâncias de memória, melhorando o manuseio de aplicativos e dados grandes; um mecanismo de coleta de lixo (GC), simplificando muito o processo de compilação de linguagens de alto nível para Wasm; referências tipadas para melhor segurança de tipo e eficiência; e chamadas de cauda, tratamento de exceções e instruções vetoriais aprimoradas. Essas melhorias tornam o Wasm significativamente mais adequado para compilar linguagens de alto nível como Java e OCaml, expandindo suas aplicações.

Desenvolvimento

Operador de Atribuição Condicional Nula do C# 14: Adeus a declarações if redundantes

2025-09-18
Operador de Atribuição Condicional Nula do C# 14: Adeus a declarações if redundantes

O C# 14 apresenta um recurso inovador: o operador de atribuição condicional nula. Ele resolve elegantemente o problema de longa data das NullReferenceExceptions em C#. Antes, eram necessárias várias instruções if para verificar valores nulos; agora, as atribuições são simplificadas para uma única linha, melhorando significativamente a legibilidade do código e reduzindo a verbosidade. Por exemplo, `config?.Settings?.RetryPolicy = new ExponentialBackoffRetryPolicy();` substitui verificações if complexas. Embora o operador não suporte operadores de incremento/decremento e o uso excessivo deva ser evitado, ele é uma adição valiosa no C# 14, que vale a pena explorar após o lançamento do .NET 10.

Otimização de Desempenho do ClickHouse em Processadores Intel Xeon com Contagem de Núcleos Ultra-Alta

2025-09-17
Otimização de Desempenho do ClickHouse em Processadores Intel Xeon com Contagem de Núcleos Ultra-Alta

Os processadores mais recentes da Intel possuem centenas de núcleos, apresentando imensas oportunidades e desafios para bancos de dados analíticos como o ClickHouse. Engenheiros da Intel Shanghai analisaram sistematicamente o desempenho do ClickHouse em servidores com contagem de núcleos ultra-alta, identificando e otimizando cinco gargalos principais: contenção de bloqueio, otimização de memória, paralelismo insuficiente, utilização de instruções SIMD e compartilhamento falso. Ao reduzir os tempos de espera de bloqueio, melhorar o alocador de memória, paralelizar fases seriais, empregar algoritmos SIMD mais inteligentes e otimizar o layout de memória, eles melhoraram significativamente a escalabilidade do ClickHouse em sistemas com contagem de núcleos ultra-alta, alcançando até 10 vezes mais velocidade em consultas individuais e uma melhoria de 10% na média geométrica geral. Este trabalho destaca a necessidade de otimização multifacetada de bancos de dados na era da contagem de núcleos ultra-alta, abordando considerações tanto algorítmicas quanto de layout de memória.

UUIDv47: UUIDs amigáveis ao banco de dados com ordenação e compatibilidade de API

2025-09-17
UUIDv47: UUIDs amigáveis ao banco de dados com ordenação e compatibilidade de API

UUIDv47 é uma solução inteligente que armazena UUIDv7 ordenáveis em bancos de dados, mas apresenta uma fachada UUIDv4 para APIs. Isso é conseguido mascarando com XOR o timestamp do UUIDv7 com um fluxo SipHash-2-4 com chave, vinculado aos bits aleatórios do UUID. Isso oferece eficiência do banco de dados e compatibilidade de API. A biblioteca C é fácil de integrar, com resistência à recuperação de chaves para maior segurança.

Desenvolvimento

Tipos Algébricos Não Dão Medo: Uma Explicação Simples Usando a Teoria dos Conjuntos

2025-09-17

Este artigo fornece uma explicação clara e acessível de tipos algébricos, usando a perspectiva da teoria dos conjuntos, onde os tipos são vistos como conjuntos de valores. Ele aprofunda os tipos produto (semelhantes a structs ou classes) e os tipos soma (como Option ou Result types), comparando suas implementações em um interpretador usando tipos algébricos versus abordagens orientadas a objetos (herança ou o padrão Visitor). O autor argumenta que os tipos algébricos oferecem concisão, legibilidade e manutenção superiores, evitando complexidade desnecessária. A conclusão enfatiza os tipos produto e soma como maneiras fundamentais de combinar tipos, suficientes para a maioria das tarefas de programação.

Microsoft: Um 'ator malicioso' na cadeia de suprimentos de software?

2025-09-17
Microsoft: Um 'ator malicioso' na cadeia de suprimentos de software?

Este artigo revisita problemas de segurança na cadeia de suprimentos de software, do Internet Explorer ao npm, argumentando que os esforços insuficientes da Microsoft para proteger o npm levaram a um malware desenfreado, ameaçando empresas de desenvolvimento de software. O autor aponta vulnerabilidades críticas de segurança nos scripts de pós-instalação do npm, facilmente explorados para ataques, enquanto a Microsoft, como proprietária do npm, tomou poucas medidas. Isso torna o desenvolvimento de software menos divertido e mais uma tarefa árdua. O artigo apela para esforços em toda a indústria para construir uma cadeia de suprimentos de software segura.

Desenvolvimento

DataTables.net sofre grande interrupção devido a sequestro de domínio

2025-09-17

O site DataTables.net sofreu uma interrupção significativa devido a um ataque de sequestro de domínio. O atacante, usando uma campanha de phishing sofisticada e documentos de identificação falsos, transferiu com sucesso o domínio. Embora o servidor e o código não tenham sido afetados, a interrupção do CDN afetou severamente os usuários. O autor desde então restaurou os serviços e incentiva os usuários a adotar medidas de segurança como a Integridade do Subrecurso (SRI).

Desenvolvimento sequestro de domínio

Stategraph: Repensando a Gerenciamento de Estado do Terraform como um Problema de Sistemas Distribuídos

2025-09-17
Stategraph: Repensando a Gerenciamento de Estado do Terraform como um Problema de Sistemas Distribuídos

O Terraform há muito tempo usa semântica de sistema de arquivos para resolver um problema de sistemas distribuídos, resultando em gerenciamento de estado ineficiente. O Stategraph aborda isso tratando o estado do Terraform como um gráfico acíclico direcionado, aproveitando recursos de banco de dados de grafos para isolamento de subgrafos, bloqueio preciso e atualização incremental. Isso melhora dramaticamente a taxa de transferência concorrente, resolvendo contenção de bloqueio e tempos de atualização lentos, permitindo que grandes equipes colaborem de forma eficaz. O Stategraph usa o PostgreSQL como seu backend e é compatível com fluxos de trabalho existentes do Terraform, sem exigir alterações de configuração para migração.

Desenvolvimento

Tabby: Um poderoso emulador de terminal e cliente SSH

2025-09-17
Tabby: Um poderoso emulador de terminal e cliente SSH

Tabby (anteriormente Terminus) é um emulador de terminal altamente configurável, cliente SSH, Telnet e serial para Windows, macOS e Linux. Ele possui recursos como temas, atalhos personalizáveis, painéis divididos, persistência de guias e suporta vários shells, incluindo PowerShell, WSL e Git-Bash. Além disso, o Tabby oferece suporte extensivo a plug-ins, incluindo integração com Docker, envio rápido de comandos, salvamento de saída e até mesmo integração com assistentes de IA para maior produtividade. Uma alternativa versátil aos aplicativos de terminal existentes, o Tabby é ideal para desenvolvedores e administradores de sistemas.

Desenvolvimento cliente SSH

Fedora 43 Beta: Melhorias em ferramentas e linguagens

2025-09-17
Fedora 43 Beta: Melhorias em ferramentas e linguagens

O Fedora 43 Beta chegou, trazendo melhorias significativas. O instalador foi reformulado com o Anaconda WebUI como padrão, migração para o DNF5 e remoção de pacotes modulares, resultando em um processo mais simplificado. Ferramentas de desenvolvimento principais foram atualizadas, incluindo GCC 15.2, glibc 2.42 e LLVM 21. Python 3.14, Go 1.25, Idris 2 e até mesmo a linguagem experimental Hare agora são suportados. Upgrades de banco de dados incluem PostgreSQL 18 e MySQL 8.4 como padrão. O GNOME agora é exclusivamente Wayland, e o renderização de fontes foi aprimorada. Vários componentes descontinuados foram removidos, preparando o caminho para uma experiência Fedora mais limpa e moderna.

Desenvolvimento

Construindo um contêiner Docker do zero: Desvendando os segredos dos namespaces de montagem

2025-09-17
Construindo um contêiner Docker do zero: Desvendando os segredos dos namespaces de montagem

Este artigo explica de forma clara e concisa como construir um contêiner semelhante ao Docker usando apenas ferramentas padrão do Linux: unshare, mount e pivot_root. Ele se concentra no papel crucial do namespace de montagem no isolamento de contêineres e nos papéis complementares de outros namespaces (PID, cgroup, UTS, rede). Por meio de exercícios práticos passo a passo, os leitores entenderão como os namespaces de montagem isolam as tabelas de montagem e como a propagação de montagem afeta as interações entre namespaces. Por fim, os leitores poderão criar contêineres no estilo Docker com recursos completos usando apenas comandos padrão do Linux.

Desenvolvimento Namespaces Linux

Beta-avaliador de estilo direto de ordem normal com regras de sintaxe e aplicações repetidas de call/cc

2025-09-17

Este artigo explora aplicações menos frequentes de call/cc em macros Scheme higiênicas, particularmente seu uso para auxiliar cálculos lambda tediosos. O autor apresenta um beta-normalizador de estilo direto de ordem normal que combina inteligentemente regras de sintaxe e aplicações repetidas de call/cc, provando sua correção por meio de transformação CPS e um engenhoso lambda-calculador de estilo direto. O artigo também investiga continuações delimitadas, mostrando como macros simples podem implementar vários operadores de continuação delimitada, como prompt e control. Uma implementação de função fatorial baseada em call/cc e discussão de continuações delimitadas destacam a elegância e praticidade da abordagem.

Desenvolvimento
1 2 3 4 6 8 9 10 214 215