Fácil! Utilizando as classes URL e HttpURLConnection:
import java.net.*;
import java.io.*;
public class App1 {
public static void main(String args[]) throws Exception {
//Seta a URL
URL url = new URL("http://blogdotakemura.blogspot.com/");
//Abre conexão
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
//Abre o buffer para leitura
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line = "";
//Lê linha a linha da página
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
reader.close();
}
Para quem programa em Android, isso também pode ser feito lá. (as classes URL e HttpURLConnection existem na API) :)
Até mais!
terça-feira, 17 de maio de 2011
Jogos de tabuleiro: Scotland Yard
Alguém já jogou Scotland Yard da Grow?
Eu já e posso dizer que é muito legal! :)
Este jogo de tabuleiro é baseado nas histórias (ou estórias -- que, de acordo com o professor Pasquale, tanto faz...) de Sherlock Holmes onde você encarna o detetive que, através das pistas dadas em determinados locais, deve descobrir quem foi o culpado, onde ocorreu o fato e qual foi a arma usada no crime antes de seus concorrentes.
O legal que os "casos" são baseados em aventuras do personagem de Sir Arthur Conan Doyle.
A coisa triste, é que, quem leus os livros, vai saber alguns dos resultados :P
Até mais!
Eu já e posso dizer que é muito legal! :)
Este jogo de tabuleiro é baseado nas histórias (ou estórias -- que, de acordo com o professor Pasquale, tanto faz...) de Sherlock Holmes onde você encarna o detetive que, através das pistas dadas em determinados locais, deve descobrir quem foi o culpado, onde ocorreu o fato e qual foi a arma usada no crime antes de seus concorrentes.
O legal que os "casos" são baseados em aventuras do personagem de Sir Arthur Conan Doyle.
A coisa triste, é que, quem leus os livros, vai saber alguns dos resultados :P
Até mais!
domingo, 15 de maio de 2011
Alguém se lembra de Chrono Trigger?
Putz, este faz tempo...
Eu nunca tive um Super Nintendo (era um console caro, na época), mas sempre ouvia falar dos jogos deste console: o Street Fighter' II (que eu jogava, em uma época onde as locadoras tinha o que chamavam de "cabine" e a gente pagava por hora...), o Super Mário World e um RPG que foi um dos maiores sucessos da Square na época -- Chrono Trigger.
Foi um dos primeiros grandes sucessos da Square, possuia uma história muito bem elaborada e gráficos belíssimos para o console (os personagens foram desenhados por Akira Toriyama, criador de Dragon Ball).
Esse sucesso foi tanto, que alguns fãs saudosistas tentaram criar uma versão com gráficos poligonais, chamado Chrono Resurrection:
O projeto foi parado... E não há nenhuma previsão de volta...
O site do projeto:
http://www.opcoder.com/projects/chrono/
Até mais!
Eu nunca tive um Super Nintendo (era um console caro, na época), mas sempre ouvia falar dos jogos deste console: o Street Fighter' II (que eu jogava, em uma época onde as locadoras tinha o que chamavam de "cabine" e a gente pagava por hora...), o Super Mário World e um RPG que foi um dos maiores sucessos da Square na época -- Chrono Trigger.
Foi um dos primeiros grandes sucessos da Square, possuia uma história muito bem elaborada e gráficos belíssimos para o console (os personagens foram desenhados por Akira Toriyama, criador de Dragon Ball).
Esse sucesso foi tanto, que alguns fãs saudosistas tentaram criar uma versão com gráficos poligonais, chamado Chrono Resurrection:
O projeto foi parado... E não há nenhuma previsão de volta...
O site do projeto:
http://www.opcoder.com/projects/chrono/
Até mais!
sábado, 14 de maio de 2011
Dicas de Programação: O que é uma Final Class em Java ?
Resposta: Classes que tem o modificador final não podem ser herdadas. Ou seja, não possuem filhos e nem pode possui-los.
Um exemplo de final Class é a classe String:
//Impossivel a herança
public MinhaString extends String {
}
Para criar uma Final Class é simples, basta colocar o modificador na declaração da classe:
public final class ClasseSemHeranca {
...
}
Se quiser, você também pode fazer isso com o método da classe. (assim, ninguém pode reescrever o método):
public class MinhaClasse {
public final void ninguemMeReescreve() {
...
}
}
Por que fazer isso?
Talvez, por orgulho. (não quero que ninguém mexa na minha classe -- gentalha, gentalha, gentalha! :P)
Brincadeira! :)
Até mais!
Um exemplo de final Class é a classe String:
//Impossivel a herança
public MinhaString extends String {
}
Para criar uma Final Class é simples, basta colocar o modificador na declaração da classe:
public final class ClasseSemHeranca {
...
}
Se quiser, você também pode fazer isso com o método da classe. (assim, ninguém pode reescrever o método):
public class MinhaClasse {
public final void ninguemMeReescreve() {
...
}
}
Por que fazer isso?
Talvez, por orgulho. (não quero que ninguém mexa na minha classe -- gentalha, gentalha, gentalha! :P)
Brincadeira! :)
Até mais!
Alguém se lembra do Virtual Boy?
Apesar da maioria de "meus" leitores terem entre 18 a 40 anos, acho que alguns nem devem ter ouvido falar deste video-game da Nintendo. (acho que nem a Nintendo quer mais ouvir falar dele... :P)
Antes mesmo do Nintendo 3DS, a empresa já pensava em criar um video-game 3D. Tanto que, em 1995, foi lançado no Japão o Virtual Boy.
Era um video-game totalmente diferente do habitual: não precisava ligar na TV para jogar, pois o sistema tinha um formato de óculos onde você colocava a "cara" nele. (no sentido literal da coisa :) )
Evolucionário para a época!
Mas, por que não deu certo?
Sei lá, talvez os jogadores não estava muito afim disso... As más linguas diziam que era desconfortável colocar a cara no aparelho e que ver tudo em vermelho (tons de vermelho era a única cor exibida pelo console...) era muito desanimador.
Só sei que o console foi "um fiasco" e terminou sua produção em 1996.
Talvez seja por isso que a Nintendo não que lançar o novo console (projeto "Café") com tecnologia 3D.
É..., algumas vezes, inovação de"mais" faz mal para a saúde da empresa. :P
Até mais!
Design Patterns: Singleton
Pessoal, desculpe por não postar nada nos últimos dias...
Tive uns problemas de saúde. (nada grave, mas precisava me cuidar...)
Ainda não estou 100%, mas dá para levar. :)
Mas voltando ao assunto do título:
Design Patterns, em computação, é uma receita de bolo de como fazer certas coisas recorrentes que aparecem no código-fonte. Por exemplo: "Como criar uma instância única para todo objeto de uma certa classe?"
Como faço isso? -- você pergunta.
Fácil, utilizando o "design pattern" chamado Singleton!
A "receita de bolo":
public class MinhaClasse {
//Declarando um objeto estático da classe
private static MinhaClasse instancia = null;
//Construtor privado !?! (somente a própria classe consegue instanciar)
private MinhaClasse() {
//Inicializando objeto
}
//Cria uma única instância para o objeto
public static MinhaClasse getInstance() {
if (instancia == null) {
instancia = new MinhaClasse();
}
return instancia;
}
}
Para todo objeto que precisar de uma instância (no caso, a mesma instância), é só usar o método getInstance:
...
MinhaClasse obj1 = MinhaClasse.getInstance();
...
MinhaClasse obj2 = MinhaClasse.getInstance();
...
Qual é a vantagem de se utilizar este "design pattern"? -- pergunta você, de novo. :P
Talvez, por economia de memória (já que existe somente uma instância) e o sistema "guarda" o último estado da instância (este último, talvez não seja uma vantagem...).
Quando eu devo usar? -- pergunta você, outra vez. :P
Geralmente em classes úteis, do tipo que não precise guardar valores (funções matemáticas, de formatação, de ordenação e outras mais).
Hum... Espero que eu não tenha complicado e sim, explicado. :P
Tive uns problemas de saúde. (nada grave, mas precisava me cuidar...)
Ainda não estou 100%, mas dá para levar. :)
Mas voltando ao assunto do título:
Design Patterns, em computação, é uma receita de bolo de como fazer certas coisas recorrentes que aparecem no código-fonte. Por exemplo: "Como criar uma instância única para todo objeto de uma certa classe?"
Como faço isso? -- você pergunta.
Fácil, utilizando o "design pattern" chamado Singleton!
A "receita de bolo":
public class MinhaClasse {
//Declarando um objeto estático da classe
private static MinhaClasse instancia = null;
//Construtor privado !?! (somente a própria classe consegue instanciar)
private MinhaClasse() {
//Inicializando objeto
}
//Cria uma única instância para o objeto
public static MinhaClasse getInstance() {
if (instancia == null) {
instancia = new MinhaClasse();
}
return instancia;
}
}
Para todo objeto que precisar de uma instância (no caso, a mesma instância), é só usar o método getInstance:
...
MinhaClasse obj1 = MinhaClasse.getInstance();
...
MinhaClasse obj2 = MinhaClasse.getInstance();
...
Qual é a vantagem de se utilizar este "design pattern"? -- pergunta você, de novo. :P
Talvez, por economia de memória (já que existe somente uma instância) e o sistema "guarda" o último estado da instância (este último, talvez não seja uma vantagem...).
Quando eu devo usar? -- pergunta você, outra vez. :P
Geralmente em classes úteis, do tipo que não precise guardar valores (funções matemáticas, de formatação, de ordenação e outras mais).
Hum... Espero que eu não tenha complicado e sim, explicado. :P
quarta-feira, 11 de maio de 2011
Dicas de Programação: Como verificar se um valor é infinito ou NaN em C?
Então, como eu posso verificar se um float possui um valor válido (sem ele ser infinito ou NaN)?
Simples, usando as funções isnan e isinf da biblioteca math:
#include <math.h>
#include <stdio.h>
int main(int num_args, char* args[])
{
float a = 0.0/0.0;
if (isnan(a))
{
printf("a=NaN\n");
}
a = 1.0/0.0;
if (isinf(a))
{
printf("a=Infinite\n");
}
a = 3.0/1.0;
printf("a=%f\n",a);
return 0;
}
Vi que alguém procurou isso no meu blog, por isso resolvi escrever. :)
Espero que ajude...
Até!
Simples, usando as funções isnan e isinf da biblioteca math:
#include <math.h>
#include <stdio.h>
int main(int num_args, char* args[])
{
float a = 0.0/0.0;
if (isnan(a))
{
printf("a=NaN\n");
}
a = 1.0/0.0;
if (isinf(a))
{
printf("a=Infinite\n");
}
a = 3.0/1.0;
printf("a=%f\n",a);
return 0;
}
Vi que alguém procurou isso no meu blog, por isso resolvi escrever. :)
Espero que ajude...
Até!
Assinar:
Postagens (Atom)
