Categoria: Computação

  • I/O por reação à disponibilidade: aplicações

    Em um post anterior, recapitulei antigos estudos sobre concorrência no processamento de I/O com mecanismos de reação à disponibilidade, delineando três reactors, select_reactor, poll_reactor e epoll_reactor definidos genericamente para qualquer Handler conforme este concept, onde device_type, interest_type e event_type ficaram como exercício para o leitor. Grosso modo, device_type é um…

  • I/O por reação à disponibilidade

    Revisão em 2022-08-15: definição do conceito handler corrigida. Completei minha graduação em Ciência da Computação na Universidade do Estado do Rio de Janeiro em 2009, entregando como trabalho de conclusão de curso a monografia “Projetando Servidores Concorrentes Genéricos em C++0x“. Naquele trabalho, explorei o projeto de uma API de “sockets”…

  • Modularizando Componentes com C++20

    C++20 trouxe grandes, muito aguardadas e altamente controversas novidades para a linguagem. Neste artigo, vamos o novo mecanismo de módulos através de uma aplicação prática, a transformação dos componentes de um projeto pré-existente em módulos. Este artigo examinará um projeto imaginário baseado em uma experiência real usando a ferramenta Visual…

  • Transformando In em Out: length-prefixing

    No post anterior desta série, investigamos operadores capazes de “expandir” uma sequência de unidades em uma sequência de blocos através do acréscimo de “preenchimento” i.e. padding. Operadores deste tipo são frequentemente utilizados em composições com operadores de cifra em bloco como AES/CBC para cifrar dados de tamanho arbitrário. Nosso objetivo…

  • Transformando In em Out: padding

    No post anterior desta série, investigamos o desalinhamento entre estágios de um pipeline e o uso de padding para corrigir o alinhamento. Em resumo, se a sua fonte entrega uma quantidade qualquer de unidades e a transformação consome sempre blocos de N unidades, é necessário introduzir uma etapa intermediária para…

  • Transformando In em Out: streaming impuro

    Neste post, vamos dar sequência ao estudo do *streaming* avaliando alguns operadores simples porém “impuros”: a operação depende de algum estado.

  • Transformando In em Out: streaming

    Neste artigo, vamos considerar a técnica de streaming. Para compreendê-la, vamos primeiro considerar sua circunstância. Em seguida, vamos identificar suas virtues, depois, seus vícios.

  • Fornecendo Componentes Injetáveis

    É passado o tempo de discutir sobre usar ou não usar injeção de dependências: agora, a pegunta importante é qual escolher e como usar. Nesse artigo, vamos discutir como fornecer componentes para um conjunto aberto de mecanismo de injeção para JVM.