Mostrando postagens com marcador Programação. Mostrar todas as postagens
Mostrando postagens com marcador Programação. Mostrar todas as postagens

quarta-feira, 6 de maio de 2020

JSON e Arduino


No post de hoje iremos falar sobre interoperabilidade de sistemas. O termo pode parecer estranho, mas grande parte dos serviços da Web funciona neste formato, onde algum sistema envia informações para outro. E aqui vem a pergunta, como enviar informações quando os sistemas são desenvolvidos em linguagens diferentes ??





Tempos atrás tínhamos os arquivos XML que eram enviados de um sistema para outro. Exemplo disso é a maneira como os dados de Nota Fiscal Eletrônica ainda são enviados para a Receita Federal.

 
Exemplo de NFe enviada a Receita Federal





Outro maneira de enviar informações entre sistemas é o formato Json, bastante difundido na maioria das linguagens. A plataforma Arduino não poderia ficar de fora e também tem a biblioteca para realizar o envio e recebimento deste tipo de dados.

Dentre todas as bibliotecas que testei essa é a melhor Arduinojson. Abra o gerenciador de bibliotecas da IDE Arduino e faça a instalação da última versão. Neste momento a 6.15.1

Gerenciador de bibliotecas Arduino




terça-feira, 5 de maio de 2020

Python, Pandas e Gráfico


Segue um pequeno código utilizando Python com bibliotecas matplolib e Pandas 1.0.1 (tive problemas usando a versão 1.0.3)

A ideia apenas é carregar  uma matriz de valores(pilotos e qtde de pódios cada um), e assim mostrar um gráfico em barras horizontais. Existe também um filtro para apenas exibir pilotos que possuem pódio maior que zero.










import pandas as pd
import matplotlib.pyplot as plot

data = {
    "Piloto": ['A.Senna', 'Prost', 'Piquet', 'Mansell', 'Boutsen',
        'R.Patrese', 'Berger', 'Aguri Suzuki', 'Éric Bernard', 'Derek Warwick',
        'Modena', 'Nicola Larini', 'Jean Alesi', 'Satoru Nakajima', 'Pierluigi Martini',
        'Andrea de Cesaris', 'Philippe Alliot', 'Nannini', 'Capelli', 'Emanuele Pirro',
        'Michele Alboreto', 'Martin Donnelly', 'Alex Caffi', 'Maurício Gugelmin', 'Olivier Grouillard',
        'Paolo Barilla', 'David Brabham', 'Gregor Foitek', 'Moreno', 'Yannick Dalmas',
        'Jyrki Järvilehto', 'Tarquini', 'Gianni Morbidelli', 'Johnny Herbert', 'Bernd Schneider'
    ],
    "Pódio": [11, 9, 4, 5, 3,
        1, 7, 1, 0, 0,
        0, 0, 2, 0, 0,
        0, 0, 3, 1, 0,
        0, 0, 0, 0, 0,
        0, 0, 0, 1, 0,
        0, 0, 0, 0, 0
    ]
};

dataframe = pd.DataFrame(data = data);
dataframe1 = dataframe[dataframe['Pódio'] > 0]
dataframe1.plot.barh(x = "Piloto", y = "Pódio", rot = 70, title = "Pódios por piloto");
plot.show(block = True);














quinta-feira, 29 de novembro de 2018

Jogo em JavaScript


Jogar em sala de aula ??




Exatamente, jogar em sala de aula pode ser algo que incomoda muitos professores, e acredite, muitos pedagogos dizem que esse é o caminho que pode tornar a aprendizagem mais interessante

Pensando nisso, na disciplina de Conceitos de Programação (os conceitos eles já viram, vamos para a parte violenta) , decidi implantar o desenvolvimento de um jogo em JavaScript. O jogo em si vai ser o mesmo para todos, um objeto pulando ao clique do mouse, parecido com o jogo do Chrome,

Resultado de imagem para dinossauro chrome
 porém, os alunos podem editar o background, mudar a figura dos personagens, adicionar os sons que cada um gosta, entre outras coisas.

Pensando nisso, decidi encontrar algo pronto para não perder. Pesquisando na internet, apostei nas aulas do Youtube, de um rapaz chamado Filipe Alves, ele possui um canal onde você pode acompanhar esse jogo e outros vídeos sobre computação. Os vídeos são muito bem aplicados e prendem a atenção dos alunos,realmente recomendo.

Chega de lenga lenga e vamos aos códigos, abaixo você pode ver a tela inicial do jogo




Pra quem desejar você pode realizar o download dos arquivos de código fonte aqui e sair jogando.



Abraços e até mais

segunda-feira, 9 de outubro de 2017

Painel de Carro e Arduíno


Painel de Carro e Arduíno



Desenvolvimento de painel analisando dados emitidos pelo jogo Live for Speed. O jogo envia dados via pacotes UDP, foi utilizada biblioteca que recebe os dados do game via pacotes UDP. Arduino recebe esses dados, realiza funções ou tratamento e transfere para o painel. 

O painel conta com marcador de combustível, indicador de marchas, ponto de troca de marcha, velocidade, RPM. Foram utilizados leds, servo motores, placa de rede ethernet, bibliotecas de tramamento de dados.

quarta-feira, 31 de maio de 2017

Codificando Batalha Naval em VisualG








Algoritmo "BatalhaNaval"


Var
  MinhaMatriz: Vetor[1..10,1..10] de Caracter
  coluna,linha,navio,boia,lancha,JogadaLinha,JogadaColuna,submarino:inteiro;
  TerminarJogo:Logico;
  
  
procedimento LimparMatriz
inicio
   PARA linha DE 1 ATÉ 10 FAÇA
      PARA coluna DE 1 ATÉ 10 FAÇA
         MinhaMatriz[linha,coluna] := "A"
      FIMPARA
   FIMPARA
fimprocedimento

quinta-feira, 2 de fevereiro de 2017

Codificando 2048 para Android



https://upload.wikimedia.org/wikipedia/commons/6/64/2048_Screenshot.png 

Bom dia pessoal. Lá por volta de 2014 um estudante de computação da Itália (Gabriele Cirulli), desenvolveu este jogo, 2048. O objetivo do jogo é chegar ao valor de 2048 em um desses quadros coloridos.

Este game ficou muito conhecido e jogá-lo é viciante. A codificação do mesmo é simples e você pode obter mais informações do jogo aqui e sobre o autor aqui.

Até aquele momento em 2014, não se tinha um versão para Android, IOS, atualmente existem muitas. Naquela oportunidade desenvolvi quase que por completo a codificação para Android, mas não tive mais tempo de tocar o código fonte adiante.

Irei compartilhar esse fontes aqui e agora para quem quiser. O projeto foi codificado no Eclipse

Link dos fontes aqui

Curta o blog Tixplicando no Facebook clicando aqui


quarta-feira, 5 de outubro de 2016

Automação Residencial



Não caro leitor, por incrível que pareça o título desse post e a imagem acima tem tudo a ver. Você que tem menos que 25 provavelmente não vai lembrar desse desenho animado que retratava uma família futurística cercada de invenções tecnológicas.

Segue um vídeo


É claro que muitas dessas tecnologias poderão nem existir, mas muitas delas podem ser facilmente criadas hoje utilizando programação, placas eletrônicas (Arduíno, Raspberry, Rumba). interfaces, (HTML, Android), componentes eletrônicos e elétricos.

Pois vem vamos lá, irei demonstrar aqui um dos projetos que foi desenvolvido no Mundo Senai Xanxerê, evento este que tem como finalidade demonstrar aos alunos oque se pode fazer com as mais variadas áreas do conhecimento.


A ideia

A ideia era automatizar uma sala de aula, iluminação, ventiladores, cortina, som.

Componentes utilizados

Arduino Mega
Relés

Como controlar a sala
Decidimos montar uma aplicação utilizando HTML, JavaScript e AJAX, dessa maneira se vários celulares ou tablets estivessem conectados, todos iriam receber o estado da iluminação,som (ligado, desligado), cortinas (abertas,fechadas),


A página do usuário 




segunda-feira, 4 de julho de 2016

Ligando motor monofásico com Arduino



Ola pessoal, hoje vamos aprender a ligar um motor monofásico com Arduino.


Cuidado, você está trabalhando com tensões altas, que podem ocasionar danos e choques elétricos


Itens que você vai precisar

1 Arduino - 70 reais
1 Relé 250V 10A - 15 reais
1 Contator - 40 reais
1 Motor monofásico (Utilizei marca Weg) - 600 reais


quinta-feira, 5 de maio de 2016

Como tocar Fear of the Dark em seu Arduíno




Todo mundo gosta de música, Isso é fato, mas algo realmente bom de ouvir  é solo ou riffs, seja a música do tipo que for. Quem "ouve" a música sabe o que estou falando.





Vamos parando de enrolação e vamos logo para a parte da programação de seu Arduíno junto com o buzzer para tocar o solo da música Fear of the Dark da banda Iron Maiden. Ainda tem alguns probleminhas, mas dá para ouvir muito bem.




Faça o download aqui do código fonte

Arquivo principal

#include "pitches.h"
#define NO_SOUND 0

int melodia[] =    {NOTE_D6,NOTE_A5,NOTE_A5,NOTE_D6,NOTE_D6,NOTE_E6,NOTE_E6,NOTE_F6,NOTE_F6,NOTE_E6,NOTE_E6,NOTE_D6,NOTE_D6,NOTE_E6,NOTE_E6,NOTE_C6,NOTE_G5,NOTE_G5,NOTE_C6,NOTE_C6,NOTE_D6,NOTE_D6,NOTE_E6,NOTE_E6,NOTE_D6,NOTE_D6,NOTE_C6,NOTE_C6,NOTE_E6,NOTE_E6,NOTE_C6,NOTE_C6,NOTE_D6,NOTE_A5,NOTE_A5,NOTE_D6,NOTE_D6,NOTE_E6,NOTE_E6,NOTE_F6,NOTE_F6,NOTE_E6,NOTE_E6,NOTE_D6,NOTE_D6,NOTE_E6,NOTE_E6,NOTE_C6,NOTE_G5,NOTE_G5,NOTE_C6,NOTE_C6,NOTE_D6,NOTE_D6,NOTE_E6,NOTE_E6,NOTE_D6,NOTE_D6,NOTE_C6,NOTE_C6,NOTE_E6,NOTE_E6,NOTE_C6,NOTE_C6,NOTE_A5,NOTE_A5,NOTE_E5,NOTE_E5,NOTE_A5,NOTE_A5,NOTE_B5,NOTE_B5,NOTE_C6,NOTE_C6,NOTE_B5,NOTE_B5,NOTE_A5,NOTE_A5,NOTE_B5,NOTE_B5,NOTE_A5,NOTE_A5,NOTE_D5,NOTE_D5,NOTE_G5,NOTE_G5,NOTE_A5,NOTE_A5,NOTE_B5,NOTE_B5,NOTE_A5,NOTE_A5,NOTE_G5,NOTE_G5,NOTE_B5,NOTE_G5,NOTE_A5,NOTE_A5,NOTE_E5,NOTE_E5,NOTE_A5,NOTE_A5,NOTE_B5,NOTE_B5,NOTE_C6,NOTE_C6,NOTE_B5,NOTE_B5,NOTE_A5,NOTE_A5,NOTE_B5,NOTE_B5,NOTE_F5,NOTE_F5,NOTE_D5,NOTE_D5,NOTE_F5,NOTE_F5,NOTE_A5,NOTE_A5,NOTE_G5,NOTE_G5,NOTE_F5,NOTE_F5,NOTE_G5,NOTE_F5}   ;
int tempoNot[] = {   2,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      2,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,   2,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      2,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,   4 ,     4,      4,       4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,      4,     4};// Duração d Not: Colcheia:8; Semínima: 4; Mínima:2; Semibreve:1



const int compso = 550; // Altera o compso da música 

void setup() {
  for (int Nota = 0; Nota < 128; Nota++) {//o número 80 indica quant not tem a nossa matriz.
    int tempo = compso/tempoNot[Nota]; //Tempo = compso dividido pela indicação da matriz tempoNot.
    tone(2, melodia[Nota],tempo); //Toca a nota indicada pela matriz melodia durante o tempo.
    // Para distinguir  not adicionamos um tempo entre elas (tempo da nota + 20%).
    delay(tempo*1.2);
  }
  
  
  
}
void loop(){
  //Não é necessária a repetição pois a mesma será feita pelo botão Reset.
}

Arquivo pitches.h

/*************************************************
 * Public Constants
 *************************************************/
#define NOTE_B0  31
#define NOTE_C1  33
#define NOTE_CS1 35
#define NOTE_D1  37
#define NOTE_DS1 39
#define NOTE_E1  41
#define NOTE_F1  44
#define NOTE_FS1 46
#define NOTE_G1  49
#define NOTE_GS1 52
#define NOTE_A1  55
#define NOTE_AS1 58
#define NOTE_B1  62
#define NOTE_C2  65
#define NOTE_CS2 69
#define NOTE_D2  73
#define NOTE_DS2 78
#define NOTE_E2  82
#define NOTE_F2  87
#define NOTE_FS2 93
#define NOTE_G2  98
#define NOTE_GS2 104
#define NOTE_A2  110
#define NOTE_AS2 117
#define NOTE_B2  123
#define NOTE_C3  131
#define NOTE_CS3 139
#define NOTE_D3  147
#define NOTE_DS3 156
#define NOTE_E3  165
#define NOTE_F3  175
#define NOTE_FS3 185
#define NOTE_G3  196
#define NOTE_GS3 208
#define NOTE_A3  220
#define NOTE_AS3 233
#define NOTE_B3  247
#define NOTE_C4  262
#define NOTE_CS4 277
#define NOTE_D4  294
#define NOTE_DS4 311
#define NOTE_E4  330
#define NOTE_F4  349
#define NOTE_FS4 370
#define NOTE_G4  392
#define NOTE_GS4 415
#define NOTE_A4  440
#define NOTE_AS4 466
#define NOTE_B4  494
#define NOTE_C5  523
#define NOTE_CS5 554
#define NOTE_D5  587
#define NOTE_DS5 622
#define NOTE_E5  659
#define NOTE_F5  698
#define NOTE_FS5 740
#define NOTE_G5  784
#define NOTE_GS5 831
#define NOTE_A5  880
#define NOTE_AS5 932
#define NOTE_B5  988
#define NOTE_C6  1047
#define NOTE_CS6 1109
#define NOTE_D6  1175
#define NOTE_DS6 1245
#define NOTE_E6  1319
#define NOTE_F6  1397
#define NOTE_FS6 1480
#define NOTE_G6  1568
#define NOTE_GS6 1661
#define NOTE_A6  1760
#define NOTE_AS6 1865
#define NOTE_B6  1976
#define NOTE_C7  2093
#define NOTE_CS7 2217
#define NOTE_D7  2349
#define NOTE_DS7 2489
#define NOTE_E7  2637
#define NOTE_F7  2794
#define NOTE_FS7 2960
#define NOTE_G7  3136
#define NOTE_GS7 3322
#define NOTE_A7  3520
#define NOTE_AS7 3729
#define NOTE_B7  3951
#define NOTE_C8  4186
#define NOTE_CS8 4435
#define NOTE_D8  4699
#define NOTE_DS8 4978


sexta-feira, 9 de outubro de 2015

Controlando dois motores com TB6612FNG e Arduino (Ponte H)


Introdução

Todo mês de setembro no Senai é realizado o evento Mundo Senai. A cada versão a comunidade escolar desenvolve projetos vinculados às disciplinas ministradas, esse ano não foi diferente e vários projetos foram criados. Ano passado foi desenvolvido a plataforma Simulate com Raspberry, este ano desenvolvemos outros projetos, mas desta vez com Arduíno.

No início do projeto queríamos criar um robô que segue trilha igual do vídeo abaixo, mas........





mas pensamos, "Cara, robô segue trilha todo mundo já fez, vamos criar algo mais legal hardcore, que ao invés de seguir ou desviar, derrube obstáculos"


Bom, vamos parar de lenga lenga e ir direto ao que interessa.

Oque precisamos 
  1. Arduíno Uno
  2. Driver  TB6612FNG
  3. Sensor de distância
  4. Jumpers
  5. Bateria de 9 volts 

quinta-feira, 16 de julho de 2015

Ligando um motor DC com transistor BC337



Neste tutorial vamos mostrar como controlar um motor DC com Arduino e um transistor  utilizando a saída PWM (Pulse Width Modulation). Para saber mais sobre PWM, clique aqui.
Com dois botões, vamos controlar o motor DC conectado ao transistor e por fim o Arduino.
A ligação feitas está demonstrada abaixo:



 

quarta-feira, 8 de julho de 2015

Testando o seu controle Play Station 2 com Arduíno




Vou começar a descrever aqui pequenos passos para testar seu antigo controle de PlayStation 2 juntamente na placa Arduíno, estes posts estão acontecendo em tempo real, portanto as leis de Murphy podem entrar em ação.

Como não tive muita paciência, acabei estourando o conector que fica na ponta do cabo, este conector vai conectado diretamente ao aparelho PlayStation, tive de fazer a pinagem na protoboard conforme a imagem abaixo.




Primeiro pequeno teste. Testando a pinagem de energia.


Conforme as imagens acima, os fios preto e vermelho são responsáveis por energizar o controle. Portanto ligue o fio preto ao GND na sua placa Arduíno e o fio vermelho em 3.3 V.

Pegue o controle, aperte o botão ANALOG, se ele ligar (UHULLLLLLL), um bom sinal, o aparelho está funcionando.



Bom por hoje é isso,valeu

Fonte : Aqui



segunda-feira, 6 de julho de 2015

Tocando o hino do Grêmio com Arduíno






Seguindo o post do Lab de Garagem decidi montar uma parte do Hino do Grêmio. Pode ser algo, simples, mas entender de música e programação não é para todos.

Fiz um vídeo, mas ficou acabou não upando


Segue os fontes para quem quiser.

 


sexta-feira, 19 de junho de 2015

Criando um pequeno vírus





 
Criar um pequeno vírus é a primeira pergunta que alunos perguntam ao professor na aula de informática. Pois bem hoje irei ensinar aqui como criar algum comando de ser maneira divertida para assustar alguns usuários.



Todos sabemos que no MS-DOS podemos executar vários comandos de auxílio na manutenção de computadores. Um comando que podemos executar é o FOR, o comando FOR realizar a repetição de algum outro comando.

Mão na massa

Vamos para de lenga-lenga e vamos fazer isso funcionar.

  1. Abra o Notepad e cole esse comando  "FOR /l %%i in (1,1,1000) DO mkdir %%i"
  2. Após isso salve o arquivo na área de trabalho com a extensão  gabarito.bat
  3. Vá até a área de trabalho e dê dois cliques no arquivo


O comando FOR vai realizar a criação de 1000 pastas, o nome das pastas será de 1 a 1000.
Para aumentar a quantidade de pastas você pode trocar o número 1000 pela quantidade desejada.


Você pode criar isso na máquina do seu colega e fazer ele ficar apagando pastas pelo resto da vida.

Se você pode criar pastas, você também pode excluir, vamos lá

Edite o arquivo, apague tudo e modifique o comando para "FOR /l %%i in (1,1,1000) DO rd %%i"

Desta maneira você irá apagará todas as pastas criadas

Concluindo

Comandos em MS-DOS são muito úteis para automatizar algumas tarefas, aqui neste site existem vários outros que podem lhe ajudar.

Até a próxima





sexta-feira, 5 de junho de 2015

Como ser um expert em informática ?


OK, eu sei, você está fazendo aquele curso de informática e toda sua família incluindo sua mãe pergunta inúmeras vezes oque você aprende nesse curso. Você responde que aprende coisas do computador, formatar, programar. Logo seu pai diz, "Arruma aquele chuveiro que estragou" WTF.





Como se não bastasse aquele seu amigo menos leigo no assunto pergunta se você tem capacidade ou conhecimento técnico para invadir sites de bancos, lojas, NASA, satélites ou qualquer outra coisa ilegal,  você como sempre responde que não sabe como se faz isso, mas a partir de hoje seus problemas acabaram, ou pelo menos irão te tornar um  pouco mais respeitado. : )

Primeiros passos
  1. Acesse o site http://hackertyper.net/
  2. Aperte F11 
  3. Mantenha foco na digitação enquanto sua família lhe observa.
  4. Não se distraia
  5. Compre uma capa do filme Matrix aqui
  6. Ao final, não fale nada e nem dê explicações para ninguém. Mantenha o suspense



sábado, 30 de maio de 2015

Plataforma Simulate com Raspberry/Python


Todo ano existe no meu trabalho um evento chamado Mundo Senai, neste evento apresentamos ao público em geral diversos projetos relacionados ao que os alunos aprendem durante o ano. Um desses projetos realizados em 2014 foi uma plataforma onde o aluno jogava um jogo de memória




O jogo/brinquedo já existia e era chamado de Simon, o projeto Raspberry desenvolveu um jogo parecido chamado de Simulate, utilizando esses exemplos pensamos em criar algo onde o jogador pudesse jogar, mas com os pés, eliminando a necessidade do teclado e do mouse que eram usados no jogo Simulate.


sexta-feira, 29 de maio de 2015

Robô criado pelo MIT consegue pular obstáculos no meio da corrida



Depois de muito trabalho, pesquisadores do Instituto de Tecnologia de Massachusetts (MIT, na sigla em inglês) conseguiram fazer um robô pular obstáculos enquanto corre. Para mostrar as melhorias, eles publicaram um vídeo no YouTube nesta quinta-feira




O robô aprimorado pelos cientistas é o Cheetah, mesmo modelo trabalhado pela Boston Dynamics, empresa de robótica do Google. Em fevereiro, essa empresa conseguiu fazer a máquina manter o equilíbrio após receber chutes.



Chamado Spot, a máquina pesa 72,5 kg e é movido por uma bateria elétrica. É uma criação da Boston Dynamics, empresa adquirida pelo Google no ano passado. Alguns dos robôs da empresa já são famosos, como o humanoide Atlas, utilizado em competições de robótica pelo mundo, e o veloz Cheetah, que corre a 46,6 km/h.
O Spot parece ser uma versão mais enxuta de outra máquina, o LS3 ou BigDog. Este pesa 109 kg, mas é capaz de carregar 154 kg. O Spot, porém, é mais ágil. Possui dois tipos de velocidade de trote, caminhada e corrida.

Os pesquisadores do MIT já tinham criado meios para o robô pular. Mas ele não era capaz de identificar obstáculos. Por isso, criaram três algoritmos que processam dados recebidos por um sensor a laser para decidir em tempo real se o robô deve saltar.
Ao perceber um objeto à sua frente, o sistema Cheetah aciona as patas dianteiras para que elas impulsionem o corpo. Em seguida, as patas traseiras fornecem um empurrão extra. Nos testes do MIT, o robô conseguiu superar obstáculos de 40 centímetros.

Fonte G1.com

quarta-feira, 27 de maio de 2015

Oque é SQL ?


SQL  (Structured Query Language) é a linguagem padrão universal para manipular bancos de dados relacionais através dos SGBDs. Isso significa que todos os SGBDRs (Sistema de Gerenciamento de Banco de Dados Relacionais) oferecem uma interface para acessar o banco de dados utilizando a linguagem SQL, embora com algumas variações. Logo, saber o que é SQL e como utilizá-la é fundamental para qualquer desenvolvedor de softwares.

A “Linguagem Estruturada de Consultas” (SQL, traduzida para o português) é utilizada para interagir com o SGBD e executar várias tarefas como inserir e alterar registros, criar objetos no banco de dados, gerenciar usuário, consultar informações, controlar transações, etc. Todas as operações realizadas no banco de dados podem ser solicitadas ao SGBD utilizando esta linguagem.


A linguagem SQL é dividida em 4 agrupamentos de acordo com o tipo de operação a ser executada no banco de dados. A saber, DML (Data Manipulation Language, ou Linguagem de Manipulação de Dados e português), DDL (Data Definition Language, ou Linguagem de Definição de Dados em português), DCL (Data Control Language, ou Linguagem de Controle de Dados em português) e DTL (Data Transaction Language, ou Linguagem de Transação de Dados em português). Alguns autores classificam também uma divisão da linguagem para consultas, a DQL (Data Query Language, Linguagem de Consulta de Dados), que tem apenas um comando (SELECT), porém é mais comum encontrar este comando como integrante da DML, juntamente com os comandos INSERT, UPDATE e DELETE. Vejamos os comandos SQL de cada agrupamento.

DML – Data Manipulation Language

DML (Linguagem de Manipulação de Dados) é o subconjunto mais utilizado da linguagem SQL, pois é através da DML que operamos sobre os dados dos bancos de dados com instruções de inserção, atualização, exclusão e consulta de informações. Os comandos SQL desse subconjunto são:
  • INSERT: utilizado para inserir registros (tuplas), em uma tabela.
    • Exemplo: INSERT into CLIENTE(ID, NOME) values(1,’José’);
  • UPDATE: utilizado para alterar valores de uma ou mais linhas (tuplas) de uma tabela.
    • Exemplo: UPDATE CLIENTE set NOME = ‘João’  WHERE ID = 1;
  • DELETE: utilizado para excluir um ou mais registros (tupla) de uma tabela.
    • Exemplo: DELETE FROM CLIENTE WHERE ID = 1;
  • SELECT: O principal comando da SQL, o comando select é utilizado para efetuar consultas no banco de dados.
    • Exemplo: SELECT ID, NOME FROM CLIENTE;
Nota: Registro, Linha e Tupla são palavras sinônimas para referenciar a uma linha da tabela.

DDL – Data Definition Language

DDL (Linguagem de Definição de Dados) é o subconjunto da SQL utilizado para gerenciar a estrutura do banco de dados. Com a DDL podemos criar, alterar e remover objetos (tabelas, visões, funções, etc.) no banco de dados. Os comandos deste subconjunto são:
  • CREATE: utilizado para criar objetos no banco de dados.
    • Exemplo (criar uma tabela): CREATE TABLE CLIENTE ( ID INT PRIMARY KEY, NOME VARCHAR(50));
  • ALTER: utilizado para alterar a estrutura de um objeto.
    • Exemplo (adicionar uma coluna em uma tabela existente): ALTER TABLE CLIENTE ADD SEXO CHAR(1);
  • DROP: utilizado para remover um objeto do banco de dados.
    • Exemplo (remover uma tabela): DROP TABLE CLIENTE;

DCL – Data Control Language

DCL (Linguagem de Controle de Dados) é o subconjunto da SQL utilizado para controlar o acesso aos dados, basicamente com dois comandos que permite ou bloqueia o acesso de usuários a dados. Vejamos estes comandos:
  • GRANT: Autoriza um usuário a executar alguma operação.
    • Exemplo (dar permissão de consulta na tabela cliente para o usuário carlos): GRANT select ON cliente TO carlos;
  • REVOKE: Restringe ou remove a permissão de um usuário executar alguma operação.
    • Exemplo (não permitir que o usuário carlos crie tabelas no banco de dados): REVOKE CREATE TABLE FROM carlos;

DTL – Data Transaction Language

DTL (Linguagem de controle de transações) é o subconjunto da SQL que fornece mecanismos para controlar transações no banco de dados. São 3 comandos: iniciar uma transação (BEGIN TRANSACTION), efetivar as alterações no banco de dados (COMMIT) e cancelar as alterações (ROLLBACK).

Conclusão

Quem quer trabalhar com desenvolvimento de softwares precisa aprender a SQL, pois a maioria dos sistemas de informação interage com banco de dados, e essa é a linguagem universal para fazer qualquer coisa nos bancos de dados relacionais (o tipo de banco de dados mais utilizado na industria). Pode haver pequenas variações na linguagem dependendo do SGBD, mas a sintaxe dos comandos são muito parecidas.
Cada comando citado neste artigo possui uma série de recursos, o comando que tem mais recursos, obviamente, é o comando SELECT. O objetivo deste artigo é apenas apresentar a linguagem SQL e seus comandos, continue ligado aqui no { Dicas de Programação } que vamos ver os detalhes de cada comando desta linguagem.

Fonte : Dicas de programação

segunda-feira, 25 de maio de 2015

Baixe de graça os softwares que a NASA usa para projetar foguetes e drones








Você pode baixar mais de 1.000 programas da NASA, graças à segunda leva do catálogo online de softwares lançado ano passado. O catálogo inclui cada programa que a NASA usa para ser o que é — desde programas de administração e inventário a programas de design de foguetes e espaçonaves.
“São todos programas dos últimos quatro ou cinco anos. Muitos deles são novos”, diz Dan Lockney, executivo do programa de transferência de tecnologia da NASA, ao Gizmodo. “Não são coisas como guia de sistemas do Apollo, que farão você dizer ‘Ah, que legal, olha as coisas que a NASA fez! Quão rudimentar!’. São softwares novos, modernos e usados até hoje”. Inclusive, o catálogo deste ano destaca uma seção com softwares que os engenheiros da NASA atualmente usam para projetar o Space Launch System (SLS), o foguete que um dia lançará a espaçonave Orion em direção a Marte — e você pode baixá-los de graça.
Como? É só visitar o catálogo de softwares da NASA e procurar por nome ou navegar por tipo de aplicação no menu à esquerda. Você pode clicar no link no canto superior direito para baixar o catálogo em PDF, ou, caso você seja das antigas, visite a página 6 para uma lista com os programas mais populares, e a página 8 para o software SLS. Caso encontre algo que te atraia, clique no link “request software” e preencha o formulário.
“Você nos diz quem é você e o que planeja fazer e nos lhe daremos o programa”, diz Lockney. No entanto, para quase 40 programas de código aberto na lista, não é necessário preencher formulário algum, você pode baixá-los diretamente da página.

 Gostou do blog, curta a página no Facebook.


O que são bits e bytes?

Introdução

Se você está tendo seus primeiros contatos com o mundo digital ou se utiliza dispositivos computacionais há algum tempo, mas vez ou outra fica perdido com denominações como megabit e gigabyte, este artigo lhe será útil. Aqui, o InfoWester apresenta uma breve explicação sobre bits, bytes e outros nomes relacionados que lhe ajudará a entender melhor como é feita a medição de volumes de dados nos computadores.