Category: Desenvolvimento

Maria Montessori: Uma Revolução na Educação

2025-02-07
Maria Montessori: Uma Revolução na Educação

Maria Montessori, médica e educadora italiana, revolucionou a educação com seu método único. Inicialmente buscando a engenharia, ela desafiou as normas sociais para se tornar uma das primeiras médicas mulheres da Itália. Seu método Montessori, enfatizando a aprendizagem autodirigida e a exploração liderada pela criança por meio de materiais e ambientes especialmente projetados, ganhou reconhecimento global. De suas humildes origens em uma sala de aula romana, a abordagem Montessori continua a moldar a educação em todo o mundo, impactando inúmeras crianças e deixando um legado duradouro nas práticas pedagógicas.

Desenvolvimento Desenvolvimento Infantil

Padronização de Segurança de Memória: Um Caminho para Software Seguro

2025-02-07

Por décadas, vulnerabilidades endêmicas de segurança de memória em bases de computação confiáveis ​​de software (TCBs) alimentaram malware e ataques devastadores. Este artigo argumenta pela padronização de segurança de memória como um passo crucial para a segurança de memória forte universal. Avanços recentes em linguagens seguras para memória, proteções de hardware/software, métodos formais e compartimentalização oferecem soluções, mas a falta de terminologia compartilhada dificulta a adoção. A padronização melhoraria as melhores práticas da indústria e resolveria as falhas de mercado que impedem o uso generalizado dessas tecnologias, levando, em última análise, a um software mais seguro para todos.

Desenvolvimento Padronização

Linguagem de montagem 6502: Um guia para iniciantes em computação retrô

2025-02-07

Este pequeno e-book apresenta a linguagem de montagem 6502, um processador histórico que alimentou máquinas icônicas como o Commodore 64 e o Apple II. Aprender montagem oferece uma compreensão profunda da arquitetura do computador. O 6502, com seu design amigável ao usuário, o torna um ponto de partida ideal. O livro o guia através de registradores, flags, instruções, modos de endereçamento e a pilha, culminando em um jogo simples de Snake. Um montador e simulador online estão incluídos para aprendizagem prática.

Desenvolvimento

arXivLabs: Projetos Experimentais com Colaboradores da Comunidade

2025-02-07
arXivLabs: Projetos Experimentais com Colaboradores da Comunidade

arXivLabs é uma estrutura que permite a colaboradores desenvolverem e compartilharem novos recursos do arXiv diretamente no 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

Construindo sua 'Red Team' de desenvolvimento: Evitando erros embaraçosos

2025-02-06
Construindo sua 'Red Team' de desenvolvimento: Evitando erros embaraçosos

Embora a maioria das equipes de desenvolvimento esteja familiarizada com as 'red teams' de segurança cibernética, este artigo defende uma 'red team' mais ampla em cada equipe de desenvolvimento. Essa equipe deve incluir: alguém para verificar falhas de design (evitando imagens embaraçosas como um incidente passado com um outdoor do GitHub); alguém usando bloqueadores de anúncios (garantindo a funcionalidade do site apesar dos bloqueadores de anúncios); e alguém usando um gerenciador de senhas (para garantir um preenchimento automático suave para formulários de login). Esses papéis aparentemente simples podem evitar erros embaraçosos, resultando em um produto mais refinado e melhor experiência do usuário.

Desenvolvimento equipe de desenvolvimento

Explorador de Heap: Um Poderoso Depurador de Heap Glibc

2025-02-06
Explorador de Heap: Um Poderoso Depurador de Heap Glibc

O `explore_heap` é um depurador de heap glibc carregado via `LD_PRELOAD` que permite a inspeção e manipulação interativas da memória heap de um programa. Ao carregar `libheap_explorer.so` e interromper o programa com um sinal SIGINT (Ctrl+C), os usuários entram em um REPL para alocar, liberar blocos e imprimir listas de blocos livres, tcache, fastbin e bin, auxiliando na depuração de problemas relacionados à memória. Atualmente testado no glibc 2.41+ do Arch Linux, a adaptação para outras versões modernas do glibc requer o ajuste de constantes.

Mantenedores do Kernel Linux Resistem ao Rust: Uma Guerra de Linguagens de Programação

2025-02-06
Mantenedores do Kernel Linux Resistem ao Rust: Uma Guerra de Linguagens de Programação

A integração do Rust no kernel Linux está se mostrando difícil. Vários mantenedores do kernel se opõem fortemente ao uso do Rust, citando o aumento da complexidade e do risco associados a múltiplas linguagens. Discussões recentes sobre o uso da API DMA por um driver Rust reacenderam o conflito. O mantenedor Christoph Hellwig rejeitou explicitamente o código Rust, argumentando que manter projetos multilínguas é doloroso e que os desenvolvedores Rust devem lidar sozinhos com a interface com o código C. Embora o projeto Rust for Linux vise simplificar a integração por meio de uma camada de abstração, Hellwig sustenta que isso aumenta a sobrecarga de manutenção. Essa controvérsia destaca posições divergentes na comunidade Linux sobre escolhas de linguagens de programação e os desafios de integrar novas tecnologias em sistemas grandes existentes. O resultado final ainda está por ser visto, mas terá um impacto profundo na direção futura do Linux.

Desenvolvimento

Reestruturação Criptográfica do Go 1.24: Alcançando Conformidade com o FIPS 140-3

2025-02-06

O Go 1.24 reformulou significativamente seus pacotes de criptografia para atingir a conformidade com o FIPS 140-3. Este é um grande passo em frente, com uma implementação em Go puro (e assembly Go) de um módulo criptográfico validado pelo FIPS 140-3, eliminando a dependência de cgo ou chamadas de sistema. O Microsoft Go 1.24 também foi atualizado, adicionando suporte de pré-visualização para macOS e suporte aprimorado para Azure Linux, mas mantém o uso de bibliotecas do sistema para criptografia, divergindo da abordagem oficial do Go. Novas variáveis de ambiente como GODEBUG=fips140=on e GOFIPS140=latest controlam o modo FIPS; o tempo de execução o ativa automaticamente em sistemas compatíveis com FIPS (Azure Linux, Windows).

Desenvolvimento

API de Captura de Tela de Site Sem Servidor: A Força por Trás do Abbey AI

2025-02-06
API de Captura de Tela de Site Sem Servidor: A Força por Trás do Abbey AI

Gordon Kamer desenvolveu uma robusta API de raspagem da web para suportar o Abbey, uma plataforma de IA. Esta API roda localmente, recebendo uma URL como entrada e retornando dados do site e capturas de tela. Impulsionada pelo Playwright e Docker, executa JavaScript, inclui recursos de segurança como limites de memória e isolamento de processos, e retorna uma resposta multipart com dados JSON, conteúdo da página e até 5 capturas de tela. O acesso é controlado por meio de chaves de API, com alocação de memória personalizável e parâmetros de captura de tela.

Desenvolvimento raspagem web

Serviço como Substituto de Software (SaaSS): Outra Ameaça à Sua Liberdade de Computação

2025-02-06

Este artigo explora o conceito de "Serviço como Substituto de Software (SaaSS)", que se refere ao uso de um serviço de terceiros como substituto para executar seu próprio programa. Richard Stallman argumenta que o SaaSS priva os usuários do controle sobre seus cálculos, pois o processo é entregue a servidores controlados por outros. Isso é semelhante ao software proprietário, ambos apresentando riscos de segurança, como vazamento de dados e portas traseiras. O autor apela aos usuários para rejeitarem o SaaSS e optarem por usar software livre e programas executados em computadores que controlam para manter sua liberdade de computação.

Desenvolvimento liberdade de computação

Explorador de Páginas SQLite: Uma interface gráfica para espiar seus bancos de dados

2025-02-06
Explorador de Páginas SQLite: Uma interface gráfica para espiar seus bancos de dados

Um pequeno aplicativo GUI, construído com redbean, permite que você explore seus bancos de dados SQLite página por página, exatamente como o SQLite os vê. É um único executável de 6,5 MB que roda nativamente no Windows, Linux, macOS e muito mais, oferecendo insights sobre como os índices são armazenados, a compactação de dados e as estruturas de árvore B. Embora possam existir avisos de vírus devido ao uso de um executável políglota, o projeto é confiável e oferece uma perspectiva única para desenvolvedores. É um projeto divertido que pode ser lento com bancos de dados maiores.

Desenvolvimento

Migrando um Servidor de Jogo Massivo de Scala 2.13 para Scala 3: Uma Odisseia de um Ano

2025-02-06
Migrando um Servidor de Jogo Massivo de Scala 2.13 para Scala 3: Uma Odisseia de um Ano

Este artigo detalha a jornada do autor na migração de um servidor de jogo para celular multijogador em produção, com quatro anos de idade, do Scala 2.13 para o Scala 3. Uma tentativa inicial falhou devido à remoção de recursos importantes no Scala 3 (anotações de macro, projeções de tipo) e as mudanças massivas de código necessárias. Um ano depois, uma migração bem-sucedida foi alcançada por meio de uma abordagem multifacetada: aplicando preventivamente a sintaxe do Scala 3 na base de código do Scala 2, utilizando as ferramentas de inspeção de código do IntelliJ, geradores de código-fonte personalizados do sbt para produzir lentes Monocle e soluções criativas para projeções de tipo. Os desafios encontrados incluíram conflitos de dependências e tempos de compilação lentos, resolvidos por meio da criação de um fork de uma biblioteca, otimização do código usando Tuple.Map do Scala 3 e outras técnicas. Apesar dos obstáculos, a migração destaca o poder e o valor das capacidades de metaprogramação do Scala 3.

Desenvolvimento Migração

Um compilador JIT e ambiente de execução Java em Common Lisp: OpenLDK

2025-02-06
Um compilador JIT e ambiente de execução Java em Common Lisp: OpenLDK

OpenLDK é um compilador Just-In-Time (JIT) e ambiente de execução para Java, implementado totalmente em Common Lisp. Ele preenche a lacuna entre Java e Common Lisp traduzindo incrementalmente o bytecode Java para Lisp, que então é compilado em código de máquina nativo. Essa abordagem única permite o mapeamento suave de classes Java para classes do Common Lisp Object System (CLOS), permitindo a integração fácil entre as bases de código Java e Common Lisp. Embora não seja projetado para alto desempenho, o OpenLDK oferece uma solução prática para integrar bibliotecas Java em um fluxo de trabalho Lisp. Atualmente, ele suporta principalmente Linux e SBCL, e está em desenvolvimento, com muitos recursos ainda a serem implementados, como suporte para arquivos de classe além do Java 8 e verificação de bytecode.

Desenvolvimento Compilador JIT

GitHub Copilot recebe atualização principal: modo agente e Copilot Edits GA

2025-02-06
GitHub Copilot recebe atualização principal: modo agente e Copilot Edits GA

O GitHub Copilot recebeu uma atualização significativa! O novo modo agente capacita o Copilot com maior autonomia, permitindo que ele itere no código, identifique e corrija erros e até mesmo infera e complete subtarefas não especificadas. O Copilot Edits agora está geralmente disponível, oferecendo edição de código em vários arquivos com um fluxo conversacional suave. Além disso, o GitHub mostrou o Project Padawan, um agente autônomo de engenheiro de software que irá lidar com problemas do GitHub, gerar e testar código automaticamente e até mesmo atribuir revisores. Essas atualizações visam liberar os desenvolvedores de tarefas rotineiras, permitindo que eles se concentrem em trabalhos mais criativos.

Desenvolvimento

Armadilhas de Refatoração: Quando Não Refatorar

2025-02-06
Armadilhas de Refatoração: Quando Não Refatorar

Este artigo explora as armadilhas da refatoração de código, destacando que nem todo código precisa de refatoração. O autor apresenta vários cenários em que a refatoração é inadequada, como tentar corrigir bugs ou adaptar-se a alterações de terceiros por meio de refatoração; introduzir abstração desnecessária levando à complexidade do código; abordar vários problemas de código simultaneamente; refatorar código não testado; e refatorar código imutável. O artigo enfatiza que a refatoração deve ser incremental, preservar o comportamento e envolver pequenas alterações reversíveis com cobertura de testes. Defende a pausa na refatoração quando o entendimento é deficiente ou surgem novos requisitos. Refatorar código frequentemente alterado e complexo produz os melhores resultados.

Desenvolvimento melhores práticas

Tubos Virtuais: Um Método Simples e Eficiente para Simular Água em Terreno

2025-02-06
Tubos Virtuais: Um Método Simples e Eficiente para Simular Água em Terreno

Este artigo apresenta um método simples e eficiente para simular o fluxo de água sobre terrenos em jogos – o método dos tubos virtuais. Baseado nas equações de água rasa e usando uma grade escalonada, este método trata o fluxo de água como colunas conectadas por tubos imaginários. O fluxo de água é acelerado com base nas diferenças de nível da água, e a escala de saída evita quantidades negativas de água. O autor detalha as três etapas: aceleração do fluxo, escala de saída e atualização da coluna de água, fornecendo exemplos de código. Este método é fácil de entender, computacionalmente eficiente e adequado para jogos que exigem modificação de terreno e simulação de água, como jogos de construção de cidades. Embora tenha limitações, como a falta de inércia e difusão de velocidade, é prático para a maioria dos cenários de jogos.

arXivLabs: Projetos Experimentais com Colaboradores da Comunidade

2025-02-06
arXivLabs: Projetos Experimentais com Colaboradores 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

Par: Uma Linguagem de Programação Concorrente Experimental com Playground Interativo

2025-02-06
Par: Uma Linguagem de Programação Concorrente Experimental com Playground Interativo

Par é uma linguagem de programação concorrente experimental que tenta trazer o poder expressivo da lógica linear para a prática. Ela possui propriedades únicas: os processos se comunicam por meio de canais, cada canal tem no máximo dois pontos finais e deadlocks são impossíveis. Todos os valores são canais, incluindo listas, funções e streams infinitas. Embora Par atualmente careça de alguns recursos, como tipos primitivos e não-determinismo, ela já expressa uma rica concorrência. Este artigo detalha a sintaxe, semântica e exemplos do Par, cobrindo canais, sinais, recursão e sintaxe de expressão. Um playground interativo permite que os usuários experimentem a concorrência do Par.

Desenvolvimento lógica linear

A API de Temporizador Multiplataforma Elusive: Uma Jornada Através das APIs do Sistema Operacional

2025-02-06

Este artigo explora os desafios das APIs de temporizador multiplataforma na programação C. O autor descobre que diferentes sistemas Unix (incluindo Linux, FreeBSD, NetBSD, etc.) lidam com temporizadores de maneiras muito diferentes. A função POSIX timer_create, baseada em sinais, apresenta vários problemas, como interoperabilidade ruim com outros primitivos do SO e interferência na máscara de sinal. O artigo examina os prós e contras de várias soluções, incluindo timerfd_create, kqueue, port_create e io_uring, concluindo que, para aplicativos multiplataforma, implementar temporizadores no espaço do usuário, como o libuv faz, é uma abordagem mais eficiente e confiável. O libuv usa uma estrutura de dados de heap mínimo para gerenciar temporizadores e usa chamadas de sistema como poll/epoll/kqueue para multiplexação.

Memfault está contratando: Engenheiro de SDK Android (US$ 100.000 - US$ 180.000)

2025-02-06
Memfault está contratando: Engenheiro de SDK Android (US$ 100.000 - US$ 180.000)

A Memfault, uma plataforma de confiabilidade de IoT, está procurando um Engenheiro de SDK Android (AOSP). Você colaborará com líderes de SDK (Linux, MCU) e equipes multifuncionais para moldar o futuro do Android na Memfault. Espere uma pilha de tecnologia diversificada que abrange SDKs de microcontroladores, processamento de dados em larga escala no backend e gráficos personalizados complexos no frontend. A empresa incentiva a ampla contribuição em toda a sua tecnologia e oferece arranjos de trabalho flexíveis com reuniões de equipe regulares e eventos anuais fora do local.

Desenvolvimento SDK Android

AsciiDoc: Uma Alternativa Superior ao Markdown para Documentação

2025-02-06
AsciiDoc: Uma Alternativa Superior ao Markdown para Documentação

Cansado das limitações do Markdown? O AsciiDoc pode ser a alternativa estruturada e completa que você precisa. Ele se destaca no tratamento de tabelas, notas de rodapé e referências cruzadas, suporta composição de documentos e conteúdo condicional e possui um ecossistema unificado. Este guia usa um guia do usuário de aplicativo de amostra para demonstrar os recursos do AsciiDoc, incluindo metadados, títulos, formatação de texto, listas, tabelas, atributos e conteúdo condicional. Também apresenta o adoc Studio, um editor que simplifica a exportação e a gestão de documentos AsciiDoc, integrando-se perfeitamente com o Git para fluxos de trabalho Docs-as-Code. Combinando AsciiDoc com Git e adoc Studio, a documentação se torna mais eficiente e profissional.

Desenvolvimento

Biblioteca Go de Mapeamento Multi-Chave: go-multikeymap

2025-02-06
Biblioteca Go de Mapeamento Multi-Chave: go-multikeymap

go-multikeymap é uma biblioteca Go eficiente que implementa estruturas de dados de mapeamento com várias chaves. Ela oferece dois tipos: MultiKeyMap e BiKeyMap. O MultiKeyMap permite uma chave primária e várias chaves secundárias de string, enquanto o BiKeyMap exige que ambas as chaves sejam únicas. Ambos estão disponíveis em versões concorrentes e não concorrentes, com benchmarks mostrando tempos de acesso próximos a O(1). A biblioteca é fácil de usar, bem documentada e inclui resultados de benchmark para avaliação de desempenho.

De vídeos automatizados para quadrinhos em movimento: a jornada criativa de um programador

2025-02-06

Para otimizar a criação de conteúdo de vídeo para o projeto Web Origami, um programador experimentou a automação da geração de áudio e vídeo. Diante de desafios como scripts de macro tediosos e edição de vídeo trabalhosa, ele mudou para a criação de quadrinhos em movimento. Ele construiu um sistema usando HTML/CSS e animação JavaScript mínima, gerando áudio e vídeo a partir de um roteiro. Os recursos do Origami facilitaram os testes e atualizações. Essa abordagem permitiu que ele se concentrasse na narrativa, aumentando a eficiência e eliminando o incômodo das atualizações de vídeo.

Desenvolvimento Quadrinhos em Movimento

Alpine Linux precisa da sua ajuda após o encerramento do Equinix Metal

2025-02-06

A infraestrutura principal do Alpine Linux depende do Equinix Metal, que está sendo descontinuado. Isso afeta seus espelhos de download, integração contínua e ambiente de desenvolvimento. Para garantir a continuidade do serviço, o Alpine Linux está buscando ajuda da comunidade, incluindo espaço de colocation na Holanda, servidores bare-metal (para espelhos e CI) ou VMs e contribuições financeiras. Eles destacam a importância do financiamento sustentável e incentivam doações via Open Collective.

Desenvolvimento apoio da comunidade

Marksmith: Editor Markdown no estilo GitHub para Ruby on Rails

2025-02-06
Marksmith: Editor Markdown no estilo GitHub para Ruby on Rails

Cansado de editores Markdown desajeitados? O Marksmith oferece uma experiência limpa e no estilo GitHub para desenvolvedores Ruby on Rails. Esta gem possui integração com ActiveStorage, um painel de visualização, barra de ferramentas e continuação de lista — todos os recursos de que você precisa para escrever Markdown sem problemas. Ele até se integra ao Avo para facilitar o gerenciamento da biblioteca de mídia. Confira!

Desenvolvimento Editor Markdown

Lançamento Estável do OpenWrt 24.10: Mais de 1970 Dispositivos Suportados

2025-02-06

A comunidade OpenWrt orgulhosamente anuncia o lançamento estável do OpenWrt 24.10, uma atualização significativa em relação ao 23.05. Desenvolvido ao longo de um ano e incorporando mais de 5400 commits, ele possui suporte para mais de 1970 dispositivos, adicionando mais de 100 novos, incluindo o OpenWrt One. A atualização do OpenWrt 23.05 geralmente é suportada pelo utilitário sysupgrade, mas é altamente recomendado fazer um backup da configuração. No entanto, usuários de dispositivos específicos (como Linksys E8450, Xiaomi AX3200 e switches da série Zyxel GS1900) precisam seguir instruções especiais de atualização para evitar danos ao dispositivo.

Desenvolvimento

Vulnerability-Lookup: Plataforma Colaborativa de Gerenciamento de Vulnerabilidades

2025-02-06
Vulnerability-Lookup: Plataforma Colaborativa de Gerenciamento de Vulnerabilidades

O Vulnerability-Lookup é uma poderosa plataforma de código aberto para correlacionar rapidamente vulnerabilidades de várias fontes, simplificando o processo de divulgação coordenada de vulnerabilidades (CVD). Ele suporta a importação de diversas fontes, incluindo NIST NVD e CISA, e permite que os usuários adicionem observações de vulnerabilidades, comentários e criem pacotes. Sua API e biblioteca Python facilitam a integração com outras ferramentas, permitindo que os desenvolvedores criem facilmente suas próprias ferramentas de observação. O Vulnerability-Lookup é licenciado sob a GNU Affero GPL v3.0 e é desenvolvido pelo CIRCL, Alexandre Dulaunoy, Raphaël Vinot e Cédric Bonhomme.

Assembly 6502: Um Ponto de Partida Surpreendentemente Bom para Aprender Assembly?

2025-02-06
Assembly 6502: Um Ponto de Partida Surpreendentemente Bom para Aprender Assembly?

Escolher um ponto de partida para aprender linguagem assembly pode ser assustador. Este artigo argumenta que o processador 6502 é surpreendentemente adequado para iniciantes. Embora não seja amplamente usado em aplicações modernas, seu conjunto de instruções simples (apenas 56 instruções) e abundância de recursos de aprendizado o tornam ideal para compreender conceitos fundamentais de assembly. Sua história em computadores clássicos como o Apple II e o Commodore 64 fornece uma riqueza de emuladores e materiais de aprendizado. O autor recomenda Easy 6502 e Visual6502.org como excelentes recursos de aprendizado, comparando-o com as complexidades de arquiteturas como x86-64 e ARM, destacando ainda mais as vantagens do 6502 para iniciantes.

Desenvolvimento

Disputa de Marca Registrada JavaScript da Oracle: Uma Batalha Legal Prolongada

2025-02-06
Disputa de Marca Registrada JavaScript da Oracle: Uma Batalha Legal Prolongada

Um esforço comunitário liderado pelo CEO da Deno Land, Ryan Dahl, está desafiando a propriedade da marca registrada "JavaScript" pela Oracle, gerando controvérsia. A Oracle é acusada de apresentar materiais falsos em seu pedido de renovação de marca registrada e de tentar atrasar os procedimentos legais. O cerne da disputa reside em saber se JavaScript se tornou um termo genérico e se a Oracle abandonou a marca registrada. A Oracle argumenta que possui motivos legítimos e apresenta provas adicionais. Essa batalha legal reflete a proteção rigorosa de marcas registradas por gigantes de tecnologia e os esforços da comunidade de código aberto para garantir o uso justo.

Desenvolvimento disputa de marca registrada

Cliente Discord não oficial para Windows 2000 e superior

2025-02-06
Cliente Discord não oficial para Windows 2000 e superior

Discord Messenger é um cliente Discord não oficial surpreendentemente compatível com Windows 2000 e versões posteriores. Este projeto de código aberto, licenciado sob MIT, é uma versão beta e apresenta o risco de violar os Termos de Serviço do Discord. Embora possua recursos essenciais como mensagens, manipulação de anexos e suporte a emojis, sua compilação exige habilidades técnicas. O projeto suporta compilações MinGW e Visual Studio e requer a compilação ou aquisição de uma biblioteca OpenSSL.

Desenvolvimento
1 2 167 168 169 171 173 174 175 214 215