Elemar DEV

Negócios, tecnologia e desenvolvimento

Acessando a base de dados do WorldBank e o poder da linguagem R a partir do F#

No post anterior, mostrei a versatilidade do F# para exploração de dados provenientes de fontes externas sem sacrificar os benefícios da tipagem estática. Agora, vamos explorar alguns usos criativos de … Continuar lendo

31/07/2015 · Deixe um comentário

F# Type Providers – Trazendo um pouco da flexibilidade de linguagens dinâmicas para uma linguagem estática.

Este post é inspirado em um exemplo encontrado no excelente livro Machine Learning Projects for .NET Developers de Mathias Brandewinder. Quando consumimos dados de uma fonte externa (ao nosso código), … Continuar lendo

30/07/2015 · 1 comentário

O que é “mais funcional”?

Olá, Estou desenvolvendo um solver para problemas de Xadrez e os fontes estão no Github. Eu uso um uint64 para armazenar que casas no tabuleiro estão ocupadas. Como tenho 64 … Continuar lendo

25/06/2015 · 8 Comentários

Para não esquecer! Em F# use Records com moderação

Olá. Tudo certo? Resolvi aprender F# escrevendo algo um pouco mais complexo que um “Hello World”. Estou escrevendo um “solver” para problemas de xadrez. Minha ideia é expor minha “vergonha” … Continuar lendo

18/06/2015 · 3 Comentários

Escrevendo um “Solver” de problemas de Xadrez para … aprender F#

Olá. Tudo bem? Há alguns dias proponho problemas de Xadrez em minha conta no Twitter. O primeiro foi esse aqui: A solução é relativamente simples: 1) Nh6! gxh6 2) g7+ … Continuar lendo

10/06/2015 · Deixe um comentário

Encontrando o “Bit menos significativo ligado” em F# (usando Magic Bitscan)

Olá. Há algum tempo escrevi um post explicando os fundamentos de Magic Bitscan. Aqui, compartilho código para encontrar o bit menos significativo de um longo sem sinal, em F#. Era … Continuar lendo

08/06/2015 · Deixe um comentário

Implementando “Actor Model” com Akka.net – Parte 3 – Criação de um Actor

Olá. Bem-vindo ao terceiro post da série em que apresento fundamentos para implementação do “Actor Model” usando Akka.net. Se está chegando agora, recomendo fortemente que você veja os posts anteriores … Continuar lendo

02/06/2015 · Deixe um comentário

Implementando “Actor Model” com Akka.net – Parte 2 – Um exemplo muito simples

Olá. No post anterior, falei um pouco sobre alguns conceitos fundamentais para Akka.net. Recomendei dar uma olhada em um exemplo que já implementado. Entretanto, acho fiquei devendo  algo um pouco mais … Continuar lendo

29/05/2015 · 1 comentário

Implementando “Actor Model” com Akka.net – Parte 1 – Fundamentos

Olá. Já faz tempo que não escrevo uma série didática de posts aqui no blog. Estou retomando o hábito com essa série sobre Akka.net. Preliminares O que é Akka.net Pegando … Continuar lendo

28/05/2015 · 2 Comentários

F# Behind the Scenes – Desvendando o uso de “Discriminated Unions” para representar hierarquias de objetos

Olá. F# é uma linguagem que conquista por sua expressividade. Consideremos o código que segue: Aqui encontramos um exemplo comum de utilização para “Discriminated Unions”. Fazendo um paralelo com C#, … Continuar lendo

13/05/2015 · 1 comentário

F# Behind the Scenes – Implementação ingênua (do compilador) ou Interpretação Ingênua (minha)

Olá pessoal Considere o código que segue em F#. Bonito, não? Quando compilado, o código IL gerado pode ser convertido para algo assim em C# A parte que me deixa … Continuar lendo

11/05/2015 · 4 Comentários

F# Behind the Scenes – O segredo dos módulos e do currying

Olá. Tudo certo? Algumas coisas que F# faz parecem mágica. Concorda? Então, vamos dar uma olhada no que ocorre “behind the scenes” para entender um pouco o que ocorre. Vejamos … Continuar lendo

11/05/2015 · 2 Comentários

Primeiros passos com “Actor Model” (usando F# e Akka.net)

Olá. Tudo certo? Como você já deve ter percebido, pelos últimos posts, comecei a estudar “Actor Model”. Para ter algo “prático”, escrevi um primeiro programa, bem simples, em Scala. Depois … Continuar lendo

07/04/2015 · 4 Comentários

Primeiros passos com “Actor Model” (usando C# e Akka.net)

Olá pessoal. Tudo certo? Ontem comecei meus estudos sobre “Actor Model”. Comecei usando Scala e sua biblioteca padrão. Depois, enriqueci o modelo mostrando uma implementação usando Scala com o framework … Continuar lendo

07/04/2015 · 2 Comentários

Primeiros passos com “Actor Model” (usando Scala + Akka)

Olá pessoal, Esta é uma releitura de meu post anterior (por favor, veja o texto do post anterior para entender os conceitos). Antes, havia feito minha implementação usando a biblioteca padrão … Continuar lendo

06/04/2015 · 2 Comentários

Primeiros passos com “Actor Model” (usando Scala)

Olá pessoal. Tudo certo? Este post é uma das “heranças” do QCon São Paulo. Ele apresenta o início dos meus estudos sobre “Actors Model”. Deverei retornar ao assunto, com alguma frequência, … Continuar lendo

06/04/2015 · 3 Comentários

Sobre o projeto “Enquadrando Ideias”

Olá. Tudo certo? Se me acompanha nas redes sociais, viu que iniciei a divulgar um novo blog: “Enquadrando Ideias” Do que trata Os temas discutidos no blog serão: Gestão e Liderança … Continuar lendo

01/04/2015 · 1 comentário

Escrevendo testes de unidade com F#

Olá pessoal. Tudo certo? Semana passada ajudei a organizar e palestrei no QCON. Do evento, trouxe como “tema de casa” a tarefa de voltar a estudar algumas tecnologias. Dentre elas, … Continuar lendo

30/03/2015 · 3 Comentários

Sobre Desenvolvimento Poliglota

Olá pessoal. Tudo certo? Estou participando, mais uma vez, do QCON. Acho este evento fantástico por me proporcionar a oportunidade de ter contato com diversas tecnologias, sempre com grandes autoridades. … Continuar lendo

25/03/2015 · 7 Comentários

Spheres! com TypeScript

Olá. Como no post anterior, estou pegando um exemplo antigo, originalmente em JavaScript, e reescrevendo em TypeScript. Spheres! Let’s code! Adorando TypeScript! Era isso.

23/12/2014 · Deixe um comentário

Jornada nas Estrelas (Starfield) com TypeScript

Olá amigos. Há algum tempo, escrevi um pequeno “Starfield” em Javascript puro. Hoje, refaço esse exemplo usando TypeScript. Por que TypeScript? Adoro JavaScript. Considero JS extremamente poderosa e sei de … Continuar lendo

23/12/2014 · 2 Comentários

Como ‘foreach’ é resolvido pelo compilador C#

Olá. Tudo certo? Considere esse código: ele é escrito pelo compilador assim: Que tem correspondência exata para: Repare que não há qualquer relação com as interfaces IEnumerable, IEnumerable, IEnumerator e … Continuar lendo

12/12/2014 · 5 Comentários

Como o switch é resolvido pelo compilador do C#

Olá. Nesse post pretendo apresentar algumas informações sobre como o compilador do C# resolve o switch. O que eu vou apresentar é baseado em interpretações do código IL gerado pelo compilador. … Continuar lendo

12/12/2014 · 4 Comentários

O que eu aprendi colaborando com um projeto Open Source

Olá. O projeto CodeCracker tem pouco mais de um mês. Entretanto, parece ter mais. Ele me proporcionou muito aprendizado. Neste post, pretendo compartilhar algumas das coisas que aprendi. Pessoas motivadas … Continuar lendo

11/12/2014 · 4 Comentários

Entendendo a compilação do C# (csc.exe e JIT)

Olá pessoal. Em tempos de Roslyn, nunca é demais voltar a discutir o processo de compilação do .NET. Nesse post, apresento um exemplo inspirado em uma apresentação de um engenheiro … Continuar lendo

10/12/2014 · 2 Comentários

Considere métodos de criação “ReplaceXXXX” e “WithXXXX” em objetos somente leitura

Olá. Tudo certo? De uns tempos para cá, certamente influenciado pelo paradigma funcional, venho adotando com grande frequência objetos somente leitura. Um exemplo de objeto somente leitura (em tempo, todo … Continuar lendo

09/12/2014 · 1 comentário

CodeCracker – Parte 8 – Make a variable const whenever it’s possible

Tudo certo, pessoal? Nesse post, apresento a implementação do issue #79 do CodeCracker. A ideia é converter toda variável em constante quando for possível. Analyzing Abaixo, a implementação para identificar … Continuar lendo

01/12/2014 · Deixe um comentário

CodeCracker – Parte 7 – Suggest switch if you have 3 or more nested if / else statements

Olá. Tudo certo? No post de hoje apresento a implementação de mais um analyzer e codefix desenvolvido para o projeto CodeCracker: Suggest switch if you have 3 or more nested … Continuar lendo

25/11/2014 · Deixe um comentário

Multiplicação divertida (em C#)

Olá. Tudo certo? Como multiplicar dois números positivos sem usar o operador de multiplicação? A abordagem mais simples, ao meu ver seria: Entretanto, essa abordagem está longe de ser eficiente. … Continuar lendo

24/11/2014 · 2 Comentários

Pensando produtos inteligentes e conectados (IoT) e a competição

Olá. Tudo certo? É pouco provável que você ainda não tenha ouvido falar em Internet das Coisas. De qualquer forma, é muito interessante pensar no impacto nos negócios que esta … Continuar lendo

24/11/2014 · Deixe um comentário

CodeCracker – Parte 6 – On Linq clauses move predicate from Where to First, Single, etc when applicable

Olá. Tudo certo? No post de hoje apresento a implementação de mais um analyzer e codefix desenvolvido para o projeto CodeCracker: On Linq clauses move predicate from Where to First, … Continuar lendo

20/11/2014 · Deixe um comentário

CodeCracker – Parte 5 – Always use ‘var’

Olá. Tudo certo? Agora que já cobri os fundamentos para que você possa entender e colaborar com o projeto CodeCracker, vou começar a mostrar algumas implementações que estamos fazendo. Começo … Continuar lendo

19/11/2014 · 1 comentário

CodeCracker – Parte 4 – Depurando e Testando

Olá. Tudo certo? Se você já baixou o Visual Studio 2014 Preview, instalou as extensões recomendadas no site do Roslyn e clonou o repositório do CodeCracker, então, já está pronto … Continuar lendo

17/11/2014 · 2 Comentários

CodeCracker – Parte 3 – “Arrumando” o código (CodeFix)

Olá. Tudo certo? Na parte anterior, mostrei como “detectar” código que pode ser melhorado através de Diagnostic Analyzers. Agora, vou mostrar como escrever o “CodeFix” para o código detectado. O … Continuar lendo

15/11/2014 · Deixe um comentário

CodeCracker – Parte 2 – Construindo um Analyzer

Olá. Tudo certo? Nesse post, apresento uma breve introdução ao desenvolvimento de “Diagnostic Analyzers” usando Roslyn. O que é um Roslyn Diagnostic Analyzer? Um code analyzer é um “artefato” que … Continuar lendo

15/11/2014 · 4 Comentários

CodeCracker – Parte 1 – O que é? Como colaborar?

Olá. Tudo certo? Bem-vindos ao CodeCracker. Uma ferramenta open source, iniciada por brasileiros, que melhora a experiência de codificação no Visual Studio 2015 (ainda em preview, já disponível para download). … Continuar lendo

15/11/2014 · 4 Comentários

Resolvendo o problema do Caixeiro Viajante usando algoritmos genéticos

Olá. Tudo certo? Este post é uma releitura, em .NET, desse post. Trata-se de uma implementação simples de um algoritmo genético para encontrar soluções boas para o problema do caixeiro … Continuar lendo

29/10/2014 · 3 Comentários

Resolvendo o problema do caixeiro viajante usando Simulated Annealing

Olá. Este post é uma releitura, em .NET, desse post. Quero apresentar uma implementação muito simples da metaheurística “Simulated Annealing” para encontrar soluções boas para o problema do caixeiro viajante. Você … Continuar lendo

28/10/2014 · 1 comentário

Tentando superar “Buy now with one-click” com uma “Wish list”

Olá pessoal. Tudo certo? Eu sempre gostei de ler, estudar e aprender. Mas, já há algum tempo, vinha comprando mais livros do que conseguia ler. Também estava perdendo tempo demais … Continuar lendo

25/10/2014 · 2 Comentários

A busca (não tão) insana pela dívida técnica e o retorno (sofrido) ao Greenfield!

Olá, Alguns fatos sobre a forma como faço o meu trabalho Em busca da dívida técnica Fato 1 No meu trabalho, desenvolvo soluções com considerável complexidade técnica. Meus algoritmos não … Continuar lendo

23/10/2014 · Deixe um comentário

Static Analysis 101 – Parte 2 – Acoplamento aferente e acoplamento eferente (com NDepend)

Olá. Nesse post, sigo discussão sobre análise estática de código. Aqui, trato de acoplamento aferente e acoplamento eferente. Há algum tempo, Leandro Daniel escreveu um ótimo post conceituando os termos. … Continuar lendo

21/10/2014 · 1 comentário

Quando o contexto (enganoso) torna as decisões arquiteturais (bem) mais difíceis (Teenage Sex Pattern)

Olá, Esse post é resultado de uma “provocação” que encontrei no excelente livro Microsoft .NET – Architecting Applications for the Enterprise (2nd edition). Vou compartilhar com vocês e gostaria de … Continuar lendo

18/10/2014 · 3 Comentários

Static Analysis 101 – Parte 1 – O que é?

Olá pessoal. Tudo certo? Este é o primeiro post da série onde apresento técnicas e ferramentas para análise estática de código. O que é análise estática? Segundo a definição da Wikipedia: … Continuar lendo

16/10/2014 · 9 Comentários

O que há de novo no C# 6 – Parte 9 – nameof operator

Olá. Este é o nono post da série onde apresento as novidades do C# 6. Nesse post, apresento o operador nameof. Nunca gostei de ter que usar “strings mágicas” para representar … Continuar lendo

02/10/2014 · 3 Comentários

O que há de novo no C# 6 – Parte 8 – Expression Bodied Members

Olá. Este é o oitavo post da série onde apresento as novidades do C# 6. Nesse post, apresento Expression Bodied Members. Observe o seguinte código: Reparou Length e Scale? Bacana não? São … Continuar lendo

01/10/2014 · 5 Comentários

O que há de novo no C# 6 – Parte 7 – Dictionary Initializer

Olá. Este é o sétimo post da série onde apresento as novidades do C# 6. Nesse post, apresento um novo formato para inicialização de dicionários. Como é no C# 5 Nunca … Continuar lendo

01/10/2014 · 4 Comentários

O que há de novo no C# 6 – Parte 6 – Exception Filters

Olá. Este é o sexto post da série onde apresento as novidades do C# 6. Nesse post, apresento Exception Filters: Até o C# 5, caso desejássemos implicar alguma condicional para o … Continuar lendo

01/10/2014 · 2 Comentários

O que há de novo no C# 6 – Parte 5 – Null-propagating operator

Olá, Este é o quinto post da série onde apresento as novidades do C# 6. Nesse post, apresento uma das novidades mais bacanas (IMHO) do C#6: Null-propagating operator. Esse código do … Continuar lendo

30/09/2014 · 6 Comentários

O que há de novo no C# 6 – Parte 4 – using static

Olá, Este é o quarto post da série onde apresento as novidades do C# 6. Aqui, apresento um recurso muito interessante: fazer “using” de classes para poder evocar membros estáticos … Continuar lendo

30/09/2014 · 4 Comentários

O que há de novo no C# 6 – Parte 3 – Relação entre Explicit Constructors e Primary Constructors

Olá. Tudo certo? Este é o terceiro post da série onde apresento as novidades do C# 6. Aqui, apresento a relação entre explicit constructors (tradicionais) e primary constructors (novidade no … Continuar lendo

30/09/2014 · Deixe um comentário

(WITHDRAWN) O que há de novo no C# 6 – Parte 2 – Primary Construtors

Olá. Tudo certo?! UPDATE: A Microsoft parece ter desistido de implementar essa funcionalidade nessa versão do C# Bem-vindo ao segundo post da série onde apresento as novidades do C# 6 … Continuar lendo

29/09/2014 · 13 Comentários

O que há de novo no C# 6 – Parte 1 – Auto-property initializers

Olá. Tudo certo? Este é apenas o primeiro post da série em que apresento o que há de novo no C# 6. Para testar cada uma das novidades que relaciono, … Continuar lendo

29/09/2014 · 4 Comentários

Encapsulando APIs de nível mais baixo

Olá. Tudo certo? As vezes, precisamos utilizar APIs de nível mais baixo do que aquele que estamos utilizando na aplicação. O que fazer? Isolar ao máximo essa API do restante … Continuar lendo

22/09/2014 · Deixe um comentário

Potencial de paralelismo: Sequencial, “Por tarefa” e “Por dados”

Olá. Tudo certo?! Identificar o potencial de paralelismo de nossos códigos pode nos ajudar a escrever programas mais rápidos e que aproveitam melhor o hardware que temos a disposição. Existem, … Continuar lendo

20/09/2014 · Deixe um comentário

Tente outra vez … (Retry Pattern)

Olá. Tudo certo?! O que fazemos (ou deveríamos fazer) quando, devido a condições circunstanciais, geralmente relacionadas a um instante de execução, vemos nossas aplicações falharem em completar uma tarefa? Tentamos outra vez! Para isso, … Continuar lendo

28/08/2014 · 3 Comentários

Service Health Checking (e Health Monitoring Endpoint Pattern)

Olá pessoal. Tudo bem?! No último post, tratei do “Circuit breaker pattern”, cujo a implementação consiste em uma espécie de proxy que “blinda” recursos externos evitando requisições em momentos de instabilidade e/ou recuperação. … Continuar lendo

26/08/2014 · 2 Comentários

Circuit Breaker Pattern

Olá pessoal. Tudo certo?! Nesse post, falo de um pattern que melhora a estabilidade percebida de nossas aplicações. Trata-se do “Circuit Breaker Pattern”. Ele indica uma forma de tratar instabilidades … Continuar lendo

22/08/2014 · 5 Comentários

Regras! Regras! Regras! – Exemplo trivial de “Business Rule Engine” [Revisado e sem reflection]

Olá pessoal, Esse post é uma revisão do anterior. Graças ao feedback do meu amigo @juanplopes, percebi que o reflection acabou adicionando um bocado de complexidade de implementação. Segue versão … Continuar lendo

06/08/2014 · 6 Comentários

Regras! Regras! Regras! – Exemplo trivial de “Business Rule Engine”

Olá pessoal. Tudo certo?! Nesse post, falo de “rules engines”. Se o conceito é novo para você, recomendo a leitura desse post do Martin Fowler (bem básico, mas didático o … Continuar lendo

06/08/2014 · 1 comentário

Como obter os “bytes” de um tipo primitivo (double, por exemplo)

Olá pessoal. Tudo certo? Quase todo mundo que programa com C# sabe que um double ocupa 8 bytes de memória. Certo?! Mas, como, a partir de um valor, podemos saber … Continuar lendo

16/06/2014 · 3 Comentários

Uma “outra” abordagem para blindar “entidades”…

Olá pessoal. Tudo certo? Há tempos atrás eu propus uma solução “inventiva” e considera, por muitos, complexa para “blindar” entidades. Hoje, apresento outra abordagem, bem mais simples, que não é, … Continuar lendo

02/06/2014 · 2 Comentários

Aplicativos que fazem diferença: Moves e Audible

Olá pessoal. Tudo certo? Diferente do que faço normalmente, hoje quero compartilhar com vocês dois aplicativos que estão incrementando minha rotina: Moves (Facebook) e Audible (Amazon) MOVES Genial! Segundo o … Continuar lendo

29/04/2014 · 3 Comentários

Weak Event Patterns – Parte 3 – Especialização de WeakEventManager (WPF)

Olá pessoal. Tudo certo?! Esse é o terceiro post da série onde explico como implementar “weak events” em .Net. Recapitulando, Weak Events são um “afrouxamento” na relação entre Senders e … Continuar lendo

28/04/2014 · Deixe um comentário

Weak Event Patterns – Parte 2 – Generic Event Wrapper

Olá pessoal. Tudo certo? No post anterior, apresentei uma alternativa para “aliviar” o acoplamento entre objetos que “disparam” eventos e aqueles que “escutam” eventos. Entretanto, a abordagem que eu disponibilizei … Continuar lendo

25/04/2014 · Deixe um comentário

Weak Event Patterns – Parte 1 – Event Wrapper

Olá pessoal. Tudo certo? Eventos são uma abstração extremamente inteligente e poderosa. A sintaxe oferecida pelo C# para suporte de eventos é bela e simples de entender. Entretanto, tem algumas … Continuar lendo

25/04/2014 · Deixe um comentário

E o void voltou…

Olá amigos, Estou muito feliz em anunciar que o Void Podcast está retomando, aos poucos, suas atividades. Ouça e comente o último episódio se deseja que retomemos o projeto. Em … Continuar lendo

22/04/2014 · 2 Comentários

C++/CX – Parte 9 – Exceptions

Olá pessoal. Tudo certo? Este é o nono post da série onde estamos explorando C++/CX – o conjunto de extensões da Microsoft, no C++, para o desenvolvimento de aplicações modernas. O … Continuar lendo

07/04/2014 · Deixe um comentário

Descobrindo Owin e Katana – Parte 8 – Lendo o “Response Body”

Olá pessoal. Tudo certo? Este é o oitavo post da série onde “descobrimos” Owin e Katana. Hoje, mostro como ler o response body. O problema Considere o seguinte código de exemplo. Responda … Continuar lendo

07/04/2014 · 1 comentário

C++/CX – Parte 8 – Delegates

Este é o oitavo post da série onde estamos explorando C++/CX – o conjunto de extensões da Microsoft, no C++, para o desenvolvimento de aplicações modernas. Os temas desse post … Continuar lendo

07/04/2014 · Deixe um comentário

C++/CX – Parte 7 – Propriedades e Enums

Este é o sétimo post da série onde estamos explorando C++/CX – o conjunto de extensões da Microsoft, no C++, para o desenvolvimento de aplicações modernas. Os temas desse post … Continuar lendo

07/04/2014 · Deixe um comentário

C++/CX – Parte 6 – Interfaces

Olá. Tudo certo? Este é o sexto post da série onde estamos explorando C++/CX – o conjunto de extensões da Microsoft, no C++, para o desenvolvimento de aplicações modernas. Básico … Continuar lendo

07/04/2014 · Deixe um comentário

Descobrindo Owin e Katana – Parte 7 – Lendo o Request Body em múltiplos Middlewares

Olá pessoal. Tudo certo? Este é o sétimo post da série onde “descobrimos” Owin e Katana. Hoje, mostro como acessar o request body em vários Middlewares. O Problema Considere que … Continuar lendo

05/04/2014 · Deixe um comentário

C++/CX – Parte 5 – Herança

Olá pessoal. Tudo certo? Este é o quinto post da série onde estamos explorando C++/CX – o conjunto de extensões da Microsoft, no C++, para o desenvolvimento de aplicações modernas. … Continuar lendo

05/04/2014 · Deixe um comentário

Descobrindo Owin e Katana – Parte 6 – Cara, cadê o meu header?

Olá pessoal. Tudo certo? Esse é o sexto post da série onde “descobrimos” o que é Owin e o que é Katana. O que já temos: Primeiros passos Criando um … Continuar lendo

04/04/2014 · Deixe um comentário

C++/CX -Parte 4 – Utilização de tipos padrões

Olá pessoal. Tudo certo? Nesse momento, já sabemos um bocado sobre como criar ref classes. Nesse post, vamos dar uma olhada sobre como utilizar (mesclar, na verdade) tipos padrões do … Continuar lendo

04/04/2014 · Deixe um comentário

Descobrindo Owin e Katana – Parte 5 – Escrevendo Middleware em uma classe separada

Olá pessoal. Tudo certo? Esse é o quinto post da série em que estamos “descobrindo” OWIN e Katana – tecnologias da Microsoft para desenvolvimento de módulos Web que pretende aliviar … Continuar lendo

03/04/2014 · 1 comentário

Descobrindo Owin e Katana – Parte 4 – Suporte para encadeamento de Middlewares

Olá. Tudo certo? Continuamos nossa jornada de descoberta para Owin e Katana. Nesse post, mostro como encadear a execução de Middlewares. Perceba, até aqui, estávamos levantando servidores com apenas um … Continuar lendo

03/04/2014 · 2 Comentários

C++/CX – Parte 3 – ref class/struct vs value class/struct

Olá pessoal. Tudo certo? Esse é o terceiro post da série onde apresento as modificações feitas no C++ para suportar o desenvolvimento de aplicações modernas. No primeiro post, tratei dos … Continuar lendo

03/04/2014 · Deixe um comentário

Descobrindo Owin e Katana – Parte 3 – Facilitando o desenvolvimento do Middleware

Olá. Tudo certo? Esse é o terceiro post da série onde “descobrimos” OWIN e o Katana. Se está chegando agora, talvez deva considerar dar uma olhada no primeiro e no … Continuar lendo

02/04/2014 · 2 Comentários

C++/CX – Parte 2 – Classes e Estruturas

Olá pessoal. Tudo certo? No post anterior, comecei a apresentar os fundamentos básicos de C++/CX. Nesse post, apresento como definir tipos de referência e de valor em C++/CX. Ideia básica … Continuar lendo

02/04/2014 · 2 Comentários

Fibonacci na velocidade da luz (Binet’s formula)

Olá pessoal. Tudo certo? Esse post é só para descontrair mesmo! Quem nunca implementou um algoritmo recursivo para determinar o valor de um elemento da sequencia de Fibonacci? E a … Continuar lendo

01/04/2014 · 4 Comentários

Descobrindo Owin e Katana – Parte 2 – Criando um Host personalizado

Olá. Tudo certo? No post anterior, comecei a tratar de OWIN e Katana – Projetos que objetivam reduzir o acoplamento de módulos Web com o IIS. Usamos o host fornecido … Continuar lendo

01/04/2014 · 4 Comentários

Descobrindo Owin e Katana – Parte 1 – Primeiros passos

Olá pessoal. Tudo certo?! Esse é o primeiro post de uma série onde pretendo explicar fundamentos dos projetos OWIN e Katana. O que é OWIN? Pegando a definição do site … Continuar lendo

01/04/2014 · 5 Comentários

C++/CX – Parte 1 – Fundamentos

Olá pessoal. Tudo certo? Nessa série, apresento os fundamentos de C++/CX – a extensão da Microsoft, na linguagem C++, para o desenvolvimento de aplicações modernas. Tentarei manter os posts pequenos … Continuar lendo

01/04/2014 · 2 Comentários

Fui assaltado!

Olá amigos, Não tenho escrito tanto aqui no blog, mas, com o tempo, pretendo retomar o ritmo. Minha vida mudou um bocado nos últimos tempos. Alguns episódios positivos, outros nem … Continuar lendo

31/03/2014 · 5 Comentários

Entendendo GetHashCode

Olá. Tudo certo? Outro dia vi alguém sugerir o uso de GetHashCode para identificar um objeto. Essa não é uma boa ideia e no post de hoje pretendo explicar o … Continuar lendo

12/03/2014 · 1 comentário

Na busca da envoltória convexa – parte 1 (em Javascript)

Olá pessoal. Tudo certo? Sabe o que é uma envoltória convexa? Não, boa leitura. Agora que sabe, vamos tentar escrever algo para determinar a envoltória para um conjunto qualquer de … Continuar lendo

24/02/2014 · 3 Comentários

Uma abordagem para blindar entidades fora de um contexto (o que você acha?)

Olá. Tudo certo? Há tempos venho pensando em como controlar alterações a entidades. Há cenários onde desejo que elas sejam imutáveis, outros em que desejo permitir alteração. Nesse post, apresento … Continuar lendo

29/01/2014 · 11 Comentários

É potência de dois?!

Olá. Dando uma pausa em posts mais densos, que tal brincarmos um pouco? Nesse post, procuro uma forma eficiente de determinar se um número é, ou não, uma potência de … Continuar lendo

17/01/2014 · 6 Comentários

Event Sourcing – Parte 3 – Application Services

Olá. Tudo certo? No post anterior mostrei como modelar, de forma mais adequada, os eventos de domínio agregando mais semântica ao Event Stream. Agora, vamos ver como tornar o acesso … Continuar lendo

16/01/2014 · 2 Comentários

Event Sourcing – Parte 2 – Planejando Eventos de Domínio

Olá. Tudo certo? No post anterior, apresentei uma visão simplificada de Event Sourcing. Agora, melhoro o exemplo do post anterior aprimorando a modelagem dos eventos de domínio. Revisitando a entidade … Continuar lendo

15/01/2014 · 3 Comentários

Event Sourcing – Parte 1 – Fundamentos

Olá pessoal. Tudo certo? Event Sourcing é um nome “novo” para uma prática relativamente velha. Recentemente, foi popularizado por Greg Young que demonstrou sua aplicabilidade combinada a DDD. Embora não … Continuar lendo

15/01/2014 · 4 Comentários

Hexagonal Architecture (Ports and Adapters)

Olá. Tudo certo? Nesse post, trato de um estilo arquitetural proposto por Alistair Cockburn. Recomendo fortemente que você veja o artigo dele que detalha este estilo. Fundamentos De forma simplificada, … Continuar lendo

03/01/2014 · 1 comentário

Apresentando “mooble.com”. Espero (e conto com) o seu feedback!

Olá pessoal. Tudo certo?! Há tempos não escrevia nada por aqui. De certa forma, esse post explica o motivo. Criamos uma plataforma para design de interiores, on-line e sem plugins. … Continuar lendo

29/11/2013 · 33 Comentários

Aprendendo WebSocket – Parte 2 – The Opening Handshake

Olá. Esse é o segundo post da série onde compartilho meus aprendizados sobre o protocolo WebSocket. No post anterior, indiquei do que trata o protocolo e apresentei uma descrição sucinta … Continuar lendo

15/09/2013 · 2 Comentários

Aprendendo WebSocket – Parte 1 – API no cliente

Olá. Assisti a uma palestra do @brunoborges, em Goiânia, no Join Community 2013, que me motivou a estudar o novo protocolo WebSocket. Nessa série, compartilho meu “caminho das pedras” O que … Continuar lendo

14/09/2013 · 4 Comentários

Linguagem de máquina

Olá. Continuo minhas “aventuras” no excelente curso nand2tetris, recomendado pelo @qmx. Esse curso está disponível on-line! Se desejar fazer o curso, recomendo a aquisição do livro texto relacionado. Na etapa do curso … Continuar lendo

11/09/2013 · 1 comentário

Sequential Logic – Projetando módulos de memória RAM (em HDL)

Olá. Continuo minhas “aventuras” no excelente curso nand2tetris, recomendado pelo @qmx. Hoje, mostro meus projetos para construção de chips de memória. Guardando um bit Uma das coisas mais legais em … Continuar lendo

09/09/2013 · Deixe um comentário

Enfim, 34!

Olá. Há um ano, comemorava meus 33 anos. Parece que isso aconteceu ontem, mas, estou chegando aos 34. Como sempre, tive meus dias bons e ruins. Não fui sempre “o … Continuar lendo

06/09/2013 · 8 Comentários

Aritmética booleana (HDL e C#)

Olá. Tudo certo? Seguindo meus estudos no curso proposto em www.nand2tetris.org, influenciado pelo grande @qmx, apresento o projeto de alguns chips para suporte a aritmética booleana em HDL. Também apresento algum código escrito … Continuar lendo

03/09/2013 · 8 Comentários

HDL madness – Nand chips!

Olá. Nos posts anteriores, mostrei como implementar operações lógicas a partir de um único operador (nos exemplos, NAND e NOR). Com esse conhecimento, sabemos como criar hardware, usando apenas “gates” … Continuar lendo

27/08/2013 · 1 comentário

Coding 4 Fun – Ele criou a “Nor Gate”

Olá. Este post segue a mesma ideia do anterior: demonstrar a possibilidade de implementar qualquer operação lógica através de operadores com functional completeness. Já demonstramos o poder do Nand. Agora, … Continuar lendo

26/08/2013 · 1 comentário

Coding 4 Fun – Ele criou a “Nand Gate”!

Olá. Tudo certo? A excelente palestra do @qmx no DNAD 2013 me motivou a fazer o curso proposto em Nand2tetris.org. A ideia é passear por todas as áreas da ciência … Continuar lendo

26/08/2013 · 4 Comentários

Implementando Basic Authentication com Web API

Olá. Tudo certo? Nesse post, mostro como implementar Basic Authentication para serviços desenvolvidos com ASP.NET Web API. A idéia fundamental dessa estratégia de autenticação é verificar se há nos cabeçalhos … Continuar lendo

19/08/2013 · 4 Comentários

Criptografia assimétrica em .NET (usando certificados)

Olá. Tudo certo? Em um post anterior, mostrei como implementar criptografia simétrica com .NET. Agora, vamos ver como implementar criptografia assimétrica. Ou seja, onde a criptografia ocorre através de uma … Continuar lendo

19/08/2013 · Deixe um comentário

Um mecanismo simples de assinatura em .NET

Olá. Tudo certo? No post anterior, mostrei uma implementação simples para criptografia simétrica utilizando .NET. As vezes, não nos importamos em “ocultar” uma mensagem. Entretanto, temos interesse em garantir sua … Continuar lendo

19/08/2013 · 1 comentário

Criptografia simétrica em .NET

Olá. Tudo certo? Nesse post, apresento um wrapper simples para facilitar a adoção de criptografia simétrica (com uma única chave) usando .NET. Vamos lá: Aqui, apresento duas sobrecargas para o … Continuar lendo

19/08/2013 · 3 Comentários

Claims-based Access Control com Claims no .NET 4.5

Olá. Tudo certo? No post anterior, falei sobre a relevância de Claims no .NET 4.5. Indiquei, inclusive que RBAC é implementado usando Claims. Agora, falo sobre Claims-based Access Control. Claims-based … Continuar lendo

16/08/2013 · 2 Comentários

RBAC usando Claims no .NET 4.5

Olá pessoal. Tudo certo? A Microsoft aposta tanto em “Claim-based authentication” que trouxe a sua implementação básica para o core do .NET Framework. As classes ClaimsIdentity e ClaimsPrincipal estão agora … Continuar lendo

15/08/2013 · 3 Comentários

CORS Preflight Requests (com ASP.NET Web API)

Olá. Tudo certo? No post anterior, falei sobre como deixar nossos serviços operantes em domínios diferentes daquele onde estão hospedados. O que apresentei é suficiente para operações de GET e … Continuar lendo

14/08/2013 · 1 comentário

Cross-Origin Resource Sharing (CORS) com ASP.NET Web API

Olá. Tudo certo? Same-origin policy! Uma restrição simples, imposta por browsers, para evitar que scripts de um domínio tenham acesso a recursos de um outro. Parece ser uma boa ideia, … Continuar lendo

13/08/2013 · 10 Comentários

Melhorando o tratamento de exceptions usando ASP.NET Web API

Olá. Tudo certo? Se você desenvolve há algum tempo com WebAPI já sabe que quando uma exception é disparada no servidor, uma resposta de código 500 (Internal Error) é retornada … Continuar lendo

12/08/2013 · 6 Comentários

SNIPPET: Uma interface fluente para dicionários de dados

Olá. Tudo certo? Nunca gostei do “Add” dos dicionários de dados. Ou seja, o código que segue não me agrada: Sou fã de interfaces fluentes. Prefiro algo assim: Implemento essa … Continuar lendo

12/08/2013 · 11 Comentários

HTTP Method Overriding (usando X-HTTP-Method-Override) com ASP.NET Web API

Olá. Tudo certo? APIs baseadas em HTTP permitem que seus clientes interajam com recursos através dos métodos GET, PUT, POST e DELETE (entre outros). Destes, GET e POST são suportados … Continuar lendo

12/08/2013 · 2 Comentários

Image Effects com C++ AMP – Blur

Olá. Tudo certo? Agora que já tratamos dos fundamentos de C++ AMP, está na hora de começar a botar as “mãos na massa” e fazer algo de útil. Para começar, … Continuar lendo

29/07/2013 · 1 comentário

Introdução a Tiling com C++ AMP – Parte 4 (final) – tile_static e tile_barrier

Olá. Tudo certo? Este é o quarto e último post de uma pequena série introdutória sobre tiling com C++ AMP. Antes de seguir a leitura, recomendo que você leia os … Continuar lendo

28/07/2013 · Deixe um comentário

Introdução a Tiling com C++ AMP – Parte 3 – tiled_index

Olá. Tudo certo? No post anterior, tratei da classe tiled_extent. Ela é responsável por “particionar” uma extent em pequenos blocos, chamados tiles. Hoje, falaremos sobre outro componente importante para utilização … Continuar lendo

28/07/2013 · 2 Comentários

Introdução a Tiling com C++ AMP – Parte 2 – tiled_extent

Olá. Tudo certo?! No post anterior, falei sobre as motivações para utilização de Tiling com C++ AMP: substituir acessos a memória global da GPU por acessos a um cache compartilhado … Continuar lendo

27/07/2013 · 2 Comentários

Introdução a Tiling com C++ AMP – Parte 1 – motivações

Olá. Tudo certo? Estou iniciando essa série para apresentar um conceito fundamental para programação com C++ AMP: tiling. Se você não conhece C++ AMP, recomendo a leitura da série introdutória … Continuar lendo

21/07/2013 · 2 Comentários

Fundamentos de C++ AMP – parte 5 (final) – restrict(amp) e parallel_for_each

Olá. Tudo certo? Este é o último post dessa “mini” série sobre fundamentos C++ AMP. O objetivo dessa série foi apresentar conceitos fundamentais dessa tecnologia para, mais tarde, fundamentar séries … Continuar lendo

20/07/2013 · Deixe um comentário

Fundamentos de C++ AMP – Parte 4 – index e extent

Olá. Tudo certo? Esse é o quarto post da série onde apresento os fundamentos de C++ AMP – a extensão da linguagem C++ e biblioteca, da Microsoft, para desenvolvimento de … Continuar lendo

20/07/2013 · 2 Comentários

Fundamentos de C++ AMP – Parte 3 – array e array_view

Olá. Tudo certo? Esse é o terceiro post da série onde apresento os fundamentos de C++ AMP – a extensão da linguagem C++ e biblioteca, da Microsoft, para desenvolvimento de … Continuar lendo

20/07/2013 · 3 Comentários

Fundamentos de C++ AMP – Parte 2 – accelerator e accelerator_view

Olá. Tudo certo? Este é o segundo post da série onde apresento os fundamentos de C++ AMP. Se está chegando agora, recomendo a leitura do primeiro post. C++ AMP facilita … Continuar lendo

20/07/2013 · 3 Comentários

Um pequeno guia para quem deseja aprender NodeJS (sem traumas)

Olá. Tudo certo?! Você gosta de Node.JS? Já fez alguma experiência? Eu já! Porém, até agora, eu não tinha tido a oportunidade de usar Node em um projeto sério. Agora, … Continuar lendo

13/07/2013 · 8 Comentários

Pipes de streams, no NodeJS, são fantásticas

Olá. Tudo certo? Se há algo que gosto nas linguagens dinâmicas é a objetividade com que resolvem problemas relativamente complexos. Considere o seguinte bloco de código, escrito com NodeJS: Vejamos: … Continuar lendo

04/07/2013 · 1 comentário

DNAD 2013! Sem dúvidas, ótimas palestras

Olá amigos. Tudo certo?! DNAD 2013, que será no Rio de Janeiro, terá uma das grades de palestras mais fortes que já tive o prazer de encontrar em eventos técnicos. … Continuar lendo

03/07/2013 · Deixe um comentário

e-Book Free: Introdução ao ASP.net Web API (por Israel Aece)

Olá. Tudo certo? Israel Aece acabou de escrever um livro sobre ASP.net Web API e está disponibilizando-o gratuitamente. Tive a honra de escrever a introdução desse livro: A multiplicação de … Continuar lendo

01/07/2013 · Deixe um comentário

Fundamentos de C++ AMP – Parte 1 – O que é? Para que serve? Hello World

Olá. Tudo certo? Depois de um tempo com pouca atividade, resolvi resgatar posts mais técnicos aqui para o blog. Com base nisso, resolvi iniciar uma nova série falando sobre uma … Continuar lendo

01/07/2013 · 17 Comentários

Sobre abstração e testes

Olá. Tudo certo?! Retornando (finalmente) as atividades aqui no blog, resolvi trazer meus “dois cents” para uma discussão interessante que ocorreu outro dia no grupo .NET Brasil. Estou optando por … Continuar lendo

27/06/2013 · 8 Comentários

Here we go again! Retomando as atividades no blog

Olá. Tudo certo?! Já tinha algum tempo que não conseguia escrever nada por aqui. Sou grato, a todos, pelas mensagens carinhosas perguntando o que havia ocorrido. Para quem ainda não … Continuar lendo

21/06/2013 · 2 Comentários

SNIPPET: Sobre trabalho remoto

Olá. Tudo certo? Como sabem, estou utilizando  Ask.fm como canal de comunicação com a comunidade. Tenho recebido algumas perguntas bem interessantes. Para algumas delas, desejo saber também a opinião de outras … Continuar lendo

04/05/2013 · 6 Comentários

SNIPPET: Sobre monetização do blog

Olá pessoal. Tudo certo? Como sabem, estou utilizando  Ask.fm como canal de comunicação com a comunidade. Recentemente, recebi uma pergunta que me deixou intrigado: Elemar, você monetiza o seu blog ? … Continuar lendo

03/05/2013 · 7 Comentários

SNIPPET: Competências para Arquitetura de Soluções

Olá. Tudo certo? Como sabem, estou utilizando  Ask.fm como canal de comunicação com a comunidade. Tenho recebido algumas perguntas bem interessantes. Para algumas delas, desejo saber também a opinião de outras … Continuar lendo

03/05/2013 · 3 Comentários

Um indicador prático de coesão

Olá pessoal. Tudo certo? Quando começamos a falar sobre programação orientada a objetos somos apresentados a dois termos: coesão e acoplamento. No post de hoje, quero falar sobre coesão! O … Continuar lendo

02/05/2013 · 1 comentário

PODCAST: Max Gehringer na CBN

Olá pessoal. Resolvi começar a compartilhar com vocês minhas impressões sobre alguns podcasts que tenho o hábito de ouvir. Começo com as participações do Max Gehringer para a CBN. O … Continuar lendo

30/04/2013 · 7 Comentários

AVISO: Infelizmente, NÃO participarei do TDC Floripa 2013

Olá pessoal. Com pesar, informo que, infelizmente, não poderei participar do TDC Floripa desse ano. Submeti algumas propostas de palestra e três haviam sido aceitas. Entretanto, por motivos profissionais, não … Continuar lendo

29/04/2013 · 1 comentário

Notas de Leitura – Running Lean – Meta-Principles

Olá pessoal. Tudo certo? Começo, com este post, a compartilhar minhas impressões sobre outro livro que estou lendo. Trata-se de Running Lean – uma leitura mais do que recomendada para qualquer … Continuar lendo

29/04/2013 · 2 Comentários

Usando Exceptions para demarcar limites

Olá pessoal. Tudo certo? Depois de um tempinho sem postar nada com códigos, resolvo fazer uma pequena provocação. Atente para o código que segue: O que temos aqui? Simples! Estou … Continuar lendo

25/04/2013 · 10 Comentários

SNIPPET: Sobre o nível das comunidades .NET

Olá. Tudo certo? Como sabem, estou utilizando  Ask.fm como canal de comunicação com a comunidade. Tenho recebido algumas perguntas bem interessantes. Para algumas delas, desejo saber também a opinião de outras … Continuar lendo

25/04/2013 · 4 Comentários

SNIPPET: Sobre a tomar a decisão certa

Olá. Tudo certo? Como sabem, estou utilizando  Ask.fm como canal de comunicação com a comunidade. Tenho recebido algumas perguntas bem interessantes. Para algumas delas, desejo saber também a opinião de outras … Continuar lendo

24/04/2013 · Deixe um comentário

Notas de leitura – The Clean Coder – Sobre TDD

Olá. Tudo certo? Ainda estou lendo o livro “The Clean Coder“. Continuo compartilhando minhas impressões sobre alguns trechos. Questão de profissionalismo Vejamos o que o “Uncle” Bob tem a dizer … Continuar lendo

23/04/2013 · 10 Comentários

SNIPPET: O que “qualifica” um design como Orientado a Objetos

Olá. Tudo certo? Como sabem, estou utilizando  Ask.fm como canal de comunicação com a comunidade. Tenho recebido algumas perguntas bem interessantes. Para algumas delas, desejo saber também a opinião de outras … Continuar lendo

23/04/2013 · 2 Comentários

SNIPPET: Sobre comparações entre as comunidades Java e .NET

Olá. Tudo certo? Como sabem, estou utilizando  Ask.fm como canal de comunicação com a comunidade. Tenho recebido algumas perguntas bem interessantes. Para algumas delas, desejo saber também a opinião de outras … Continuar lendo

22/04/2013 · 3 Comentários

SNIPPET: “Named Parameters” e “Object Initializers” ferem conceitos de Orientação a Objetos?

Olá. Tudo certo? Como sabem, estou utilizando  Ask.fm como canal de comunicação com a comunidade. Tenho recebido algumas perguntas bem interessantes. Para algumas delas, desejo saber também a opinião de outras … Continuar lendo

22/04/2013 · 2 Comentários

O que aprendi assistindo ao show do Roberto Carlos

Olá. Tudo certo? Há dois dias, tive o prazer de assistir a um show do “rei” Roberto. Não é, em definitivo, meu artista favorito. Mas, está em uma categoria que … Continuar lendo

19/04/2013 · 1 comentário

SNIPPET: Sobre o (quase sempre equivocado) desenvolvimento e adoção de soluções domésticas

Olá. Tudo certo? Como sabem, estou utilizando  Ask.fm como canal de comunicação com a comunidade. Tenho recebido algumas perguntas bem interessantes. Para algumas delas, desejo saber também a opinião de outras … Continuar lendo

17/04/2013 · 4 Comentários

SLIDES: Fundamentos de CQRS

Olá pessoal. Tudo certo? Segue slides da minha palestra “Fundamentos de CQRS” que ocorreu ontem, em Blumenau, no MSDN Community BluDotNet. Bom proveito!

07/04/2013 · 10 Comentários

SNIPPET: Sobre arquitetura cebola

Olá. Tudo certo?! Como sabem, estou utilizando  Ask.fm como canal de comunicação com a comunidade. Tenho recebido algumas perguntas bem interessantes. Para algumas delas, desejo saber também a opinião de outras … Continuar lendo

03/04/2013 · 3 Comentários

SNIPPET: Sobre postura inadequada na obtenção de certificações empresariais

Olá. Tudo certo?! Como sabem, estou utilizando  Ask.fm como canal de comunicação com a comunidade. Tenho recebido algumas perguntas bem interessantes. Para algumas delas, desejo saber também a opinião de outras … Continuar lendo

03/04/2013 · 6 Comentários

Notas de Leitura – The Clean Coder – Sobre Comprometimento

Olá. Tudo certo?! Esse é o terceiro post com notas de leitura para o livro “The Clean Coder” do mestre Uncle Bob. Trata-se de um livro excelente e que recomendo … Continuar lendo

31/03/2013 · Deixe um comentário

Estatísticas

  • 815,493 hits