Category: Desenvolvimento

Reprodutibilidade de compilação do NixOS: Melhor do que você pensa

2025-02-12

A reprodutibilidade de compilação do NixOS tem sido um ponto de discórdia. Embora seu modelo de gerenciamento de pacotes funcional contribua para a reprodutibilidade de compilação, ele não garante a reprodutibilidade bit a bit para todas as compilações. Um novo artigo de pesquisa estuda empiricamente o Nixpkgs (a coleção de pacotes do NixOS) ao longo de seis anos, revelando uma taxa de reprodutibilidade em constante aumento - de 69% em 2017 para 91% em abril de 2023. O estudo também identifica as causas prevalentes de não reprodutibilidade, como datas incorporadas, saídas uname, variáveis de ambiente e IDs de compilação. Essas descobertas demonstram que, embora o Nixpkgs já atinja altas taxas de reprodutibilidade, ainda há espaço para melhorias ao abordar esses frutos de baixo custo. Esta pesquisa é crucial para aumentar a confiança no protocolo de substituição do Nix e impulsionar o desenvolvimento de soluções de cache distribuídas com base na reprodutibilidade de compilação.

(luj.fr)

yknotify: Um Prompter de Toque para YubiKey no macOS

2025-02-12
yknotify: Um Prompter de Toque para YubiKey no macOS

yknotify é uma ferramenta de linha de comando macOS que monitora logs do sistema para eventos associados a uma YubiKey aguardando toque, e então solicita ao usuário. Ele suporta FIDO2 e OpenPGP, identificando mensagens de log específicas para determinar se um toque é necessário. Embora existam falsos positivos raros, nenhum falso negativo foi relatado. Os usuários podem instalá-lo e executá-lo; problemas podem ser relatados caso ocorram.

Desenvolvimento

Imapsync: Sua solução para migração e backup IMAP

2025-02-12

O Imapsync é uma ferramenta de linha de comando para transferências IMAP incrementais e recursivas entre caixas de correio, em qualquer lugar na internet ou na sua rede local. Ele suporta Windows, Linux e Mac OS X e lida eficientemente com transferências interrompidas. O Imapsync não migra contatos e calendários, mas oferece alternativas e suporte profissional robusto. A partir de €60, inclui uma garantia de devolução do dinheiro de 30 dias. Em 2024, ele processou mais de 200 milhões de transferências de caixa de correio, demonstrando sua potência e extensa base de usuários.

Desenvolvimento migração de email

arXivLabs: Construindo Novos Recursos arXiv com Colaboração da Comunidade

2025-02-12
arXivLabs: Construindo Novos Recursos arXiv com Colaboração da Comunidade

arXivLabs é uma estrutura experimental que permite a colaboradores desenvolverem e compartilharem novos recursos do arXiv diretamente no site. Os participantes abraçam os valores do arXiv de abertura, comunidade, excelência e privacidade dos dados do usuário. Tem uma ideia para melhorar a comunidade arXiv? Saiba mais sobre arXivLabs.

Desenvolvimento

Eficiência vs. Escalabilidade Horizontal: Um Dilema Necessário?

2025-02-12
Eficiência vs. Escalabilidade Horizontal: Um Dilema Necessário?

Este artigo explora a tensão entre eficiência de software e escalabilidade horizontal. O autor argumenta que softwares otimizados para escalabilidade geralmente têm um desempenho ruim em ambientes de máquina única, e vice-versa. Isso decorre da Lei de Amdahl, sobrecarga de coordenação e limitações em recursos compartilhados. Algoritmos eficientes geralmente dependem de suposições sobre o sistema e o problema que podem não ser mais verdadeiras quando escalados horizontalmente. O autor também discute fatores culturais e tipos de tarefas que influenciam as escolhas, ilustrando com exemplos como o banco de dados Tigerbeetle e o GIL do CPython. Em última análise, uma compreensão profunda do problema e do ambiente é crucial para alcançar alta eficiência e escalabilidade.

Desenvolvimento

Plugin LLM para classificação semântica de linhas

2025-02-12
Plugin LLM para classificação semântica de linhas

Este plugin de linha de comando usa um Modelo de Linguagem Ampla (LLM) para classificar semanticamente linhas de texto. Similar ao comando GNU `sort`, mas em vez da ordem alfabética, ele classifica as linhas com base na relevância semântica a uma determinada consulta. A entrada pode ser de arquivos ou da entrada padrão. Os usuários podem personalizar o método de classificação, o limite de saída, o modelo e o modelo de prompt. Um prompt padrão é fornecido, mas a personalização é suportada. A instalação é simples: clone o código, crie um ambiente virtual e instale as dependências.

Adeus, CleanMyDrive: Um script xbar prático

2025-02-12
Adeus, CleanMyDrive: Um script xbar prático

Com a descontinuação do CleanMyDrive, o autor buscou uma solução alternativa para remover arquivos de metadados do macOS (._ e .DS_Store) que podem confundir outros dispositivos. O resultado? Um script xbar conciso que oferece um item na barra de menu para ejetar, desmontar ou ejetar todas as unidades (com ou sem limpeza). Uma solução simples e funcional para um incômodo comum do macOS.

Top 100 Palestras de Engenharia de Software de 2024

2025-02-12
Top 100 Palestras de Engenharia de Software de 2024

Esta lista reúne as 100 palestras de engenharia de software mais assistidas de quase todas as principais conferências do mundo em 2024. Os tópicos variam de aplicações práticas de modelos de linguagem grandes e técnicas de alto desempenho em Rust e Java, a melhores práticas em desenvolvimento web moderno e engenharia de confiabilidade. Palestras destacadas incluem a visão perspicaz de Jodie Burchell sobre LLMs e a explicação de Martin Thwaites sobre OpenTelemetry, ambas com mais de 130.000 visualizações. Esta lista selecionada oferece um recurso valioso para engenheiros de software que buscam expandir seus conhecimentos e habilidades.

Syd: Um Robusto Kernel de Sandbox Linux Baseado em Rust

2025-02-12
Syd: Um Robusto Kernel de Sandbox Linux Baseado em Rust

Syd é um kernel de aplicativo sólido como uma rocha, licenciado sob GPL-3, escrito em Rust para sandboxar aplicativos em sistemas Linux (5.19 e superior). Evoluindo de uma ferramenta para detectar erros de construção de pacotes no Exherbo Linux, Syd agora fornece um limite de segurança robusto. Aproveitando APIs modernas do Linux, ele elimina vulnerabilidades TOCTTOU. Ao contrário de outras ferramentas de sandbox, Syd funciona sem privilégios extras, oferecendo uma interface simples para mecanismos complexos de sandbox. Os recursos incluem sandbox de caminho, controle de execução, sandbox de rede e recursos avançados como sandbox de bloqueio e sandbox de proxy. Ele é projetado para isolamento e segurança robustos de aplicativos.

Desenvolvimento sandbox Linux

PgAssistant: Seu Assistente de Desempenho do PostgreSQL

2025-02-12
PgAssistant: Seu Assistente de Desempenho do PostgreSQL

O PgAssistant é uma ferramenta de código aberto projetada para ajudar desenvolvedores a entender e otimizar o desempenho de seu banco de dados PostgreSQL. Ele fornece análise do comportamento do banco de dados, otimização de esquema e gerenciamento de biblioteca de consultas SQL. Além disso, o PgAssistant facilita o gerenciamento de uma biblioteca de consultas SQL específicas úteis para seu projeto por meio de um arquivo JSON simples. Integração com o OpenAI ou LLMs locais ajuda a otimizar consultas SQL. Uma interface amigável simplifica a operação, e um arquivo JSON gerencia a biblioteca de consultas SQL. Também integra o PGTune para ajuste de parâmetros do banco de dados e geração de arquivos Docker Compose.

arXivLabs: Projetos experimentais com colaboradores da comunidade

2025-02-12
arXivLabs: Projetos experimentais com colaboradores da comunidade

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

Compilar ou não compilar consultas de banco de dados: um mergulho profundo

2025-02-12

Este artigo explora as compensações de compilar consultas de banco de dados. Os interpretadores de consultas tradicionais lutam com a velocidade dos modernos SSDs NVMe, levando a gargalos significativos de desempenho. A compilação de consultas oferece melhorias substanciais de velocidade, especialmente para cargas de trabalho OLAP. No entanto, o tempo de compilação e os desafios de otimização criam penhascos de desempenho imprevisíveis. Os interpretadores vetorizados, inversamente, são mais fáceis de construir, depurar e oferecem desempenho mais consistente. O artigo contrasta isso com os mecanismos de navegador JavaScript/Wasm, que usam uma abordagem de compilação em camadas (interpretador, compilador de linha de base, compilador otimizante) para atingir um compromisso de desempenho suave. O autor propõe uma abordagem semelhante para bancos de dados, sugerindo um compilador de linha de base como um componente chave. Várias estratégias de implementação, incluindo 'copiar e colar' e compilação Wasm, são exploradas. Em última análise, o artigo argumenta que construir um compilador de linha de base não é proibitivamente difícil e oferece perspectivas sobre direções futuras.

Desenvolvimento otimização de consultas

A Trindade do Unix: dmr, kt e bwk

2025-02-12

Na história do Unix, as iniciais dmr, kt e bwk representam figuras lendárias: Dennis M. Ritchie (dmr), co-criador do Unix e da linguagem de programação C; Ken Thompson (kt), co-criador do Unix ao lado de Ritchie; e Brian W. Kernighan (bwk), co-autor de programas e livros influentes do Unix, como "A Linguagem de Programação C" e "O Ambiente de Programação UNIX". Esses três gigantes moldaram as bases do Unix e impactaram profundamente a ciência da computação moderna.

Desenvolvimento

Programação intencional em Joy: Introspecção com um único operador

2025-02-12

Este artigo explora a programação intencional em Joy, uma linguagem de programação funcional baseada em pilha. A Joy em si é extensional, sem a capacidade de 'dissecar' blocos de código. O autor propõe dois operadores intencionais: 'map' e 'quota', provando sua expressibilidade mútua. Embora comportamentalmente equivalentes, programas intencionais podem distinguir um único operador de um subprograma com múltiplos comandos. Isso abre caminhos para explorar noções mais fracas de equivalência em linguagens intencionais e demonstra uma abordagem robusta para introduzir intencionalidade em linguagens minimalistas como Joy.

Mikey: Gravador de Áudio, Transcritor e Gerador de Notas de Reunião

2025-02-12
Mikey: Gravador de Áudio, Transcritor e Gerador de Notas de Reunião

Mikey é um aplicativo para gravar áudio, transcrevê-lo usando a API Groq e gerar automaticamente notas de reunião. Sua interface gráfica amigável do PyQt fornece uma experiência perfeita para gerenciar gravações, visualizar transcrições e navegar pelas sessões salvas. Ele usa pyaudiowpatch para gravação de áudio, a API Groq para transcrição e um modelo conversacional para gerar notas de reunião concisas. Um executável autônomo pode ser criado para facilitar a distribuição.

Skies-ADSB v2.0: Tráfego Aéreo 3D em Tempo Real no seu Navegador

2025-02-12
Skies-ADSB v2.0: Tráfego Aéreo 3D em Tempo Real no seu Navegador

O Skies-ADSB transforma seu navegador em um visor de tráfego aéreo 3D em tempo real. Usando dados ADS-B de um receptor RTL-SDR, você pode explorar o tráfego aéreo local, o espaço aéreo circundante e a geografia com mapas 3D personalizáveis. Construído com JavaScript, HTML5, CSS, Python 3 e WebGL (Three.js), ele roda nos principais navegadores modernos. A versão 2.0 inclui mudanças significativas em relação à versão 1.x, exigindo uma nova instalação. Os usuários podem relatar bugs, solicitar recursos e sugerir melhorias por meio do rastreador de problemas. O projeto agradece a Andre Thais CFI e Frank E. Hernandez por suas contribuições e utiliza dados de mapas de domínio público do Natural Earth e OpenStreetMap.

O Nó Górdio das Alterações de Esquema Online e Chaves Estrangeiras no MySQL

2025-02-12
O Nó Górdio das Alterações de Esquema Online e Chaves Estrangeiras no MySQL

Esta publicação analisa os desafios inerentes à realização de alterações de esquema online no MySQL, particularmente ao lidar com tabelas vinculadas por relacionamentos de chave estrangeira. O autor analisa as limitações de ferramentas existentes, como pt-online-schema-change e gh-ost, destacando as complexidades e riscos envolvidos na alteração de tabelas pai. Alterar uma tabela pai exige alterações simultâneas de todas as tabelas filhas, criando um processo frágil com tolerância mínima a erros. Uma única falha pode levar a inconsistências de dados ou interrupções. O autor conclui que as alterações de esquema online que envolvem restrições de chave estrangeira em tabelas grandes são praticamente inviáveis.

Guia Definitivo de Ferramentas de Monitoramento de Arquivos: Uma Visão Geral Completa

2025-02-12

Este artigo fornece uma lista abrangente de ferramentas de monitoramento de arquivos, cobrindo várias linguagens de programação, licenças e funcionalidades. De wrappers inotify mais antigos a ferramentas modernas escritas em Rust e Python, como o watchexec, o artigo compara meticulosamente os prós e contras de cada ferramenta, dependências e suporte a pacotes Debian. O autor também compartilha experiências pessoais e desafios encontrados, como o uso de unidades systemd .path e as limitações do watchman. Desenvolvedores e administradores de sistemas encontrarão este recurso inestimável na seleção da ferramenta de monitoramento de arquivos certa para suas necessidades.

Desenvolvimento monitoramento de arquivos

Clones rasos do Git: problemas de desempenho e a otimização de profundidade 2

2025-02-12
Clones rasos do Git: problemas de desempenho e a otimização de profundidade 2

Clones rasos do Git (`--depth 1`) podem afetar significativamente o desempenho na primeira operação de push. Isso ocorre porque os clones rasos marcam artificialmente alguns commits como commits raiz, impedindo que o servidor utilize otimizações e exigindo a transmissão de todo o snapshot do commit. Usar clones profundos (`--depth 2`), no entanto, preserva um histórico completo de commits, permitindo que o servidor utilize otimizações mesmo na primeira operação de push, reduzindo a transferência de dados e melhorando significativamente a velocidade do push. Operações de push subsequentes não são afetadas.

Desenvolvimento clone raso

Correção de bugs de concorrência no plugin AWS SSM permite o SSH remoto do VS Code

2025-02-12
Correção de bugs de concorrência no plugin AWS SSM permite o SSH remoto do VS Code

Um recém-formado da Stanford na Formal, ao solucionar um problema de cliente com a conexão SSH remota do Visual Studio Code para instâncias AWS EC2 para aprendizado de máquina, inesperadamente descobriu e corrigiu vários bugs de concorrência na biblioteca de referência do AWS SSM. O problema decorreu da falta de suporte de encaminhamento de porta TCP/IP no Conector Formal, impedindo que o VS Code inicializasse corretamente o ambiente de desenvolvimento remoto. A correção envolveu mergulhos profundos nos protocolos SSH e SSM, resolvendo, em última análise, corridas de dados e problemas de numeração de sequência modificando o plugin AWS Session Manager. Isso agora permite conexões SSH remotas seguras do VS Code por meio do Conector Formal.

Comunidade Acidental: Como uma Página Web Estática Iniciou o Movimento Local-First

2025-02-12
Comunidade Acidental: Como uma Página Web Estática Iniciou o Movimento Local-First

Um ex-engenheiro do Facebook, enquanto navegava pelo mundo, desenvolveu o TinyBase, um armazenamento de dados local-first. Em seguida, ele criou um site estático simples, localfirstweb.dev, para organizar e promover o conceito. Inesperadamente, o site se tornou viral, atraindo desenvolvedores e levando a uma comunidade Discord próspera construída por Yonatan, um graduado da Harvard Business School. Isso mostra como uma ação aparentemente pequena pode criar um poderoso efeito cascata, destacando o potencial do movimento de desenvolvimento de software local-first.

Desenvolvimento

De HTML manual para Zola: Minha jornada de migração de blog

2025-02-12

Clayton Ramsey compartilha sua experiência migrando seu blog pessoal de HTML codificado manualmente para o gerador de sites estáticos Zola. Inicialmente, ele achava a codificação manual de HTML administrável, mas as tarefas repetitivas de lidar com fórmulas matemáticas (usando MathML), realce de código e manutenção de barras de navegação se tornaram opressoras. Ele mudou para o Zola, utilizando um script Python para converter LaTeX em MathML, automatizando finalmente o processo de implantação. Embora tenha encontrado desafios com a configuração YAML do GitHub Actions, ele descobriu que a migração melhorou significativamente a eficiência e reduziu a barreira para escrever novas postagens.

Jujutsu: Um Sistema de Controle de Versão Revolucionário

2025-02-12
Jujutsu: Um Sistema de Controle de Versão Revolucionário

Jujutsu é um novo sistema de controle de versão que incorpora os melhores recursos do Git, Mercurial e Darcs, e adiciona várias características inovadoras. Ele trata a cópia de trabalho como um commit, simplificando o modelo de dados e algoritmos; um log de operações e a capacidade de desfazer facilitam a depuração; o rebase automático e a resolução de conflitos melhoram a eficiência do fluxo de trabalho; e ele suporta replicação concorrente, tornando-o seguro para uso com sistemas de arquivos distribuídos. Embora ainda esteja em fase experimental, o Jujutsu demonstra um imenso potencial para se tornar um sistema de controle de versão de próxima geração líder.

Desenvolvimento

JetBrains muda de foco nas ferramentas Kotlin Multiplatform: Adeus ao IDE independente

2025-02-12
JetBrains muda de foco nas ferramentas Kotlin Multiplatform: Adeus ao IDE independente

A JetBrains anunciou uma mudança de direção para suas ferramentas Kotlin Multiplatform (KMP). Em vez de um IDE independente, eles se concentrarão em melhorar o suporte KMP na plataforma IntelliJ (IntelliJ IDEA e Android Studio). O suporte para KMP em seu IDE Fleet será descontinuado nos próximos três meses. Essa mudança prioriza o feedback do usuário e alavanca avanços como a IA para melhorar a experiência do desenvolvedor.

Migrando Compras da Conta Apple: Um Guia Completo

2025-02-12

Este guia detalha como migrar aplicativos, músicas e outros conteúdos comprados de uma conta Apple secundária para uma principal. Vários pré-requisitos devem ser atendidos, incluindo: ambas as contas devem ser distintas, ter autenticação de dois fatores habilitada, estar configuradas para a mesma região e a conta secundária deve ter saldo zero sem locações ou pré-encomendas pendentes. O processo de migração ocorre nas configurações do seu iPhone ou iPad. Depois disso, a conta secundária não poderá mais ser usada para mídia e compras. O guia também lista vários motivos pelos quais a migração pode falhar, como tipos de conta incompatíveis ou status de conta incomum, tornando-se um recurso muito útil.

WASM: O Assassino de Contêineres?

2025-02-12
WASM: O Assassino de Contêineres?

O WebAssembly (WASM), com sua capacidade de 'escreva uma vez, execute em qualquer lugar', está pronto para substituir a tecnologia de contêineres. O artigo argumenta que, embora os contêineres tenham resolvido muitos problemas no desenvolvimento de software, eles se tornaram pesados devido a ferramentas complexas e acoplamento rígido. O WASM oferece uma solução mais leve e rápida, especialmente quando combinado com arquiteturas serverless como o Cloudflare Workers. Embora o WASM atualmente careça de algumas interfaces de sistema, ele está se desenvolvendo rapidamente e está posicionado para se tornar a solução principal. O artigo encoraja os desenvolvedores a aprender linguagens compiladas como Go ou Rust para se prepararem para a era do WASM.

Desenvolvimento Contêineres

Folha de dicas do Jujutsu (jj): Uma alternativa ao Git?

2025-02-12

Esta postagem apresenta uma folha de dicas e uma referência para o Jujutsu (jj), um sistema de controle de versão compatível com repositórios git. O autor considera o jj mais intuitivo que o git e fornece recursos de aprendizado, incluindo uma referência que descreve o estado do repositório e uma folha de dicas visual para operações de edição comuns. Para iniciantes, recomenda-se a leitura de um tutorial primeiro para evitar noções preconcebidas do git. Ambos os recursos são concisos e imprimíveis para facilitar o aprendizado.

Desenvolvimento

Ohm: Um Kit de Ferramentas de Análise Baseado em PEG

2025-02-11

Ohm é um poderoso kit de ferramentas de análise que consiste em uma biblioteca e uma linguagem específica de domínio (DSL). Ele permite que você analise formatos de arquivo personalizados ou crie rapidamente analisadores, interpretadores e compiladores para linguagens de programação. A linguagem Ohm é baseada em Gramáticas de Expressão de Análise (PEGs), uma maneira formal de descrever sintaxe semelhante a expressões regulares e gramáticas livres de contexto. A biblioteca Ohm fornece uma interface JavaScript para criar analisadores, interpretadores e muito mais a partir das gramáticas que você escreve.

Desenvolvimento

Compilando Perl para WebAssembly: Uma Tarefa Hercúlea

2025-02-11
Compilando Perl para WebAssembly: Uma Tarefa Hercúlea

Ao construir uma startup, o autor enfrentou um desafio: extração de metadados de arquivos do lado do cliente. O ExifTool, embora poderoso, mostrou-se difícil de compilar estaticamente e implantar em diferentes sistemas operacionais devido à sua natureza em Perl. Várias abordagens foram tentadas, incluindo a compilação estática do Perl, levando finalmente ao WebAssembly. A jornada foi repleta de desafios, lutando contra o sistema de construção do Perl, Emscripten e WASI, exigindo até mesmo modificações no código-fonte do Perl. O autor conseguiu construir com sucesso um Perl WebAssembly autocontido executando o ExifTool, mas o processo expôs suporte insuficiente para tratamento de exceções em runtimes WebAssembly.

Desenvolvimento

Craftax: Um Benchmark de RL de Alta Velocidade em JAX para Aprendizado por Reforço Aberto

2025-02-11
Craftax: Um Benchmark de RL de Alta Velocidade em JAX para Aprendizado por Reforço Aberto

Craftax é um ambiente de RL totalmente escrito em JAX, reimplementando e expandindo significativamente a mecânica do jogo Crafter, inspirado em jogos roguelike como NetHack. Compatível com a interface gymnax, ele se integra facilmente a frameworks JAX como PureJaxRL e JaxUED. Aceito como artigo destacado na ICML 2024, o Craftax oferece suporte para CPU e GPU/TPU, além de tutoriais e linhas de base. Instruções de instalação e exemplos de uso são fornecidos.

Desenvolvimento Ambiente de Jogo
1 2 152 153 154 156 158 159 160 204 205