Browsing All posts tagged under »Post«

C++ 101 – Parte 5 – Arrays e o Crivo de Eratóstenes

outubro 7, 2011

1

Olá pessoal, tudo certo? O blog ficou parado alguns dias. Isso ocorreu devido ao TechEd – onde tive a honra de participar, de forma potencializada, pela primeira vez, como palestrante; ao esquenta na Global Code; ao meu primeiro PZGeek; ao meu primeiro Community Zone; ao voidpodcast #11 (o melhor que já fizemos, IMHO); e muito… [Read more…]

Vamos aprender XNA? – Parte 18 – Mixing 2D Text (Sprites) with 3D models

setembro 24, 2011

4

Olá pessoal, tudo certo? Depois de um tempo afastado dessa série, volto a escrever um pouco sobre XNA. Aliás, nunca é muito lembrar que estarei falando sobre XNA no TechEd. Como usual, todo o código-fonte está disponível no Github. O que desejamos fazer? Nosso objetivo é mesclar conteúdo 2D (texto) com modelos 3D. Observe: Como… [Read more…]

Parallel Pipeline Pattern com .NET

setembro 10, 2011

0

Olá pessoal, tudo certo? No post de hoje, mostro como utilizar a Task Parallel Library para implementar o Parallel Pipeline Pattern. Se desejar, há mais posts sobre paralelismo com .net. Um pouco mais sobre o “Parallel Pipeline Pattern” Basicamente, nesse pattern, implementamos uma “Pipeline”, onde cada etapa é executada de forma paralela. Para isso, são… [Read more…]

O que, de fato, acontece quando usamos o “lock” do C#

setembro 7, 2011

0

Olá pessoal, tudo certo? Um dos grandes “desafios” da programação paralela está em garantir que uma mesma “parcela” de dados não seja atualizada “ao mesmo tempo” por métodos rodando em Threads/Tasks  diferentes. C# oferece uma forma fácil de garantir que isso aconteça. Basta usar a instrução lock. Mas, o que ocorre de fato quando usamos… [Read more…]

Paralelismo em métodos síncronos

setembro 7, 2011

0

Olá pessoal, tudo certo? No post de hoje mostro como usar paralelismo em sequências de métodos síncronos. O problema Considere o seguinte código: Nesse código, Func1, Func2, Func3, Func4 simulam métodos com processamento intensivo e sem concorrência no acesso a dados. Todos, na prática, consomem aproximadamente 2 segundos para completar execução. Executando esse código, temos:… [Read more…]

Parallel Aggregation Pattern com Parallel Loops

setembro 4, 2011

0

Olá pessoal, tudo certo?! No post de hoje, demonstro como executar Parallel Aggregation utilizando Parallel Loops. Importante destacar que essa abordagem é significativamente mais complexa do que aquela que demonstrei outro dia usando PLINQ. Se você gosta do assunto, considere ler o que já escrevi sobre paralelismo. Solução apenas com Parallel Loops (sem PLINQ) Observe… [Read more…]

Como escrever testes para métodos privados

setembro 3, 2011

1

Olá pessoal, tudo certo? Devemos escrever testes para métodos privados?! Depende. De qualquer forma, nesse post não pretendo discutir isso (deixo para os comentários). No post de hoje, mostro como escrever testes para métodos privados em C#. O Problema: Um método privado que desejamos testar Como indicado, o método DoSomething é privado. Logo, não seria… [Read more…]

Parallel Aggregation Pattern com PLINQ

agosto 17, 2011

2

Olá pessoal, como estamos? No post de hoje, demonstro como executar Parallel Agregation usando PLINQ. Problema A maioria dos exemplos que encontramos para paralelismo demonstra como executar diversas tarefas independentes de forma paralela. Entretanto, há uma grande diversidade de cenários onde as tarefas não podem ser executadas de forma plenamente independente. Considere, por exemplo, um… [Read more…]

Vamos aprender XNA? – Parte 15b – Pagando dívidas técnicas

agosto 15, 2011

0

Olá pessoal, como estamos? Nesse post, “pago” dívidas técnicas contraídas no post anterior dessa série. Se você ainda não leu o post anterior, recomendo que leia agora. Como sempre, você pode baixar todo o código-fonte. O que há de errado? O código que escrevemos no post anterior atingiu seu objetivo. Ou seja, temos um game… [Read more…]

Vamos aprender XNA – Parte 15 – FPS + Creating a split screen

agosto 14, 2011

1

Olá pessoal, como estamos?! Hoje, vou mostrar como “dividir” a tela para que dois jogadores consigam “brincar” ao mesmo tempo. Observe: Além disso, mostro como criar um componente para medir FPS. Para pegar todo o código fonte, acesse https://github.com/ElemarJR/VamosAprenderXNA Medindo FPS Contar o número de Frames per second (FPS) é importante para identificar eventuais “falhas”… [Read more…]

Classe Task – Alguns exemplos

agosto 13, 2011

2

Olá pessoal, tudo certo? No post de hoje, mostro como utilizar a classe Task. Saber como essa classe funciona é fundamental para a compreensão dos novos recursos para paralelismo do C# 5 (async e await). Ponto de partida Para mostrar o potencial de Task, comecemos demonstrando um método com “processamento intensivo”. Observe: Tudo que fazemos… [Read more…]

Dynamic Objects

agosto 2, 2011

5

Olá pessoal, como estamos?! Quando falamos em DLR, vemos, com alguma frequência, uma distinção clara entre objetos estáticos e objetos dinâmicos. Nesses cenários, assumimos que objetos dinâmicos são aqueles que possuem lógica para late-binding. Como já indiquei em posts anteriores, classes criadas em C#, por default, quando instanciadas, resultam objetos estáticos. Por outro lado, classes… [Read more…]

DLR Binding Actions

julho 31, 2011

2

Já sabemos que DLR oferece suporte forte para interoperabilidade entre linguagens. Também já sabemos que essa interoperabilidade é garantida, em grande parte, pelos mecanismos de binding fornecido pela DLR. Hoje, mostro um pouco mais do que acontece nos bastidores. Dynamic Language Runtime (DLR) provê doze ações diferentes executadas tanto pelos Binders quanto pelos “objetos dinâmicos”… [Read more…]

DLR Binders e Interoperabilidade de linguagem

julho 31, 2011

0

Olá pessoal, como estamos?! No último post mostrei que a DLR facilita a interoperabilidade entre linguagens. Hoje, começo a explicar como. Objetos estáticos e objetos dinâmicos Uma coisa importante a notar no post anterior está na diferenciação entre objetos estáticos e dinâmicos. Para o contexto da DLR, objetos estáticos são aqueles que não possuem qualquer… [Read more…]

DLR e a interoperabilidade entre linguagens

julho 31, 2011

1

Olá pessoal, como estamos?! Dias atrás escrevi um pouco sobre os DLR Binders. Na ocasião, mencionei que as duas principais funções destes eram o mecanismo de caching e o suporte a interoperabilidade entre linguagens. Neste post, falo um pouco mais sobre a segunda função. Interoperabilidade entre linguagens Nesse post, assumo que interoperabilidade entre linguagens está… [Read more…]

Vamos aprender XNA – Parte 7 – Space Simulator!

junho 20, 2011

11

Olá pessoal, como estamos? Já faz algum tempo que não escrevia nada sobre XNA aqui no blog. Hoje, retomo as atividades. No post anterior, mostrei como carregar um modelo 3D simples. Agora, mostro como criar um pequeno “simulador de vôo”. Ou seja, nosso usuário poderá controlar o vôo de uma espaço-nave sobre um terreno “de… [Read more…]

Implementando um EventBroker (Simples)

junho 13, 2011

1

Olá pessoal, como estamos? Minha proposta, para começar bem a semana, é escrever um EventBroker de propósito geral. Quando usar um EvenBroker? Um EventBroker atua como um centralizador para objetos que precisam disparar ou escutar eventos. Em contraste com a prática convencional, um EventBroker permite a existência de componentes “escutando” eventos de outros sem que… [Read more…]

Entendendo/Conhecendo o padrão Memento

junho 11, 2011

1

Olá pessoal, como estamos? Essa semana foi muito bacana. Muito trabalho, muita discussão, além de toda repercussão do #DNAD11. Em função de tudo isso, acabou havendo bem pouca atividade aqui no blog. Entretanto, acho que partindo de agora, as coisas começam a voltar para seu estado normal. Minha proposta de hoje é falar um pouco… [Read more…]

FluentIL – Parte 8 – Compilando expressões

junho 1, 2011

0

Olá pessoal, como estamos? Outro dia falei sobre como reconhecer tokens em cadeias de caracteres. Depois, falei como fazer o parsing destes tokens conforme uma gramática LL(1). São conhecimentos fundamentais para quem pretende entender como funciona (ou se escreve) um compilador. No post de hoje utilizo os conceitos já apresentados para adicionar suporte a “compilação”… [Read more…]

Table-driven Scanning

maio 26, 2011

4

Olá pessoal, tudo certo? Escrever um compilador é uma tarefa muito bacana. Ela nos converte em melhores programadores. Para escrever um compilador precisamos ter “firmeza” em assuntos fundamentais das ciências da computação. Implementar as diversas etapas do processo de compilação demanda conhecimentos sólidos em estruturas de dados e técnicas avançadas. No post de hoje, uma… [Read more…]

Follow