Category: Desenvolvimento

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

Explosão de artigos sobre avaliação de LLMs para geração de código

2025-02-11
Explosão de artigos sobre avaliação de LLMs para geração de código

Uma série de pré-prints recentes no arXiv se concentra em avaliar modelos de linguagem grandes (LLMs) para geração de código. Esses artigos cobrem vários aspectos, incluindo LLMs resolvendo problemas reais do GitHub, geração de código auto-invocável, uso de APIs, análise de estabilidade e avaliações em todo o ciclo de vida do desenvolvimento de software. Os pesquisadores desenvolveram vários benchmarks, como SWE-bench, HumanEval Pro, SEAL e DevEval, juntamente com métricas correspondentes, visando uma avaliação mais abrangente das capacidades de geração de código do LLM e impulsionando o progresso no campo.

Desenvolvimento

arXivLabs: Projetos Experimentais com Colaboradores da Comunidade

2025-02-11
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 nossos valores de abertura, comunidade, excelência e privacidade de 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

arXivLabs: Projetos experimentais com colaboradores da comunidade

2025-02-11
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 abraçaram 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

Quebrando as Limitações do Tempo de Execução do WebAssembly: Assificando o ZeroPerl

2025-02-11
Quebrando as Limitações do Tempo de Execução do WebAssembly: Assificando o ZeroPerl

Frustrado com a falta de suporte a exnref na maioria dos tempos de execução do WebAssembly, tornando o ZeroPerl inutilizável, o autor decidiu corrigir o problema em vez de reclamar. Ao aproveitar o recurso Asyncify do Binaryen, uma substituição para setjmp foi implementada do zero, contornando os problemas de compatibilidade do libsetjmp. Após remover a biblioteca oficial, escrever código de montagem e otimizar com wasm-opt, o ZeroPerl agora é executado com sucesso no Wasmer, Wasmtime e em outros tempos de execução do WebAssembly. Essa inovação oferece um módulo Perl WebAssembly totalmente isolado e autocontido.

Desenvolvimento

Legion Health: Cuidados de Saúde Mental Impulsionados por IA – Contratação!

2025-02-11
Legion Health: Cuidados de Saúde Mental Impulsionados por IA – Contratação!

A Legion Health, apoiada pela YC, está contratando engenheiros de back-end de alto nível para construir um sistema de saúde mental de próxima geração, impulsionado por IA. Este sistema usa IA para otimizar operações como agendamento, faturamento e interação com pacientes, não diagnósticos. Os engenheiros projetarão e implementarão um back-end orientado a eventos, altamente escalonável, usando Node.js, Supabase e AWS, tratando dados em tempo real e garantindo conformidade e segurança da HIPAA. Esta é uma oportunidade desafiadora e impactante para moldar o futuro da IA na saúde.

A Guerra de Mais de 20 Anos Contra Conexões Inseguras: Uma Retrospectiva do libcurl

2025-02-11
A Guerra de Mais de 20 Anos Contra Conexões Inseguras: Uma Retrospectiva do libcurl

Desde que o curl passou a suportar SSL em 1998, a verificação de certificado padrão tem sido uma pedra angular da segurança de rede. No entanto, os desenvolvedores continuam a desabilitar essa verificação crucial, levando a vulnerabilidades generalizadas. Este artigo relata a evolução do libcurl, explora os perigos de desabilitar a verificação e propõe soluções como melhorias na API, documentação aprimorada e relatórios de bugs proativos. A luta por conexões seguras é uma batalha de longo prazo.

Sentry: Redefinindo o Software Empresarial – A Abordagem Fortune 500.000

2025-02-11

A Sentry, com mais de 50.000 clientes pagantes, desafia os modelos tradicionais de software empresarial. O autor argumenta que focar na construção de um produto que todos os clientes desejam, a um preço razoável, e direcionar-se ao público da "Fortune 500.000" é uma estratégia superior ao modelo antigo de focar apenas em grandes empresas. Essa abordagem de crescimento orientada por produtos prioriza a construção de comunidade, branding e experiência do cliente com baixo atrito em vez de equipes de vendas massivas. O autor afirma que esse modelo não é apenas viável, mas também eficiente e mensurável, oferecendo um novo caminho para empresas de software empresarial.

(cra.mr)

Canonical Lança LTS do Kubernetes com Suporte de 12 Anos

2025-02-11
Canonical Lança LTS do Kubernetes com Suporte de 12 Anos

A Canonical anunciou um compromisso de manutenção e suporte de segurança de 12 anos para sua versão LTS do Kubernetes 1.32. Esse suporte de longo prazo cobre bare metal, nuvens públicas, OpenStack, Canonical MicroCloud e VMware. O lançamento oferece facilidade de instalação, operação e atualizações, integrando componentes de código aberto de primeira linha para rede, DNS, gateway, servidor de métricas, armazenamento local, balanceador de carga e serviços de entrada. As empresas podem optar entre atualizações frequentes (a cada quatro meses) ou a versão LTS de 12 anos para estabilidade. Também oferece conformidade com FedRAMP e integra-se ao Ubuntu Pro para segurança abrangente do stack de código aberto.

Desenvolvimento

Por que a tecnologia 'Chata' é realmente a melhor

2025-02-11
Por que a tecnologia 'Chata' é realmente a melhor

Este artigo argumenta que a tecnologia 'chata', exemplificada pelo NetBSD, é superior na administração de sistemas e arquitetura. 'Chato' implica previsibilidade, reduzindo falhas inesperadas e dores de cabeça na manutenção. Tecnologia madura possui documentação abrangente, uma comunidade ativa e um histórico comprovado, não apenas idade. Embora a ubiquidade não seja a medida de 'chateza', tecnologias maduras são geralmente mais fáceis de entender e manter, reduzindo assim custos e melhorando a confiabilidade. O autor conclui que a 'chateza' do NetBSD é precisamente sua maior força.

Desenvolvimento

Quarto: Programação Literária Além do R Markdown

2025-02-11

Quarto, baseado no Pandoc, aprimora a programação literária além do R Markdown. Ele integra perfeitamente código (R, Python, Julia, etc.) com texto legível usando uma sintaxe Markdown simples. Crie documentos ricos com blocos de código executáveis, figuras e tabelas, facilmente renderizados em vários formatos (HTML, PDF, etc.). Personalize sua saída com recursos como dobra de código e opções de execução para um produto final refinado. Quarto oferece uma abordagem poderosa e fácil de usar para criar documentos reprodutíveis e compartilháveis.

Desenvolvimento

Systemd irá inicializar diretamente de imagens de disco baixadas via HTTP

2025-02-11

O desenvolvedor principal do Systemd, Lennart Poettering, está adicionando a capacidade de inicializar diretamente de uma imagem de disco baixada via HTTP dentro do disco RAM inicial (initrd) durante o processo de inicialização do Linux. Com base em adições recentes ao Systemd, isso permite baixar a imagem de disco raiz via HTTP, anexá-la a um dispositivo loopback e montá-la. O objetivo é permitir que a UEFI aponte para uma URL para carregar a Imagem de Kernel Unificada (UKI) e inicializar o sistema de arquivos raiz. O caso de uso imediato é simplificar os testes de dispositivos físicos, inicializando facilmente novos sistemas de arquivos raiz via HTTP a cada inicialização. A solicitação de pull em andamento inclui o código inicial para isso; extensões futuras podem incluir suporte a NVMe-over-TCP.

Desenvolvimento inicialização

Extend: Libere o Potencial do Seu Teclado

2025-02-11

Extend é um poderoso aprimoramento de layout de teclado que mapeia teclas comuns de navegação e edição para a linha inicial, aumentando a produtividade. Através de combinações de teclas inteligentes, você pode facilmente realizar edição de texto, gerenciamento de janelas, operações de navegador e muito mais, minimizando o uso do mouse. O artigo detalha o uso do Extend, atalhos e configuração em várias plataformas, compartilhando técnicas avançadas como o uso do Tap-Extend para ações de tecla única. O autor compara o Extend à magia, transformando sua experiência de computação.

Desenvolvimento layout de teclado

Uma Imersão Profunda nas Otimizações de Compilador de Atribuição Única Estática (SSA)

2025-02-11
Uma Imersão Profunda nas Otimizações de Compilador de Atribuição Única Estática (SSA)

Este artigo narra a evolução de décadas das técnicas de otimização de compilador de Atribuição Única Estática (SSA). Dos artigos iniciais sobre movimento de código e numeração de valor global, passando pelo trabalho seminal de Cytron sobre a minimização de instruções phi, até a abordagem de geração de passagem única de Brandis e Mössenböck e o Sea of Nodes IR de Click e Paleczny, o artigo rastreia vários artigos importantes e discute seus pontos fortes e fracos. Também aborda o trabalho de Appel sobre a relação entre programação funcional e SSA, a remoção iterativa de nós phi de Aycock e Horspool e abordagens mais recentes baseadas em interpretação abstrata. O artigo conclui com uma lista de artigos e recursos adicionais, fornecendo uma perspectiva mais abrangente para os leitores interessados em aprender mais sobre SSA.

Dicas do Alocador Btrfs: Otimizando o Desempenho de Armazenamento Misto

2025-02-11
Dicas do Alocador Btrfs: Otimizando o Desempenho de Armazenamento Misto

O Btrfs agora possui dicas de alocador, permitindo que os usuários especifiquem dispositivos para alocação de metadados e dados, otimizando o desempenho em configurações de armazenamento misto (por exemplo, SSDs e HDDs). Ao priorizar SSDs mais rápidos para metadados e HDDs mais lentos para dados, os usuários podem melhorar a capacidade de resposta do sistema de arquivos e a eficiência de armazenamento. Isso requer um kernel corrigido e configuração de linha de comando. Uma configuração inadequada pode levar a erros de falta de espaço; monitoramento cuidadoso é recomendado.

Desenvolvimento armazenamento misto

Basecamp Abraça a Imprecisão no Gerenciamento de Projetos

2025-02-11
Basecamp Abraça a Imprecisão no Gerenciamento de Projetos

O Basecamp questiona a obsessão por números precisos no gerenciamento de projetos, defendendo a adoção da ambiguidade e da subjetividade. O artigo critica a busca por dados exatos que ignoram as realidades do projeto, argumentando que "63% completo" não tem significado, enquanto "esperar a conclusão na próxima terça-feira" é mais realista. Os novos recursos do Basecamp, como Hill Charts e Move The Needle, permitem que os usuários representem visualmente o progresso do projeto usando marcadores gráficos intuitivos, enfatizando o julgamento subjetivo em vez de cálculos mecânicos. O artigo afirma que, em trabalhos criativos, a subjetividade e a produtividade não são adversárias, mas sim parceiras. O Basecamp continuará a refinar sua abordagem para refletir a realidade com mais precisão.

Desenvolvimento subjetividade

Ovos de Páscoa e a Alegria do Desenvolvimento de Software

2025-02-11
Ovos de Páscoa e a Alegria do Desenvolvimento de Software

Uma equipe de desenvolvimento injetou diversão na criação de seu novo produto, Tapestry, incorporando vários ovos de Páscoa. Começando com um spinner fidget giratório no distintivo beta e evoluindo para um ícone de aplicativo dinâmico e personalizado “disco” baseado no feedback do usuário, a equipe engajou os usuários com surpresas divertidas. Essas não foram meras adições; elas foram habilmente integradas aos processos de teste e correção de bugs. O artigo mostra o humor e a criatividade da equipe, ilustrando como infundir alegria em cada estágio do desenvolvimento de software.

Desenvolvimento ovos de páscoa

Resolvendo Sudoku no tmux: Um Projeto de Compilador Python Maluco

2025-02-11
Resolvendo Sudoku no tmux: Um Projeto de Compilador Python Maluco

Após seu projeto anterior de compilar Python para rodar em tmux, o autor criou um solucionador de Sudoku inteiramente dentro do tmux. Sem usar arrays ou strings, ele usa de forma inteligente as variáveis e os atalhos de teclado do tmux, mapeando cada célula do Sudoku para uma opção do tmux. O solucionador força bruta todas as possibilidades, resultando em uma eficiência extremamente baixa. No entanto, o projeto mostra as capacidades surpreendentes do tmux e a ingenuidade do autor, um testemunho do espírito hacker.

Desenvolvimento

Dagger Cloud v3: Reescrevendo a interface do usuário em Go e WebAssembly para desempenho superior

2025-02-11
Dagger Cloud v3: Reescrevendo a interface do usuário em Go e WebAssembly para desempenho superior

A equipe Dagger reescreveu sua interface web Dagger Cloud de React para uma versão v3 usando Go e WebAssembly. Isso foi feito para unificar duas bases de código da IU (terminal e web UI), aumentando a velocidade de desenvolvimento e o desempenho. Apesar da natureza não convencional da combinação de Go e WebAssembly, usando o framework Go-app e otimizações significativas de memória, eles construíram com sucesso uma interface de usuário mais rápida, mais suave e consistente, espelhando sua IU de terminal. O projeto destaca os desafios e oportunidades de usar Go e WebAssembly, como limites de memória e a falta de bibliotecas de componentes disponíveis. Em última análise, o Dagger Cloud v3 entregou melhorias de desempenho e maior eficiência para a equipe.

nocc: Um compilador C++ distribuído para compilações ultrarrápidas

2025-02-11
nocc: Um compilador C++ distribuído para compilações ultrarrápidas

nocc é um compilador C++ distribuído projetado para acelerar drasticamente a compilação, especialmente para projetos grandes em pipelines de CI/CD e ambientes de desenvolvimento colaborativos. Ao distribuir tarefas de compilação para máquinas remotas e aproveitar caches remotas compartilhadas, o nocc evita compilações redundantes. Desenvolvido na VK.com para acelerar a compilação do KPHP, ele obteve uma aceleração de 2 a 9 vezes em relação à solução anterior. Facilmente integrado a sistemas de build existentes, o nocc também suporta cabeçalhos pré-compilados para ganhos de desempenho adicionais.

Novos scriptlets personalizados do Brave Browser: controle sua experiência de navegação

2025-02-11
Novos scriptlets personalizados do Brave Browser: controle sua experiência de navegação

O Brave Browser versão 1.75 apresenta 'scriptlets personalizados' para usuários de desktop, permitindo que usuários avançados injetem seu próprio JavaScript em sites para personalização profunda. Semelhante ao Tampermonkey e Greasemonkey, este recurso permite que os usuários criem scripts que modificam a funcionalidade do site. Inicialmente desenvolvido para depuração do bloqueador de anúncios do Brave, seu valor levou ao seu lançamento. Os scriptlets personalizados aprimoram a privacidade, segurança e usabilidade ao bloquear rastreadores, personalizar a aparência e melhorar a acessibilidade. No entanto, é necessário cuidado, pois scripts não confiáveis representam riscos. O recurso está localizado em `brave://settings/shields/filters` e requer a ativação do 'Modo desenvolvedor'.

Ressurreição do Xvesa: Um servidor X minúsculo renascido

2025-02-11
Ressurreição do Xvesa: Um servidor X minúsculo renascido

O Xvesa, um servidor X leve, foi ressuscitado das profundezas do histórico do git! A equipe optou por mantê-lo com o Xfbdev, priorizando correções de bugs, melhorias de segurança e novos recursos ocasionais porque os servidores TinyX são muito menores do que o Xorg pode ser. A versão 1.2.0 foi escolhida em vez da 1.3.0 devido a problemas de entrada nesta última. O design enfatiza o minimalismo e a funcionalidade completa, omitindo xkb, xinput, xinerama e gl. A escuta TCP está desativada por padrão e o framebuffer shadow está ativado. A licença é GPLv3.

Desenvolvimento Servidor X

Argumentos de palavra-chave independentes da ordem em C++26 usando reflexão

2025-02-11

Esta postagem de blog explora a implementação de argumentos de palavra-chave independentes da ordem para C++ usando os recursos de reflexão propostos para o C++26. O autor descobriu essa técnica ao experimentar com reflexão e a compartilha como uma demonstração convincente do poder desses recursos. A postagem contrasta essa abordagem com soluções anteriores menos elegantes, incluindo inicializadores designados e objetos auxiliares. O núcleo da postagem detalha como usar a reflexão para alcançar argumentos de palavra-chave independentes da ordem e opcionais, fornecendo exemplos de código completos e explicações. Isso inclui o tratamento de capturas de expressões lambda e a extensão da biblioteca fmt para recursos de formatação aprimorados.

Desenvolvimento Argumentos de palavra-chave

Animações de rolagem suaves: diga adeus à rolagem travada

2025-02-10
Animações de rolagem suaves: diga adeus à rolagem travada

Cansado de animações de rolagem travadas? A nova especificação de Animações controladas por rolagem está aqui! Integrando-se com as APIs Web Animations e CSS Animations, ela permite animações de rolagem suaves que rodam fora da thread principal. Crie efeitos impressionantes como fundos de paralaxe, indicadores de progresso de leitura e revelação de imagens com código mínimo. O artigo apresenta vários demos e um curso em vídeo para ajudá-lo a começar a criar experiências incríveis controladas por rolagem.

Desenvolvimento Animações de rolagem

Arquiteturas de aplicativos em tempo real: Uma comparação entre Poke/Pull, Push State, Push Ops e Event Sourcing

2025-02-10

Este artigo explora quatro padrões principais para construir aplicativos em tempo real: Poke/Pull, Push State, Push Ops e Event Sourcing. Poke/Pull é fácil de integrar, mas sofre com problemas de fan-out; Push State envia o estado diretamente, mas luta com atualizações de estado em larga escala; Push Ops envia operações em vez do estado inteiro, o que é mais eficiente; Event Sourcing envia eventos, exigindo lógica do lado do cliente. O artigo também compara diferentes métodos de transporte (WebSockets, SSE, etc.) e seus desafios em sistemas horizontalmente escalonados, destacando o papel do Pub/Sub.

1 2 163 164 165 167 169 170 171 214 215