Category: Desenvolvimento

ISO 8583: A Linguagem Secreta dos Cartões de Crédito

2024-12-18
ISO 8583: A Linguagem Secreta dos Cartões de Crédito

Toda vez que você usa seu cartão ou faz um pagamento online, você está interagindo com o protocolo ISO 8583. Este padrão, definido em 1987, define o formato das mensagens de transação em tempo real entre as redes de bancos. Ele inclui campos principais como indicadores de tipo de mensagem, mapas de bits e elementos de dados, mas as redes variam em suas extensões e métodos de serialização, levando a desafios de compatibilidade. Este artigo examina as complexidades da estrutura do ISO 8583, codificação de campos, tratamento de mensagens aninhadas e demonstra como construir um analisador ISO 8583 robusto para lidar com variações de rede e cenários de erro.

Atualização do Castle Game Engine: Alvo Web, Suporte IFC e Colaboração mORMot

2024-12-18
Atualização do Castle Game Engine: Alvo Web, Suporte IFC e Colaboração mORMot

A equipe do Castle Game Engine anunciou atualizações, incluindo um alvo web (usando JS+WebAssembly para execução de jogos no navegador), suporte para o formato IFC (Industry Foundation Classes) e edição colaborativa usando o mORMot2. O alvo web atualmente lida com funções básicas e está melhorando o suporte WebGL. O suporte IFC permite carregar, modificar e salvar modelos, com melhorias futuras planejadas. A edição colaborativa ainda está em desenvolvimento, mas já permite a modificação do mundo 3D e a sincronização do servidor.

Desenvolvimento motor de jogo modelagem 3D

Brisk: Uma estrutura de GUI C++20 multiplataforma para renderização de alto desempenho

2024-12-18
Brisk: Uma estrutura de GUI C++20 multiplataforma para renderização de alto desempenho

Brisk é uma estrutura de GUI C++20 moderna e multiplataforma, projetada para criar aplicativos responsivos e de alto desempenho com facilidade. Utilizando uma arquitetura MVVM e recursos reativos, o Brisk possui renderização escalável acelerada por GPU, tornando-o ideal para projetos com uso intensivo de gráficos. Ele suporta vários backends (D3D11, D3D12, Vulkan, OpenGL, Metal, WebGPU) e possui GUI declarativa, folhas de estilo e suporte completo para Unicode. Atualmente em desenvolvimento ativo, contribuições são bem-vindas.

Hadrius contrata Designer UI/UX fundador(a), até US$ 150.000

2024-12-18
Hadrius contrata Designer UI/UX fundador(a), até US$ 150.000

A Hadrius, uma startup de fintech apoiada pelo Y Combinator, está contratando um(a) Designer UI/UX fundador(a). Eles estão usando IA para automatizar o back-office de empresas financeiras, prevenindo futuras crises financeiras. A vaga é em tempo integral na cidade de Nova York, oferecendo salário de US$ 80.000 a US$ 150.000 e opções de ações de 0,01% a 0,15%. O candidato ideal é um designer altamente qualificado com experiência em uma empresa de tecnologia focada em design, proficiente em Figma e apaixonado pela missão da Hadrius. A equipe conta com engenheiros do Google, Chime e outras empresas de primeira linha, e a empresa está experimentando um crescimento hiperacelerado, dobrando a receita a cada três meses.

Desenvolvimento Design UI/UX

Ferramentas de Poder para Liderança: SQL, Estatística e Decisões Baseadas em Dados

2024-12-18
Ferramentas de Poder para Liderança: SQL, Estatística e Decisões Baseadas em Dados

Este artigo explora como líderes de engenharia podem usar SQL e métodos estatísticos para tomada de decisões baseadas em dados. O autor destaca que muitos líderes de engenharia não se sentem confortáveis em extrair e interpretar dados, recomendando o aprendizado de SQL (por exemplo, usando DuckDB) e ferramentas estatísticas. O artigo abrange estatísticas descritivas, distribuições, intervalos de confiança e raciocínio bayesiano, demonstrando como calcular intervalos de confiança analisando dados de rastreamento de bugs do Firefox, usando simulações de Monte Carlo para estimativa de tempo de projeto e aplicando inferência bayesiana para atualizar probabilidades de conclusão do projeto. O artigo enfatiza a importância das habilidades de análise de dados para líderes de engenharia, permitindo previsões e decisões mais precisas.

Desenvolvimento liderança em engenharia

Canva reduz tempo de construção de CI de horas para menos de 30 minutos

2024-12-18
Canva reduz tempo de construção de CI de horas para menos de 30 minutos

A equipe de engenharia da Canva reduziu drasticamente o tempo de construção de integração contínua (CI), de uma média de 80 minutos para menos de 30 minutos, às vezes até 15. Isso foi alcançado por meio de uma abordagem multifacetada. Eles identificaram e resolveram problemas de cache do Bazel, otimizaram as estruturas de pipeline, melhoraram os checkouts e o cache do repositório Git e utilizaram a execução remota de compilação do Bazel (RBE). Experimentações extensivas, incluindo testes de diferentes tipos de instâncias e ajustes nas configurações do Bazel, desempenharam um papel crucial. Uma série de melhorias incrementais aumentou significativamente a eficiência da CI, reduziu custos e melhorou a experiência do desenvolvedor.

Projeto GitHub ted: Um editor de arquivos baseado em Máquina de Turing

2024-12-18
Projeto GitHub ted: Um editor de arquivos baseado em Máquina de Turing

ted é uma ferramenta de linha de comando escrita em Go que permite aos usuários editar arquivos de acordo com as regras de uma máquina de Turing fornecida. Inspirada na necessidade do autor de processar arquivos de log, ted usa máquinas de estado para extrair precisamente as informações desejadas. Ele suporta várias operações, incluindo correspondência de expressões regulares, execução de comandos sed, atribuição de variáveis, captura e controle de saída, e oferece recursos como captura de várias linhas, grupos de captura de regex e movimento de cabeça/cauda de arquivo.

Aplicativo Homescreen: Redifinindo a experiência da tela inicial

2024-12-18

O Homescreen é um aplicativo projetado para revolucionar a experiência da tela inicial do seu telefone. Quebrando as limitações das telas tradicionais de telefones, ele oferece aos usuários uma maneira mais personalizada, eficiente e conveniente de interagir com seus dispositivos. Os usuários podem personalizar widgets, temas e layouts para criar uma tela inicial única, aumentando a produtividade e o prazer de uso. O Homescreen não é apenas uma simples substituição da área de trabalho; é uma abordagem inovadora para como usamos nossos telefones.

Recuperando Dados do Sensor: Libertando-se da Nuvem

2024-12-18
Recuperando Dados do Sensor: Libertando-se da Nuvem

Este artigo descreve como um engenheiro de software embarcado recuperou o controle dos dados de um sensor de radônio conectado à nuvem, contornando os servidores do fabricante. Ao analisar o tráfego de rede, o engenheiro descobriu uma vulnerabilidade em que o sensor não validava corretamente os certificados do servidor. Usando um servidor DNS local e um servidor web Python personalizado, o engenheiro interceptou e leu com sucesso os dados brutos do sensor. Isso concede acesso programático e garante a continuidade do funcionamento mesmo se os servidores do fabricante caírem. O artigo destaca a importância da segurança de rede e os riscos de privacidade associados ao tráfego DNS.

Extensão de navegador 'refoorest' acusada de esquema fraudulento de plantio de árvores

2024-12-18
Extensão de navegador 'refoorest' acusada de esquema fraudulento de plantio de árvores

Uma investigação sobre a extensão de navegador refoorest e o SDK Impact Hero, da Colibri Hero, revela um esquema enganoso de marketing de afiliados disfarçado como uma iniciativa de plantio de árvores. A extensão deturpa o número de árvores plantadas, explora dados do usuário por meio de avaliações e compartilhamentos incentivizados, e o SDK obtém permissões excessivas do usuário sem divulgação adequada, violando as políticas da Chrome Web Store. O artigo expõe um padrão de práticas opacas, incluindo depoimentos falsos, sigilo financeiro e vulnerabilidades de segurança de dados, lançando sérias dúvidas sobre as alegações da empresa de responsabilidade ambiental.

Otimizando o JSON do Ruby: Parte 1

2024-12-18

Este post de blog detalha como o autor otimizou a gem `json` do Ruby para se tornar um dos analisadores e geradores JSON mais rápidos. Em vez de técnicas complexas, foram aplicadas otimizações simples com base em perfilhamento, como evitar verificações redundantes, priorizar condições mais baratas, reduzir os custos de configuração e usar tabelas de pesquisa. Essas melhorias se aplicam a códigos C e Ruby. As otimizações aumentaram significativamente o desempenho da gem `json`, tornando-a competitiva com alternativas como `oj`, reduzindo a necessidade de monkey patching e solucionando problemas de estabilidade e compatibilidade associados ao `oj`.

Desenvolvimento Otimização de Desempenho

ImPlot3D: Biblioteca de Plotagem 3D de Modo Imediato de Alto Desempenho Baseada em Dear ImGui

2024-12-18
ImPlot3D: Biblioteca de Plotagem 3D de Modo Imediato de Alto Desempenho Baseada em Dear ImGui

ImPlot3D é uma biblioteca de código aberto construída sobre o Dear ImGui, oferecendo aos desenvolvedores uma maneira fácil de usar e de alto desempenho para criar gráficos 3D. Independente do ImPlot, o ImPlot3D suporta vários tipos de gráficos 3D, incluindo gráficos de linhas, gráficos de dispersão, gráficos de superfície e gráficos de malha, com rotação interativa, panorâmica e zoom. Sua API intuitiva, semelhante ao Dear ImGui e ImPlot, permite integração rápida e personalização de marcadores, linhas, superfícies e estilos de malha, com opções para mapas de cores integrados ou personalizados. Um aplicativo de demonstração abrangente auxilia os usuários a aprender e utilizar seus recursos.

Desenvolvimento plotagem 3D

Interpretador Metacircular Python: Implementando um Interpretador Python em Python

2024-12-18

Este artigo demonstra como criar um interpretador metacircular Python (MCI) usando o próprio Python. Um MCI é um interpretador escrito na linguagem que ele interpreta, permitindo a implementação de um subconjunto ou superconjunto da linguagem host. O autor detalha a implementação do MCI, cobrindo a análise de código-fonte Python, a construção de uma Árvore de Sintaxe Abstrata (AST), a travessia da AST e a execução de instruções, e conceitos cruciais como escopo, tabelas de símbolos e o tratamento de instruções de fluxo de controle (por exemplo, loops while e instruções if). Este exemplo fornece uma compreensão profunda da mecânica do interpretador e mostra como alavancar o módulo AST do Python e funções internas para construir interpretadores mais complexos.

Desenvolvimento Interpretador Metacircular

Notebooks Jupyter: Testes de ponta a ponta e documentação em um só lugar

2024-12-18

Durante o desenvolvimento de uma biblioteca de computação quântica, o autor utilizou Notebooks Jupyter como guias do usuário e testes de ponta a ponta. Lendo variáveis de ambiente (como SERVER_URL) dentro dos notebooks, foi possível alcançar a parametrização, permitindo a execução por usuários e pipelines de CI/CD automatizados. Dois métodos para executar notebooks foram explorados: nbclient para simplicidade e nbconvert/jq para maior controle, porém com maior complexidade. O autor optou pela facilidade de uso do nbclient, integrando efetivamente a manutenção da documentação e os testes de código, garantindo a integridade de ambos a cada solicitação de mesclagem.

Desenvolvimento Testes de ponta a ponta

Domando o Caos: Centralizando e Estruturando o Tratamento de Erros em Go

2024-12-18
Domando o Caos: Centralizando e Estruturando o Tratamento de Erros em Go

Este artigo detalha a jornada do autor ao lidar com problemas crescentes de tratamento de erros em um projeto Go em crescimento. Inicialmente, a abordagem simples para tratamento de erros se tornou caótica, com logs confusos e erros intratáveis. Para resolver isso, uma nova estrutura de tratamento de erros foi projetada e implementada. Essa estrutura emprega um sistema centralizado e estruturado usando códigos de namespace para tornar os erros significativos e rastreáveis. O núcleo é uma declaração centralizada de códigos de erro; cada camada de serviço retorna apenas seus próprios códigos de namespace, enriquecidos com informações de contexto. O artigo explica detalhadamente as decisões de design, implementação, lições aprendidas e estratégia de migração, oferecendo uma experiência prática valiosa.

Ergo: Um Servidor IRC Moderno Escrito em Go

2024-12-18
Ergo: Um Servidor IRC Moderno Escrito em Go

Ergo é um servidor IRC moderno escrito em Go, projetado para ser fácil de configurar e usar. Ele combina os recursos de um ircd, uma estrutura de serviços e um bouncer (gerenciamento de contas integrado, armazenamento de histórico e funcionalidade de bouncer). Ele possui suporte de ponta para IRCv3 e é altamente personalizável por meio de uma configuração YAML rehashável. Recursos-chave incluem serviços integrados (NickServ, ChanServ, HostServ), suporte nativo a TLS/SSL, autenticação SASL, suporte a LDAP e recursos avançados de segurança e privacidade.

Desenvolvimento servidor IRC

Equalizador de 5 Bandas a5eq.lv2 de Código Aberto Lançado

2024-12-18
Equalizador de 5 Bandas a5eq.lv2 de Código Aberto Lançado

ashafq lançou o a5eq.lv2, um plugin de equalizador de 5 bandas LV2 de código aberto. Este plugin possui uma prateleira baixa, três filtros de pico e uma prateleira alta, projetados para escultura de áudio precisa para engenheiros de áudio amadores e profissionais. Ele possui coeficientes de filtro de alta precisão, processamento estéreo e uma interface amigável. Compatível com qualquer software host que suporte LV2, como Ardour e Audacity, é facilmente instalado e usado via linha de comando. Os usuários podem enviar problemas ou contribuir com código via GitHub.

Editor de Texto Adaptável 'ad': Combinando Vim e Acme

2024-12-18
Editor de Texto Adaptável 'ad': Combinando Vim e Acme

ad é um editor de texto novo que combina a interface de edição modal do Vim e Kakoune com a abordagem de extensibilidade do Acme do Plan9. O ad permite que os usuários executem texto e serve como um playground para experimentar a implementação de vários recursos de editores de texto. Atualmente, o ad é estável o suficiente e completo o suficiente para ser experimentado, embora a documentação seja escassa e possam existir bugs. A filosofia de design do ad combina a edição modal do Vim, o mini-buffer do Emacs e os comandos de edição e extensibilidade do Acme, com o objetivo de criar um ambiente de edição confortável que suporte a interação direta com ferramentas e programas externos.

Geração rápida de textura: um tutorial sobre textura XOR

2024-12-18

Este tutorial explica como gerar uma textura XOR, uma textura simples criada usando a operação XOR nas coordenadas x e y de cada pixel. Embora não seja ideal para jogos ou arte, é perfeita para testar mapeadores de textura. O artigo detalha a operação XOR, discute o efeito do tamanho da textura no brilho da cor e mostra como gerar texturas semelhantes usando os operadores AND e OR. Um exemplo de textura 3D usando XOR também é apresentado.

dLine: Ferramenta de Calendário em Terminal para Gerenciamento Eficiente de Horários

2024-12-18
dLine: Ferramenta de Calendário em Terminal para Gerenciamento Eficiente de Horários

dLine é uma ferramenta de linha de comando que apresenta dados importantes em formato de calendário diretamente no seu terminal. Ele monitora datas críticas, simplifica a adição de eventos por meio de APIs e calcula intervalos de tempo para vários tipos de eventos. Projetado para desenvolvedores, o dLine otimiza o gerenciamento de eventos e a navegação de horários sem sair do terminal. Ele possui visualizações dinâmica e estática, uma calculadora de eventos e recursos robustos de gerenciamento de dados, incluindo adicionar, excluir, visualizar e limpar eventos. O dLine também suporta esquemas de cores personalizados, traduções de usuários e integração com o Google Calendar.

OpenAuth: Servidor OAuth 2.0 Universal e Auto-Hospedado

2024-12-17
OpenAuth: Servidor OAuth 2.0 Universal e Auto-Hospedado

O OpenAuth é um provedor de autenticação universal, baseado em padrões e de código aberto. Pode ser implantado como um serviço autônomo ou integrado a aplicativos existentes, sendo independente de framework e funcionando em Node.js, Bun, AWS Lambda ou Cloudflare Workers. Cumprindo com a especificação OAuth 2.0, o OpenAuth oferece uma IU personalizável e com temas. Diferentemente da maioria das soluções de autenticação de código aberto que são bibliotecas, o OpenAuth é um servidor centralizado projetado para facilitar a auto-hospedagem na sua infraestrutura. Ele intencionalmente omite o gerenciamento de usuários, fornecendo em vez disso callbacks para pesquisa/criação de usuários personalizados. O armazenamento de dados é mínimo (tokens de atualização, etc.), usando um armazenamento KV simples (Cloudflare KV, DynamoDB). Uma IU pré-construída está disponível, mas você pode personalizá-la ou substituí-la totalmente. Criado pela equipe SST, o OpenAuth simplifica a autenticação para seus aplicativos.

IncludeOS: Execute aplicativos na nuvem com zero sobrecarga

2024-12-17

IncludeOS é um sistema operacional leve que permite executar seu aplicativo na nuvem sem um sistema operacional tradicional. Ele integra a funcionalidade do sistema operacional diretamente ao seu aplicativo, criando máquinas virtuais de alto desempenho, seguras e eficientes em termos de recursos. Os aplicativos IncludeOS inicializam em dezenas de milissegundos e exigem apenas alguns megabytes de disco e memória. Ferramentas simples de linha de comando facilitam a construção e a implantação, e diversos exemplos e documentação ajudam os desenvolvedores a começar rapidamente.

SeleniumBase: Uma poderosa estrutura para automação web

2024-12-17
SeleniumBase: Uma poderosa estrutura para automação web

SeleniumBase é uma estrutura Python robusta para automação web, testes e contorno de detecção de bots. Construída sobre o Selenium WebDriver e integrada com ferramentas de teste como o pytest, ela oferece uma sintaxe limpa e recursos extensos, como esperas automáticas para elementos da página, geração de relatórios de teste, um painel e suporte para vários navegadores e sistemas operacionais. O SeleniumBase também inclui modos como o Modo UC e o Modo CDP para maior sigilo e confiabilidade, juntamente com exemplos e documentação abrangentes para adoção rápida.

Desenvolvimento automação web testes

Cerbos usa CRDTs para Playground colaborativo

2024-12-17
Cerbos usa CRDTs para Playground colaborativo

A Cerbos construiu um ambiente colaborativo de IDE e teste, o "Playground", para simplificar a lógica de autorização complexa. Para permitir colaboração perfeita, eles usam Tipos de Dados Replicados Sem Conflito (CRDTs), que resolvem automaticamente conflitos em sistemas distribuídos. O artigo explora CRDTs, comparando bibliotecas populares como Yjs e Automerge, e discute os desafios e as possibilidades de construir um CRDT personalizado. A Cerbos integra CRDTs com uma arquitetura de back-end para front-end (BFF), usando WebSockets para transferência de dados e IndexedDB para persistência local, criando uma plataforma colaborativa robusta. Os desafios da colaboração global e da persistência de dados também são abordados.

Tornando o Rust Inseguro um Pouco Mais Seguro: Ferramentas para Verificar Código Inseguro, Incluindo Bibliotecas em C e C++

2024-12-17
Tornando o Rust Inseguro um Pouco Mais Seguro: Ferramentas para Verificar Código Inseguro, Incluindo Bibliotecas em C e C++

A popularidade do Rust se deve à sua capacidade de eliminar erros de memória e concorrência em tempo de compilação, mas seus blocos de código `unsafe` podem contornar essas verificações. Este artigo explora ferramentas para verificar código Rust inseguro, incluindo código chamado de bibliotecas C ou C++. Apresenta ferramentas de detecção de erros em tempo de execução — sanitizadores — e Miri, um interpretador que encontra comportamentos indefinidos de forma determinística. Os sanitizadores detectam acesso de memória fora dos limites, corridas de dados e muito mais, enquanto o Miri fornece relatórios de erros mais precisos com trechos de código. No entanto, o Miri atualmente não suporta código chamado via FFI de C/C++, sendo necessário o uso de sanitizadores de compilador C/C++ nesses casos. Essas ferramentas aprimoram a segurança e confiabilidade do código Rust, mesmo ao lidar com código `unsafe` ou interagir com bibliotecas C/C++.

Desenvolvimento Erros de Memória

BYOJS: Abrace o JavaScript nativo para desenvolvimento web

2024-12-17

O projeto BYOJS defende a construção de aplicativos web com JavaScript core, em vez de depender de frameworks pesados. Embora frameworks e linguagens como TypeScript sejam populares, o BYOJS argumenta que construir aplicativos web eficientes usando a linguagem JS core é uma arte perdida. Ele incentiva o uso de bibliotecas fracamente acopladas em vez de frameworks fortemente acoplados, defendendo a escolha da ferramenta menos poderosa que realiza a tarefa e priorizando código conciso. O projeto fornece utilitários úteis, como uma API simples de armazenamento chave-valor, um emissor de eventos assíncronos, um wrapper modal e muito mais. Todo o código possui licença MIT.

Avanço na Segurança de Rede: Atrapando Intrusos em uma 'Rede do Inferno'

2024-12-17
Avanço na Segurança de Rede: Atrapando Intrusos em uma 'Rede do Inferno'

Pesquisadores da equipe SensorFu da Universidade de Oulu desenvolveram um novo sistema de defesa de segurança de rede inspirado na técnica LaBrea tarpit. O sistema intercepta solicitações ARP e retarda as respostas SYN-ACK, criando uma multidão de dispositivos virtuais na rede para confundir os intrusos. Isso força os atacantes a perder tempo significativo identificando dispositivos reais, fornecendo aos administradores tempo crucial para corrigir vulnerabilidades. Os testes mostraram que o sistema estende os tempos de varredura por horas, reduzindo drasticamente as taxas de sucesso de ataque. Leve, eficiente e fácil de implantar, este sistema oferece proteção robusta de rede para organizações de todos os tamanhos.

Surfer Protocol: Framework de código aberto para controlar seus dados pessoais

2024-12-17
Surfer Protocol: Framework de código aberto para controlar seus dados pessoais

Surfer Protocol é um framework de código aberto que permite aos usuários exportar e construir aplicativos com base em seus dados pessoais. Abordando o problema dos dados isolados em várias plataformas, o Surfer Protocol oferece uma solução. Ele inclui um aplicativo de desktop para exportar dados de vários aplicativos e serviços, e um SDK Python para construir aplicativos usando esses dados. Os usuários podem usar o Surfer Protocol para criar modelos de IA personalizados, recuperar o controle de seus dados das grandes empresas de tecnologia ou deixar um legado digital.

Hooklistener: Ferramenta de Depuração e Teste de Webhook Visual

2024-12-17
Hooklistener: Ferramenta de Depuração e Teste de Webhook Visual

Hooklistener é uma ferramenta online para visualizar, depurar e testar webhooks. Oferece inspeção de carga útil em tempo real, recursos de teste local, programação personalizada, alertas acionáveis e recursos de colaboração em equipe. Os usuários podem configurar facilmente endpoints, receber e analisar webhooks e automatizar fluxos de trabalho com tarefas agendadas. O Hooklistener oferece planos gratuitos e pagos para atender às diversas necessidades, capacitando os desenvolvedores a gerenciar e depurar webhooks de forma mais eficiente.

Desenvolvimento Depuração Teste
1 2 206 207 208 210 212 213 214 215