Category: Desenvolvimento

PNGs mais rápidos: Explorando Zstandard e LZ4 como alternativas

2025-08-06
PNGs mais rápidos: Explorando Zstandard e LZ4 como alternativas

Tempos lentos de leitura e gravação são um problema conhecido com PNGs. Esta publicação sugere o uso de codecs mais novos, de código aberto e sem patentes, como Zstandard (do Facebook) ou LZ4 como solução. O Zstandard já é usado no formato de textura de GPU Khronos KTX2, oferecendo melhorias significativas de velocidade. O autor também menciona codecs ainda mais rápidos e simples, como o QOI, mas esses podem exigir alterações no pré-processamento de imagens.

Desenvolvimento

Identificando JSON, certificados e chaves privadas codificados em Base64 a olho nu

2025-08-06
Identificando JSON, certificados e chaves privadas codificados em Base64 a olho nu

Um desenvolvedor, examinando um arquivo supostamente criptografado para um commit seguro no Github, descobriu uma string JSON codificada em Base64 dentro dele. Um colega apontou este padrão. Surpreendentemente, eles descobriram que certificados e chaves privadas codificados em Base64 também possuem características semelhantes facilmente detectáveis, como certificados muitas vezes começando com "LS". Essa dica simples ajuda os desenvolvedores a identificar rapidamente informações sensíveis e evitar acidentalmente o commit de segredos, como chaves, para repositórios públicos.

Desenvolvimento

Podridão de Software: É o software ou o ambiente?

2025-08-06

A podridão de software é geralmente atribuída à degradação do software devido a um ambiente em mudança. Um programa de uma década atrás pode não funcionar com bibliotecas mais novas devido à incompatibilidade. Uma abordagem melhor concentra-se na confiabilidade das dependências do software. Construir em plataformas estáveis como DOS ou NES, com especificações estáticas, evita a manutenção constante. Inversamente, software construído para plataformas em constante evolução como o Linux pode deixar de funcionar após uma década ou duas, exigindo extensa arqueologia de mídia para restaurar.

Construa seu próprio Lisp em 1000 linhas de código C

2025-08-05

Aprenda C e crie seu próprio interpretador Lisp em apenas 1000 linhas de código! Este livro o guiará pelo processo, ensinando programação em C, as intrincasidades do Lisp e como escrever código conciso e elegante. Disponível gratuitamente online ou para compra em formatos impressos e de e-book.

Desenvolvimento

Clojure Civitas: Um Espaço Compartilhado para Ideias Clojure

2025-08-05
Clojure Civitas: Um Espaço Compartilhado para Ideias Clojure

O Clojure Civitas simplifica a publicação de projetos Clojure. Sem precisar configurar novos projetos, blogs ou repositórios, basta fazer um fork deste repositório, criar um namespace, codificar, confirmar e enviar um pull request para compartilhar suas explorações e ideias. Ele suporta vários formatos de saída, incluindo comentários, gráficos, Markdown e Hiccup, facilitando a documentação de experimentos, o compartilhamento de descobertas e a construção de uma base de conhecimento. A plataforma incentiva contribuições da comunidade e fornece ferramentas de visualização e compartilhamento fácil, tornando sua jornada Clojure mais suave e eficiente.

Linguagens de Programação: Escolhendo a Ferramenta Certa para o Trabalho

2025-08-05
Linguagens de Programação: Escolhendo a Ferramenta Certa para o Trabalho

Linguagens de programação, como meios artísticos, influenciam sutilmente o estilo de codificação. Os opcionais do Swift encorajam o tratamento cuidadoso de erros, enquanto o verificador de empréstimo do Rust promove o tratamento abrangente de erros. Isso é benéfico para sistemas de produção, mas pode ser complicado para scripts ou protótipos. O autor sugere escolher um estilo de codificação com base no propósito e na vida útil do código; para prototipagem rápida, a flexibilidade é preferível à adesão estrita às melhores práticas. O artigo usa a analogia do desenho a carvão e a lápis para destacar a importância de combinar a escolha da linguagem de programação e o estilo de codificação às necessidades do projeto. A chave é a intencionalidade.

Desenvolvimento

DrawAFish.com: Um desastre de segurança causado por erros bobos

2025-08-05
DrawAFish.com: Um desastre de segurança causado por erros bobos

DrawAFish.com, um site que brevemente atingiu o topo do Hacker News, experimentou um desastre de segurança devido a uma série de erros amadores. Uma senha de administrador de seis dígitos desatualizada exposta em um vazamento de dados anterior, uma API de atualização de nome de usuário não autenticada e um JWT não vinculado a um usuário específico permitiram que atores maliciosos vandalizassem o site em poucas horas. Os nomes de usuário foram alterados para insultos e imagens de peixes foram substituídas. O autor resolveu o problema restaurando de backups e corrigindo vulnerabilidades, refletindo sobre o equilíbrio entre desenvolvimento rápido e segurança.

Desenvolvimento desenvolvimento rápido

O Operador Pipe do PHP 8.5: Uma Década em Desenvolvimento, Evolução de Código Elegante

2025-08-05
O Operador Pipe do PHP 8.5: Uma Década em Desenvolvimento, Evolução de Código Elegante

O PHP 8.5 trará um recurso aguardado há muito tempo: o operador pipe (|>). Este recurso, embora aparentemente simples, é poderoso, encadeando chamadas de funções, simplificando o código e melhorando a legibilidade, semelhante aos pipes do Unix. Após anos de desenvolvimento e várias iterações, desde suas origens na linguagem Hack até sua implementação final, ele incorpora conceitos de programação funcional, permitindo chamadas em cadeia e brilhando em contextos como instruções match. Melhorias futuras no PHP incluem a exploração de aplicação parcial de funções e operadores de composição de funções, aumentando ainda mais a eficiência e a expressividade do código.

Desenvolvimento Operador Pipe

Problema dos Generais Bizantinos: Uma Implementação Prática

2025-08-05
Problema dos Generais Bizantinos: Uma Implementação Prática

Este artigo implementa um algoritmo distribuído clássico: o Problema dos Generais Bizantinos. Este problema simula um cenário em que um grupo de generais precisa chegar a um consenso na presença de traidores. O autor implementa a solução de mensagens orais de Lamport usando Python e Flask, demonstrando como o consenso pode ser alcançado em um sistema com N nós e até M traidores, quando N≥3M+1. O artigo detalha o fluxo do algoritmo, os caminhos das mensagens e as estratégias de tratamento de traidores. Analisa a complexidade e as limitações, implementando finalmente um sistema funcional para validar a correção teórica. O autor também observa as dificuldades encontradas ao usar LLMs para implementar o algoritmo.

Testes de Simulação Determinística em Rust: Uma Abordagem de Máquina de Estados

2025-08-05
Testes de Simulação Determinística em Rust: Uma Abordagem de Máquina de Estados

A equipe Polar Signals compartilha sua experiência na construção de um novo banco de dados Rust com uma arquitetura de máquina de estados que coloca os testes de simulação determinística (DST) em primeiro plano. Diferentemente de seu banco de dados Go anterior, FrostDB, o novo banco de dados evita controlar o planejador existente e, em vez disso, usa um modelo de máquina de estados em que todos os componentes principais são escritos como máquinas de estados de thread único que se comunicam por meio de um barramento de mensagens. Essa abordagem fornece controle completo sobre concorrência, tempo, aleatoriedade e injeção de falhas, simplificando bastante a implementação do DST e descobrindo dois bugs críticos. Embora essa abordagem exija sobrecarga cognitiva extra, ela resulta em um raciocínio mais preciso sobre o comportamento do sistema e código mais confiável.

Transformação do Tmux: De Patinho Feio a Cisne

2025-08-05
Transformação do Tmux: De Patinho Feio a Cisne

Este artigo detalha a jornada do autor na personalização do tmux. Inicialmente sobrecarregado pela interface do usuário padrão, ele cuidadosamente elaborou um ambiente de terminal visualmente atraente e eficiente, modificando o arquivo `.tmux.conf` e utilizando um gerenciador de plug-ins. O guia cobre o remapeio de teclas, ajustes do buffer de rolagem, estilo de tema e gerenciamento de plug-ins, culminando em um arquivo de configuração completo para aprimorar sua experiência com o tmux.

Unikernels: Sua Vila de Aplicativos Privada

2025-08-05
Unikernels: Sua Vila de Aplicativos Privada

Já imaginou um ambiente de aplicativo só para você, como uma villa particular em uma ilha isolada? Unikernels oferecem exatamente isso - máquinas virtuais compactas para um único aplicativo, aumentando a velocidade, eficiência e segurança. Este artigo mergulha no que são unikernels, explora diferentes tipos (com foco em Nanos), detalha seus benefícios e limitações e fornece um guia passo a passo para implantar um aplicativo Nanos simples na AWS. Embora o desenvolvimento de unikernel apresente algumas complexidades e o ecossistema ainda esteja crescendo, sua natureza leve e vantagens de desempenho os tornam muito promissores para microsserviços e outros cenários com recursos limitados.

Desenvolvimento

A Transformação Schwartziana: Uma Epopeia da Programação

2025-08-05
A Transformação Schwartziana: Uma Epopeia da Programação

Este artigo narra a fascinante história da Transformação Schwartziana. Ela começou em 1994 com um código conciso de Randal Schwartz no Usenet, projetado para otimizar algoritmos de classificação. Este código tornou-se lendário por sua elegância e pelo impacto que teve nos programadores Perl na época, gerando debates sobre legibilidade de código, programação funcional e a natureza da própria linguagem Perl. Embora inicialmente não nomeada por Schwartz, a técnica acabou recebendo seu sobrenome, aparecendo em numerosos livros de Perl e se estabelecendo como um algoritmo clássico. O artigo também explora variações, como a Manobra Orcish de Joseph Hall, e sua aplicação em diversas linguagens de programação.

Desenvolvimento

Desenhos 3D realistas a partir de Splats Gaussianos 3D

2025-08-05

Esta publicação detalha um método para criar desenhos 3D realistas, aumentando o processo de splatting gaussiano 3D. O autor combina a técnica de splatting gaussiano 3D de Kerbl et al. com um método para transformar fotografias em desenhos informativos de Chan et al. Ao trocar os desenhos de linha gerados pelas imagens originais e treinar por 21.000 iterações em uma Nvidia RTX 4080S, o autor obtém vários estilos (contorno, anime, etc.) de renderização de desenho de linha 3D. Experimentos exploram a mistura de informações de cor, a junção de cenas e a segmentação de imagens para melhorar o efeito e criar resultados visuais diversos. Os resultados mostram que este método gera desenhos 3D realistas e detalhados, mas as cenas de desenho de linha são aproximadamente o dobro do tamanho de suas cenas originais.

Desenvolvimento

Carbon: Um Sistema Operacional de Código Aberto para Manufatura – Desafiando o Status Quo do ERP

2025-08-05
Carbon: Um Sistema Operacional de Código Aberto para Manufatura – Desafiando o Status Quo do ERP

Carbon é um sistema operacional de código aberto para manufatura, projetado para resolver as deficiências dos sistemas ERP existentes: falta de ferramentas modernas, travamento de fornecedores e ausência de uma solução 'universal'. Ele possui uma arquitetura priorizando APIs, permitindo que os usuários expandam a plataforma por meio do desenvolvimento de aplicativos personalizados com blocos de construção e ferramentas prontamente disponíveis. Construído usando Turborepo para gerenciamento eficiente de monorepo, o Carbon integra-se a serviços como Supabase, Redis e Stripe. A instalação e implantação são otimizadas por meio de instruções de linha de comando, e o código de exemplo facilita a rápida integração.

Desenvolvimento

Campanha de phishing contínua visa desenvolvedores de extensões do Firefox

2025-08-04
Campanha de phishing contínua visa desenvolvedores de extensões do Firefox

A Mozilla está alertando sobre uma campanha de phishing em andamento que visa desenvolvedores de extensões do Firefox. Os atacantes se passam pela Mozilla ou AMO (addons.mozilla.org), enganando os desenvolvedores para que cliquem em links maliciosos para supostamente atualizar suas contas, ameaçando a perda de acesso caso contrário. O objetivo é provavelmente comprometer contas de desenvolvedores confiáveis para distribuir extensões maliciosas projetadas para roubar frases de sementes de criptomoedas. Pesquisadores de segurança destacam o surgimento constante de tais extensões maliciosas. A Mozilla reconhece o papel das extensões em golpes de criptomoedas e está melhorando a detecção, mas os desenvolvedores maliciosos estão constantemente se adaptando.

Desenvolvimento

Conflito entre Alocadores de Memória Rust e C: Um Desastre Silencioso

2025-08-04
Conflito entre Alocadores de Memória Rust e C: Um Desastre Silencioso

Este artigo relata a experiência de um programador com uma pergunta de entrevista sobre gerenciamento de memória envolvendo Rust e C, o que desencadeou um mergulho profundo nas complexidades da interoperabilidade de alocadores. Construindo uma estrutura de teste abrangente, o autor explora experimentalmente a mistura de diferentes alocadores, descobrindo que essa mistura frequentemente resulta em corrupção silenciosa de memória. O artigo mergulha nos conceitos subjacentes de memória virtual, estrutura de heap e arquitetura de cache da CPU, analisando as características do alocador e, finalmente, resumindo os riscos e estratégias de depuração envolvidas na mistura de alocadores. As descobertas destacam a natureza insidiosa da corrupção silenciosa de memória, onde a execução aparentemente bem-sucedida mascara vulnerabilidades subjacentes.

Desenvolvimento

ScreenCoder: Avançando na Geração de Código Visual para Automação de Front-End por Meio de Agentes Multimodais Modulares

2025-08-04
ScreenCoder: Avançando na Geração de Código Visual para Automação de Front-End por Meio de Agentes Multimodais Modulares

ScreenCoder é um sistema inteligente de geração de código UI para código que transforma qualquer captura de tela ou maquete de design em código HTML/CSS limpo e pronto para produção. Construído com uma arquitetura multiagente modular, ele combina compreensão visual, planejamento de layout e síntese de código adaptativa para produzir código front-end preciso e editável. Também suporta modificações personalizadas, permitindo que desenvolvedores e designers ajuste facilmente o layout e o estilo. Se você está criando protótipos rapidamente ou construindo interfaces pixel perfect, o ScreenCoder preenche a lacuna entre design e desenvolvimento - basta copiar, personalizar e implantar.

Desenvolvimento

Por que abandonei o NixOS depois de um ano

2025-08-04

Após um ano usando o NixOS, o autor voltou para o Arch Linux. O artigo detalha a curva de aprendizado íngreme e as complexidades de configuração encontradas. Embora o NixOS ofereça reprodutibilidade e consistência, o autor descobriu que essas vantagens não compensavam o aumento do custo de tempo e os desafios de depuração no uso diário. A conclusão: para usuários que não precisam de reprodutibilidade extrema, a complexidade adicional do NixOS não vale a pena.

Desenvolvimento

PHP com 30 anos: Da zombaria ao sucesso

2025-08-04
PHP com 30 anos: Da zombaria ao sucesso

PHP e JavaScript, ambos nascidos em 1995, passaram de obscuros para amplamente utilizados, apenas para enfrentar a zombaria de autoproclamados programadores 'sérios'. Apesar das críticas, a facilidade de uso e a ampla aplicação do PHP consolidaram seu papel como base para a grande maioria dos sites do mundo. Agora, com o surgimento do FrankenPHP, o PHP está pronto para uma ressurgência.

Desenvolvimento

A Linguagem Ideal de Arrays para 2025: Uma Resposta à Heterogeneidade de Hardware

2025-08-04

As suposições tradicionais de linguagens de programação não se aplicam mais diante do hardware cada vez mais heterogêneo (multi-core, multinodo, GPUs, FPGAs, etc.). Esta postagem explora o design de uma linguagem de arrays ideal, enfatizando o polimorfismo de classificação, a capacidade de escrever kernels diretamente e a semântica de valor com gerenciamento automático de buffer. O autor argumenta que um modelo de programação de arrays funcional e não tamponado, aliado à infraestrutura de compilador como MLIR, melhor aproveita as capacidades de hardware. A experiência do usuário é aprimorada por meio de relatórios amigáveis de otimização do compilador. Fortran e APL são citadas como linguagens inspiradoras.

Os Riscos e Melhores Práticas da Codificação Assistida por IA

2025-08-04
Os Riscos e Melhores Práticas da Codificação Assistida por IA

Na era da codificação assistida por IA cada vez mais difundida, confiar cegamente no código gerado por IA pode levar a riscos significativos. Este artigo destaca que negligenciar a revisão do código gerado por IA pode resultar em deterioração arquitetônica, perda de compreensão da implementação do código e introdução de vulnerabilidades de segurança. O autor aconselha os desenvolvedores a diferenciar entre tarefas assíncronas e síncronas, empregando uma abordagem de codificação colaborativa síncrona para funcionalidades principais — verificando e corrigindo instantaneamente as sugestões da IA para garantir a qualidade e segurança do código. Em última análise, o autor enfatiza que a IA é uma ferramenta auxiliar do desenvolvedor, não uma substituição, e a compreensão do código permanece a responsabilidade principal dos desenvolvedores.

Desenvolvimento Arquitetura de software

KDE Plasma Aperfeiçoa o Gerenciamento de Foco do Wayland para Evitar Roubo de Foco

2025-08-04
KDE Plasma Aperfeiçoa o Gerenciamento de Foco do Wayland para Evitar Roubo de Foco

O gerenciador de janelas KWin do KDE Plasma está aprimorando o gerenciamento de foco de janela do Wayland. Anteriormente, o roubo de foco no X11 era frustrante e até mesmo um risco de segurança. O Wayland usa o protocolo XDG Activation para mitigar isso, mas alguns aplicativos ainda o violam. A nova configuração de prevenção de roubo de foco "Extrema" do KWin exigirá o uso de tokens válidos para a ativação da janela, eliminando o roubo de foco e melhorando a experiência do usuário. Esta atualização corrige problemas de foco em aplicativos como Dolphin e KRunner e melhora o gerenciamento de tokens de ativação do DBusRunner de back-end.

Desenvolvimento

arXivLabs: Colaboração da comunidade em recursos do arXiv

2025-08-04
arXivLabs: Colaboração da comunidade em recursos do arXiv

arXivLabs é uma plataforma que permite que desenvolvedores criem e compartilhem novos recursos diretamente no site do arXiv. Os participantes devem adotar os valores do arXiv de abertura, comunidade, excelência e privacidade dos dados do usuário. Tem uma ideia para melhorar a comunidade arXiv? Saiba mais sobre o arXivLabs.

Desenvolvimento

Anti-aliasing de SDFs: Mais complicado do que parece

2025-08-04
Anti-aliasing de SDFs: Mais complicado do que parece

Este artigo mergulha nas complexidades do anti-aliasing de campos de distância com sinal (SDFs). Embora pareça simples, o processo envolve várias considerações, incluindo gradientes, largura da zona de transição, espaços de coordenadas e escolhas de espaço de cores. Ele explica o uso de interpolação linear e funções smoothstep para anti-aliasing de SDFs, compara diferentes abordagens e fornece soluções práticas usando tamanho de pixel, derivadas numéricas e vários espaços de cores.

Desenvolvimento

arXivLabs: Experimentos com Colaboração da Comunidade

2025-08-04
arXivLabs: Experimentos com Colaboração 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

gmap: Explorador de repositórios Git na linha de comando

2025-08-04
gmap: Explorador de repositórios Git na linha de comando

gmap é uma ferramenta poderosa de linha de comando que fornece uma maneira rápida e intuitiva de analisar a atividade do repositório Git. Visualize o histórico de commits com mapas de calor, identifique arquivos com alta rotatividade, explore a dinâmica dos contribuidores e muito mais. Responda a perguntas cruciais como 'quais arquivos mudam mais?', 'quem contribuiu mais?' e 'existem áreas de código inativas?' — tudo sem comandos complexos. É um impulsionador de eficiência para desenvolvedores.

Desenvolvimento

Configurando BorgBackup e borgmatic para backups no macOS

2025-08-04

Este artigo detalha como configurar as ferramentas de backup BorgBackup e borgmatic no macOS. Ele explica como criar um LaunchAgent usando launchctl para agendar o borgmatic e como solucionar suas limitações de registro. São fornecidos métodos para restaurar arquivos, exportar chaves, validar backups e testar backups. O autor compara o BorgBackup e o Time Machine, sugerindo o uso de ambos e seguindo a regra de backup 3-2-1 para proteção robusta de dados.

Desenvolvimento

IOCCC 28: 23 Vencedores quebrando recordes!

2025-08-04

Após um hiato de quatro anos, o 28º Concurso Internacional de Código C Ofuscado (IOCCC) retornou com estrondo, apresentando 23 trabalhos vencedores, um recorde! O concurso teve um aumento significativo na quantidade e na qualidade das submissões. Melhorias significativas foram feitas no site, no processo de julgamento e nas ferramentas, resultando em um período de julgamento simplificado de apenas 33 dias. As entradas vencedoras mostraram uma criatividade impressionante, incluindo o menor motor de inferência LLM do mundo, um emulador Intel 4004 e uma variedade de técnicas de código alucinantes. Os organizadores incentivam a participação contínua e a inovação para concursos futuros.

Desenvolvimento

Arch Linux adicionado ao diretório url.town

2025-08-04
Arch Linux adicionado ao diretório url.town

O url.town, um diretório web organizado pela comunidade omg.lol, adicionou o Arch Linux. O Arch Linux é uma distribuição GNU/Linux leve, flexível e DIY (faça você mesmo) de uso geral, onde os usuários só obtêm o que instalam. O diretório também apresenta uma ampla gama de outros recursos, abrangendo blogs, jogos, arte, notícias de tecnologia e muito mais.

Desenvolvimento Distribuição Linux
1 2 16 17 18 20 22 23 24 200 201