Category: Desenvolvimento

Interpolação de Strings no AmigaDOS: Além das Chaves {}

2025-03-22

Esta postagem de blog explora a flexibilidade e as peculiaridades da interpolação de strings em scripts de shell do AmigaDOS. Embora o AmigaDOS use por padrão '<' e '>' para interpolação, ele permite personalização por meio das diretivas '.BRA' e '.KET'. Experimentos demonstram o uso bem-sucedido de vários pares de caracteres, incluindo caracteres ASCII imprimíveis e não imprimíveis (como BEL e NAK). Isso destaca a robustez do analisador de scripts do AmigaDOS e sua resiliência no tratamento de entradas incomuns.

Desenvolvimento interpolação de strings

Projeto de código aberto da Mozilla.ai: Aceleração do mapeamento do OpenStreetMap com IA

2025-03-22
Projeto de código aberto da Mozilla.ai: Aceleração do mapeamento do OpenStreetMap com IA

A Mozilla.ai lançou um projeto de código aberto chamado OpenStreetMap AI Helper Blueprint, projetado para acelerar o processo de mapeamento no OpenStreetMap. Este projeto combina de forma inteligente o modelo de detecção de objetos YOLOv11 e o modelo de segmentação SAM2 para identificar e delinear automaticamente recursos do mapa (por exemplo, piscinas), aumentando a eficiência. Os usuários treinam modelos em ambientes Colab fornecidos e, em seguida, verificam os resultados manualmente, melhorando significativamente a velocidade de mapeamento, mantendo o controle de qualidade. Isso demonstra como modelos de IA leves e amigáveis ​​ao ambiente local podem melhorar projetos comunitários sem depender de modelos de linguagem grandes.

Desenvolvimento

Landrun: Sandbox leve e seguro para processos Linux

2025-03-22
Landrun: Sandbox leve e seguro para processos Linux

Landrun é um sandbox Linux leve que usa o Landlock LSM, oferecendo segurança em nível de kernel e sobrecarga mínima. Ele permite controle de acesso granular para diretórios, suporta caminhos de leitura e gravação e permite permissões de execução opcionais. Também inclui controle de acesso à rede TCP (vinculação e conexão). Requer o kernel do Linux 5.13 ou superior com Landlock LSM habilitado (kernel 6.8 ou superior para restrições de rede). O Landrun fornece uma interface de linha de comando para configurar facilmente as permissões do sandbox, incluindo somente leitura, leitura/gravação, execução e portas TCP específicas de vinculação e conexão. Um modo de esforço máximo garante degradação suave em kernels mais antigos. Isso o torna ideal para executar com segurança código não confiável ou potencialmente malicioso.

Desenvolvimento segurança do kernel

Dois relatórios destacam lacunas de conhecimento e melhores práticas para conformidade com o CRA de código aberto

2025-03-22
Dois relatórios destacam lacunas de conhecimento e melhores práticas para conformidade com o CRA de código aberto

A Fundação Linux lançou dois relatórios de pesquisa inovadores que exploram estratégias impulsionadas pela comunidade para abordar a segurança de código aberto e a Lei de Resiliência Cibernética (CRA) da União Europeia. O primeiro relatório analisa como três projetos da Fundação Linux atendem aos requisitos mínimos de conformidade do CRA, compartilhando melhores práticas. O segundo relatório revela lacunas significativas de conhecimento dentro do ecossistema de código aberto em relação à conscientização sobre o CRA, com muitos entrevistados desconhecendo a lei e sem preparo para a conformidade. Os relatórios recomendam que os fabricantes assumam um papel mais ativo na segurança de código aberto, pedindo maior financiamento e suporte legal para promover melhores práticas de segurança.

FizzBee: Modelando Exclusão Mútua e as Armadilhas do Redlock

2025-03-22
FizzBee: Modelando Exclusão Mútua e as Armadilhas do Redlock

Este artigo detalha a experiência do autor usando FizzBee, uma nova linguagem de especificação formal baseada em Starlark, para modelar algoritmos de exclusão mútua e investigar problemas com o algoritmo Redlock. Ao modelar seções críticas, bloqueios, locações e tokens de cerca, o autor revela limitações na tolerância a falhas do Redlock, mostrando finalmente que os tokens de cerca não resolvem completamente os problemas de exclusão mútua. O autor conclui discutindo a facilidade de uso e as deficiências do FizzBee, destacando a importância da especificação formal no projeto de algoritmos. O exercício prático revelou inesperadamente falhas sutis na compreensão do autor sobre tokens de cerca, sublinhando o valor dos métodos formais.

Desenvolvimento exclusão mútua

Mergulhando nos Internos do PyTorch: Tensores, Autograd e Escrita de Kernel

2025-03-22

Este post de blog fornece uma exploração detalhada dos mecanismos internos do PyTorch, cobrindo estruturas de dados de tensores, diferenciação automática (Autograd) e escrita de kernel. Começa explicando a implementação subjacente de tensores, incluindo o conceito de strides e como usá-los para criar views de tensores. Em seguida, aprofunda-se no funcionamento do Autograd, mostrando como os gradientes são calculados por meio de retropropagação. Finalmente, o post oferece um guia prático para escrever kernels do PyTorch, incluindo como aproveitar as ferramentas do PyTorch para verificação de erros, despacho de dtype e paralelização. Este é um excelente tutorial para desenvolvedores com alguma experiência em PyTorch que desejam entender seus mecanismos internos ou contribuir com código.

Desenvolvimento

Recuperando de uma exclusão acidental de /lib no Linux

2025-03-22

Este artigo detalha como recuperar um sistema Linux após a exclusão acidental do diretório crucial `/lib`. O autor explora vários métodos, desde o uso de ferramentas existentes, como um busybox estático, até a criação e transferência de um programa C mínimo, compilado estaticamente, para substituir arquivos essenciais. O guia passo a passo abrange técnicas usando comandos internos do bash e transferências de rede, fornecendo uma solução para evitar a reinstalação do SO.

Desenvolvimento recuperação do sistema

FastOpenAPI: Um Gerador OpenAPI Baseado em Pydantic

2025-03-22
FastOpenAPI: Um Gerador OpenAPI Baseado em Pydantic

FastOpenAPI é uma biblioteca para gerar e integrar esquemas OpenAPI usando Pydantic e várias estruturas, buscando uma experiência amigável para desenvolvedores semelhante ao FastAPI. Ele suporta Falcon, Flask, Quart, Sanic, Starlette e Tornado, oferecendo roteamento no estilo FastAPI por meio de roteamento de proxy. Uma simples instalação com pip permite começar rapidamente, com Swagger UI e ReDoc UI fornecendo acesso conveniente à documentação. O projeto inclui exemplos abrangentes e benchmarks para facilitar a adoção e avaliação de desempenho.

Desenvolvimento Integração de Frameworks

Evolução da arquitetura de aplicativos e o surgimento da orquestração leve

2025-03-22
Evolução da arquitetura de aplicativos e o surgimento da orquestração leve

Da arquitetura de três camadas dos anos 90 ao mundo atual impulsionado por microsserviços, a arquitetura de aplicativos passou por uma transformação dramática. Para coordenar as operações em backends distribuídos, surgiu a camada de orquestração. No entanto, as soluções DIY existentes são complexas e difíceis de manter, enquanto os sistemas de orquestração dedicados introduzem suas próprias complexidades. Este artigo apresenta uma nova abordagem: integrar a funcionalidade de orquestração em uma biblioteca leve e usar um banco de dados para persistir o estado de execução. Isso elimina a camada de orquestração separada, simplificando o desenvolvimento, teste e depuração, levando, em última análise, a arquiteturas de aplicativos mais confiáveis e eficientes.

Ruby: A Linguagem Inesperada da Revolução da IA?

2025-03-22

Os grandes modelos de linguagem (LLMs) são excelentes na geração de código, mas suas janelas de contexto limitadas dificultam o trabalho com grandes bases de código. Este artigo explora o 'poder' da programação assistida por LLM: quantos tokens são necessários para expressar um programa? O autor argumenta que Python supera Go para LLMs devido à sua concisão, permitindo mais recursos dentro dos limites de tokens. Além disso, Ruby, conhecida por sua elegância e brevidade, é apresentada como uma linguagem ideal para LLM devido ao seu uso eficiente de tokens. Embora desafios como a verificação de tipo permaneçam, o design centrado no ser humano do Ruby, ironicamente, o torna um potencial líder para LLMs.

Desenvolvimento

Restrições de Aplicação de Sugestões de Código no GitHub

2025-03-22
Restrições de Aplicação de Sugestões de Código no GitHub

Este texto lista várias limitações encontradas ao aplicar sugestões de código no processo de revisão de código do GitHub. Essas incluem: nenhuma alteração de código feita, pull request fechado ou mesclado, visualizando um subconjunto de alterações, apenas uma sugestão por linha aplicável, aplicação de sugestões em linhas excluídas não é suportada, sugestão já aplicada ou marcada como resolvida, sugestões de revisões pendentes não podem ser aplicadas e sugestões em comentários de várias linhas não são permitidas. Essas restrições garantem a integridade e a precisão do processo de revisão de código.

Desenvolvimento Sugestões de Código

Não tenha medo de criar novos tipos: Lições de Go e C

2025-03-22

Muitos desenvolvedores demonstram relutância em criar novos tipos em suas bases de código. Este artigo argumenta que isso decorre do medo de alterar o 'grande design' percebido e adicionar complexidade. No entanto, o autor argumenta que, quando um conjunto de valores naturalmente pertence junto, a criação de um novo tipo melhora significativamente a legibilidade e a manutenção do código. Usando Go como exemplo, o autor destaca os benefícios da criação de tipos pequenos e específicos, como uma estrutura `CreateSubscriptionRequest`, simplificando o tratamento de dados em chamadas de função. O autor incentiva os desenvolvedores a superar sua apreensão sobre a criação de novos tipos, enfatizando que nas culturas C e Go, essa prática é comum e aceita, desde que o propósito do tipo seja claramente transmitido por meio de seu nome.

Desenvolvimento

Autorização Centralizada: A Próxima Plataforma Compartilhada?

2025-03-22
Autorização Centralizada: A Próxima Plataforma Compartilhada?

Este artigo explora os benefícios e desafios dos sistemas de autorização centralizada. Tradicionalmente, a autorização é descentralizada em vários aplicativos, levando a ineficiências e dificuldades de gerenciamento. Um sistema centralizado oferece padronização, redução de custos e conformidade aprimorada, mas requer o tratamento de desafios de expressividade, desempenho, isolamento e integração. O artigo discute como plataformas de código aberto (Topaz) e comerciais (Aserto) superam esses obstáculos, permitindo uma autorização em nível empresarial eficiente, segura e gerenciável.

Desenvolvimento autorização centralizada

Use opções longas em scripts

2025-03-22

Muitas utilidades de linha de comando oferecem opções curtas (-f) e opções longas (--force). Embora as opções curtas sejam convenientes para uso interativo, as opções longas são muito superiores em scripts. Sua melhor legibilidade e natureza autoexplicativa melhoram a manutenibilidade e a compreensão. Por exemplo, no Git, `git switch --create release-{today} origin/main` é significativamente mais claro do que `git switch -c my-new-branch`, especialmente em scripts complexos.

Desenvolvimento opções longas

Frink: Uma Calculadora Prática e Linguagem de Programação

2025-03-21

Frink é uma poderosa ferramenta de cálculo e linguagem de programação projetada para simplificar cálculos físicos, garantir respostas precisas e fornecer uma ferramenta verdadeiramente útil. Ele acompanha unidades de medida (pés, metros, quilogramas, watts etc.) em todos os cálculos, permitindo a mistura transparente de unidades e a verificação dos resultados. O Frink também possui um grande banco de dados de constantes físicas, suporta vários idiomas, funções matemáticas avançadas, conversões de unidades, matemática de data/hora, expressões regulares e gráficos, além de suportar programação orientada a objetos e chamadas de código Java. Ele roda em vários sistemas operacionais e dispositivos e faz atualizações automáticas por meio do Java Web Start.

Desenvolvimento rastreamento de unidades

Transações por segundo do MySQL versus fsyncs por segundo: Desvendando o mistério

2025-03-21

Este artigo investiga a discrepância entre a taxa de transferência teórica e real de transações do MySQL. Um benchmark revela que a velocidade de gravação do MySQL é significativamente maior do que a prevista teoricamente (com base na latência do fsync()). Uma investigação mais aprofundada descobriu que o MySQL usa o commit em grupo para processar gravações em lote no WAL e no binlog, e o sistema de arquivos/disco provavelmente emprega processamento em lote semelhante, aumentando a eficiência. O autor também analisa o desempenho do índice invertido e explica a diferença entre os modelos teóricos e o desempenho do mundo real.

Desenvolvimento

Escreva seu próprio sistema operacional x86: Um guia prático

2025-03-21

Este livro é um guia prático para escrever seu próprio sistema operacional x86. Ele o acompanha no processo, desde a configuração do seu ambiente de desenvolvimento até a implementação de multitarefa, com explicações detalhadas e exemplos de código em cada etapa. Os autores compartilham suas experiências e fornecem links para leitura adicional. Os tópicos abordados incluem gerenciamento de memória, tratamento de interrupções, memória virtual, sistemas de arquivos e chamadas de sistema, tornando-o adequado para leitores com alguma experiência em programação de sistemas.

Desenvolvimento Programação de Kernel

Ubuntu Considera Mudança para Utilitários Rust por Padrão

2025-03-21

O Ubuntu planeja substituir muitos utilitários GNU tradicionais por implementações em Rust, como as do projeto uutils, em sua próxima versão 25.10. Para testar a adequação dessas ferramentas Rust, o vice-presidente de Engenharia da Canonical, Jon Seager, lançou o oxidizr, um utilitário de linha de comando para habilitá-las ou desabilitá-las facilmente. Essa mudança visa melhorar a resiliência e a segurança do Ubuntu e atrair mais contribuidores. Embora a reação da comunidade seja mista, essa mudança pode impactar significativamente a adoção do Rust e o futuro das distribuições Linux.

Desenvolvimento

Servidor Hyperbrowser MCP: Facilidade em Raspagem Web e Extração de Dados

2025-03-21
Servidor Hyperbrowser MCP: Facilidade em Raspagem Web e Extração de Dados

O Hyperbrowser apresenta seu servidor de Protocolo de Contexto de Modelo (MCP), uma ferramenta poderosa para raspar páginas da web, extrair dados estruturados e rastrear sites. Ele também simplifica o acesso a agentes de navegador de uso geral, como o CUA do OpenAI, o Uso do Computador Claude da Anthropic e o Uso do Navegador. O servidor possui recursos que incluem raspar páginas da web, rastrear a web, extrair dados estruturados, pesquisa do Bing e várias capacidades de automação do navegador. A instalação é simples; basta executar `npx hyperbrowser-mcp ` e configurar os arquivos de configuração relevantes.

Contenção de trava do ClickHouse: Um gargalo de desempenho de um ano

2025-03-21

A Tinybird enfrentou um problema de um ano com utilização extremamente baixa da CPU em um de seus clusters do ClickHouse durante períodos de pico de carga. A causa raiz foi identificada como contenção de trava do Context. Ao adicionar uma métrica `ContextLockWaitMicroseconds` para monitorar os tempos de espera da trava e redesenhar o mecanismo de trava do Context – substituindo uma única trava mutex global por travas mutex de leitura-escrita – o desempenho melhorou significativamente. O artigo detalha o uso da análise de segurança de thread do Clang para depurar e resolver problemas de concorrência, juntamente com os resultados de benchmark mostrando um aumento de 3x no QPS e ganhos substanciais na utilização da CPU.

Desenvolvimento

Termos de tecnologia que você provavelmente está pronunciando errado

2025-03-21

Este artigo destaca pronúncias comuns incorretas de termos de tecnologia encontrados por um desenvolvedor solo autodidata. Ele lista exemplos como Asus (AY-soos, não AY-sis), Debian (DEHB-eee-in, não DEE-bee-inn), e muitos outros, enfatizando a falta de lógica inerente nessas pronúncias. O autor sugere usar o widget de pronúncia do Google como um recurso útil e fornece uma lista abrangente de termos pronunciados corretamente, incluindo Atlassian, daemon, Gaussian, GIF, Gnome, GNU, JSON, Kernighan, LaTeX, Linus, Poisson, pypi, Qt, Redis, regex, repo, sudo, SUSE, SQL, SQLite, Ubuntu e Vite. Este é um recurso valioso para desenvolvedores e entusiastas de tecnologia.

arXivLabs: Projetos experimentais com colaboradores da comunidade

2025-03-21
arXivLabs: Projetos experimentais com colaboradores da comunidade

arXivLabs é uma estrutura que permite a colaboradores desenvolverem e compartilharem novos recursos do arXiv diretamente em nosso site. Indivíduos e organizações que trabalham com o arXivLabs abraçaram e aceitaram nossos valores de abertura, comunidade, excelência e privacidade 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

arXivLabs: Projetos experimentais com colaboradores da comunidade

2025-03-21
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

Sistema de Controle de Versão Leve: Game of Trees Lançado

2025-03-21

Game of Trees (Got) é um sistema de controle de versão leve e fácil de usar, priorizando facilidade de uso e simplicidade. Ainda em desenvolvimento, ele visa principalmente os desenvolvedores do OpenBSD e utiliza repositórios Git para dados versionados. Funcionalidades ainda não implementadas no Got podem ser gerenciadas pelo Git, e ambos os sistemas podem funcionar simultaneamente no mesmo repositório. Licenciado sob BSD, o software é gratuito e reutilizável.

Desenvolvimento

Mathup: Um analisador de expressões matemáticas rápido

2025-03-21

Mathup é uma ferramenta leve que traduz expressões matemáticas simples escritas em uma linguagem de marcação inspirada no AsciiMath para MathML estruturado. Mais rápido que o MathJax porque ele apenas analisa e traduz, deixando a renderização para o navegador, o Mathup suporta uma ampla gama de símbolos e funções matemáticas, incluindo frações, subscritos/sobrescritos, matrizes e tensores. Ele oferece amplas opções de personalização para fontes, cores e fundos. Os desenvolvedores podem usá-lo na linha de comando, em um servidor ou em um navegador para um manuseio rápido e eficiente de expressões matemáticas.

Desenvolvimento expressões matemáticas

Screen: Um emulador de terminal em PHP puro para interfaces de usuário de texto ricas

2025-03-21
Screen: Um emulador de terminal em PHP puro para interfaces de usuário de texto ricas

Screen é uma biblioteca de emulador de terminal escrita inteiramente em PHP, permitindo a criação de interfaces de usuário baseadas em texto ricas em qualquer aplicativo PHP. Inicialmente desenvolvido para resolver conflitos de códigos de escape ANSI no TUI multiprocesso do Solo para Laravel, o Screen cria um buffer de terminal virtual para lidar com segurança com operações ANSI (movimento do cursor, alterações de cor, limpeza da tela). Isso garante renderização consistente e suporta Unicode, caracteres multibyte, rolagem e uma ampla gama de códigos de escape ANSI. Um conjunto abrangente de testes, com um sistema de comparação visual inovador, garante a emulação precisa.

Cliente RDP baseado em Rust: IronRDP, seguro e eficiente

2025-03-21
Cliente RDP baseado em Rust: IronRDP, seguro e eficiente

O IronRDP é um conjunto de crates Rust que fornecem uma implementação segura do Protocolo de Área de Trabalho Remota (RDP) da Microsoft. Ele suporta vários codecs, incluindo bitmaps brutos não compactados, RLE, compressão de bitmap RDP 6.0 e Microsoft RemoteFX. Um cliente RDP assíncrono completo está incluído, juntamente com um exemplo de bloqueio para facilitar a integração. O projeto também detalha como habilitar o RemoteFX no servidor para melhor desempenho gráfico.

Desenvolvimento

Compilador Brinquedo para Expressões Python usando MLIR e E-Graphs

2025-03-21
Compilador Brinquedo para Expressões Python usando MLIR e E-Graphs

Este artigo detalha um compilador brinquedo para expressões Python construído usando MLIR e a biblioteca egglog. O compilador usa E-Graphs para saturação de igualdade e reescrita de termos para otimizar expressões Python antes de compilá-las para MLIR. Ele possui módulos para modelagem de expressões, funções embutidas, Term IR, uma camada de transformação, uma camada de otimização e geração de código MLIR e um backend LLVM. Ao interpretar simbolicamente funções Python, convertê-las em uma representação IR, aplicar regras de otimização e, finalmente, gerar código MLIR eficiente, o compilador consegue compilação e execução por meio do LLVM.

Desenvolvimento

Projetor de Lentes Torch: Ótica Diferenciável com PyTorch

2025-03-21

Torch Lens Maker é uma biblioteca Python de código aberto para óptica geométrica diferenciável, baseada no PyTorch. Seu objetivo ambicioso é projetar sistemas ópticos complexos do mundo real (lentes, espelhos) usando computação moderna e otimização numérica de ponta. O núcleo é a óptica geométrica diferenciável: detecção de colisão 3D e leis ópticas implementadas no PyTorch. Ao tratar inteligentemente os elementos ópticos como camadas em uma rede neural e aproveitar a autodiferenciação e os algoritmos de otimização do PyTorch, projetar lentes se torna surpreendentemente semelhante ao treinamento de uma rede neural, liberando o poder das ferramentas modernas de aprendizado de máquina. O projeto está em estágio inicial e o autor está buscando financiamento para continuar o desenvolvimento.

Desenvolvimento projeto de lentes
1 2 132 133 134 136 138 139 140 214 215