Category: Desenvolvimento

Nepenthes: Uma Armadilha para Web Crawlers

2025-01-16

Nepenthes é uma ferramenta projetada para capturar web crawlers, especialmente aqueles que coletam dados para LLMs. Ele gera uma sequência infinita de páginas, cada uma com dezenas de links que levam de volta à armadilha. As páginas são geradas aleatoriamente, mas de forma determinística, parecendo arquivos estáticos imutáveis. Delays intencionais impedem que os crawlers sobrecarreguem seu servidor e desperdiçam seu tempo. É possível adicionar um gerador de texto Markov opcional, dando aos crawlers dados para, esperançosamente, acelerar o colapso do modelo. Atenção: Isso consome muita CPU, especialmente com o módulo Markov habilitado. Use com cautela.

Desenvolvimento segurança web

Controvérsia na FOSDEM: Palestra de Jack Dorsey, bilionário, causa indignação

2025-01-16

Jack Dorsey, ex-CEO do Twitter, fará uma palestra na FOSDEM, uma importante conferência de software livre. Isso gerou uma reação significativa na comunidade de software livre. Os críticos apontam o papel de Dorsey na queda do Twitter e seu envolvimento com a Block, argumentando que ele não merece uma plataforma tão importante. O autor defende um boicote e está organizando um ato de protesto para contestar a presença de Dorsey e defender a alocação de recursos para apoiar a comunidade de software livre.

Desenvolvimento

A Mina de Ouro Intacta do F#: Rastros de Pilha Tipados (TST)

2025-01-16

Este artigo explora a pouco conhecida técnica de Rastros de Pilha Tipados (TST) em F#, que usa o sistema de tipos para rastrear erros, resolvendo os problemas de análise de erros e manutenção de código em grandes aplicações monolíticas. O autor argumenta que o TST, combinado com o Design Orientado a Domínio (DDD) e uma nova metodologia chamada "Desenvolvimento Orientado a Restrições (CDD)", pode revolucionar a arquitetura de software e os processos de desenvolvimento, permitindo que os desenvolvedores retornem a arquiteturas monolíticas e à gerência de projetos em cascata, simplificando o trabalho de DevOps e SRE. O TST utiliza os tipos de união e a capacidade de correspondência de padrões do F# para criar árvores de tipos de erro claras, melhorando a legibilidade e a manutenção do código. O artigo usa um exercício de entrevista como exemplo para detalhar como usar TST, DDD e CDD para construir uma API REST simples.

Desenvolvimento

Compreendendo o Gerenciamento de Memória em C: Uma Imersão em Pilhas, Heaps e Vazamentos

2025-01-16
Compreendendo o Gerenciamento de Memória em C: Uma Imersão em Pilhas, Heaps e Vazamentos

Este artigo fornece uma explicação detalhada do gerenciamento de memória em C, começando por como os programas usam a memória e progredindo pelas funções da pilha e do heap, o uso de malloc() e free(), e as causas de vazamentos de memória e vulnerabilidades de Use After Free (UAF). Usando um exemplo simples, o autor demonstra o gerenciamento manual de memória e explica o funcionamento interno de um alocador de memória (malloc), incluindo a fragmentação de memória. Adequado para leitores com alguma experiência em programação, este artigo aprimora a compreensão do gerenciamento de memória e ajuda a evitar erros comuns de memória.

Desenvolvimento Pilha Heap

Hypervisor QEMU RK3588 com ZFS no Debian: Um guia passo a passo

2025-01-16

Este artigo descreve como configurar um hypervisor QEMU em um computador single-board BananaPi M71 2 (RK3588) usando Armbian e ZFS para armazenamento. O autor detalha as etapas, desde a construção de uma imagem Armbian personalizada, gravação da imagem, preparação do armazenamento NVMe SSD com um zpool ZFS, instalação do libvirtd e, finalmente, execução de máquinas virtuais. Os desafios de compatibilidade com a unidade NVMe no RK3588 são abordados, juntamente com as soluções. O resultado final é uma nuvem privada em pequena escala funcional, capaz de executar várias VMs (servidores web, bancos de dados, etc.), oferecendo isolamento de carga de trabalho e gerenciamento de recursos.

Desenvolvimento

Deixe os usuários ajudarem a resolver seus próprios problemas de trânsito: além do planejamento de rotas algorítmico

2025-01-16

O autor critica os aplicativos de mapas atuais por dependerem exclusivamente de algoritmos para planejar rotas de transporte público, negligenciando as necessidades e a experiência do usuário. Ele propõe permitir que os usuários personalizem as opções de rota, como especificar combinações específicas de rotas de ônibus, e incluí-las nas comparações de planejamento de rotas. Isso espelha as funções "denunciar spam" e "não é spam" dos filtros de spam, melhorando os algoritmos por meio de feedback do usuário. Apesar das preocupações com a privacidade, a participação do usuário pode melhorar a precisão da rota e a satisfação do usuário, melhorando os algoritmos em última análise. A capacidade dos usuários de adicionar suas próprias combinações de rotas, mesmo sem compartilhar dados, seria uma melhoria significativa.

Desenvolvimento algoritmo transporte público

Memory64 do WebAssembly: Uma troca entre velocidade e memória

2025-01-16
Memory64 do WebAssembly: Uma troca entre velocidade e memória

O WebAssembly introduziu recentemente o Memory64, adicionando suporte para ponteiros de 64 bits. No entanto, surpreendentemente, o Memory64 não resulta em ganhos de desempenho; em vez disso, devido a limitações de hardware, sistemas operacionais e design do próprio WebAssembly, ele pode ser executado de 10% a mais de 100% mais lento do que o modo de 32 bits. Isso ocorre porque o modo de 32 bits permite que os navegadores reservem 4 GB de memória, eliminando a necessidade de verificações de limites. O Memory64, por outro lado, exige verificações de limites, adicionando sobrecarga computacional. Portanto, a menos que você precise de mais de 4 GB de memória, o Memory64 não é a escolha ideal. Melhorias futuras em hardware e WebAssembly podem melhorar o desempenho do Memory64.

Desenvolvimento

Limites de Fila de Bytes: Uma história pouco conhecida de otimização de rede

2025-01-16
Limites de Fila de Bytes: Uma história pouco conhecida de otimização de rede

Este artigo conta a história dos Limites de Fila de Bytes (BQL), uma técnica de otimização de rede pouco conhecida no kernel do Linux. O BQL aborda o inchaço de buffer ajustando dinamicamente os limites da fila do dispositivo, reduzindo assim a latência. O autor, com base em conceitos-chave aprendidos durante sua época na Sun Microsystems, detalha a filosofia de design do BQL, sua implementação e algoritmo, usando diagramas e dados para analisar suas melhorias de desempenho e potenciais desvantagens. Embora novos hardwares possam eventualmente substituir o BQL, seu valor para bilhões de dispositivos de baixo custo permanece significativo.

Falha na inicialização do Docker Desktop macOS devido a relatórios de malware

2025-01-16

Usuários do Docker Desktop para macOS recentemente enfrentaram problemas de inicialização em que o macOS sinalizou `com.docker.vmnetd` ou `com.docker.socket` como malware. A Docker identificou a causa raiz como arquivos incorretamente assinados em instalações existentes e lançou patches. Os usuários são aconselhados a atualizar para a versão mais recente ou substituir manualmente os arquivos afetados. O problema foi resolvido, mas a Docker continua monitorando para quaisquer outros problemas.

Desenvolvimento

Portfólio Impressionante de Jacob Dement: A Jornada de um Desenvolvedor Full-Stack

2025-01-16

O portfólio de Jacob Dement demonstra o talento de um engenheiro full-stack experiente. De sites meticulosamente projetados a aplicativos complexos, ele demonstra um conhecimento abrangente de tecnologias front-end, back-end e de banco de dados. O portfólio é mais do que apenas uma coleção de código; é um testemunho convincente de suas habilidades técnicas e criatividade. Vários exemplos de projetos destacam sua experiência em resolver problemas do mundo real usando diferentes stacks de tecnologia. Sua dedicação tanto aos detalhes técnicos quanto à experiência do usuário destaca seu profissionalismo.

Apache DataFusion: Um poderoso mecanismo de consulta extensível em Rust

2025-01-16

O Apache DataFusion é um mecanismo de consulta extensível escrito em Rust que usa o Apache Arrow como seu formato de memória. Ele oferece APIs SQL e DataFrame, possui excelente desempenho e suporte integrado para CSV, Parquet, JSON e Avro. O DataFusion possui um planejador de consultas completo, um mecanismo de execução colunar, de streaming, multi-threaded, vetorizado e fontes de dados particionadas. É altamente personalizável, permitindo a adição de fontes de dados, linguagens de consulta, funções, operadores personalizados e muito mais. Subprojetos relacionados incluem DataFusion Python (bindings Python), DataFusion Ray (versão distribuída) e DataFusion Comet (acelerador Apache Spark).

Desenvolvimento Mecanismo de Consulta

dnSpyEx: O renascimento não oficial de um poderoso depurador e editor de assemblies .NET

2025-01-15
dnSpyEx: O renascimento não oficial de um poderoso depurador e editor de assemblies .NET

dnSpyEx é uma continuação não oficial do popular projeto dnSpy, um depurador e editor de assemblies .NET. Ele permite que você edite e depure assemblies .NET e Unity mesmo sem o código-fonte. Os principais recursos incluem depuração e edição de assemblies .NET e Unity, temas claros e escuros e poderosos recursos de descompilação, edição hexadecimal e depuração, como definição de pontos de interrupção, janelas de variáveis, pilhas de chamadas e tratamento de exceções. O dnSpyEx também oferece uma API pública para extensões e scripts e suporta traduções para vários idiomas.

Desenvolvimento Depurador Descompilador

Revisões de Código: Uma História de Sucesso

2025-01-15
Revisões de Código: Uma História de Sucesso

Um engenheiro, X, na Google, trabalhou em dois projetos com processos de revisão de código drasticamente diferentes. O primeiro, com revisões mínimas, resultou em um lançamento com bugs. O segundo, com um processo de revisão rigoroso e completo, embora mais lento inicialmente, produziu um lançamento sem bugs e um aprendizado significativo para X, impactando positivamente sua carreira. O artigo argumenta que as revisões de código não são intrinsecamente negativas; são as pessoas envolvidas e como a ferramenta é utilizada que importam para melhorar a qualidade do código e o mentoring.

Desenvolvimento

Imagens de volumes de disco montados sob pressão: Uma solução baseada em blktrace

2025-01-15
Imagens de volumes de disco montados sob pressão: Uma solução baseada em blktrace

Esta publicação descreve um método inteligente para fazer backup de discos de sistema quando snapshots de ponto no tempo não estão disponíveis. O autor enfrentou o desafio de precisar fazer backup de um sistema próximo à falha que não possuía recursos de snapshot, enquanto reiniciar ou reconfigurar o armazenamento era indesejável. A solução utiliza a API blktrace do Linux para rastrear a atividade do dispositivo de bloco em tempo real, permitindo a criação de imagens de disco completas mesmo enquanto dados estão sendo escritos. O autor compartilha sua ferramenta baseada em Go, hot-clone, que rastreia blocos modificados, garantindo que nenhuma perda de dados ocorra durante a criação da imagem. Isso fornece uma solução confiável para fazer backup de sistemas críticos em situações de emergência.

Keon: Formato de serialização legível por humanos inspirado em Rust

2025-01-15
Keon: Formato de serialização legível por humanos inspirado em Rust

Keon é uma notação de objeto legível por humanos (ORN) e um formato de serialização sintaticamente semelhante ao Rust e totalmente compatível com o modelo de dados do Serde. Ele possui uma sintaxe mais limpa, permitindo comentários e vírgulas finais, e permitindo uma experiência de escrita quase como em Rust. Keon diferencia entre tuplas e listas, suporta tipos arbitrários como chaves de dicionário e oferece suporte a Base64, Base32 e Base16. O objetivo é um formato de serialização mais intuitivo, legível e gravável.

Desenvolvimento

Por que o nível gratuito do Cloudflare Pages é tão generoso?

2025-01-15
Por que o nível gratuito do Cloudflare Pages é tão generoso?

O Cloudflare Pages oferece um nível gratuito com largura de banda ilimitada, algo que se destaca em relação aos concorrentes. O autor explora as razões por trás dessa generosidade: sites estáticos consomem poucos recursos e são fáceis de servir; o Cloudflare se beneficia de uma internet mais rápida e confiável, levando a um aumento na demanda por seus produtos de segurança; e o nível gratuito impulsiona o marketing boca a boca e potenciais upgrades para serviços pagos. Embora o Cloudflare não tenha explicado oficialmente, o autor presume que seja uma estratégia alinhada com outros serviços gratuitos, como o 1.1.1.1 e a proteção gratuita contra DDoS, visando, em última análise, impulsionar seu ecossistema de produtos de segurança.

Análise GLR com Regras Nulas à Direita: Lidando com Gramáticas Livres de Contexto

2025-01-15

Este artigo mergulha na análise LR generalizada (GLR) e sua melhoria, a análise GLR com regras nulas à direita (RNGLR). A análise GLR pode lidar com qualquer gramática livre de contexto sem restrições, tornando-a uma ferramenta útil para prototipagem. No entanto, a análise GLR tradicional sofre de problemas de eficiência ao lidar com recursão à esquerda e à direita ocultas. A análise RNGLR aborda elegantemente esses problemas ao lidar de forma inteligente com regras nulas à direita, melhorando a eficiência da análise. O artigo explica os princípios da análise RNGLR e demonstra suas vantagens no tratamento de conflitos e na construção de Florestas de Análise Compactadas Compartilhadas (SPPFs) por meio de exemplos.

Ropey: Uma corda de texto UTF-8 de alto desempenho para Rust

2025-01-15
Ropey: Uma corda de texto UTF-8 de alto desempenho para Rust

Ropey é uma biblioteca de corda de texto UTF-8 escrita em Rust, projetada como um buffer de texto de suporte para aplicativos como editores de texto. É rápida, robusta e lida com textos massivos e edições incoerentes de memória com facilidade. Ropey possui forte suporte Unicode, desempenho previsível e se destaca em edições frequentes em textos médios a grandes. No entanto, não é ideal para textos muito pequenos ou aqueles que excedem a memória disponível. Recursos principais incluem reconhecimento de linhas, fatias de corda eficientes e APIs de baixo nível flexíveis. Ropey se provou em vários projetos e passa por testes rigorosos, fornecendo uma solução confiável para manipulação de texto.

Desenvolvimento Edição de Texto

JavaScript Moderno para Desenvolvedores Django: Um Guia Completo

2025-01-15
JavaScript Moderno para Desenvolvedores Django: Um Guia Completo

Este guia fornece um caminho claro para desenvolvedores Django dominarem o desenvolvimento JavaScript moderno. Ele abrange a organização do código front-end, ferramentas JavaScript modernas, integração de pipelines JavaScript, construção de aplicativos React, criação de sites sem JavaScript com HTMX e Alpine.js e melhoria das interações de API front-end com OpenAPI. O guia é dividido em partes gerenciáveis, progredindo de conceitos fundamentais a aplicações práticas, tornando-o acessível a desenvolvedores de todos os níveis de habilidade.

Desenvolvimento Desenvolvimento Front-end

Construindo um Banco de Dados com a Comunidade Open-Source Rust: A História do ScopeDB

2025-01-15
Construindo um Banco de Dados com a Comunidade Open-Source Rust: A História do ScopeDB

Uma equipe de três pessoas construiu o ScopeDB, um banco de dados em nuvem de arquitetura de disco compartilhado para gerenciar petabytes de dados de observabilidade, em apenas quatro meses usando Rust. Aproveitando o poder do ecossistema Rust e numerosos projetos de código aberto como Apache OpenDAL, SQLx e SeaQuery, a equipe contribuiu ativamente para a comunidade com patches e novas bibliotecas. O ScopeDB também possui um irmão gêmeo de código aberto, Morax, para compartilhar a experiência de engenharia, demonstrando um paradigma de código aberto comercial.

Desenvolvimento

Interpretador de Cálculo Lambda Binário em 383 Bytes

2025-01-15
Interpretador de Cálculo Lambda Binário em 383 Bytes

Esta postagem de blog apresenta uma nova implementação de 383 bytes de um interpretador de cálculo lambda binário como um executável ELF Linux x86-64. Este interpretador minúsculo consegue alcançar coleta de lixo, listas preguiçosas e recursão de cauda. Os programas são codificados em um formato binário notavelmente pequeno; por exemplo, seu avaliador metacircular tem apenas 232 bits. O autor fornece código C portátil amigável e binários pré-compilados para outras plataformas. Este projeto é uma ferramenta de aprendizado divertida para o cálculo lambda e mostra a possibilidade de implementar computação complexa em ambientes extremamente limitados de recursos.

Desenvolvimento Cálculo Lambda

Saudade digital: Gravações de voz personalizadas da voz do AOL

2025-01-15
Saudade digital: Gravações de voz personalizadas da voz do AOL

O blogueiro John Graham-Cumming relembra sua experiência em 2002 ao encomendar gravações de voz personalizadas de Elwood Edwards, a voz icônica do AOL. Por US$ 30, ele pediu duas frases, "Mail classified by POPFile" e "Use the source, Luke!" para seu programa de filtro de e-mail de aprendizado de máquina, POPFile. Edwards até incluiu um bônus "You've got mail, John!" Essa anedota encantadora revela um toque personalizado da internet antiga e o humor dos pioneiros da tecnologia.

Kokoro: Modelo TTS de 82M de Parâmetros Transforma Ebooks em Audiobooks de Alta Qualidade

2025-01-15

Claudio Santini criou o Audiblez, uma ferramenta que utiliza o modelo de texto para fala (TTS) Kokoro de 82M de parâmetros para converter ebooks em audiobooks de alta qualidade. O Audiblez suporta vários idiomas e vozes, convertendo ebooks grandes em poucas horas. A ferramenta baseada em Python requer a instalação das bibliotecas e arquivos de modelo necessários. Embora a detecção de capítulos ainda seja um pouco imprecisa, funciona bem no geral, com melhorias futuras planejadas para a detecção de capítulos e recursos adicionais.

Desenvolvimento texto para fala

Parallels Desktop agora executa Windows e Linux x86 em Macs com Apple Silicon

2025-01-15
Parallels Desktop agora executa Windows e Linux x86 em Macs com Apple Silicon

O Parallels Desktop 20.2 adiciona suporte inicial para executar sistemas operacionais Windows e Linux x86 de 64 bits em Macs com Apple Silicon. Isso permite que usuários de Macs com M1, M2 e posteriores executem uma gama maior de sistemas operacionais, embora o desempenho seja mais lento do que as versões nativas ARM devido à emulação. As limitações incluem suporte a dispositivos USB, virtualização aninhada e tempos de inicialização mais lentos, mas é um passo significativo para desenvolvedores e usuários que precisam de compatibilidade x86 em Apple Silicon.

Desenvolvimento

Customasm: Um Montador para Seus Próprios Conjuntos de Instruções

2025-01-15
Customasm: Um Montador para Seus Próprios Conjuntos de Instruções

Customasm é um montador que permite definir seus próprios conjuntos de instruções personalizados, perfeito para testar o bytecode de uma nova máquina virtual ou escrever programas para aquela nova arquitetura de microprocessador que você acabou de implementar em um chip FPGA! Experimente online no seu navegador, confira um projeto de exemplo direcionado ao NES e instale a extensão de destaque de sintaxe do VSCode. Instale via `cargo install customasm`, baixe executáveis pré-compilados de Releases ou compile a partir da fonte. Documentação e um guia de como começar estão disponíveis no wiki.

Alteração de código da Microsoft quase quebra o lançamento do Linux 6.13

2025-01-15
Alteração de código da Microsoft quase quebra o lançamento do Linux 6.13

Uma alteração de código contribuída por um engenheiro da Microsoft quase causou uma grande interrupção no próximo lançamento estável do kernel do Linux 6.13. Pretendendo ser uma melhoria de desempenho, a alteração introduziu problemas em certos sistemas, especialmente aqueles com integridade de fluxo de controle (CFI) habilitada, como máquinas com processadores Intel Alder Lake. Um patch urgente do engenheiro da Intel, Peter Zijlstra, desabilitou o código problemático, evitando um atraso no lançamento do 6.13. Este incidente destaca a importância crítica da revisão de código e testes completos antes de mesclar código em projetos grandes e de código aberto.

Desenvolvimento

Pyper: Python Concorrente Simplificado

2025-01-15
Pyper: Python Concorrente Simplificado

Pyper é uma estrutura flexível para processamento de dados concorrentes e paralelos, baseada em padrões de programação funcional. Integra perfeitamente operações com threads, multiprocessamento e assíncronas, simplificando a criação de sistemas ETL, microsserviços de dados e pipelines de coleta de dados. Com uma API limpa e filas eficientes, Pyper oferece uma solução leve em Python puro (sem dependências) que prioriza facilidade de uso, segurança e eficiência. Os desenvolvedores podem se concentrar na construção da lógica em vez de gerenciar detalhes de concorrência de baixo nível.

Desenvolvimento

API SimplexDocsPlaygroundRequest: Prévia de execução de código

2025-01-15

A API SimplexDocsPlaygroundRequest fornece funcionalidade de execução e prévia de código. Os usuários podem enviar código para o servidor por meio dessa API, que executa o código e retorna os resultados, juntamente com uma prévia do processo de execução. Isso é útil para desenvolvedores que depuram código, testam APIs e criam protótipos rapidamente. A API está sendo carregada; os resultados estarão disponíveis após a execução do código.

Desenvolvimento Execução de código Prévia

De SvelteKit para HTML puro: Reescrevendo meu site

2025-01-15

Frustrado com as complexidades do sistema de construção do SvelteKit, o autor decidiu reescrever seu site pessoal usando HTML e CSS puros. O processo envolveu o uso do Pandoc para converter Markdown em HTML e Python com uv para uma pipeline de construção leve. Apesar do pequeno tamanho do site, a reescrita resultou em uma redução de tamanho de 356kb para 88kb e código mais simples e fácil de entender. O autor observa problemas restantes, como duplicação de código e falta de recarregamento ao vivo, com a intenção de resolvê-los em melhorias futuras. O projeto serve como um modelo simples para a construção de sites estáticos com blogs em Markdown.

Desenvolvimento
1 2 184 185 186 188 190 191 192 214 215