Pesquisar no Programero

terça-feira, 13 de janeiro de 2009

E o Android chegou nos notebooks

android_notebook Quando fiquei sabendo que o Google iria lançar um SO para dispositivos móveis a primeira coisa que me veio em mente foi um novo SO para desktop, o Android funcionaria como uma “ponte” para algo maior. Depois que a parceria entre Google e HTC deu certo, haja vista o crescimento do faturamento da HTC em 22% em plena época de crise, a possibilidade de uma migração para os desktops era eminente, como de fato ocorreu.
Daniel Hartmann e Matthaus Krzykowski precisaram de quatro horas para compilar o Android e colocá-lo num Asus EEPC e o resultado foi o sistema funcionando com os recursos de vídeo, som e wireless. Acredita-se que no estágio em que o Android se encontra seria possível distribuir versões para netbooks em três meses, e a venda em massa em um ano.
É fácil perceber como isso vai balançar o mercado, todos os EEPCs da vida possuem um hardware mais fraco, o que torna penoso o seu uso com o windows Vista, o Windows 7 ainda vai demorar um pouco para sair do beta e quanto ao linux muitas pessoas ainda torcem o nariz para ele. Apesar do Android não ser nada alem de uma nova distribuição Linux o fato de ser uma iniciativa do Google muda as coisas, ele é visto de uma maneira diferente, o Google inspira confiança e geralmente tudo o que ele toca vira ouro.
android-netbookAsus EEEPC 1000H rodando o Android
Fonte:

sábado, 10 de janeiro de 2009

Manipulando Arquivos no Java

Olá a todos hoje falaremos de manipulação de arquivos, uma situação muito utilizada seja para persistência de dados como arquivos de cofiguração, relatórios simples, armazenamento para transferência de dados ou em até alguns casos pequenas bases de dados (para armazenamento de um grande volume de informações dê preferência aos DBMS, mesmo em dispositivos móveis com as versões compacts).

A classe File

É com ela que iremos trabalhar para manipular arquivos:

File arq = new File(“c:\\programero\\arquivo.txt”);
if (!arq.exists()){
   System.out.println(“Arquivo não existe !”);
}


Na classe File temos os métodos:

getName Retorna o nome do arquivo.
renameTo Renomeia o arquivo.
exists Verifica se o arquivo existe.
canWrite Verifica se é possível escrevet no arquivo.
canRead Verifica se um arquivo pode ser lido.
isFile Verifica se o caminho definido é um arquivo.
lastModified Recupera a data da última alteração do arquivo.
length Tamanho do arquivo.
delete Deleta o arquivo.
getPath Retorna o nome do diretório.
getAbsolutePath Nome completo do diretório.
getParent Retorna os diretórios acima do arquivo.
isDirectory Verifica se o caminho definido é um diretório.
isAbsolute Verifica se o caminho é absoluto.
mkDir Cria um diretório.
list Lista arquivo no diretório.


Para ler e gravar dados nos arquivos utilizamos classes para tratamento de stream:

Classe
Descrição
Reader Streams de entrada de caracteres.
Writer Streams de saída de caracteres.
InputStream Streams de entrada de bytes.
OutputStream Streams de saída de bytes, são manipulados por subclasses.
FileReader Leitura de caracteres de um arquivo.
FileWriter Escrita de caracteres em arquivo.
FileInputStream Serialização de objeto.
FileOutPutStream Deserializar objeto.

Exemplos:


Primeiro:

package programero.blog;

import java.io.*;

public class Arquivos1 {
    /**
     * Exemplo de leitura de arquivos   

     * http://programero.blogspot.com/
     */
    //
    public static void lerArquivo(String arquivo){
        File f = new File(arquivo);
        if (!f.exists()){
            System.out.println("Arquivo " + arquivo + " não existe!");
            return;
        }
        try{
            //
            // is representa um fluxo de entrada a partir  de um arquivo
            InputStream is = new FileInputStream(arquivo);
            //
            //InputStreamReader é uma classe para converter os bytes em char
            InputStreamReader isr = new InputStreamReader(is);
            //
            //BufferedReader é uma classe para armazenar os chars em memoria
            BufferedReader br = new BufferedReader(isr);
            String s = br.readLine(); //primeira linha
            //
            while (s != null){
                System.out.println(s);
                s = br.readLine();
            }
        }catch(Exception x){
            System.out.println(x.getMessage());
        }   
    }
    public static void main(String[] args) {
        lerArquivo("c:\\programero\\ler.txt");
    }
}

Segundo:

package programero.blog;

import java.io.*;

public class Arquivos2 {
    /**
     * Exemplo de escrita de arquivos    

     * http://programero.blogspot.com/
     */
    //
    public static void copiarArquivo(){
        //
        //lendo linhas
        try{
            FileReader     i  = new FileReader("c:\\programero\\ler.txt");
            FileWriter     o  = new FileWriter("c:\\programero\\Gravar.txt");
            BufferedReader in = new BufferedReader(i);
            PrintWriter    out= new PrintWriter(o);
            String Linha;
            //
            while ((Linha = in.readLine()) != null){
                System.out.println(Linha);
                out.println(Linha);
            }
            //
            out.flush();
            i.close();
            o.close();
        }catch (Exception x){
            System.out.println(x.getMessage());
        }
    }
    public static void main(String[] args) {
        copiarArquivo();
    }
}

Bom por enquanto é só, qualquer dúvida é postar um comentário que tentamos ajudar, nós próximos posts colocaremos alguns exemplos de interação com banco de dados.

segunda-feira, 5 de janeiro de 2009

O Google me achou, coincidências à parte…

Finalmente a tão esperada carta com o famoso código PIN chegou, e diga-se de passagem foi uma puta coincidência, se eu soubesse que um post satirizando a demora me ajudaria (nem que fosse só para dar sorte) eu o teria feito antes.
carteiro_do_google(rapazinho do Google entregando a carta  [com a ajuda de meu mapa é claro] )
Agora nada disso importa mais, estou feliz com o ocorrido e espero não ter mais problemas no decorrer do processo.

sexta-feira, 2 de janeiro de 2009

Cursos de Graduação Gratuitos

Olá a todos, gostaria de primeiramente agradecer a todas as visitas que nos ajudaram a alcançar alguns números bem significativos, e também desejar um ótimo ano novo a todos. O título do nosso primeiro post é bem atrativo, ainda mais se mencionarmos quais são as instituições que estão disponibilizando esses cursos, elas são nada mais nada menos que as renomadas MIT (Massachusetts Institute of Technology), STANFORD (Stanford University) e BERKELEY (University of California), podem ser encontrados videos na integra da aulas, resumo dos professores, bibliografia completa, exercicios e provas.
Infelizmente não há como receber um certificado comprovando o tempo dedicado ao curso porém é uma grande chance de aprender novas áreas ou solidificar conhecimentos já adquiridos. Outro ponto a ser mencionado é o fato de não haver interação com outros alunos ou mesmo professores, o que torna mais puxado os cursos, restando a você a tarefa de buscar respostas para as possíveis perguntas e dificuldades do percurso.
Uma pequena parte desse material (MIT) já foi traduzida para o português e pode ser encontrada no Universia clicando aqui.
Bom para aqueles que se interessaram e desejam se aventurar segue os links onde podem ser vistos os cursos disponíveis:
MITOPENCOURSEWARE – LINK
Stanford Engineering Everywhere – LINK
Webcast.berkeley - LINK