Category: Desenvolvimento

Observabilidade para GitHub Actions com OpenTelemetry

2025-06-15
Observabilidade para GitHub Actions com OpenTelemetry

Este guia mostra como obter observabilidade de ponta a ponta de seus pipelines de CI/CD usando o OpenTelemetry para monitorar o GitHub Actions. Configurando o receptor GitHub do OpenTelemetry Collector, você pode coletar rastros e métricas de seus workflows, permitindo que você identifique gargalos, depure erros e analise dependências. O guia fornece uma configuração passo a passo, incluindo a configuração de um webhook do GitHub, a instalação do OpenTelemetry Collector, a configuração de receptores e processadores e o tratamento de autenticação. Trechos de configuração YAML são incluídos. Finalmente, esses dados são enviados para uma plataforma de observabilidade como o SigNoz para visualização e análise.

Desenvolvimento

Lisp: Um Meio Criativo para Programadores

2025-06-15

Este ensaio argumenta que Lisp não é apenas uma linguagem de programação, mas um meio criativo para programadores, semelhante à escrita ou à arte. O autor afirma que uma boa programação, como a escrita, envolve exploração e descoberta, seguidas pelo refinamento da apresentação. A natureza dinâmica do Lisp o torna ideal para experimentação e iteração, permitindo que os programadores ajustem e melhorem seu código, assim como um escritor revisa um manuscrito. Usando exemplos como cartografia e escrita, o autor ilustra a interação entre descoberta e refinamento, criticando a abordagem de priorização de desempenho no design de linguagens de programação como algo que prejudica a criatividade e a flexibilidade. O autor defende uma abordagem mais flexível e exploratória para o desenvolvimento de software, refletindo o espírito das metodologias Agile.

Desenvolvimento Paradigma de Programação

Quebrando a Segurança: Decifrando o Mecanismo de Atualização de uma VM para Facilitar os Flags

2025-06-15
Quebrando a Segurança: Decifrando o Mecanismo de Atualização de uma VM para Facilitar os Flags

Um aluno descobriu que os arquivos de atualização (*.gpg) em uma máquina virtual de um curso de segurança continham tokens para submissão de tarefas. Analisando o programa de atualização `installUpdate`, ele descobriu que utilizava descriptografia GPG, dependendo dos arquivos `/root/.vmPassphrase` e `/root/.gnupg`. Montando o disco da VM, o aluno obteve esses arquivos, descriptografou as atualizações, extraiu os tokens e completou as tarefas antecipadamente. As atualizações continham código Java gerando tokens criptografados com AES. O autor observa que este ataque dependia do acesso total ao disco da VM e sugere o uso de VMs remotas como melhoria. Apesar da conclusão antecipada, o autor enfatiza a importância do processo de aprendizagem e da conclusão do trabalho do curso.

Desenvolvimento

ICONIC: Ícones de habilidades elegantes para READMEs do GitHub

2025-06-15
ICONIC: Ícones de habilidades elegantes para READMEs do GitHub

ICONIC é uma biblioteca focada em desenvolvedores com ícones de habilidades elegantes em formato de bolha, projetados para READMEs do GitHub, portfólios e currículos. Apresenta ícones de bolha claros e esteticamente agradáveis, variantes de tema claro e escuro e fácil incorporação em Markdown/HTML. Além disso, oferece uma API de visualização HTML (backend Django) e SVGs para download, facilitando a demonstração de habilidades.

Desenvolvimento biblioteca de ícones

arXivLabs: Projetos Experimentais com Colaboradores da Comunidade

2025-06-15
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

Encontro de Desenvolvedores Core do Python: JITs, Threads Virtuais e o Futuro

2025-06-15
Encontro de Desenvolvedores Core do Python: JITs, Threads Virtuais e o Futuro

O encontro anual de desenvolvedores core do Python apresentou discussões empolgantes. Engenheiros do Meta exploraram compiladores JIT plugáveis, com o objetivo de simplificar o desenvolvimento por meio de novas APIs. Insights do Java impulsionaram debates sobre threads virtuais para Python, aumentando a concorrência. A cúpula também apresentou debates sobre operadores de mesclagem nula, ferramentas de codificação assistida por IA e a filosofia 'pior é melhor'. Por fim, os desenvolvedores pediram foco em benchmarks de memória e aprofundaram-se na evolução futura do sistema de tipos de T-strings.

Desenvolvimento

Como recuperar ícones de aplicativos com formas estranhas no macOS 26 Tahoe

2025-06-15
Como recuperar ícones de aplicativos com formas estranhas no macOS 26 Tahoe

O macOS 26 Tahoe substituiu os ícones de aplicativos com formas peculiares no Dock pelos ícones arredondados do iOS, uma mudança que desagradou muitos usuários. Este artigo apresenta uma solução para que usuários e desenvolvedores restaurem as formas personalizadas dos ícones. Os usuários podem substituir o arquivo .icns dentro do pacote do aplicativo; os desenvolvedores podem usar NSApplication.shared.dockTile.contentView para alterar o ícone em tempo de execução. Recupere a glória do seu Dock!

Desenvolvimento Ícones de aplicativos

De SQL Server para Armazenamento Chave-Valor: Uma análise de uma reescrita de banco de dados que deu errado

2025-06-15

Um desenvolvedor sênior relata sua experiência com uma reescrita de banco de dados em uma empresa anterior. O sistema original, usando SQL Server, sofria de gargalos de desempenho e frequentes interrupções devido a procedimentos armazenados complexos. A reescrita optou por armazenamentos chave-valor simples, mas devido à incompatibilidade do modelo de dados e à falta de suporte a transações, as operações de E/S dispararam, o desempenho piorou e um complexo sistema de checkpoints foi introduzido. A reescrita acabou não resolvendo os problemas originais e criou novos desafios. Esse relato humorístico reflete sobre a importância da seleção de tecnologia e do design arquitetônico, e o impacto negativo da simplificação excessiva.

Desenvolvimento reescrita de banco de dados

Um guia prático para compilar programas C em macOS

2025-06-14

Este artigo descreve a jornada do autor ao compilar programas C/C++ em macOS, destacando os desafios e soluções encontradas. De instalar compiladores e gerenciar dependências (usando ferramentas como `apt-get` e `brew`), a navegar por `Makefiles` e scripts `./configure`, o autor fornece um guia prático. Os principais pontos incluem lidar com avisos do compilador, resolver erros de link usando variáveis de ambiente como `CPPFLAGS` e `LDLIBS`, e compilar seletivamente alvos com `make`. O autor também enfatiza a importância de entender a compilação C, mesmo para programadores que não trabalham com C, devido à sua prevalência em ferramentas e bibliotecas de sistema. O artigo termina com a contribuição bem-sucedida do autor de um pacote compilado para o Homebrew, mostrando os benefícios práticos de dominar o processo de compilação.

Desacoplando Programação de Baixo Nível do Projeto de Sistemas: Repensando a "Programação de Sistemas"

2025-06-14

Este artigo explora a evolução do termo "programação de sistemas". O autor argumenta que ele confunde duas ideias distintas: programação de baixo nível (lidando com detalhes de implementação da máquina) e projeto de sistemas (criando e gerenciando componentes complexos que interagem). Das melhorias nos anos 70 em relação à linguagem assembly à ascensão das linguagens de script nos anos 90 e aos avanços de desempenho das linguagens atuais, as fronteiras da programação de sistemas ficaram cada vez mais difusas. O autor propõe redefinir "programação de sistemas" como "programação de baixo nível", deixando o projeto de sistemas como um campo separado. Ele argumenta que os princípios da programação funcional são valiosos no projeto de sistemas e sugere separar o ensino de programação de baixo nível e projeto de sistemas na educação em ciência da computação para promover a polinização cruzada de ideias.

Desenvolvimento projeto de sistemas

Rocky Linux 10 Lançado: A Divergência Aumenta Entre as Alternativas RHEL

2025-06-14
Rocky Linux 10 Lançado: A Divergência Aumenta Entre as Alternativas RHEL

O Rocky Linux 10, "Red Quartz", atingiu a disponibilidade geral, adicionando suporte para arquitetura RISC-V, mas abandonando modelos mais antigos do Raspberry Pi. Comparado ao AlmaLinux 10 e RHEL 10, lançados no início deste ano, surgem diferenças sutis em hardware e software. A mais notável é a exigência de CPUs x86-64-v3 no RHEL 10 e Rocky Linux 10, enquanto o AlmaLinux 10 suporta excepcionalmente x86-64-v2. Além disso, o assistente de IA do RHEL 10, "Lightspeed", está ausente no Rocky Linux 10. Embora funcionalmente semelhantes, o Rocky Linux 10 está sutilmente divergindo de suas alternativas RHEL em compatibilidade de hardware, recursos de IA e suporte comercial, criando seu próprio nicho de mercado.

Desenvolvimento

Programação sem libc: Dominando chamadas de sistema Linux com strace

2025-06-14

O autor recentemente se aventurou a construir software sem a libc para obter uma compreensão mais profunda das chamadas de sistema Linux e de seus mecanismos internos. Isso envolveu a criação de um shell mínimo, um jogo de Snake, um servidor HTTP em assembly puro ARM64 e uma implementação de threads. A depuração dependia muito do strace, e o artigo detalha várias opções e sinalizadores úteis do strace. Esses vão desde o rastreamento de processos filhos e a impressão de informações detalhadas da estrutura até o rastreamento seletivo de chamadas de sistema e até mesmo a injeção de erros de chamada de sistema para fins de depuração. Isso fornece insights valiosos sobre técnicas avançadas de programação e depuração de sistemas Linux.

Desenvolvimento

Limitação de Aninhamento de Grupos Mutuamente Exclusivos do Argparse: Um Enigma Frustrado

2025-06-14

O módulo argparse do Python, embora ofereça recursos convenientes para lidar com argumentos de linha de comando, incluindo grupos mutuamente exclusivos, possui uma limitação frustrante quando se trata de aninhamento. Considere um programa com várias configurações de tempo limite em que os usuários podem ajustar tempos limite individuais ou desativá-los completamente. O argparse não suporta aninhar uma opção 'sem tempo limite' dentro de um grupo de opções de tempo limite individuais, tornando a configuração complicada. Embora você possa aninhar um grupo mutuamente exclusivo dentro de um grupo regular, o inverso não é suportado, e a documentação oficial afirma explicitamente essa limitação. Isso obriga os desenvolvedores a verificar manualmente se determinadas opções foram usadas, adicionando complexidade.

Desenvolvimento

Oráculo da Verdade em Lisp: Uma história curiosa sobre teoria de tipos, isomorfismo de Curry-Howard e call/cc

2025-06-14

Esta publicação tenta escrever um "oráculo da verdade" em Lisp — um programa que determina a verdade ou falsidade de afirmações matemáticas arbitrárias. O autor introduz o isomorfismo de Curry-Howard, explicando como provas lógicas correspondem a expressões em programação funcional tipada. Usando a função call/cc do Racket (isomórfica à lei de Peirce), é feita uma tentativa de implementar um programa isomórfico à lei do meio excluído. Inesperadamente, o oráculo sempre retorna falso até tentar acessar um valor de tipo impossível, revelando as diferenças entre lógica clássica e lógica construtiva, e o mecanismo de fluxo de controle não-padrão do call/cc. Finalmente, o autor usa uma metáfora de um "acordo com o diabo" para explicar esse comportamento estranho, mostrando o mecanismo semelhante a uma viagem no tempo por trás do call/cc.

Desenvolvimento teoria de tipos

Automatizando Mensagens de Texto Diárias com a Previsão do Tempo

2025-06-14

Cansado de abrir o aplicativo do tempo todas as manhãs? O autor explorou dois métodos: primeiro, uma automação Zapier que enviava uma mensagem de texto diária com a previsão do tempo por volta das 7h. No entanto, devido à falta de personalização e à dependência de terceiros, ele construiu um sistema mais flexível usando TypeScript, Twilio e GitHub Actions. A API Open-Meteo fornece os dados do tempo, o Twilio envia mensagens SMS e o GitHub Actions aciona a tarefa às 6h45 diariamente (considerando os fusos horários). Embora o resumo personalizado seja menos detalhado do que o do Zapier, ele obteve controle e custo-efetividade, planejando melhorias nos detalhes do resumo.

Desenvolvimento

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

2025-06-14
arXivLabs: Colaboração da Comunidade em Recursos do arXiv

arXivLabs é uma estrutura que permite a colaboradores desenvolverem e compartilharem novos recursos do arXiv diretamente no site. Indivíduos e organizações participantes compartilham os valores do arXiv 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 valioso para a comunidade do arXiv? Saiba mais sobre o arXivLabs.

Desenvolvimento

Arquitetura de Dados Unificada da Netflix: Modele Uma Vez, Represente em Todos os Lugares

2025-06-14
Arquitetura de Dados Unificada da Netflix: Modele Uma Vez, Represente em Todos os Lugares

A explosão de ofertas de conteúdo da Netflix — filmes, séries, jogos, eventos ao vivo, anúncios — criou uma teia complexa de sistemas de suporte. Para resolver modelos duplicados, terminologia inconsistente e problemas de qualidade de dados, a Netflix construiu a Arquitetura de Dados Unificada (UDA). A UDA é um grafo de conhecimento que permite às equipes definir modelos uma vez e reutilizá-los consistentemente em todos os sistemas. Usando um metamodelo interno chamado Upper, a UDA traduz modelos de domínio em várias estruturas de dados técnicas (GraphQL, Avro, SQL, etc.), automatizando a movimentação e transformação de dados entre contêineres. Isso aumenta a eficiência e a consistência de dados. Dois sistemas de produção, Gerenciamento Primário de Dados (PDM) e Sphere, mostram o poder da UDA, lidando com dados de referência autoritativos e relatórios operacionais de autoatendimento, respectivamente.

Desenvolvimento Arquitetura de Dados

De Quant para BCI: Um Roteiro de Aprendizagem para 2025

2025-06-14

Um engenheiro experiente com histórico em finanças quantitativas e desenvolvimento de software está se mudando para o fascinante campo das interfaces cérebro-computador (BCIs). Ele embarcou em uma jornada de aprendizado autodidata de 12 a 24 meses, estruturada em três fases: hardware básico (construindo um relógio digital, amplificando sinais bioelétricos), sistemas intermediários (rádio analógico/digital, processamento de sinal baseado em FPGA) e tópicos avançados (estimulação neural em loop fechado, transferência de dados sem fio). Este plano ambicioso combina autoestudo, projetos práticos e engajamento comunitário, com o objetivo de, eventualmente, conseguir um cargo na academia, em uma startup ou na indústria no espaço BCI.

Desenvolvimento Autoaprendizagem

Avanços Recentes em Programação Linear Mista de Inteiros (MILP)

2025-06-14

A programação linear mista de inteiros (MILP) tornou-se uma pedra angular da pesquisa operacional, graças à eficiência aprimorada dos solucionadores modernos. Esses solucionadores agora podem encontrar soluções ótimas globais em segundos para problemas antes intratáveis há uma década. Essa versatilidade levou a aplicações bem-sucedidas em transporte, logística, gestão da cadeia de suprimentos, gestão de receita, finanças, telecomunicações e manufatura. Apesar desse sucesso, muitos desafios permanecem, e MILP é uma área vibrante de pesquisa contínua. Este artigo analisa os avanços mais significativos nos métodos de solução MILP, concentrando-se em aspectos computacionais e melhorias recentes de desempenho prático, enfatizando estudos com experimentos computacionais. A pesquisa é estruturada em torno de métodos de branch-and-cut, decomposição de Dantzig-Wolfe e decomposição de Benders, concluindo com uma discussão sobre os desafios contínuos e as direções futuras.

Desenvolvimento Pesquisa Operacional

Como Escrever o Pior Código Python Possível

2025-06-14
Como Escrever o Pior Código Python Possível

Este guia divertido ensina como escrever o código Python mais incompreensível e frustrante possível. Através de uma série de exemplos negativos, como usar nomes de variáveis crípticos (como `data1`, `temp`) e loops aninhados complexos, o autor demonstra como criar código verdadeiramente terrível. O objetivo final é destacar a importância de escrever código limpo e compreensível, evitando a criação de dívida técnica difícil de manter.

Desenvolvimento

Linux Kernel 6.16 corrige vulnerabilidades de despejo de núcleo: Adeus à API 'estúpida'

2025-06-14

A versão 6.16 do kernel do Linux melhora significativamente o tratamento de despejos de núcleo, resolvendo vulnerabilidades de segurança de longa data. Os designs anteriores da API apresentavam falhas, como manipuladores de despejo de núcleo rodando com privilégios de root, tornando-os alvos atraentes para ataques, e condições de corrida levando a vulnerabilidades. As novas melhorias introduzem pidfd para garantir que os manipuladores operem no processo com falha correto e permitem que os manipuladores se vinculem a uma socket para receber despejos de núcleo, reduzindo os riscos de escalada de privilégios e prevenindo eficazmente ataques.

Desenvolvimento despejo de núcleo

Iluminação Volumétrica no React Three Fiber: Raymarching com Pós-Processamento

2025-06-14
Iluminação Volumétrica no React Three Fiber: Raymarching com Pós-Processamento

Este artigo mergulha na criação de efeitos de iluminação volumétrica realistas no React Three Fiber combinando pós-processamento e raymarching volumétrico. O autor explica meticulosamente as transformações de sistemas de coordenadas, reconstruindo raios 3D do espaço de tela e utilizando buffers de profundidade para otimização de desempenho. Técnicas avançadas como modelagem de luz usando SDFs, mapeamento de sombras e espalhamento de luz são abordadas, culminando em um efeito de iluminação volumétrica dinâmica com sombras e névoa. Múltiplas demonstrações mostram a técnica em arcos e cenas espaciais, enquanto também exploram múltiplas fontes de luz e sombreamento omnidirecional.

Desenvolvimento iluminação volumétrica

Coletor de Lixo Green Tea: Uma Abordagem Consciente da Memória para Aumentar o Desempenho do Go

2025-06-14
Coletor de Lixo Green Tea: Uma Abordagem Consciente da Memória para Aumentar o Desempenho do Go

A equipe do Go está desenvolvendo o Green Tea, um coletor de lixo experimental projetado para resolver gargalos de desempenho dos algoritmos tradicionais de coleta de lixo em sistemas multi-core e arquiteturas de memória não uniformes. O Green Tea melhora a localidade espacial e temporal ao escanear blocos de memória contíguos em vez de objetos individuais, reduzindo significativamente a sobrecarga da CPU de coleta de lixo. Avaliações iniciais mostram uma redução de 10-50% nos custos da CPU de GC em algumas cargas de trabalho intensivas em GC. Trabalhos futuros incluem explorar a aceleração SIMD e uma rede concentradora para ganhos de desempenho adicionais.

Desenvolvimento

Blog do WordPress com Claude: Um servidor MCP personalizado

2025-06-14
Blog do WordPress com Claude: Um servidor MCP personalizado

Em três dias, o autor construiu um servidor personalizado do Protocolo de Contexto do Modelo (MCP) que conecta o Claude diretamente ao seu blog do WordPress. Este servidor lida com as complexidades da API REST do WordPress, permitindo que o Claude crie postagens de blog em HTML com formatação adequada, gerencie automaticamente categorias e tags e até mesmo recupere informações do blog. O autor considera isso um avanço significativo na criação de conteúdo assistido por IA, mantendo o controle editorial.

Desenvolvimento

arXivLabs: Projetos experimentais com colaboradores da comunidade

2025-06-14
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

FileDB: Armazenamento de chave-valor inspirado no Bitcask, implementado em Zig

2025-06-14
FileDB: Armazenamento de chave-valor inspirado no Bitcask, implementado em Zig

FileDB é uma implementação em Zig de um armazenamento de chave-valor inspirado no artigo Bitcask da Riak. Ele usa uma tabela hash estruturada em log para metadados e anexa registros a arquivos de disco para alta taxa de transferência. Compactação e sincronização periódicas garantem a durabilidade dos dados. Testes de benchmark de seu cliente compatível com Redis mostram velocidades de leitura superiores a 100.000 solicitações por segundo e desempenho de gravação impressionante.

Desenvolvimento banco de dados chave-valor

sandboxfs: Uma tentativa fracassada de acelerar a sandbox do Bazel no macOS

2025-06-13
sandboxfs: Uma tentativa fracassada de acelerar a sandbox do Bazel no macOS

Um engenheiro do Google tentou melhorar o desempenho da sandbox do Bazel no macOS com o projeto sandboxfs. O sandboxfs utilizava um sistema de arquivos em espaço de usuário para criar hierarquias de arquivos virtuais de forma mais eficiente, substituindo a abordagem de links simbólicos original do Bazel. No entanto, devido ao fato de que o desempenho de links simbólicos do macOS não era o principal gargalo, juntamente com problemas de implementação e mudanças no ecossistema do macOS, o sandboxfs foi eventualmente abandonado. Apesar disso, o autor acredita que sua ideia central — criação eficiente de sandbox — ainda é promissora para resolver os problemas de desempenho da sandbox do Bazel no macOS.

Desenvolvimento

Implementando Datalog em Python: Uma Linguagem de Banco de Dados Relacional Mais Poderosa que SQL

2025-06-13
Implementando Datalog em Python: Uma Linguagem de Banco de Dados Relacional Mais Poderosa que SQL

Este artigo mostra como implementar Datalog, uma linguagem de banco de dados relacional mais poderosa que SQL, usando Python. Datalog, um subconjunto de Prolog, não é Turing-completa, mas se destaca na modelagem de relacionamentos. O artigo explica detalhadamente os conceitos básicos do Datalog, incluindo predicados, fatos, regras e variáveis, e fornece uma implementação simples em Python com o algoritmo Naïve Evaluation. Com essa implementação, você pode criar e consultar programas Datalog, experimentando a elegância e o poder dessa abordagem de modelagem relacional.

Desenvolvimento

MUMPS: O Herói Anônimo dos Bancos de Dados de Saúde

2025-06-13

MUMPS, uma linguagem de programação criada na década de 1960, foi inicialmente desenvolvida para gerenciar registros médicos de pacientes no Hospital Geral de Massachusetts. Sua capacidade única de banco de dados integrado a tornou o banco de dados dominante para sistemas de informação de saúde e registros eletrônicos de saúde nos EUA, atendendo mais de 78% dos pacientes. A história do MUMPS é uma história de inovação e adaptação, desde suas versões iniciais no PDP-7 até as implementações de código aberto e produtos comerciais atuais. Ela testemunhou a rápida evolução da tecnologia de computação e continua a fornecer suporte crítico para a indústria de saúde.

Desenvolvimento TI na saúde

arXivLabs: Projetos Experimentais com Colaboração da Comunidade

2025-06-13
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 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
1 2 60 61 62 64 66 67 68 214 215