Category: Desenvolvimento

Protocolos Python: Tipagem de Pato Estática e a Evolução da Herança

2025-02-02
Protocolos Python: Tipagem de Pato Estática e a Evolução da Herança

O mecanismo de herança do Python sempre foi interessante. Tradicionalmente, o Python usa herança baseada em tipo, semelhante ao Java. No entanto, a flexibilidade da tipagem de pato (implementada por meio de métodos mágicos) é limitada. O PEP 544 introduz Protocolos, permitindo a definição de subtipagem estrutural, também conhecida como tipagem de pato estática. Ao herdar da classe Protocol, os desenvolvedores podem declarar um conjunto de métodos; qualquer classe que implemente esses métodos será considerada uma instância desse protocolo. Isso resolve os problemas de escalabilidade da tipagem de pato tradicional, resultando em código mais limpo e fácil de manter.

Desenvolvimento Tipagem de Pato

Sniffnet: Monitor de Tráfego de Rede Multiplataforma e de Código Aberto

2025-02-02
Sniffnet: Monitor de Tráfego de Rede Multiplataforma e de Código Aberto

Sniffnet é uma ferramenta gratuita e de código aberto para monitoramento de tráfego de rede, disponível em várias plataformas e idiomas. Sua interface intuitiva permite que os usuários monitorem facilmente o tráfego de rede, vejam gráficos em tempo real, exportem arquivos PCAP e identifiquem serviços e protocolos. O Sniffnet também suporta temas personalizados, notificações e filtros, e inclui uma Wiki abrangente. Embora sistemas mais antigos possam exigir a configuração de uma variável de ambiente para alternar os renderizadores, o Sniffnet é uma ferramenta poderosa e fácil de usar no geral.

Desenvolvimento monitoramento de rede

Lume: CLI leve para gerenciamento de VMs no Apple Silicon

2025-02-02
Lume: CLI leve para gerenciamento de VMs no Apple Silicon

Lume é uma interface de linha de comando (CLI) leve e servidor de API local para criar, executar e gerenciar máquinas virtuais (VMs) macOS e Linux no Apple Silicon com desempenho próximo ao nativo, aproveitando o Virtualization.Framework da Apple. Execute imagens macOS pré-construídas em uma única etapa. O CLI oferece um conjunto abrangente de comandos para gerenciamento de VMs, incluindo criação, execução, listagem, obtenção de detalhes, configuração de configurações, parada, exclusão, extração de imagens, clonagem e gerenciamento de cache. O Lume também expõe um servidor de API HTTP local para gerenciamento automatizado de VMs.

Desenvolvimento

OmiAI: O SDK de IA que simplesmente funciona

2025-02-02
OmiAI: O SDK de IA que simplesmente funciona

O OmiAI é um SDK de IA em TypeScript que seleciona automaticamente o melhor modelo de um conjunto selecionado com base em sua solicitação. Ele possui raciocínio embutido semelhante ao o3, ferramentas selecionadas, acesso à internet e suporte multi-modal completo para quase todos os tipos de mídia. Imagine usar um único LLM que se destaca em tudo - essa é a promessa do OmiAI. Ele inteligentemente encadeia modelos para tarefas complexas, possui raciocínio e chamada de ferramentas embutidos e oferece suporte multi-modal e acesso à internet em tempo real. Simplifique seu fluxo de trabalho de LLM com o OmiAI.

Desenvolvimento SDK de IA

Modest: Uma Biblioteca Lua para Harmonia Musical

2025-02-02
Modest: Uma Biblioteca Lua para Harmonia Musical

Modest é uma biblioteca Lua robusta para harmonia musical, oferecendo objetos Chord, Note e Interval que manipulam uma ampla gama de acordes, de maiores/menores simples a acordes de jazz complexos. Possui análise de strings flexível para identificação de acordes, recursos de transposição e recuperação de notas individuais. Fácil de instalar via LuaRocks ou compilação manual, Modest suporta Lua 5.4 e LuaJIT e evita poluir o namespace global. Sua funcionalidade principal, incluindo identificação de acordes, transposição, extração de notas e cálculos de intervalos, fornece ferramentas eficientes para desenvolvimento de software musical.

Desenvolvimento Música

Mergulho profundo no cache Caffeine: Desvendando o Window TinyLFU e implementações eficientes

2025-02-02

Este artigo mergulha profundamente no funcionamento interno da biblioteca de cache de alto desempenho Caffeine, focando em sua política de evicção única Window TinyLFU. Ele explica como o Window TinyLFU combina informações de frequência e recência, utilizando uma estrutura de dados CountMinSketch para estimativa eficiente de frequência. Além disso, o artigo analisa os mecanismos de expiração do Caffeine baseados em filas ordenadas e uma roda de temporizador hierárquica, e como sua política de cache adaptativa ajusta dinamicamente as configurações de cache usando um algoritmo de subida de colina para alcançar um gerenciamento de cache de alto desempenho.

Desenvolvimento

Qodo Merge 1.0: Evolução da Revisão de Código com IA

2025-02-02
Qodo Merge 1.0: Evolução da Revisão de Código com IA

O Qodo Merge 1.0, uma ferramenta de revisão de código impulsionada por IA, aborda os desafios inerentes à codificação assistida por IA após mais de um ano de desenvolvimento. A nova versão apresenta um modo de foco em problemas que prioriza problemas críticos como bugs e falhas de segurança; aprendizado dinâmico que refina sugestões com base em mudanças aceitas; integração de contexto de ticket em tempo real; e um comando `/implement` para traduzir feedback em mudanças de código acionáveis. O Qodo Merge 1.0 torna a revisão de código mais precisa, adaptável e eficiente.

Conquistando a Recursão à Esquerda: Corrigindo a Gramática de um Desmontador C++

2025-02-02

Este artigo detalha a jornada do autor ao resolver problemas de recursão à esquerda e recursão mútua à esquerda em uma gramática livre de contexto (CFG) enquanto reescrevia o desmontador C++ da RizinOrg, rz-libdemangle. Começa explicando os conceitos de recursão à esquerda e recursão mútua à esquerda, demonstrando com exemplos simples e diagramas de estado como transformar gramáticas recursivas à esquerda em gramáticas recursivas à direita para evitar recursão infinita. O autor então compartilha um problema do mundo real encontrado no desmontador Itanium ABI, mostrando uma gramática complexa com recursão à esquerda e recursão mútua à esquerda, e como ele usou macros e transformações de gramática inteligentes para resolver esses problemas, evitando erros de estouro de pilha.

PL/Rust: Desempenho Nativo para Funções PostgreSQL em Rust

2025-02-02
PL/Rust: Desempenho Nativo para Funções PostgreSQL em Rust

PL/Rust é uma linguagem processual carregável que permite o desenvolvimento de funções PostgreSQL em Rust, compilando para código de máquina nativo para desempenho otimizado. Ao contrário de alternativas interpretadas, ele utiliza o ecossistema do Rust e a segurança em tempo de compilação. Ele fornece acesso à SPI do Postgres (incluindo consultas dinâmicas e instruções preparadas), tipos Rust seguros para a maioria dos tipos de dados do Postgres e suporte para funções de gatilho. Em sistemas Linux x86_64 e aarch64, ele funciona como uma linguagem 'confiável', oferecendo garantias de segurança aprimoradas; em outros locais, funciona como 'não confiável'. Documentação abrangente, instruções de instalação e suporte de compilação cruzada estão disponíveis.

Desenvolvimento

SQL ou Morte? Série de Seminários da CMU Explora o Futuro dos Bancos de Dados

2025-02-02
SQL ou Morte? Série de Seminários da CMU Explora o Futuro dos Bancos de Dados

O Grupo de Pesquisa de Banco de Dados da Universidade Carnegie Mellon está realizando uma série de seminários, "SQL ou Morte?", explorando maneiras de melhorar dramaticamente o desempenho do SQL ou substituí-lo completamente. As palestras online apresentam especialistas discutindo avanços em otimização de consultas e linguagens de consulta alternativas. Os tópicos variam de procedimentos armazenados em TypeScript a linguagens inovadoras como PRQL e OxQL, prometendo uma visão fascinante do futuro da tecnologia de bancos de dados.

Desenvolvimento linguagem de consulta

Binários nativos multiplataforma do Mill via Github Actions

2025-02-02

O projeto Mill utiliza o Github Actions para construir binários nativos em várias plataformas (Mac, Windows, Linux) e carregá-los para o Maven Central. Uma configuração inteligente separa a publicação de artefatos compatíveis com JVM de binários nativos específicos da plataforma, garantindo compatibilidade multiplataforma. As tarefas `artifactName` e `jar` personalizadas geram arquivos versionados com sufixos de SO e arquitetura de CPU, permitindo que os usuários selecionem o executável apropriado para seu ambiente.

Ponteiros São Complicados II: Bugs Subtis em Otimizações do LLVM

2025-02-02

Esta postagem aprofunda a importância da semântica precisa para representações intermediárias de compilador (IRs), especialmente para linguagens como C, C++ e Rust que permitem manipulação de ponteiros inseguros. O autor demonstra como uma sequência de três otimizações de compilador LLVM aparentemente corretas pode levar a um comportamento de programa incorreto. A causa raiz é a proveniência do ponteiro – as informações extras embutidas em um ponteiro além de seu endereço de memória, detalhando como ele foi calculado. Isso requer uma especificação de IR LLVM mais precisa, incluindo uma definição precisa de comportamento indefinido (UB). Tratar IRs de compilador como linguagens de programação autônomas com especificações rigorosas é fundamental para resolver esses problemas.

Desenvolvimento semântica de ponteiros

Desenvolvedores de código aberto enfrentam sanções da OFAC: um novo guia navega pelas complexidades

2025-02-02
Desenvolvedores de código aberto enfrentam sanções da OFAC: um novo guia navega pelas complexidades

As sanções OFAC do governo dos EUA estão impactando a comunidade de código aberto, particularmente restringindo a colaboração com desenvolvedores de países sancionados. A Fundação Linux lançou um guia abrangente para ajudar os desenvolvedores de código aberto a entender e cumprir os regulamentos da OFAC, evitando riscos legais associados ao trabalho com indivíduos ou entidades sancionados. O guia destaca a "regra dos 50%", esclarece o escopo da isenção de "materiais informativos" e alerta os desenvolvedores para evitar o envolvimento bidirecional ou a colaboração indireta com desenvolvedores de regiões sancionadas. Embora a conformidade não seja fácil, este guia fornece um recurso valioso para desenvolvedores que navegam na complexa interseção de tecnologia, direito e relações internacionais.

Desenvolvimento Sanções OFAC Conformidade

Adeus, Mouse: Construindo uma Área de Trabalho Produtiva Sem Mouse

2025-02-01

Cansado do seu mouse? O autor compartilha sua jornada para uma área de trabalho sem mouse. Usando ferramentas como o gerenciador de janelas com tiling rolável PaperWM, palavras-chave de favoritos do Firefox, a extensão de navegador Vimium e o cliente de email baseado em terminal Aerc, juntamente com a extensão Quake Terminal do GNOME e o Input Remapper, o autor aumentou dramaticamente a produtividade e melhorou a ergonomia. O artigo detalha como usar e configurar essas ferramentas e compartilha sua experiência em ocultar os menus e barras de ferramentas do Emacs para reduzir ainda mais a dependência do mouse.

Desenvolvimento sem mouse

Cosmopolitan 3.0: Escreva uma vez, execute em qualquer lugar (e mais rápido!)

2025-02-01
Cosmopolitan 3.0: Escreva uma vez, execute em qualquer lugar (e mais rápido!)

A biblioteca Cosmopolitan versão 3.0 está aqui! Quase um ano em desenvolvimento, esta versão muda o jogo. Um único executável agora roda em arquiteturas AMD64 e ARM64 em Linux, macOS, Windows, FreeBSD, OpenBSD e NetBSD. Isso é possível graças a um novo linkador, apelink.c, que combina habilmente os formatos de arquivo PE, ELF, Mach-O e PKZIP. O Cosmopolitan 3.0 também apresenta melhorias significativas na compatibilidade com Windows e macOS, além de ganhos significativos em velocidade e eficiência de memória. Incluído está uma "distribuição Linux gorda", Cosmos, contendo ferramentas como Emacs, Vim e CoreUtils. Essa abordagem inovadora oferece não apenas portabilidade incomparável, mas também desempenho superior.

Desenvolvimento executável

Acabe com os cabeçalhos fixos!

2025-02-01

O autor odeia cabeçalhos fixos, aqueles elementos persistentes que grudam no topo dos sites e roubam um precioso espaço na tela. Para combater esse incômodo, ele criou um simples marcador de páginas que remove todos os elementos de posição fixa de uma página da web com um único clique. O marcador usa `querySelectorAll` para encontrar e remover esses elementos de forma eficiente, resultando em uma experiência de leitura mais limpa. O autor detalha os inconvenientes dos cabeçalhos fixos, como espaço reduzido na tela, rolagem interrompida pela barra de espaço e fluxo de leitura interrompido. Embora possa remover outros elementos fixos, uma simples atualização os restaura. Essa solução simples evita a complexidade de folhas de estilo personalizadas ou extensões do navegador.

Desenvolvimento marcador de páginas

Auto-Commit Bot: Commits Git Automatizados com IA Gemini

2025-02-01
Auto-Commit Bot: Commits Git Automatizados com IA Gemini

O Auto-Commit Bot é uma ferramenta Python que automatiza fluxos de trabalho Git. Ele monitora um diretório para alterações, gera mensagens de commit descritivas usando a IA do Google Gemini e as confirma. Isso elimina tarefas repetitivas e garante mensagens consistentes. Os recursos incluem monitoramento de arquivos em tempo real, confirmação automática, mensagens de commit com tecnologia de IA e fácil personalização. Basta instalar as dependências, definir sua chave de API e executar o comando.

Desenvolvimento API Gemini

Executando Python e Pygame em um PC Linux portátil de US$ 30

2025-02-01

Esta publicação detalha como o autor instalou o Debian e executou Python e Pygame no console portátil Miyoo A30 de aproximadamente US$ 30. Após instalar o spruceOS, um ambiente Debian chroot com Python 3, Pygame e bibliotecas necessárias foi criado usando o debootstrap. Para resolver problemas com drivers de gráficos e entrada, bibliotecas essenciais foram copiadas do spruceOS para o chroot. Finalmente, um script foi escrito para adicionar um jogo Pygame à interface do spruceOS, executando com sucesso um jogo personalizado no Miyoo A30. Embora o problema de rotação da tela em 90 graus persista, esta publicação fornece um guia completo para executar programas complexos em um console portátil de baixo custo.

Desenvolvimento

Pare de usar demais os flags de recursos: eles geralmente são desnecessários

2025-02-01
Pare de usar demais os flags de recursos: eles geralmente são desnecessários

Muitas equipes dependem muito do software de gerenciamento de flags de recursos, acreditando que ele resolve todos os problemas, mas isso introduz complexidade e riscos. Este artigo argumenta que, para a maioria das equipes, um simples arquivo de configuração JSON é suficiente; lido na inicialização do aplicativo para controlar a visibilidade do recurso. O uso excessivo de flags de recursos leva a código inadministrável e aumento dos riscos de segurança. O autor sugere que apenas quando for necessário alterar recursos em tempo de execução em larga escala, deve-se considerar o uso de software de gerenciamento de flags de recursos complexo, evitando a otimização prematura.

Desenvolvimento flags de recursos

BZip3: Um Sucessor Superior ao BZip2

2025-02-01
BZip3: Um Sucessor Superior ao BZip2

O BZip3 é um sucessor mais rápido e eficiente do BZip2, oferecendo taxas de compressão mais altas e desempenho aprimorado. Isso é alcançado por meio de um codificador de entropia de mistura de contexto de ordem 0, uma transformada Burrows-Wheeler rápida que utiliza matrizes de sufixos e uma passagem RLE com Lempel Ziv + Predição baseada em correspondência de string do tipo LZ77 e modelagem de contexto do tipo PPM. Benchmarks que o comparam a outros algoritmos de compressão, incluindo testes em um arquivo massivo de código-fonte Perl, demonstram suas vantagens significativas. O desempenho do BZip3 depende muito do compilador, com compilações x64 Linux clang13 mostrando velocidades impressionantes. O projeto é licenciado sob LGPLv3.

Desenvolvimento

Reprompt: Acelere sua carreira em IA em 3-4 anos

2025-02-01
Reprompt: Acelere sua carreira em IA em 3-4 anos

A Reprompt está contratando! Quer acelerar sua carreira em IA? Junte-se a nós e ganhe 3-4 anos de experiência em apenas três. Torne-se um especialista em IA top 0,01%, colabore com engenheiros experientes do Facebook, Robinhood e Mapbox, e aprenda sobre financiamento, gerenciamento de produto e liderança de equipe. Você construirá sistemas de extração de dados de IA de ponta. Espírito de colaboração, adaptabilidade e uma forte ética de trabalho são essenciais.

Desenvolvimento Desenvolvimento de Carreira

Meu Gerador Simples de Números Aleatórios Ficou Viral (e Quebrou)

2025-02-01
Meu Gerador Simples de Números Aleatórios Ficou Viral (e Quebrou)

Meses depois de criar um site simples de gerador de números aleatórios, o autor quase se esqueceu dele. Recentemente, ele inesperadamente ficou viral, levando a uma enxurrada de visitantes e vários problemas no servidor: esgotamento do pool de conexões, erros de análise de UUID e solicitações maliciosas. Por meio de logs, monitoramento e depuração, o autor resolveu gradualmente esses problemas e adicionou medidas preventivas, como limitação de taxa e restrições de comprimento de caracteres. Essa experiência destacou a importância de logs robustos, monitoramento e métricas, mesmo para projetos aparentemente simples.

Apple torna o Swift Build de código aberto: Um sistema de construção unificado para Swift

2025-02-01
Apple torna o Swift Build de código aberto: Um sistema de construção unificado para Swift

A Apple tornou o Swift Build de código aberto, seu poderoso e extensível mecanismo de construção usado pelo Xcode e pelos próprios sistemas operacionais da Apple. O Swift Build visa fornecer uma experiência de construção multiplataforma consistente e flexível para projetos Swift, com suporte para Linux e Windows. Ele apresenta integração robusta com o compilador Swift, otimizações do gráfico de construção para o máximo de paralelismo e suporte para uma ampla variedade de tipos de produtos. Isso resolve inconsistências entre os diferentes sistemas de construção usados no Swift Package Manager e no Xcode. Essa mudança deve fornecer aos desenvolvedores Swift uma experiência de desenvolvimento mais consistente e eficiente, preparando o terreno para melhorias e otimizações futuras.

Desenvolvimento Sistema de Construção

arXivLabs: Experimentos com recursos impulsionados pela comunidade

2025-02-01
arXivLabs: Experimentos com recursos impulsionados pela comunidade

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

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

2025-02-01
arXivLabs: Colaboração da Comunidade em Recursos do arXiv

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

Desenvolvimento

Executando DeepSeek R1 no seu próprio hardware: Um guia rápido e fácil

2025-02-01

Este artigo fornece um guia simples sobre como executar o modelo de linguagem grande DeepSeek R1 no seu próprio hardware. Usando Arch Linux e a ferramenta Ollama, o autor guia o leitor na instalação, configuração e execução do DeepSeek R1. O processo requer um computador ou VM com uma GPU dedicada e algum conhecimento básico de Linux. A segurança é enfatizada; é recomendável não executar isso no seu sistema principal. Por fim, o leitor pode executar o DeepSeek R1 localmente, desfrutando de uma experiência de IA sem nuvem, sem assinatura e sem vazamento de dados.

Desenvolvimento

FOSDEM 2024: Uma programação repleta de novidades em código aberto

2025-02-01
FOSDEM 2024: Uma programação repleta de novidades em código aberto

A programação do FOSDEM 2024 foi divulgada, com uma variedade de palestras e workshops. Os tópicos incluem Rust for Linux, um novo alocador de memória, LLVM libc, extensões SMB3.11 Unix, NixOS, testes de documentação de API com IA, um RISC-V TEE, um coletor de lixo de ponto de segurança, detecção aprimorada de spam e muito mais. Os painéis abordam ética de IA, integração de aplicativos colaborativos, banco de dados unificado RISC-V, atualizações do Android, HAMNET, DPoP e OpenLayers. Até mesmo desenvolvedores juniores são atendidos com introduções à programação em Python e computadores. Independentemente de sua área de interesse, o FOSDEM 2024 tem algo para você.

Visualizando os Livros do Mundo no Espaço ISBN

2025-02-01
Visualizando os Livros do Mundo no Espaço ISBN

Um desenvolvedor criou uma visualização impressionante dos livros do mundo usando ISBNs. Algoritmos inteligentes e curvas de preenchimento de espaço mapeiam conjuntos de dados massivos em um espaço 2D, renderizados em tempo real com WebGL e shaders GLSL. Os usuários podem explorar anos de publicação, países e muito mais, até mesmo personalizando a visualização. Este projeto mostra o poder da visualização de dados e a paixão de um desenvolvedor por conhecimento e tecnologia.

Desenvolvimento

De Vim e Jekyll para o Dropbox Paper: Melhorando meu fluxo de trabalho de blog

2025-02-01

O blogueiro Kyle Conroy reflete sobre seis anos de blog ineficiente, com uma média de menos de um post por ano. Seu fluxo de trabalho anterior envolvia escrever Markdown no Vim, gerar HTML com Jekyll e implantar no Heroku — um processo complicado e sem colaboração. Depois de experimentar o Dropbox Paper, ele descobriu que a exportação Markdown, a colaboração em tempo real e os recursos de comentários melhoraram significativamente sua eficiência de escrita, permitindo até mesmo escrever em seu celular enquanto esperava na fila. Embora a API do Paper tenha algumas limitações, ele lançou um cliente Go de código aberto e pretende continuar usando o Paper para blogar.

arXivLabs: Desenvolvimento de recursos do arXiv impulsionado pela comunidade

2025-02-01
arXivLabs: Desenvolvimento de recursos do arXiv impulsionado pela comunidade

arXivLabs é uma estrutura 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 somente se associa a aqueles que os compartilham. Tem alguma ideia para melhorar a comunidade do arXiv? Saiba mais sobre o arXivLabs.

Desenvolvimento
1 2 171 172 173 175 177 178 179 214 215