Bits, Bytes e Resta um (Peg Solitaire)
Olá pessoal. Tudo certo!? No post de hoje vamos implementar um “solver” para Resta Um. Para isso, utilizo manipulação intensiva de bits. Trata-se de um post com código “naturalmente” avançado. Entretanto, penso que seja uma boa diversão. O conceito para o código de hoje está baseado no artigo “Depth-first search solves Peg Solitaire (1998)”. Para… [Read more…]
Olá pessoal. Tudo certo?! Nesse post, mostro como desenhar curvas, usando Lagrange Interpolation, usando Javascript. Há um live demo disponível. Também está disponível o código-fonte completo. UPDATE: Também há um live demo mais interativo, que permite ao usuário definir os pontos que pertencem a curva em http://users.cjb.net/livedemoelemarjr/lagrange2.html. Observe: Mais adiante, vou usar esse método… [Read more…]
Algumas palavras sobre essa tal de Estratégia
Olá pessoal. Tudo certo!? Alguns posts técnicos, outros sobre carreira. Esse é o ritmo que estou tentando manter aqui no blog. Nesse post, desejo tentar discutir sobre um assunto extremamente importante para qualquer profissional (independente do ramo de atuação): a Estratégia. O que é Estratégia? Há diversas definições famosas para estratégia. Entretanto, a que mais… [Read more…]
Windows Native Programming – Window Class, Window Object, Message Loop, WndProc
Olá pessoal. Tudo certo?! No post anterior, comecei a apresentar os fundamentos para desenvolvimento nativo com Windows. Para isso, criei um pequeno utilitário para cópia de arquivos. Nesse post, mostro como é a interface do sistema operacional para o ciclo de vida das janelas. Nosso exemplo O exemplo que apresento é uma espécie de “Hello… [Read more…]
Windows Native Programming – Copying Files
Olá pessoal. Tudo certo?! Uma geração inteira de programadores começou a programar utilizando linguagens que compilam seus programas para ambientes gerenciados. Na prática, isso significa que muitos programadores não sabem (e não sabem que deveriam saber) como funciona a interação, em nível mais baixo, com o Windows. Essa “lacuna” de conhecimento faz com que seja… [Read more…]
Quando “comando e controle” são necessários
Olá pessoal. Tudo certo?! Há alguns dias, estou em um debate interessante (em blog [aqui e na lambda3] e twitter) sobre a importância, ou mesmo a necessidade, de gerentes. Várias opiniões foram apresentadas. Concordo com muitas, discordo de algumas. Neste post, trato de um tema “polêmico” relacionado a este debate: comando e controle. Afinal, ele… [Read more…]
TicTacToe, Minimax, Negamax, Alpha-beta pruning, heurística (whatever!)
Olá pessoal. Tudo certo?! No post anterior, implementamos um jogo da velha (TicTacToe), com opção de jogar contra o computador. Para isso, utilizamos uma algoritmo chamado Minimax (na verdade, uma variação chamada Negamax). No post de hoje, revisito o exemplo para demonstrar alguns aspectos importantes desses algoritmos, bem como uma importante técnica de otimização chamada… [Read more…]
TicTacToe (Jogo da Velha) com AI (Minimax) em C#
Olá pessoal. Tudo certo?! Há algum tempo não uso C# aqui no blog. Hoje, mostro a implementação de um jogo extremamente simples: TicTacToe (nosso jogo da velha). Implementei uma aplicação console, simples, com AI usando Minimax. UPDATE: Código-fonte em: https://github.com/ElemarJR/TicTacToe Como o jogo funciona? Logo de início, o programa apresenta um grid vazio e solicita… [Read more…]
Olá pessoal. Tudo certo?! Este é o segundo post de uma série onde pretendo apresentar os fundamentos do desenvolvimento usando node.js. No primeiro post, mostrei como obter, instalar e dar os primeiros passos com essa tecnologia. Em outro post, explorei o potencial do node.js para criação de aplicações de propósito geral (não servidor/serviços web) escrevendo… [Read more…]
Olá pessoal. Tudo certo?! Essa é uma resposta para um post do Giovanni Bassi. No post dele, chamado “Fire all the managers” ele defende que “gerentes” são desnecessários. Além disso, defende que eles impedem a “democracia organizacional”. Como discordo dessa posição, apresento alguns de meus argumentos para pensar diferente. Para isso, começo do “início” …… [Read more…]
Olá pessoal. Tudo certo?! Nesse post, entenderemos um pouco mais sobre ponteiros. Especificamente, vamos ver como utilizar ponteiros para funções. Em termos práticos, a utilidade (importante: apenas em primeira impressão. Sem closures associadas) de um “ponteiro para função” é semelhante a delegates do C#. Se está “chegando agora”, considere dar uma olhada nos outros posts… [Read more…]
Olá pessoal. Tudo certo?! Javascript cresceu muito em importância nos últimos anos. No passado, era percebida como uma linguagem simplificada, para programação “simples” de páginas web. Hoje, é vista como uma linguagem poderosa, rodando tanto no cliente quanto no servidor. Por causa do “crescimento” do Javascript, é natural pensar em alternativas para o desenvolvimento de… [Read more…]
Olá pessoal. Tudo certo?! Hoje, começo uma nova série aqui no blog. Vamos falar sobre node.js. Minha proposta é começar “devagar” e ir aumentando a complexidade dos posts e exemplos na medida em que a série for avançando. O que é node.js? Node.js é um ambiente de execução e um conjunto de bibliotecas open-source. Ele… [Read more…]
Olá pessoal. Tudo certo?! Com alguma frequência, julgamos nossos ambientes de trabalho, nossos líderes, gestores e, até mesmo, nossos clientes. Com frequência nem tão grande, entretanto, fazemos um auto-julgamento honesto. Poucas vezes avaliamos nossa competência. Mas, afinal, o que é competência? Você é competente? Em caso positivo, como sabe disso?! Competência é uma combinação de… [Read more…]
Olá pessoal. Tudo certo?! Com frequência, quando reunimos alguns profissionais de informática, percebemos a demonização dos gerentes. Mas, afinal, estamos sendo justos?! Nesse post, faço o papel de “advogado do diabo”. Mostro minhas considerações sobre algumas “acusações” frequentemente (e injustamente) imputadas as gerentes. Com ele, espero provocar alguma meditação sobre nossas posturas e, quem sabe,… [Read more…]
Melhorando a responsividade de aplicações Web com RxJS
Olá pessoal. Tudo certo?! Esse post é baseado na apresentação do Bart de Smet no MIX11 e em um post do Mart Podwysocki. Apresento, passo-a-passo, como podemos melhorar a qualidade de nossas interfaces através da adoção do RxJS. Se você não sabe nada sobre RxJS, considere ler Reactive Extensions for Javascript (RxJS Framework). Cenário Desejamos… [Read more…]
Olá pessoal. Tudo certo?! Outro dia, escrevi um post mostrando como gerar fractais a partir do Mandelbrot Set. Hoje, faço o mesmo trabalho apresentando Julia set. Novamente, foco apenas na implementação em Javascript. Uma boa explicação teórica sobre Julia set pode ser encontrada na Wikipedia ou no MathWorld. Importante: Reaproveitei boa parte do código que… [Read more…]
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… [Read more…]
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… [Read more…]
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… [Read more…]
dezembro 22, 2011
0