Category: Desenvolvimento

O Pesadelo Não-Determinístico dos Testes de UI do React

2025-01-31

Testar UIs do React apresenta um desafio único devido ao seu mecanismo de atualização assíncrona. Diferentemente da manipulação direta do DOM, o mecanismo de renderização do React atualiza a UI de forma assíncrona, tornando difícil para os testes capturar precisamente o tempo das atualizações do estado da UI. Utilitários de teste como `act` e `waitFor` oferecem soluções alternativas, mas basicamente se resumem a 'eventualmente, algo acontecerá'. Pequenas mudanças na UI (como atrasos de animação, ordem de atualização de estado) podem facilmente quebrar os testes, exigindo modificações extensas em conjuntos de testes existentes. Isso resulta em altos custos de manutenção para testes de UI do React, um ponto problemático comum para muitas equipes de desenvolvimento.

Ghostty 1.1.0 Lançado: Correções Críticas de Bugs e Melhorias na Qualidade de Vida

2025-01-31
Ghostty 1.1.0 Lançado: Correções Críticas de Bugs e Melhorias na Qualidade de Vida

O Ghostty 1.1.0, um mês em desenvolvimento, incorpora contribuições de 84 desenvolvedores em 564 commits. Esta versão se concentra em correções críticas de bugs e melhorias na qualidade de vida com base no feedback da versão 1.0 inicial. As principais melhorias incluem: correção de vazamentos de descritores de arquivos; adição de decorações do lado do servidor (SSD) para Linux, para uma aparência mais nativa em diferentes ambientes de desktop; melhoria significativa na confiabilidade e consistência do IME; um novo prefixo de keybind `performable:` ; melhorias no alpha blending do macOS para cores mais precisas; e aprimoramentos significativos no terminal rápido, com suporte a janelas de tela cheia nativas. Versões futuras removerão a opção `gtk-adwaita` e imporão uma dependência `libadwaita` para melhor estabilidade e manutenibilidade.

Desenvolvimento lançamento de software

O Design do Go: Uma Troca Deliberada

2025-01-31

Este artigo mergulha na filosofia de design da linguagem de programação Go, explorando seus pontos fortes e fracos. Nascido no Google, o Go tinha como objetivo simplificar a escrita e a manutenção de códigos de servidores concorrentes em larga escala. O autor analisa os recursos do Go - sua API de sistema de arquivos simplificada, falta de sobrecarga de operadores, tratamento de erros explícito e interoperabilidade com outras linguagens - para explicar as compensações por trás de suas escolhas de design. Embora criticado por aspectos como sua antiga falta de genéricos e suporte inferior ao Windows, o autor argumenta que essas são compensações conscientes feitas para alcançar seus objetivos de design primários, tornando o Go, em última análise, uma linguagem eficiente e fácil de usar para projetos de engenharia de grande porte.

Hydro: Uma estrutura de programação distribuída de alto desempenho em Rust

2025-01-31
Hydro: Uma estrutura de programação distribuída de alto desempenho em Rust

Hydro é uma estrutura de programação distribuída de alto nível para Rust, permitindo a criação de serviços distribuídos escaláveis e corretos por construção. Ao contrário das arquiteturas tradicionais de ator ou RPC, o Hydro emprega APIs coreográficas e um tempo de execução DFIR de thread único de alto desempenho. Ele simplifica a implantação por meio do Hydro Deploy, suportando ambientes locais e em nuvem. Usando um processo de compilação em duas etapas, ele gera planos de implantação localmente e, em seguida, compila para binários DFIR para cada máquina, implantando-os na nuvem com base no plano e nas especificações de recursos em nuvem. O Hydro foi usado para construir vários sistemas distribuídos de alto desempenho, incluindo implementações de protocolos clássicos como commit em duas fases e Paxos.

sixos: Um sistema operacional baseado em Nixpkgs que substitui o systemd pelo s6

2025-01-31
sixos: Um sistema operacional baseado em Nixpkgs que substitui o systemd pelo s6

Adam Joseph anunciou o lançamento do sixos, um novo sistema operacional construído com o Nixpkgs e usando o s6 em vez do systemd. Rejeitando o design monolítico do systemd, o sixos emprega o combinador infuse mais simples para gerenciamento de serviços, espelhando o tratamento de pacotes do Nixpkgs. Ele também integra o ownerboot para controle de versão completo e gerenciamento seguro do firmware, eliminando a distinção artificial entre firmware e software. Atualmente rodando em estações de trabalho, servidores, roteadores e muito mais, o sixos oferece uma alternativa leve e segura.

Desenvolvimento

Um Gerenciador de Janelas X11 Ruby Minimalista: rubywm

2025-01-31
Um Gerenciador de Janelas X11 Ruby Minimalista: rubywm

Frustrado com os gerenciadores de janelas existentes, o autor criou o rubywm, um gerenciador de janelas minimalista escrito em menos de 1000 linhas de código Ruby puro (incluindo o driver X11). Ele suporta layouts de janelas em mosaico e flutuantes, mas não possui decorações de janelas e funcionalidades de arrastar e redimensionar. Todo o tratamento de teclado é delegado a ferramentas externas como o sxhkd, e a comunicação acontece por meio de eventos X11 ClientMessage. Atualmente, ele suporta apenas monitores únicos e está em fase experimental, sujeito a falhas. O objetivo principal do autor é o uso pessoal, não uma grande base de usuários.

Desenvolvimento

Implantando o Modelo DeepSeek R1 de 671B Parâmetros Localmente

2025-01-31

Este artigo descreve a experiência de implantar o modelo de linguagem grande DeepSeek R1 de 671B parâmetros localmente usando o Ollama. O autor experimentou duas versões quantizadas: 1,73 bits e 4 bits, exigindo pelo menos 200 GB e 500 GB de memória, respectivamente. Em uma estação de trabalho com quatro RTX 4090 e 384 GB de RAM DDR5, os resultados dos testes mostraram que a versão de 1,73 bits tem velocidade de geração ligeiramente mais rápida, mas a versão de 4 bits se mostrou mais estável e menos propensa a gerar conteúdo inadequado. O autor recomenda o uso do modelo para tarefas mais leves, evitando a geração de texto longo, o que diminui significativamente a velocidade. A implantação envolveu o download dos arquivos do modelo, a instalação do Ollama, a criação de um arquivo de modelo e a execução do modelo; pode ser necessário ajustar os parâmetros da GPU e da janela de contexto para evitar erros de memória insuficiente.

Desenvolvimento Implantação de Modelo

arXivLabs: Projetos Experimentais com Colaboradores da Comunidade

2025-01-31
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

Reaktiv: Uma biblioteca de programação reativa para Python

2025-01-31
Reaktiv: Uma biblioteca de programação reativa para Python

Reaktiv é uma biblioteca de programação reativa para Python, inspirada no modelo de reatividade do Angular e com suporte de primeira classe para async/await. Simplifica a construção e a gestão de sinais dependentes de dados, atualizando automaticamente as dependências quando os dados mudam. Com uma API simples, o Reaktiv suporta contextos síncronos e assíncronos, possui rastreamento automático de dependências, zero dependências externas e gestão eficiente de memória, reduzindo significativamente a complexidade da programação assíncrona.

Desenvolvimento programação reativa

A jornada de uma década da Jane Street: de Jenga a Dune

2025-01-30
A jornada de uma década da Jane Street: de Jenga a Dune

A Jane Street inicialmente construiu o Jenga, um sistema de construção OCaml, mas suas limitações levaram à sua adoção limitada e até mesmo a uma reversão de seu status de código aberto. Então, eles criaram o Jbuilder mais simples, que inesperadamente ganhou popularidade devido à sua velocidade, eventualmente evoluindo para o Dune. Após anos de esforço, a equipe da Jane Street migrou com sucesso seu sistema de construção interno do Jenga para o Dune para seus 70 milhões de linhas de código, aumentando as velocidades de construção e estabelecendo uma base sólida para o futuro do Dune.

Desenvolvimento

Distr: Simplificando a Distribuição de Software Empresarial

2025-01-30
Distr: Simplificando a Distribuição de Software Empresarial

Distr simplifica a distribuição de software empresarial para ambientes controlados pelo cliente ou de responsabilidade compartilhada. Ele oferece uma interface web intuitiva para visualizar implantações e agentes, um portal de cliente de marca branca para controle do cliente, uma API acessível por meio de um SDK completo e é totalmente de código aberto e auto-hospedável. O Distr Hub é distribuído como uma imagem Docker com um exemplo de implantação do Docker Compose. Uma documentação abrangente cobre a auto-hospedagem e a construção a partir da fonte, e um SDK JavaScript está disponível para integração de aplicativos.

Desenvolvimento Distribuição de Software

Desenterrando as linhas mais antigas em seu repositório Git

2025-01-30

O autor compartilha um script shell para encontrar as linhas de código mais antigas em um repositório Git. O script usa o comando `git blame` juntamente com `find` e `awk` para filtrar arquivos não binários e identificar as linhas com o commit mais antigo, revelando um vislumbre da história do projeto. Embora atualmente limitado a commits após 2000, ele oferece uma visão fascinante de como a base de código evoluiu.

Desenvolvimento Histórico do Código

Automação de fluxos de trabalho de clientes: do onboarding à conformidade

2025-01-30

Este artigo descreve três fluxos de trabalho automatizados para clientes: onboarding de clientes (coleta de documentos, verificação de identidade, configuração de conta, chamadas de boas-vindas e materiais de boas-vindas automatizados), KYC (verificação de identidade do cliente, avaliação de riscos, coleta de documentação, verificações de antecedentes e manutenção de registros de conformidade) e revisão de contratos (revisão de rascunho inicial, aprovação da equipe jurídica, feedback das partes interessadas, rastreamento de revisões, coleta de assinatura eletrônica e armazenamento de documentos finais). A automação desses processos melhora significativamente a eficiência, reduz riscos e aprimora a experiência do cliente.

Stats: Monitor de sistema macOS na barra de menus

2025-01-30
Stats: Monitor de sistema macOS na barra de menus

Stats é um aplicativo de monitoramento de sistema macOS que reside na sua barra de menus. Ele fornece informações em tempo real sobre utilização da CPU e GPU, uso da memória, E/S de disco, atividade de rede, nível da bateria e muito mais. Compatível com macOS 10.15 (Catalina) e posterior, o Stats também oferece dados de sensores (temperatura, tensão, potência) e monitoramento de dispositivos Bluetooth. Macs com chip M1 exigem ativação manual do sensor HID para dados de sensores. Macs baseados em Intel podem exibir a frequência da CPU com o Intel Power Gadget instalado. Para minimizar o consumo de energia, os usuários podem desativar módulos como Sensores e Bluetooth. Lançado sob a licença MIT, o Stats recebe contribuições para traduções e melhorias.

Controle seu iTerm com LLMs usando iterm-mcp

2025-01-30
Controle seu iTerm com LLMs usando iterm-mcp

iterm-mcp é um servidor de Protocolo de Contexto de Modelo (MCP) que fornece acesso de LLM à sua sessão iTerm. Ele possui uso eficiente de tokens, lendo apenas a saída necessária para o modelo; integração natural, permitindo que LLMs interajam com o iTerm, respondendo a perguntas ou executando tarefas; e controle total do terminal com suporte REPL. Fácil de instalar via npx e integrar com clientes como o Claude Desktop, ele prioriza a simplicidade. No entanto, ele não possui restrições de segurança integradas, exigindo que os usuários monitorem a atividade do modelo e tomem precauções.

Desenvolvimento

Audiocube: Uma DAW 3D autônoma revolucionária

2025-01-30
Audiocube: Uma DAW 3D autônoma revolucionária

Deixe para trás as configurações confusas de plugins VST! O Audiocube é uma estação de trabalho de áudio digital (DAW) 3D autônoma, construída com um motor de áudio, física e gráficos personalizados, oferecendo profundidade e controle incomparáveis. Ele permite a criação e exploração de áudio imersivo, fornecendo um nível de liberdade criativa diferente de qualquer plugin. Esta é a solução perfeita para músicos que buscam uma abordagem moderna para a produção de áudio.

Downloads do LibreOffice ultrapassam 400 milhões: A história de retorno de um pacote de escritório para desktop

2025-01-30
Downloads do LibreOffice ultrapassam 400 milhões: A história de retorno de um pacote de escritório para desktop

O histograma de downloads do LibreOffice conta uma história convincente. De 2011 a 2014, apesar da forte concorrência, os downloads chegaram rapidamente a 30 milhões. Seguiu-se um período de estagnação, à medida que os pacotes de escritório para desktop pareciam destinados à obsolescência. No entanto, ocorreu uma ressurgência à medida que os utilizadores reconheceram o valor duradouro dos pacotes de escritório para desktop juntamente com as opções na nuvem. Em 2019, ataques ao contador de downloads causaram um aumento temporário, mas o crescimento continuou. Em 2024, o LibreOffice ultrapassou 35 milhões de downloads, acumulando mais de 400 milhões desde 2011. Este sucesso é um testemunho dos programadores, contribuintes e utilizadores que apoiaram o projeto.

API Temporal: Revolucionando o tratamento de datas e horas em JavaScript

2025-01-30
API Temporal: Revolucionando o tratamento de datas e horas em JavaScript

A API Temporal simplifica a manipulação de datas e horas em JavaScript. Ela suporta vários sistemas de calendário (como o calendário lunar chinês), lida com conversões de fuso horário sem problemas e oferece métodos de comparação intuitivos. Por exemplo, ela pode calcular o próximo Ano Novo Chinês ou determinar a duração até um timestamp Unix futuro. Embora o comportamento do `toLocaleString` varie ligeiramente entre as implementações do navegador, a API Temporal oferece operações robustas de datas e horas, tornando-se uma benção para os desenvolvedores.

Desenvolvimento API Temporal Data Hora

teemoji: O CLI que adiciona emojis à sua saída de terminal

2025-01-30
teemoji: O CLI que adiciona emojis à sua saída de terminal

teemoji é uma ferramenta de linha de comando inspirada no utilitário tee clássico. Ele usa um modelo Core ML para prever e adicionar um emoji apropriado a cada linha de texto, adicionando um elemento divertido e contextual aos seus fluxos de trabalho de linha de comando. Os recursos incluem previsão de emoji, suporte de E/S padrão, opções de manipulação de arquivos (anexar ou sobrescrever) e fácil integração em pipelines de shell existentes. A instalação é simples por meio do Homebrew, e o uso espelha o comando tee padrão, com funcionalidade de emoji adicionada e opções úteis.

Desenvolvimento

Rust Hardcore: Um Ray Tracer sem Alocação Dinâmica de Memória

2025-01-30

Esta publicação detalha um estudo de caso sobre a escrita de um aplicativo Rust usando apenas uma API mínima, artificialmente restrita (sem alocação dinâmica de memória). O autor critica o RAII (Resource Acquisition Is Initialization) por levar a um gerenciamento de recursos desorganizado e propõe um "modo hardcore": dividir o programa em um binário `std` e uma biblioteca `#![no_std] no_alloc`, permitindo apenas que o binário solicite recursos diretamente do SO. Usando um ray tracer de brinquedo como exemplo, o autor explica meticulosamente o tratamento de buffers de pixels, paralelização, o alocador de memória e a análise de cena neste "modo hardcore", atingindo, em última análise, um ray tracer sem alocação dinâmica de memória.

Desenvolvimento

A Ressurgência da Descompilação: Um Olhar para 2024

2025-01-30
A Ressurgência da Descompilação: Um Olhar para 2024

2024 marcou um ressurgimento significativo na pesquisa de descompilação. Publicações acadêmicas daquele ano compuseram quase 30% de todas as publicações de alto nível já feitas no campo. Esta postagem resume os avanços acadêmicos e ideológicos na descompilação durante 2024. Houve um aumento nas publicações acadêmicas, com quatro focando em definir uma 'boa' descompilação e quatro explorando o papel da IA, incluindo previsão de símbolos e simplificação de código. Quase todos os artigos incluíam implementações de código aberto, promovendo a adoção pela indústria. O ano também contou com uma turnê da pioneira em descompilação, Dra. Cristina Cifuentes, e um painel de especialistas de destaque na Recon 2024, impulsionando ainda mais o campo.

Desenvolvimento descompilação

Mathesar: Interface tipo planilha para Postgres de código aberto

2025-01-30
Mathesar: Interface tipo planilha para Postgres de código aberto

Mathesar é um aplicativo de código aberto que fornece uma interface intuitiva, semelhante a uma planilha, para visualizar, editar e consultar dados do Postgres. Usuários de todos os níveis de habilidade técnica podem colaborar diretamente em seus dados. É 100% de código aberto, auto-hospedado e utiliza o controle de acesso nativo do Postgres para segurança. Mathesar oferece instalação fácil (via Docker), escalabilidade para lidar com qualquer tamanho de dados e integração perfeita com infraestruturas existentes. Sua interface amigável simplifica as interações com o banco de dados, enquanto recursos de segurança robustos garantem a proteção dos dados.

showkey: Uma ferramenta de linha de comando Linux para solução de problemas de teclado

2025-01-30
showkey: Uma ferramenta de linha de comando Linux para solução de problemas de teclado

O autor encontrou um problema estranho em que sua tecla "]" continuava sendo pressionada repetidamente. Usando a ferramenta de linha de comando Linux `showkey`, ele descobriu o culpado: um teclado secundário pressionado contra um replicador IMSAI 8080 embaixo de sua mesa. O `showkey` exibe códigos de tecla e códigos de varredura, ajudando na solução de problemas de entrada de teclado. A opção -a fornece valores ASCII, decimal, octal e hexadecimal para as teclas pressionadas. O artigo detalha a instalação, o uso e as opções do `showkey`, compartilhando a experiência de solução de problemas do autor.

Ação do GitHub: Publicação Automática de Feeds RSS no Bluesky

2025-01-30
Ação do GitHub: Publicação Automática de Feeds RSS no Bluesky

O Blueskyfeedbot é uma Ação do GitHub que automatiza a publicação de feeds RSS/ATOM no Bluesky. Os usuários criam um repositório GitHub, configuram segredos (nome de usuário e senha do aplicativo Bluesky) e configuram um arquivo de workflow especificando a URL do feed RSS e um modelo Handlebars. Isso simplifica a syndicação de conteúdo para o Bluesky, oferecendo uma solução conveniente para blogueiros e desenvolvedores.

Desenvolvimento

Ex-engenheiro da EA cria Jank: uma nova linguagem de programação que combina Clojure e C++

2025-01-29
Ex-engenheiro da EA cria Jank: uma nova linguagem de programação que combina Clojure e C++

O ex-engenheiro da EA, Jeaye Wilkerson, está desenvolvendo Jank, uma nova linguagem de programação que visa combinar a natureza interativa do Clojure com a velocidade de compilação nativa e tempo de execução mínimo do C++. Construído no LLVM e incorporando elementos de C++, Clojure e Rust, Jank busca ser um dialeto nativo do Clojure. O projeto ganhou considerável interesse da comunidade, tornando-se um dos projetos Clojure não lançados mais populares. Seu recurso único é a flexibilidade de alternar entre código de tipo dinâmico e estático, equilibrando o desenvolvimento rápido com a otimização de desempenho. Jank está pronto para ser uma ferramenta poderosa para desenvolvimento de jogos, desenvolvimento de GUI e ciência de dados.

Desenvolvimento

Roadmap do Editor Zed 2025: Aprimorando o Modo Vim e a Experiência do Usuário

2025-01-29
Roadmap do Editor Zed 2025: Aprimorando o Modo Vim e a Experiência do Usuário

A equipe do editor Zed divulgou seu roadmap para 2025, focando na melhoria do modo Vim e no aprimoramento da experiência geral do usuário. Os planos incluem melhorar a experiência do usuário fora do editor com aprimoramentos no painel de comandos, conclusão de nomes de arquivos e histórico de comandos; aumentar a compatibilidade do modo Vim resolvendo casos de borda e usando testes lado a lado com o Neovim; e melhorar a experiência com vários cursores para um uso mais suave e fácil. O roadmap visa tornar o Zed um editor que combina o poder do Vim com uma experiência de usuário moderna.

Desenvolvimento editor Zed

Aumento de Desempenho do Site: O Encanto da Busca Incremental

2025-01-29

Um aviso do site afirma que o JavaScript é necessário para visualizar o site e se orgulha de uma melhoria mensurável no desempenho do servidor, graças à implementação da busca incremental. A menção de incompatibilidade com navegadores mais antigos destaca uma atualização tecnológica destinada a melhorar a experiência do usuário e o desempenho.

1 2 173 174 175 177 179 180 181 214 215