Olá pessoal. Tudo certo!? No post de hoje, apresento alguns conceitos fundamentais para utilização de Rx com Javascript. Rx Framework foi desenvolvido, inicialmente, para .NET e Silverlight. Mais tarde, foi portado para Javascript. Com ele, podemos simplificar bastante a implementação de rotinas assíncronas, além de poder combinar (compose) eventos. Se desejar ver alguns exemplos desse… [Leia mais…]
Escrevendo um Engine para Xadrez – Parte 14 – Castling (Roque) Rules
Olá pessoal. Como estamos?! Depois de muito tempo sem tocar no código desse engine de Xadrez, estou retomando as atividades. Meu desejo era deixar o projeto parado até que o @juanplopes fizesse um refactoring/review. Entretanto, atendendo a uma “solicitação” do @leandronet resolvi reconsiderar minha posição. Até aqui, trabalhamos bastante da representação de dados relacionados ao… [Leia mais…]
Olá pessoal. Tudo certo?! Há algum tempo, escrevi um post falando sobre técnicas de Functional Programming em C#. Dentre essas técnicas, está Memoization. Basicamente, essa técnica melhora a performance de aplicativos evitando a repetição de cálculos para entradas já processadas. No post de hoje, apresento essa técnica em JavaScript. Explicitando o problema Considere o código… [Leia mais…]
Try .. Catch .. Finally (e using?!)
Olá pessoal. Tudo certo!? No post de hoje, mostro como o tratamento de exceptions é “representado” no Intermediate Langauge. Se você não conhece Intermediate Language, pode considerar útil dar consultar a série que escrevi explicando a linguagem. Try .. Catch Para começar, que tal dar uma olhada em algum código C# e no equivalente em… [Leia mais…]
Functional Programming (Higher-Order Functions) com JavaScript
Olá pessoal. Tudo certo?! No post anterior, mostrei como aplicar alguns princípios fundamentais (map e reduce) de programação funcional em JavaScript. Hoje, mostrocomo implementar Higher-order functions. Live demo: http://users.cjb.net/livedemoelemarjr/higherorderfunctions.htm Gist: https://gist.github.com/1363062 O que são Higher-Order Functions?! Uma “higher-order function” recebe uma ou mais funções como parâmetro e devolve uma nova função como retorno. Um exemplo… [Leia mais…]
Functional Programming (Map e Reduce) com JavaScript
Olá pessoal. Tudo certo?! No post de hoje, continuo explorando as potencialidades do JavaScript. JavaScript não é uma linguagem de programação funcional como Lisp, F# ou Haskell. Mas, o fato de permitir a manipulação de funções como objetos permite que usemos algumas técnicas desse paradigma. No post de hoje, exploramos algumas possibilidades. O exemplo que… [Leia mais…]
C++ 101 – Parte 9 – Funções
Olá pessoal. Tudo certo!? No post de hoje, continuo mostrando os fundamentos do C++. Trato de funções. Nessa série, assumo que o leitor já sabe programar em alguma linguagem de programação. Por isso, assumo que você sabe o que é uma função. Meu propósito, hoje, é trazer alguma familiaridade com a terminologia e algumas especificidades… [Leia mais…]
Vamos aprender XNA? – Parte 21 – Keyframed animation
Olá pessoal. Tudo certo!? Nesse post, continuo falando sobre “animação” em XNA. No post anterior, mostrei como construir animações lineares simples. Agora, vou um pouco além: mostro como criar animações mais complexas usando uma técnica chamada “Keyframed animation”. Funciona assim: adicionamos “key” frames onde estabelecemos a rotação e a posição que desejamos que o modelo… [Leia mais…]
Olá pessoal, tudo certo?! Depois de alguns dias falando sobre fractais, html5 e muito JavaScript, volto a escrever código em C# seguindo esta série sobre XNA. Hoje, nada de HLSL, só C#! Neste post, mostro uma técnica simples de animação (sem intevenção do usuário). Embora esteja utilizando modelos 3D, a mesma técnica pode ser aplicada… [Leia mais…]
Method Chaining em JavaScript
Olá pessoal, tudo certo?! Sempre busquei escrever códigos limpos e expressivos. Nem sempre obtenho sucesso, mas é um objetivo que não canso de tentar. No post de hoje, demonstro uma técnica que pode tornar nossos códigos mais fáceis de ler: Method Chaining. Uso essa técnica com frequência em C# e, hoje, mostro como fazer isso… [Leia mais…]
Olá pessoal, tudo certo?! No post de hoje, mostro uma variação do fractal “tree” que apresentei há alguns dias. Basicamente, adicionei alguma “aleatoriedade” e cor. Veja alguns resultados: Bacana, não?! Outro exemplo: Mais um … Último: Agora, vamos ver como é o código. Aliás, o código-fonte está em https://gist.github.com/1323773 e há um live demo… [Leia mais…]
Olá pessoal, tudo certo?! Finalmente, chego ao mais famoso dos fractais. Trata-se do conjunto de Mandelbrot. Código-fonte: https://gist.github.com/1314575 Live demo: http://users.cjb.net/livedemoelemarjr/mandelbrot.htm Importante: A performance do demo é assustadoramente ruim no Internet Explorer 9. Confesso que isso me pega de surpresa e ainda acho que escrevi alguma coisa “muito errado”. Recomendo que você rode o demo… [Leia mais…]
Olá pessoal, tudo certo?! No post de hoje apresento os fundamentos para geração de um fractal muito famoso. Trata-se do “Barney’s Fern”. Um dos mais belos, IMHO. Nossa demonstração permite que o usuário mude o tamanho da “viewport” alterando a posição dos marcadores. Basta selecionar o marcador que desejamos mover (com um clique), depois clicar… [Leia mais…]
Olá pessoal, tudo certo?! No último post, mostrei uma técnica para geração do triângulo de Sierpinski através de uma curva. Agora, mostro como fazer isso com uma técnica chamada “chaos game”. Código-fonte completo: https://gist.github.com/1306848 Live demo: http://users.cjb.net/livedemoelemarjr/sierpinski_chaos.htm Como falei no início dessa série, explicar a fundamentação matemática para fractais está fora de meus objetivos. No… [Leia mais…]
Olá pessoal, tudo certo?! Nesse post, mostro uma técnica para geração do triângulo de Sierpinski através de uma curva. Trata-se de um método pouco usual (a prática comum é desenhar um triângulo e apagar partes sucessivamente). O código que utilizo aqui é derivado daquele que mostrei no post anterior. Por isso, nesse post, explico apenas… [Leia mais…]
Olá pessoal, tudo certo? Depois de um “passeio nas estrelas”, volto a tratar de fractais com HTML5. Na parte 2, mostrei uma implementação simples para snowflakes. Na parte 1, mostrei como desenhar trees. Hoje, mostro como desenhar Hilbert curves. Live demo: http://users.cjb.net/livedemoelemarjr/hilbert.htm Código-fonte completo: https://gist.github.com/1306034 Um pouco mais sobre Hilbert “Space-filling” curve Space-filling fractals, como… [Leia mais…]
Olá pessoal, tudo certo?! O que acham de um “passeio” no espaço. Esta é a proposta do post de hoje : – ) Live demo: http://users.cjb.net/livedemoelemarjr/starfield.htm Código-fonte completo: https://gist.github.com/1305213 Preparando o Canvas… Nada novo no HTML. Observe: Ainda utilizo o velho artifício de “monitorar” o tamanho do browser para forçar com que o canvas… [Leia mais…]
Olá pessoal, tudo certo?! No post anterior, apresentei uma definição, não rigorosa, para fractal. Além disso, mostrei um exemplo simples de Tree (um exemplo simples de fractal). Hoje, mostro a implementação para Snowflakes. Código-fonte completo: https://gist.github.com/1302765 Live demo: http://users.cjb.net/livedemoelemarjr/snowflake.htm O que é snowflake? Um snowflake é uma curva geométrica e um dos primeiros “fractais” a… [Leia mais…]
Olá pessoal, tudo certo?! Nessa série que estamos começando, vou demonstrar como gerar imagens incríveis através de fractais e tiles. Nos posts que seguem, explicarei um pouco da matemática necessária para trabalhar com fractais e tiles. Entretanto, vou me concentrar mais na “mecânica” do desenho do que na matemática envolvida. Live demo: http://users.cjb.net/livedemoelemarjr/tree.htm (funciona no… [Leia mais…]
3D Madness .. Backface culling e Color filling .. com JavaScript e HTML5
Olá pessoal, tudo certo?! No último post, mostrei como implementar o clássico “Rotating cube” usando apenas Javascript e html5. Esse post é uma continuação simples. Ou seja, para entender o que estamos fazendo aqui, comece lendo o post anterior. Implementando Backface culling O primeiro efeito que gostaria de mostrar é o backface culling. Observe: Como… [Leia mais…]
novembro 21, 2011
1