Category: Desenvolvimento

Programador cria jogo pseudo-3D em Bash

2024-12-20
Programador cria jogo pseudo-3D em Bash

Um programador chamado izabera desenvolveu um impressionante jogo pseudo-3D usando a linguagem de script Bash. Este projeto, uma homenagem ao clássico jogo Wolfenstein 3D, é open-source no GitHub. O código é conciso, mas o resultado é surpreendente, mostrando o poder do Bash e a engenhosidade do programador. O repositório inclui o código-fonte do jogo e vídeos de demonstração. Desenvolvedores interessados em aprender mais podem conferi-lo no GitHub.

Desenvolvimento Desenvolvimento de Jogos

Ferramentas de compilação Monorepo: Escalando sua base de código

2024-12-20

Ferramentas de compilação tradicionais têm dificuldades com grandes bases de código (100-10.000 desenvolvedores ativos). Ferramentas de compilação Monorepo como Bazel e Mill oferecem soluções, suportando múltiplas linguagens, tarefas de compilação personalizadas, cache e paralelização automáticos, cache e execução remota, melhorando drasticamente a velocidade e eficiência da compilação. Elas também incluem seleção de testes baseada em dependências e sandbox de tarefas de compilação, reduzindo o tempo de teste e o não-determinismo. Embora esses recursos possam parecer desnecessários para projetos pequenos, eles são cruciais para colaboração em larga escala e integração contínua em projetos maiores, evitando que os tempos de compilação se tornem um gargalo.

Comando DOS APPEND: Superando a Lacuna entre o Antigo e o Novo

2024-12-20

Durante a reconstrução do código-fonte do DOS 2.11, o autor encontrou um desafio: o antigo assembler MASM 1.25 não tinha suporte para diretórios, o que conflitava com a organização moderna de arquivos usando uma estrutura em árvore. Para evitar um diretório monolítico, o autor utilizou de forma inteligente o comando DOS APPEND. APPEND é um programa TSR (Terminate and Stay Resident) que intercepta chamadas de sistema como a abertura de arquivos e pesquisa em uma lista de caminhos predefinida se o arquivo não for encontrado no diretório atual. Isso permitiu que o MASM 1.25 localizasse arquivos dentro da estrutura hierárquica, resolvendo a incompatibilidade e destacando a utilidade surpreendente do APPEND em cenários específicos.

Desenvolvimento

io_uring recebe nova funcionalidade de criação de processos

2024-12-20

O LWN.net noticia o desenvolvimento de um novo recurso de criação de processos para o subsistema io_uring. Essa funcionalidade é implementada por meio de duas novas operações io_uring: IORING_OP_CLONE, que cria um novo processo, e IORING_OP_EXEC, que executa uma chamada de sistema execveat() para carregar um novo programa. Isso promete maior eficiência e permite que lógica mais complexa, como a pesquisa de caminhos, seja executada de forma assíncrona no kernel. No entanto, o recurso ainda está em seus estágios iniciais e possui limitações, como a necessidade de execução síncrona de operações io_uring no novo processo. O desenvolvimento futuro visa aumentar a flexibilidade e, eventualmente, mesclar o recurso ao kernel principal do Linux.

Aplicativo Grayjay: Siga Criadores, Não Plataformas

2024-12-20

Grayjay é um reprodutor de vídeo multiplataforma que agrega conteúdo de plataformas como YouTube, PeerTube, Twitch e outras, eliminando a necessidade de alternar entre diferentes plataformas. Priorizando a privacidade do usuário, ele armazena o histórico de visualização localmente e oferece importação/exportação de dados e backup automático. Recursos incluem um feed de conteúdo personalizado, transmissão para tela grande e integração com o Harbor para conectar-se com o público e monetizar conteúdo.

Assistente de código Gemini da Google recebe integração com ferramentas de terceiros

2024-12-20
Assistente de código Gemini da Google recebe integração com ferramentas de terceiros

O Google anunciou suporte para ferramentas de terceiros no Gemini Code Assist, seu serviço de conclusão de código de IA focado em empresas. Isso permite a integração com ferramentas como Jira, GitHub e Sentry por meio de plug-ins, reduzindo a troca de contexto e aumentando a produtividade do desenvolvedor. Atualmente em prévia privada para parceiros do Google Cloud, esse recurso compete diretamente com o GitHub Copilot Enterprise, embora o Google destaque vantagens como o suporte a bancos de código locais. A adição de ferramentas visa otimizar os fluxos de trabalho e melhorar a eficiência para os desenvolvedores.

Fundo Soberano de Tecnologia investe em OpenStreetMap

2024-12-20

A Fundação OpenStreetMap recebeu uma subvenção de € 384.000 do Sovereign Tech Agency para garantir a estabilidade, o crescimento e a modernização de seu software principal. Esse financiamento será usado para atualizar o código, melhorar a documentação e a infraestrutura de teste e aprimorar a infraestrutura principal, incluindo o tratamento de vandalismo e a exploração de novos métodos de interação de dados. Serão criadas duas novas funções, incluindo um Facilitador de Desenvolvimento de Software Principal do OSM para coordenar os esforços dos desenvolvedores e promover contribuições da comunidade.

Atualização Rerun 0.21: Visualização de Grafo, Arrastar e Soltar e Desfazer

2024-12-20
Atualização Rerun 0.21: Visualização de Grafo, Arrastar e Soltar e Desfazer

O Rerun 0.21 apresenta uma aguardada visualização de grafo, juntamente com funcionalidade de arrastar e soltar e capacidade de desfazer. A nova visualização, construída usando os protótipos GraphNodes e GraphEdges, visualiza várias estruturas de grafo, como grafos ROS e grafos de cena semânticos. Esta versão também implementa o desfazer baseado em viagem no tempo e apresenta um novo mecanismo de layout de grafo baseado em força, Fjädra, melhorando significativamente a experiência do usuário.

Desenvolvimento Visualização de Grafo

Motor de jogo open-source boardgame.io simplifica o desenvolvimento de jogos por turnos

2024-12-20
Motor de jogo open-source boardgame.io simplifica o desenvolvimento de jogos por turnos

boardgame.io é um motor de jogo JavaScript de código aberto projetado para simplificar o desenvolvimento de jogos por turnos. Ao lidar automaticamente com aspectos complexos como gerenciamento de estado, rede multiplayer e oponentes de IA, os desenvolvedores podem se concentrar em escrever a lógica do jogo. O motor suporta várias fases do jogo, lobbies para combinação de jogadores, recursos de prototipagem e várias tecnologias de camada de visualização (como React e React Native). Seu poderoso sistema de plug-ins e logs de jogos rastreáveis ​​aumentam ainda mais a eficiência do desenvolvimento e a experiência do jogador.

Desenvolvimento jogo por turnos

WordPress.org pausa serviços para recesso de fim de ano

2024-12-20

Para dar aos voluntários um descanso de fim de ano, o WordPress.org está pausando temporariamente vários serviços gratuitos: novos registros de contas, novas submissões de plugins/temas e novas submissões do diretório de fotos. Fóruns e localização permanecem abertos. O fundador Matt Mullenweg explica que batalhas legais com a WP Engine estão consumindo tempo e recursos significativos, prejudicando seu trabalho em melhorias do WordPress. Ele pede apoio para o WordPress.org e sugere usar hosts da web alternativos não envolvidos na litígio.

Desenvolvimento Férias Litigio

Visualizando Concorrência: Um Guia para Entender o Espaço de Estado do Programa

2024-12-20

A programação concorrente é notoriamente complexa devido à dificuldade de enumerar todos os estados possíveis. Este artigo utiliza a visualização para explicar como entender a mecânica da execução de programas concorrentes. Começa introduzindo o conceito de estado do programa, que é uma combinação de valores de variáveis e localização de instruções, e depois demonstra o processo de transição de estados do programa e a geração do espaço de estado usando um exemplo simples de programa semelhante ao C. O artigo então introduz programas concorrentes e, usando dois programas concorrentes, P e Q, explica como representar o estado de um programa concorrente e a construção do espaço de estado. Finalmente, o artigo explora como usar a ferramenta de verificação de modelo SPIN e a linguagem LTL para verificar a correção de programas concorrentes, destacando o importante papel da verificação de modelo em garantir a correção de programas concorrentes.

Como os navegadores interpretam 'chucknorris' como uma cor?

2024-12-20
Como os navegadores interpretam 'chucknorris' como uma cor?

Este artigo explora como os navegadores lidam com valores de cores inválidos em HTML, como interpretar 'chucknorris' como vermelho. O autor explica a tolerância do navegador ao analisar HTML, tentando converter valores inválidos em valores válidos. O processo de como os navegadores analisam valores de cores inválidos é descrito, com um link CodePen fornecido demonstrando o processo. O autor argumenta que essa tolerância do navegador é um charme da web, permitindo que até mesmo código inválido seja executado, mostrando a resiliência da web.

Resumo Semanal do Python: Lançamento do Markitdown, Debate Acesa sobre Gerenciamento de Pacotes Conda

2024-12-20

As notícias do Python desta semana incluem o lançamento do Markitdown da Microsoft (uma ferramenta para converter arquivos em Markdown), PDFMathTranslate (uma ferramenta de tradução de artigos científicos) e docling (uma ferramenta de preparação de documentos). Além disso, o PEP 768 propõe a adição de uma interface de depurador externo segura ao CPython para depuração em tempo real. Uma discussão acalorada surgiu sobre as complexidades do gerenciamento de pacotes Conda, analisando seus problemas, como conflitos de versão, gerenciamento de ambientes virtuais e interações com pip e setuptools. Por fim, o uso do Markdown gerou um debate, destacando problemas de compatibilidade devido a diferenças entre vários analisadores de Markdown.

Desenvolvimento

GribStream: Uma API rápida e eficiente de histórico de previsão do tempo

2024-12-20
GribStream: Uma API rápida e eficiente de histórico de previsão do tempo

GribStream é uma API rápida, eficiente e fácil de usar para histórico de previsão do tempo, que utiliza os dados do National Blend of Models (NBM) e do Global Forecast System (GFS). Ela fornece acesso a uma grande quantidade de dados históricos de clima; um único pedido HTTP pode recuperar dezenas de milhares de pontos de dados horários por meses em segundos. A API suporta vários formatos de saída (CSV, Parquet, JSON, etc.) e consultas de localização. Seu preço econômico e recursos poderosos permitem que os desenvolvedores acessem facilmente os dados de que precisam sem precisar baixar e arquivar.

Desenvolvimento dados históricos

Introdução ao NDEF: A Linguagem do NFC

2024-12-19
Introdução ao NDEF: A Linguagem do NFC

Este capítulo introduz o Formato de Troca de Dados de Comunicação de Campo Próximo (Near Field Communication - NFC) (NDEF), a linguagem comum para dispositivos e etiquetas NFC. O NDEF é um formato binário estruturado em mensagens, cada uma contendo vários registros. Cada registro é composto por um cabeçalho (metadados) e uma carga útil (conteúdo). O capítulo detalha a estrutura dos registros NDEF, incluindo o Formato de Nome de Tipo, o Tipo de Carga Útil, o Identificador de Carga Útil e a Carga Útil, e mostra como escrever e ler mensagens formatadas em NDEF usando aplicativos Android. Também abrange os limites de tamanho da mensagem NDEF e o particionamento de registros para cargas úteis maiores. Por fim, um aplicativo de exemplo demonstra a criação de um aplicativo simples de gravação de etiquetas NFC usando o plugin PhoneGap-NFC, gravando mensagens NDEF em etiquetas para iniciar o aplicativo Foursquare.

Desenvolvimento

Desenvolvimento Guiado por Tipos: Como os Tipos Simplificam Problemas Complexos de Programação

2024-12-19
Desenvolvimento Guiado por Tipos: Como os Tipos Simplificam Problemas Complexos de Programação

Este artigo explora o conceito de "Desenvolvimento Guiado por Tipos", no qual o autor, com base na experiência com o grande projeto Heartbeat em Typescript (mais de 300.000 linhas), demonstra como o sistema de tipos do Typescript simplifica problemas complexos de programação. A ideia principal é que, ao utilizar efetivamente o sistema de tipos, permitindo que os tipos fluam livremente por todas as camadas do aplicativo, começando novos recursos com definições de tipos, tornando estados ilegais irrepresentáveis, analisando em vez de validar dados e mantendo a honestidade e especificidade do código, os bugs são drasticamente reduzidos e a eficiência do desenvolvimento é melhorada. O autor também compartilha técnicas para usar funções puras como pontes de tipos e o sistema de tipos como uma ferramenta de introspecção, reconhecendo a necessidade ocasional de contornar as restrições do sistema de tipos.

Clay: Uma Biblioteca Robusta de Layout de UI

2024-12-19

Clay é uma biblioteca leve de layout de UI para construção de interfaces de usuário responsivas e acessíveis. Sua API limpa e intuitiva permite que os desenvolvedores criem layouts complexos com facilidade, mantendo a manutenibilidade e legibilidade do código. Clay prioriza o desempenho e a acessibilidade, garantindo tempos de carregamento rápidos e facilidade de uso por meio de código simplificado e um design bem arquitetado. Seja construindo layouts de páginas simples ou aplicativos interativos complexos, Clay capacita os desenvolvedores a construir interfaces de usuário de alta qualidade de forma eficiente.

CCState: Uma Biblioteca Leve e Flexível de Gerenciamento de Estado

2024-12-19
CCState: Uma Biblioteca Leve e Flexível de Gerenciamento de Estado

CCState é uma biblioteca leve, semanticamente clara e flexível de gerenciamento de estado, projetada para aplicativos de página única de médio a grande porte com necessidades complexas de gerenciamento de estado. Ela é construída em três tipos de dados básicos: computado, comando e estado, oferecendo uma API simples e intuitiva com 100% de cobertura de teste. Agnóstica de framework, CCState funciona perfeitamente com React, Vanilla JS e outras estruturas de UI, ostentando desempenho ultrarrápido, superando Jotai em vários cenários. As APIs principais – `state`, `computed` e `command` – manipulam unidades de valor básicas, computações derivadas e efeitos colaterais, respectivamente. Hooks do React como `useGet`, `useSet`, `useLoadable` e `useResolved` simplificam o acesso a dados e o tratamento de valores Promise. CCState também oferece recursos de assinatura para atualizações reativas.

Introdução rápida ao TideCloak: Aplicativo React seguro em 10 minutos

2024-12-19
Introdução rápida ao TideCloak: Aplicativo React seguro em 10 minutos

TideCloak é um sistema de gerenciamento de identidade e acesso fácil de usar, baseado no Keycloak e protegido pela estrutura de segurança cibernética da Tide. Este guia mostra como criar um aplicativo React de página única seguro com TideCloak em menos de 10 minutos. Primeiro, instale o Docker e o NPM, depois execute o contêiner Docker TideCloak-Dev. Após ativar uma licença gratuita para desenvolvedores, crie seu projeto React, instale as dependências e execute o aplicativo. Os usuários podem fazer login, registrar-se e visualizar conteúdo personalizado com base em funções predefinidas, tudo gerenciado pelo TideCloak e protegido pela estrutura de segurança cibernética da Tide.

Desenvolvimento Gerenciamento de Identidade

mizu.js: Biblioteca leve de templates HTML para renderização em qualquer lado

2024-12-19
mizu.js: Biblioteca leve de templates HTML para renderização em qualquer lado

mizu.js é uma biblioteca leve de templates HTML que suporta renderização tanto do lado do cliente quanto do servidor. Sua sintaxe simples, próxima ao JavaScript e HTML vanilla, oferece uma curva de aprendizado suave. Com um conjunto rico de diretivas para renderização condicional, loops, vinculação de dados e solicitações HTTP, mizu.js permite a construção de diversos tipos de aplicações web — aplicativos de página única, sites estáticos e páginas dinâmicas — sem processos de construção complexos. Sua flexibilidade e simplicidade o tornam ideal para projetos pequenos e grandes.

Demonstração WebGPU Sponza: Uma Apresentação Impressionante de Gráficos no Navegador

2024-12-19
Demonstração WebGPU Sponza: Uma Apresentação Impressionante de Gráficos no Navegador

A demonstração WebGPU Sponza, criada por Georgi Nikolov, mostra as capacidades gráficas impressionantes da API WebGPU. Os usuários podem navegar pela cena usando teclado e mouse. No entanto, esta demonstração requer um navegador moderno com suporte a WebGPU. Atualmente, o Chrome 113+, as builds mais recentes do Firefox Nightly e o Safari Technology Preview oferecem suporte a WebGPU. Atualize seu navegador para a versão mais recente se quiser experimentar esta demonstração visualmente impressionante.

Lançado o Proxmox Datacenter Manager – Versão Alpha

2024-12-19
Lançado o Proxmox Datacenter Manager – Versão Alpha

A Proxmox lançou uma prévia alpha do seu Proxmox Datacenter Manager. Este software visa centralizar a gestão de todos os seus nós e clusters, oferecendo funcionalidades básicas de gestão, como migrações de máquinas virtuais, sem necessidade de rede de cluster. Desenvolvido totalmente em Rust, desde o servidor de API back-end até às ferramentas CLI e um novo front-end, ele possui uma interface web moderna para melhorar a velocidade e a compatibilidade. Esta versão alpha tem como objetivo recolher feedback do utilizador, testar funcionalidades principais e promover a colaboração. Embora existam algumas funcionalidades incompletas e erros esperados, já é capaz de gerir milhares de hosts remotos e máquinas virtuais.

Programador transforma quadros de filmes em arte com IA

2024-12-19
Programador transforma quadros de filmes em arte com IA

Um programador utilizou as bibliotecas Python, OpenCV e PIL para transformar quadros de filmes em obras de arte únicas. Extraindo quadros de vídeos, comprimindo cores e gerando imagens de código de barras e "íris" circulares, o projeto, 'Movie Iris', visualiza a evolução dos temas de cores de um filme. O código de código aberto pode processar qualquer vídeo, transformando momentos do dia a dia em arte.

Nullboard: Um quadro Kanban minimalista para uso offline

2024-12-19
Nullboard: Um quadro Kanban minimalista para uso offline

Nullboard é um quadro Kanban minimalista que prioriza a compacidade e a legibilidade. Um aplicativo web de página única, ele armazena todos os dados localmente, permitindo o uso offline com funcionalidade de importação/exportação JSON. Com recursos de arrastar e soltar, autosalvamento e desfazer/refazer, o Nullboard oferece gerenciamento de tarefas eficiente. Nascido da frustração do desenvolvedor com as ferramentas existentes, é uma solução criada por si mesmo agora compartilhada em código aberto.

Retis: Rastreamento de Pacotes no Stack de Rede Linux

2024-12-19
Retis: Rastreamento de Pacotes no Stack de Rede Linux

Retis é uma ferramenta que utiliza probes eBPF para rastrear pacotes na pilha de rede do Linux. Interage com caminhos de controle e dados como Open vSwitch e Netfilter, sendo útil para depurar problemas de rede, explorar a pilha de rede do Linux ou testar recursos de rede. Oferece filtragem e rastreamento de pacotes, recuperando metadados e informações contextuais além do próprio pacote. Não requer compilação no sistema alvo e possui recursos de pós-processamento, como reconstruir a jornada de um pacote. Fácil de usar, com perfis predefinidos e suporte para probes e filtros personalizados, o Retis oferece flexibilidade e facilidade de uso.

Botan: Kit de Criptografia C++ Moderno

2024-12-19
Botan: Kit de Criptografia C++ Moderno

Botan é uma poderosa biblioteca de criptografia C++ de código aberto, lançada sob a licença BSD simplificada permissiva. Seu objetivo é ser a melhor opção para criptografia em C++, oferecendo as ferramentas necessárias para implementar uma variedade de sistemas práticos, como o protocolo TLS, certificados X.509, cifras AEAD modernas, suporte de hardware PKCS#11 e TPM, hash de senhas e esquemas criptográficos pós-quânticos. Inclui um link Python e vários outros links de idiomas estão disponíveis. A biblioteca é acompanhada por uma interface de linha de comando rica em recursos. A versão mais recente é a 3.6.1 e está disponível em várias distribuições, incluindo Fedora, Debian, Arch e Homebrew.

Desenvolvimento

Trofaf: Gerador de blog estático simples e ao vivo em Go

2024-12-19
Trofaf: Gerador de blog estático simples e ao vivo em Go

Trofaf é um gerador de blog estático simples e ao vivo escrito em Go. Requer apenas três diretórios (posts, public, templates) e gera um site estático a partir de arquivos markdown e front matter, atualizando automaticamente sempre que alterações são detectadas. Oferece opções de linha de comando para personalização e prioriza a simplicidade em vez de recursos extensos, tornando-o ideal para usuários que procuram uma solução de blog direta.

Fish Shell 4.0 Lançado: Reescrito em Rust para Melhor Desempenho

2024-12-19

O Fish shell, um shell de linha de comando conhecido por sua facilidade de uso e recursos inteligentes, lançou a versão 4.0. A maior mudança é uma reescrita completa da base de código de C++ para Rust, resultando em melhor eficiência de computação moderna. A versão 4.0 também possui muitos recursos novos, como associações de teclas mais naturais e pesquisa de histórico aprimorada, projetadas para tornar a experiência de linha de comando mais fácil e agradável. Para garantir a estabilidade, o projeto lançou uma versão beta pública, convidando todos os usuários a participarem dos testes.

Desenvolvimento

Preocupações de um Desenvolvedor Sênior: Desconexão Crescente com a Geração Mais Nova

2024-12-19

Um desenvolvedor experiente com 25 anos de experiência expressa uma crescente desconexão com os desenvolvedores web mais jovens. Ele observa uma falta de compreensão em relação aos métodos tradicionais de desenvolvimento web (aplicações não single-page) e confusão entre frameworks JavaScript e JavaScript puro. Isso leva a uma reflexão sobre os níveis de abstração em evolução na educação em programação e o foco em habilidades específicas. Usando um programa de jogos para desenvolvedores como exemplo, ele destaca que algumas perguntas de 'ciência da computação' enfatizam excessivamente detalhes específicos do JavaScript, negligenciando princípios computacionais mais amplos. Isso não é uma crítica aos desenvolvedores mais jovens, mas uma observação e preocupação com as tendências do setor, e uma reflexão sobre a crescente especialização no campo da programação.

Universidade reformula currículo de programação: Ênfase em design explícito e sistemático

2024-12-19

O departamento de ciência da computação da Northeastern University desenvolveu um currículo de programação único que enfatiza o design de programas explícito e sistemático, em vez de se concentrar em linguagens de programação da moda. O currículo começa com uma linguagem de ensino simples, introduzindo gradualmente os princípios de design aos alunos antes de aplicá-los a linguagens industriais. Essa abordagem cultiva o raciocínio lógico e as habilidades de resolução de problemas para softwares grandes e complexos. O currículo também destaca os aspectos sociais da programação, incentivando a programação em pares para melhorar a comunicação e a colaboração. Esse método não apenas aprimora as perspectivas de emprego dos alunos, mas também lança uma base sólida para suas carreiras futuras.

1 2 192 193 194 196 198 199 200 201 202