Category: Desenvolvimento

Mermaid.js: Crie diagramas facilmente com Markdown

2025-05-24
Mermaid.js: Crie diagramas facilmente com Markdown

Mermaid.js é uma ferramenta de criação de diagramas e gráficos baseada em JavaScript que utiliza definições de texto semelhantes ao Markdown para criar e modificar diagramas. Ela resolve o problema da documentação ficar para trás do desenvolvimento, permitindo a criação e modificação fáceis de vários gráficos, incluindo fluxogramas, gráficos de Gantt e diagramas de sequência. Mesmo não programadores podem usar facilmente o editor ao vivo para criar visuais complexos. Mermaid integra-se com aplicativos populares como o GitHub e inclui um iframe com sandbox para segurança aprimorada.

Desenvolvimento Diagramas

Novo buffer de texto do VS Code: Um triunfo da Piece Tree

2025-05-23
Novo buffer de texto do VS Code: Um triunfo da Piece Tree

O VS Code 1.21 apresenta uma nova implementação de buffer de texto, significativamente mais rápida e eficiente em termos de memória. A abordagem anterior, baseada em matriz de linhas, tinha dificuldades com arquivos grandes, levando a travamentos por falta de memória. A nova implementação usa uma Piece Tree — uma estrutura que combina vários buffers e uma árvore rubro-negra —, resultando em uso de memória muito reduzido e velocidades aprimoradas de abertura e edição de arquivos. Embora o acesso aleatório a linhas seja ligeiramente mais lento, o impacto no mundo real é mínimo. Essa reescrita também evita armadilhas de desempenho encontradas com uma abordagem nativa em C++, destacando o poder de estruturas de dados e algoritmos inteligentes.

Desenvolvimento

Java com 30 anos: De WORA à espinha dorsal da empresa

2025-05-23
Java com 30 anos: De WORA à espinha dorsal da empresa

Trinta anos atrás, Java surgiu, com sua promessa de 'Escreva uma vez, execute em qualquer lugar' oferecendo um sopro de ar fresco para o mundo do desenvolvimento. Embora a realidade de 'Escreva uma vez, teste em todos os lugares' às vezes prevalecesse, Java rapidamente se tornou um pilar dos aplicativos empresariais. Superou disputas judiciais com a Microsoft e experimentou flutuações de popularidade, mas ainda se mantém como uma linguagem de primeira linha no índice TIOBE. A estratégia de comercialização da Oracle causou controvérsia, mas a existência de alternativas de código aberto garante a vitalidade contínua do Java, mantendo-o altamente relevante ao entrar em sua quarta década.

Desenvolvimento aplicações empresariais

Engines de Execução Durável: De Transações Distribuídas a Temporal

2025-05-23

Este artigo explora a evolução dos engines de execução durável (como o Temporal), começando com transações de banco de dados iniciais, transações distribuídas e arquiteturas de RPC/microsserviços tolerantes a falhas. O autor analisa o exemplo "Six Little Lines of Fail" de Jimmy Bogard, destacando os desafios no tratamento de chamadas de funções entre serviços, como rollback de transações e mecanismos de retry. O artigo revisa as limitações das transações distribuídas (como o commit em duas fases), e explora tentativas no mundo Java com JSR-95 (Activity Service) e padrões de serviços web (como WS-AtomicTransaction), observando sua adoção limitada. O autor analisa ainda a ascensão recente de arquiteturas de microsserviços e os mecanismos correspondentes de tolerância a falhas, juntamente com event sourcing, orquestração e coreografia. Finalmente, o artigo compara engines de execução durável modernas, como Temporal, Restate e DBOS, incluindo seus modos operacionais, métodos de armazenamento de dados e integração com arquiteturas serverless, destacando sua importância na resolução de problemas de confiabilidade em sistemas distribuídos.

Desenvolvimento

Além do Produto Cuneiforme: Uma Nova Decomposição do Produto Geométrico

2025-05-23

Este artigo apresenta uma nova operação chamada "produto transcuneiforme", que decompõe completamente o produto geométrico em operações fundamentais da álgebra exterior: o produto exterior, complementos esquerdo e direito e aplicação da métrica. O autor demonstra que o produto transcuneiforme gera um espectro de produtos que vão do produto exterior ao produto interior (contração), substituindo o produto comutador e oferecendo um método mais limpo para calcular o produto geométrico. Isso se aplica não apenas a três dimensões, mas também a álgebras geométricas de dimensões superiores, com aplicações práticas na álgebra geométrica conforme, como o cálculo de círculos que se intersectam ortogonalmente.

arXivLabs: Experimentos com recursos impulsionados pela comunidade

2025-05-23
arXivLabs: Experimentos com recursos impulsionados pela comunidade

arXivLabs é uma plataforma que permite a colaboradores desenvolverem e compartilharem novos recursos do arXiv diretamente no site. Participantes, indivíduos e organizações, abraçam os valores do arXiv de abertura, comunidade, excelência e privacidade dos dados do usuário. O arXiv está comprometido com esses valores e só se associa a aqueles que os compartilham. Tem uma ideia para um projeto que beneficiará a comunidade arXiv? Saiba mais sobre o arXivLabs.

Desenvolvimento

De Mecânico a Máquina: A Jornada de um Programador de Volta às Raízes

2025-05-23

Um programador, perdido na rotina diária de produzir milhares de linhas de código, sente-se cada vez mais como uma máquina, sem emoção e compreensão. Ele anseia pela alegria e paixão que sentia por programação. Ele decide voltar às suas raízes, construindo seus próprios computadores, sistemas operacionais e linguagens de programação, mesmo que pareça sem sentido. Seu objetivo é reacender seu amor pela programação e se tornar um verdadeiro 'mecânico' novamente.

Desenvolvimento

Configurando o Emacs como gerenciador de arquivos com Guix

2025-05-23
Configurando o Emacs como gerenciador de arquivos com Guix

Este artigo descreve como configurar o modo dired do Emacs como o gerenciador de arquivos padrão usando o Guix e seu serviço home-xdg-mime-applications-service-type. Ao criar um arquivo xdg-desktop-entry e vinculá-lo ao tipo MIME inode/directory, clicar em um diretório o abre no Emacs dired. O autor fornece exemplos para configurar outros tipos MIME, permitindo fácil expansão da funcionalidade.

Desenvolvimento Gerenciador de arquivos

Duelo de Planilhas: Uma Comparação Direta de Nove Engines

2025-05-23
Duelo de Planilhas: Uma Comparação Direta de Nove Engines

Uma pesquisa realizada em junho de 2024 avaliou as capacidades dos softwares de planilha disponíveis. O objetivo era quantificar a sofisticação de cada engine, considerando o conjunto de recursos, suporte a fórmulas e funções, precisão dos cálculos e velocidade. O Excel permanece como o padrão de fato, embora o Google Sheets, GRID e SpreadJS ofereçam alternativas interessantes. O GRID se destaca na compatibilidade com o Excel e o Sheets, enquanto outros (HyperFormula, jSpreadsheet, etc.) ficam atrás em recursos e precisão. Essa comparação abrangente destaca os pontos fortes e fracos de cada engine, oferecendo insights valiosos para usuários e desenvolvedores.

Além da Atenção: Avanços Recentes em Arquiteturas de Transformadores Eficientes

2025-05-23

Este artigo explora vários avanços importantes em arquiteturas de Transformadores que vão além do mecanismo de atenção original. Essas técnicas se concentram principalmente na redução da complexidade computacional e dos requisitos de memória. Exemplos incluem Atenção de Consulta em Grupo (GQA), que reduz o uso de memória compartilhando projeções de chave/valor; Atenção Latente de Múltiplas Cabeças (MHA), que usa vetores latentes para diminuir a complexidade computacional; Flash Attention, que otimiza a velocidade por meio de um gerenciamento inteligente de memória; e Atenção em Anel (Ring Attention), que utiliza paralelismo de múltiplas GPUs para sequências extremamente longas. Além disso, o artigo abrange pré-normalização, RMSNorm, funções de ativação SwiGLU e métodos de normalização, bem como aquecimento da taxa de aprendizado, programação de cosseno, Mixture of Experts (MoE), previsão de vários tokens e decodificação especulativa. Essas técnicas coletivamente impulsionam os limites dos Transformadores, permitindo que eles processem sequências mais longas e dados de dimensão superior de forma mais eficiente, melhorando em última análise tanto a velocidade quanto o desempenho.

Desenvolvimento

O Guia Definitivo de Design de Lentes: de Singletes a Freeforms

2025-05-23
O Guia Definitivo de Design de Lentes: de Singletes a Freeforms

Este é o guia definitivo sobre formas de design de lentes, cobrindo sistemas ópticos desde simples singletes até freeforms complexos. A Dra. Kats Ikeda compartilha anos de experiência, destilando o conhecimento de livros didáticos em conceitos fáceis de entender e ilustrando-os com inúmeros exemplos, diagramas e rastreamentos de raios. O guia aprofunda-se na correção de aberrações, reconhecimento de padrões e explora sistemas ópticos modernos como aplicações a laser, lentes de telefones celulares e lentes litográficas.

Microsoft adiciona o Copilot ao Bloco de Notas: Uma integração de IA desnecessária?

2025-05-23
Microsoft adiciona o Copilot ao Bloco de Notas: Uma integração de IA desnecessária?

A Microsoft continua a integrar IA aos seus aplicativos integrados do Windows, com a atualização mais recente trazendo os recursos de geração de texto do Copilot ao Bloco de Notas. Os usuários precisam fazer login com suas contas da Microsoft e selecionar um local antes de usar a função 'Escrever' do Copilot para gerar texto. Essa adição gerou controvérsia, com muitos questionando sua necessidade e a achando supérflua para um editor de texto simples. Em contraste, as atualizações de IA para o Paint, como um gerador de adesivos e uma ferramenta de seleção inteligente, parecem mais práticas. O entusiasmo da Microsoft em adicionar recursos de IA em seus aplicativos é evidente, mas a utilidade de algumas integrações ainda é questionável.

Desenvolvimento

Superlinked: Busca vetorial unificada sem reordenação

2025-05-23
Superlinked: Busca vetorial unificada sem reordenação

A busca vetorial tradicional geralmente depende de reordenação demorada e computacionalmente cara para melhorar a relevância dos resultados. O Superlinked, uma estrutura Python para construção de sistemas de busca e recomendação de alto desempenho, resolve esse problema elegantemente, unificando dados estruturados e não estruturados em vetores multimodais. Ele usa uma mistura de codificadores no momento da indexação para combinar semântica de texto, faixas numéricas e atributos categóricos em embeddings unificados, eliminando a necessidade de reordenação para obter resultados mais relevantes, rápidos e eficientes no momento da consulta. O Superlinked suporta captura de intenção dinâmica e filtragem rígida, permitindo que os usuários ajustem pesos e filtrem resultados irrelevantes no momento da consulta, melhorando ainda mais a precisão e a eficiência da busca.

Desenvolvimento reordenação

Glitch encerrará o serviço de hospedagem de aplicativos em 2025

2025-05-23
Glitch encerrará o serviço de hospedagem de aplicativos em 2025

O Glitch, plataforma de codificação onde desenvolvedores podem compartilhar e remixar projetos, anunciou que deixará de oferecer seu recurso principal — hospedagem de aplicativos na web — em 8 de julho de 2025. Isso significa que os usuários não poderão mais hospedar projetos no Glitch e os perfis de usuário serão fechados. Embora o CEO Anil Dash não tenha confirmado o fechamento completo da plataforma, a medida lança dúvidas sobre o futuro do Glitch. Os usuários terão até o final de 2025 para baixar seus códigos e acessar seus projetos; o Glitch também está trabalhando em um recurso de redirecionamento de subdomínios de projetos. A mudança é atribuída ao aumento dos custos de manutenção e à atividade maliciosa, deixando o futuro do Glitch incerto.

Desenvolvimento

arXivLabs: Projetos experimentais com colaboração da comunidade

2025-05-23
arXivLabs: Projetos experimentais com colaboração 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

arXivLabs: Projetos experimentais com colaboradores da comunidade

2025-05-23
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

Adeus, Erros de Tipo Misteriosos: Como o PolySubML Melhora as Mensagens de Erro de Inferência de Tipo

2025-05-23

PolySubML é uma linguagem de programação que combina inferência de tipo global com subtipagem e polimorfismo avançado. Esta publicação explora como o PolySubML projeta boas mensagens de erro de tipo e explica por que as linguagens existentes muitas vezes ficam aquém na melhoria das mensagens de erro de inferência de tipo. O autor propõe cinco regras: 1. Nunca adivinhe ou volte atrás; 2. Não tire conclusões precipitadas; 3. Peça ao usuário para esclarecer a intenção; 4. Permita que o usuário escreva anotações de tipo explícitas; 5. Não inclua a inferência de tipo estático no seu modelo de execução em tempo de execução. Seguindo essas regras, o PolySubML aborda com sucesso muitos problemas comuns com a inferência de tipo, melhorando significativamente a capacidade de depuração do código.

Desenvolvimento inferência de tipo

Extensão PostgreSQL para VS Code: Gerenciamento de Banco de Dados com IA

2025-05-23
Extensão PostgreSQL para VS Code: Gerenciamento de Banco de Dados com IA

A Microsoft anuncia uma prévia pública de uma nova extensão do Visual Studio Code para PostgreSQL, projetada para otimizar os fluxos de trabalho de gerenciamento e desenvolvimento de bancos de dados. Utilizando a assistência de IA por meio do agente @pgsql do GitHub Copilot, os desenvolvedores podem gerenciar objetos de banco de dados, criar consultas com IntelliSense e otimizar esquemas — tudo dentro do VS Code. Recursos incluem visualização de esquema, menus de contexto para análise e reescrita de consultas e integração perfeita com o Azure Database for PostgreSQL e a autenticação Entra ID para segurança aprimorada. Essa extensão visa aumentar a produtividade do desenvolvedor ao resolver ineficiências comuns por meio de ferramentas com tecnologia de IA e uma experiência de desenvolvimento unificada.

Desenvolvimento

Samchika: Processamento de Arquivos Extremamente Rápido para Java

2025-05-23
Samchika: Processamento de Arquivos Extremamente Rápido para Java

Samchika é uma biblioteca de processamento de arquivos reutilizável, fácil de usar e incrivelmente rápida para Java. Construída para multithreading, ela lida com tarefas de arquivos intensivas em CPU em paralelo, garantindo alto desempenho mesmo com arquivos enormes. Sua API simples permite que você facilmente conecte seu caminho de arquivo e lógica de processamento, com estatísticas de tempo de execução opcionais fornecendo insights sobre o tempo de processamento e uso de memória. Ideal para arquivos de texto grandes (logs, conjuntos de dados), Samchika se destaca na análise de logs, operações ETL e processamento de grandes corpora. Benchmarks contra métodos tradicionais mostram melhorias significativas de desempenho, especialmente em sistemas multi-core (ganho de mais de 70% em arquivos variando de 200 MB a 16 GB).

Desenvolvimento Processamento de Arquivos

arXivLabs: Projetos experimentais com colaboradores da comunidade

2025-05-23
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

PostgreSQL em Escala na OpenAI: Melhores Práticas e Desafios

2025-05-23

Na PGConf.dev 2025, a OpenAI compartilhou suas melhores práticas para o uso do PostgreSQL, oferecendo insights sobre o uso do banco de dados em uma das principais empresas de IA do mundo. Eles utilizam uma arquitetura sem sharding, com um único escritor e múltiplos leitores, lidando com sucesso com cargas massivas de leitura para seus 500 milhões de usuários ativos. No entanto, as solicitações de escrita se tornaram um gargalo, levando a otimizações que incluem controle de carga no banco de dados principal (descarregando gravações, gravações preguiçosas), otimização de consultas (evitando transações longas, otimizando consultas complexas), tratamento de pontos únicos de falha (priorizando solicitações de alta prioridade) e gerenciamento cuidadoso de esquemas (restringindo alterações de esquema). Apesar desses esforços, a OpenAI encontrou desafios relacionados ao gerenciamento de índices, observabilidade e histórico de alterações de esquema, levando a sugestões de melhorias para o PostgreSQL. O especialista em PostgreSQL, Lao Feng, forneceu insights com base em sua experiência, mostrando que muitos problemas podem ser resolvidos com ferramentas ou métodos existentes, ou até mesmo usando seu sistema Pigsty de código aberto. Por fim, o cluster PostgreSQL da OpenAI processou com sucesso mais de um milhão de QPS, demonstrando o potencial do PostgreSQL em aplicações em larga escala.

Desenvolvimento

Creatr: Aumentando a Produtividade e Acelerando o Desenvolvimento

2025-05-23
Creatr: Aumentando a Produtividade e Acelerando o Desenvolvimento

Creatr é uma ferramenta de desenvolvimento poderosa que aumenta dramaticamente a eficiência do desenvolvedor. O feedback do usuário destaca a capacidade do Creatr de otimizar a codificação, permitindo que os desenvolvedores se concentrem em desenvolvimento e design de alto nível, levando à construção de projetos mais rápidos e melhores. A integração perfeita com o Supabase simplifica a implantação. Seja um protótipo rápido ou um aplicativo completo, o Creatr reduz significativamente o tempo de desenvolvimento, ajudando os desenvolvedores a dar vida às suas ideias mais rapidamente.

Aumentando a Acessibilidade de Tabelas Web: Um mergulho profundo no Tab Roving

2025-05-23

Este artigo aborda os desafios de gerenciamento de foco em tabelas web, especialmente para usuários de teclado, onde a navegação tradicional por tabulação é ineficiente. O autor apresenta uma técnica chamada "Tab Roving", que usa as teclas de seta para navegar entre as células da tabela, tratando a tabela inteira como um único elemento focalizável. Isso melhora significativamente a experiência do usuário para usuários de teclado. O artigo detalha os princípios de implementação, incluindo o uso do atributo `tabindex`, rastreamento de foco e um exemplo de código em React, e discute outros cenários de aplicação, como mega menus e campos de entrada numérica personalizados.

Desenvolvimento Gerenciamento de Foco

CRDTs: Semirreticulados até o Fim

2025-05-23

Este artigo mergulha nos princípios de design de Tipos de Dados Replicados sem Conflito (CRDTs), afirmando que todos os CRDTs bem projetados devem ser baseados em estruturas de semirreticulados. O autor critica CRDTs que escondem suposições, enfatizando que todas as suposições necessárias devem ser internalizadas dentro do semirreticulado. Usando conjuntos de adicionar/remover como exemplo, o artigo demonstra como a incorporação de uma rede de causalidade resolve o comportamento não convergente que pode surgir de mecanismos de expiração baseados em tempo local. O autor conclui resumindo os pontos-chave do design de CRDTs e enfatizando a importância da construção de sistemas distribuídos confiáveis.

Desenvolvimento semirreticulado

Questões de entrevista em Haskell: de palíndromos à frequência de palavras

2025-05-23

Este artigo aborda várias questões comuns de entrevistas de codificação em Haskell, incluindo verificações de palíndromos, FizzBuzz, combinações de soma, detecção de anagramas e localização de valores mínimos/máximos. O autor mostra o estilo de código elegante e conciso do Haskell, destacando o uso de correspondência de padrões, funções de ordem superior e recursão. Casos de borda, como o tratamento de listas vazias, também são abordados. Finalmente, a contagem eficiente de frequência de palavras usando Data.Map é demonstrada. O artigo é acessível a iniciantes em Haskell e aqueles curiosos sobre paradigmas de programação funcional.

Desenvolvimento questões de entrevista

Os Insanos 1.145 Deployments Diários do Stripe: Uma Aula de Eficiência

2025-05-23

O Stripe concluiu uma média de 1.145 pull requests e deployments por dia em 2024, experimentando menos de um minuto de inatividade da API durante todo o ano. Com cerca de 8.500 funcionários (cerca de 40% engenheiros), isso se traduz em cada engenheiro enviando pelo menos uma alteração para produção a cada três dias. Isso demonstra a cultura de engenharia excepcional do Stripe e o investimento maciço em testes automatizados, implantações, reversões, observabilidade e muito mais. Embora atingir a escala e a eficiência do Stripe seja desafiador, seu sucesso destaca a importância de reduzir o atrito para entregar valor rapidamente aos usuários.

Desenvolvimento

Copiloto de IA: Anjo ou Demônio?

2025-05-23
Copiloto de IA: Anjo ou Demônio?

Este artigo usa humor para descrever a experiência do autor trabalhando com um assistente de programação de IA (análoga a um colega incompetente). Embora reconheça a utilidade da IA para tarefas simples, o autor argumenta que a dependência excessiva da IA pode sufocar a criatividade dos programadores e a compreensão de tecnologias de baixo nível, levando em última análise a uma qualidade de código inferior e degradação do desempenho do sistema. O autor exorta os programadores a manterem sua paixão pela tecnologia e evitarem se tornarem fantoches da IA.

Desenvolvimento

Estagnação no Desenvolvimento do Flatpak: Falta de Mantenedores Impede a Inovação

2025-05-23

Apesar de sua popularidade entre desenvolvedores e usuários, e adoção por distribuições como Fedora, o projeto Flatpak está enfrentando estagnação no desenvolvimento. A causa principal é a perda de desenvolvedores-chave, levando a revisões de código e fusões lentas, e um acúmulo de novas funcionalidades e melhorias. O artigo explora os desafios no suporte OSTree e OCI do Flatpak, refinamento de permissões, namespaces de rede e integração de drivers NVIDIA, propondo uma possível refatoração baseada em OCI para aproveitar o ecossistema de contêineres mais amplo e resolver problemas existentes.

DuckDB Decola: Extensão Airport Habilita Suporte ao Arrow Flight

2025-05-23
DuckDB Decola: Extensão Airport Habilita Suporte ao Arrow Flight

O DuckDB recebeu uma grande atualização! A nova extensão Airport permite que o DuckDB consulte, modifique e armazene dados por meio de servidores Arrow Flight, rompendo as barreiras de acesso a várias fontes de dados. Agora, o DuckDB pode acessar dados não tabulares, formatos não suportados e até APIs externas. Os desenvolvedores podem adicionar funções SQL personalizadas, executar UDFs remotamente e implementar controle de acesso granular. Construído sobre o Apache Arrow e o gRPC, o Airport oferece alto desempenho e ampla compatibilidade, abrindo novos horizontes para serviços de dados.

Desenvolvimento

bpfilter: Aumentando o Desempenho de Filtragem de Rede com BPF

2025-05-23

O projeto bpfilter visa melhorar significativamente o desempenho de filtragem de rede no kernel Linux. Ele faz isso traduzindo regras iptables/nftables em programas BPF, contornando gargalos de desempenho inerentes a métodos tradicionais. Composto por três componentes — um daemon, uma biblioteca e uma interface de linha de comando —, o bpfilter permite que os usuários definam regras de filtragem personalizadas e se integra ao iptables. Benchmarks demonstram o desempenho superior do bpfilter em relação ao iptables e nftables ao lidar com grandes conjuntos de regras. Os planos futuros incluem suporte aprimorado para nftables e integração de programas BPF fornecidos pelo usuário.

Desenvolvimento Filtragem de Rede
1 2 78 79 80 82 84 85 86 214 215