Category: Desenvolvimento

AgentAPI: Uma API HTTP unificada para controlar agentes de codificação

2025-04-17
AgentAPI: Uma API HTTP unificada para controlar agentes de codificação

AgentAPI é uma poderosa API HTTP projetada para controlar agentes de IA de codificação como Claude Code, Goose, Aider e Codex. Ela fornece uma interface de bate-papo unificada, permitindo a interação por meio de chamadas simples de API. Os usuários podem até construir um servidor MCP onde um agente controla outro. O AgentAPI lida automaticamente com a saída do terminal, removendo a desordem e analisando-a em mensagens individuais, simplificando a interação. Embora os LLMs possam lançar SDKs oficiais no futuro, o AgentAPI visa ser um adaptador universal, permitindo que os desenvolvedores alternem facilmente entre agentes de IA de codificação.

Desenvolvimento API HTTP

Ubuntu 25.04 “Plucky Puffin”: Desempenho Aprimorado e Segurança Reforçada

2025-04-17
Ubuntu 25.04 “Plucky Puffin”: Desempenho Aprimorado e Segurança Reforçada

A Canonical lançou o Ubuntu 25.04, com o nome de código “Plucky Puffin”, que inclui o GNOME 48, uma experiência de instalação e inicialização aprimorada e um novo “devpack” para o framework Spring. Esta versão oferece melhorias de desempenho para cargas de trabalho de IA em GPUs Intel e suporte para computação confidencial usando AMD SEV-SNP. O kernel Linux 6.14 inclui agendamento aprimorado e um novo driver NTSYNC para melhor desempenho de jogos do Windows no Wine e Proton. O Ubuntu 25.04 também inclui as mais recentes cadeias de ferramentas, gerenciamento aprimorado e controles de rede, e suporte expandido para processadores Intel Core Ultra e hardware ARM64.

Desenvolvimento

Servidor MCP para execução de código Python em sandbox

2025-04-17
Servidor MCP para execução de código Python em sandbox

Este artigo apresenta um servidor Model Context Protocol (MCP) que executa código Python em um sandbox usando Pyodide dentro do Deno, fornecendo isolamento do sistema operacional. O servidor suporta vários modos: entrada/saída padrão (stdio), eventos enviados pelo servidor (SSE) e um modo de aquecimento para teste e implantação. Um exemplo usando PydanticAI demonstra a interação com LLMs via um Agent usando este servidor MCP.

Desenvolvimento

Vulnerabilidade Crítica no Servidor SSH do Erlang/OTP Permite Execução Remota de Código Sem Autenticação

2025-04-17

Uma vulnerabilidade crítica (CVE-2025-32433) foi descoberta no servidor SSH do Erlang/OTP, permitindo a execução remota de código (RCE) sem autenticação. Versões anteriores ao OTP-27.3.3, OTP-26.2.5.11 e OTP-25.3.2.20 são afetadas. Atacadores podem explorar uma falha no tratamento de mensagens do protocolo SSH para obter acesso não autorizado e executar comandos arbitrários sem credenciais. Patches estão disponíveis; atualize para OTP-27.3.3, OTP-26.2.5.11 ou OTP-25.3.2.20 ou posterior.

Desenvolvimento

Mergulho profundo no 3FS: O sistema de arquivos distribuído de código aberto da DeepSeek

2025-04-17

A DeepSeek lançou o 3FS (Fire-Flyer File System), um sistema de arquivos distribuído. Esta postagem explica sistemas de arquivos distribuídos e a arquitetura do 3FS. O 3FS compreende quatro tipos de nós: Meta (gerenciamento de metadados), Mgmtd (servidor de gerenciamento), Armazenamento e Cliente. Ele usa o protocolo CRAQ (Chain Replication with Apportioned Queries) para consistência forte. A postagem analisa as características de desempenho do 3FS e descreve as direções futuras de teste de desempenho e melhorias.

Desenvolvimento

go-mcp: Um SDK Go Tipo-Seguro para Desenvolvimento de Servidores MCP

2025-04-17
go-mcp: Um SDK Go Tipo-Seguro para Desenvolvimento de Servidores MCP

go-mcp é um SDK Go que simplifica o desenvolvimento de servidores MCP (Model Context Protocol). Sua interface intuitiva e com tipagem segura agiliza o processo. A geração de código garante tipagem estática para ferramentas e parâmetros de prompt, capturando erros em tempo de compilação. A API limpa e o design amigável ao desenvolvedor facilitam o aprendizado e o uso. O projeto inclui exemplos e documentação abrangentes, com suporte a recursos como ferramentas, prompts, gerenciamento de recursos e registro. Embora a adição dinâmica de ferramentas não seja atualmente suportada, o desenvolvimento futuro incluirá processamento em lote, transporte HTTP transmissível e notificações de progresso. O projeto é licenciado sob MIT.

Desenvolvimento

Tempos de compilação do Rust: de 25 minutos para 2 minutos

2025-04-17
Tempos de compilação do Rust: de 25 minutos para 2 minutos

A equipe Feldera encontrou tempos de compilação excessivamente longos ao compilar código Rust gerado a partir de SQL de grande porte. Um programa SQL de 8.562 linhas traduzido para ~100 mil linhas de Rust levava 25 minutos para compilar. Técnicas como apagamento de tipo e desduplicação de código produziram melhorias mínimas. A solução veio da divisão do código Rust gerado em 1.106 crates menores, permitindo compilação paralela e reduzindo drasticamente o tempo de compilação para menos de 2 minutos, utilizando totalmente os processadores multinúcleo.

Desenvolvimento paralelismo multinúcleo

Configurando um ambiente de desenvolvimento Linux no Apple Silicon com UTM

2025-04-17
Configurando um ambiente de desenvolvimento Linux no Apple Silicon com UTM

Este guia mostra como configurar um ambiente de desenvolvimento Linux em Macs com chip Apple Silicon usando máquinas virtuais UTM. Após instalar o UTM e o cdrtools via Homebrew, um script cloud-init automatiza o processo de instalação de ferramentas essenciais de desenvolvimento, como Git, Docker e configuração de acesso SSH. O artigo descreve a criação da VM, importação de imagens, configuração do script cloud-init e remoção de unidades temporárias, resultando em um ambiente de desenvolvimento Linux funcional.

Desenvolvimento

Programação Diferenciável: Um mergulho profundo a partir dos princípios básicos

2025-04-17

Este artigo fornece uma explicação abrangente da programação diferenciável, começando pela definição de derivadas no cálculo e progredindo para conceitos como gradientes, derivadas direcionais e matrizes jacobianas. Ele detalha três métodos de diferenciação: diferenciação numérica, diferenciação simbólica e diferenciação automática (modos direto e inverso), comparando seus pontos fortes e fracos. Finalmente, demonstra como a diferenciação automática em modo inverso, combinada com o método do gradiente descendente, pode resolver problemas de otimização do mundo real usando um exemplo de desfocagem de imagem.

arXivLabs: Projetos experimentais com colaboradores da comunidade

2025-04-17
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

Além de NP: Um Problema de Complexidade Mais Intuitivo

2025-04-17
Além de NP: Um Problema de Complexidade Mais Intuitivo

O autor questiona o uso do Problema da Parada como o exemplo canônico de um problema mais difícil que NP-completo, argumentando que é confuso e pouco intuitivo. Embora indecidível, a verificação de uma resposta "sim" para o Problema da Parada pode ser feita executando o programa por um número finito de etapas. Uma alternativa mais fácil de entender é apresentada: mover uma peça em uma grade infinita para atingir um ponto alvo. Este problema é PSPACE-completo em dimensões inferiores, mas sua complexidade explode com o aumento das dimensões, eventualmente atingindo a completude de ACKERMANN, demonstrando visualmente uma complexidade muito além dos problemas NP.

Formance: Redifinindo a Interação entre Desenvolvedores e Finanças

2025-04-17
Formance: Redifinindo a Interação entre Desenvolvedores e Finanças

A Formance tem a missão de redefinir como os desenvolvedores interagem com o dinheiro como um primitivo de primeira classe e compõem com as finanças. Atualmente oculto em infraestruturas com permissões e travadas por fornecedores, o dinheiro precisa ser reconectado para capacitar empresas focadas em produtos com a capacidade de criar aplicativos financeiros inovadores. Com a plataforma Formance, estamos colocando primitivos agnósticos nas mãos dos engenheiros e suas equipes. Esses primitivos estão disponíveis como pacotes de código aberto e podem ser conectados ao parceiro financeiro de sua escolha. A Formance é nativa global e atende empresas em todo o mundo, 24 horas por dia, para construir e escalar seus aplicativos financeiros.

Desenvolvimento

Por que Frameworks são Malignos: Um Caso para Bibliotecas

2025-04-17
Por que Frameworks são Malignos: Um Caso para Bibliotecas

Este artigo mergulha nos princípios de design de bibliotecas funcionais, focando em composição e evitando callbacks. O autor argumenta que frameworks são difíceis de compor, explorar e testar, e restringem a estrutura do código. Em contraste, bibliotecas oferecem maior controle ao desenvolvedor, encorajam a exploração interativa e suportam múltiplas camadas de abstração. Usando um motor de jogo como exemplo, o artigo demonstra como fluxos de trabalho assíncronos e programação baseada em eventos podem mitigar as desvantagens de callbacks. Exemplos como FsLab ilustram a composição de bibliotecas. Por fim, o autor defende a construção de bibliotecas compostáveis e fáceis de explorar em vez de frameworks rígidos.

Desenvolvimento design de bibliotecas

Joias escondidas em stdint.h do C: Além de limits.h para definições de tipos inteiros

2025-04-17
Joias escondidas em stdint.h do C: Além de limits.h para definições de tipos inteiros

Esta postagem de blog relata a descoberta inesperada do autor sobre definições de tipos inteiros ao aprender C. Nos primeiros dias do C, o tamanho dos inteiros variava muito em arquiteturas diferentes, levando fornecedores de compiladores a criar definições de tipos personalizadas, como types.h da Microware. Mais tarde, o padrão ANSI C introduziu stdint.h, fornecendo definições de tipos padrão como uint32_t e definições de valores máximos como INT_MAX de limits.h. No entanto, o autor descobriu recentemente que stdint.h também inclui definições como INT8_MAX e UINT32_MAX, que podem ser usadas diretamente para definir os valores máximo e mínimo de tipos inteiros de tamanhos específicos, tornando o código mais portátil e evitando erros causados por diferenças de plataforma.

Desenvolvimento tipos inteiros

Concorrência em Haskell: Escape do Inferno das Threads

2025-04-17

Este artigo relata a jornada do autor do desenvolvimento de sistemas embarcados em C/C++/Rust para Haskell, destacando as vantagens do Haskell na programação concorrente. Haskell usa threads verdes e E/S acionada por eventos, evitando as complexidades dos modelos tradicionais de threads. Por meio do pacote `async` e STM (Software Transactional Memory), Haskell oferece uma abordagem mais limpa e segura para tarefas concorrentes. Funções como `concurrently`, `race` e `mapConcurrently`, juntamente com estruturas de dados como `TVar` e `TBQueue`, simplificam as operações concorrentes e evitam problemas comuns de concorrência, como deadlocks e condições de corrida.

Desenvolvimento

Biblioteca de funções trigonométricas em Nix puro: abandonando Python para melhor desempenho

2025-04-17
Biblioteca de funções trigonométricas em Nix puro: abandonando Python para melhor desempenho

Para calcular a latência de rede entre seus 17 nós VPS sem testes manuais de ping, o autor tentou aproximar a latência calculando a distância física entre as coordenadas dos nós usando Nix. Como faltavam funções trigonométricas nativas no Nix, ele implementou as funções sin, cos, tan, arctan e sqrt em Nix puro e usou a fórmula de Haversine para calcular as distâncias e latências. Este projeto evita dependências externas como Python, melhorando a eficiência e a reprodutibilidade.

Desenvolvimento Trigonometria

Classes de Tipo em Kotlin e Validação de Dados: Uma Abordagem com Arrow

2025-04-17
Classes de Tipo em Kotlin e Validação de Dados: Uma Abordagem com Arrow

Este artigo explora o uso de classes de tipo em Kotlin para validação de dados. Usando um sistema de validação de portfólio de usuário de uma startup de fintech como exemplo, o autor demonstra como construir uma estrutura de validação genérica e reutilizável usando a biblioteca Arrow Kt e os receptores de contexto do Kotlin. O artigo compara abordagens orientadas a objetos e de classes de tipo, destacando as vantagens das classes de tipo para a manutenção e extensibilidade, e mostra como usar o tipo `EitherNel` do Arrow para tratamento funcional de erros. A função `zipOrAccumulate` é explicada em detalhe.

Adeus Spotify! Minha jornada para auto-hospedar minha música

2025-04-17
Adeus Spotify! Minha jornada para auto-hospedar minha música

Cansado do Spotify, embarquei em uma busca pelo substituto perfeito. Experimentei Winamp, foobar2000 e até mesmo criei meu próprio player de música na web, antes de optar pelo Jellyfin. O Jellyfin é um servidor de mídia auto-hospedado que me permite acessar minha biblioteca de música a qualquer hora e em qualquer lugar, sem depender de serviços de streaming. Embora exija alguma configuração técnica, é surpreendentemente fácil, mesmo em um computador antigo. Combinado com aplicativos móveis, ouvir música offline é muito fácil. Isso não apenas me deu autonomia digital, mas também abriu as portas para auto-hospedar outros aplicativos, como o Immich para gerenciamento de fotos.

Desenvolvimento tocador de música

Paradoxo de Compressão ZFS: Blocos Lógicos vs. Blocos Físicos

2025-04-17

Um arquivo zero de 256 KB criado com `dd` em um sistema de arquivos ZFS com compressão habilitada exibe um comportamento intrigante: `ls -l` mostra seu tamanho como 256 KB, mas `ls -s` e `ls -slh` mostram um tamanho muito menor, quase zero. Isso se deve à compressão eficiente do ZFS, resultando em um número mínimo de blocos físicos. O artigo explora três maneiras de medir o tamanho do arquivo: tamanho lógico (em bytes), contagem de blocos físicos e contagem de blocos lógicos. Ele destaca que o campo `st_blocks` do POSIX não especifica qual tamanho relatar, levando a mudanças potenciais no valor de `st_blocks` ao mover arquivos entre sistemas de arquivos, e até mesmo a uma possível expansão do tamanho do arquivo excedendo a capacidade do novo sistema de arquivos.

Desenvolvimento

Engines de Consulta de Banco de Dados: Push vs. Pull

2025-04-16

Este artigo explora as diferenças entre mecanismos de consulta de banco de dados baseados em push e pull. Sistemas baseados em pull, semelhantes ao modelo iterador, são acionados pelo consumidor, onde os dados são recuperados sob demanda. Sistemas baseados em push, por outro lado, são acionados pelo produtor, empurrando ativamente os dados para operadores a jusante. Sistemas baseados em push se destacam no tratamento de planos de consulta em forma de DAG (por exemplo, a cláusula WITH do SQL) devido à sua capacidade de empurrar dados eficientemente para vários operadores a jusante, evitando cálculos redundantes e buffer desnecessário. No entanto, sistemas baseados em pull oferecem vantagens ao lidar com certos algoritmos (como junções de mesclagem e cláusulas LIMIT). O artigo examina ainda a eficiência de cache, a simplicidade do código e a adequação de cada modelo em diferentes cenários, concluindo que nenhum é universalmente superior, e a escolha depende de requisitos específicos.

Desenvolvimento mecanismo de consulta

Plandex: Agente de Codificação de IA para Grandes Projetos

2025-04-16
Plandex: Agente de Codificação de IA para Grandes Projetos

Plandex é uma ferramenta de desenvolvimento de IA baseada em terminal projetada para lidar com grandes tarefas de codificação que abrangem várias etapas e inúmeros arquivos. Processando até 2 milhões de tokens de contexto diretamente (~100 mil por arquivo), pode indexar diretórios com 20 milhões de tokens ou mais usando mapeamentos de projeto tree-sitter. Um sandbox de revisão de diff cumulativo mantém as alterações geradas pela IA separadas até que estejam prontas, e a execução de comandos é controlada para facilitar a reversão e a depuração. Plandex combina modelos de Anthropic, OpenAI, Google e provedores de código aberto, oferecendo autonomia total e controle granular, tornando-o resiliente às complexidades de grandes projetos. Ele possui um modo de bate-papo com reconhecimento de projeto, integração com Git e uma interface CLI amigável ao desenvolvedor.

Desenvolvimento grandes projetos

Otimização de Programas: Quatro Abordagens Antes de Reescrever

2025-04-16

A execução lenta de programas é um problema comum para programadores. O autor, com base em anos de experiência em otimização, apresenta quatro abordagens: 1. Use um algoritmo melhor; 2. Use uma estrutura de dados melhor; 3. Use um sistema de baixo nível; 4. Aceite uma solução menos precisa. O artigo usa o ordenação por bolha e ordenação por seleção como exemplos para ilustrar a importância da seleção de algoritmos, enfatizando a necessidade de considerar fatores práticos ao escolher estruturas de dados e linguagens de programação. O autor adverte contra a otimização prematura e enfatiza a importância do perfil rigoroso antes de tentar a otimização.

Desenvolvimento otimização de programas

Codex: Agente de codificação leve para seu terminal

2025-04-16
Codex: Agente de codificação leve para seu terminal

Codex é um agente de codificação leve que roda em seu terminal, utilizando a API OpenAI para raciocínio de código no nível do ChatGPT. Ele oferece modos interativo e não interativo, automatizando a conclusão de código, execução, instalação de dependências e até mesmo a geração de testes unitários. Um sandbox robusto garante segurança. Os usuários podem personalizar instruções e modos de aprovação, lidando com tarefas desde explicações de código simples até refatoração complexa. Suporta vários sistemas operacionais e é de código aberto para contribuições da comunidade, Codex simplifica os fluxos de trabalho de desenvolvimento.

Desenvolvimento

Licença Llama 3.3: Você realmente está cumprindo?

2025-04-16
Licença Llama 3.3: Você realmente está cumprindo?

Apesar de ser comercializado como open-source, a licença do Llama 3.3 da Meta contém restrições que muitos desenvolvedores podem ignorar. O artigo destaca a exigência de exibir claramente "Built with Llama" ao distribuir o modelo ou derivados, e de prefixar os nomes dos modelos derivados com "Llama-". Além disso, a Política de Uso Aceitável exige a divulgação de riscos conhecidos do sistema de IA, como vieses ou imprecisões, aos usuários finais. O autor exorta os desenvolvedores a revisar cuidadosamente a licença e decidir se irão cumprir ou não, evitando potenciais problemas legais.

Desenvolvimento licença open-source

OpenAI lança Codex CLI: agente de codificação em IA local

2025-04-16
OpenAI lança Codex CLI: agente de codificação em IA local

A OpenAI lançou o Codex CLI, um agente de codificação local que roda a partir do seu terminal. Conectando os modelos da OpenAI (incluindo os novos o3 e o4-mini) a código local e tarefas, o Codex CLI permite que a IA escreva, edite código e execute ações como mover arquivos. Isso representa um passo em direção à visão da OpenAI de um 'engenheiro de software agente'. De código aberto e leve, o Codex CLI é apoiado por um programa de concessão de API de US$ 1 milhão para projetos de desenvolvimento de software. Embora as ferramentas de codificação de IA apresentem riscos inerentes, o Codex CLI oferece uma nova abordagem para programação assistida por IA.

Desenvolvimento codificação em IA

RakuAST: Uma Reescrita Hercúlea de um Frontend de Compilador

2025-04-16

O projeto RakuAST realizou uma reescrita completa e um redesenho do frontend do compilador da linguagem de programação Raku. O autor abordou o projeto sistematicamente corrigindo testes de especificação com falha, um por um. Isso envolveu lidar com as complexidades da sintaxe do Raku, incluindo métodos privados, metamétodos e chamadas de hipermétodos. O maior obstáculo foi o tempo e a sequência intrincados necessários dentro do processo de compilação do Raku, exigindo controle preciso sobre a ordem da compilação dos componentes. Mais de 900 commits depois, o projeto atingiu com sucesso seu objetivo principal. Além disso, ele inicializou o compilador, permitindo a autocompilação, o que apresentou mais desafios na gestão de dependências circulares e nas complexidades da extensa biblioteca padrão. O sucesso do projeto foi auxiliado por contribuições de vários membros da comunidade.

Desenvolvimento

Resolvendo a Crise CVE: Certificação Profissional e Relatórios Obrigatórios de Vulnerabilidades

2025-04-16

A iminente expiração do contrato CVE da MITRE gerou controvérsia, levando a uma proposta para melhorar a segurança de software. O sistema CVE atual é repleto de relatórios imprecisos, diminuindo seu valor. O autor sugere um sistema baseado em atributos de vulnerabilidade em vez de pontuações, juntamente com a certificação de Engenheiro de Software Profissional (PSWE). A falha em relatar vulnerabilidades com precisão dentro de um prazo resultaria na revogação da licença, incentivando os relatórios. A proposta inclui financiamento e treinamento para futuros PSWEs, abordando preocupações de acessibilidade, criando, em última análise, um cenário ganha-ganha para a segurança de software e a sustentabilidade de projetos FOSS.

Revivendo o UCSD p-System: Uma lenda de compilação multiplataforma

2025-04-16
Revivendo o UCSD p-System: Uma lenda de compilação multiplataforma

O autor revisita o UCSD p-System, um sistema operacional e compilador multiplataforma da década de 1970. Ele alcançou portabilidade em diversas máquinas (de PDP-11 a Apple II) através de sua máquina virtual p-machine. O autor compartilha experiências pessoais usando Apple Pascal e UCSD Pascal no ensino médio e planeja reconstruir um emulador p-machine em Rust, continuando seu legado e resolvendo problemas com documentação ausente e dependências de compiladores desatualizados em ferramentas existentes.

Desenvolvimento tecnologia retro

Agentes de 12 Fatores: Princípios para Construir Aplicações LLM Confiáveis

2025-04-16
Agentes de 12 Fatores: Princípios para Construir Aplicações LLM Confiáveis

Este artigo explora os princípios para construir software alimentado por LLM confiável, escalável e fácil de manter — os Agentes de 12 Fatores. O autor argumenta que as estruturas de agentes existentes ficam aquém na produção, com muitos chamados "Agentes de IA" sendo principalmente código determinístico salpicado de etapas LLM. O autor propõe princípios para construir agentes mais robustos, enfatizando uma abordagem modular de incorporar conceitos de agentes pequenos e modulares em produtos existentes, evitando reescritas ineficientes em campo verde. Esta é uma leitura valiosa para engenheiros e empreendedores focados no desenvolvimento de aplicativos de IA.

Desenvolvimento Agente

ActorCore: Serverless com Estado que Funciona em Qualquer Lugar

2025-04-16
ActorCore: Serverless com Estado que Funciona em Qualquer Lugar

O ActorCore é uma estrutura em TypeScript para construir facilmente aplicativos com estado, agentes de IA, colaborativos ou locais. Ele elimina a necessidade de bancos de dados e ORMs, oferecendo velocidades de leitura/escrita extremamente rápidas, armazenando o estado na mesma máquina que o cálculo. Implante em plataformas como Rivet, Cloudflare, Bun, Node.js e muito mais. Eventos de baixa latência integrados permitem atualizações de estado em tempo real e mudanças de transmissão. Seu armazenamento de dados na borda exclusivo fornece interações instantâneas. Embora atualmente não seja ideal para OLAP, data lakes, bancos de dados de grafos e dados altamente relacionais, ele está em constante melhoria e visa se tornar a maneira universal de construir e escalar aplicativos serverless com estado.

Desenvolvimento modelo ator
1 2 110 111 112 114 116 117 118 214 215