Category: Desenvolvimento

Incus: Contêineres de sistema vs. Máquinas virtuais – Um mergulho profundo

2025-08-28
Incus: Contêineres de sistema vs. Máquinas virtuais – Um mergulho profundo

O Incus suporta dois tipos de instâncias: contêineres de sistema e máquinas virtuais. Os contêineres de sistema usam recursos do kernel do Linux para isolamento, são apenas para Linux e consomem menos recursos. As máquinas virtuais usam virtualização de hardware para isolamento, permitindo diferentes sistemas operacionais, mas consumindo mais recursos. Contêineres de aplicativos (como o Docker) empacotam aplicativos únicos, enquanto os contêineres de sistema simulam um sistema operacional completo, adequado para vários aplicativos e criação de espaços de usuário separados. Escolha contêineres de sistema para melhor desempenho e tamanho menor se toda a funcionalidade for compatível com o kernel do host; caso contrário, use máquinas virtuais.

Desenvolvimento

Forth revisitado: Duas implementações e reflexões sobre uma linguagem peculiar

2025-08-28

O autor revisita a linguagem Forth, pela primeira vez encontrada há 20 anos. Ao longo de dois meses, ele implementou dois interpretadores Forth: goforth (em Go) e ctil (em C). O goforth, um interpretador puro, é simples, mas carece de recursos avançados. O ctil, mais próximo de uma implementação Forth tradicional, permite a extensão da linguagem usando o próprio Forth, mostrando seu poder. O autor argumenta que os pontos fortes únicos do Forth residem em seu contexto de hardware antigo. No entanto, seu modelo baseado em pilha o torna menos legível e menos prático em contextos modernos, sendo mais adequado como um projeto de aprendizagem para entender princípios de compiladores e máquinas virtuais.

Cactoide: Gerenciamento de Eventos Sem Esforço

2025-08-28
Cactoide: Gerenciamento de Eventos Sem Esforço

Cactoide é uma plataforma de RSVP para eventos mobile-first que permite criar eventos, compartilhar URLs exclusivas e coletar RSVPs sem nenhum registro. Recursos incluem criação instantânea de eventos, compartilhamento com um clique, clareza tudo-em-um, nenhum cadastro necessário, limites inteligentes e simplicidade sem esforço. Projetado para otimizar a coordenação e tornar os eventos vibrantes e inesquecíveis. O projeto é open-source com instruções de configuração detalhadas.

Desenvolvimento

bookmarks.txt: Gerenciador de favoritos baseado em texto simples

2025-08-28
bookmarks.txt: Gerenciador de favoritos baseado em texto simples

bookmarks.txt oferece uma abordagem simplificada para gerenciamento de favoritos usando arquivos de texto simples. URLs de favoritos são armazenadas em arquivos chamados bookmarks.txt, com um formato simples: um URL por linha, opcionalmente incluindo um título (separado por espaço). Um arquivo global de favoritos reside em $HOME/bookmarks.txt, enquanto favoritos específicos do projeto podem ser armazenados em arquivos bookmarks.txt locais. O projeto inclui um script, bin/bookmarks, para listar e adicionar favoritos, mas a construção de ferramentas personalizadas também é encorajada. Combinado com fzf, ele fornece uma poderosa funcionalidade de pesquisa fuzzy e abertura. Esta solução leve e personalizável prioriza simplicidade e extensibilidade.

Desenvolvimento gerenciamento de favoritos

Migração do repositório Bitnami Docker: atualização de segurança ou paywall?

2025-08-28
Migração do repositório Bitnami Docker: atualização de segurança ou paywall?

A Bitnami está migrando seu repositório público de imagens Docker para um novo repositório Bitnami Legacy e lançando gradualmente as imagens Bitnami Secure Images (BSI) mais seguras. A migração será feita em fases, com interrupções temporárias do serviço de imagens. Os usuários podem optar por migrar para o BSI (parcialmente gratuito, mas a funcionalidade completa requer uma assinatura paga) ou para o repositório Bitnami Legacy (solução temporária, com riscos de segurança). A Bitnami explica essa mudança como um esforço para melhorar a segurança e lidar com a crescente ameaça de vulnerabilidades de software de código aberto e novos regulamentos. No entanto, essa mudança também gerou controvérsia, com alguns argumentando que é uma estratégia para mudar de serviços gratuitos para serviços pagos.

Desenvolvimento

Pacotes nx maliciosos no npm: Roubo de credenciais e desligamento do sistema

2025-08-27
Pacotes nx maliciosos no npm: Roubo de credenciais e desligamento do sistema

Várias versões do pacote npm 'nx' (incluindo 21.5.0, 20.9.0, etc.) foram comprometidas maliciosamente. Um atacante usou um token npm roubado para publicar pacotes contendo código que escaneia o sistema de arquivos do usuário, coleta credenciais (GitHub, senhas do sistema, etc.) e carrega essas informações para um repositório GitHub na conta do usuário. O código malicioso também modifica os arquivos `.zshrc` e `.bashrc` do usuário para executar `sudo shutdown -h 0` ao iniciar o terminal, potencialmente desligando o sistema. Os usuários afetados devem atualizar imediatamente seu pacote 'nx' para a versão mais recente e verificar seu GitHub para repositórios comprometidos. A Nx removeu os pacotes maliciosos e implementou medidas de segurança aprimoradas, incluindo 2FA obrigatório e o novo mecanismo Trusted Publisher para todos os pacotes npm.

Desenvolvimento

OOP em C: Serviços do Kernel via Ponteiros de Função

2025-08-27
OOP em C: Serviços do Kernel via Ponteiros de Função

Este artigo descreve como o autor implementou um mecanismo de tabela virtual (vtable) em seu kernel de sistema operacional usando ponteiros de função e structs em C, imitando a programação orientada a objetos. Essa abordagem permite a gerência unificada de serviços do kernel, como iniciar, parar e reiniciar, e permite mudanças flexíveis na política de escalonamento sem modificação extensa de código. O autor explica a implementação e aplicação de vtables com exemplos de drivers de dispositivo e gerenciamento de serviços, discutindo as vantagens e desvantagens. Embora a sintaxe em C leve a um código um pouco verboso, este método aumenta a legibilidade e a manutenibilidade, melhorando a flexibilidade e a extensibilidade do kernel.

Desenvolvimento

Classificador de Imagens TensorFlow Lite em Delphi

2025-08-27
Classificador de Imagens TensorFlow Lite em Delphi

Este código Delphi implementa um classificador de imagens simples usando TensorFlow Lite. Ele carrega um arquivo de modelo, pré-processa dados de imagem do componente Image1 e alimenta os dados a um interpretador TensorFlow Lite para inferência. Os resultados da inferência, probabilidades para cada classe, são exibidos em um componente ListView1. O código inclui tratamento de erros e mecanismos de liberação de recursos para estabilidade.

Desenvolvimento Classificação de Imagens

Alerta: Kit de Construção nx Malicioso Rouba Chaves do GitHub

2025-08-27
Alerta: Kit de Construção nx Malicioso Rouba Chaves do GitHub

Um comando malicioso de pós-instalação no popular kit de construção nx foi descoberto, criando um repositório com o prefixo 's1ngularity-repository' nas contas do GitHub dos usuários afetados. Este malware rouba carteiras, chaves de API e variáveis de ambiente, armazenando-as em um arquivo codificado em base64. De forma inteligente, ele utiliza LLMs como Claude Code CLI ou Gemini CLI para transferir grande parte de seu código identificável para um prompt, tornando a detecção mais difícil. As versões afetadas do nx foram removidas do npm. Os usuários devem verificar imediatamente suas contas do GitHub, atualizar o nx para a versão segura mais recente e girar quaisquer segredos comprometidos.

Desacelerando programas intencionalmente: um aumento surpreendente na precisão das ferramentas de desenvolvedor

2025-08-27
Desacelerando programas intencionalmente: um aumento surpreendente na precisão das ferramentas de desenvolvedor

A maior parte da pesquisa sobre desempenho de linguagem de programação concentra-se em acelerar programas, mas um novo estudo explora os benefícios de desacelerá-los intencionalmente. Ao inserir instruções NOP ou MOV em blocos básicos de programas, os pesquisadores alcançaram um controle preciso sobre a execução do programa, levando a uma detecção mais precisa de condições de corrida, simulação de aceleração e avaliação da precisão do analisador de desempenho. Experimentos em um Intel Core i5-10600 mostraram que as instruções NOP e MOV são as mais adequadas para esse fim, abrindo novas possibilidades para ferramentas de desenvolvedor avançadas no futuro.

Desenvolvimento perfis

QEMU 10.1 Lançado: Suporte a Arquiteturas Aprimorado e Melhorias de Desempenho

2025-08-27

O QEMU 10.1 foi lançado, trazendo suporte aprimorado para múltiplas arquiteturas, incluindo RISC-V, Arm e x86, além de melhorias significativas de desempenho. Foram adicionados novos conjuntos de instruções (SME2, SVE2, etc.), juntamente com novos modelos de placa e recursos de virtualização. Funcionalidades existentes também foram atualizadas, como a emulação aprimorada de exceções de ponto flutuante, operações otimizadas de dispositivos de bloco e aumento do desempenho de rede. Notavelmente, o suporte ao Rust foi aprimorado, mas permanece experimental.

Desenvolvimento Emulador de Sistema

Monodraw: Requisitos do sistema e perguntas frequentes

2025-08-27

O Monodraw requer macOS 11 Big Sur ou posterior. Versões mais antigas do macOS podem usar a v1.3 (macOS 10.10 Yosemite) ou a v1.5 (macOS 10.14 Mojave). A ferramenta de linha de comando só está incluída nas versões baixadas diretamente do nosso site e compradas na nossa loja, devido a restrições do sandbox da App Store. Feedback pode ser enviado por e-mail ou tweet @Monodraw. Seu endereço de e-mail não será compartilhado com terceiros; ele só será usado para atualizações importantes e notícias de produtos. Um kit de imprensa está disponível para download, e o preço educacional é oferecido. O Monodraw não coleta nenhum dado do usuário.

Desenvolvimento

FilterQL: Uma linguagem de consulta minúscula para filtrar dados estruturados

2025-08-27
FilterQL: Uma linguagem de consulta minúscula para filtrar dados estruturados

FilterQL é uma linguagem de consulta leve para filtrar dados estruturados. Ela consiste em uma biblioteca TypeScript e uma especificação de linguagem, com implementações em outras linguagens sendo bem-vindas. Os usuários definem um esquema para seus dados e, em seguida, usam uma sintaxe concisa para filtrar, classificar e limitar os resultados, como `genre == Action` ou `year >= 2008 && rating >= 8.5 | SORT rating desc`. O FilterQL suporta uma variedade de operadores de comparação e lógicos e permite operações personalizadas para estender suas capacidades.

Desenvolvimento

WebLibre: Navegador focado em privacidade entra em fase Alpha

2025-08-27
WebLibre: Navegador focado em privacidade entra em fase Alpha

WebLibre é um projeto de navegador independente construído sobre o mecanismo Gecko da Mozilla e os componentes Android da Mozilla. Ele oferece um navegador da web completo com suporte para complementos móveis do Firefox, priorizando a privacidade e a usabilidade. Atualmente em fase alfa, espere atualizações frequentes, bugs e mudanças importantes. Apenas as compilações do F-Droid são livres de dependências do Google.

Na Era da IA, Ferramentas Adaptáveis Vencem

2025-08-27
Na Era da IA, Ferramentas Adaptáveis Vencem

Na era da IA, o sucesso não depende de se adaptar às ferramentas, mas sim de as ferramentas se adaptarem a você. O artigo contrasta Linear, uma ferramenta rígida, com Fibery, uma ferramenta flexível, ilustrando seus destinos divergentes. A inflexibilidade do Linear limita a integração de IA, enquanto o Fibery utiliza LLMs para transformar configurações complexas em prompts simples. Os LLMs mudam o foco do design de soluções para a definição de problemas; os usuários descrevem as necessidades em linguagem natural, e a IA cuida da implementação. Isso destaca o poder do software maleável, onde a configuração se torna rápida e fácil, permitindo que os usuários se adaptem às necessidades em evolução, enquanto as ferramentas rígidas ficam para trás. O artigo prevê que o software maleável substituirá gradualmente as contrapartes rígidas nos próximos anos, tornando-se o paradigma dominante.

Desenvolvimento Software Maleável

Loops de Retorno Elegantes: Evitando Redundância e Suspensões Inesperadas

2025-08-27

O autor explora como escrever um loop de retorno elegante que limita claramente o número de tentativas, evita suspensões desnecessárias após a última tentativa, relata o erro original se a tentativa falhar e evita a duplicação de código. Várias abordagens são comparadas, decidindo-se por um loop `try while` com um limite superior para garantir a terminação, resolvendo problemas de limites e potenciais loops infinitos em soluções anteriores. Embora a solução final não seja perfeita, representa uma melhoria significativa na brevidade e robustez em relação às tentativas anteriores.

Desenvolvimento

Async: Fluxo de trabalho de codificação colaborativa com IA

2025-08-27
Async: Fluxo de trabalho de codificação colaborativa com IA

Async é uma ferramenta de desenvolvedor de código aberto que combina codificação de IA, gerenciamento de tarefas e revisão de código em um fluxo de trabalho simplificado. Integrando Claude Code, Linear e GitHub PRs, ele pesquisa automaticamente tarefas de codificação, executa alterações de código na nuvem e divide o trabalho em subtarefas revisáveis, gerenciando todo o fluxo de trabalho, de problemas do GitHub a PRs mesclados. O Async se destaca com bases de código maduras, impondo planejamento antecipado, eliminando a troca de contexto, simplificando o rastreamento de tarefas e fornecendo revisão de código integrada. Construído com FastAPI, Claude Code e Google Cloud Platform, ele suporta desktop e dispositivos móveis.

Desenvolvimento

LiteLLM: Contratação de Engenheiro Full-Stack Fundador

2025-08-27
LiteLLM: Contratação de Engenheiro Full-Stack Fundador

LiteLLM, um gateway LLM de código aberto com mais de 27.000 estrelas no GitHub, usado por empresas como NASA e Adobe, está se expandindo rapidamente e procura um engenheiro full-stack fundador. O cargo se concentra em unificar o formato para chamar mais de 100 APIs LLM (OpenAI, Azure, Bedrock, etc.) usando a especificação OpenAI, melhorando o desempenho e a confiabilidade da plataforma. A pilha de tecnologia inclui Python, FastAPI, JS/TS, Redis, Postgres e muito mais. Os candidatos devem ter 1 a 2 anos de experiência em desenvolvimento de back-end ou full-stack, estar confortáveis com a manutenção de infraestrutura de alto desempenho e serem apaixonados por código aberto.

Desenvolvimento

spaCy 3.8 Lançado: Aprimorando o NLP de Nível Industrial

2025-08-27
spaCy 3.8 Lançado: Aprimorando o NLP de Nível Industrial

O spaCy 3.8 foi lançado! Esta biblioteca avançada de Processamento de Linguagem Natural (PNL) para Python e Cython é construída com base em pesquisas de ponta e projetada para aplicações do mundo real. Com suporte para tokenização e treinamento em mais de 70 idiomas, ele possui velocidade e modelos de rede neural de última geração para tarefas como NER, classificação de texto e muito mais. Ele apresenta aprendizado de várias tarefas com transformadores pré-treinados como BERT, um sistema de treinamento pronto para produção e fácil empacotamento, implantação e gerenciamento de fluxo de trabalho. Consulte as notas de lançamento para obter detalhes sobre as melhorias.

Desenvolvimento

Regolith: Uma biblioteca Regex de tempo linear que previne ataques ReDoS

2025-08-27
Regolith: Uma biblioteca Regex de tempo linear que previne ataques ReDoS

Regolith é uma biblioteca TypeScript e JavaScript do lado do servidor, construída com Rust, para prevenir ataques de negação de serviço por expressão regular (ReDoS) usando um mecanismo de expressão regular linear. Ao contrário do RegExp padrão em TypeScript e JavaScript (que possui complexidade de tempo de pior caso exponencial), o Regolith possui complexidade de pior caso linear, mitigando efetivamente as vulnerabilidades ReDoS. Projetado como uma substituição direta para RegExp, ele minimiza o esforço de migração, permitindo que os desenvolvedores criem facilmente software resistente a ReDoS. Ainda em estágio inicial de desenvolvimento, o Regolith recebe contribuições da comunidade.

Desenvolvimento

rv: Um Gerenciador de Linguagem Ruby Revolucionário

2025-08-27

Após uma década trabalhando no Bundler, o autor finalmente criou a rv, um novo tipo de ferramenta de gerenciamento Ruby. A rv não apenas gerencia dependências de gems, mas também versões do Ruby, instalando Rubies pré-compilados para eliminar tempos longos de compilação. Mais importante ainda, a rv torna trivial a execução de qualquer script ou ferramenta Ruby, mesmo que exija uma versão diferente do Ruby. Inspirada em uv (uma ferramenta semelhante para Python), cargo e npm, a rv possui velocidade, confiabilidade e recursos inovadores como `rv tool run` e `rv tool install`, simplificando o gerenciamento de ambientes Ruby e aumentando dramaticamente a produtividade do desenvolvedor.

Desenvolvimento

Particionamento hash do PostgreSQL 20x mais rápido: ignorando pesquisas de catálogo

2025-08-27
Particionamento hash do PostgreSQL 20x mais rápido: ignorando pesquisas de catálogo

O particionamento hash do PostgreSQL incorre em sobrecarga de pesquisa de catálogo em aplicativos de alta taxa de transferência. Este artigo apresenta uma técnica de otimização que ignora as pesquisas de catálogo do PostgreSQL pré-calculando os índices de partição na camada do aplicativo. O uso da gem Ruby `pg_hash_func` ou a chamada direta das funções hash do PostgreSQL pode acelerar as consultas em mais de 20 vezes, reduzindo significativamente a latência. Essa abordagem é adequada para cenários críticos de desempenho e oferece mais opções para equilibrar simplicidade e desempenho.

Desenvolvimento Particionamento Hash

Engenharia Reversa da GPU Apple M1: Drivers de código aberto impulsionam os jogos Linux

2025-08-27

Em 2020, Hector Martin, um estudante de ciência da computação da Universidade de Toronto, iniciou o projeto Asahi Linux para trazer o Linux para o chip Apple M1. Colaborando com um engenheiro da Collabora, ele fez engenharia reversa da GPU do M1, gradualmente alcançando a aceleração gráfica e, finalmente, obtendo suporte completo para OpenGL 4.6, Vulkan 1.4 e OpenCL 3.0, permitindo jogos Proton. Isso não apenas desmentiu o mito de que o Vulkan não é adequado para hardware Apple, mas também contribuiu com um driver de alta qualidade para a comunidade de código aberto, melhorando drasticamente a experiência de jogos Linux no chip M1.

Verdades Incômodas sobre a Verificação de Desenvolvedores Android do Google

2025-08-27

Esta postagem de blog levanta preocupações sérias sobre o próximo programa de verificação de desenvolvedores Android do Google. Usando o exemplo do desenvolvedor do aplicativo ICEBlock, que enfrentou ameaças após revelar sua identidade, a postagem argumenta que o programa pode prejudicar desenvolvedores que precisam de anonimato. Cinco perguntas-chave são apresentadas: Como as necessidades legítimas de anonimato do desenvolvedor serão atendidas? Quais organizações da sociedade civil foram consultadas e quais foram os resultados? Como a política de privacidade do Google sobre o compartilhamento de informações pessoais deve ser interpretada? Como o programa lidará com keystores de depuração e nomes de pacotes duplicados comumente usados no desenvolvimento de aplicativos? Quais são as implicações para aqueles que estão aprendendo desenvolvimento Android? A postagem insta o Google a participar de discussões e fornece um formulário de feedback.

Desenvolvimento

arXivLabs: Colaboração da Comunidade no Desenvolvimento de Recursos do arXiv

2025-08-26
arXivLabs: Colaboração da Comunidade no Desenvolvimento de Recursos do arXiv

arXivLabs é uma nova estrutura colaborativa que permite que desenvolvedores criem e compartilhem novos recursos do arXiv diretamente no site do arXiv. Indivíduos e organizações que participam do arXivLabs abraçam os valores do arXiv 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 compartilham. Tem uma ideia para um projeto que beneficiará a comunidade do arXiv? Saiba mais sobre o arXivLabs!

Desenvolvimento

TTY Desmistificado: Um mergulho profundo no console Linux

2025-08-26

Este artigo fornece uma explicação abrangente do subsistema TTY do Linux. Traçando sua história desde os aparelhos de cotação de ações do século XIX até os terminais virtuais modernos, ele detalha os papéis dos drivers UART, disciplinas de linha, drivers TTY e tratamento de sinais. O artigo também abrange estados de processo, gerenciamento de trabalhos e sessões, controle de fluxo e E/S de bloqueio, usando diagramas e exemplos claros. Ele desvenda as complexidades do console Linux, oferecendo insights profundos para desenvolvedores e usuários avançados.

Desenvolvimento

O Método John McPhee: Um Mergulho Profundo na Escrita de Não-Ficção

2025-08-26

Este artigo detalha o processo de escrita do renomado autor John McPhee, enfatizando uma abordagem meticulosa e em várias etapas. Ele começa acumulando notas extensas de pesquisas e entrevistas, organizando-as cuidadosamente em grupos temáticos. A estrutura é então cuidadosamente elaborada antes do início da escrita propriamente dita. Isso evita o bloqueio do escritor e permite um processo de escrita mais suave e eficiente. O autor também compartilha sua adaptação do método McPhee, usando o modo org-mode do Emacs para um gerenciamento simplificado de notas.

Desenvolvimento Organização de Notas

O Fim do Gerenciamento de Certificados SSL (Como Conhecemos)

2025-08-26

Gerenciar certificados SSL está se tornando um pesadelo. O que já foi uma tarefa trimestral agora é uma luta semanal, impulsionada por requisitos de validação cada vez mais rigorosos e durações de certificados drasticamente reduzidas - até apenas 47 dias até 2029! Essa carga crescente está forçando as organizações a buscar gerenciamento de certificados integrado à plataforma ou alternativas gratuitas, como Let's Encrypt, potencialmente causando a ruptura do mercado de CA tradicional. O autor questiona se essas mudanças realmente melhoram a segurança ou simplesmente adicionam sobrecarga desnecessária para as equipes de TI já sobrecarregadas.

Alocação de Registradores de Varredura Linear: Lidando com Lacunas de Tempo de Vida

2025-08-26
Alocação de Registradores de Varredura Linear: Lidando com Lacunas de Tempo de Vida

Esta publicação detalha melhorias no algoritmo de alocação de registradores de varredura linear para lidar com lacunas de tempo de vida. O autor explica como essas lacunas surgem da redução do grafo de fluxo de controle a uma sequência linear de instruções, criando descontinuidades nos tempos de vida dos registradores virtuais. A solução envolve modificar a estrutura de dados de intervalo para suportar vários intervalos disjuntos, permitindo a identificação e exploração dessas lacunas. O algoritmo de varredura linear é então adaptado para considerar essas lacunas durante a atribuição de registradores, melhorando a utilização dos registradores. Isso aprimora a capacidade do compilador de alavancar os recursos de registradores, aumentando o desempenho do código.

1 2 4 6 7 8 9 198 199