“Cábula” do MySQL

Este artigo visa ajudar aos programadores a fazer as suas tarefas mais facilmente e ajudar a diminuir o tempo de desenvolvimento.Alguns termos encontram-se em brasileiro “a gente” entende-se bem :). Vamos la começar.

A função IN e NOT IN

Usamos IN para fazer consultas quando precisamos que seja retornado todos os registros onde em um determinado campos contenha um dos valores que serão passados no IN.

Usamos NOT IN quando queremos retornar tudo menos os resultados passados no NOT IN

Uso em String:

SELECT sigla, nome, população
FROM cidades
WHERE
Sigla IN(‘PR’, ‘SP’, ‘MG’);
//NOT IN
Sigla NOT IN(‘PR’, ‘SP’, ‘MG’);

Uso numérico:

SELECT nome, email, idade
FROM curriculos
WHERE
idade IN (18, 19, 20)
//NOT IN
idade NOT IN (15, 16, 17)

As funções IF e CASE WHEN

Usamos a função IF no MySQL com a mesma finalidade do que qualquer linguagem de programação, só que na maioria das vezes é mais fácil jogar essa verificação para o banco de dados do que para a linguagem de programação.

Sintaxe:

IF(condição, caso verdadeiro, caso contrário)

SELECT nome, email, IF(sexo =”M”, “Masculino”, “Feminino”)
FROM currículos

A função CASE WHEN:

Usamos a função CASE WHEN no MySQL com a mesma finalidade do que usamos em qualquer çinguagem de programação, so que na maioria da vezes é mais fácil jogar essa verificação para o banco de dados do que para a linguagem de programação.

Sintaxe:
CASE campo
WHEN “valor1” THEN “Novo valor”

Controle de fluxo

SELECT nome, setor
CASE mes_nascimento
WHEN 01 THEN “Janeiro”
WHEN 02 THEN “Fevereiro”
WHEN 03 THEN “Março”
WHEN 04 THEN “Abril”
WHEN 05 THEN “Maio”
WHEN 06 THEN “Junho”
WHEN 07 THEN “Julho”
WHEN 08 THEN “Agosto”
WHEN 09 THEN “Setembro”
WHEN 10 THEN “Outubro”
WHEN 11 THEN “Novembro”
ELSE “Dezembro” END AS mes_nascimento
FROM funcionários

Condições livres

SELECT
CASE
WHEN continente = “América” THEN “Continente americano”
WHEN pais = “Brasil” THEN “Continente sul americano”
WHEN continente = “Mexico” THEN “Continente norte americano”
WHEN estado = “Paraná” THEN “Região Sul”
WHEN estado = “São Paulo” THEN “Região Sudeste”

Funções matemáticas

Trigonometria
pi() = 3.14.15.93
radians(180) = 3.1415926535898
sin(radians(60)) = 0.866025
sqrt(3)/2 = 0.86602540
degrees(asin(sqrt(3)/2)) = 60

Logaritmo e potência

log(2) = 0.693147
exp(1) = 2.718282
power(2,5) = 32.000000
log10(100) = 2.000000
mod(13,7) = 6
13%7 = 6
abs(-42) = 42
sign(0) = 0

Arredondamento

ceiling(2.5) = 3
floor(2.5) = 2
round(2.5) = 2
round(2.51) = 3
truncate(2.5,0) = 2

celing para cima
floor para baixo
round para o inteiro mais próximo
truncate elimina casas decimais

Obs: todas as funções de arredondamento também funcionam para números negativos

Funções de string

concat – concatema strings; pode receber 1-n parâmetros
substring – pega partes de uma string baseado na posição
substring_index – pega partes da string baseado nos delimitadores
instr – encontra strings em outras strigns
replace – modifica strings em outras strings
length – calcula o tamanho da string
like – compara strings utilizando wildcards

substring_index(“diegohellas@hotmail.com”, “@”, 1) = diegohellas
substring_index(“orders.mysql.com”, “.”, -2) = mysql.com
reverse(“orders.mysql.com”) = moc.lqsym.sredro
upper(“mysql”) = MYSQL
lower(“MySQL”) = mysql
rpad(“Diego”, 10, “.”) = diego…..
char(77,121,83,81,76) = MySQL
left(“Diego Felipe Hellas”, 3) = Die
mid(“Diego Felipe Hellas Moreira Alves”, 13,6) = Hellas
rught(‘Diego Hellas“, 6) = Hellas
trim(“Q”, from “QQQQMySQL ABQQQ”) = MySQL AB

Funções de tempo e de data

NOW() e intervalos

SELECT NOW() – irá retornar a data e hora atual do servidor MySQL no formato
aaaa-mm-dd hh:mm:ss

SELECT NOW() + INTERVAL 2DAY – irá retornar a data e hoira do servidor, só que com uma diferença de 2 dias para frente(ex: hoje é 2006-10-07 ele irá retornar 2006-10-09), essa diferença pode ser negativa também, e o intervalo pode ser horas, minutos, segundos, dias, semanas, meses, anos, etc;

Formatando datas com o DATE_FORMAT()

Sintaxe:
DATE_FORMAT(campo, ‘formato desejado’)

Especificador Descrição
%M Nome do mês (January..December)
%W Nome do dia da semana (Sunday..Saturday)
%D Dia do mês com o sufixo em Inglês (1st, 2nd, 3rd, etc.)
%Y Ano, numérico, com 4 dígitos
%y Ano, numérico, com 2 dígitos
%a Nome do dia da semana abreviado (Sun..Sat)
%d Dia do mês, numérico (00..31)
%e Dia do mês, numérico (0..31)
%m Mês, numérico (01..12)
%c Mês, numérico (1..12)
%b Nome do mês, abreviado (Jan..Dec)
%j Dia do ano (001..366)
%H Hora (00..23)
%k Hora (0..23)
%h Hora (01..12)
%I Hora (01..12)
%l Hora (1..12)
%i Minutos, numérico (00..59)
%r Horário, 12 horas (hh:mm:ss [AP]M)
%T Horário, 24 horas (hh:mm:ss)
%S Segundos (00..59)
%s Segundos (00..59)
%p AM ou PM
%w Dia da semana (0=Domingo..6=Sábado)
%U Semana (00..53), onde Domingo é o primeiro dia da semana
%u Semana (00..53), onde Segunda é o primeiro dia da semana
%% Caractere `%’.

Exemplos de utilização:

Lembrando sempre que o MySQL armazena as datas no formato aaaa-mm-dd

Para seleccionar a data no formato que usamos, ou de nossa necessidade:

SELECT nome, DATE_FORMAT(data_nascimento, ‘%d/%m/%Y’) AS data
FROM funcionários

Esse exemplo agora é muito útil, eu sempre uso quando eu tenho um formulário que tem um campo de data e essa data temque ser pesquisada no MySQL, com ela eu evito de ficar transformando a data de dd/mm/aaaa para aaaa-mm-dd

SELECT nome, departamento FROM funcionários
WHERE DATE_FORMAT(data_nascimento, ‘%d/%m/%Y’) = ‘22/11/1986’
Função DATEDIFF

Ela calcula a diferença em dias entre duas datas

SELECT DATEDIFF(’2006-12-31′, ‘2006-01-01′) = 364

Fonte: “Cábula” do MySQL – Pplware

Vamos dar uns toques em queries SQL?

Vamos dar uns toques em queries SQL?

Criado por Pedro Pinto em 28 de Maio de 2011 | 39 comentários

No âmbito de um projecto que estou a acompanhar, para desenvolvimento de um serviço Web desenvolvido em PHP e base de dados MySQL , lembrei-me que nunca tínhamos criado artigos com dicas sobre a linguagem SQL (Structured Query Language) no pplware. Nesse sentido, decidi arregaçar as mangas e, quem sabe, este não será o primeiro artigo de uma rubrica sobre SQL.

sql_00

Para quem não sabe, o SQL é uma das linguagens mais usadas no âmbito de aplicações que assentam em bases de dados. De uma forma muito simples, dentro de uma base de dados temos tabelas e dentro das tabelas temos registos. Imaginem por exemplo que têm uma base de dados com uma tabela que possui registos sobre pessoas. Essa tabela tem os campos (id_pessoa, nome, telefone, cor do cabelo, idade, morada). Através da linguagem SQL podemos efectuar queries (consultas) e saber por exemplo quantos registos temos na tabela, quantas pessoas têm o cabelo preto, quantas pessoas têm idade superior a 25 e inferior a 30, etc.

A linguagem SQL foi desenvolvida pela IBM em meados dos anos 70 e depois foi regulada por normas ANSI e ISO.De uma forma geral, através do SQL podemos eliminar, inserir e modificar registos numa base de dados relacional.

Está percebido para que serve a linguagem SQL? Espero que sim! Vamos agora começar por ensinar como usar o comando SELECT.

O comando SELECT permite seleccionar informação de uma ou várias tabelas.

Sintaxe de utilização
SELECT nome_campo FROM nome_tabela;

Para o presente exemplo, decidi criar uma base de dados com o nome db_pplware e com uma tabela com o nome tbl_pplware com os seguintes campos e dados:

tbl_00

Alguns exemplos

EXEMPLO 1

Objectivo: Seleccionar todos os dados

Query:

SELECT * FROM tbl_pplware;

Resultado: o resultado é o mesmo da tabela apresentada anteriormente.

EXEMPLO 2

Objectivo: Seleccionar apenas os nomes

Query:

SELECT nome FROM tbl_pplware;

Resultado

tbl_nome

EXEMPLO 3

Objectivo: Seleccionar nome e morada

Query

SELECT nome, morada FROM tbl_pplware;

Resultado

tbl_nome_morada

Deu para perceber? Se calhar, então o melhor mesmo para agora experimentar numa base de dados a sério. Para tal, o site w3schools.com disponibiliza um pequeno serviço onde podemos por em prática alguns comandos sobre SQL. Para testarem ó comando SELECT basta aceder ao serviço aqui e têm disponível a seguinte tabela para testarem as vossas queires.

tbl_000

Para finalizar, apenas gostava de saber qual a vossa opinião sobre esta rubrica. Parece-vos útil e importante? O objecto é começar do “zero” e ir apresentando alguns dos muitos comandos que a linguagem SQL disponibiliza. Aguardo o vosso feedback.

Artigos relacionados

Domingo é dia de dicas do Microsoft Word

Domingo é dia de dicas do Microsoft Word

Criado por Pedro Pinto em 29 de Maio de 2011 | 34 comentários

Como é comum ao Domingo, hoje trazemos mais algumas dicas sobre a potente ferramenta que é o Microsoft Word. Uma vez que esta rubrica tem vindo a tornar-se cada vez mais popular, decidimos torná-la uma rubrica de fim de semana e “aberta” a todos os leitores que pretendam contribuir.

Hoje não vamos deixar uma dica, nem duas…mas sim quatro dicas!

word_000

Dica nº1 – Mostrar e ocultar marcas de formatação

No último artigo (ver aqui), ensinamos a criar secções num documento. No entanto, alguns utilizadores perguntaram-nos como ver essas “marcas de formatação” ao longo do texto.

Para tal basta irem ao separador superior e escolher Home (Base) e em seguida seleccionar o botão Show/Hide. Como podem ver pela imagem seguinte, a partir desse momento todas as marcas de formatação escondida, aparece no texto. Para desligar, basta carregar novamente no botão.

word_00

Dica nº2 – Subscript e SuperScript

Recentemente questionaram-me como colocar texto pequeno acima e abaixo da linha (base) de texto. Essa opção está disponível através do separador Home (Base) e escolhendo o botão Subscript ou SuperScript como mostra a figura seguinte.

word_01

Dica nº3 – Format Painter (Pincel)

Quando elaboramos um documento no Microsoft Word, é comum formatarmos por várias vezes o texto. Imagine por exemplo que numa determinada parte do texto decidiu definir o tamanho 11, cor azul, tipo de letras Verdana e itálico.  Depois de mais algumas linhas, precisa da mesma formatação. Como aplicar a mesma formatação de forma rápida e simples? O Microsoft Word disponibiliza o Format Painter que permite copiar a formatação de uma parte do texto e aplicar a outra. Para isso basta seleccionar a formatação de origem, carregar no botão Format Painter e depois passar o “pincel” no texto de destino para aplicar a formatação.

word_03

Dica nº4 – Guardar formatação (criar estilo)

A semana passada recebi um e-mail de um leitor a questionar se era possível criar uma determinada formatação, uma vez que tinha de a utilizar por várias vezes no documento.

Considerando o exemplo anterior, podemos guardar a nossa formatação acedendo através do separador Home (Base) à parte dos estilos. Depois de seleccionada a formatação que pretendemos guardar, na parte dos estilos devemos escolher a opção “Save Selection as a New Quick Style

word_04Em seguida atribuímos um nome à nossa nova formatação.

word_05

De seguida, se pretendemos aplicar o novo estilo, basta seleccionar o texto e escolher o novo estilo criado.

word_06

Por hoje é tudo! Esperamos que as dicas sejam úteis e que vos ajudem a criar de forma mais simples os vossos documentos. Como referi anteriormente, esta dica está aberta a todos os que pretendam contribuir. Enviem-nos as vossas dicas para ppinto @ pplware .com para publicarmos em próximos artigos.

PHP é a Quinta-Feira – Introdução ao JavaScript

PHP é a Quinta-Feira – Introdução ao JavaScript

Criado por Pedro Pinto em 26 de Maio de 2011 | 21 comentários

Por Pedro Peixoto para o PPLWARE

Como já vimos nos artigos anteriores, o PHP é uma linguagem server side, isto significa que é processado do lado do servidor, sendo que o utilizador que está a fazer o pedido ao servidor recebe uma página HTML já processada. Assim, e visto que à partida o servidor é controlado, apenas pessoas autorizadas acedem a todo o código PHP, ligações a bases de dados, sistemas de encriptação, o que o torna uma linguagem segura. No entanto, isto leva a perda de interactividade e flexibilidade, pois cada vez que é necessário executar código tem de se fazer um novo pedido ao servidor, e num ambiente WEB, os sistemas baseados em PHP perdiam muito em relação a tecnologias WEB como o Flash e o JAVA. Este problema foi soberbamente ultrapassado, recorrendo a uma linguagem de programação, que embora estivesse já solidamente integrada nos Browsers, não via aproveitados todos os seus atributos, falamos do JAVASCRIPT.

php_java

A partir de hoje vamos introduzir o Javascript nos nossos artigos, isto porque o PHP e esta linguagem andam sempre de mão dada. As duas acabam por se completar, o PHP pode processar rapidamente informação do lado do servidor, gerindo bases de dados, sessões, e conteúdos dinâmicos. O Javascript consegue oferecer a interactividade que é necessária na visualização de conteúdos WEB, pois é processado pelo browser do utilizador. Além disto, é uma linguagem orientada a eventos o que possibilita associar determinado código a uma determinada acção do cliente.

Para melhorar a associação PHP<->Javascript contribuiu muito o AJAX, mas este é um tema para um outro artigo que também terá espaço neste rúbrica.

Ultimamente os motores Javascript utilizados pelos Browsers têm tido desenvolvimentos consideráveis diminuindo o tempo e recursos de processamento, o que permitiu que o Javascript tivesse ganho a importância merecida.

Agora, com o surgimento do HTML5, põe-se em causa qual o rumo que o Javascript vai seguir, é certo que muitas das coisas que antes eram feitas com JS podem agora ser feitas directamente no HTML5, no entanto, o facto desta nova versão abrir as portas a novas funcionalidades, principalmente multimédia, acabam por dar uma importância acrescida ao Javascript.

Antes de terminar, não posso deixar de referir o jQuery, que será também abordado nos nossos artigos. O jQuery é uma biblioteca Javascript que facilita em muito a programação, uma vez que além de permitir realizar a maior parte das acções necessárias de forma simples, funciona em todos os browsers, e os plugins existentes oferecem uma variedade imensa de funcionalidades.

Em conclusão, e na minha opinião pessoal, o Javascript é uma linguagem com uma posição solidificada e com os seus propósitos bem definidos, está de boa saúde, em constante melhoria (processamento dos browsers), e com um futuro risonho à sua frente.

Na próxima semana iremos, então, ver na prática o bom funcionamento destas duas linguagens juntas. Mas como já percebi que vocês gostam de participar e complementar os artigos, deixo já alguns desafios básicos, para adiantar o próximo artigo.

  • Como se incorpora Javascript numa página HTML?
  • Como mostrar uma msgbox com informação ao utilizador?
  • Como redireccionar um utilizador através de Javascript?

Remote Web Desktop – O seu Android no Browser

Remote Web Desktop – O seu Android no Browser

Criado por Pedro Pinto em 26 de Maio de 2011 | 5 comentários

Ontem enquanto procurava por novidades do mundo Android, encontrei uma aplicação bastante interessante que permite de forma muito simples integrar e aceder remotamente a funcionalidades do nosso Android , através de um simples browser. Por norma este tipo de aplicações estão limitadas, funcionando apenas rede wireless local. No entanto, o Remote Web Desktop além do acesso através de uma rede wireless local, permite ainda o acesso via 3G e USB.

Vamos conhecer melhor o Remote Web Desktop.

web_00

Devo confessar que à primeira achei que estava perante mais uma aplicação para partilha e gestão remota do nosso smartphone. No entanto, chamou-me à atenção o aspecto organizado de todas as funcionalidades e o melhor de tudo, a questão de ser uma aplicação gratuita.

Principais funcionalidades

Web SMS – Possibilidade de enviar SMS a partir do browser, numa aplicação com um aspecto tipo outlook

web_SMS

File Explorer – Possibilidade de partilhar facilmente ficheiros entre o nosso PC e o nosso smartphone. Suporte para Drag and Drop (para browser com suporte para HTML5)

web_File

FTP Server – Disponibilização de um mini servidor de FTP para mais comodamente trocar ficheiros entre o smartphone e o nosso PC.

web_FTP

WiFi Keyboard – Possibilidade de usar o teclado do PC para escrever no Android

Webcam – Acesso à Webcam do smartphone através do browser

web_cam

e ainda…

  • Screen Capture – Captura de screens (se o smartphone tiver rooted)
  • Wallpaper – Possibilidade de alterar o wallpaper do smartphone
  • APK Web Installer – Possibilidade de fazer backup de todas as aplicações presentes no cartão SD
  • Shared ClipBoard – Para partilha de texto entre PC e smartphone
Como funciona?

Basicamente o que temos de fazer é instalar o Remote Web Desktop no nosso dispositivo com Android (ver parte final do artigo).

De seguida basta apenas carregar no botão Start Server  e será fornecido o link que devemos colocar por exemplo no browser do nosso PC para aceder e gerir remotamente ao nosso smartphone com Androi. No separador FTP Server podemos configurar os parâmetros do servidor FTP (user, passowrd e porta) e no separador App Manager podemos fazer facilmente backup das nossas aplicações para o cartão SD.

Nota: Para quem estiver via 3G, deverá seleccionar a opção Bridge Mode

webserver

Abrindo o URL indicado no browser, podem aceder a todas as funcionalidades referidas anteriormente.

webserver1

Aconselho vivamente a experimentarem esta aplicação, pois é fantástica e muito simples de usar. Não necessitamos de cabos para passar informação do smartphone para o PC e vice-versa e temos acessíveis via browser um conjunto de funcionalidades que normalmente apenas estão acessíveis no smartphone. Mais uma aplicação para juntar ao meu TOP de app para Android.

Licença: Freeware
Sistemas Operativos: Android 1.5 +
Homepage: Remote Web Desktop

web_qr

    Swiss Army Knife – O verdadeiro canivete para Android

    Swiss Army Knife – O verdadeiro canivete para Android

    Criado por Pedro Pinto em 23 de Maio de 2011 | 16 comentários

    Por norma os fins de semana são dias interessantes para fazermos aquilo que não conseguimos realizar durante a semana. No passado fim de semana, aproveitei para montar um móvel que lá tinha há já algum tempo. Tirei as tábuas da caixa, separei os parafusos e quando olho para o manual de montagem reparo que necessitava de um nível. E pergunto-me discretamente a mim mesmo “Mas onde raio vou eu arranjar um nível??”

    Como no market do Android costuma haver de quase tudo, lembrei-me de procurar por tal ferramenta. E não é que encontrei de imediato! Vamos conhecer o Swiss Army Knife.

    knife_00

    O Swiss Army Knife, tal como o nome sugere, é tipo um canivete suíço que disponibiliza 6 ferramentas de extrema utilidade:

    • Flash Light
    • Régua
    • Temporizador
    • Cronómetro
    • Bússola
    • Nível

    As aplicações disponibilizadas não incluem efeitos 3D “especiais” pois segundo o autor, o objectivo é que para além da simplicidade as ferramentas devem ser extremamente rápidas. knife_01

    É impressionante a quantidade de aplicações disponíveis no market do Android, para as mais diversas situações. Com o  Swiss Army Knife, não necessitei de adquirir o “nível” e devo dizer-vos que as restantes ferramentas também funcionam bastante bem. O que um Android não é capaz de fazer? Para quem tem iPhone, pode experimentar o: 120+ in 1 : Applets – Uma mão cheia de apps para o iPhone.

    Artigos relacionados

    Licença: Freeware
    Sistemas Operativos: Android 1.6 +
    Homepage: Swiss Army Knife

    qr_knife

    Kit de desenvolvimento Sun SPOT – A Internet das coisas

    Kit de desenvolvimento Sun SPOT – A Internet das coisas

    Criado por Pedro Pinto em 12 de Maio de 2011 | 27 comentários

    Uma plataforma de desenvolvimento para quem tem inspiração!

    Nos dias de hoje, a Internet é constituída por milhões de computadores interligados através de redes de dados… mas algo está a mudar. A Internet das coisas é uma revolução tecnológica que representa o futuro da computação e da comunicação, em que tudo poderá comunicar como tudo (ex. computadores, electrodomésticos, carros, bicicletas, vestuário, etc). O aplicação deste “conceito inovador” depende de (nano) tecnologias como por exemplo as redes de sensores, RFID, sistemas ubíquos… e claro não esquecer que o IPv6 é fundamental para este “novo mundo nano tecnológico”.

    Durante a parte curricular do meu Mestrado em Computação Móvel, na disciplina de Redes de Sensores, descobri a excelente plataforma de desenvolvimento Sun SPOT que permite o desenvolvimento de “coisas inovadoras”. Vamos conhecer o Kit de desenvolvimento Sun SPOT.

    sunSpot_000

    Antes da apresentação do kit de desenvolvimento apenas recordar o que é uma rede de sensores.

    O que é uma rede de sensores?

    As redes de sensores sem fios (RSSFs) ou em inglês Wireless Sensor Networks, são formadas por um grande número de sensores pequenos e plantados numa base ad hoc que detectam e transmitem características físicas do ambiente. Podem ser vistas como um tipo especial de rede ad-hoc (MANET – Mobile ad-hoc Network) e como uma das vertentes da computação ubíqua. Ver mais aqui.

    Kit de desenvolvimento SunSpot

    Depois da apresentação do Arduino, verificámos que os nossos leitores demonstram interesse pela área da electrónica e da programação. Nesse sentido decidi apresentar-vos hoje (para quem ainda não conhece) o Kit de desenvolvimento SunSpot (Sun Small Programmable Object Technology). Em traços gerais, a plataforma SunSpot é constituída por pequenos sensores e foi criada com o intuito de permitir o desenvolvimento de aplicações inovadoras e com aplicabilidade nas mais diversas áreas.

    Principais características dos SunSpots

    • Desenvolvimento em Java (através do Netbeans ou Eclipse)
    • Fácil de programar e com muitos exemplos disponíveis na página do projecto
    • Consumo energético bastante baixo

    Especificações técnicas

    • Micro controlador Atmel AT91RM9200 baseado no Processador ARM920T Core 32 bits, com 180 MHz, 512 KB RAM e 4MB de Flash
    • Antena de rádio Integrada na placa, standard IEEE 802.15.04 de 2.4 GHz
    • Bateria recarregável de lítio-ion de 3.6 V e 750 mAh;

    SunSpot – Placa de Processamento

    sunSpot_00

    SunSpot – Sensores
    • Acelerómetro 2G/6G 3-axis;
    • Sensor de Temperatura;
    • Sensor de Luz;
    • 8 LEDs tri-coloridos;
    • 6 entradas analógicas por ADC;
    • 2 sensores de movimento (switches);

    sunSpot_01

    Aplicabilidade

    Melhor que escrever, aconselhamos a verem os seguintes vídeos desenvolvidos com base neste Kit.

    Como puderam ver no vídeo,  o responsável pelo projecto juntou um SunSPOT a bicicleta, a captura dos sensores é enviada para o computador que se encarrega da simulação.

    SUN SPOT Game Controller for Counter Strike

    Sun SPOT Telerobotics

    Fascinados? Para mais informações sobre este kit pode consultar o site SunSpotWord onde existe muita informação disponível. Para quem percebe de Java, desenvolver projectos inovadores nunca foi tão fácil.

    Alguém já trabalhou com este Kit?

    Homepage: SunspotWorld