quinta-feira, 18 de julho de 2013

Programação - Java Básico 07 - Mensagens de Entrada e Saída (Interface Gráfica)!

O que nos diferencia é a escolha que fazemos, mesmo quando só há um caminho a seguir!

Até agora em nossas postagens, vimos como capturar entradas do usuário, tratar este valor e exibir saídas, porém tudo em cima da interface modo texto.

Hoje veremos como trabalhar com janelas de Diálogo de entrada e saída que, em JAVA, a classe responsável por isso é a JOptionPane.

A JOptionPane, como muitos elementos da interface gráfica na linguagem, faz parte da biblioteca javax.swing.*, logo precisaremos declarar com o import antes de iniciarmos a classe:

import javax.swing.JOptionPane;

A classe JOptionPane tem dois métodos padrões que realizam as operações de exibição de mensagem (saída) e captura de dados (entrada), que são eles, respectivamente: showMessageDialog(ComponentePai, Mensagem) e showInputDialog(Mensagem);

No primeiro, o ComponentePai nós vamos ignorá-lo por enquanto e colocar o valor nulo (null), e ainda no primeiro, o segundo parâmetro (Mensagem) é onde nós passamos o que será visualizado pelo usuário.

Exemplo:

JOptionPane.showMessageDialog(null, "Olá mundo");



O segundo método (showInputDialog) possui somente um parâmetro (Mensagem), que é idêntico ao de mesmo nome do primeiro método.
A diferença deste é que ele tem como retorno uma String, fazendo com que o programa possa capturar e manipular um valor inserido pelo usuário.

Exemplo:

String nome = JOptionPane.showInputDialog("Qual o seu nome?");

JOptionPane.showMessageDialog(null, "O seu nome é "+nome);

Então o nosso programinha ficaria assim:

import javax.swing.JOptionPane;


public class EntradasGrafica {
    public static void main(String[] args) {
        String nome = JOptionPane.showInputDialog("Qualo seu nome?");
       
        JOptionPane.showMessageDialog(null, "O seu nome é "+nome);
    }

}

Na próxima veremos como converter valores texto para números, daí poderemos capturar entradas do usuário, transformar em numérico e realizar operações matemáticas.

Ass.: David de Almeida Bezerra Júnior

quarta-feira, 17 de julho de 2013

Programação - Java Básico 06 - Capturando entradas do usuário!

A única real constante é a mudança, sendo que um dado ou ação diferente mudaria todo o contexto!

Dando sequência a nossos posts, hoje iremos ver como capturar entradas (valores) digitados pelo usuário no terminal, armazenando-os em variáveis e operando com eles.

Vamos lá!

Scanner

 Sendo uma classe nativa do JAVA, o Scanner nos permite capturar valores do terminal.

Sua sintaxe de criação e inicialização é:

Scanner scanner = new Scanner(System.in);


Para capturarmos valores String, int e double, utilizamos os métodos nextLine(), nextInt(), nextDouble(), respectivamente:

String nome = scanner.nextLine();
int idade = scanner.nextInt();
double altura = scanner.nextDouble();

Então, se quisermos capturar o nome, idade e altura de uma pessoa informada pelo usuário, podemos seguir o seguinte código:

import java.util.Scanner;

public class Entradas {
           public static void main(String[] args){
                      Scanner scanner = new Scanner(System.in);
                    
                      System.out.println("Digite o nome da pessoa:");
                      String nome = scanner.nextLine();

                      System.out.println("Digite a idade da pessoa:");
                      int idade = scanner.nextInt();

                      System.out.println("Digite a altura da pessoa:");
                      double altura = scanner.nextDouble();

                      System.out.println(nome+" tem "+idade+" anos e "+altura+" m de altura!");

                      scanner.close();

           }
}

Se eu colocasse como entradas nome='José', idade=23 e altura=1,75, a minha saída seria: José tem 23 anos e 1.75 m de altura!

Percebam, no código, a primeira linha em vermelho: "import java.util.Scanner;".

As linguagens de programação são apoiadas em bibliotecas, que são pacotes contendo classes ou scripts pré escritos para realizar determinada tarefa. Isso quer dizer que a classe Scanner está no pacote java.util.*, e se não escrevermos esta linha (import java.util.Scanner;) acima da declaração da classe, a IDE irá acusar erro.

Na próxima veremos como trabalhar com mensagens de entrada e saída, desta vez com interface gráfica.

Até a próxima!

sexta-feira, 12 de julho de 2013

Notícia - Microsoft facilitou espionagem dos EUA!

Não se sabe o que o outro pensa, pois se for de confiar confie, mas verifique!

Depois do estouro da notícia de que os Estados Unidos da América estão nos espionando pela Internet, dados recentes acusam a Microsoft de ter auxiliado o governo neste quesito.

A notícia foi tirada de Globo.com:

"
A Microsoft ajudou o governo dos Estados Unidos a interceptar os dados de usuários de seus serviços na internet, segundo informou reportagem publicada nesta quinta-feira (11) pelo jornal britânico “The Guardian”.
O esforço da companhia compreendeu, inclusive, um auxílio para quebrar a criptografia (embaralhamento de código) de seus serviços na internet, de acordo com documentos vazados pelo ex-agente da CIA, Edward Snowden, que trabalha para a Agência de Segurança Naciona (NSA, na sigla em inglês), responsável por programas de espionagem.

Em junho, o "Guardian" e o "The Washington Post" revelaram que a NSA mantém um programa de espionagem on-line chamado Prism, que monitora a troca de dados feitas pelos serviços na web de Apple , AOL, Facebook, Google, Microsoft, Yahoo!, Skype, YouTube e Paltalk.
A ajuda da Microsoft ocorreu porque a Agencia de Segurança Nacional não havia conseguido interceptar os chats na web no novo portal Outlook.com, que substituiu o site Hotmail.
Os e-mails trocados pelos usuários não eram problema, porque a NSA tinha acesso a uma versão deles antes de serem criptografados. As preocupações da agência em conseguir acessar os dados no novo portal começaram ainda quando a Microsoft testava o novo portal, em julho de 2012. O novo portal foi lançado em fevereiro de 2013.
Por conta da dificuldade, a companhia passou a trabalhar com a polícia federal dos EUA (FBI) para quebrar a criptografia dos chats.
A Microsoft afirmou, por meio de comunicado, que “quando atualiza ou melhora seus produtos não se isenta de precisar cumprir com existentes ou futuras demandas legais”.
A companhia alegou que cedeu dados de consumidores “apenas em resposta às demandas governamentais e sempre os cumpriu apenas com ordens ou pedidos sobre contas e identidades específicas”.
A colaboração não se limitou ao Outlook. A Microsoft trabalhou com o FBI também para permitir à NSA acesso facilitado ao seu serviço de armazenamento SkyDrive, que possui 250 milhões de usuários.
Decisões secretas permitiram à NSA coletar dados de internautas sem mandados judiciais individuais, desde que seus alvos não fossem cidadãos norte-americanos e não estivessem dentro do território dos EUA.
No entanto, os documentos revelados pelo "Guardian", mostram que informações captadas pelo Prism eram compartilhados com o FBI e a CIA, serviço secreto dos EUA.
As empresas de tecnologia pressionam o governo dos EUA para que revelem em que nível ocorreram suas colaborações a programas de espionagem. O objetivo é mostrar aos usuários de seus serviços que houve preocupação em cumprir as políticas de privacidade. A Microsoft e outras empresas envolvidas negaram dar acesso aos seus servidores.
Veja a nota da Microsoft na íntegra:
“Nós temos claros princípios que guiam a resposta de toda a companhia em relação às demandas governamentais por informação de consumidores tanto via pedidos judiciais quanto por motivos de segurança nacional.
Primeiro, nós levamos  muito a sério nossos compromissos com nossos clientes e a aderência com a aplicação de leis, por isso cedemos dados de consumidores apenas em resposta a processos legais. Segundo, nosso time examina todas as demandas de perto, e nós as rejeitamos se acreditamos que não sejam válidas. Terceiro, apenas atendemos pedidos sobre contas e identidades específicas, e não responderíamos ao tipo de requisição discutida na imprensa ao longo das últimas semanas. Para ser bem claro, a Microsoft não cede a nenhum governo cobertura ou acesso direto ao SkyDrive, Outlook.com, Skype ou qualquer de nossos produtos.
Finalmente, quando atualizamos ou melhoramos produtos, obrigações legais, em certas circunstancias, requerem que nós mantenhamos a possibilidade de prover informação em resposta a pedidos legais ou mediante requisição em nome da segurança nacional. Existem aspectos nesse debate que gostaríamos de discutir mais abertamente. É por isso que solicitamos transparência adicional que pudesse ajudar todos a entender e debater esse importante assunto."
"

Fonte: Globo.com

Ass.: David de Almeida Bezerra Jr

quinta-feira, 11 de julho de 2013

Programação - Java Básico 05 - Manipulando dados - Parte 2!

Nunca constrói-se algo grande sozinho, pois você precisa pelo menos de um aliado para segurar a escada.

No último post da série(aqui) vimos o que são tipos de dados, como declaramos e iniciamos variáveis, e exibimos o seu conteúdo.

Hoje iremos ver como utilizar estes elementos a nosso favor, realizando operações matemáticas e armazenando os resultados em novas variáveis.

Bem, chega de papo!

Criem um novo projeto no Eclipse e criem a classe ManipulandoVariaveis:

public class ManipulandoVariaveis {
    public static void main(String[] args) {
       
    }
}


Dentro desta classe, crie 6 variáveis do tipo double (num1, num2, resultadoSoma, resultadoSubtracao, resultadoMultiplicacao, resultadoDivisao) e uma do tipo String (mensagem):

public class ManipulandoVariaveis {
    public static void main(String[] args) {
                 double num1;
                 double num2;
                 double resultadoSoma, resultadoSubtracao, resultadoMultiplicacao, resultadoDivisao;

                 String mensagem;
    }
}

Perceba o destaque da linha em azul.

Colocamos todas as variáveis "resultado" em uma linha de código só (uma linha de código só acaba quando há um ";"). É permitido declarar variáveis do mesmo tipo desta forma, com tanto que sejam separadas por vírgula umas das outras.

Agora vamos iniciar as variáveis num1 e num2 com os números 10 e 2, respectivamente:


public class ManipulandoVariaveis {
    public static void main(String[] args) {
                 double num1;
                 double num2;
                 double resultadoSoma, resultadoSubtracao, resultadoMultiplicacao, resultadoDivisao;

                 String mensagem;

                 num1 = 10;
                 num2 = 2;
    }
}

Nesta sequência, vamos agora realizar as quatro operações matemáticas (soma, subtração, multiplicação e divisão) e armazenar em nossas variáveis "resultado".

OBS.: Os símbolos de operação na programação são: Soma -> +; Subtração -> -; Multiplicação -> *; Divisão -> /;


public class ManipulandoVariaveis {
    public static void main(String[] args) {
                 double num1;
                 double num2;
                 double resultadoSoma, resultadoSubtracao, resultadoMultiplicacao, resultadoDivisao;

                 String mensagem;

                 num1 = 10;
                 num2 = 2;

                 resultadoSoma = num1 + num2;
                 resultadoSubtracao = num1 - num2;
                 resultadoMultiplicacao = num1 * num2;
                 resultadoDivisao = num1 / num2;
    }
}

Agora que já temos os valores, precisamos exibi-los e, para isso, iremos concatenar (juntar) os resultados em uma variável texto (a mensagem) e exibir este texto.

public class ManipulandoVariaveis {
    public static void main(String[] args) {
                 double num1;
                 double num2;
                 double resultadoSoma, resultadoSubtracao, resultadoMultiplicacao, resultadoDivisao;

                 String mensagem;

                 num1 = 10;
                 num2 = 2;

                 resultadoSoma = num1 + num2;
                 resultadoSubtracao = num1 - num2;
                 resultadoMultiplicacao = num1 * num2;
                 resultadoDivisao = num1 / num2;

                 mensagem = "Soma: "+resultadoSoma+" - Subtração: " +resultadoSubtracao+" - Multiplicação: "+resultadoMultiplicacao+" - Divisão: "+resultadoDivisao;

                 System.out.println(mensagem);
    }
}

Seguindo o código, o texto impresso no console foi: 
Soma: 12.0 - Subtração: 8.0 - Multiplicação: 20.0 - Divisão: 5.0

Em nossa próxima postagem veremos como capturar um valor digitado pelo usuário e armazená-lo em uma variável.

Ass.: David de Almeida Bezerra Jr

quarta-feira, 10 de julho de 2013

Programação - Jogos em JAVA J2SE!

Um bom jogo é resultado de um bom trabalho e um excelente controle, mas nunca deixe-o tomar controle de sua vida.


Hoje lembrei de um ótimo site para quem quer aprender a desenvolver jogos em JAVA para Desktop (J2SE): o Coke and Code!

Abaixo segue o link para uma gama de tutoriais, ensinando a desenvolver um jogo chamado Space Invaders.

OBS.: Está em inglês, porém quando poder, irei traduzir ou fazer um tutorial aqui no blog.

Tutorial Desenvolvendo Space Invaders:

terça-feira, 9 de julho de 2013

Notícia - Ativista cria lista de serviços para fugir do monitoramento dos EUA




Esta postagem foi originalmente postada no site Globo.com:

"
Um grupo de ativistas criou uma lista de ferramentas alternativas aos de empresas de internet como Facebook e Google, para fugir da espionagem on-line do governo dos Estados Unidos. Neste domingo, reportagem de “O Globo” mostrou que o Brasil está na lista de países monitorados pelos programas da Agência Nacional de Segurança (NSA, na sigla em inglês) (Veja site aqui).


"Eu realmente acredito que o mundo está passando por uma fase de monitoramento. É apenas natural para aqueles que detêm o poder querem tanto informação quanto possível sobre as pessoas que governam. E o atual estado da internet faz com que seja incrivelmente fácil que eles façam isso", disse o ativista Peng Zhong, criador da lista, ao G1. Mas ele não fez tudo sozinho. Veja ao lado algumas opções da lista.

A listagem criada pelos ativistas pela privacidade na internet elencam alternativas aos serviços das companhias envolvidas com o Prism (Apple, Facebook, Google, Microsoft, YouTube, Skype, AOL, Yahoo! e PalTalk), além de outros igualmente caracterizados por terem tecnologia proprietária, ou seja desenvolvida por uma companhia.

Entre as ferramentas estão bate-papos, navegadores, mapas na web, conferências por vídeo e voz, redes sociais e serviços de armazenamento de dados. “Privacidade pessoal é a liberdade conduzir a sua vida sem ser monitorado por uma autoridade central", diz Zhong.

Na lista, há ferramentas com tecnologia proprietária, como o DuckDuckGo ou o Startpage. No entanto, elas permitem navegação anônima.

Algumas dessas ferramentas são amplamente utilizadas não só por coletivos conhecidos como os Anonymous como também por "hackitivistas" (hackers ativistas) de todo o mundo. O navegador TOR, por exemplo, dá acesso à chamada Deep Web.

O GitHub, aliás, plataforma escolhida para abrigar a lista é utilizada para o desenvolvimento de projetos de grupos que querem manter projetos na web a salvo de monitoramento.

“Eu publiquei a versão inicial dessa lista em 10 de junho, com algumas opções aos softwares proprietários. Colaboradores me ajudaram a traduzir o site para várias línguas diferentes e a aumentar a seleção de programas”, explicou. Foi com essa contribuição de brasileiros que a versão em inglês foi vertida para o português.

O criador da listagem adverte, no entanto, que esses programas não deixarão os dados na web totalmente a salvo. "Usar esses programas livres não irá garantir 100% que você esteja completamente além do monitoramento da NSA, mas eles certamente fazem muito, muito mais do que se você não fizesse nada."

Conta para isso, informação contida na reportagem de "O Globo" sobre a existência de outros programas da NSA conseguem capturar dados trafegados fora do alcance dos serviços dessas empresas.

"Para proteger sua informação do governo, você precisa criptografar suas comunicações e parar de usar e-mail e outros serviços na nuvem", sugere Zhong.


"

Fonte: Globo.com

segunda-feira, 8 de julho de 2013

Programação - Java Básico 04 - Manipulando dados - Parte 1!

Não é preciso somente aceitar o que cada elemento é, mas também se aproveitar ao máximo de suas qualidades!


No último post, nós vimos como iniciar um novo projeto, fazendo uma mini aplicação que imprimia na tela "Olá Mundo!" (veja aqui).

Hoje veremos um pouco sobre tipos de dados e como manipulá-los, sendo quem estes elementos são muito importantes para a programação, já que sem eles, não seria possível armazenar e fazer operações com valores.

Tipo de dados

Também chamado de tipo de variável, define o grupo ou conjunto de valores que um elemento pode representar.

Como exemplo, podemos pegar a "idade" do "Senhor Carlos" (finjamos nós). Carlos tem 42 anos de idade, logo nós percebemos que o tipo de dados do elemento idade é número inteiro.

Primitivo e Composto

Um tipo de dados primitivo é um tipo básico, independente de criações externas (sim, você pode criar um novo tipo de dados), e como grandes exemplos deste grupo, temos: caracteres, números inteiros, números reais (com casas decimais) e booleano (pode assumir somente 2 valores, que são: verdadeiro ou falso);

O tipo composto, em JAVA, normalmente é uma classe criada com valores e métodos agregados. Exemplo:


public class Homem {
            private String nome;
            private int idade;
}


Variáveis

São os elementos que recebem a identificação do tipo de dados e armazenam valores para as operações.

Alguns dos tipos de variáveis em JAVA mais comuns são:

String - Texto
int - Número inteiro
double - Número decimal

Existem outros porém, vamos caminhar com calma.

Declarando e Iniciando Variáveis

Declarar uma variável é muito simples, basta escrever o tipo dela e depois o nome, encerrando com ponto e vírgula (;) (todas as linhas em JAVA são encerradas com este símbolo).

Exemplo:

String nome;


Para iniciar esta variável, precisamos inserir um valor nela, e para isso, seguimos o seguinte modelo:

nome = "David";

Novamente, quando terminamos uma linha de programação em JAVA, colocamos o ";".

Vamos criar um pequeno programa, declarando e iniciando algumas variáveis, então abra o Eclipse e crie um novo projeto.

Escreva a classe abaixo:

public class Variaveis {
           public static void main(String[] args){
                      String nome;
                      nome = "Carlos";

                      double altura;
                      altura=1.75;
                  
                      int idade=42;

                      System.out.println("O Senhor "+nome+" tem "+altura+" de altura e "+idade+" anos!");
           }
}


Neste código temos 3 variáveis: nome, do tipo String; altura, do tipo double; idade, do tipo int.

Perceba que tanto é possível declarar e depois iniciar (como feito na variável nome e altura), quanto declarar e iniciar ao mesmo tempo (como na variável idade).

Na linha em vermelho, o conteúdo a ser impresso é: O Senhor Carlos tem 1.75 de altura e 42 anos!

Isso porque, através do operador "+", nós estamos concatenando (juntando) os valores das variáveis para serem impressos.

Na próxima postagem veremos como fazer operações matemáticas e exibir os seus resultados na tela.

Ass.: David de Almeida Bezerra Jr