Category: Desenvolvimento

Limpador de LaTeX para arXiv: Prepare seu artigo com facilidade

2025-02-04
Limpador de LaTeX para arXiv: Prepare seu artigo com facilidade

Cansado de limpar seu código LaTeX para submissão ao arXiv? O `arxiv-latex-cleaner` do Google Research facilita! Esta ferramenta remove automaticamente arquivos auxiliares, comentários, código e imagens não utilizados, redimensiona imagens, compacta PDFs e garante que seu artigo atenda aos limites de tamanho do arXiv. Ele suporta regras de substituição de expressões regulares personalizadas e lida com a externalização de imagens TikZ. Prepare seu artigo para submissão em apenas algumas etapas!

Desenvolvimento limpeza de código

Rust Sem Pânico: O Rust Pode Substituir C na Programação de Sistemas de Baixo Nível?

2025-02-03

Este artigo explora a viabilidade de usar Rust para substituir C na programação de sistemas de baixo nível, focando especificamente em uma biblioteca Protocol Buffers chamada upb. O autor inicialmente duvidava da capacidade do Rust de igualar o C em desempenho e tamanho de código, mas descobriu uma técnica chamada "Rust Sem Pânico". Isso envolve evitar o uso de `panic!()`. O artigo aprofunda os princípios, vantagens e desafios do Rust Sem Pânico, incluindo tamanho de código, saídas irrecuperáveis e sobrecarga de tempo de execução. Ele demonstra como escrever código Rust Sem Pânico usando técnicas como a utilização da biblioteca libc, opções de otimização e `std::hint::assert_unchecked`, enfatizando a retenção de verificações de estouro no modo de depuração para verificações de consistência extras. Embora esta técnica exija trabalho meticuloso e possa necessitar de evitar a maior parte da biblioteca padrão, promete oferecer o desempenho e o tamanho de código de uma biblioteca C mantendo as garantias de segurança do Rust.

Desenvolvimento

Mailspring: Um cliente de email de código aberto mais rápido e leve

2025-02-03
Mailspring: Um cliente de email de código aberto mais rápido e leve

Mailspring é uma nova versão do Nylas Mail mantida por um dos autores originais. É mais rápido, mais leve e já está disponível! Ele substitui o código de sincronização JavaScript do Nylas Mail por um novo mecanismo de sincronização C++ baseado no Mailcore2. Usa aproximadamente metade da RAM e da CPU do Nylas Mail e fica inativo com quase zero "ativações da CPU", o que resulta em ótima duração da bateria. Ele também possui um compositor totalmente reformulado e outros novos recursos excelentes. A IU do Mailspring é de código aberto (GPLv3) e escrita em TypeScript com Electron e React - é construída em uma arquitetura de plug-ins e foi projetada para ser fácil de estender. O mecanismo de sincronização do Mailspring é gerado pelo aplicativo Electron e executa localmente em seu computador. É de código aberto (GPLv3) e escrito em C++ e C. No entanto, para sua conveniência, ao configurar seu ambiente de desenvolvimento, o Mailspring usa a versão mais recente do mecanismo de sincronização que enviamos para sua plataforma, para que você não precise extrair fontes ou instalar suas dependências de tempo de compilação.

Build do Windows 11 Insider recebe botão Copilot no Paint

2025-02-03
Build do Windows 11 Insider recebe botão Copilot no Paint

Uma nova versão do Windows 11 Insider (26120.3073) introduz um botão Copilot no Microsoft Paint, simplificando o acesso a recursos de IA generativa como Cocreator, Image Creator, Generative Erase e Remove Background. Esses recursos já existiam, mas o botão melhora o fluxo de trabalho. A atualização também inclui pesquisa de fotos na nuvem (somente para PCs Copilot+) e correções de bugs para a barra de tarefas, bandeja do sistema e explorador de arquivos. Esta é uma prévia para Insiders; a disponibilidade para a versão estável do Windows 11 não foi anunciada.

Desenvolvimento

Meu sobrenome é 'Null', e está quebrando a internet

2025-02-03
Meu sobrenome é 'Null', e está quebrando a internet

O sobrenome do autor é "Null", uma palavra reservada em muitas linguagens de programação. Esse detalhe aparentemente inócuo causa problemas significativos, desde falhas no envio de formulários em sites até rejeição de endereços de e-mail. Mesmo quando os sistemas aceitam "Null", surgem erros inesperados. Soluções alternativas, como adicionar um ponto ou usar aliases, são consertos temporários. Essa história humorística destaca problemas comuns de desenvolvimento de software e a impotência de grandes empresas em lidar com eles eficazmente. As lutas do autor com o sistema de e-mail do Bank of America, que falha consistentemente em lidar com seu nome, servem como um excelente exemplo.

Desenvolvimento

SCQA: Uma estrutura para histórias cativantes

2025-02-03
SCQA: Uma estrutura para histórias cativantes

SCQA é uma estrutura para organizar informações usando Situação, Complicação, Pergunta e Resposta para criar narrativas claras e envolventes. O artigo usa a gamificação na fisioterapia como exemplo, mostrando como o SCQA transforma um processo monótono em uma história cativante, melhorando o engajamento do paciente. Aplicável em vários campos - negócios, políticas, ciência - e mídias - e-mails, apresentações, livros, blogs - o SCQA aprimora a comunicação e a clareza.

Extensão do 10º Problema de Hilbert: Inde-cibilidade Provada para Anéis Mais Amplos

2025-02-03
Extensão do 10º Problema de Hilbert: Inde-cibilidade Provada para Anéis Mais Amplos

Matemáticos resolveram uma extensão importante do 10º Problema de Hilbert, provando que determinar se equações diofantinas têm soluções é indecidível para uma vasta classe de anéis numéricos. Baseando-se na prova de Yuri Matiyasevich de 1970 para soluções inteiras, o trabalho utiliza curvas elípticas e torções quadráticas para superar as limitações de abordagens anteriores com soluções não inteiras. Essa descoberta não apenas aprofunda nossa compreensão dos limites da computabilidade, mas também fornece novas ferramentas para a pesquisa matemática.

Benchmarking de Recuperação de Código: Desafios e Abordagem da Voyage AI

2025-02-03
Benchmarking de Recuperação de Código: Desafios e Abordagem da Voyage AI

Assistentes de codificação modernos dependem muito da recuperação de código, mas os métodos de avaliação existentes são insuficientes. A pesquisa da Voyage AI destaca problemas com conjuntos de dados atuais, incluindo rótulos ruidosos, falta de avaliação de raciocínio algorítmico profundo e contaminação de dados, levando a avaliações de modelos não confiáveis. Para resolver isso, a Voyage AI propõe dois métodos para criar conjuntos de dados de recuperação de código de alta qualidade: reaproveitar conjuntos de dados de perguntas e respostas e aproveitar repositórios e problemas/solicitações do GitHub. A Voyage AI também construiu seu próprio conjunto de testes de referência interno, abrangendo várias linguagens de programação, vários conjuntos de dados de perguntas e respostas e benchmarks específicos de domínio, avaliando vários modelos de incorporação de código. O Voyage-code-3 surgiu como o modelo de melhor desempenho.

Sabedoria de um Desenvolvedor Sênior: Evitando Reescrever e Codificação Eficiente

2025-02-03

Um desenvolvedor sênior compartilha sua filosofia de desenvolvimento de software, enfatizando as armadilhas de reescrever o código do zero. Ele destaca que, quando uma reescrita parece atraente, erros evitáveis ​​já foram cometidos, como o acúmulo de dívida técnica e o aumento da complexidade do código. O conselho inclui alternar entre fases de expansão (novos recursos) e consolidação, orçar tempo suficiente para polimento e testes e automatizar as melhores práticas. A importância de considerar casos de borda e dados patológicos é enfatizada, juntamente com a escrita de código testável cuja correção é óbvia.

Desenvolvimento

Crate `time` do Rust recebe aumento de velocidade de 57,5% com algoritmo reescrito

2025-02-03

Após cinco anos mantendo o crate `time` do Rust, o autor empreendeu uma otimização de desempenho significativa. Ao redesenhar o algoritmo `Date::to_calendar_date`, utilizando funções afins euclidianas e aritmética de inteiros inteligente, o autor evitou operações de ponto flutuante e ramificações, resultando em uma melhoria de desempenho de 57,5%. O novo algoritmo é significativamente mais rápido não apenas ao calcular a data e o mês juntos, mas também ao calculá-los separadamente. Essa foi uma tarefa não trivial, mas o autor acredita que os ganhos de desempenho valem o esforço.

Desenvolvimento

httptap: Monitore solicitações HTTP/HTTPS no Linux

2025-02-03
httptap: Monitore solicitações HTTP/HTTPS no Linux

O httptap é uma ferramenta de linha de comando para Linux que monitora solicitações HTTP e HTTPS feitas por qualquer programa sem exigir privilégios de root. Ele consegue isso executando o programa de destino em um namespace de rede isolado e interceptando seu tráfego de rede. Escrito em Go, o httptap é independente e facilmente executável. Ele exibe informações detalhadas da solicitação, incluindo URLs, códigos de status HTTP, corpos de solicitação e corpos de resposta, e suporta a exportação de dados para arquivos HAR. O httptap também suporta DoH (DNS via HTTPS) e trata redirecionamentos HTTP.

Desenvolvimento

Acelere o desempenho de gravação em HDD com o dm-writecache do Linux

2025-02-03
Acelere o desempenho de gravação em HDD com o dm-writecache do Linux

Este artigo mergulha no módulo do kernel do Linux dm-writecache, que utiliza um SSD NVMe como um cache de gravação para HDDs mais lentos, melhorando drasticamente o desempenho de gravação aleatória. O autor demonstra um aumento de velocidade de dezenas de vezes por meio de experimentos comparando velocidades de gravação aleatória com e sem dm-writecache. O artigo também abrange outros métodos e ferramentas de cache, como bcache e ReadyBoost, detalhando a configuração do dm-writecache usando LVM2 e a utilitário dmsetup para aqueles sem LVM2. Finalmente, ele resume os ganhos significativos de desempenho alcançados com o dm-writecache e sugere o uso do espaço NVMe restante para armazenar em cache outros dispositivos mais lentos.

Desenvolvimento

arXivLabs: Projetos Experimentais com Colaboradores da Comunidade

2025-02-03
arXivLabs: Projetos Experimentais com Colaboradores da Comunidade

arXivLabs é uma estrutura que permite a colaboradores desenvolverem e compartilharem 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 dos 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 Colaboração da Comunidade

Engenharia Reversa do Formato typedstream da Apple: Dentro do imessage-exporter

2025-02-03

Este artigo detalha o processo de engenharia reversa do protocolo de serialização binária proprietário da Apple, o typedstream, realizado pelo projeto imessage-exporter. O typedstream, usado para armazenar dados do iMessage, não é documentado e não faz parte das APIs públicas da Apple. Ao analisar os dados BLOB no banco de dados do iMessage, o autor identificou padrões no formato typedstream, como 0x84 marcando o início de um bloco de dados com o byte subsequente indicando o comprimento, e 0x86 sinalizando o fim de um bloco. Usando esses padrões, o autor conseguiu desserializar os dados typedstream, obtendo acesso multiplataforma aos dados do iMessage.

Desenvolvimento serialização binária

Decoradores JIT do Python: Três Estratégias de Implementação

2025-02-03

Este artigo aprofunda o popular padrão de decorador JIT em Python, particularmente seu uso nas bibliotecas JAX e Triton. O autor implementa três decoradores JIT do zero usando um exemplo simplificado: baseado em AST, baseado em bytecode e baseado em rastreamento. A abordagem baseada em AST manipula diretamente a Árvore de Sintaxe Abstrata; a abordagem baseada em bytecode alavanca o interpretador de bytecode do Python; e a abordagem baseada em rastreamento constrói um IR de expressão rastreando a execução da função em tempo de execução. O artigo detalha as vantagens e desvantagens de cada abordagem e usa JAX e Numba como exemplos para ilustrar suas estratégias em aplicações do mundo real.

Desenvolvimento

Construindo uma VM WebAssembly em C: Uma retrospectiva de um projeto paralelo de seis meses

2025-02-03

Ao longo de seis meses, o autor dedicou seu tempo livre à construção de uma máquina virtual WebAssembly em C, chamada Semblance. Este projeto quebrou o ciclo de projetos paralelos de curta duração e permitiu um mergulho profundo na especificação principal do WebAssembly. O artigo detalha a arquitetura, cobrindo a decodificação de módulos, resolução de importações, instanciação de módulos e execução de instruções. O autor compartilha desafios e aprendizados, culminando na execução bem-sucedida de um programa "Olá, Mundo!". Este projeto não apenas aprimorou as habilidades do autor, mas também forneceu uma base sólida para futuras contribuições para runtimes de nível industrial.

Desenvolvimento

Contenção de Thread Ruby: Não é uma Guerra

2025-02-03

Por muito tempo, eu entendi mal a "contenção de thread" em Ruby. Não é uma luta caótica; em vez disso, as threads Ruby fazem fila educadamente para o Global VM Lock (GVL). Cada thread recebe o GVL, executa o código e, em seguida, o libera ou é preemptado após um certo tempo (o quantum da thread, com padrão de 100 ms). Isso acontece quando uma thread executa I/O ou executa por mais tempo que seu quantum. Entender isso é crucial para otimizar aplicativos multithread, especialmente para evitar que threads vinculados à CPU bloqueiem threads vinculados a E/S, levando a um aumento na latência de cauda. Diminuir a prioridade das threads vinculadas à CPU ou reduzir o quantum da thread pode ajudar, mas o menor intervalo é de 10 ms.

Desenvolvimento

Canal do YouTube Excluído: Desenvolvedor Independente Atingido por Erro Algorítmico

2025-02-03
Canal do YouTube Excluído: Desenvolvedor Independente Atingido por Erro Algorítmico

O canal do YouTube do desenvolvedor independente Sinevibes foi excluído devido a supostas violações das "políticas de spam e enganosas". Sinevibes afirma que apenas postou demonstrações de seus próprios produtos originais e está perplexo com a exclusão. Este incidente destaca o impacto de erros de julgamento algorítmicos em criadores de conteúdo e inicia um debate sobre as práticas de moderação da plataforma.

Desenvolvimento

Google abandona o projeto Dart Macros: Foco é a chave

2025-02-03
Google abandona o projeto Dart Macros: Foco é a chave

A equipe do Google Dart anunciou o cancelamento do projeto Macros, que visava simplificar a escrita de código repetitivo em Flutter e Dart. Devido a metas de desempenho não atendidas e retorno insuficiente após anos de prototipagem, o Google está dividindo o Macros em recursos menores. O autor, ex-líder das equipes Flutter e Dart, conecta essa decisão à filosofia de Steve Jobs de dizer 'não' para abrir espaço para 'sim', enfatizando a importância do foco. Eles expressam otimismo para o futuro da equipe Dart.

Desenvolvimento

Desenvolvedores do Ubuntu migram para o Matrix para comunicação em tempo real

2025-02-03
Desenvolvedores do Ubuntu migram para o Matrix para comunicação em tempo real

A equipe de desenvolvimento do Ubuntu anunciou a mudança do IRC para o Matrix como sua principal plataforma de comunicação em tempo real, a partir de março de 2025. Essa mudança visa otimizar a comunicação, evitar fragmentação e atrair novos desenvolvedores. Embora o IRC ainda seja popular, seus recursos limitados são menos atraentes para colaboradores mais novos que preferem plataformas mais ricas como o Matrix, que oferece recursos como histórico de discussões, pesquisa e mensagens offline. Muitas equipes do Ubuntu e projetos de código aberto já usam o Matrix, tornando-o uma escolha natural. Isso afeta apenas a comunicação interna dos desenvolvedores; os usuários finais não são afetados.

Desenvolvimento

Execução Durável Leve: A Biblioteca de Código Aberto DBOS Transact

2025-02-03
Execução Durável Leve: A Biblioteca de Código Aberto DBOS Transact

A execução durável tradicional depende de orquestradores externos, como o AWS Step Functions, o que aumenta a complexidade do desenvolvimento e da implantação. O DBOS Transact é uma biblioteca de código aberto leve que integra a execução durável no próprio programa, eliminando a necessidade de orquestradores externos. Ele alcança a execução durável persistindo o estado de execução do programa em um banco de dados Postgres, permitindo a recuperação automática até o ponto de interrupção, mesmo que o programa trave ou reinicie. O DBOS Transact também oferece recursos adicionais, como suspensão durável, mensagens duráveis e filas duráveis, simplificando ainda mais o desenvolvimento de programas estáveis e com estado.

Desenvolvimento

Gerenciando Segredos de Forma Segura em Implantações Modernas do Docker Compose

2025-02-03
Gerenciando Segredos de Forma Segura em Implantações Modernas do Docker Compose

Este guia explora as melhores práticas para gerenciar segredos em implantações Docker Compose, evoluindo de abordagens básicas para configurações mais seguras. Ele destaca os riscos de usar variáveis de ambiente e arquivos .env, mostrando como os segredos podem ser expostos. O artigo detalha três métodos: usar variáveis de ambiente montadas como arquivos, segredos baseados em arquivos montados do host e aproveitar o recurso de segredos do Docker Compose com controle de acesso granular. Ele enfatiza a importância do gerenciamento seguro de arquivos, evitando a codificação rígida de segredos e usando ferramentas como Phase para simplificar o processo, com o objetivo final de melhorar a segurança e prevenir incidentes.

Desenvolvimento Gerenciamento de Segredos

Criando um efeito 3D retrô para sites com shaders: Dithering, quantização de cores e pixelização

2025-02-03
Criando um efeito 3D retrô para sites com shaders: Dithering, quantização de cores e pixelização

O autor passou meses construindo seu site pessoal, incorporando trabalho 3D para mostrar suas habilidades com shaders e WebGL. O artigo mergulha no papel crucial do pós-processamento na melhoria dos visuais de cenas 3D, focando na criação de efeitos retrô. Ele abrange várias técnicas de dithering (ruído branco, ordenado e ruído azul), explicando sua implementação usando shaders. Técnicas de quantização de cores também são detalhadas, permitindo paletas personalizadas. O artigo culmina em um impressionante efeito de site 3D retrô combinando pixelização e emulação de monitor CRT.

Desenvolvimento Pós-processamento

NSDI 24: Autothrottle: Uma Abordagem Binivel Prática para Gerenciamento de Recursos para Microserviços Orientados a SLO

2025-02-03

A USENIX está comprometida com o Acesso Aberto, disponibilizando gratuitamente pesquisas de seus eventos. Artigos, atas e quaisquer vídeos/áudios/slides subsequentes estão abertos a todos após o evento. Isso inclui o artigo NSDI '24, "Autothrottle: Uma Abordagem Binivel Prática para Gerenciamento de Recursos para Microserviços Orientados a SLO", de Wang et al., apresentando uma abordagem prática para gerenciar recursos para microserviços orientados a SLO. O artigo, vídeo e slides estão agora acessíveis publicamente.

Desenvolvimento microserviços

Variáveis Globais: Não são tão ruins assim

2025-02-03

Este artigo usa um exemplo simples de contador para demonstrar como evitar variáveis globais pode levar inesperadamente a bugs. O autor argumenta que o problema não são as variáveis globais em si, mas a natureza oculta do acesso a dados – "ação à distância". São analisados diferentes tipos de variáveis, e o artigo explora maneiras de usar variáveis globais adequadamente em cenários específicos, como encapsulá-las em funções ou usar tipos que permitem apenas operações de anexação, evitando assim problemas causados por "ação à distância".

HYTRADBOI: A Conferência Assíncrona de Bancos de Dados e Linguagens de Programação

2025-02-02

HYTRADBOI é uma conferência online única que explora a intersecção entre bancos de dados e linguagens de programação. Todas as palestras são pré-gravadas e legendadas, apresentadas de forma assíncrona por meio de uma sala de bate-papo persistente. Isso permite que os participantes se juntem de qualquer lugar, a qualquer hora, promovendo discussões ricas. Os participantes elogiaram seu formato assíncrono, a profundidade das palestras e a natureza inovadora do conteúdo, tornando-a um evento altamente recomendado.

Desenvolvimento conferência assíncrona

Parser de Dados Garmin: Domine seus Dados de Fitness com GarminDb

2025-02-02
Parser de Dados Garmin: Domine seus Dados de Fitness com GarminDb

GarminDb é um conjunto poderoso de scripts Python projetados para analisar dados de saúde do Garmin Connect e armazená-los em um banco de dados SQLite leve. Ele baixa e importa automaticamente dados de monitoramento diário (frequência cardíaca, atividade, subida/descida, estresse e minutos de intensidade), sono, peso e informações de frequência cardíaca em repouso. Além disso, ele resume os dados em relatórios diários, semanais, mensais e anuais e permite a criação de gráficos por meio da linha de comando ou Jupyter Notebooks. Um sistema de plug-ins permite a expansão fácil de tipos de dados. Em resumo, GarminDb é uma ferramenta abrangente e fácil de usar para gerenciar seus dados Garmin, tornando a análise de dados de saúde mais eficiente e conveniente.

Desenvolvimento Dados de Saúde

Engajamento Eficaz de Partes Interessadas em Projetos Ágeis

2025-02-02

Este artigo explora o papel crucial do engajamento de partes interessadas na gestão de projetos ágeis. Ele destaca os desafios de manter a participação consistente em ambientes iterativos e de ritmo acelerado, especialmente com requisitos em mudança e equipes geograficamente dispersas. O artigo enfatiza a importância de ferramentas como mapeamento de partes interessadas, plataformas de colaboração digital (Jira, Trello) e frameworks de priorização (MoSCoW, Kano) para promover comunicação e alinhamento eficazes. Os papéis-chave de gerentes de projetos e analistas de negócios em preencher a lacuna entre as partes interessadas e as equipes ágeis também são discutidos, mostrando como o engajamento bem-sucedido leva a melhores resultados de projetos e reforça o valor das metodologias ágeis. Exemplos do mundo real da Kaiser Permanente, Revolut e Atlassian mostram a aplicação prática dessas estratégias.

arXivLabs: Projetos Experimentais com Colaboradores da Comunidade

2025-02-02
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 dos 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.

mutool: Canivete suíço para manipulação de PDFs

2025-02-02

Construído com a biblioteca MuPDF, o mutool é uma poderosa ferramenta de linha de comando que oferece uma ampla variedade de subcomandos para manipular arquivos PDF. De converter páginas em PNGs e extrair texto a mesclar vários PDFs e extrair imagens e fontes incorporadas, o mutool lida com uma variedade de tarefas. É uma ferramenta versátil para conversões simples e operações complexas de PDF.

Desenvolvimento Manipulação de PDF
1 2 170 171 172 174 176 177 178 214 215