quarta-feira, 23 de novembro de 2011

Configurando Internet 3G no LG Optimus ME P350


Comprei um LG Optimus ME P350 que vem com a versão Froyo 2.2 (Android) em uma revendedora da Vivo, como o sinal da Vivo é uma tristeza, nem perdi tempo e comecei logo a usar o chip da Tim. Porém, não foi fácil achar uma maneira de configurar o acesso ao 3G que funcionasse. Então, vou deixar aqui a maneira que funcionou para mim. Vamos lá! No menu principal, escolha a opção Configurações, depois procure por Configurações de Redes e por fim, Redes Móveis. Agora basta procurar por Ponto de Acesso, agora vamos criar um Novo APN e configura somente as opções a seguir:

Nome: TIM Connection (Esse nome pode ser o que tu quiseres)
APN: tim.br
Nome do usuário: tim
Senha: tim
MCC: 724
MNC: 03

Uma visão panorâmica desse tutorial seria mais ou menos assim:



  • Configurações
    • Configurações de Rede
      • Redes Móveis
        • Ponto de Acesso
          • Novo APN

Configuração do nono APN:
Nome: TIM Connection
APN: tim.br
Nome do Usuário: tim
Senha: tim
MCC: 724
MNC: 03



OBS: MCC e MNC provavelmente estarão com os valores que coloquei, caso não estejam, edite para os valores informados.

Testei a conexão 3G com o vídeo a seguir:



Abraços

sexta-feira, 4 de novembro de 2011

Alta Mira - Belo Monte

Alguns dias atrás, vi uma equipe do Studio Kobra grafitando essa arte na rua da Consolação. Comentei com meus amigos que esse índio da imagem ao lado, lembrava minha avó (Sacanagem, minha vó é muito mais gata). Então, resolvi postar essa homenagem para a minha vó, saudades da maniçoba dela, e ao mesmo tempo divulgar essa arte/protesto que encontrei na minha vida de mestrando.
Se tu não sabes o problema que a usina de Belo Monte causará para os povos indígenas e a população local. Dê uma "googada", fique por dentro e reflita.








Por hoje é só, pessoal.

sexta-feira, 26 de novembro de 2010

Exemplo de Remote Method Invocation

Exemplo simples de usar RMI em Java para calcular imposto:

Calculadora.java

public interface Calculadora extends java.rmi.Remote { 
    public String imposto(String a, long b)
        throws java.rmi.RemoteException; 
  
}


CalculadoraCliente.java

import java.rmi.RemoteException; 
import java.net.MalformedURLException; 
import java.rmi.NotBoundException; 
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import javax.swing.JFrame;

public class CalculadoraCliente{ 


    public static void main(String[] args) { 
        try { 
            Registry registry =LocateRegistry.getRegistry("localhost", 1500);
            Calculadora c = (Calculadora) registry.lookup("calculando");
            System.out.println( c.imposto("Ana", 1000) );
            System.out.println( c.imposto("Maria", 1500) );
            System.out.println( c.imposto("Braga", 1800) );
             
        } 
        catch (RemoteException re) { 
            System.out.println(); 
            System.out.println("RemoteException"); 
            System.out.println(re); 
        } 
        catch (NotBoundException nbe) { 
            System.out.println(); 
            System.out.println("NotBoundException"); 
            System.out.println(nbe); 
        } 
        catch (
            java.lang.ArithmeticException ae) { 
            System.out.println(); 
            System.out.println("java.lang.ArithmeticException"); 
            System.out.println(ae); 
        } 
    } 



CalculadoraImpl.java

public class CalculadoraImpl extends java.rmi.server.UnicastRemoteObject implements Calculadora { 

    public CalculadoraImpl() throws java.rmi.RemoteException { 
        super(); 
    } 

    public String imposto(String a, long b)
        throws java.rmi.RemoteException { 
        System.out.println ("Calculando imposto");
        String tmp ="";
        if(b<1200){
            tmp = a + " pagará "+ (b-(b*0.05)) +" de imposto";
        }else if(b>=1200 && b<1800){
            tmp = a + " pagará "+ (b-(b*0.10))+" de imposto";
        }else{
            tmp = a + " pagará "+ (b-(b*0.15))+" de imposto";
        }


        return tmp;
    } 

     


CalculadoraServidor.java
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;

public class CalculadoraServidor {

   public CalculadoraServidor() {
     try {
       Calculadora c = new CalculadoraImpl();
       Registry registry =LocateRegistry.createRegistry(1500);
       registry.bind("calculando",c);
     } catch (Exception e) {
       System.out.println("Problema: " + e);
     }
   }

   public static void main(String args[]) {
     new CalculadoraServidor();
   }
}


Copie, melhore e disponibilize.


Até mais!

terça-feira, 23 de novembro de 2010

Leão Azul: um ser mitológico

Reza a lenda que, em tempos idos, por volta de 33 a.C., existiu um Leão que habitava e dominava as savanas da Grécia pré-olímpica. 
Naquela época, nasceram as três irmãs górgonas - Medusa, Esteno e Euríale - que, sendo expulsas de sua terra natal por Atena - deusa grega da sabedoria, do ofício, da inteligência e da guerra justa - foram espalhar o terror e o medo entre a pacata população grega da região de “azulinopoulos”, ao norte da Grécia. 
Sendo informado pos Zeus - o Deus dos Deuses e dos Homens - o Leão se abalou das savanas para o norte do país, para combater e dar fim ao terror implantado pelas irmãs górgonas. Sendo o Rei dos Animais desde sempre, caberia a ele recobrar a ordem e impor novamente a paz e a justiça entre os seres vivos da região na qual reinava.
Contam os pergaminhos que foram várias batalhas sangrentas entre o Leão e as irmãs górgonas - sempre lideradas por Medusa. Numa delas, na última batalha, o LEÃO, em desvantagem e incessantemente hostilizado pelas três malignas irmãs, teve que recuar para se proteger do olhar petrificante de Medusa - a mais letal dentre as górgonas, então acabou se precipitando num gêiser que expelia baforadas de vapor de Gálio (metal azulado). Uma vez envolto na névoa azulada de Gálio, o Leão teve seu corpo recoberto pelo tom azul, tornando-se um Leão Azul. Conseguiu retornar à superfície e, camuflado pelo vapor azul do gêiser, surpreendeu as górgonas. Com duas patadas certeiras, matou Esteno e Euríale. Ao pular sobre Medusa, conseguiu derrubá-la e arrancar seus cabelos-de-serpentes. Sufocando-a com suas patas poderosíssimas, asfixiou-a e decretou o seu desencarne. Mas, num último tufo de ar expelido por seus pulmões em brasa, Medusa conseguiu lançar seu último olhar petrificante para dentro dos globos oculares impávidos do Leão Azul. 
Assim, Medusa morreu, mas acabou por petrificar o Leão Azul para todo o sempre, transformando-o num ícone e num mártir para as gerações gregas vindouras. Tornou-se um Ser Mitológico. Saiu da vida para entrar nos livros de História. Virou lenda e desapareceu, apesar de nunca ter sido esquecido.
Esse Leão Azul petrificado foi descoberto por paleontólogos remistas, em visita à Grécia na 1ª Olimpíada da Era Moderna (1896), e trazido para Belém do Pará, sendo aclamado o MASCOTE DO CLUBE DO REMO em 1905.
Nenhum outro Mascote teria sido tão apropriado a um Clube que, desde então, se consolidou no cenário esportivo a partir de memoráveis triunfos e incontáveis glórias.
Até hoje, ainda segundo a lenda, o Leão Azul petrificado habita o gramado do Baenão - Estádio do CLUBE DO REMO. Ali se encontra - imponente e majestoso - fitando o horizonte, rugindo impavidamente e despejando sobre tão belo tapete a energia vitoriosa acumulada em várias e várias batalhas épicas e sagazes do passado.


Por: Gilberto Silveira (Beto Dickinson)

sábado, 21 de agosto de 2010

OpenCV e PATH

Tô fazendo esse post para lembrar alguns problemas que encontrei durante a instalação do OpenCV 2.1. Instalei mais de uma vez para solucionar e chequei as variáveis de ambiente. Setei o PATH manualmente.
Bom, é isso. Caso esqueça, voltarei aqui!

Atualizando...
Surgiram alguns problemas de compilação, então eu tive que remover e instalar novamente. Dessa vez utilizei a versão 2.0 do OpenCV no Windows 7. Problemas de compilação sumiram e pude desenvolver algumas coisa usando a biblioteca. Por enquanto, é isso.

sexta-feira, 20 de agosto de 2010

Perdi o poster! E agora!?

Fui apresentar um poster do Projeto SHIVA no Computer on The Beach 2010. Embarquei em Belém, fiz uma conexão no Rio de Janeiro e finalmente cheguei em Florianópolis. Cheguei ao hotel e para minha "felicidade" a minha reserva não tava confirmada, ou seja, tinha quarto para uma noite e depois teria que arrumar outro. Não foi difícil, fiz umas ligações e consegui um próximo ao hotel do evento, era um hotel melhor e um pouco mais caro, valeu o dinheiro.
No segundo do evento, já estava no novo hotel, quando lembro do maldito poster do artigo. Lembrei dele, mas não fazia idéia de onde o fujão estava. Procurei no quarto, nas malas, liguei para o taxista e nada... Então, pra que perder mais tempo? Peguei uma lista telefônica e comecei a rezar, como era de se esperar ninguém consegueria imprimir um poster em menos de 3 dias. Que "maravilha"! Como poderia apresentar o artigo sem o poster? Deixei a lista telefônica de lado... não ajudou em nada mesmo. Entrou em ação o Google, algumas pesquisas mais tarde, entrei em contato com um brother que disse que faria para me entregar meio-dia sendo que eu teria que estar com o arquivo lá na plotagem dele antes das 8:00 horas. Acordei 6:00 H, peguei um taxi e cheguei ao tal lugar. Perguntei pelo figura e ele mandou só um recado: "A máquina não tá ligando!". Olha que legal! O cara não veio nem ver o arquivo ou dar uma justificada, dizendo que a isso nunca aconteceu... Apenas mandou o recado.
Comecei a ficar revoltado, mas tinha que imprimir o poster de qualquer maneira. Comecei a andar e perguntar na rua onde poderia imprimir o poster. Até que um camarada que trabalha com fotocópias disse que para ficar pronto até meio-dia só no Beto Plotagem. Como nada é fácil ou divertido quando o tempo está jogando contra... Era distante dali, então peguei o primeiro ônibus desci no terminal e peguei o segundo chegando ao shopping beiramar desço e começo a procurar a plotagem. Finalmente, encontro e consigo tudo em menos de uma hora. Dessa vez fácil e bem rápido. Pego o poster e entrego antes do prazo final. O resto do evento foi tranquilo, apresentei o artigo sem problemas. A seguir a distância do hotel para o local onde imprimi o poster.
Deixo aqui um registro de um muito obrigado o Sr. Beto e sua esposa pelo atendimento de primeira. Poster em Floripa é no Beto Plotagem! =D

sábado, 5 de setembro de 2009

Instalação do Oracle XE no Mandriva One Linux

O presente artigo demonstra como instalar o Banco de Dados Oracle XE em um amibiente Linux, a distribuição escolhida é o Mandriva Linux. Após a instalação do Oracle XE demonstra-se a criação de uma base de dados e são inseridos algumas linhas na mesma. Adota-se o # para representar as ações feitas como super usuário – root e $ para as ações feitas com os outros usuários do sistema operacional. Foram baixados e instalados os seguintes pacotes:


1º libaio1-0.3.107-2mdv2009.1.i586.rpm

2º oracle-xe-univ-10.2.0.1-1.0.i386.rpm

3º oracle-instantclient11.1-basiclite-11.1.0.7.0-1.i386.rpm


O pacote libaio1 é uma dependência para poder instalar corretamente o o pacote oracle-xe, em alguns sistemas operacionais ele já pode estar instalado, verifica-se a existência do mesmo no sistema operacional com o seguinte comando de linha: # rpm -qa | grep libaio. Para instalar os pacotes baixados usa-se o seguinte comando:


# rpm -ivh libaio1-0.3.107-2mdv2009.1.i586.rpm

# rpm -ivh oracle-xe-univ-10.2.0.1-1.0.i386.rpm

# rpm -ivh oracle-instantclient11.1-basiclite-11.1.0.7.0-1.i386.rpm


O pacote oracle-xe-univ é o banco de dados em si, já o pacote oracle-instantclient11 é o cliente (sqlplus – cliente linha de comando) através do qual acessa-se o banco. Durante a instalação do oracle-xe-univ defini-se por padrão porta http como 8080, listener porta como 1521, senha do usuário do banco e autostart ao iniciar o sistema operacional.

Após a instalação dos pacotes definine-se as variáveis de ambiente. Pode-se fazer de duas maneiras, definí-las em memória exportando o seu valor através da linha de comando ou salvar as mesmas linhas no arquivo /home/oracle/.bash_profile. A melhor prática é salvar no .bash_profile do usuário oracle, definido:


# vi /home/oracle/.bash_profile


ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server

export ORACLE_HOME

ORACLE_BASE=/usr/lib/oracle

export ORACLE_BASE

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

export PATH=$ORACLE_HOME/bin:$PATH


Salva e sai.


Deve-se criar os seguintes diretórios para localização de arquivos, com os comandos:

# mkdir admin

# cd admin

# mkdir asdb

# cd asdb

# mkdir adhoc adump bdump cdump flash_recovery_area udump exp pfile

Como resultados tem-se: $ORACLE_BASE/admin//, nome_do_banco = asdb. Também criar diretórios para armazená-los, com os comandos:


# mkdir oracle

# cd oracle

# mkdir oradata

# cd oradata

# mkdir asdb

# cd asdb


Tem-se /usr/lib/oracle/oradata/asdb, onde:


/usr/lib/oracle/oradata/asdb -> Diretório para armazenamento dos arquivos do respectivo banco de dados.

/usr/lib/oracle/oradata -> Diretório para armazenamento de dados, segundo o padrão OFA.

/usr/lib/oracle/ -> Diretório que específica o software.

/usr/lib -> File System com capacidade suficiente para criar o banco de dados.


No diretório /usr/lib/oracle/admin/asdb/pfile um arquivo init.ora, neste caso fica initasdb.ora, com o seguinte conteúdo:


control_files = (/usr/lib/oracle/oradata/asdb/control01.ctl)

db_name = asdb

db_domain = world

log_archive_dest = 'LOCATION=LOCATION=USE_DB_RECOVERY_FILE_DEST'

db_block_size = 2048

pga_aggregate_target = 50M

processes = 300

sessions = 12

open_cursors = 80

undo_management = AUTO

undo_tablespace = UNDOTBS

compatible = 10.1.0.0.0

sga_target = 200M

nls_language = AMERICAN

nls_territory = AMERICA

db_recovery_file_dest = /usr/lib/oracle/admin/asdb/flash_recovery_area

db_recovery_file_dest_size = 1G

background_dump_dest = /usr/lib/oracle/admin/asdb/bdump

core_dump_dest = /usr/lib/oracle/admin/asdb/cdump

user_dump_dest = /usr/lib/oracle/admin/asdb/udump

audit_file_dest = /usr/lib/oracle/admin/asdb/adump


Ressalta-se que estes valores são válidos para o computador no qual o trabalho foi desenvoldido.

Em seguida cria-se o script de inicialização do banco de dados. No diretório /usr/lib/oracle/admin/asdb/adhoc/ cria-se um arquivo.sql, neste caso create_db.sql, com o seguinte conteúdo:


CREATE DATABASE asdb

MAXINSTANCES 1

MAXLOGHISTORY 1

MAXLOGFILES 16

MAXLOGMEMBERS 3

MAXDATAFILES 200

DATAFILE '/usr/lib/oracle/oradata/asdb/system01.dbf' SIZE 50M AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED

EXTENT MANAGEMENT LOCAL

SYSAUX

DATAFILE '/usr/lib/oracle/oradata/asdb/sysaux01.dbf' SIZE 50M AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED

SMALLFILE DEFAULT TEMPORARY TABLESPACE TEMP

TEMPFILE '/usr/lib/oracle/oradata/asdb/temp01.dbf' SIZE 200M AUTOEXTEND OFF

SMALLFILE UNDO TABLESPACE UNDOTBS

DATAFILE '/usr/lib/oracle/oradata/asdb/undotbs01.dbf' SIZE 200M AUTOEXTEND OFF

CHARACTER SET WE8ISO8859P1

NATIONAL CHARACTER SET AL16UTF16

LOGFILE

GROUP 1 ('/usr/lib/oracle/oradata/asdb/redo01a.log', '/usr/lib/oracle/oradata/asdb/redo01b.log') SIZE 50M,

GROUP 2 ('/usr/lib/oracle/oradata/asdb/redo02a.log', '/usr/lib//oracle/oradata/asdb/redo02b.log') SIZE 50M,

GROUP 3 ('/usr/lib/oracle/oradata/asdb/redo03a.log', '/usr/lib/oracle/oradata/asdb/redo03b.log') SIZE 50M

USER SYS IDENTIFIED BY ORACLE

USER SYSTEM IDENTIFIED BY ORACLE;


Após esses procedimentos, deve-se mudar algumas permissões e criar alguns grupos, com os comandos:


# groupadd oinstall, oracle, dba, oper

# usermod -g oinstall -G dba,oper,oracle oracle

# chown -R oracle:oinstall /usr/lib/oracle


Agora loga-se com o usuário oracle: su – oracle e exporta-se a base de dados, com o comando:


ORACLE_SID=asdb;

export ORACLE_SID


Agora basta utilizar a ferramenta cliente SQL*Plus com o usuário ainda oracle, anteriormente criado, para isto basta digitar:


$ sqlplus /nolog


Logando como SYSDBA:


SQL> conn / as sysdba