sexta-feira, dezembro 14, 2007

Primeira Camera Digital sem Bateria


Os japoneses inventaram uma máquina fotográfica que não precisa de bateria: basta rolar um dínamo que você terá ela funcionando por 40 segundos!

Boa!

Fonte: G1

quarta-feira, dezembro 05, 2007

mysql no slackware

Para quem ainda gosta de sofrer no slackware, dica pra instalar o mysql:

No Slackware 10.0 o MySQL já vem não funcionando de fábrica, para arrumá-lo, siga os seguintes passos num xterm, rxvt, konsole ou algo parecido:


bash: su
bash:
bash: su mysql
bash: mysql_install_db
bash: exit
bash*: mysqladmin password -u root
*opcional!!
bash: /etc/rc.d/rc.mysqld restart


[extraído do meu site]

Editor HTML para linux


Suponha que você quer fazer um formulário web rapidamente, mas agora não tem mais o FrontPage nem o Dreamweaver pra te ajudar. O que fazer?

Instale o Kompozer! (versão do NVU)
$ sudo apt-get install kompozer
$ kompozer
Fácil né?

obs: testado no Ubuntu Feisty

segunda-feira, dezembro 03, 2007

Converter todas imagens X em Y de um diretório

Intale o imagemagick:
apt-get install imagemagick

Crie o script megaultra-conversor.sh:
pico megaultra-conversor.sh

digite no arquivo, isso:
for arq in *.$1; do convert $arq $(echo $(echo $arq | cut -d. -f1).$2); done;

ou, se quiser converter sempre para RGB, como p. ex. de bmp8bits para bmp24bits:
for arq in *.$1; do convert $arq -depth 8 -type TrueColor $(echo $(echo $arq | cut -d. -f1).$2); done;


Grave, saia e transforme ele em executável:
chmod a+x megaultra-conversor.sh

pronto. basta entrar num diretrório chei de imagens bmp, copiar o script pra lá e mandar ver:
./megaultra-conversor.sh bmp jpg


vai converter todos os .bmp do diretorio em .jpg.

terça-feira, novembro 27, 2007

Logar no modo gráfico remotamente (xdmcp)

Na máquina servidora (vulgo remota):

1. Edite o arquivo kdmrc (dica: use locate kdmrc):
[Xdmcp] Enable=false

Basta alterá-la para:
[Xdmcp]
Enable=true
2. Dentro do arquivo "Xaccess", descomente a linha:
# * #any host can get a login window


Na máquina cliente (vulgo local):

1. Digitar no konsole:
X :2 -query ip.do.servidor
2. Ou, para abrir já no boot, edite o arquivo "/etc/rc.d/rc.4 ou 5", pondo a linha no final e boa sorte:
/usr/X11/bin/X -query ip.do.servidor

Fonte: Guia do Hardware

Brincando com o XO


Estes são os meus primeiros dias brincando com o XO, famoso laptop de 100 dólares, que tem fins educativos. A primeira impressão é muito boa: apesar de lento, vem com um Linux prontinho pra usar (Fedora). E é bem leve e bonitinho.... :)

Para os computeiros de plantão, seguem algumas coisas legais pra fazer com os "brinquedinhos"...



HABILITAR TERMINAL
Como em qualquer distribuição Linux, dê Ctrl+Alt+F1 para abrir um terminal. Ah, o F1 não existe né? Bom, o F1 virou o indicador de vizinhança (muitas bolinhas formando um círculo), próximo ao "ESC" (que virou um "X").
Usuário: root
Senha: apenas de enter
CONVERSAR 2 XOs POR SSH
Sim! Misteriosamente eles vêm com um servidor e um cliente de ssh. Até imagino a professora dizendo: "Joãozinho! Já falei mil vezes que não é pra hackear o laptop do amiguinho...".

UPDATE: os passos abaixo não precisam ser feitos se a rede mesh (automática) já funcionar. Aí, vc apenas digita ifconfig para saber qual seu IP (inet addr do msh0), põe senha no root e faz o ssh.

Para habilitar a comunicação wireless entre duas máquinas, digite em ambas:
# iwconfig eth0 essid teste channel 7 mode ad-hoc

# ifconfig eth0 10.0.0.1 netmask 255.255.255.0 up
(ok, varie o IP para cada máquina...10.0.0.2, 10.0.0.3, etc)

#iwlist scanning
(apenas para acompanhar se as redes estão sendo criadas)

# passwd
(o root vem sem senha, coloque alguma para poder fazer o ssh)

# ssh 10.0.0.1

Obs: as vezes nao deu certo

ATUALIZAR FIRMWARE E BUILD
Vá na wiki do projeto OLPC e baixe os releases mais recentes, compatíveis com seu hardware.

No meu caso, utilizo um B2, então irei colocar o firmware Q2D03. Ah, estas atualizações irão apagar tudo o que estiver gravado no laptop. Então tenha cuidado...
$ wget http://dev.laptop.org/pub/firmware/q2d03/q2d03.rom
(baixando a ROM, para atualizar o firmware posteriormente...copie para o pendrive)
Agora vamos copiar o build. Iremos escolher a versão devel, por ser a mais atual (e deve ser jffs2, pois estamos instalando num XO e não num emulador)

Bom, decidi baixar o build 625 (jffs2), que não é estável, mas é o mais recente...

$ wget http://..../olpc-redhat-stream-development-devel_jffs2.img
(renomeie para qualquercoisa.img e copie para /boot, no pendrive)

$ wget http://..../olpc-redhat-stream-development-devel_jffs2.img.crc
(renomeie para qualquercoisa.crc e copie para /boot, no pendrive)
Pronto! Ao listar os arquivos do pendrive, você deverá ter algo como:
/q2d03.rom
/boot/imagem.img
/boot/imagem.crc
Ok, remova o pendrive do seu computador e vamos colocá-lo no XO.

Siga os passos:

a) Com o XO desligado, plugue o pendrive.

b) Segurando o "X" (p/ baixo, no teclado de jogos), ligue o XO. Ou apenas tecle "esc" durante a inicialização, caso seu firmware seja mais recente. Após aparecer a mensagem "Release", solte o X. Digite 'help', ele é auto-explicativo.

ok flash u:/q2d03.rom
(para sobregravar a nova firmware)

ok copy-nand u:/boot/imagem.img

(para sobregravar o sistema operacional)
Pronto! É só rebootar!

LINKS RELEVANTES
- Wiki da OLPC

quarta-feira, novembro 21, 2007

Agite antes de autenticar


Olha só que jeito prático e seguro de autenticar a comunicação entre dois celulares: basta chacoalhar os dois ao mesmo tempo! O acelerômetro contido nos aparelhos detecta como são balançados. Para fraudar o sistema é preciso imitar como o outro celular está sendo movimentado, o que é beeeeem difícil.

:)

Vídeo no YouTube
Fonte: G1

segunda-feira, novembro 12, 2007

Teclados numéricos

Ao folhear o livro de HCI do Dix li que existem dois tipos de teclados numéricos: os que tem o "1,2,3" na parte de cima, e os que tem o "1,2,3" na parte de baixo.

O mais incrível é que nunca tinha percebido isso....nosso cérebro automaticamente se ajusta aos dois layouts sem que precisemos pensar nesses detalhes...

Vc duvida? Pegue o seu celular e dá uma olhada nele....hahã! Temos o 1,2,3 na parte de cima! Agora pegue sua calculadora ou olhe para o teclado do computador...ocorre o inverso!

obs: se alguém souber o motivo me avisa.

Microsoft compra Facebook

Notícia rápida: a Google e a Microsoft estavam na briga para comprar o Facebook. A Microsoft venceu e comprou o site de relacionamentos pessoais por US$ 240 milhões.

Essa briga vai longe: Facebook x Orkut x MySpace x ...

Update: outra fonte informa que compraram apenas parte do Facebook (1,6%).

Fontes: ITWeb e IDGNow

quinta-feira, novembro 08, 2007

Morte da tendinite = Workrave

Não, não vamos trabalhar na rave e nem chupar uma bala no escritório ouvindo psytrance.
"apt-get install workrave" e seja feliz. Tendinite nunca mais.
Os perdedores (quem usa windows) tb podem fazer uso da ovelhinha, perguntem pro google.

quarta-feira, novembro 07, 2007

Novos colaboradores

É isso aí!
Temos dois novos colunistas neste amado blog.

Aliás acabou de mudar de nome: mudou de Blog do Topera
para GiroLê - "O melhor giro da Internet!"

Sejam bem-vindos Gustavo, o Bozo e Davi, O Mestre!

terça-feira, novembro 06, 2007

Novo recurso no Gmail: Mute



O Gmail está com novos recursos, que aos poucos estão sendo liberados para os usuários. Um interessante é o mute (interromper), que permite arquivar automaticamente todas as mensagens de determinado assunto.

Assim, vc pode continuar fazendo parte de uma lista de discussão, ignorando apenas as informações daquela discussão interminável sobre o amigo-secreto que vc não quer participar.

:)

Update: Nossa! Parece que isso existe desde 2006! Mas ainda não apareceu no meu gmail!!! Ahhh!

Update2: ok, o recurso mute acabou de chegar no meu gmail (1 dia depois)

Fonte: help do gmail
Relacionados: gmail blog

segunda-feira, novembro 05, 2007

Em breve: acesse o Gtalk pelo Windows Live Messenger


Finalmente uma boa notícia!


O blog Undergoogle reportou que a próxima versão do MSN conseguirá se comunicar com usuários do AIM, ICQ e GoogleTalk!

Já parou pra pensar que quem tem email, não importa de que empresa seja, consegue mandar email para todo mundo? E que o mesmo ainda não ocorre com os mensageiros instantâneos? É aquela droga....sempre tem um primo perguntando pq vc não usa MSN...

Bem, a boa notícia é que em breve isso pode vir a acontecer... principalmente se os desenvolvedores utilizarem o mesmo padrão, tipo o JABBER/XMPP.

É isso. Aguardamos a integração ansiosamente!

Fonte original: LiveSide

quinta-feira, novembro 01, 2007

Fim do cartão de crédito?

Já está sendo testado o pagamento utilizando impressões digitais, em postos de gasolina e lojas de conveniência em Chicago.



Fonte: G1

segunda-feira, outubro 29, 2007

Próxima Geração de Interfaces?

Observe bem a foto abaixo:


Esse é um protótipo que encontrei ao ler esse artigo. Com este teclado, vc pode dar "tapinhas" nos apoiadores de mão, que estes são "sentidos" e enviados para a pessoa que estiver conversando com vc pelo mensageiro instantâneo!

Do outro lado, as mãozinhas irão vibrar (como um controle de Playstation). Assim, fica fácil falar se vc está bravo com a pessoa (um tapão), sorridente (varias batidinhas), etc.

Ah, as mãozinhas podem variar a temperatura tbm!

Parabéns ao pesquisador coreano Heesook Shin e sua equipe!

quinta-feira, outubro 25, 2007

Novo recurso no Google Maps


Dá uma olhada nesse link.

Vc simplesmente "anda" em 3D pela cidade de NY.

Demais!

quarta-feira, outubro 24, 2007

quinta-feira, outubro 11, 2007

Lista de Bots de MSN

Demorou mas achei!

No link abaixo há uma lista com os bots vencedores de uma competição de bots realizada pela Microsoft em 2006. Pena que só funcionam no MSN e que muitos pararam de funcionar...



Ver a lista de bots vencedores.

obs1: recomendo o World of Alice (alice@worldofalice.com).

obs2: bot é um cara do seu MSN, Gtalk, sei lá, que não é uma pessoa, mas um programa de computador que faz alguma coisa, normalmente útil.

quarta-feira, outubro 10, 2007

A História dos Bots

Ok, estou postando aqui todas as informações que tenho encontrado sobre a história dos IM bots. (não, não sou desocupado: isso faz parte da minha pesquisa)

IM Bots: qualquer programa que é acessado por um mensageiro instantâneo.

1996 (nov) - Lançado o ICQ: o primeiro mensageiro instantâneo
Para falar de bots para mensageiros instantâneos, é relevante citar quando o primeiro MI foi lançado.
1999 (___) - Ecration é fundada

2000 (___) - Akonix é fundada

2001 (out) - Microsoft anuncia o .NET Alerts

2001 (out) - Lançado o BloggerBot
Bot para publicação em blogs
2002 (___) - MessageCast é fundada

2003 (___) - Microsoft firma parceria com MessageCast

2005 (mai) - Microsoft compra MessageCast

2005 (dez) - Indeed lança bot (para procura de empregos)

2006 (fev) - Jaiku é fundada
O Jaiku é um dos principais representantes do microblogging, low-effort mini-blog ou tumblelog. Nada mais é do que publicar em uma página web utilizando algum método ágil, por exemplo, mensageiros instantâneos ou SMS.
2006 (mar) - Twitter é fundada
O Twitter é o maior concorrente do Jaiku.
2006 (mai) - Microsoft lança campeonato para avaliar melhores bots

2006 (jun) - JD Biblebot é lançado

2006 (jun) - Microsoft lança o Windows Live Alerts (antigo .NET Alerts)

2006 (jul) - Bot Dado Spitze é lançado, pela Bavária
Bavária contratou a empresa Euro RSCG 4D, que realizou parceria entre Akonix e IM Interactive Corp para a criação do bot.
2006 (jul) - Conversagent muda de nome para Colloquis
A empresa Colloquis desenvolve bots que podem ser acessados por MSN. Utilizam técnicas de processamento de linguagem natural. Eles criaram o BuddyScript, linguagem de programação para bots.
2006 (set) - Ecration fica em terceiro lugar na competição de bots
O bot desenvolvido chama-se alice@worldofalice.com (MSN), é um dos mais completos que já vi. Ele dá o significado de palavras, faz contas, dá a temperatura, envia emails, conta piadas, informa sobre filmes, mostra vídeos do youtube, tem rádio, traduz palavras e tem joguinhos....ufa!
2006 (out) - Microsoft compra a empresa Colloquis.
"Microsoft plans to take advantage of Colloquis Internet bot technology in an application called Windows Live Agents, a conversational application that users can interact with via Windows Live Messenger."
2006 (___) - Anothr é fundada

2006 (out) - Feed Crier é fundada

2007 (___) - Lançado o bot Spleak
Bot em que os usuários cadastram fofocas sobre celebridades e estas são retransmitidas.
2007 (___) - Gozub é lançado
Versão brasileira do Twitter/Jaiku
2007 (fev) - IMified é fundada

2007 (mai) - IMified compra a Feed Cried


SITES RELACIONADOS:
  1. Site da Colloquis
  2. Site oficial do Windows Live Agents
  3. Fórum do BuddyScript MSDN
  4. Site do Windows Live Alerts
  5. Blog do Windows Live Alerts
  6. Site da Akonix
  7. Site da IM Interactive Corp.
  8. Site da Ecration
  9. Site do Twitter (microblog)
  10. Site do Jaiku (microblog)
  11. Site do Pownce (microblog)
  12. Site do Gozub (microblog brasileiro)
  13. Site do Yappd (microblog)
  14. Site do MeeMi (microblog italiano)
  15. Site do BeeMood (microblog)
  16. Site do Tumblr (microblog)
  17. Site do HelloTXT (publica em 6 microblogs diferentes)

terça-feira, outubro 09, 2007

ASUS lança placa-mãe com linux embutido

Que tal ligar o PC e esperar apenas 5 segundos para ter o Firefox e Skype funcionando, prontinhos para vc usar na internet? Bom, compre a placa-mãe abaixo e isso será possível! (ela já vem com uma distribuição Linux embutida)


Fonte: Engadget.

Unicamp criou um cluster de PlayStation 3

Olha só que bonito...pesquisadores da Unicamp criaram um cluster usando PS3. Detalhe: alegaram que tem melhor relação custo benefício do que as outras opções de compra....ah, rodam linux, claro... :)
















Fonte: G1

sexta-feira, outubro 05, 2007

Audacity: seletor de entrada sumiu!

Após revirar o Audacity e não encontrar o seletor de entrada
(aquele combobox aonde vc pode escolher se quer gravar o que
vem do CD, Line In, Mic, etc) descobri que ele simplesmente não
existe nessa versão devido a um misterioso bug...sumiu!

Mas não ocorre em todos os SOs, já que o pessoal que usa Mepis
relatou que o pacote dessa versão já foi corrigido...

Bom, chega de enrolação. Para resolver, volte da versão 1.2.6 para a 1.2.4b...

1. Remova o audacity atual
$ sudo apt-get remove audacity

2. Faça download do pacote antigo em http://packages.ubuntu.com/dapper/allpackages
$ wget http://mirrors.kernel.org/ubuntu/pool/universe/a/audacity/audacity_1.2.4b-2ubuntu2_i386.deb

3. Pronto, agora é só instalar a versão antiga
$ sudo dpkg -i audacity_1.2.4b-2ubuntu2_i386.deb

obs: testado no kubuntu 7.04


[se lhe foi útil, deixe um comentário... :)]

segunda-feira, setembro 24, 2007

Gtalk: dicas de formatação

Dicas de formatação no Gtalk (Google Talk)

Para deixar negrito: *texto negrito*
Para deixar itálico: _texto itálico_
Para pular uma linha: shift+enter

É interessante que podemos "simular" uma conversa...suponha que seu amigo chame João. Envie a seguinte mensagem para ele (de uma vez só):
oi jao!
*João:* td bom?
*me:* td!
*João:* tenho q ir...
*me:* até...
Ficará assim:

me: oi jao!
João: td bom?
me: td!
João: tenho q ir...
me: até...

UPDATE (28/01/08): a formatação também funciona nos status do user.

Fotos nos servidores do Google

Hoje queria relaxar na hora do almoço e decidi fuçar no sistema de fotos do Orkut e Gtalk, e por enquanto descobri o seguinte:

ORKUT

A foto da pessoa é acessada por URLs como a seguinte:
http://img2.orkut.com/images/medium/0/85500000.jpg
Que tem a estrutura:
http://imgSERVIDOR.orkut.com/images/TAMANHO/BLA/ID.jpg
Onde:
  • SERVIDOR: número que varia de 1 a 4. Os pings mostram que realmente possuem IPs diferentes, exceto pelo 1 e 4, que são idênticos.
  • TAMANHO: informa qual o tamanho da foto. Pode ser small ou medium (se vc descobrir outro me fala!).
  • BLA: não sei pra que serve...ponha qualquer número.
  • ID: o id da foto, isto é, seu número identificador. O número 1 é a foto do próprio criador do orkut. Pq será? :P .....e no momento, o maior número que funciona, está próximo de 105 milhões! (104.900.000)

GTALK

A foto do usuário é acessada em URLs como a seguinte:
http://mail.google.com/mail/photos/email@gmail.com
Vale notar que é preciso estar logado para receber a foto. Além disso,
a pessoa deve ser estar cadastrada como amiga no seu Gtalk.

quarta-feira, setembro 19, 2007

LaTeX: adicionando pacotes

Estava tentando usar um modelinho da ACM para gerar um artigo no Kile e deu o seguinte erro:
../modelo/acm_proc_article-sp.cls:35:File `amssymb.sty' not found. \usepackage
Eu instalei o pacote "texlive" e tudo foi resolvido
$ sudo apt-get install texlive
obs1: ah, se mesmo assim algum pacote faltar, vá no site da CTAN e baixe manualmente. Basta deszipar o pacote, dar make e mover o arquivo .sty gerado para o diretório do .tex.

obs2: alguns pacotes não tem makefile, então vc precisará criar o .sty no braço. Para isso, baixe o .dtx e o .ins. Para criar o .sty, faça:
$ tex pacote.ins
obs3: se vc se irritar e cansar de ficar criando um por um, vc pode instalar o pacote texlive-full, que irá instalar MUITA coisa! São 326 MB de download, mas provavelmente irá parar de dar pau :
$ sudo apt-get install texlive-full

obs4: se der pacote não encontrado, coloque os repositórios que estão aqui.

É isso.

terça-feira, setembro 11, 2007

Snippet em Java: urlencode

import java.net.URL;
import java.net.URLEncoder;

/*
* codifica valores para serem passados pela url
*/
public static String _urlEncode(String valor) {

String retorno = "";

try {

retorno = URLEncoder.encode(valor, "UTF-8");

} catch (Exception e){}

return retorno;

}


Se foi útil, deixe um comentário vai!
(não precisa autenticar)

segunda-feira, setembro 10, 2007

Snippet em Java: lendo uma página web e colocando numa string

(obs: selecione o texto e dê copiar e colar, caso queira ler a parte cortada)

import
java.io.*;
import java.net.URL;
import java.io.DataInputStream;

/*
* Acessa uma URL e retorna uma string contendo a página
*/
public static String getURL(String endereco) {

String retorno = "";
String temp = "";

try {
URL url = new URL(endereco);
BufferedReader pagina = new BufferedReader(new InputStreamReader(url.openStream()));

while( (temp = pagina.readLine()) != null ) retorno = retorno + temp + "\n";

pagina.close();

} catch(IOException e) {
e.printStackTrace();
}
return retorno;
}

Snippet em Java: lendo a primeira linha de um arquivo

try {
BufferedReader in = new BufferedReader(new FileReader("arquivo.txt"));
String linha = in.readLine();
in.close();

} catch (IOException e) {
System.out.println("Erro!");

}

sexta-feira, setembro 07, 2007

Reinstalando apache e php no kubuntu 7.04

Bom, antes de tudo: é uma reinstalação que apaga todas as configurações que você fez. Serve pra quando vc quer voltar ao apache que "vem de fábrica".

Para remover:
$ sudo apt-get remove --purge apache2 apache2-common php5
$ sudo apt-get clean
(o --purge que irá apagar os arquivos de configuração)
Para colocar tudo de novo:
$ sudo apt-get install apache2 php5
Por fim, informamos o apache que ele deve processar os arquivos .php, ao invés de fazer a burrice de dar o nosso código-fonte php de bandeja pra quem visita o site, através do download de arquivos .phtml!
$ sudo ln /etc/apache2/mods-available/php5.* /etc/apache2/mods-enabled -s
$ sudo /etc/init.d/apache2 restart
Ah, não esqueça de limpar o cache do firefox ao fazer os testes....o reload irá continuar te enviado o .php caso o cache não seja limpo.

É isso.

Criando e matando um processo em background

Suponha que vc tenha um script que execute um programa e deixa-o em background, o que é muito comum quando se quer deixar um processo rodando eternamente em um servidor.

Para executar o programa, crie um arquivo texto assim:

1 meu_programa &
2 echo "$!" > pid.txt;
Bom, a primeira linha executa o programa chamado "meu_programa" e libera o terminal, indicado pelo caracter "&". Sem esse símbolo, assim que vc fechar o terminal (ou ssh) o processo também morrerá.

A segunda linha é mais interessante: o comando echo irá criar um arquivo chamado "pid.txt" e colocará dentro dele o pid do último processo que foi para o background. Isso é indicado pelos sinais "$!". Assim, temos armazenado qual o pid do processo que executamos na linha 1.

Bom, agora basta criar um segundo script, que irá matar aquele processo específico, caso esteja rodando. Abra um novo arquivo em um editor de texto e ponha isso:
1 if [ -f pid.txt ]; then
2 echo Matando processo com PID $(cat pid.txt)...
3 kill $(cat pid.txt)
4 rm pid.txt
5 fi
A linha 1 verifica se o arquivo "pid.txt" existe. Caso isso ocorra, significa que o processo deve estar rodando. O comando "$(cat pid.txt)" irá ler o conteúdo do arquivo, pelo comando cat. O resultado, que é o número do processo, é enviado para o "comando de fora", o kill, que irá encerrar o processo. Por fim, o rm apaga o arquivo, já que o processo foi encerrado.

É isso.

Bot para Gtalk, em java

Fala gente,

Estou pesquisando sobre bots e precisei implementar um em java. Este programa conecta-se em um servidor do google talk e fica on-line eternamente, aguardando mensagens dos usuários. Para fins didáticos, ele apenas retorna o número informado, multiplicado por 2.

O programa extra que vc precisa baixar pra tudo isso funcionar, é a API Smack (v. 3.0.4), que encontra-se aqui. (após descompactar, vamos precisar apenas do smack.jar e smackx.jar)

Ponha o código-fonte abaixo num arquivo chamado Botsd.java. Coloque os dois .jar e o .java na mesma pasta e compile e execute:
$ javac -cp '.:smack.jar:smackx.jar' *.java
$ java -cp '.:smack.jar:smackx.jar' Botsd

Pronto! Vc já tem seu bot! Ah, obviamente mude o email e a senha que estão dentro do arquivo.

Obs: se quer mais informações sobre como utilizar uma API que vem num .jar leia isso.

Código-fonte:

/*
* Mantém um bot para gtalk
*/

import org.jivesoftware.smack.*;
import
org.jivesoftware.smack.packet.Presence;
import
org.jivesoftware.smack.packet.Packet;
import
org.jivesoftware.smack.packet.Message;
import
org.jivesoftware.smack.PacketListener;
import
org.jivesoftware.smack.filter.PacketFilter;
import
org.jivesoftware.smack.filter.PacketTypeFilter;
import
org.jivesoftware.smack.Chat;
import
org.jivesoftware.smack.XMPPException;
import
org.jivesoftware.smack.ConnectionConfiguration;
import
org.jivesoftware.smack.XMPPConnection;

public class Botsd {

static XMPPConnection conexao;

public Botsd() {}

public static void main(String args[]) {


// strings
String servidor = "talk.google.com";
Integer porta = 5222;
String servico = "gmail.com";
String usuario = "meu_usuario_do_gmail_sem_arroba";
String senha =
"minha_senha";

// configs do gtalk
ConnectionConfiguration config =
new ConnectionConfiguration(servidor, porta, servico);
config.setSASLAuthenticationEnabled(
true);
config.setReconnectionAllowed(
true);
conexao =
new XMPPConnection(config);

// tentando conectar
System.out.println(
"[ .... ] Tentando conectar... ");

try {
conexao.connect();
System.out.println(
"[ OK ] Conectado.");

// tentando logar
System.out.println(
"[ .... ] Tentando logar...");

try {
conexao.login(usuario, senha);
System.out.println(
"[ OK ] Logado.");

// envia presenca
System.out.println(
"[ .... ] Atualizando presenca e status...");
Presence presenca =
new Presence(Presence.Type.available);
presenca.setStatus(
"Oi gente!");
conexao.sendPacket(presenca);
System.out.println(
"[ OK ] Atualizado.");

PacketFilter meuFiltro = new PacketTypeFilter(Message.class);

conexao.addPacketListener(criaListener(), meuFiltro);

try {

// loop infinito, aguardando mensagens...
System.out.println(
"[ .... ] Ouvindo...");

while(true) {
Thread.sleep(1000);
}

} catch (Exception e) {};

} catch (XMPPException e) {
System.out.println(
"[ ERRO ] Nao consegui logar!");
}

} catch (XMPPException e) {
System.out.println(
"[ ERRO ] Nao consegui conectar no servidor!");
}

}

/*
* Aqui esta definido o metodo que ira manipular as mensagens recebidas...
*/

public static PacketListener criaListener() {
PacketListener meuListener = new PacketListener() {
public
void processPacket(Packet pacote) {
// pega dados relevantes

String mensagem = ((Message)pacote).getBody();
String origem = pacote.getFrom();

Integer resultado = Integer.parseInt(mensagem) * 2;
String retorno = mensagem+" * 2 = "+resultado;

enviaMensagem(origem, retorno);
}};
return meuListener;
}


/*
* Envia mensagem para o destino especificado...
*/

public static void enviaMensagem(String destino, String mensagem) {
MessageListener meuMessageListener;
meuMessageListener =
new MessageListener() {public void processMessage(Chat chat, Message message) {}};
Chat chat = conexao.getChatManager().createChat(destino, meuMessageListener);
try {
chat.sendMessage(mensagem);
}
catch (XMPPException e) {
System.out.println(
"[ ERRO ] Nao consegui enviar mensagem para "+destino);
}
}

}



Obs: se lhe foi útil, deixe um comentário, por favor...
Obs2: tentei identar o código, mas o blogger tirou tudo...

quarta-feira, setembro 05, 2007

Instanciando uma classe que está num .jar

Mais uma dica que pode poupar-lhe algum tempo: suponha que vc tem um .jar, cheio de classes lá dentro e quer usá-las. O que fazer?

Primeiro vc precisa saber o caminho das classes, então digite isso, na pasta do arquivo.jar
$ jar -tvf arquivo.jar
(irá mostrar os caminhos para os .class)
Depois, vá no seu HelloWorld.java (seu código-fonte), e dê um import, tipo esse:
import org.jivesoftware.smack.*;
(coloque o caminho retornado pelo comando anterior, trocando as "/" por ".")
Como nem tudo é perfeito nesse mundo, e vc não pode simplesmente dar include, como quem usa php, então vc deve falar sobre o .jar na hora de compilar e na hora de executar...

Para isso compile, acrescentando o -cp (que sobrepõe o classpath atual)
$ javac -cp ".:arquivo.jar" HelloWorld.java
(neste caso, tudo deve estar na mesma pasta)
E para rodar, faça isso:
$ java -cp ".:arquivo.jar" HelloWorld
Importante notar: na hora do "-cp" não troque o ":" por ";"...vc perderá duas horas com os paths definidos de maneira errada...

Instalando java no Kubuntu

Ok, vc quer programar em java, dá o famoso comando javac e aparece comando não encontrado? Antes de tudo, verifique se comando não está em alguma pasta escondida:
$ sudo updatedb
(irá atualizar a lista de arquivos que existentes)

$ sudo locate javac | grep bin
(irá mostrar todos os arquivos chamados javac, que tenham "bin" no caminho)
Caso não exista, no kubuntu 7.04, basta digitar:
$ sudo apt-get install sun-java5-jre
(para executar os programas)

$ sudo apt-get install sun-java5-jdk
(para compilar os programas)
Ele irá baixar uns 50 MB e voa-lá! Tudo deve dar certo...

Mas se a lei de Murphy estiver a todo vapor, na hora de executar, com o comando java, dará um erro parecido com:
Exception in thread "main" java.lang.UnsupportedClassVersionError: Programinha (Unsupported major.minor version 49.0)
Eu não estou com tempo pra ver o que é isso....mas se vc digitar
$ sudo update-alternatives --config java
Irão aparecer várias alternativas...bom, no meu caso apareceram 4 "javas" para serem utilizados. Vc pode chutar um por um e ver quando dá certo...eu escolhi o
/usr/lib/jvm/java-1.5.0-sun/jre/bin/java
E agora funfa!

Obs1: se foi útil pra vc, me avise...
Obs2: se falei besteira, me avise tbm...java não é meu forte...

Aquele abraço!




sexta-feira, agosto 17, 2007

Sobre o TinyURL

Suponha que você deseje colocar uma URL no seu texto. E suponha que ela é muito grande e horrível. O que vc faz?

Vai no http://tinyurl.com e cadastra sua URL lá.

É super rápido, não precisa de login sem senha....é só dar control+C e control+v, num instante!

Por exemplo:

A grande e feiosa URL abaixo, sobre pitbulls:
http://bichos.uol.com.br/guiasderacas/ult3994u67.jhtm
Vira a pequena e pouco feiosa URL:
http://tinyurl.com/2wkzlp
É isso...

Converter pdf em jpg

O comando convert, do linux (ubuntu), converte facilmente uma figura para outro formato.

Ex: você quer que figura.pdf vire figura.jpg ? Faça isso:
$ convert figura.pdf figura.jpg
Fácil não?

Outro exemplo: sua foto tá muito grande! Faça isso:
$ convert eu.jpg -resize 50% eu_menor.jpg

Obs: se quiser baixar a versão pra windows vá em http://tinyurl.com/2gxogu (mas eu não testei)

quarta-feira, agosto 01, 2007

Gtalk: lista de emoticons

Segue abaixo uma lista com 24 emoticons que podem ser utilizados no google talk do gmail. (se vc descobrir mais algum me avise!)

  1. :)
  2. ;)
  3. :-)
  4. ;-)
  5. :D
  6. :-D
  7. =D
  8. =)
  9. ;^)
  10. :P
  11. :-|
  12. :-/
  13. :(
  14. :'(
  15. :-(
  16. :-o
  17. x-(
  18. >.<
  19. B-)
  20. <3
  21. }:)
  22. :(|)
  23. \m/
  24. +/'\
  25. :*

Gtalk: sobre o símbolo ♫

Algumas observações interessantes sobre o símbolo ♫, retiradas daqui:
  1. Para fazer esse símbolo aparecer no seu status do Google Talk, não tem mágica. Apenas copie e cole (assim como outros, como: ☺♥♣♂♀).
  2. Aparentemente, é o único símbolo que é alinhado à esquerda, pelo Gmail.
  3. É utilizado para indicar a música que vc está ouvindo no momento.
  4. Os status que começam com esse símbolo não ficam no histórico.
É isso.

segunda-feira, julho 30, 2007

Dicas LaTeX

Okay, após perder 15 minutos descobri como se coloca barra diagonal no latex.

Por mais óbvio que pareça, Use \slash.

Assim, para fazer "e/ou" utilize "e\slash ou"

sábado, julho 28, 2007

Driver da nVidia no Kubuntu (linux)

Para instalar o driver da nVidia no braço, isto é, SEM usar o apt-get, faça:

1. Descubra qual a sua placa de vídeo:

Iniciar -> Informações do Sistema
Centro de Informações do KDE -> PCI (lado esquerdo)
(olhe na direita, lá embaixo..tipo "nVidia Corporation NV34 (GeForce FX 5200)"

2. Vá em http://www.nvidia.com e baixe o driver de acordo com seu hardware.
Download drivers -> Graphics Driver
GeForceFX Series -> LinuxX86
3. Feche o X (modo gráfico).
(feche todas as janelas e dê Ctrl+Alt+F1 para abrir terminal)
sudo killall kdm (para quem usa KDE)
4. Vá para a pasta aonde vc baixou o driver execute-o como root.
chmod a+x NVIDIA-Linux-x86_64-100.14.11-pkg2.run
sudo ./NVIDIA-Linux-x86_64-100.14.11-pkg2.run
(Siga as instruções do programa, lendo ATENTAMENTE)
5.Reinicie e tá tudo blz.
sudo kdm (reinicia o KDE)

terça-feira, julho 24, 2007

Instalando discador iBest no linux (kubuntu)

Ok, suponha que vc queira instalar o discador do iBest em um pc linux que ainda não consegue acessar a internet.

Bom, vá em um pc com acesso à net e faça o seguinte:

1. Vá para uma pasta temporária

mkdir ~/Desktop/discador
cd ~/Desktop/discador

2. Baixe o discador oficial (formato .rpm)

wget ftp://ftp.ibest.com.br/pub/discador/Discador_iBest.i586.rpm

3. Instale o programa alien, caso não o tenha

sudo apt-get update;
sudo apt-get install alien

3. Converta-o o arquivo .rpm para o formato .deb, utilizando o alien

sudo alien Discador_iBest.i586.rpm


4. Talvez vc precise da biblioteca libstdc++-libc6.2-2.so.3 (o erro que apareceria, ao instalar futuramente, seria error while loading shared libraries: libstdc++-libc6.2-2.so.3). Baixe a biblioteca, pelo apt-get. Utilze o parâmetro -d para que o apt-get apenas faça download.

sudo apt-get install libstdc++2.10-glibc2.2 -d

5. Pronto! Já temos os dois arquivos necessários. Grave-os num CD e vá até o pc que não tem acesso a net. Ah, os arquivos são:

/var/cache/apt/archives/libstdc++2.10-glibc2.2_1%3a2.95.4-24_i386.deb
~/Desktop/discador/discador-ibest_1.8.001-3_i386.deb


6. Ok. Copie-os para o /tmp e entre lá dentro.

7. Instale os pacotes .deb

sudo dpkg -i discador-ibest_1.8.001-3_i386.deb
sudo
dpkg -i libstdc++2.10-glibc2.2_1%3a2.95.4-24_i386.deb

8. Execute o setup do discador, que misteriosamente chama-se setup_Discador_iBest (cheio de letras em maiúsculas...o nominho infeliz...)

sudo /tmp/setup_Discador_iBest

Ok, agora é só ir clicando...após a instalação estar concluída, o ícone do programa aparece no seu Desktop. É isso.

sexta-feira, julho 20, 2007

Histograma no Excel

Bom, lá vou eu com programas estatísticos...como estou com pressa e o programa R, do post abaixo, está me deixando doido, vou fazer no Excel mesmo. Aliás, excelente programa criado pela Microsoft, que eu não curto....

[não há como negar, oras bolas!]

Ok, para criar um histograma no Excel (testado no 2000) faça:
  1. Vá no menu Ferramentas -> Suplementos
  2. Marque a opção Ferramentas de análise
  3. Vá em Ferramentas -> Análise de dados
  4. Escolha histograma
Em intervalo de entrada indique a coluna que contém os dados.

Em intervalo do bloco indique uma coluna, que vc deverá ter criada antes,
que contém o tamanho de cada classe...tipo, para agrupar de 2 em 2, ponha
os valores 2, 4, 6, 8, etc....

Bom, aí vc dá ok e monta um gráfico em cima dos valores criados pelo Excel.
(ah, não são atualizados dinamicamente, cuidado)

É isso

quinta-feira, julho 19, 2007

Programa Estatístico R

Comecei a usar este programa hoje, então algumas dicas básicas, de quem não sabe nada...

Pra instalar, para quem usa o Debian ou Ubuntu ou Kubuntu ou etc:

sudo apt-get install r-base r-base-core r-base-latex r-cran-rcmdr r-cran-zelig r-gnome

Para executar o programa em um terminal:

R

(isso mesmo, o programa chama 'R', em maiúsculo....cada uma que encontro viu....)

(Para sair do programa digite q() )

Bom, aí vc vai no site abaixo e vê como criar os gráficos:

http://bg9.imslab.co.jp/Rhelp/