Category: Desenvolvimento

Indexação eficiente em frameworks de aprendizado profundo: Uma comparação de Torch, TensorFlow e Einops

2025-09-24

Este artigo compara diferentes abordagens para indexação eficiente de matrizes em PyTorch, TensorFlow e Einops. Ao contrastar `torch.gather`, `torch.take_along_dim`, `torch.index_select`, `torch.take`, `tf.gather`, `tf.gather_nd` e `einx.get_at` do Einops, ele mostra suas diferenças de flexibilidade e eficiência no tratamento de diferentes dimensões e indexação em lote, fornecendo aos desenvolvedores uma referência para escolher a solução ideal.

Desenvolvimento indexação de matrizes

Fortran x Python: Uma descoberta inesperada no ensino de computação científica para estudantes de engenharia

2025-09-24
Fortran x Python: Uma descoberta inesperada no ensino de computação científica para estudantes de engenharia

Um professor que leciona uma aula introdutória de computação científica há mais de 10 anos usando Python, questiona se o Python é a melhor escolha para iniciantes, especialmente em álgebra linear numérica. Ele argumenta que uma linguagem fortemente tipada como Fortran pode oferecer uma experiência de aprendizado melhor. A flexibilidade do Python, embora conveniente, leva a erros comuns de alunos: confusão com a biblioteca numpy, erros de indentação e erros de deslocamento de um devido à indexação baseada em 0. Em contraste, a tipagem forte do Fortran e as estruturas de loop explícitas ajudam os alunos a entender melhor os algoritmos e reduzir erros. O artigo usa o método de Jacobi e a decomposição QR como exemplos, comparando as implementações em Python e Fortran e argumentando as potenciais vantagens do Fortran no ensino, apesar do ecossistema mais amplo e da versatilidade do Python.

Desenvolvimento computação científica

Livro atualizado: Introdução às Linguagens de Programação

2025-09-24

Os professores Jaemin Hong e Sukyoung Ryu, do KAIST, lançaram uma versão atualizada de seu livro didático, "Introdução às Linguagens de Programação". Este livro introdutório abrange conceitos fundamentais de linguagens de programação, incluindo sintaxe, semântica, sistemas de tipos e implementações de interpretadores/verificadores de tipos. Os autores encorajam seu uso por qualquer pessoa que esteja aprendendo ou ensinando esses conceitos e reconhecem as contribuições de alunos e assistentes de ensino. A edição mais recente apresenta correções de erros tipográficos e margens de página reduzidas.

Desenvolvimento

Podman Desktop ultrapassa 3 milhões de downloads!

2025-09-24
Podman Desktop ultrapassa 3 milhões de downloads!

O Podman Desktop, um aplicativo de desktop para gerenciamento de contêineres e Kubernetes, atingiu a impressionante marca de 3 milhões de downloads! Esse sucesso se deve ao forte apoio da comunidade e às melhorias contínuas, incluindo fluxos de trabalho mais suaves do Kubernetes, compatibilidade aprimorada com o Docker e melhorias na usabilidade diária. O Podman Desktop também ingressou no projeto CNCF Sandbox e está sendo adotado por cada vez mais empresas. A equipe agradece o feedback dos usuários e se compromete com melhorias contínuas, fornecendo aos desenvolvedores uma experiência de gerenciamento de contêineres e Kubernetes ainda mais eficiente.

Desenvolvimento

Log de atualizações do projeto Vterm: Melhorias contínuas de desempenho e recursos

2025-09-24

O desenvolvedor do Vterm, Tom Szilagyi, fez várias confirmações recentemente, abrangendo otimizações de desempenho, correções de bugs e novos recursos. Essas atualizações incluem melhorias de desempenho da GPU, correção de um bug de sinalização, adição de novas opções de linha de comando e aprimoramento da renderização de caracteres e exibição de sublinhados. As melhorias contínuas do código aprimoram a estabilidade e a eficiência do Vterm.

Desenvolvimento atualizações de código

fetch_max do Rust: Uma Imersão Profunda na Otimização do Compilador

2025-09-24
fetch_max do Rust: Uma Imersão Profunda na Otimização do Compilador

Durante uma entrevista de engenharia recente, um candidato usou uma única linha de código Rust para resolver um problema clássico de concorrência — rastrear o valor máximo em várias threads produtoras. Isso despertou a curiosidade do autor: como o `fetch_max` do Rust realmente funciona? O artigo mergulha no processo de compilação, do código Rust para a montagem, revelando as camadas de otimização envolvendo macros, representação intermediária LLVM, intrínsecos do compilador e especificidades da arquitetura de destino. Em x86-64, `fetch_max` compila para um loop compare-and-swap (CAS); em ARM, ele usa diretamente a instrução max atômica de hardware. Este artigo demonstra o poder dos compiladores modernos e os detalhes de baixo nível por trás de abstrações de alto nível.

Desenvolvimento

Val Town Reescreve Integração TypeScript para Desempenho Relâmpago

2025-09-24
Val Town Reescreve Integração TypeScript para Desempenho Relâmpago

Val Town reescreveu completamente a integração TypeScript de seu editor online, substituindo a implementação anterior baseada em Web Worker do lado do cliente por um servidor de linguagem Deno baseado em contêiner na nuvem. Isso resolve problemas com importações lentas de pacotes NPM e incompatibilidade entre TypeScript e Deno no sistema antigo, alcançando velocidades de implantação de 100 ms ao salvar. O novo sistema utiliza contêineres Cloudflare para garantir o isolamento da carga de trabalho do usuário e limites de recursos, e todo o código é de código aberto, oferecendo aos desenvolvedores uma experiência de desenvolvimento TypeScript mais suave e eficiente.

Desenvolvimento Editor Online

Provas de Conhecimento Zero em Espaço Sublinear: Uma Nova Fronteira

2025-09-24
Provas de Conhecimento Zero em Espaço Sublinear: Uma Nova Fronteira

Pesquisadores desenvolveram o SSZKP, um sistema de provas de conhecimento zero em espaço sublinear com implementação em Rust usando KZG/BN254. Ele alcança uso de memória O(√T) para um traço de comprimento T, empregando IFFTs em blocos e acumuladores de streaming. O SSZKP utiliza compromissos KZG padrão sem armazenar polinômios inteiros, oferecendo uma abordagem altamente eficiente para construir sistemas zk escaláveis. O projeto inclui ferramentas CLI completas para o provador e o verificador, além de scripts de teste de ponta a ponta.

Desenvolvimento

O Futuro das Linguagens de Programação: A Popularidade Chegou ao Fim?

2025-09-24
O Futuro das Linguagens de Programação: A Popularidade Chegou ao Fim?

As classificações de linguagens de programação de 2023 foram divulgadas, com Python novamente no topo. No entanto, a ascensão da IA está a perturbar a paisagem. Ferramentas de codificação assistidas por IA, como ChatGPT e Cursor, estão a reduzir a dependência dos programadores em linguagens específicas, tornando o próprio conceito de popularidade da linguagem ambíguo. Os programadores estão menos preocupados com detalhes sintáticos e mais focados no design de arquitetura de programas e algoritmos. Isso torna mais difícil o surgimento de novas linguagens, e a popularidade das linguagens pode se tornar tão obscura quanto a popularidade relativa das bitolas de trilhos ferroviários. Os programadores do futuro precisarão de uma base sólida em ciência da computação, em vez de dominar uma determinada linguagem.

Desenvolvimento

Webshell Oculto: Arquivos PHP com Hash MD5 Idêntico

2025-09-24
Webshell Oculto: Arquivos PHP com Hash MD5 Idêntico

Dois arquivos PHP possuem o mesmo hash MD5, mas um deles é um webshell. Essa técnica permite que atacantes ignorem a detecção de webshells em cache. Um hexdump revela pequenas diferenças entre os arquivos, resultando em hashes MD5 idênticos apesar de funcionalidades muito diferentes. Isso destaca a insuficiência de depender apenas do hash MD5 para verificações de segurança; uma estratégia de segurança mais abrangente é necessária.

Lançamento da biblioteca de emulador de terminal incorporável libghostty do Ghostty

2025-09-24

O projeto Ghostty lançou a libghostty, uma biblioteca incorporável para qualquer aplicativo integrar um emulador de terminal moderno e rápido. O primeiro lançamento, libghostty-vt, é uma biblioteca sem dependências (nem mesmo libc!), fornecendo uma API para analisar sequências de terminal e manter o estado do terminal, extraído diretamente do núcleo do Ghostty. Uma API Zig está disponível para testes agora, com uma API C chegando em breve. A libghostty visa resolver as deficiências comuns das implementações existentes de emuladores de terminal — falta de completude, bugs e lentidão — oferecendo aos desenvolvedores uma solução estável e reutilizável. Planos futuros incluem expandir a funcionalidade com tratamento de entrada, renderização de GPU e muito mais.

Desenvolvimento biblioteca incorporável

Três Bugs de Compilador C++: Uma História de Recursos Obscuros

2025-09-23
Três Bugs de Compilador C++: Uma História de Recursos Obscuros

O engenheiro sênior Michael Gibson relata a descoberta de um bug de compilador clang++ decorrente da combinação de três recursos C++ raramente usados. Ao implementar uma asserção REACHABLE em seu SDK C++, eles usaram inicialização estática, parâmetros de modelo não tipados e namespaces anônimos. No entanto, um novo pipeline de otimização no clang++ 17+ conflitou com essa combinação, levando a erros de desduplicação de símbolos. Isso destaca o risco de bugs obscuros surgindo de interações de recursos incomuns em sistemas complexos e mostra o poder dos testes automatizados na descoberta de tais problemas.

Zig: Uma Opção Mais Prática que Rust para Ferramentas CLI do Mundo Real

2025-09-23
Zig: Uma Opção Mais Prática que Rust para Ferramentas CLI do Mundo Real

Este artigo mergulha nas vantagens práticas do Zig sobre o Rust para a construção de interfaces de linha de comando. O autor ilustra as diferenças por meio de uma ferramenta CLI simples de gerenciamento de notas. Embora o verificador de empréstimos do Rust garanta a segurança de memória, sua complexidade e formalidade se mostram pesadas para CLIs simples. O Zig oferece uma abordagem mais direta para o gerenciamento de memória, combinando instruções `defer` e alocadores para facilitar a criação de código eficiente e seguro com menos sobrecarga do compilador. Para ferramentas CLI pequenas, a natureza leve, rápida e direta do Zig o torna mais prático. Embora a segurança de memória seja importante, o código manutenível e a eficiência do desenvolvedor são igualmente críticos.

Desenvolvimento

Conquistando a Fadiga do JavaScript: MESH, uma estrutura SSR modular baseada em HTMX

2025-09-23

O desenvolvimento web está enfrentando a "fadiga do JavaScript" e a "fadiga de frameworks". Este artigo explora o uso do HTMX, uma abordagem declarativa para desenvolvimento web usando atributos HTML, como solução. No entanto, a falta de estrutura do HTMX levou o autor a criar a estrutura MESH, um framework modular de renderização do lado do servidor (SSR). O MESH utiliza um modelo "um componente, um endpoint", aproveitando Go e Web Components para SSR e hidratação. Desafios com a incapacidade do HTMX de cruzar os limites do Shadow DOM foram superados com soluções inteligentes. A colaboração em tempo real com Server-Sent Events (SSE) também foi implementada. Por fim, o autor até removeu o HTMX completamente, usando um JS mais limpo para atingir a mesma funcionalidade, e reflete sobre as deficiências e as direções futuras do HTMX.

Desenvolvimento

WebKit da Apple: Um mergulho profundo na participação em padrões da Web

2025-09-23
WebKit da Apple: Um mergulho profundo na participação em padrões da Web

Este artigo apresenta um mergulho profundo na participação da Apple nos padrões da Web, usando dados e gráficos para ilustrar a adoção atrasada e a falta de colaboração da Apple em APIs da Web cruciais, como Web MIDI, Web USB e Web Bluetooth. O autor argumenta que a Apple frequentemente cita preocupações com 'privacidade e segurança' para rejeitar ou atrasar esses recursos, mas fornece poucas evidências para apoiar essas afirmações. Em vez disso, os dados sugerem que a Apple principalmente acompanha outros navegadores, em vez de participar ativamente do co-design. A peça questiona o envolvimento da Apple nos padrões da Web e sugere que suas ações podem estar ligadas à proteção dos interesses comerciais de sua App Store.

Desenvolvimento

oLLM: Executando LLMs de Contexto Extenso em GPUs de Consumidor

2025-09-23
oLLM: Executando LLMs de Contexto Extenso em GPUs de Consumidor

oLLM é uma biblioteca Python leve que permite a inferência de LLMs de contexto extenso, como gpt-oss-20B e qwen3-next-80B, em GPUs de consumidor com 8 GB de VRAM (por exemplo, uma Nvidia 3060 Ti de US$ 200), manipulando até 100.000 contextos. Isso é alcançado sem quantização, descarregando pesos de camada e cache KV para SSD e empregando técnicas como FlashAttention-2 e MLPs segmentadas. Suporta vários modelos de LLM e oferece uma API fácil de usar para tarefas de processamento de texto em larga escala, como análise de contratos, resumo de literatura médica e processamento de arquivos de log massivos.

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

2025-09-23
arXivLabs: Colaboração da Comunidade em Novos Recursos do arXiv

arXivLabs é uma estrutura experimental que permite a colaboradores desenvolverem e compartilharem novos recursos do arXiv diretamente no site. Indivíduos e organizações que trabalham com o arXivLabs abraçaram 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

Imagem Docker qBittorrent infectada secretamente minerando criptomoedas

2025-09-23

Durante a migração de servidores, o autor descobriu um processo suspeito, netservlet, consumindo recursos excessivos da CPU dentro de um contêiner Docker hotio/qbittorrent. A investigação revelou que netservlet é um minerador de criptomoedas oculto, provavelmente XMRig ou uma variante. A análise de um despejo de núcleo revelou strings relacionadas à mineração de criptomoedas (por exemplo, cryptonight, ethash_calculate_dag_item) e um endereço de pool de mineração (auto.c3pool.org:19999). Isso destaca a importância de não confiar em imagens Docker aleatórias, monitorar regularmente os recursos do sistema e auditar hosts e contêineres para evitar violações de segurança.

StringZilla v4: Biblioteca de processamento de strings SIMD com aceleração CUDA lançada

2025-09-23
StringZilla v4: Biblioteca de processamento de strings SIMD com aceleração CUDA lançada

StringZilla v4 chegou! Esta biblioteca de processamento de strings SIMD agora suporta CUDA, o que significa que ela é extremamente rápida, não apenas em CPUs, mas também em GPUs! A versão 4 possui inúmeras novas funcionalidades, incluindo algoritmos de programação dinâmica acelerados por GPU, várias funções de hash (incluindo uma nova função baseada em AES) e impressão digital de biosequências usando inteiros de 52 bits. Os benchmarks mostram o StringZilla v4 alcançando mais de 500 GCUPS em cálculos de distância de Levenshtein, superando outras bibliotecas em dezenas ou até centenas de vezes. A biblioteca possui licença Apache 2.0 e é gratuita para uso comercial.

Desenvolvimento

YAML: O Arquivo de Configuração do Inferno?

2025-09-23

Este artigo é um desabafo contra a complexidade dos arquivos de configuração YAML, argumentando que sua suposta 'facilidade de uso' esconde inúmeras armadilhas. O autor usa vários exemplos para ilustrar inconsistências entre versões do YAML, resultados de análise imprevisíveis e potenciais riscos de segurança, como problemas com números sexagesimais, tags e análise booleana. O autor recomenda alternativas mais simples como TOML ou gerar JSON para evitar os problemas do YAML, sugerindo opções mais poderosas como Nix e Python para configurações complexas.

Desenvolvimento

Compilando uma Pequena Linguagem Funcional para LLVM: Um Exemplo de Calculadora Simples

2025-09-23

Este artigo detalha o processo de compilação de uma pequena linguagem funcional para LLVM. Começando com uma linguagem de calculadora básica, o autor constrói progressivamente um analisador léxico, um analisador sintático e um gerador de código LLVM. O artigo explica detalhadamente cada etapa, incluindo a análise com a biblioteca megaparsec, a geração de código LLVM IR usando as bibliotecas llvm-hs-pure e llvm-hs-pretty, e finalmente a compilação e execução do resultado. Por meio deste exemplo, os leitores podem aprender como traduzir recursos de linguagens funcionais (como correspondência de padrões) para LLVM IR e como usar LLVM para geração e compilação de código.

Desenvolvimento Linguagem Funcional

arXivLabs: Projetos Experimentais com Colaboradores da Comunidade

2025-09-23
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 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

As Bolotas de Gato de um Programador e a Redenção

2025-09-23
As Bolotas de Gato de um Programador e a Redenção

Um programador, testemunhando um colega comer bolotas de gato disfarçadas com balas de menta em um bar, entra em profunda reflexão. Ele começa a refletir sobre anos de encontrar problemas de 'bolotas de gato' em seu trabalho de programação: alterações de código sem sentido, processos trabalhosos e sua antiga impaciência e falta de compreensão em relação aos outros. Ele percebe que já se orgulhava de sua experiência, até mesmo usando-a para julgar os outros, mas agora se sente cansado e perdido. O artigo explora as dificuldades que os programadores enfrentam em suas carreiras e como manter a paixão e a criatividade, culminando com ele buscando ajuda de IA para resolver problemas e refletindo sobre sua própria atitude, mostrando uma jornada de redenção.

Desenvolvimento

Crie seu próprio sistema local de fala para texto com Python e Whisper

2025-09-23
Crie seu próprio sistema local de fala para texto com Python e Whisper

Cansado dos riscos de privacidade de enviar áudio sensível para serviços de transcrição na nuvem? Esta postagem mostra como construir um sistema local de fala para texto usando Python e o modelo Whisper do OpenAI. Transcreva seus arquivos de áudio em menos de 10 minutos com 96% de precisão — totalmente gratuito e processado localmente em seu laptop. O tutorial cobre a configuração do FFmpeg, seu ambiente Python, o uso do modelo Whisper, o processamento em lote, a criação de legendas SRT e a solução de problemas comuns. Um método alternativo usando a biblioteca `speech_recognition` também é fornecido.

Desenvolvimento

Incidente de segurança do RubyGems e Bundler: Explicação de um tesoureiro

2025-09-23
Incidente de segurança do RubyGems e Bundler: Explicação de um tesoureiro

MINASWAN, membro do conselho e tesoureiro do Ruby Central, divulgou uma declaração abordando a recente controvérsia em torno da segurança do RubyGems e Bundler. Ele explica que, devido à falta de comunicação e à pressão do tempo, o conselho tomou a decisão de revogar temporariamente o acesso de alguns mantenedores para garantir a segurança do sistema e evitar a perda de financiamento. Ele reconhece falhas na comunicação e se desculpa pelo medo e confusão resultantes, enfatizando que a medida foi para proteger a estabilidade e a segurança do ecossistema Ruby.

Desenvolvimento

Repensando a Unidade de Trabalho no Desenvolvimento de Software

2025-09-23

Este artigo explora as melhores práticas para definir a 'unidade de trabalho' no desenvolvimento de software. O autor argumenta que uma boa unidade de trabalho deve ser decomponível, verificável, independente e priorizável, semelhante a uma história de usuário, mas com uma ênfase maior em seu papel ao longo de todo o ciclo de vida do software. Definir claramente a unidade de trabalho, afirma o autor, aumenta a eficiência da equipe, reduz a complexidade desnecessária e, finalmente, entrega mais valor ao cliente. O artigo também critica a prática de medir exclusivamente a eficiência do desenvolvimento assistido por IA pelo volume de código gerado, defendendo em vez disso uma avaliação orientada para o valor do cliente do impacto real da unidade de trabalho.

Desenvolvimento unidade de trabalho

httpjail: Filtragem HTTP granular para agentes de IA

2025-09-23

À medida que os agentes de IA se tornam mais poderosos, os riscos de segurança também aumentam. O httpjail é uma ferramenta que fornece filtragem HTTP(S) granular, permitindo que os desenvolvedores controlem o acesso à rede do agente com expressões JavaScript ou scripts personalizados. Isso evita vazamentos de dados e ações maliciosas. Ele opera em dois modos: forte (usando namespaces Linux e nftables) e fraco (usando variáveis de ambiente), e possui interceptação TLS para tráfego HTTPS seguro. Embora nenhum sistema seja perfeitamente seguro, o httpjail oferece melhorias significativas para a segurança do uso de agentes de IA poderosos.

Desenvolvimento Filtragem HTTP

Testes Superam Algoritmos: Um Guia de Busca de Emprego para Engenheiros de Software

2025-09-23

Um engenheiro experiente argumenta que os candidatos a emprego dão ênfase excessiva a estruturas de dados e algoritmos (DSA), enquanto negligenciam a habilidade crucial de testes. Embora DSA forme a base da programação, a realidade é que algoritmos complexos raramente precisam ser implementados do zero em empregos do mundo real. O autor recomenda aprender estruturas de dados e algoritmos fundamentais, entender a complexidade de tempo e dominar as estruturas de dados internas do Python. Mais importante, priorize o domínio das habilidades de teste, que são essenciais no trabalho do mundo real e podem fazer você se destacar nas entrevistas. Em vez de se esforçar no LeetCode, concentre-se em melhorar suas habilidades de teste para escrever código de alta qualidade.

Desenvolvimento

Notion 3.0: Agentes de IA para automatizar tarefas

2025-09-23
Notion 3.0: Agentes de IA para automatizar tarefas

O Notion 3.0 foi lançado com Agentes de IA, capazes de realizar qualquer tarefa que um humano pode fazer no Notion. Esses agentes automatizam tarefas rotineiras, criando documentos, bancos de dados e relatórios. Ao contrário dos chatbots genéricos, os Agentes de IA do Notion entendem seu fluxo de trabalho e tomam medidas com base no contexto. Opções de personalização permitem que você personalize o comportamento e as instruções do seu agente. Atualizações futuras incluirão agentes personalizados para automação em toda a equipe. Este lançamento também inclui recursos muito solicitados, como permissões de linha de banco de dados e novos conectores de IA.

Desenvolvimento

Camada de Interface GNU (GIL) para g++

2025-09-23
Camada de Interface GNU (GIL) para g++

Este repositório fornece uma implementação da Camada de Interface GNU (GIL) e da biblioteca padrão para g++. Inclui um exemplo simples de "Olá, mundo!" em C++, juntamente com outros exemplos, como uma calculadora e um algoritmo de ordenação por intercalação. A execução do código requer o compilador g++ e atenção aos ajustes de caminho. O projeto demonstra uma abordagem não tradicional à programação em C++ usando uma biblioteca padrão personalizada.

Desenvolvimento
2 4 5 6 7 8 9 214 215