maio, 2010


28
mai 10

Program-ME vs Arduino – Fight!

A idéia de fazer esse post surgiu a partir de uma pergunta no forum da comunidade do Program-ME no Ning. Um companheiro queria saber a diferença entre um Arduino padrão e o Program-ME antes de investir em um produto.

Nosso companheiro José Luiz respondeu muito bem a dúvida, mas achei que a resposta merecia um complemento. Decidi então dar meus 10 centavos, e dei a opinião de quem está começando nessa cachaça de eletrônica ;) e encontrou no Program-ME um dispositivo pronto pra briga. Minha resposta foi mais ou menos assim:

Posso te afirmar que isso tudo de bom que o Luiz escreveu para mim se resume em uma coisa: Muita coisa pronta para colocar a mão na massa ;)

Já fiz vários testes e brincadeiras só com o Program-ME. Sem precisar comprar nenhum componente extra.

Daí me veio a idéia de comparar os dois produtos em alguns testes básicos. Existem muitos tutoriais de como testar o Arduino com LED, PWM, LDR e outras coisas. Todos também se aplicam ao Program-ME, já que ele é 100% compatível com o Arduino. Mas a diferença que o produto da Globalcode foi pensado para ser o mais didático e fácil possível no ensino da computação física e na criação de experimentos em eletrônica. Então vamos ao que interessa.

Usando LDR

Nesse primeiro FIGHT eu vou comparar os dois dispositivos numa implementação usando um LDR.

Como eu não tenho um Arduino eu decidi colocar aqui um post bem didático do blog do Andre, que demonstra como usar o Arduino com um LDR. O post está bem legal. Muito bem explicado. Possui a lista de materiais necessários, detalhes do circuito que será criado, o programa para executar o teste, e como fazer o upload do programa e executar o teste. Show de bola! Mas percebam a quantidade de coisas que devem ser feitas para o programa funcionar.

O programa (abaixo) foi bem comentado pelo autor, e basicamente acende ou apaga o LED, se o LDR receber pouca ou mais luz, respectivamente (linhas 17 a 21).

/*# PROGRAMA ELABORADO POR ANDRED. #*/

int valor = 0;    // Variavel onde e guardado o valor lido do LDR
int led_pin = 13;  // Pino onde vamos ligar o LED
int analogin = 5; // Pino onde vamos ligar a LDR

void setup(){
  Serial.begin(9600); // Inicia A comunicação da porta Serial para que possamos ver o valor do LDR
}

void loop(){
  valor = analogRead(analogin); // O valor que irá ser lido na porta analogica numero 6 irá ser guardado na variavel “valor”
  Serial.print("O valor Da LDR e igual a: ");  // Mostrar na consola a frase “O valor Da LDR e igual a: “
  Serial.println(valor); // Mostras no Serial Monitor o valor da variavel “valor”
  delay(25); // Faz uma pequena pausa de 25 Mili Segundos

  if (valor < 300) { // Se a variavel valor for menor que 300
    digitalWrite(led_pin, HIGH); // acende o led da porta 8
  } else {
    digitalWrite(led_pin, LOW);
  } // se for maior mantem o led da porta 8 apagado

}

Agora pergunto. E se você não tem toda a lista de materiais e está doido para brincar? Quanto tempo ele gastou para finalizar esse experimento só para ver se o programa funcionava? Ou outro impeditivo qualquer. No caso do Arduino você terá, quase que necessáriamente, que seguir os passos que o André indicou, pois essas são as etapas básicas para brincar com Arduíno + LDR.

Agooooora, se você tem um Program-ME faça assim:

Viram a diferença?

Usando o Program-ME eu concluí o mesmo teste em menos de 1 minuto.

Eu só precisei fazer o upload do programa dele para o Program-ME e pronto. A plaquinha vem preparada para a batalha!! Já vem com 9 leds, 1 speaker, 2 entradas para conectar servo motores, 2 entradas para conectar pontenciometros, sensores de distância analógicos, 1 botão, e o já conhecido sensor de luminosidade (LDR), e etc..

Isso facilita muito, pois tudo já está soldado e testado, e economiza nossa grana e nosso tempo, pois já está comprado e nenhum investimento adicioal é necessário.

Claro que se vamos criar nosso próprios projetos e inventar trapizongas, então mexer com solda, protoboard, e etc é necessário, e até muito legal ;) Mas eu acho muito legal poder fazer vários testes e brincadeiras (principalmente para estudar a linguagem de programação) sem precisar estar à volta com fios, solda, e outras coisas só para fazer uma brincadeirinha.

Program-ME WINS

Não quero dizer que o Program-ME é melhor que “x” ou “y”, até porque não ganho comissão, nem nada. Essa é a opinião de uma pessoal que encontrou tudo que precisava em um produto, e até agora está muito satisfeita com tudo. A qualidade do dispositivo é excelente e o atendimento da GC é ótimo.

Vou tentar colocar mais alguns “fights” entre os dois dispositivos mais para frente, mas para começar tá bom.

Fico por aqui.

Abs.


17
mai 10

O que é um mashup?

Você sabe o que é um mashup?

Esse vídeo faz uma analogia bem legal para explicar o que são mashups. Eu gostei muito.

No final o cara faz a maior bagunça no quadro, mas ele consegue passar bem a mensagem. Fica a dica ;)


1
mai 10

Certificado Digital – Entenda o que é!

O mundo de hoje gira em torno do computador e da internet. A possibilidade de comunicação rápida e fácil com todos facilitou a vida de pessoas e empresas, e permitiu a criação de diversos serviços tais como: trocar e-mails, mensagens instantâneas, transações bancárias, compras em lojas e supermercados. Até aí “no big deal”. Mas toda essa informação não pode transitar por aí sem segurança, pode? Bom muitas podem, mas existem outras que precisam ser guardadas e defendidas sempre. São senhas de banco, documentos sigiloso, dados sensíveis sobre grandes corporação, e por aí vai.

Então se faz necessário garantir que esse conteúdo que transita pela internet esteja seguro de ações mal intencionadas.

É nesse momento que entra em cena o recurso da Certificação Digital.

O que é Certificação Digital?

É um mecanismo usado em segurança digital capaz de garantir, autenticidade, integridade e não-repúdio às informações eletrônicas. A Certificação Digital é um tipo de tecnologia de identificação que permite que transações eletrônicas dos mais diversos tipos sejam feitas de forma a evitar que adulterações, interceptações ou outros tipos de fraude ocorram.

  • Autenticidade: o destinatário deverá ser capaz de identificar o remetente e verificar que foi mesmo ele quem enviou a mensagem.
  • Integridade: o destinatário deverá ser capaz de determinar se a mensagem foi alterada durante a transmissão.
  • Não-repúdio do emissor: não deverá ser possível ao emissor negar a autoria da mensagem.

Para entender a certificação digital é necessário um mínimo de conhecimento sobre o que é ASSINATURA DIGITAL, pois a mesma é usada neste recurso.

ASSINATURA DIGITAL

A assinatura digital é um mecanismo que garante a autenticidade e a integridade de uma informação digital. Ela é utilizada para provar que a mensagem ou o arquivo assinado não foi alterado.

Podemos comparar uma assinatura digital (em documentos eletrônicos) com uma assinatura à caneta em um documento de papel. Ambas têm a mesma finalidade: garantir a integridade e autenticidade do documento. Simples como isso.

É claro que essa é uma visão muito simplista desse recurso. Existem muitos detalhes técnicos que envolvem o ato de assinar digitalmente um documento, como chaves, hash* token**, etc..

Mas é importante frisar que a assinatura digital não serve, necessariamente, para cifrar (criptografar é um termo incorreto) uma mensagem ou documento eletrônicos, e sim para identificar o remetente e a integridade da mesma.

COMO É FEITO?

Então como podemos ter certeza que realmente foi o remetente que assinou digitalmente o documento? Alguém pode ter alterado o documento no meio do trajeto entre o remetente e o destinatário.

De maneira resumida uma assinatura típica envolve dois processos:

  1. a criação do resumo da mensagem (hash*) e
  2. a cifragem deste resumo.

Esse resumo cifrado é anexado a mensagem e os dois serão enviados ao destinatário. No momento do recebimento o destinatário irá criar outro resumo da mensagem e irá compará-lo ao resumo recebido. Se forem iguais, então a mensagem veio do remetente certo e seu conteúdo está íntegro.

figura 1

Note que o simples processo de usar a assinatura digital não garante que a sua mensagem não será lida nem alterada (sigilo). Não é essa a sua função principal, embora também possa ser usada para tal (isso será assunto de outro post). Sua função principal é garantir que a mensagem ou documento recebido é o mesmo que o remetente enviou (autenticidade), e não foi alterado em seu trajeto (integridade). Com isso também garantimos que o remetente não poderá negar que assinou e enviou tal documento (não-repúdio do emissor). É exatamente a mesma lógica da assinatura em um documento de papel.

CHAVES PÚBLICAS E CHAVES PRIVADAS

Mas como garantir que alguém mal intencionado não consiga assinar um documento se passando por você? Para isso é usado criptografia com chaves públicas e privadas.

PAR DE CHAVES

Uma pessoa (ou entidade) define um par de chaves. As chaves serão criadas no mesmo instante (em geral por um programa) usando cálculos matemáticos complexos. Essas chaves nada mais são que códigos que serão usados para cifrar e decifrar as mensagens que serão transitadas. Uma será pública, e a outra privada. A chave privada fica com o dono do par, e só ele tem acesso a essa informação. A chave pública pode ser compartilhada com qualquer pessoa, e fica disponível a todos.

Uma mensagem cifrada com uma chave privada só pode ser decifrada com a chave pública do seu par.

COMO É FEITO?

No exemplo da figura 1 foi usada a chave privada (dourada) da Maria para cifrar o resumo (hash) da mensagem, e esse resumo cifrado foi encaminhado junto com a mensagem. Quando João recebeu a mensagem e o resumo, ele decifrou o resumo usando a chave pública (prata) da Maria (que todos podem ter acesso), depois gerou um novo resumo da mensagem recebida. Se o resumo enviado pela Maria (protegido por sua chave privada) for igual ao resumo gerado pelo João, então está provado que a mensagem foi realmente enviada pela Maria, e não sofreu alterações.

figura 2

Mas as chaves públicas e privadas não podem ser criadas sem critérios. Quer dizer: até podem sim. Eu posso usar um programa como o GnuPG para isso, mas elas não terão validade jurídica. Para que elas sejam confiáveis e possuam total validade jurídica é preciso que elas sejam criadas sob as normas da ICP-Brasil.

ICP-BRASIL

A Infra-Estrutura de Chaves Públicas Brasileira (ICP-Brasil) é um conjunto de entidades, técnicas, práticas e procedimentos que tem como objetivo estabelecer os fundamentos técnicos e metodológicos do sistema de certificação digital baseado em chave pública. Bonito né? Resumindo: é uma área, sob a administração do Instituto Nacional de Tecnologia da Informação - ITI órgão do governo federal, que padronizou, e mantém as regras do uso de chaves no país. O governo percebeu a importância de regulamentar as atividades de certificação digital no País, já que o número de transações eletrônicas crescia sem parar, e com isso se imprescindível tornar essas transações mais seguras.

A Medida Provisória 2.200-2 de 2001 instituiu a ICP-Brasil para garantir a autenticidade, a integridade e a validade jurídica de documentos em forma eletrônica e das aplicações habilitadas que utilizem certificados digitais, bem como a realização de transações eletrônicas seguras.

CONCLUSÃO

A tecnologia da Certificação Digital alcança e beneficia as mais diversas áreas proporcionando benefícios aos cidadãos, órgãos públicos e empresas privadas. Ela também possibilita segurança nas transações digitais, evitando o risco de fraudes. Também proporcionam maior produtividade e redução de custos, pois com menos papel temos processos mais simples e ágeis. Esse último colabora também para adoção de políticas ambientais, e de “TI Verde”, uma vez que documentos certificados não necessitam ser impressos e possuem validade jurídica. Algumas empresas ecomizaram horrores com a digitalização de documentos. A Certificação Digital já é uma realidade, e está sendo cada vez mais usada e adotada pelas empresas. Algumas já são obrigadas, pelo governo, a utilizá-la no momento de envio de informações aos órgãos públicos. Acredito que em poucos anos a utilização desse recurso estará no dia a dia das pessoas comuns, facilitada quem sabe, pela maior divulgação e adoção do e-CPF.

REFERÊNCIAS

http://www.iti.gov.br/twiki/bin/view/Certificacao/ http://www.iti.gov.br/twiki/bin/view/ITI/Apresentacao http://pt.wikipedia.org/wiki/Hash http://www.pronova.com.br/por_dentro.php

*Hash: é uma sequencia fixa de caracteres (em base hexadecimal) gerados por um algoritmo. Essa sequencia sempre terá o mesmo tamanho, independente da quantidade de informações que foi usada para produzi-la.

**Token: Token é um dispositivo eletrônico que armazena informações. Pode ser usado para guardar a chave privada do usuário. O acesso às informações neles contidas é feito por meio de uma senha pessoal, determinada pelo titular.