Category: Desenvolvimento

Long Polling vence WebSockets: Um guia prático para sistemas em tempo real escaláveis

2025-01-05

A equipe da Inferable escolheu long polling HTTP em vez de WebSockets ao construir um sistema em tempo real escalável usando Node.js e TypeScript. Enfrentando os desafios de centenas de nós de trabalho precisando de atualizações de trabalho em tempo real e agentes exigindo sincronização de estado em tempo real, eles descobriram que o long polling era surpreendentemente eficaz. Mantendo as conexões HTTP abertas até que novos dados cheguem ou um tempo limite seja atingido, eles evitaram as complexidades dos WebSockets, como autenticação, observabilidade e compatibilidade de infraestrutura. O artigo detalha sua implementação, incluindo otimização do banco de dados, tratamento de erros e melhores práticas, como TTL obrigatório, TTL configurável pelo cliente e intervalos de pesquisa de banco de dados sensatos. A escolha decorreu da necessidade de controle central do produto sobre o mecanismo de entrega de mensagens, zero dependências externas e facilidade de compreensão e modificação. Alternativas como ElectricSQL são brevemente discutidas, destacando cenários em que WebSockets podem ser preferíveis.

Desenvolvimento sistemas em tempo real

Ferramenta Interativa de Aprendizagem CSS Flexbox

2025-01-05

O CSS Flexbox Playground é uma ferramenta de aprendizagem online interativa que permite aos usuários ajustar várias propriedades Flex para ver as mudanças de layout em tempo real e copiar o código CSS gerado. Ele abrange propriedades-chave como flex-direction, justify-content, align-items e flex-wrap, fornecendo uma compreensão visual do layout Flexbox. A experimentação prática permite que os usuários dominem rapidamente o Flexbox e melhorem a eficiência do desenvolvimento web.

Desenvolvimento

FSF pede pressão contínua sobre a Microsoft

2025-01-05

A Free Software Foundation (FSF) publicou um post no blog pedindo pressão contínua sobre a Microsoft para combater suas práticas anti-software livre. O post usa o Dia Internacional Contra o DRM (IDAD) deste ano como exemplo, destacando a atualização forçada do Windows 11 da Microsoft que exige um módulo TPM, prejudicando a liberdade do usuário e os direitos digitais. A FSF incentiva a mudança para o sistema GNU/Linux, evitando novas versões do software da Microsoft e movendo projetos fora do Microsoft GitHub para apoiar o movimento de software livre. Simultaneamente, a FSF está realizando sua arrecadação anual, buscando apoio para combater restrições digitais e promover a liberdade de software.

Desenvolvimento Restrições Digitais

Wildcard: Personalização de Sites com Planilhas

2025-01-05
Wildcard: Personalização de Sites com Planilhas

Wildcard é uma extensão de navegador desenvolvida por Geoffrey Litt, um aluno de doutorado do MIT, que permite aos usuários modificar sites de acordo com suas preferências usando uma interface familiar de planilha. O projeto, detalhado em vários artigos acadêmicos e demonstrado em vídeos (como adicionar tempos de leitura ao Hacker News), está atualmente em desenvolvimento, mas oferece um build de desenvolvimento para download. Explore seu potencial para experiências web personalizadas.

Desenvolvimento personalização da web

Comparação de Algoritmos de Retorno: Retorno Linear, Exponencial e Exponencial com Limite

2025-01-05

Este artigo compara três algoritmos comuns de retorno: retorno linear, retorno exponencial e retorno exponencial com limite. O retorno linear aumenta o tempo de espera por uma quantidade fixa a cada tentativa; o retorno exponencial dobra (ou multiplica) o tempo de espera a cada tentativa; o retorno exponencial com limite é semelhante ao retorno exponencial, mas com um tempo de espera máximo. O artigo também discute a adição de jittering aleatório para evitar problemas de "manada estrondosa" quando vários clientes tentam retornar simultaneamente.

MyST Markdown: Ferramentas de código aberto que revolucionam a comunicação científica

2025-01-05
MyST Markdown: Ferramentas de código aberto que revolucionam a comunicação científica

MyST Markdown é um ecossistema de ferramentas de código aberto e impulsionado pela comunidade, projetado para transformar a comunicação científica. Ele suporta a criação de blogs, livros online, artigos científicos, relatórios e artigos de periódicos, oferecendo recursos poderosos como gráficos ao vivo incorporados, integração Jupyter, exportação PDF e compatibilidade com centenas de periódicos. Seu núcleo é uma extensão Markdown flexível que integra perfeitamente código, resultados computacionais e elementos interativos, criando documentos dinâmicos e envolventes. Se você é um cientista, engenheiro ou redator técnico, o MyST permite que você compartilhe sua pesquisa e conhecimento de forma mais eficaz.

Desenvolvimento Escrita Científica

Quarentena de Projetos do PyPI: Uma Nova Arma Contra Malware

2025-01-05
Quarentena de Projetos do PyPI: Uma Nova Arma Contra Malware

O Python Package Index (PyPI) introduziu um recurso de 'Quarentena de Projetos' para combater o problema persistente de malware. Esse recurso permite que os administradores do PyPI marquem projetos potencialmente prejudiciais, impedindo a instalação fácil por usuários e mitigando danos. Em vez de exclusão completa, os projetos são ocultados do índice simples, permanecendo modificáveis pelos proprietários (mas não lançáveis), com os administradores mantendo o poder de levantar a quarentena. Planos futuros incluem automatizar a quarentena com base em vários relatórios confiáveis, melhorando a eficiência e reduzindo a janela de oportunidade para a propagação de malware.

Desenvolvimento

Simulação de Fungo de Lodo com WebGPU: Uma Implementação com TypeScript e Shaders de Computação

2025-01-05
Simulação de Fungo de Lodo com WebGPU: Uma Implementação com TypeScript e Shaders de Computação

SuboptimalEng criou uma simulação impressionante de fungo de lodo usando WebGPU e TypeScript. Este projeto recria o trabalho clássico de Sebastian Lague, utilizando shaders de computação para simular de forma eficiente o crescimento e o movimento do fungo de lodo. Um guia de configuração detalhado, capturas de tela e links de recursos estão incluídos, e o projeto foi implantado no GitHub Pages para facilitar o acesso. Este é um excelente exemplo para aprender WebGPU e shaders de computação.

A Luta Pela Autoria em Código Aberto: Quem Controla Seu Código?

2025-01-04
A Luta Pela Autoria em Código Aberto: Quem Controla Seu Código?

Este ensaio aprofunda as complexidades da propriedade de direitos autorais em Software Livre e de Código Aberto (FOSS). Tradicionalmente, muitos projetos FOSS atribuem direitos autorais a organizações sem fins lucrativos, mas essa prática se tornou controversa. O autor argumenta que a maioria dos contribuidores de FOSS, na verdade, tem seus direitos autorais detidos por seus empregadores, enfraquecendo a proteção oferecida pelas licenças copyleft. Mudar a atribuição centralizada de direitos autorais pode deixar as empresas no controle, potencialmente dificultando a aplicação do GPL. O artigo incentiva os contribuidores de FOSS a considerarem cuidadosamente a propriedade dos direitos autorais, sugerindo medidas proativas para proteger seus direitos e manter os interesses da comunidade de código aberto, impedindo que o copyleft se torne ineficaz.

Desenvolvimento

Labwc: Compositor Wayland Leve e Simples

2025-01-04
Labwc: Compositor Wayland Leve e Simples

Labwc é um compositor de janela Wayland leve baseado em wlroots, inspirado no openbox. Ele prioriza o empilhamento de janelas simples e eficiente e decorações de janela mínimas. Ao contrário de muitos compositores, ele depende de clientes para fornecer recursos como painéis, capturas de tela e papéis de parede, mantendo sua natureza leve. Aderindo ao estilo de codificação do wlroots e sway, o Labwc suporta exclusivamente protocolos Wayland, rejeitando dbus, sway/i3-IPC, etc., para evitar a fragmentação de protocolos e promover a adoção do Wayland.

Desenvolvimento Gerenciador de Janelas

Bugs em Assembly Go: Conflitos com Ponteiro de Frame em Dois Casos

2025-01-04

Este artigo analisa duas falhas no Go resultantes de código assembly com defeito que corrompeu o ponteiro de frame. Um bug sobrescreveu o registrador do ponteiro de frame (BP em AMD64) na biblioteca go-metro, o outro salvou incorretamente o ponteiro de frame na pilha no assembly ARM64 do Apache Arrow. O autor recomenda o uso de geradores de assembly como o Avo para evitar a manipulação manual de registradores e pilha. O artigo aprofunda-se em ABIs e convenções de chamada, oferecendo insights sobre como prevenir problemas semelhantes, destacando a importância de entender e seguir as diretrizes de assembly do Go.

Desenvolvimento Ponteiro de Frame

ELKS: Um Subconjunto de Kernel Linux Incorporável para 8086

2025-01-04
ELKS: Um Subconjunto de Kernel Linux Incorporável para 8086

O ELKS fornece um sistema operacional semelhante ao Linux para sistemas baseados na arquitetura Intel IA16 (processadores de 16 bits: 8086, 8088, etc.). Ele suporta rede e instalação em HDD (sistemas de arquivos MINIX e FAT), roda com apenas 256 KB de RAM e funciona em PCs antigos da IBM e SBCs, SoCs e FPGAs modernos. Imagens de disco para download e instruções de compilação estão disponíveis, juntamente com uma demonstração online.

Desenvolvimento

Efficient Recorder: Gravador de Tela Open Source com Foco em Privacidade

2025-01-04
Efficient Recorder: Gravador de Tela Open Source com Foco em Privacidade

Inspirado por um tweet, o desenvolvedor Jan Wilmake criou o Efficient Recorder, um projeto open source que visa criar uma alternativa ao Rewind.ai com foco na privacidade. Esta ferramenta de interface de linha de comando (CLI) grava simultaneamente a tela, áudio do sistema e áudio do microfone, transmitindo dados diretamente para um bucket S3. Ele possui gravação de áudio inteligente (mudando as taxas de amostragem com base na detecção de fala), captura automática de screenshots e webcam, e gerenciamento eficiente de recursos para minimizar a sobrecarga do sistema. O Efficient Recorder permite a personalização de configurações, como intervalos de screenshots e webcam e qualidade de imagem.

Desenvolvimento gravação de tela

MoonBit na Nuvem Golem: Construindo um Editor de Lista Colaborativa

2025-01-04

Esta postagem de blog detalha a construção de um editor de lista colaborativa na Nuvem Golem usando a nova linguagem de programação MoonBit. O autor divide o aplicativo em três componentes Golem: lista, arquivo e notificador de e-mail. Os recursos do MoonBit são aproveitados para implementar a manipulação de listas, arquivamento e notificações de e-mail por tempo limite. A postagem explica detalhadamente o uso do MoonBit, o design da arquitetura do componente Golem e o acesso ao tempo do sistema e às variáveis de ambiente usando WASI. O aplicativo é construído e implantado com sucesso, mostrando o potencial do MoonBit na plataforma Golem Cloud.

Desenvolvimento

Infisical, apoiada pela YC, contrata Engenheiro de Soluções

2025-01-04
Infisical, apoiada pela YC, contrata Engenheiro de Soluções

A Infisical, uma plataforma de gerenciamento de segredos de código aberto apoiada pela Y Combinator, está contratando um Engenheiro de Soluções. Processando mais de 100 milhões de segredos por dia, eles atendem clientes que vão de grandes empresas a startups de crescimento rápido. A função exige experiência em desenvolvimento ou engenharia de sistemas e experiência voltada para o cliente. As responsabilidades incluem garantir o sucesso do cliente, expandir para novos casos de uso e melhorar o produto. A Infisical oferece salário e participação acionária competitivos, além de benefícios.

Desenvolvimento Engenheiro de Soluções

Um cachorro vs. a pilha de gráficos do Windows 3.1

2025-01-04

O autor tenta executar o Windows 3.11 em um netbook Asus Eee PC 1000H de 2008, encontrando problemas de saída de vídeo. O modo VGA padrão é péssimo na tela de maior resolução, e o driver Super VGA incluído é incompatível. O artigo mergulha nas complexidades do modo aprimorado do Windows 3.x, hardware VGA, padrão VBE e patch SVGAPatch. Por meio de engenharia reversa e depuração, o autor analisa o driver de vídeo e o Dispositivo de Vídeo Virtual (VDD), melhorando o SVGAPatch para resolver alguns problemas de compatibilidade. No entanto, desafios permanecem, destacando as complexidades dos sistemas legados.

Desenvolvimento

Magia de código aberto: Auto Smiley, o gerador de sorriso de visão computacional

2025-01-04
Magia de código aberto: Auto Smiley, o gerador de sorriso de visão computacional

O Laboratório F.A.T. lançou o Auto Smiley, um aplicativo de código aberto que utiliza visão computacional para detectar sorrisos. Quando você sorri, ele insere automaticamente ":)" no seu aplicativo ativo. Construído com openFrameworks e MPT, está disponível para Windows e Mac, mostrando a capacidade de prototipagem rápida e tecnologia criativa do Laboratório F.A.T. Este projeto rápido destaca seu compromisso com recursos de código aberto e domínio público.

Prettier agora suporta formatação de arquivos PGN

2025-01-04
Prettier agora suporta formatação de arquivos PGN

Um novo plugin Prettier, `prettier-plugin-pgn`, foi lançado, adicionando suporte para formatação de arquivos Portable Game Notation (PGN). PGN é um formato de texto padrão para registrar jogos de xadrez. Este plugin lida com variações, anotações e vários jogos em um único arquivo PGN, facilitando a vida dos jogadores de xadrez e desenvolvedores. A instalação é simples, via npm ou globalmente.

Desenvolvimento Formatação de código

Finalizando Projetos Paralelos com LLMs e Cursor

2025-01-04
Finalizando Projetos Paralelos com LLMs e Cursor

Este post de blog detalha como o autor melhorou drasticamente sua taxa de conclusão de projetos paralelos usando LLMs e o IDE Cursor. Diante de restrições de tempo, ele utilizou IA para refinar as especificações do projeto, inicializar a geração de código e iterar de forma eficaz. Um site de rastreamento de hábitos serve como estudo de caso, mostrando o processo desde a especificação inicial (refinada com o ChatGPT) até a implantação via GitHub Actions. Estratégias-chave incluem o uso do Vite para configuração do projeto, o modo agente do Cursor para geração de código, desenvolvimento iterativo com uma abordagem de dividir e conquistar e fornecer amplo contexto aos LLMs. O autor enfatiza a importância de escolher o LLM e o modo Cursor certos para diferentes tarefas, culminando na entrega de uma versão funcional v1 do rastreador de hábitos.

Beam: Ferramenta de transferência de arquivos e pipes baseada em SSH

2025-01-04
Beam: Ferramenta de transferência de arquivos e pipes baseada em SSH

Beam é uma ferramenta que usa o protocolo SSH para transferir arquivos e pipes, requerendo apenas um cliente SSH; nenhuma instalação binária é necessária. Ele suporta transferência de pipes, oferece alta segurança com autenticação por chave pública e usa comandos SSH simples para enviar e receber dados. Nomes de canais aleatórios podem melhorar a segurança. Embora o servidor Beam esteja localizado na Alemanha, as velocidades de transferência podem ser limitadas e a criptografia de ponta a ponta não é suportada (os dados são descriptografados brevemente no servidor), sua natureza leve e a hospedagem simples o tornam uma solução conveniente para transferência de arquivos.

5 Maneiras de Renderizar Contornos no Unity

2025-01-04
5 Maneiras de Renderizar Contornos no Unity

Este artigo explora cinco técnicas distintas para renderizar contornos de objetos no motor de jogo Unity: efeito de borda, extrusão de vértices, buffer desfocado, algoritmo de inundação de salto e detecção de borda. Cada técnica apresenta compensações entre desempenho, fidelidade visual e complexidade de implementação. O efeito de borda é simples, mas funciona melhor em objetos esféricos. A extrusão de vértices produz bons resultados, mas tem dificuldades com bordas afiadas. O método de buffer desfocado é ótimo para contornos suaves, mas pode ser intensivo em termos de desempenho. O algoritmo de inundação de salto se destaca na renderização eficiente de contornos largos. A detecção de borda fornece um efeito de contorno em tela cheia, mas requer ajuste cuidadoso para evitar artefatos. A escolha ideal depende das necessidades do projeto e das restrições de desempenho.

Desenvolvimento Renderização de Contornos

Aprofundamento em ChatGPT: Uma Perspectiva para Programadores

2025-01-04
Aprofundamento em ChatGPT: Uma Perspectiva para Programadores

Este artigo mergulha profundamente no funcionamento do ChatGPT, direcionado especificamente para programadores. Ignorando conceitos gerais de IA/ML, ele concentra-se no modelo ChatGPT da OpenAI, explicando sua arquitetura, o uso de redes Transformer e como o Aprendizado por Reforço com Feedback Humano (RLHF) o ajusta para tarefas conversacionais. O artigo também detalha a tokenização, o treinamento do modelo, a geração de respostas e o papel do RLHF em garantir respostas precisas e contextualizadas.

Desenvolvimento

RailsConf 2025: Um Adeus Final e um Novo Começo

2025-01-04
RailsConf 2025: Um Adeus Final e um Novo Começo

A Ruby Central anunciou que a RailsConf 2025, que acontecerá de 8 a 10 de julho em Filadélfia, será a última. Após quase 20 anos, este encontro final celebra o legado do Rails e de sua comunidade. Como uma mudança estratégica, a Ruby Central sediará apenas a RailsConf em 2025, adiando a RubyConf para a primavera de 2026, onde se tornará o evento principal. Isso permite uma experiência de maior qualidade e maior suporte para projetos de código aberto como RubyGems e Bundler. O Rails manterá uma forte presença nas futuras RubyConfs, juntamente com a RailsWorld, criando um ritmo primavera/outono para os principais eventos Ruby e Rails.

Desenvolvimento

Arquivos querem ser atores? io_uring e a convergência de paradigmas computacionais

2025-01-04
Arquivos querem ser atores? io_uring e a convergência de paradigmas computacionais

Em aplicações Linux de alto desempenho, o io_uring está revolucionando a interação com o SO. Ele usa filas de submissão e conclusão, permitindo E/S assíncrona sem esperar por chamadas de sistema. Basta colocar operações na fila e continuar a computação. Isso se assemelha notavelmente ao modelo Actor: objetos enviam mensagens para computação concorrente. O envio de operações para descritores de arquivos e o recebimento assíncrono de respostas no io_uring é surpreendentemente semelhante. Isso sugere uma mudança para um comportamento de SO assíncrono e autônomo; métodos tradicionais de chamada de sistema podem ser uma abstração desatualizada.

Desenvolvimento

Desmistificando a Recursão: Uma Abordagem Baseada em Projetos

2025-01-04

O livro "O Livro Recursivo da Recursão" desafia a reputação intimidadora dos algoritmos recursivos. Usando exemplos em Python e JavaScript, ele explica progressivamente os fundamentos da recursão, algoritmos comuns (fatoriais, sequências de Fibonacci, travessia de árvores, resolução de labirintos, etc.) e técnicas de otimização (otimização de chamada de cauda, memorização). Ele abrange tópicos avançados como divisão e conquista, permutações, combinações e programação dinâmica, culminando na geração de arte fractal. Baseado em projetos e altamente acessível, este livro é perfeito para iniciantes e programadores experientes.

Desenvolvimento

Wine 10.0-rc4 Lançado: Estabilidade e Compatibilidade Aprimoradas

2025-01-04
Wine 10.0-rc4 Lançado: Estabilidade e Compatibilidade Aprimoradas

O Wine 10.0-rc4 candidato a lançamento marca um passo significativo para a próxima grande atualização desta camada de compatibilidade de código aberto. Esta versão se concentra fortemente na melhoria da estabilidade e compatibilidade, prometendo uma experiência mais suave para executar aplicativos Windows. A equipe de desenvolvimento investiu um esforço significativo em correções de bugs e melhorias de desempenho, preparando o caminho para uma versão final robusta. Espere melhorias interessantes na versão final.

Desenvolvimento Camada de Compatibilidade

Terminando com Tarefas Longas: Dominando Loops Assíncronos para o Desempenho da Web

2025-01-04
Terminando com Tarefas Longas: Dominando Loops Assíncronos para o Desempenho da Web

Este artigo aprofunda a otimização de loops JavaScript para evitar o bloqueio da thread principal e melhorar o desempenho da web. O autor destaca que o uso de loops `for...of` ou métodos como `forEach` diretamente em arrays grandes pode criar tarefas longas, levando a uma experiência de usuário lenta. A solução envolve o uso de `scheduler.yield` ou `setTimeout(0)` com `async/await` para dividir tarefas longas em tarefas menores, cedendo o controle após cada iteração para manter a capacidade de resposta. O artigo explora ainda estratégias de processamento em lote e otimização da taxa de quadros para equilibrar a capacidade de resposta e a eficiência do processamento. Por fim, recomenda-se a escolha de um tamanho e estratégia de lote apropriados com base nas necessidades específicas do aplicativo para uma experiência de usuário ideal.

Implementando um Gerador de Números Pseudoaleatórios com XORSHIFT32

2025-01-04

Este devlog detalha a implementação de um gerador de números pseudoaleatórios (PRNG) usando o algoritmo XORSHIFT32. O autor usa 1804289383 como estado inicial, um número previamente usado em outras implementações de engine. A implementação é direta, envolvendo deslocamentos de bits no estado inicial. O código define o estado inicial e inclui uma função `getRandomNumber()` que executa o algoritmo XORSHIFT32.

Sintaxe Transcendental: Construindo Abstrações Lógicas a partir de uma Linguagem de Baixo Nível

2025-01-04
Sintaxe Transcendental: Construindo Abstrações Lógicas a partir de uma Linguagem de Baixo Nível

Este projeto GitHub implementa a 'Sintaxe Transcendental' de Jean-Yves Girard, um método para construir abstrações lógicas a partir de uma linguagem de baixo nível, agnóstica à lógica. Ele usa uma linguagem base chamada 'resolução estelar', onde os objetos elementares (programas) são 'constelações'. Essas constelações são usadas em uma linguagem de nível superior, 'Stellogen' (uma linguagem de metaprogramação para constelações), para definir provas e fórmulas. O projeto está em desenvolvimento, com o guia atualmente disponível apenas em francês.

Desenvolvimento lógica metaprogramação

Weird: Construindo sua Casa Digital

2025-01-04
Weird: Construindo sua Casa Digital

Na era digital, frequentemente alugamos espaços virtuais em plataformas gigantes como Facebook e GitHub, perdendo a verdadeira soberania digital. O projeto Weird visa mudar isso, oferecendo hospedagem gratuita de sites, permitindo que você possua seu próprio domínio e site, construindo uma casa digital segura e personalizada. Com listas simples de links, você pode participar do grafo de conhecimento social e estabelecer sua identidade digital. Embora ainda esteja em fase de testes iniciais, o Weird está melhorando constantemente e eventualmente oferecerá recursos como Web Passports e logins ATProto.

Desenvolvimento domínio
1 2 193 194 195 197 199 200 201 214 215