Category: Desenvolvimento

Álgebra Linear Numérica para Ciência da Computação e Engenharia da Informação: Visão Geral do Curso

2025-05-03

Este curso de álgebra linear numérica é projetado para estudantes de ciência da computação e engenharia da informação. Ele compreende 18 aulas, cada uma com apresentações teóricas, problemas de casa e, na maioria das vezes, tarefas de codificação em Julia. Os tópicos abordados incluem fundamentos de álgebra linear, aritmética de ponto flutuante, métodos diretos, estruturas de dados esparsas, métodos iterativos, métodos de subespaço de Krylov, métodos multigrid, elementos de álgebra linear numérica aleatorizada e algoritmos que evitam comunicação. Recursos de aprendizagem extensos, incluindo slides e Jupyter Notebooks, são fornecidos.

Um Tour de Força pela Linguagem de Programação J

2025-05-03
Um Tour de Força pela Linguagem de Programação J

Esta introdução concisa à linguagem de programação J é direcionada a programadores com alguma experiência. Ela abrange conceitos essenciais, como tipos de dados, funções, modificadores, matrizes, estruturas de controle e tratamento de erros, com foco na aplicação prática. Os leitores são incentivados a executar os exemplos fornecidos e ler os comentários. Links e recursos essenciais são incluídos para auxiliar na aprendizagem rápida.

Desenvolvimento programação de matrizes

Extensão Espacial do DuckDB: Democratizando Dados Geoespaciais

2025-05-03
Extensão Espacial do DuckDB: Democratizando Dados Geoespaciais

O que acontece quando você incorpora recursos geoespaciais em ferramentas de dados generalistas? Mais pessoas usando dados geoespaciais! Uma recente conferência sobre Geoespacial Nativa na Nuvem destacou a necessidade de ampliar a adoção de geoespacial. A extensão espacial do DuckDB reduz drasticamente a barreira de entrada, exigindo apenas duas linhas de código para instalar e carregar. Isso permite que usuários casuais trabalhem facilmente com dados geoespaciais, impulsionando significativamente o ecossistema. O sucesso da Overture Maps Foundation pode estar diretamente ligado a essa facilidade de acesso.

Desenvolvimento

Desenvolvedor amador surpreende: Tradutor de documentos supera o Google Tradutor e o DeepL

2025-05-03

Um programador amador criou o Kintoun, um tradutor de documentos, em apenas duas semanas de tempo livre. Surpreendentemente, ele supera o Google Tradutor e o DeepL em precisão de tradução e preservação do layout. O autor compartilha lições importantes aprendidas, incluindo o sucesso inesperado do produto, a importância crítica da distribuição do produto e a combinação vencedora de Inertia.js e Svelte. O Kintoun se destaca no manuseio de layouts complexos e recursos como notas de rodapé e caracteres Ruby. O autor enfatiza a importância do marketing e compartilha uma estratégia bem-sucedida focada na identificação das necessidades do usuário e no oferecimento de ajuda genuína antes de promover o produto.

Migração do Hardcover: De Next.js para o Jeito Rails

2025-05-03
Migração do Hardcover: De Next.js para o Jeito Rails

A equipe do Hardcover compartilha sua experiência migrando do Next.js para Ruby on Rails e Inertia.js. Motivados por um sistema de cache obscuro, custos crescentes e velocidades de desenvolvimento lentas no Next.js, eles fizeram a mudança. O resultado? Um aumento significativo no desempenho do Hardcover, com carregamentos de página mais rápidos, pontuações melhoradas no Google Pagespeed e aumento na duração das sessões de visitantes. Desafios permaneceram, como layouts compartilhados e depuração de SSR, mas o resultado geral foi positivo.

Desenvolvimento migração de arquitetura

Resolver DNS sem servidor: serverless-dns decola

2025-05-03
Resolver DNS sem servidor: serverless-dns decola

O serverless-dns é um resolvedor DNS stub sem servidor, semelhante ao Pi-Hole, que suporta DNS-over-HTTPS (DoH) e DNS-over-TLS (DoT). Ele roda em plataformas como Cloudflare Workers, Deno Deploy, Fastly Compute@Edge e Fly.io, aproveitando os níveis gratuitos para casos de uso com baixo tráfego. Com tempos de resposta de milissegundos, ele gerencia eficientemente ~13 milhões de entradas de mais de 190 listas de bloqueio usando uma trie de radix sucinta. O projeto de código aberto permite configurações personalizadas, upload de logs e oferece uma solução DNS leve e de alto desempenho.

Pandoc: Um Conversor de LaTeX para MathML Surpreendentemente Eficaz

2025-05-03
Pandoc: Um Conversor de LaTeX para MathML Surpreendentemente Eficaz

O autor explora vários métodos para converter equações LaTeX em MathML, descobrindo que o Pandoc é o mais eficiente. O Pandoc lida sem esforço com equações de linha única e de várias linhas, incluindo matrizes complexas e funções por partes. Embora tenha sido descoberto um pequeno bug no tratamento pelo Pandoc de equações que envolvem limites e somatórios, seu desempenho geral é excelente. Um script Python é fornecido para limpar a saída MathML do Pandoc para melhorar a eficiência.

Desenvolvimento

Você realmente possui seu site? A ilusão de controle

2025-05-03

Durante o lockdown de 2020, o site de um restaurante se tornou sua linha de vida. O proprietário terceirizou a manutenção do site, mas o 'mantenedor' desapareceu por meses, deixando o site impossível de atualizar. Isso gerou uma discussão sobre o controle do site: de simplesmente contatar o mantenedor a modificar diretamente os arquivos do servidor, registros DNS ou até mesmo substituir o servidor – os métodos aumentam em complexidade. O artigo destaca que o controle verdadeiro depende da posse de contas e permissões relevantes, como contas de registro, administração de DNS e acesso ao servidor. Isso serve como um lembrete para entender os riscos da terceirização e garantir que você mantenha o controle necessário.

Problema de Visibilidade de Transações em Cluster PostgreSQL Multi-AZ: Um mergulho profundo no relatório Jepsen

2025-05-03
Problema de Visibilidade de Transações em Cluster PostgreSQL Multi-AZ: Um mergulho profundo no relatório Jepsen

Um relatório recente da Jepsen destaca um problema de longa data de visibilidade de transações em clusters Amazon RDS para PostgreSQL Multi-AZ: a ordem em que as transações se tornam visíveis difere entre o primário e as réplicas. Isso não causa perda de dados ou corrupção e não afeta implantações de AZ único ou bancos de dados Aurora. O problema está relacionado à anomalia 'Long Fork', violando o Isolamento de Instantâneo. A postagem detalha a causa raiz (atualizações assíncronas para ProcArray e WAL), ilustrando como isso leva a resultados inconsistentes (por exemplo, Alice e Bob observando diferentes classificações de um artigo do Hacker News). Embora raramente afete a correção do aplicativo, corrigi-lo é crucial para recursos de nível empresarial de clusters PostgreSQL. A AWS está colaborando com a comunidade PostgreSQL para resolver isso, oferecendo soluções alternativas, como revisar as suposições do aplicativo sobre a ordenação de transações e usar mecanismos de sincronização explícitos.

Por que eu já escrevi Clojure

2025-05-03

O autor usou Clojure profissionalmente por cinco anos, inicialmente amando, mas finalmente odiando, pela mesma razão: tédio. O autor não conseguia se forçar a escrever código empresarial genérico para corporações sem alma, mas conseguia se fosse divertido. Clojure, Go, Rust, Zig e outras novas tecnologias ajudaram a manter o interesse. O autor especula que a criação do Clojure e sua alta adoção em fintech se devem ao tédio de engenheiros altamente inteligentes. Empregos bem remunerados exigem engenheiros altamente inteligentes, mas eles se entediam facilmente e precisam de estímulo intelectual. A escrita de código empresarial é relativamente chata, então as fintechs permitem que os engenheiros usem 'brinquedos' no código para reduzir a rotatividade.

Desenvolvimento esgotamento profissional

Codificação Vibe: Hype ou o Futuro do Desenvolvimento de Software?

2025-05-03
Codificação Vibe: Hype ou o Futuro do Desenvolvimento de Software?

A codificação Vibe, popularizada por Andrej Karpathy, envolve o uso de assistentes de IA como o Cursor para codificar por meio de comandos de voz. Embora reduza a barreira de entrada para a criação de software e permita a prototipagem rápida, não substitui as habilidades de codificação tradicionais. O artigo argumenta que, embora a codificação Vibe democratize a prototipagem, a construção de software robusto ainda requer um profundo conhecimento de linguagens de programação e ciência da computação. É mais uma ferramenta para acelerar o desenvolvimento para programadores experientes, não uma solução mágica para substituir engenheiros de software.

Desenvolvimento

ANEMLL: Acelerando LLMs no Neural Engine da Apple

2025-05-03
ANEMLL: Acelerando LLMs no Neural Engine da Apple

ANEMLL é um projeto de código aberto focado em acelerar modelos de linguagem grandes (LLMs) para processadores de tensor, começando com o Apple Neural Engine (ANE). Ele fornece um pipeline de código aberto completo, da conversão do modelo (a partir do Hugging Face) à inferência no ANE, permitindo inferência perfeita no dispositivo para aplicativos de borda de baixa potência, maximizando a privacidade e a segurança. Atualmente suporta modelos como LLaMA 3.1, e oferece exemplos de código Swift e Python, juntamente com aplicativos iOS/macOS. Esta é uma versão alfa, portanto, espere melhorias na quantização.

Desenvolvimento

Lançamento do código-fonte: QModem 4.51, um programa clássico de comunicações MS-DOS

2025-05-03
Lançamento do código-fonte: QModem 4.51, um programa clássico de comunicações MS-DOS

O código-fonte do QModem 4.51, um programa de telecomunicações MS-DOS criado por John Friel III (1960-2024), foi lançado. Esta edição 'Test-Drive' de 1992 possui recursos como suporte para vários protocolos de modem, scripts, personalização, configuração automática e até mesmo um Modo Host. Um artefato histórico valioso para entusiastas de telecomunicações, entusiastas de retrocomputação e qualquer pessoa interessada em software clássico DOS. No entanto, a compilação requer Turbo Pascal 5.x/6.0 e várias dependências, além de lidar com a gestão de sobreposições - uma tarefa desafiadora.

Desenvolvimento

Emulando closures em Tcl: Um truque inteligente

2025-05-03

Este artigo explora a implementação de um comportamento semelhante a closures em Tcl, uma linguagem que não possui suporte nativo para closures. O autor utiliza namespaces e o sistema de objetos TclOO para criar uma classe que imita closures. Esta classe captura variáveis externas e mantém sua validade fora de seu escopo original, efetivamente alcançando uma funcionalidade semelhante à de closures. Embora difira ligeiramente das closures em C++, esta abordagem fornece uma solução prática para aqueles que precisam de closures em Tcl.

Desenvolvimento

pipask: Instalação Segura de Pacotes Python

2025-05-03
pipask: Instalação Segura de Pacotes Python

O pipask é uma alternativa mais segura ao pip, adicionando verificações de segurança antes de instalar pacotes Python. Ele prioriza o uso de metadados do PyPI, evitando o download e a execução de código sempre que possível. Se a execução de código de terceiros for necessária, o pipask solicita o consentimento do usuário. Após executar as verificações, incluindo a popularidade do repositório, a idade do pacote, vulnerabilidades conhecidas, contagens de downloads do PyPI e verificação de metadados, ele apresenta um relatório formatado e solicita aprovação. Após a aprovação, ele repassa a instalação para o pip padrão.

Desenvolvimento

Por que o HTML não pode importar HTML?

2025-05-03
Por que o HTML não pode importar HTML?

O autor está obcecado com uma necessidade simples de desenvolvimento web: reutilizar o mesmo cabeçalho em várias páginas HTML. Ele encontra muitas soluções, mas nenhuma é puramente baseada em HTML. Isso o leva a questionar por que o HTML não pode importar diretamente outros arquivos HTML, como CSS ou JavaScript. Ele explora possíveis razões, como scanners de pré-carregamento, problemas de carregamento assíncrono, a complexidade de inclusões aninhadas, aumento de solicitações web e muito mais, e solicita a contribuição do leitor.

Desenvolvimento

Proxy LLM Remoto como Modelo Local em Kotlin: Uma Benção para o Assistente de IA do JetBrains

2025-05-03
Proxy LLM Remoto como Modelo Local em Kotlin: Uma Benção para o Assistente de IA do JetBrains

Devido à cota gratuita limitada do Assistente de IA do JetBrains, o autor desenvolveu um aplicativo Kotlin/Ktor que funciona como proxy para várias APIs de LLM, como OpenAI, Claude e Gemini, como APIs do LM Studio e Ollama, permitindo seu uso em IDEs do JetBrains. Aproveitando recursos sem reflexão, ele é construído como uma imagem nativa do GraalVM para compatibilidade multiplataforma e inicialização rápida. Suporta bate-papo em streaming, possui configuração fácil e recarregamento a quente.

Um Script Simples para Criar um Blog

2025-05-03

Este script constrói um blog estático simples. Ele lê arquivos Markdown de um diretório especificado, converte-os em HTML usando a biblioteca markdown2 e gera páginas de blog estáticas com base em um modelo HTML. Ele também cria uma página de índice listando todas as postagens do blog com títulos e links para facilitar a navegação. Todo o processo é automatizado para eficiência e simplicidade.

Desenvolvimento geração de blog

arXivLabs: Projetos Experimentais com Colaboradores da Comunidade

2025-05-03
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 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 Plataforma aberta

Apple e Anthropic se unem para criar plataforma de codificação com IA

2025-05-03
Apple e Anthropic se unem para criar plataforma de codificação com IA

A Apple está se unindo à startup de IA Anthropic para criar uma nova plataforma de 'vibe-coding' que usa IA para escrever, editar e testar código para programadores. Esta nova versão do Xcode integra o modelo Claude Sonnet da Anthropic. Atualmente, a Apple está testando o software internamente e ainda não decidiu sobre um lançamento público. Essa parceria representa um avanço significativo no desenvolvimento de software assistido por IA, potencialmente revolucionando a maneira como os programadores trabalham.

Desenvolvimento

Abandone os PRDs, Adote o Desenvolvimento Guiado por Demonstrações

2025-05-03
Abandone os PRDs, Adote o Desenvolvimento Guiado por Demonstrações

No mundo acelerado do desenvolvimento de software, PRDs extensos geralmente prejudicam a eficiência. O desenvolvimento guiado por demonstrações oferece uma abordagem mais ágil: priorize a construção de protótipos de demonstração interativos para coletar rapidamente feedback de usuários e partes interessadas. As demonstrações não são o produto final, mas sim uma maneira de visualizar conceitos abstratos, tornando-os acessíveis a indivíduos não técnicos. Ao simplificar a criação e o acesso à demonstração e focar o feedback na funcionalidade principal, as equipes podem iterar de forma mais eficiente, construindo, em última análise, produtos que atendem melhor às necessidades do usuário. Embora a documentação ainda seja importante, o desenvolvimento guiado por demonstrações aumenta significativamente a eficiência nas fases iniciais, ajudando as equipes a encontrar a direção mais rapidamente.

Treinando Robôs com Pi0, Lerobot e Rerun: Uma Abordagem de Retargeting de Movimento de Pose Humana

2025-05-02
Treinando Robôs com Pi0, Lerobot e Rerun: Uma Abordagem de Retargeting de Movimento de Pose Humana

Este projeto explora o treinamento de robôs usando Pi0, Lerobot e Rerun. Ele suporta Linux e utiliza o gerenciador de pacotes Pixi. O projeto envolve calibração de câmera, análise de pose e cinemática humana e extração de posições e ângulos de juntas 3D a partir de imagens multivisuais. O objetivo final é converter filmagens multi-câmera sincronizadas em parâmetros de junta ângulo-eixo e posições 3D utilizáveis por robôs para redirecionamento de movimento e aprendizado de habilidades motoras finas. Tutoriais do Jupyter Notebook são fornecidos, cobrindo pose e cinemática humana, redirecionamento de pose de corpo e mão e aprendizado por imitação e teleoperação.

Gráficos de Chama AI de código aberto: agora com suporte para GPU Intel Battlemage

2025-05-02

A Intel tornou os Gráficos de Chama AI de código aberto, adicionando suporte para GPUs Intel Battlemage. Isso permite a geração de gráficos de chama de GPU de pilha completa, fornecendo insights sem precedentes sobre o desempenho de jogos. Usando GZDoom como exemplo, o artigo demonstra como o FlameScope, combinado com gráficos de chama de CPU e GPU, pode identificar gargalos de desempenho. Ao comparar visualmente a atividade da CPU e da GPU, os desenvolvedores podem identificar rapidamente áreas para otimização. O exemplo destaca o tempo de compilação do shader da CPU e as variações de desempenho da GPU em diferentes cenas do jogo. Embora a configuração exija um sistema Linux e alguma manipulação do kernel/biblioteca, os poderosos recursos de análise tornam esta uma ferramenta valiosa para desenvolvedores de jogos e engenheiros de desempenho.

Testes baseados em propriedades no Elm: Garantindo a cobertura de casos interessantes

2025-05-02

Este artigo demonstra como usar Test.Distribution no Elm para garantir que testes baseados em propriedades cubram casos interessantes. O autor usa um exemplo de implementação de fila para mostrar como Test.reportDistribution gera relatórios de distribuição de dados de teste e como Test.expectDistribution impõe distribuições esperadas. Isso permite que os desenvolvedores controlem com mais precisão a cobertura de testes, evitando que casos de teste importantes sejam perdidos devido à distribuição desigual de dados. O artigo também menciona as funções Fuzz.examples e Fuzz.labelExamples, que ajudam os desenvolvedores a entender e depurar melhor os dados de teste.

Automatizando a Verificação de Estimativas Assintóticas: Uma Ferramenta Python

2025-05-02
Automatizando a Verificação de Estimativas Assintóticas: Uma Ferramenta Python

Esta publicação descreve uma ferramenta Python para verificar automaticamente estimativas assintóticas, especialmente aquelas envolvendo um número finito de números reais positivos combinados usando operações aritméticas como adição, multiplicação, divisão, exponenciação e mínimo/máximo. A ferramenta usa divisão de casos e programação linear para determinar automaticamente se uma desigualdade é verdadeira, fornecendo uma prova ou contra-exemplo. O autor ilustra a utilidade da ferramenta com exemplos pessoais e discute melhorias futuras, como lidar com expressões mais complexas e integração em plataformas de software matemático existentes.

JDK 25: Aumento de Desempenho da String por meio da Dobra Constante do Hash Code

2025-05-02

O JDK 25 melhora significativamente o desempenho da classe String permitindo a dobra constante da função String::hashCode. Isso resulta em ganhos de velocidade substanciais, especialmente quando Strings são usadas como chaves em Maps estáticos e imutáveis, como em um cenário onde MethodHandles para chamadas nativas são acessados ​​por meio de chaves String. Benchmarks mostram uma melhoria de mais de 8x. Essa otimização é alcançada marcando o campo interno String.hash com a anotação @Stable. Isso permite que a JVM armazene em cache e reutilize o código hash, evitando o recálculo para códigos hash diferentes de zero. Embora um código hash zero possa dificultar essa otimização, uma correção futura é esperada.

Desenvolvimento

Anukari: Sintetizador revolucionário baseado em física 3D

2025-05-02

Anukari é um sintetizador de software e processador de efeitos baseado em uma simulação de física 3D totalmente interativa. Arraste e solte componentes físicos como massas e molas para projetar seu próprio instrumento ou efeito 3D. Veja e ouça o que você construiu em tempo real. Ele suporta MPE e pode ser executado como um plugin em sua DAW favorita ou em modo independente. Aproveite o poder da sua GPU para processamento de áudio poderoso. Anukari está atualmente em versão Beta com 50% de desconto.

BLAST: Um motor de serviço de alto desempenho para IA de navegação na web

2025-05-02
BLAST: Um motor de serviço de alto desempenho para IA de navegação na web

BLAST é um motor de serviço de alto desempenho para IA de navegação na web, oferecendo uma API compatível com OpenAI com concorrência e streaming integrados. Ele armazena em cache e paralisa automaticamente as tarefas para reduzir custos e permitir latências interativas. Um simples `pip install blastai && blastai serve` inicia o uso localmente, sem se preocupar com orçamento ou consumo excessivo de memória. Sua API compatível com OpenAI facilita a integração, transmitindo a saída do LLM aprimorada pelo navegador em tempo real.

Desenvolvimento

Redis retorna ao código aberto após batalha de licenciamento com gigantes da nuvem

2025-05-02
Redis retorna ao código aberto após batalha de licenciamento com gigantes da nuvem

O popular armazenamento de dados em memória Redis está de volta sob uma licença de código aberto após um ano de experimento com uma licença mais restritiva. A tentativa de impedir que provedores de nuvem oferecessem serviços Redis hospedados foi contraproducente, levando à criação de forks como o Valkey. O lançamento do Redis 8 sob a licença AGPL v3 visa proteger o projeto e reconstruir pontes com a comunidade de código aberto. A história destaca os desafios da comercialização de software de código aberto e o relacionamento complexo com gigantes da nuvem.

Desenvolvimento

Máquinas Virtuais Burstáveis da Ubicloud: Fatiamento de CPU com cgroups v2

2025-05-02
Máquinas Virtuais Burstáveis da Ubicloud: Fatiamento de CPU com cgroups v2

A Ubicloud, uma alternativa de código aberto à AWS, introduziu VMs burstáveis para reduzir custos na nuvem. Aproveitando o Linux cgroups v2, essas VMs rodam em uma fração de recursos de CPU compartilhados, atingindo maior utilização durante picos de carga. O artigo detalha a configuração e o uso do cgroups v2, incluindo os controladores cpuset e cpu, e a administração via sistema de arquivos virtual ou systemd. Testes mostraram que as VMs burstáveis alcançam cerca de 30% de aumento de desempenho em cargas leves, mas isso é limitado pelas restrições de micro-intervalos do cgroups v2.

Desenvolvimento VMs burstáveis
1 2 98 99 100 102 104 105 106 214 215