Category: Desenvolvimento

Hotspot: Uma interface gráfica elegante para análise de desempenho do Linux perf

2025-05-22
Hotspot: Uma interface gráfica elegante para análise de desempenho do Linux perf

A KDAB desenvolveu o Hotspot, uma interface gráfica independente para análise de dados de desempenho, inicialmente focando na visualização de dados do Linux perf em uma interface semelhante ao KCachegrind. Ele oferece visualização gráfica, filtragem de linha do tempo e a capacidade de lançar o perf para perfilar aplicativos. Disponível como um AppImage para uso fácil em várias distribuições, ou por meio de gerenciadores de pacotes (AUR, Debian, Ubuntu, Fedora), o Hotspot permite que os usuários analisem o tempo de CPU e fora de CPU, exportando dados para compartilhamento. Embora ainda não esteja completo em termos de recursos, o Hotspot simplifica a análise de desempenho do Linux.

Desenvolvimento interface gráfica

As críticas mordazes de Dijkstra às propostas da linguagem Ada

2025-05-22
As críticas mordazes de Dijkstra às propostas da linguagem Ada

Edsger Dijkstra, ganhador do Prêmio Turing, revisou quatro propostas para a linguagem de programação Ada (vermelha, verde, azul e amarela). Ele chamou a proposta vermelha de 'avançada e atrasada de forma tão incongruente que fiquei perplexo'. A proposta verde foi considerada como mostrando 'incompetência técnica, provavelmente aprimorada pela desonestidade'. A proposta azul era 'inacceptavelmente complexa', com documentação descrita como uma 'mistura inextricavelmente complexa de documentação técnica e conversa de vendas'. Por fim, Dijkstra ficou famoso por se preocupar com a segurança ocidental dependendo da proposta verde vencedora, sugerindo até que se sentiria mais seguro se o Exército Vermelho Soviético a adotasse. Essa anedota destaca o compromisso inabalável de Dijkstra com padrões técnicos rigorosos e design claro na engenharia de software.

Desenvolvimento

Por que o Debian altera seus pacotes?

2025-05-22

Há um ano e meio, escrevi "Por que o Debian é como é?", o que gerou muitas perguntas sobre por que o Debian altera seus pacotes de software. Este artigo descreve os motivos principais: aderência às diretrizes do Manual de Políticas do Debian (por exemplo, locais de configuração do sistema e documentação); garantir compatibilidade entre programas (por exemplo, locais de sockets de domínio Unix, contas de usuário); remoção de código que "liga para casa" ou ignora o sistema de empacotamento do Debian (por motivos de privacidade e segurança); correção ou retrocompatibilidade de correções de bugs para melhorar a experiência do usuário; evitar a inclusão de código legalmente problemático (de acordo com as Diretrizes de Software Livre do Debian); e adição de páginas de manual ausentes. Essencialmente, essas alterações garantem a estabilidade do sistema, a segurança e a adesão aos princípios de software livre.

Desenvolvimento

A Mina de Ouro de Tutoriais de Computação Gráfica de Inigo Quilez

2025-05-22

Inigo Quilez, um veterano especialista em computação gráfica, se dedica a aprender e compartilhar seu conhecimento desde 1994. Seu site oferece uma vasta coleção de tutoriais de computação gráfica, cobrindo tópicos que vão de SDFs e ray marching a fractais e técnicas matemáticas. Os tutoriais apresentam trechos de código concisos e explicações claras, atendendo a vários níveis de habilidade. Ele também fornece tutoriais em vídeo e outros recursos, e seu código possui licença MIT para fácil reutilização.

Desenvolvimento

DuckDB em um MacBook Pro de 2012: Perdemos uma década com arquiteturas distribuídas?

2025-05-22
DuckDB em um MacBook Pro de 2012: Perdemos uma década com arquiteturas distribuídas?

Este artigo testa o DuckDB em um MacBook Pro de 2012 para investigar se a velocidade da inovação de hardware superou o crescimento de dados, tornando as arquiteturas distribuídas desnecessárias. Os resultados mostram que o laptop de dez anos consegue executar consultas SQL analíticas complexas, embora mais lentamente do que máquinas modernas, mas em prazos razoáveis. Isso leva a uma reflexão sobre o foco da última década em análises de dados distribuídas, sugerindo que a tecnologia de banco de dados de nó único era capaz de lidar com grandes conjuntos de dados naquela época, questionando a necessidade da mudança para sistemas distribuídos.

Desenvolvimento

Servidor de Linguagem Kotlin Experimental para VS Code

2025-05-22
Servidor de Linguagem Kotlin Experimental para VS Code

Um servidor de linguagem Kotlin pré-alfa oficial agora está disponível para o Visual Studio Code, implementando o Protocolo de Servidor de Linguagem para Kotlin. Construído com base no IntelliJ IDEA e seu plugin Kotlin, este servidor suporta a maioria dos recursos essenciais, mas é experimental e não oferece garantias de estabilidade. Atualmente, apenas projetos Kotlin Gradle apenas para JVM são suportados diretamente. Partes da implementação são atualmente de código fechado para desenvolvimento mais rápido, com planos para código aberto completo posteriormente. Embora seja facilmente instalável como uma extensão do VS Code, outros editores exigem configuração manual. Os usuários são encorajados a experimentá-lo e fornecer feedback, mas contribuições diretas de código ainda não são suportadas.

Desenvolvimento

Da Rejeição à Aceitação: O Poder da Primeira Página

2025-05-22
Da Rejeição à Aceitação: O Poder da Primeira Página

Um artigo inicialmente rejeitado foi revisado dramaticamente, resultando em sua aceitação. O autor detalha meticulosamente as mudanças, focando na página crucial inicial (título, resumo, Figura 1, introdução). Ao tornar o título específico e memorável, a Figura 1 visualmente atraente e a introdução e o resumo concisos e envolventes, o autor melhorou o impacto do artigo. Outras revisões incluíram a adição de baselines, ablações e a garantia de significância estatística, abordando possíveis razões para a rejeição. O autor conclui que melhorar a comunicação melhora significativamente o impacto científico.

Encontrando informações em e-mails com LLMs e um servidor MCP

2025-05-22

O autor construiu um servidor MCP para dar a um Modelo de Linguagem Grande (LLM) acesso somente leitura aos seus e-mails. Por meio de uma conversa com o Gemini (um LLM), o autor demonstra como ferramentas simples de busca e recuperação podem ser usadas para encontrar o nome do filho de Donovan em e-mails. Embora a estratégia de busca inicial do Gemini empregasse várias palavras-chave (como "son", "boy", "baby"), a maioria levou aos parentes de Donovan. Por fim, o Gemini identificou pistas nos resultados de busca iniciais, analisando assuntos e conteúdo de e-mails, encontrando com sucesso o nome do filho como Monty. O processo destaca o poder dos LLMs combinados com ferramentas específicas para recuperação de informações e destaca a importância de estratégias de busca precisas.

Desenvolvimento

Tabela HTML pesquisável a partir de CSV em JavaScript puro

2025-05-22
Tabela HTML pesquisável a partir de CSV em JavaScript puro

Cansado de lutar com dados CSV? Este projeto em JavaScript puro transforma seus arquivos CSV em tabelas HTML bonitas, pesquisáveis e filtráveis. Com código mínimo, visualize seus dados, personalize a formatação, habilite downloads e incorpore a tabela sem problemas. Confira a demonstração e simplifique o manuseio de seus dados hoje mesmo!

Desenvolvimento

Aventuras em Código Legado: Uma Odisséia COBOL

2025-05-22

A manutenção de 200 mil linhas de código COBOL revelou um tesouro de hacks engenhosos e peculiaridades históricas. O autor descobriu numéricos na base 10, análise de strings inteligente usando definições de dados e uma instrução 'REDEFINES' usada para internacionalização (mesmo com redefinições em espanhol!). Saídas antecipadas foram implementadas para término abrupto do trabalho, e um arquivo misteriosamente continha os primeiros 800 números naturais como constantes de string. A história conclui com a revelação de que o comando 'dd' do UNIX origina-se da instrução 'DD' do COBOL para definição de dados, mostrando o legado inesperado da programação de mainframes.

Desenvolvimento código legado

arXivLabs: Colaboração da Comunidade em Recursos do arXiv

2025-05-21
arXivLabs: Colaboração da Comunidade em Recursos do arXiv

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

Desenvolvimento

Otimização de Renderização de Tabelas iText Core: De 5 Minutos para 7 Segundos

2025-05-21
Otimização de Renderização de Tabelas iText Core: De 5 Minutos para 7 Segundos

O engenheiro Guust da Apryse otimizou o desempenho de renderização de tabelas do iText Core. Ao evitar cálculos repetidos de colapso de borda e sobrecarga desnecessária de marcação, o tempo de renderização de uma tabela de 50.000 células caiu de 5 minutos para 7 segundos. As otimizações se concentraram na função `CollapsedTableBorders#getVerticalBorder` e no processamento de tags, melhorando significativamente o desempenho por meio de cache, remoção de chamadas de função redundantes e adição de tags em massa. Essa otimização está incluída no iText Core 9.1.0.

Desenvolvimento renderização de PDF

Rocky Linux 10 abraça o RISC-V: Um salto gigante para o código aberto

2025-05-21

Prepare-se para o Rocky Linux 10! Esta versão marca um marco significativo: suporte oficial para a arquitetura RISC-V. Graças aos esforços colaborativos da comunidade Fedora RISC-V e do AltArch SIG da Rocky, uma versão riscv64gc será incluída, direcionada a plataformas como StarFive VisionFive 2, QEMU e SiFive HiFive Premier P550. Embora alguns recursos possam ser limitados em determinadas plataformas, como a P550, a funcionalidade pronta para uso no VisionFive 2 e no QEMU é um destaque. Esta iniciativa impulsionada pela comunidade, iniciada no início de 2024, mostra o poder da colaboração de código aberto com os esforços upstream do Fedora RISC-V.

Desenvolvimento

ACE-RISCV: Framework de Computação Confidencial de Código Aberto para RISC-V

2025-05-21
ACE-RISCV: Framework de Computação Confidencial de Código Aberto para RISC-V

O ACE-RISCV é um projeto de código aberto que fornece uma estrutura de computação confidencial com um monitor de segurança formalmente verificado. Alvejando o RISC-V com portabilidade em mente, ele se concentra na verificação formal da implementação do monitor de segurança. O projeto suporta autenticação local e utiliza criptografia pós-quântica (PQC), incluindo ML-KEM, SHA-384 e AES-GCM-256. São fornecidas instruções detalhadas de construção e execução para uma arquitetura RISC-V de 64 bits.

Desenvolvimento

P vs. PSPACE: O Espaço é Computacionalmente Mais Poderoso que o Tempo?

2025-05-21
P vs. PSPACE: O Espaço é Computacionalmente Mais Poderoso que o Tempo?

Uma questão central na teoria da complexidade é a relação entre as classes de complexidade P e PSPACE. P engloba problemas solucionáveis em tempo razoável, enquanto PSPACE trata da complexidade espacial. A crença predominante é que PSPACE é maior que P, devido à reusabilidade do espaço, ao contrário do tempo. Provar isso requer demonstrar problemas em PSPACE insolúveis em tempo polinomial. O artigo relata a descoberta de 1975 por Hopcroft, Paul e Valiant, mostrando a ligeira vantagem do espaço sobre o tempo, mas o progresso estagnou. O trabalho de Ryan Williams finalmente quebrou o impasse, oferecendo novas perspectivas para resolver o problema P vs. PSPACE.

Desenvolvimento

Appwrite Sites: Implantação e Hospedagem de Sites em Um Só Lugar

2025-05-21
Appwrite Sites: Implantação e Hospedagem de Sites em Um Só Lugar

A Appwrite lançou o Sites, um novo produto que permite implantar e hospedar sites e aplicativos web diretamente dentro da Appwrite. Sem mais alternância entre plataformas e configurações complexas; basta construir, implantar e lançar. O Sites suporta sites estáticos e aplicativos SSR, integrando Git, uma CDN global, proteção DDoS e integrando-se perfeitamente aos serviços de banco de dados, funções, armazenamento e autenticação da Appwrite. Vários modelos de implantação com um clique estão disponíveis, com suporte a auto-hospedagem. O Appwrite Sites é gratuito até 1º de julho de 2025.

Google AI Studio: Desenvolvimento de aplicativos de IA aprimorado com o Gemini 2.5 Pro

2025-05-21
Google AI Studio: Desenvolvimento de aplicativos de IA aprimorado com o Gemini 2.5 Pro

O Google AI Studio recebeu uma atualização importante, integrando o modelo Gemini 2.5 Pro para geração de código significativamente aprimorada. Os desenvolvedores podem criar e implantar rapidamente aplicativos web com tecnologia de IA usando prompts simples de texto, imagem ou vídeo. A nova versão também incorpora modelos multimodais como Imagen, Lyria RealTime e Veo, oferecendo implantação com um único clique no Cloud Run e comparação e reversão convenientes de versões de código. Além disso, o novo suporte a áudio nativo e uma ferramenta de Contexto de URL aprimoram a interatividade e a recuperação de informações.

Desenvolvimento

Escalonador Go: De Humilde a Poderoso

2025-05-21
Escalonador Go: De Humilde a Poderoso

Este artigo mergulha na evolução do escalonador Go, traçando sua jornada de uma ineficiente fila de execução global única para o modelo GMP (Goroutine, Machine, Processor) altamente eficiente. Ele detalha os papéis e mecanismos de cada componente no modelo GMP, incluindo a criação de goroutines, preempção, tratamento de chamadas de sistema e o papel do netpoll em I/O de rede e arquivos. Os mecanismos de preempção cooperativa e não cooperativa são explicados. Ao dissecar o código-fonte do tempo de execução do Go, os leitores ganham uma compreensão mais profunda do modelo de concorrência do Go, permitindo que escrevam programas concorrentes mais eficientes.

Desenvolvimento Escalonador

Componentes Web Storefront do Shopify: Integração de e-commerce simplificada

2025-05-21
Componentes Web Storefront do Shopify: Integração de e-commerce simplificada

O Shopify lançou os Componentes Web Storefront, um conjunto de componentes HTML que simplificam a integração dos recursos de e-commerce do Shopify em qualquer site. Exiba produtos, coleções e checkout com HTML mínimo. Esses componentes gerenciam as complexidades da interação com a API Storefront do Shopify, eliminando a necessidade de JavaScript complexo. Crie experiências de compra personalizadas com CSS e HTML, adequadas para integrar em conteúdo existente ou criar páginas totalmente novas.

Desenvolvimento Integração de e-commerce

LlamaDev: A Nova Ferramenta de Gerenciamento de Monorepo do LlamaIndex

2025-05-21
LlamaDev: A Nova Ferramenta de Gerenciamento de Monorepo do LlamaIndex

Manter o monorepo do LlamaIndex com mais de 650 pacotes Python representou desafios significativos. Inicialmente usando Poetry para projetos individuais e Pants para orquestração, surgiram problemas de escala com a velocidade de construção e a manutenção do servidor de cache. Para resolver isso, a equipe do LlamaIndex criou o LlamaDev, substituindo o Poetry pelo uv e gerenciando internamente os grafos de dependência e o disparo de testes. O LlamaDev melhora drasticamente a velocidade de construção, simplifica a depuração e aprimora a experiência do desenvolvedor, facilitando a participação de contribuidores no projeto.

Desenvolvimento

Langfuse Lança Dashboards Personalizáveis: Desbloqueando o Poder dos Dados de Uso de LLM

2025-05-21
Langfuse Lança Dashboards Personalizáveis: Desbloqueando o Poder dos Dados de Uso de LLM

No terceiro dia do lançamento da Langfuse, eles introduziram dashboards personalizáveis: uma maneira poderosa de visualizar o uso de LLM diretamente na interface do usuário da Langfuse. Se você deseja rastrear tendências de latência, monitorar o feedback do usuário ou correlacionar custo com desempenho, os novos dashboards permitem que você crie os gráficos de que precisa, exatamente onde precisa deles. Para aqueles que preferem sua própria pilha de análise, os mesmos recursos de consulta estão disponíveis por meio de sua API. Esta postagem detalha a jornada da ideia do produto à implementação técnica, testes e lançamento, compartilhando as lições aprendidas na construção de insights flexíveis e em tempo real sobre seus pipelines de LLM. Ao abstrair o modelo de dados, construir um mecanismo de consulta flexível e de alto desempenho e um construtor de dashboards, a Langfuse entregou com sucesso dashboards personalizáveis, iterando por meio de testes beta e feedback do usuário para adicionar mais componentes de gráfico, widgets redimensionáveis, ferramentas melhoradas e até mesmo dashboards gerenciados pela Langfuse, oferecendo temas predefinidos valiosos.

Desenvolvimento

arXivLabs: Experimentos com Colaboração da Comunidade

2025-05-21
arXivLabs: Experimentos com Colaboração da Comunidade

arXivLabs é uma estrutura para colaboração em novos recursos do arXiv, diretamente no site. Indivíduos e organizações participantes devem compartilhar os valores do arXiv de abertura, comunidade, excelência e privacidade dos dados do usuário. Tem uma ideia para melhorar a comunidade arXiv? Saiba mais sobre arXivLabs.

Desenvolvimento

Visualizando o Grafo de Inclusão do Chromium: Uma Aventura de 150 MB em GraphML

2025-05-21
Visualizando o Grafo de Inclusão do Chromium: Uma Aventura de 150 MB em GraphML

Este artigo descreve a visualização do enorme grafo de inclusão do Chromium usando o clang-include-graph, uma ferramenta de linha de comando. O processo envolveu a construção do Chromium para gerar o arquivo compile_commands.json e, em seguida, o uso do clang-include-graph para produzir um arquivo GraphML de 150 MB. Esse arquivo, contendo mais de 140.000 nós e 1,3 milhão de arestas, foi visualizado com o Gephi. Scripts Python analisaram o grafo, revelando estatísticas interessantes, como um componente fortemente conectado de 92 nós responsável por 99% dos ciclos. O autor explora vários layouts de visualização e discute os desafios de trabalhar com um conjunto de dados tão grande.

Desenvolvimento

Chamadas de função LLM não escalam; orquestração de código é mais simples e eficaz

2025-05-21
Chamadas de função LLM não escalam; orquestração de código é mais simples e eficaz

Alimentar a saída completa das chamadas de ferramentas de volta aos LLMs é caro e lento. Este artigo argumenta que os esquemas de saída, permitindo a recuperação de dados estruturados, permitem que os LLMs orquestrem o processamento por meio de código gerado – uma abordagem mais simples e eficaz. Os métodos tradicionais, onde as saídas das ferramentas são alimentadas de volta ao LLM como mensagens para determinar a próxima etapa, funcionam bem com conjuntos de dados pequenos, mas falham em escala real (por exemplo, grandes blobs JSON de servidores MCP Linear e Intercom). O artigo propõe a execução de código como um método fundamental de processamento de dados, usando variáveis como memória e código para orquestrar várias chamadas de função para processamento de dados escalonável, superando os problemas de custo, velocidade e potencial perda de dados dos LLMs que lidam com grandes conjuntos de dados. Isso requer ambientes de tempo de execução de IA seguros e sem estado, atualmente em desenvolvimento inicial.

Desenvolvimento Orquestração de Código

Devstral: LLM de código aberto supera GPT-4.1-mini em benchmark de engenharia de software

2025-05-21
Devstral: LLM de código aberto supera GPT-4.1-mini em benchmark de engenharia de software

Mistral AI e All Hands AI colaboraram para lançar o Devstral, um modelo de linguagem grande (LLM) agente para tarefas de engenharia de software. O Devstral se destaca no benchmark SWE-Bench Verified, alcançando uma pontuação superior a 46,8%, mais de 6% acima dos modelos open-source anteriores e até superando o GPT-4.1-mini. Ele aborda problemas complexos de engenharia de software, como entender relacionamentos contextuais em grandes bases de código e identificar bugs sutis. O Devstral é leve, rodando em uma única RTX 4090 ou um Mac com 32 GB de RAM, e suporta implantação local, uso empresarial e integração com Copilot. O modelo é de código aberto e está disponível via API e várias opções de download.

Desenvolvimento

Edição de Texto Colaborativa Sem CRDTs ou OT

2025-05-21

Esta postagem de blog apresenta uma nova abordagem para edição de texto colaborativa que evita as complexidades dos Tipos de Dados Replicados Livres de Conflito (CRDTs) e Transformação Operacional (OT). A ideia principal é atribuir IDs exclusivos globalmente a cada caractere e usar operações "inserir depois". O servidor atualiza seu estado literalmente com base nessas operações, enquanto os clientes empregam reconciliação de servidor para atualizações locais otimistas. Essa abordagem é mais simples e flexível do que CRDT/OT, permitindo operações e recursos personalizados, como lidar com texto enriquecido e controles de acesso. Uma biblioteca npm complementar, Articulated, auxilia na implementação.

Desenvolvimento edição colaborativa

Resumo entre dispositivos do Windows 11: diga adeus às experiências interrompidas

2025-05-21
Resumo entre dispositivos do Windows 11: diga adeus às experiências interrompidas

A Microsoft apresentou um novo recurso de resumo entre dispositivos para o Windows 11 na Build 2025, semelhante ao Handoff da Apple. Isso permite que os desenvolvedores continuem o uso do aplicativo sem problemas entre dispositivos. Uma demonstração apresentou o Spotify, permitindo que os usuários retomassem uma música em seu PC com Windows de onde pararam em seu telefone. O WhatsApp também foi mostrado. Esse recurso, aparentemente um sucessor do Projeto Roma, promete experiências mais suaves entre dispositivos e maior descobribilidade de aplicativos no Windows para desenvolvedores de terceiros.

Desenvolvimento Resumo entre dispositivos

Blocos, Procs e Lambdas em Ruby: Diferenças Sutis em Closures

2025-05-21
Blocos, Procs e Lambdas em Ruby: Diferenças Sutis em Closures

Este artigo explora as diferenças entre blocos, procs e lambdas em Ruby. Embora todos agrupem código para execução, eles diferem sutilmente: Procs são objetos, atribuíveis e chamáveis com métodos, ao contrário dos blocos que são apenas parte da sintaxe de chamada de método; uma chamada de método permite no máximo um bloco, mas vários procs; lambdas verificam a contagem de argumentos, procs não; e lambdas e procs tratam a palavra-chave `return` de forma diferente. O artigo também explica closures, a origem dos nomes 'proc' e 'lambda', e aborda o cálculo lambda e funções anônimas.

Desenvolvimento

Otimização em Tempo de Ligação (LTO): O Próximo Nível de Otimização de Compilador?

2025-05-21
Otimização em Tempo de Ligação (LTO): O Próximo Nível de Otimização de Compilador?

Este artigo explora a Otimização em Tempo de Ligação (LTO), uma técnica que aprimora o desempenho do programa realizando otimizações durante a etapa de ligação. Compiladores tradicionais otimizam dentro de arquivos individuais, enquanto o LTO permite otimizações mais abrangentes entre arquivos, como inlining de funções e melhoria da localidade do código. Embora o LTO possa produzir melhorias significativas de desempenho (por exemplo, uma redução de 9,2% no tempo de execução e uma redução de 20% no tamanho do binário no teste do projeto ProjectX), ele também requer tempos de compilação e ligação mais longos e mais memória. O autor compara experimentos em ProjectX e ffmpeg para ilustrar as vantagens e desvantagens do LTO e sugere tentar o LTO em projetos não otimizados agressivamente para velocidade, concluindo que os ganhos de desempenho finais dependem do projeto específico.

evolved.lua: Uma biblioteca ECS rápida e flexível para Lua

2025-05-21
evolved.lua: Uma biblioteca ECS rápida e flexível para Lua

evolved.lua é uma biblioteca de Sistema de Entidade-Componente (ECS) rápida e flexível para Lua. Ela usa uma abordagem baseada em protótipos para armazenar entidades e seus componentes, empregando uma Estrutura de Matrizes (SoA) para iteração e processamento eficientes. A biblioteca suporta consultas, operações diferidas, operações em lote e recursos como um construtor de entidades para criação simplificada de sistemas complexos. Instale via luarocks ou clone o repositório; a documentação inclui uma visão geral, exemplos e uma folha de dicas.

Desenvolvimento
1 2 80 81 82 84 86 87 88 214 215