Category: Desenvolvimento

Um Bug Engraçado nas Extensões MV3 do Chrome

2025-07-13

A transição do Google Chrome do MV2 para o MV3 removeu a permissão webRequestBlocking, quebrando muitos bloqueadores de anúncios. No entanto, o autor descobriu um bug peculiar: devido ao uso de vinculações JavaScript nas APIs de extensão do Chrome, manipular parâmetros no construtor de eventos `chrome.webRequest` permitiu contornar as verificações de permissão e habilitar o bloqueio de anúncios. Embora esse bug não representasse um risco de segurança, ele destacou problemas potenciais ocultos em código legado e a possibilidade de alcançar resultados inesperados, explorando inteligentemente detalhes técnicos. O autor relatou o bug ao Google, e ele foi corrigido.

Desenvolvimento

BinaryRPC: Uma estrutura RPC C++ de alta performance

2025-07-12
BinaryRPC: Uma estrutura RPC C++ de alta performance

Frustrado com problemas de desempenho em um servidor Java WebSocket, um engenheiro recém-formado recorreu ao C++ e à biblioteca uWebSockets para construir o BinaryRPC, uma estrutura RPC de alta performance. Inspirado no Node.js e Express.js, o BinaryRPC possui um sistema moderno de middleware e gerenciamento de sessões, suportando vários níveis de QoS para mensagens confiáveis. Agora de código aberto, ele é bem documentado e inclui exemplos para fácil adoção.

Desenvolvimento

Cronômetro de Speedrun para Deus Ex em D: Uma Jornada de Hacking de Jogos

2025-07-12

Frustrado com a falta de ferramentas adequadas para speedruns de Deus Ex no Linux, um speedrunner embarcou em um projeto para criar um cronômetro personalizado em D. Este artigo detalha o processo, desde as tentativas iniciais frustradas de encontrar uma flag de carregamento, até aprender chamadas de sistema Linux (ptrace e process_vm_readv), engenharia reversa para localizar memória adequada para injeção de código e, finalmente, implementar a funcionalidade principal do cronômetro. O autor compartilha experiências usando D e observa limitações como tratamento incompleto de exceções e suporte à tela de salvamento.

Desenvolvimento

Construindo um compilador C com "Writing a C Compiler": Uma jornada passo a passo

2025-07-12
Construindo um compilador C com

O autor planeja trabalhar no livro "Writing a C Compiler" capítulo por capítulo, documentando seu progresso em posts de blog. Este livro fornece uma abordagem passo a passo para construir um compilador C, culminando em um compilador funcional ao final do capítulo um, com recursos adicionais adicionados em capítulos subsequentes. Um conjunto abrangente de testes está incluído, permitindo uma verificação completa. O autor destaca a excelente abordagem incremental do livro, o conjunto abrangente de testes e o foco em uma linguagem do mundo real (C), elogiando-o como um recurso excepcional para aprender a construir compiladores.

Fabricação de um Chip de Qubit Supercondutor: Um Processo Detalhado

2025-07-12
Fabricação de um Chip de Qubit Supercondutor: Um Processo Detalhado

Este artigo detalha o processo de fabricação de um chip de qubit supercondutor, melhorando os métodos existentes para aumentar a reprodutibilidade. O processo envolve: o uso de uma wafer de silício de 6 polegadas como substrato, deposição por pulverização catódica de um filme de nióbio de 200 nm, litografia óptica e gravação a plasma para padronizar o nióbio, litografia por feixe de elétrons para preparar junções Josephson, deposição por evaporação de filme de alumínio para formar as junções e, finalmente, corte e remoção. O artigo também descreve a configuração experimental para caracterização e medição de qubits, incluindo o sistema de medição criogênica e a cadeia de processamento de sinal. As junções Josephson fabricadas apresentaram correntes críticas menores que as esperadas, resultando em baixas relações EJ/EC.

Incus: Um Gerenciador de Contêineres e Máquinas Virtuais de Próxima Geração

2025-07-12
Incus: Um Gerenciador de Contêineres e Máquinas Virtuais de Próxima Geração

Incus é um gerenciador de contêineres de sistema, contêineres de aplicativos e máquinas virtuais de próxima geração, oferecendo uma experiência semelhante à de uma nuvem pública. Misture e combine facilmente contêineres e VMs, compartilhando o mesmo armazenamento e rede subjacentes. Baseado em imagens, suportando várias distribuições Linux, o Incus escala de laptops a racks de servidores, acomodando diversos tipos de armazenamento e rede. Gerencie instâncias por meio de linha de comando, API REST ou ferramentas de terceiros. Desenvolvido por muitos dos criadores originais do LXD, o Incus possui um design rico em recursos, incluindo segurança, escalabilidade, registro de eventos e acesso remoto. Ele suporta contêineres de sistema, contêineres de aplicativos e máquinas virtuais.

Desenvolvimento gerenciamento de sistema

Alerta de Segurança Crítica: Ataque de Cadeia de Suprimentos ao Plugin Gravity Forms

2025-07-12
Alerta de Segurança Crítica: Ataque de Cadeia de Suprimentos ao Plugin Gravity Forms

Pesquisadores de segurança descobriram um ataque de cadeia de suprimentos direcionado ao plugin Gravity Forms do WordPress, com código malicioso embutido na versão 2.9.12. Os atacantes usaram funções de backdoor, `update_entry_detail` e `list_sections`, para roubar informações do site, criar contas de administrador e executar código arbitrário. O código malicioso foi removido do download oficial e a versão 2.9.13 foi lançada. Todos os usuários do Gravity Forms devem atualizar imediatamente e verificar seus servidores em busca de arquivos maliciosos e solicitações de rede.

Desenvolvimento plugin WordPress

Introdução a Filtros Digitais com Aplicações em Áudio

2025-07-12

Este livro didático abrangente fornece uma introdução completa a filtros digitais e suas aplicações no processamento de áudio. Começando com o filtro passa-baixas mais simples, ele abrange progressivamente os fundamentos teóricos, os métodos de projeto e as técnicas de implementação de vários tipos de filtros, incluindo filtros lineares invariantes no tempo (LTI), filtros de resposta ao impulso finito (FIR), filtros de resposta ao impulso infinito (IIR) e diversas estruturas e implementações de filtros. O livro inclui numerosos exemplos de código Matlab e Faust, juntamente com estudos de caso de aplicações de áudio, tornando-o ideal para estudantes e pesquisadores em processamento de sinal digital e engenharia de áudio.

Desenvolvimento filtros digitais

Magia Negra do Python: Biblioteca de Desempacotamento de Dicionários

2025-07-12
Magia Negra do Python: Biblioteca de Desempacotamento de Dicionários

Uma biblioteca Python chamada `dict-unpacking-at-home` fornece desempacotamento de dicionários, permitindo que você desempacote dicionários diretamente assim: `{greeting, thing} = dct`. Embora seja legal, o autor afirma que não é uma biblioteca crítica e a versão atual quebra os números de linha nos rastros de pilha. Existe uma correção, mas a um custo... Com quase um milhão de downloads por mês e mais de 30 milhões de downloads no total, muitas pessoas estão usando essa biblioteca aparentemente não confiável.

Mergulho Profundo no Lixo Coleta do CLR

2025-07-12
Mergulho Profundo no Lixo Coleta do CLR

Este artigo fornece uma visão geral completa do coletor de lixo (GC) dentro do Common Language Runtime (CLR). O GC atua como um gerenciador automático de memória, lidando com a alocação e liberação de memória para código gerenciado, liberando os desenvolvedores da gestão manual de memória e prevenindo problemas como vazamentos de memória. Detalhes conceitos centrais do GC, princípios de gestão de memória, processos de alocação e liberação, estratégias de recolha de lixo geracional (Gen 0, 1, 2 e o Large Object Heap), condições de disparo, descrições de fases e tratamento de recursos não gerenciados. O artigo explica como o GC otimiza o uso de memória dividindo o heap em gerações com base na vida útil do objeto, melhorando a eficiência concentrando-se primeiro nos objetos de vida mais curta.

Desenvolvimento

Modularizando um Monólito com Recarregamento de Código Quente do Elixir

2025-07-12

Alzo, um monólito Elixir implantado como uma instância por cliente, utiliza o carregamento de código quente do Elixir e da VM Erlang para recursos específicos do cliente. Isso evita falhas em cascata e testes complexos de microsserviços. Aplicativos LiveView específicos do cliente residem em `/alzo/lib/clients/apps`, carregados dinamicamente na inicialização. O código do cliente é removido durante o processo de compilação, impedindo que o aplicativo principal dependa de aplicativos de tempo de execução. As atualizações de código quente são evitadas para simplificação. Essa abordagem fornece desenvolvimento eficiente, manutenibilidade, escalabilidade e a capacidade de refatorar facilmente funcionalidades comuns de aplicativos dinâmicos para o código base principal.

Imersão em Proxy Reverso: Desafios e Evolução do Gerenciamento de Conexões

2025-07-12
Imersão em Proxy Reverso: Desafios e Evolução do Gerenciamento de Conexões

Este artigo mergulha no funcionamento interno de um proxy reverso e nas complexidades do gerenciamento de conexões. De arquiteturas de thread único a multi-thread, multi-processo e orientadas a eventos com particionamento de sockets, os proxies reversos evoluíram significativamente para lidar com alta concorrência. O artigo detalha as vantagens e desvantagens de várias técnicas, como a eficiência do epoll no multiplexamento de E/S e os desafios dos modelos multi-thread com processadores multi-core, e aponta complexidades adicionais no suporte a TLS e diversidade de protocolos.

Desenvolvimento gerenciamento de conexões

Jank: Interoperabilidade perfeita entre C++ e Clojure, feita por um desenvolvedor solo

2025-07-12
Jank: Interoperabilidade perfeita entre C++ e Clojure, feita por um desenvolvedor solo

O projeto Jank alcançou um progresso significativo, permitindo interoperabilidade perfeita entre Clojure e C++. Através da gestão manual de memória, sistemas de tipos aprimorados e caixas opacas, o desenvolvedor possibilita chamadas diretas a código C++ dentro do Clojure. Exemplos práticos incluem imprimir "Olá, mundo!" usando streams de C++ e analisar arquivos JSON com a biblioteca JSON for Modern C++. O trabalho futuro focará em empacotamento, distribuição, correção de bugs e, por fim, o lançamento da versão alpha.

Desenvolvimento

Controle Simples do Sonos para Criança de 5 Anos usando ESP32

2025-07-12
Controle Simples do Sonos para Criança de 5 Anos usando ESP32

Um pai criou um sistema simples de controle de caixas de som Sonos Play:1 para seu filho de 5 anos. Usando um M5Stack CardPuter v1.1 (ESP32S3) como controlador e Go para a lógica de back-end, a criança pode reproduzir ou reiniciar sua playlist favorita com um pressionar de botão. Uma luz verde indica o status operacional. Este é um projeto divertido e fácil de usar, destacando a simplicidade e a interação lúdica.

Desenvolvimento Projeto Infantil

Combatendo Crawlers Maliciosos com JPEGs Falsos

2025-07-12
Combatendo Crawlers Maliciosos com JPEGs Falsos

O autor desenvolveu um pequeno aplicativo web chamado Spigot que gera páginas web falsas para confundir crawlers maliciosos. Recentemente, um crawler chamado ImageSiftBot o atacou agressivamente em busca de imagens, apesar do Spigot não possuí-las. Para contra-atacar, o autor usa de forma inteligente a estrutura dos arquivos JPEG, gerando JPEGs falsos preenchidos com dados aleatórios. Isso consome efetivamente os recursos do crawler, minimizando a carga da CPU no servidor. A abordagem é simples e eficiente, exigindo código mínimo, e as imagens geradas são exibidas corretamente na maioria dos navegadores.

Desenvolvimento crawlers maliciosos

Bug quase catastrófico no OpenZFS destaca a importância do sistema de tipos do Rust

2025-07-11
Bug quase catastrófico no OpenZFS destaca a importância do sistema de tipos do Rust

Um bug sutil, porém devastador, na função de alocação de disco principal do OpenZFS foi descoberto recentemente. O bug, um simples erro de tipo que resultava no retorno do tamanho errado, poderia sobrescrever dados silenciosamente. Levou quase dois dias para rastreá-lo. Embora o bug não estivesse presente em nenhuma versão lançada, isso levou à reflexão sobre as limitações da análise estática em C e as vantagens do sistema de tipos do Rust. A capacidade do Rust de definir tipos personalizados (como `PhysicalSize` e `AllocatedSize`) teria evitado isso. O autor argumenta que depender apenas da perfeição do programador é falho; alavancar ferramentas e recursos de linguagem para melhorar a qualidade do código e mitigar bugs difíceis de detectar e de alto impacto é fundamental.

Desenvolvimento

Guia de Estilo Red Hat: Um Mergulho Profundo na Terminologia

2025-07-11

Este documento descreve meticulosamente a terminologia padronizada usada na documentação técnica da Red Hat. Ele abrange uma ampla gama de aspectos, desde nomes de software (por exemplo, IBM S/390, Samba) até descrições de segurança (evitando termos vagos como "seguro" e exigindo detalhes específicos sobre recursos de segurança). O guia também padroniza abreviaturas (por exemplo, SSH, SSL), descrições de linha de comando e esclarece o uso adequado de palavras facilmente confundidas (por exemplo, "since" versus "because"). O objetivo geral é garantir consistência e precisão, melhorando a legibilidade e o profissionalismo.

Cactus: Framework multiplataforma para implantação local de LLMs

2025-07-11
Cactus: Framework multiplataforma para implantação local de LLMs

Cactus é um framework multiplataforma para implantar modelos de linguagem grandes (LLMs), modelos de linguagem de visão (VLMs) e modelos de texto para fala (TTS) localmente em seu aplicativo. Suporta Flutter e React Native, funciona com qualquer modelo GGUF do Hugging Face (Qwen, Gemma, Llama, etc.), manipulando modelos de FP32 até quantização de 2 bits. Cactus fornece chamadas de ferramentas MCP para funcionalidade de IA aprimorada (lembretes, pesquisa de imagens, respostas a mensagens), fallback de modelo na nuvem para tarefas complexas, modelos de bate-papo com tecnologia Jinja2 e streaming de tokens. Código de exemplo, benchmarks de desempenho em vários dispositivos e backend C++ são fornecidos.

Desenvolvimento

Aumento de Desempenho do Btrfs: Alocação de Blocos com Funções de Dispositivo

2025-07-11

Uma melhoria significativa de desempenho está chegando ao sistema de arquivos Btrfs! Uma nova atualização introduz um método de alocação de blocos baseado em desempenho usando funções de dispositivo, resolvendo o desequilíbrio atual causado pela alocação baseada apenas em espaço livre. Ao definir cinco funções de dispositivo (metadata_only, metadata, none, data, data_only) e priorizando as funções juntamente com o espaço restante, o sistema pode atribuir inteligentemente dispositivos mais rápidos a metadados e dispositivos mais lentos a dados, aumentando significativamente o desempenho de leitura/escrita. Essa melhoria evita medições complexas de velocidade de dispositivo, aproveitando o formato existente no disco para um gerenciamento de armazenamento mais inteligente e eficiente.

Desenvolvimento

diffsitter: Ferramenta de Diferença de Código Semântica

2025-07-11
diffsitter: Ferramenta de Diferença de Código Semântica

diffsitter é uma ferramenta de comparação de diferenças de código que gera diferenças semanticamente significativas comparando as Árvores de Sintaxe Abstrata (ASTs) de arquivos, ignorando diferenças de formatação. Suporta diversas linguagens de programação e oferece recursos como filtragem de nós configurável, formatação amigável ao terminal e registro detalhado. As opções de instalação incluem compilação a partir do código-fonte, uso de binários pré-compilados e gerenciadores de pacotes.

eBPF e tempos de execução de contêiner: Conectando via CRI

2025-07-11

Este artigo explora como projetos eBPF de código aberto se conectam a tempos de execução de contêiner (CRs) usando a Interface de Tempo de Execução de Contêiner (CRI) para enriquecer o contexto com informações de pod e contêiner. Ele detalha o processo de conexão: localizar o arquivo de socket Unix, estabelecer uma conexão gRPC usando a API CRI e consultar informações. Exemplos de Tetragon, crictl e Tracee ilustram diferentes abordagens para conectar ao CR, incluindo caminhos de socket padrão codificados e tentativas de conexão em tempo de execução. Finalmente, demonstra a consulta de informações de contêiner, como caminhos de cgroup, usando a API CRI, como o método do Tetragon para recuperar o caminho de cgroup de um contêiner.

Ferramentas de IA atrasam desenvolvedores experientes de código aberto: Um ensaio controlado randomizado

2025-07-11
Ferramentas de IA atrasam desenvolvedores experientes de código aberto: Um ensaio controlado randomizado

Um ensaio controlado randomizado (RCT) investigou o impacto das ferramentas de IA do início de 2025 na produtividade de desenvolvedores experientes de código aberto trabalhando em seus próprios repositórios. Surpreendentemente, os desenvolvedores que usaram ferramentas de IA levaram 19% mais tempo para concluir as tarefas - a IA os tornou mais lentos. Os pesquisadores veem isso como um instantâneo das capacidades atuais de IA; eles planejam continuar com esta metodologia para rastrear a aceleração da IA a partir da automação de P&D de IA. O estudo explora fatores potenciais que contribuem para a desaceleração e examina discrepâncias entre este RCT e outros benchmarks e evidências anedóticas, destacando a necessidade de metodologias de avaliação diversas para avaliar de forma abrangente as capacidades de IA.

Desenvolvimento

Novo Canal Canary do Android: Acesso Antecipado Contínuo para Desenvolvedores

2025-07-11
Novo Canal Canary do Android: Acesso Antecipado Contínuo para Desenvolvedores

O Google está substituindo seu programa Developer Preview por um novo canal Canary para Android, oferecendo aos desenvolvedores atualizações contínuas durante todo o ano. Isso permite acesso mais cedo e consistente a recursos experimentais e APIs. Ao contrário das instalações manuais anteriores, as compilações Canary são entregues via over-the-air e rodam simultaneamente com o programa beta. Embora destinado a testes e não ao uso diário, o Canary fornece valioso feedback antecipado, permitindo que os desenvolvedores identifiquem problemas e testem seus aplicativos continuamente. O suporte está atualmente disponível para dispositivos Pixel e a versão Canary do Android Studio.

Popularidade de Bancos de Dados no Hacker News: ClickHouse e DuckDB em Ascensão

2025-07-11
Popularidade de Bancos de Dados no Hacker News: ClickHouse e DuckDB em Ascensão

Uma análise de 18 anos de dados do Hacker News mostra o crescimento acentuado dos bancos de dados de código aberto ClickHouse e DuckDB, enquanto os bancos de dados nativos da nuvem veem a discussão diminuir. O PostgreSQL mantém sua forte presença, e o SQLite se destaca pelo alto engajamento do usuário. A análise utiliza contagens de títulos e métricas de engajamento (comentários e pontos) para mostrar tendências, destacando a ascensão de bancos de dados de código aberto e analíticos.

Desenvolvimento

Ferramentas de codificação de IA: queda de 19% na produtividade para desenvolvedores experientes

2025-07-11
Ferramentas de codificação de IA: queda de 19% na produtividade para desenvolvedores experientes

Um estudo rigoroso sobre desenvolvedores experientes usando ferramentas de codificação de IA revela uma surpreendente queda de 19% na produtividade, contradizendo a expectativa autodeclarada pelos desenvolvedores de um aumento de 20%. O estudo descobriu que o código gerado por IA frequentemente não atendia aos altos padrões de projetos grandes e maduros, levando a um tempo significativo gasto na revisão e correção da saída da IA. Isso destaca as limitações das ferramentas de codificação de IA atuais, sugerindo que sua eficácia depende muito do tipo de projeto, da experiência do desenvolvedor e da maturidade das próprias ferramentas.

Desenvolvimento

Blog de Álgebra Linear Gráfica: Uma Abordagem Diagramática para Álgebra Linear

2025-07-11
Blog de Álgebra Linear Gráfica: Uma Abordagem Diagramática para Álgebra Linear

Este blog explora a álgebra linear por meio de uma abordagem visual e diagramática. Ele explica conceitos matemáticos complexos de forma acessível, usando ilustrações para esclarecer tópicos desafiadores. O conteúdo abrange desde operações básicas até conceitos avançados, como matrizes, homomorfismos e relações, tudo explicado passo a passo com diagramas. O blog também anuncia uma escola de pesquisa em Teoria de Categorias Aplicada e oportunidades de pesquisa relacionadas, tornando-o valioso para estudantes e pesquisadores interessados em álgebra linear.

Desenvolvimento matemática visual

FOKS: Acesso a Dados Seguro por meio de Hierarquia de Chaves Simples

2025-07-11

O FOKS protege o acesso a dados usando uma hierarquia de chaves simples. As chaves de nível básico incluem chaves de dispositivo de usuário, chaves de backup e YubiKeys. Cada usuário possui várias chaves por usuário (PUKs) cujos segredos de sementes são criptografados com todas as chaves de nível básico disponíveis. A remoção de uma chave de nível básico gira as PUKs. As chaves de equipe (PTKs) funcionam de forma semelhante, compartilhadas entre os membros da equipe (usuários ou sub-equipes) e criptografadas com chaves de membro. Essa hierarquia garante que apenas dispositivos, equipes e usuários autorizados possam acessar os dados.

Desenvolvimento gerenciamento de chaves

Inferência de LLM em Produção: O Guia Definitivo

2025-07-11
Inferência de LLM em Produção: O Guia Definitivo

Este guia aborda o conhecimento fragmentado sobre inferência de LLM em produção. Ele cobre conceitos principais, métricas de desempenho (como Tempo até o Primeiro Token e Tokens por Segundo), técnicas de otimização (batching contínuo, cache de prefixo) e melhores práticas operacionais. Se você está ajustando finamente um pequeno modelo aberto ou executando implantações em larga escala, este guia ajuda a tornar a inferência de LLM mais rápida, barata e confiável.

Desenvolvimento inferência produção

Modo Batch para a API Gemini: Processamento de Alta Taxa de Transferência

2025-07-11
Modo Batch para a API Gemini: Processamento de Alta Taxa de Transferência

A API Gemini do Google agora inclui um modo batch, um endpoint assíncrono ideal para tarefas de alta taxa de transferência onde a latência não é crítica. Envie grandes trabalhos, deixe o sistema lidar com o processamento e recupere os resultados em até 24 horas com 50% de desconto em comparação com as APIs síncronas. Perfeito para dados preparados previamente que não precisam de resposta imediata, oferece economia de custos, aumento da taxa de transferência e chamadas de API simplificadas. A Reforged Labs o utiliza para processar grandes quantidades de anúncios em vídeo, melhorando significativamente a eficiência e reduzindo custos. Comece facilmente com o Google GenAI Python SDK.

1 2 43 44 45 47 49 50 51 214 215