Primeiro acenda um LED, depois domine o mundo! Seguindo esta premissa estou disponibilizando meu primeiro projeto/estudo em Node.js no Arduino. Trata-se de um simples blink utilizando Node.js, Socket.io, Firmata e Johnny-five no Visual Studio. Abaixo segue o vídeo de demonstração: O projeto é bem simples e tem o passo-a-passo já está descrito no Github. Para mais detalhes e baixar o projeto, acesse o Repository da solução aqui!   O código Em app.js temos: var express = require('express'), app = express(),...

Read Post

Recentemente fui questionado sobre opções para se trabalhar com o Arduino no Visual Studio. Como acho esse um tema interessante (um tanto pelo interesse do público em IoT, um tanto por ser da comunidade Microsoft), resolvi condesar aqui as minhas dicas de como utilizar o Visual Studio para programar um Arduino. Temos aqui duas estratégias distintas: Node.js e o Arduino for Microsoft Visual Studio. Ambas utilizam a mesma base para a comunicação com o Arduino, sendo assim o primeiro passo...

Read Post

Quem trabalha com JavaScript conhece bem a problemática em relação ao escopo e criação de variáveis. Uma das grandes preocupações dos desenvolvedores JavaScript é evitar o uso indiscriminado de variáveis globais, o que pode levar a erros terríveis e de difícil rastreabilidade. Como "AINDA" não temos uma sintaxe de módulos do próprio JavaScript, o padrão é a utilização de módulos para garantir um escopo de variáveis fechado, além de simular a privacidade de atributos e funções. Este pattern pode envolver...

Read Post

Criar objetos é a especialidade do Factory Pattern. A grande vantagem desse pattern é que ele reduz a duplicação das tarefas de inicialização em objetos similares, além de permitir abstrair construções que podem ser complexas. Normalmente o método responsável por inicializar os objetos é um método estático, que no contexto do JavaScript pode ser adaptado para um método adicionado diretamente à função construtora. function Usuario(attrs) { for (var nome in attrs) { this[nome] = attrs[nome]; } } Usuario.build = function...

Read Post

O Singleton Pattern diz que você pode ter apenas uma única instância de uma classe (ou, no caso do JavaScript, função construtora). Isso significa que uma vez que a classe for instanciada, você deve sempre retornar esta mesma instância em chamadas subsequentes. Um exemplo clássico deste pattern é usar um único objeto como namespace de sua aplicação, como podemos ver no exemplo abaixo: var MinhaApp = {}; Pelo fato de termos definido a variável como um objeto, não podemos instanciar...

Read Post

MQTT ou Message Queuing Telemetry Transport, é um protocolo de conectividade para M2M (Machine-to-Machine) / IoT (Internet of Things), projetado para suportar o transporte de mensagens para dispositivos de pequena capacidade, baixo consumo de energia, baixa largura de banda, alta latência e disponibilidade variável. Em resumo é um protocolo de mensagens de peso leve, que traz a capacidade de comunicação assíncrona em redes restritas, a dispositivos de recursos limitados. Ele se tornou um padrão OASIS em 07 de novembro de...

Read Post

Uma das questões mais interessantes da mensageria são os protocolos. Na arquitetura de software é fundamental entender a diferença entre os protocolos de mensagens e qual deve ser utilizado em cada tipo de aplicação. Hoje com a multiplicidade de sistemas e plataformas, os arquitetos de software tem optado pela utilização do famoso Message Broker (que vou abordar em um próximo post). Porém escolher um middleware de mensagens também implica em entender as diferenças sutis entre os protocolos de transporte, o...

Read Post

Primeiro, de maneira simples e clara a resposta da pergunta acima é: Tanto faz… Funções em Javascript funcionam tanto como Declaração ou Expressão. O que nos leva a segunda pergunta: Então para que este post se é algo tão simples? Assim como na filosofia alguns dos temas mais complexos se escondem na simplicidade (não que este seja o caso). O certo porém, é que uma função em Javascript pode ser utilizada de maneiras diferentes, como nos seguintes casos: Expressões -...

Read Post

Falando em games, existe um elemento que provavelmente seja mais importante que uma boa ideia e gráficos extraordinários: a fluidez e continuidade. Não tem nada pior que um jogo cheio de pausas e lags. Estudos recentes de usabilidade mostram um grande nível de frustração dos usuários em jogos onde há delay aparente. Mesmo um jogo realista e com uma ótima arte vai ser tornar chato e desinteressante se for lento e sem "fluidez". Levando isso em consideração é importante ter...

Read Post

Antes de continuar a série “HTML5 Game Development” vou falar de alguns temas chave quando estamos escrevendo código para games e APPs com JavaScript. Antes de construir uma casa temos de fazer o fundamento, pelo menos se queremos algo com qualidade e durabilidade. Sendo assim é fundamental dominar alguns pontos da linguagem. O código acima “parece” totalmente despretensioso e simples porém as duas linhas acima NÃO tem o mesmo efeito. O Script A e o Script B escondem uma diferença...

Read Post