Category: Desenvolvimento

Bun: Por que a instalação de pacotes é 7 vezes mais rápida que o npm?

2025-09-11

O gerenciador de pacotes Bun é conhecido por sua velocidade impressionante, sendo em média ~7 vezes mais rápido que o npm, ~4 vezes mais rápido que o pnpm e ~17 vezes mais rápido que o yarn. Isso não é mágica; o Bun trata a instalação de pacotes como um problema de programação de sistemas, não um problema de JavaScript. Ele consegue isso minimizando chamadas de sistema, armazenando em cache manifestos como binários, otimizando a extração de tarballs, aproveitando a cópia de arquivos nativa do sistema operacional e escalando entre núcleos de CPU. O artigo detalha como o Bun, escrito em Zig, contorna as limitações do Node.js (pool de threads, loop de eventos) para alcançar instalações de pacotes incrivelmente rápidas.

Desenvolvimento

Falecimento de Gregg Kellogg, Prolífico Contribuidor do W3C

2025-09-11

O W3C anuncia com pesar o falecimento de Gregg Kellogg, um prolífico especialista convidado, no último sábado. Por mais de 13 anos, Kellogg fez contribuições significativas, notavelmente como co-presidente do Grupo de Trabalho JSON-LD e liderando vários Grupos de Comunidade focados em dados. Seu trabalho incluiu a co-edição de várias recomendações e especificações do W3C, além de fornecer implementações de código aberto e suítes de teste. Suas contribuições foram instrumentais para o sucesso do JSON-LD. O W3C está planejando uma homenagem para honrar sua memória e celebrar suas contribuições amigáveis e brilhantes.

Desenvolvimento

Módulos C++20: Melhorias no tempo de compilação e experiências práticas

2025-09-11

Este artigo compartilha a experiência prática do autor usando módulos C++20, cobrindo escolhas de sistemas de build (Bazel, XMake, Build2, etc.), melhorias no tempo de compilação (25% - 45%) e diferenças em relação ao PCH. O autor também discute cenários adequados para módulos C++20, custos (refatoração de código, estabilidade do compilador, suporte de conclusão de código, etc.), wrappers de módulos (estilos export-using e extern "C++") e técnicas para misturar import e #include. O artigo conclui com direções futuras de melhoria para módulos C++20, como melhorar sistemas de build, aprimorar a inteligência de código, resolver problemas de plataforma cruzada e destacar o potencial da IA no desenvolvimento de ferramentas de conversão de módulos.

Desenvolvimento

Piramidal Contrata Engenheiro de Back-end para Plataforma de Dados Neurais

2025-09-11
Piramidal Contrata Engenheiro de Back-end para Plataforma de Dados Neurais

A Piramidal está procurando um engenheiro de software para construir e manter a infraestrutura e os sistemas de back-end para sua plataforma principal de dados neurais. O candidato ideal terá 3+ anos de experiência em empresas orientadas a produtos, proficiência em Python e outras linguagens de back-end, tecnologias de contêiner e orquestração (por exemplo, Kubernetes), bancos de dados relacionais (por exemplo, Postgres/MySQL) e tecnologias web (por exemplo, JavaScript, React). A função envolve colaboração próxima com engenheiros de ML para iterar na aplicação dos modelos mais recentes e trabalhar com a equipe de produto e clientes internos para entender suas necessidades e implementar soluções eficazes. A Piramidal se dedica a redirecionar a tecnologia para maximizar o potencial humano, com uma missão central de apoiar a liberdade cognitiva.

pgEdge torna seus componentes principais de código aberto, abraçando o ecossistema PostgreSQL

2025-09-11

A pgEdge, uma empresa focada em PostgreSQL distribuído, anunciou que re licenciou seus componentes principais - incluindo o mecanismo de replicação Spock, o gerador de sequência Snowflake e a extensão de replicação lógica de objetos grandes Lolor - sob a Licença PostgreSQL, tornando-os de código aberto! Essa mudança demonstra o compromisso da pgEdge com o código aberto e seu desejo de contribuir mais para o ecossistema PostgreSQL. Desenvolvedores agora podem acessar o código-fonte desses componentes no GitHub e participar de seu desenvolvimento. A pgEdge também oferece opções de implantação em nuvem, contêiner e VM para facilitar o acesso do usuário.

Desenvolvimento Banco de Dados Distribuído

Reshaped: Cinco anos de jornada para código aberto

2025-09-11
Reshaped: Cinco anos de jornada para código aberto

Após cinco anos de desenvolvimento, a biblioteca de componentes Reshaped agora é totalmente de código aberto! Inicialmente um projeto pessoal que atendia à necessidade de bibliotecas de componentes consistentes para React e Figma, o Reshaped abrange 80% das práticas principais de design na web, priorizando o alinhamento entre design e engenharia. O autor primeiro tornou o pacote React gratuito e agora disponibiliza todo o código-fonte, com o objetivo de promover as melhores práticas em design e engenharia. Planos futuros incluem componentes premium avançados.

Engenharia Pura vs. Impura: Por que Devs Solo Entram em Conflito com Grandes Empresas de Tecnologia

2025-09-11

Este artigo explora a diferença entre engenharia de software 'pura' e 'impura'. A engenharia pura foca na perfeição técnica, semelhante à arte ou pesquisa, enquanto a engenharia impura prioriza a eficiência e a resolução de problemas do mundo real. As grandes empresas de tecnologia precisam de ambas, mas o mercado atual favorece a engenharia impura, levando a conflitos entre engenheiros puros e impuros. O desenvolvimento assistido por IA beneficia mais a engenharia impura, pois ajuda a lidar com problemas menos novos e com restrições de tempo, enquanto a engenharia pura depende mais da experiência individual. O autor argumenta que ambos os tipos exigem habilidades elevadas, apenas com foco diferente.

Deep Code Bench: Um Novo Conjunto de Dados de Benchmark para Recuperação de Código

2025-09-11
Deep Code Bench: Um Novo Conjunto de Dados de Benchmark para Recuperação de Código

A Qodo lançou o Deep Code Bench, um novo conjunto de dados de benchmark de perguntas do mundo real derivadas de grandes repositórios de código complexos. Ao contrário dos benchmarks existentes, essas perguntas exigem recuperação em vários arquivos, refletindo cenários reais de desenvolvedores. O conjunto de dados, gerado usando LLMs a partir de dados de solicitação de pull, fornece uma avaliação robusta de sistemas de recuperação de código. O agente de pesquisa profunda da Qodo supera os outros em recall de fatos, alcançando aproximadamente 76% de precisão.

Mergulhando no banco de dados tz: Criando seu próprio fuso horário

2025-09-11
Mergulhando no banco de dados tz: Criando seu próprio fuso horário

Trabalhando com Ruby, o autor encontrou um problema de fuso horário, o que o levou à descoberta do banco de dados tz. Este artigo fornece uma explicação clara do banco de dados tz, incluindo seus componentes principais: o compilador zic, a ferramenta zdump e os arquivos de origem do fuso horário. O autor demonstra como personalizar as regras de fuso horário criando um fuso horário fictício, Hi_No_Kuni/Konoha, em uma imagem Alpine Docker. O processo é ilustrado com exemplos práticos, verificando os resultados. Este artigo é adequado para desenvolvedores e fornece informações sobre a complexidade e a padronização por trás dos fusos horários.

Desenvolvimento banco de dados tz

BCacheFS desabilitado em kernels openSUSE 6.17+

2025-09-11

A equipe openSUSE anunciou que o sistema de arquivos BCacheFS será desabilitado nos kernels 6.17 e posteriores. Isso ocorre porque o BCacheFS é mantido externamente desde a versão 6.17, e o openSUSE não manterá mais e fará backport de patches downstream. Atualmente, as versões 6.16 e anteriores não são afetadas. Os usuários devem seguir as instruções do upstream do BCacheFS para instalação e uso, ou preparar um KMP por conta própria. O BCacheFS será reativado assim que seu mantenedor retomar a manutenção upstream.

Desenvolvimento

Superando o Obstáculo de 10.000+ LOC: Um Fluxo de Trabalho Estruturado para LLMs em Projetos Grandes

2025-09-11
Superando o Obstáculo de 10.000+ LOC: Um Fluxo de Trabalho Estruturado para LLMs em Projetos Grandes

Este artigo detalha um fluxo de trabalho bem-sucedido para usar LLMs em projetos grandes, com mais de 10.000 linhas de código. O autor descobriu que gerar um sistema inteiro diretamente com um LLM é caótico e propenso a erros. Em vez disso, uma abordagem estruturada é apresentada: escrever manualmente documentos de design e arquitetura primeiro, depois usar o LLM como uma ferramenta de geração e transformação de código, iterando em pequenas tarefas, revisando e corrigindo sistematicamente o código e atualizando continuamente a documentação e as diretrizes de codificação. Este método evita com sucesso as limitações do LLM em projetos grandes, mantendo a manutenibilidade e a consistência.

Desenvolvimento

Dotter: Um poderoso gerenciador de dotfiles e mecanismo de criação de modelos em Rust

2025-09-11
Dotter: Um poderoso gerenciador de dotfiles e mecanismo de criação de modelos em Rust

Dotter é um gerenciador de dotfiles e mecanismo de criação de modelos escrito em Rust, projetado para simplificar o gerenciamento e a implantação de dotfiles. Ele resolve muitos inconvenientes associados ao gerenciamento manual de dotfiles, como rastrear origens de arquivos, configuração tediosa em novas máquinas e lidar com diferenças de configuração entre máquinas. Dotter automatiza o gerenciamento de dotfiles por meio de configuração flexível e criação de modelos ou links simbólicos automáticos. Ele suporta instalação via Homebrew, AUR e Scoop, e também fornece binários e instalação via Cargo. Dotter também oferece amplas opções de linha de comando e funções de gancho para fluxos de trabalho definidos pelo usuário.

Desenvolvimento

Ordenação por Radix supera Tabelas Hash: Uma Batalha de Desempenho para Contar Valores Únicos

2025-09-11
Ordenação por Radix supera Tabelas Hash: Uma Batalha de Desempenho para Contar Valores Únicos

No problema de contar valores únicos em um grande array de uint64s majoritariamente únicos, o algoritmo de ordenação por radix, quando bem ajustado, geralmente é mais rápido do que tabelas hash. Ao usar a largura de banda de memória de forma eficiente e combinando habilmente o hash com o processo de ordenação, a ordenação por radix alcança uma aceleração de até 1,5x em relação às tabelas hash ajustadas para conjuntos de dados maiores que 1 MB, e até 4x mais rápido do que as excelentes tabelas hash Swiss Table do Rust. No entanto, o desempenho da ordenação por radix diminui com distribuições de dados não uniformes; o uso de uma função hash invertível pré-processa os dados para manter a eficiência. O artigo compara ambos os métodos em diferentes tamanhos de dados e frequências de acesso, e discute a estratégia para escolher entre eles em aplicações do mundo real.

Desenvolvimento ordenação por radix

Soluções Elegantes do Clojure para o Problema da Expressão

2025-09-11
Soluções Elegantes do Clojure para o Problema da Expressão

Na conferência Strange Loop, Chris Houser apresentou duas abordagens do Clojure para resolver o problema da expressão: multimethods e protocolos. A apresentação explorou os prós e contras de cada método, mostrando sua implementação em Clojure. Houser, coautor de "The Joy of Clojure" e contribuidor principal da linguagem, demonstrou poderosamente a flexibilidade e expressividade do Clojure.

Desenvolvimento Problema da Expressão

Queda em massa de assistentes de codificação de IA destaca os riscos crescentes de dependência

2025-09-11
Queda em massa de assistentes de codificação de IA destaca os riscos crescentes de dependência

Uma recente queda nos assistentes de codificação de IA, como o Claude Code da Anthropic, expôs a grande dependência do desenvolvimento de software moderno em relação a essas ferramentas. Os desenvolvedores recorreram a alternativas, incluindo até mesmo o Stack Overflow, sublinhando os perigos da superdependência. A tendência emergente de 'codificação por vibração' (vibe coding), usando linguagem natural para gerar código sem entender a lógica subjacente, levou a resultados desastrosos, incluindo corrupção de arquivos pelo Gemini CLI do Google e exclusão de banco de dados pelo serviço de IA da Replit. A queda serviu como um lembrete claro das potenciais consequências da dependência de IA e provocou reflexões sobre o equilíbrio entre vida profissional e pessoal.

Desenvolvimento

TailGuard: Conectando WireGuard ao Tailscale com um Contêiner Docker

2025-09-11
TailGuard: Conectando WireGuard ao Tailscale com um Contêiner Docker

O TailGuard é um aplicativo simples de contêiner Docker que permite conectar servidores WireGuard existentes à rede Tailscale, mesmo em dispositivos bloqueados ou que não suportem binários Tailscale. Ele funciona executando um contêiner em um VPS, criando uma ponte entre o WireGuard e a rede Tailscale, simplificando o gerenciamento de chaves e permitindo a troca fácil entre dispositivos. Os usuários baixam uma configuração WireGuard, executam um comando Docker e se conectam. Parâmetros personalizáveis e suporte a IPv6 facilitam a conexão às redes Tailscale e WireGuard.

Desenvolvimento

Dispachos Múltiplos em C++: Desafios e Soluções

2025-09-11

Este artigo explora os desafios de implementar despacho múltiplo em C++. Despacho múltiplo permite a seleção dinâmica de funções com base nos tipos de tempo de execução de múltiplos objetos, útil ao lidar com interações entre objetos de tipos diferentes, como calcular interseções de várias formas. O artigo compara várias abordagens, incluindo o padrão visitor e verificações if-else por força bruta, analisando seus prós e contras. O padrão visitor, embora eficiente, é intrusivo e difícil de manter; a força bruta é fácil de manter, mas verboso e ineficiente. O artigo também menciona brevemente uma tentativa de padronização C++ propondo despacho múltiplo e prevê artigos subsequentes explorando sua implementação em outras linguagens de programação.

Desenvolvimento

arXivLabs: Projetos Experimentais com Colaboradores da Comunidade

2025-09-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 e aceitaram 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

Desktop-TUI: Ambiente de área de trabalho sem gráficos

2025-09-11
Desktop-TUI: Ambiente de área de trabalho sem gráficos

Desktop-TUI é um ambiente de área de trabalho semelhante ao tmux, mas sem interface gráfica. Ele analisa arquivos de atalho para iniciar aplicativos e comandos, com suporte para movimentação e redimensionamento de janelas, opções de ladrilhamento e tratamento de erros de aplicativos e falhas de aplicativos GNU. Os usuários podem selecionar arquivos ou pastas como argumentos de aplicativos ou comandos. Atualmente usa ncurses (com problemas de cores), planeja mudar para Crossterm. Instale via `cargo install desktop-tui` e execute com `cargo run -- `. Os arquivos de atalho (ex: helix.toml) usam o formato TOML para definir nomes de aplicativos, comandos e argumentos.

JiraTUI: Gerenciamento de Tarefas Jira na Linha de Comando

2025-09-11

O JiraTUI é uma poderosa ferramenta de linha de comando que simplifica o gerenciamento de tarefas do Jira. Crie novas tarefas do Jira diretamente do seu terminal, especificando facilmente detalhes como título, descrição e prioridade. Gaste menos tempo navegando pelas interfaces e mais tempo trabalhando. Também permite comentar tarefas diretamente do terminal, melhorando a comunicação e colaboração da equipe.

Desenvolvimento

DataFrame Leve em MicroHs: Uma Aventura Haskell 2010

2025-09-11

Começando com um projeto Android em Frege (Haskell na JVM) em 2015, a jornada de programação funcional do autor o levou a uma busca para desacoplar sua biblioteca DataFrame do GHC para compatibilidade com MicroHs. Esta publicação detalha a implementação da funcionalidade principal do DataFrame - construção, expressões básicas, `filterWhere`, `derive` e renderização Markdown - em Haskell 2010, sem GADTs, famílias de tipos ou reflexão. O experimento demonstra que, embora verboso, a funcionalidade principal permanece viável, oferecendo portabilidade entre MicroHs (para CLIs minúsculos ou contextos embutidos) e GHC (para velocidade e acesso ao ecossistema). Os binários do MicroHs são aproximadamente 100 vezes menores, mas 5 a 10 vezes mais lentos; uma troca vantajosa para muitas tarefas de manipulação de dados, permitindo um back-end GHC para processamento pesado.

Desenvolvimento

KDE lança versão alfa de sua própria distribuição Linux: KDE Linux

2025-09-11

Na Akademy 2025, o Projeto KDE lançou uma versão alfa do KDE Linux, uma distribuição construída para mostrar o melhor das ofertas do KDE usando tecnologias avançadas. Baseado no Arch Linux, mas sem usar o Pacman, ele emprega o KDE Builder e o Flatpak para instalação de software. Embora vise uso doméstico, comercial e OEM, a versão alfa ainda está em desenvolvimento. Planos futuros incluem edições de teste, entusiastas e estável, com um possível plano de fim de vida envolvendo migração para outra distribuição.

Desenvolvimento

Execute qualquer aplicativo GUI no seu terminal: term.everything❗

2025-09-11
Execute qualquer aplicativo GUI no seu terminal: term.everything❗

Imagine jogar jogos e assistir filmes diretamente no seu terminal! term.everything❗ é um executor de GUI baseado em Wayland que renderiza aplicativos GUI dentro do seu terminal. A qualidade depende da resolução do seu terminal, com resoluções mais altas (como kitty ou iterm2) fornecendo melhores resultados. Embora ainda esteja em beta, alguns aplicativos podem falhar, mas ele já suporta jogos como Doom. Ele é construído usando TypeScript e Bun, com um toque de C++.

Desenvolvimento GUI de terminal

Mux: Infraestrutura de Vídeo para Desenvolvedores

2025-09-11
Mux: Infraestrutura de Vídeo para Desenvolvedores

A Mux democratiza o vídeo ao resolver os problemas complexos que os desenvolvedores enfrentam ao criar aplicativos de vídeo: codificação, streaming (Mux Video) e monitoramento (Mux Data). A equipe possui experiência em empresas como Google, YouTube e Twitch, e é apoiada por investidores de primeira linha como Coatue, Accel e Andreessen Horowitz. Eles construíram uma plataforma robusta usada por empresas que vão de startups a gigantes como Reddit, Vimeo e Robinhood, com o objetivo de melhorar a experiência geral de vídeo.

Desenvolvimento

arXivLabs: Projetos Experimentais com Colaboradores da Comunidade

2025-09-10
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.

Desenvolvimento

A Experiência Corporal da Programação: Uma Sinestesia de Programador

2025-09-10
A Experiência Corporal da Programação: Uma Sinestesia de Programador

O autor descreve as sensações viscerais evocadas por diferentes linguagens de programação: parênteses aninhados em linguagens semelhantes a C parecem caminhar em uma corda bamba, programação funcional como rastejar por cavernas, e escrever firmware como um trabalho preciso e limitado. Usar Copilot e TypeScript é como voar, enquanto retornar ao Python sem tipo é como tropeçar bêbado. O autor argumenta que essa sinestesia de código, embora sutil, é comum e influencia a compreensão do código e o design do sistema. Embora essa sensação possa não melhorar diretamente a eficiência da codificação, ela é incrivelmente útil na compreensão de como startups funcionam, ajudando o autor a identificar partes críticas e conexões ausentes. O autor conclui sugerindo que ótimos editores de código devem aproveitar as intuições sensoriais de excelentes engenheiros, melhorando a maneira como o código é exibido para aprimorar a experiência de programação.

A Peça Que Falta no PKM: Reaparecendo o Conhecimento Esquecido

2025-09-10
A Peça Que Falta no PKM: Reaparecendo o Conhecimento Esquecido

O autor usa vários aplicativos de PKM, como Obsidian e Things, para gerenciar grandes quantidades de informações digitais, mas descobre que falta um recurso crucial: ajudar os usuários a se re-engajarem com as informações capturadas, mas esquecidas. Mesmo consultas simples de banco de dados poderiam alcançar isso, como mostrar tarefas com mais de seis meses. O autor apela aos desenvolvedores de aplicativos PKM para adicionar esses recursos, talvez inspirados na página inicial do Spotify, para reapresentar notas antigas, tarefas, etc., evitando que as informações se tornem um "buraco negro de conhecimento."

Desenvolvimento

git-down: Baixe diretórios de repositórios Git com eficiência

2025-09-10
git-down: Baixe diretórios de repositórios Git com eficiência

Cansado de baixar diretórios únicos de repositórios Git? O git-down está aqui para ajudar! Esta ferramenta simples de linha de comando permite baixar um ou mais diretórios de um repositório Git sem clonar todo o repositório. Ele suporta GitHub, BitBucket, GitLab e SourceForge, e oferece atalhos para facilitar o uso. Ao contrário do processo trabalhoso de baixar arquivos compactados, clonar superficialmente e mover arquivos, o git-down aumenta significativamente a eficiência e economiza tempo. Embora exija compilação própria (ambiente Rust necessário), sua velocidade e conveniência o tornam uma ferramenta indispensável para usuários Git.

Desenvolvimento

Quebras de Linha Semânticas: Escrevendo uma Prosa Melhor

2025-09-10
Quebras de Linha Semânticas: Escrevendo uma Prosa Melhor

Este artigo apresenta a especificação de Quebras de Linha Semânticas (SemBr), uma convenção para melhorar a estrutura de texto adicionando quebras de linha após cada unidade de pensamento substancial. SemBr recomenda quebras de linha após frases, orações independentes e antes de listas, melhorando a legibilidade e a edição sem afetar a saída renderizada. O autor discute a aplicação do SemBr em várias linguagens de marcação leves e como migrar texto existente para essa convenção, destacando os benefícios para escritores, editores e leitores.

De Bash para Go: Um Guia Prático para Construir Ferramentas de CLI

2025-09-10
De Bash para Go: Um Guia Prático para Construir Ferramentas de CLI

Este artigo é a segunda parte de uma série que introduz programadores Bash ao Go, focando na construção de ferramentas de linha de comando. Começando com um exemplo simples de "hello world", ele abrange progressivamente a escrita de testes, o tratamento de entrada/saída, o uso da interface io.Writer, a prevenção de armadilhas de variáveis globais e a utilização de padrões de opções e o pacote `flag` para lidar com argumentos e sinalizadores de linha de comando. O artigo culmina em uma ferramenta CLI mais prática: contar linhas duplicadas em texto de entrada.

Desenvolvimento
1 2 6 7 8 10 12 13 14 214 215