sexta-feira, 23 de julho de 2010

Bug do Msn 2010 Beta

Bom dia, depois de uma semana com o Msn 2010 Beta instalado entendi um bug dele, que estava fechando ele for good (fechando mesmo, sem minimizar na taskbar)....
Na verdade não é um bug, no sentido de bug, é uma alteração no funcionamento dos atalhos de teclado Alt + F4 e o Ctrl + F4, se você utilizar estes atalhos de teclado o Msn é fechado sem qualquer aviso....
O funcionamento esperado seria ele esconder o programa, como ele já faz ao clicarmos em X...
Mas não, ele simplesmente encerra o programa, e eu pensando que o Msn estava travando sem deixar vestigios do travamento.
Espero que na versão final eles corrijam essa anomalia, ou criem uma opção para parar isso....

Direito Internacional - Relatório de Acordos Internacionais

Bom dia, descobri que no site do Ministério da Justiça tem uma compilação completa com informações dos acordos de cooperações bilaterais ou multilaterais, organizados por países...

Acesse o Portal do Cidadão - Cooperação Internacional - Instrumentos de Cooperação - Na parte direita da tela você verá:

Muito útil para quem precisa saber o que é possívle pedir através dos instrumentos de cooperação internacional existentes com um país em específico....

quinta-feira, 22 de julho de 2010

Autenticação Speedy Business no Windows (EXE)

Bom dia, o futuro chegou...

Fiz uma versão em arquivo executável para Windows do autenticador para o Speedy Business para Windows, espero que gostem, pois ela é bem simples, só executar o EXE, ele vai criar um arquivo Speedy.txt e alterar os dados de login e senha, e escolher um site para ele acessar para testar...
Postei como projeto no sourceforge pois não estava a fim de mandar para os hosts grátis e nem usar a cota da minha hospedagem...
Autenticador Speedy Business em Python

Agora é só criar uma tarefa agendada no Windows e rodar, é possível que para executar o programa o Windows peça para baixar essas DLL's do Microsoft Visual C++ 2008 Redistributable Package (vcredist_x86.exe)...

quarta-feira, 21 de julho de 2010

Autenticação Speedy Business com Python

Bom dia, fiz um port do meu script pra autenticação do speedy business que estava em PHP para Python agora...
Bem simples ele, apenas lembre-se de alterar as linhas de variáveis, segue ele abaixo e também neste link: http://pastie.org/private/0azzdlbbytferepzhhbfua


#Variables Handler
CheckHost = "http://www.algumsite.com/index.html"
LoginHost = "http://200.171.222.97/wsc/servlet/logon.do?opcion=internet&CPURL=&username=[[[LOGIN]]]&password=[[[SENHA]]]"
Login = "internet@speedy.com.br"
Senha = "internet"

#Http Handler
import urllib
def BaixaHttp(Host):
    f = urllib.urlopen(Host)
    return f.read()

#Speedy Handler
if "speedy" in BaixaHttp(CheckHost) :
    print "Vou fazer Login..."
    LoginHost = LoginHost.replace("[[[LOGIN]]]",Login).replace("[[[SENHA]]]",Senha)
    BaixaHttp(LoginHost)
    if "speedy" in BaixaHttp(CheckHost):
      print "Algo deu errado..."
    else:
      print "Login efetuado com sucesso..."
else:
    print "Ja esta logado..."
Depois é só salvar ele em um arquivo .py e executar...
A vantagem do python que é possível gerar uma versão exe dele, mas como o login e a senha ficariam no código fonte não posso disponibilizar um EXE com este código...
A não ser que o login internet funcionasse ainda...
Quem sabe no futuro eu faça uma versão com suporte a arquivos INI em EXE mesmo...

Fiz uma versão em EXE: http://blog.otavio.info/2010/07/autenticacao-speedy-business-no-windows.html 

domingo, 18 de julho de 2010

Python - Arquivos INI

Segue as funções que estou utilizando para ler e escrever em arquivos de configuração INI, elas são bem simples:
import ConfigParser
INIFile = 'example.cfg'

def EscreverINI(Secao,Nome,Valor):
  config = ConfigParser.RawConfigParser()
  config.read(INIFile)
  if not config.has_section(Secao):
      config.add_section(Secao)
  config.set(Secao, Nome, Valor)
  
  with open(INIFile, 'wb') as configfile:
      config.write(configfile)

def LerINI(Secao,Nome):
  config = ConfigParser.RawConfigParser()
  config.read(INIFile)
  try:
    return config.get(Secao, Nome)
  except:
    return ""

EscreverINI("Teste",'Dia','25')
print LerINI("Teste","Dia")
Eu não encontrei nenhum exemplo com funções já prontas, todos os códigos que eu estava encontrando necessitavam a criação delas... Eu sou do tipo que esta acostumado com mIRC Scripting que tem funções parecidas para se trabalhar com arquivos INI.

sábado, 17 de julho de 2010

Fix Apache Rewrite Domain Url Encode Special Characters

No meu post anterior, eu reportei um problema que ocorre no twitter, em que ao ser redirecionado para outro domínio as variáveis GET na url de destino eram encodadas (urlencode)...

Ou seja, um simples espaço que é representado por %20 se transformava em um %2620, ou seja um %20 literal... O que tornava os resultados na página de destino incorretos quando haviam caracteres especial (special characters) na url...

O problema só ocorre em redirects de domínio, internos não são afetados....

Exemplo de Sintaxe com Problema
RewriteRule ^Link(.*)$ http://newdomain.com/Link$1 [L]
A solução do problema é simples, basta usar a FLAG: [NE] - No Escape ou Do not escape output...
Exemplo de Sintaxe sem o Problema
RewriteRule ^Link(.*)$ http://newdomain.com/Link$1 [NE,L]
Com essa FLAG a saída do RewriteRule não é escapada, o que evita escapar o que já estava previamente escapado...

Não sei se isso é um bug do mod_rewrite, mas é realmente um saco...

sexta-feira, 16 de julho de 2010

Twitter - Link para Twittar com acentos...

Bom dia, achei um bug muito engraçado no twitter hoje...
Estava tentando responder a uma pergunta no orkut questionando porque o link dele não estava funcionando...
Pesquisei e não encontrei a resposta, resolvi tentar a solução idiota, pois achei uns links que funcionavam com acentos e outros que não...
Percebi que a diferença entre eles era o www.
Sim o www...

$tweet = "Frase com acento é foda!!! Mas é muito legal a programação... ä";
$tweet =  ($tweet);
$tweet = utf8_encode($tweet);
$tweet = urlencode($tweet);
header("Location: http://twitter.com/?status=".$tweet); //Funciona
header("Location: http://www.twitter.com/?status=".$tweet); //Não funciona
 E lembre-se de codificar em UTF-8 antes de enviar...
Não sei exatamente a causa do bug... Creio que alguma configuração que desconheço no servidor do twitter...
O problema é que no servidor com www. os acentos ficam urlencodados the way they are "s%E7%E3o", já no sem www. ele decodifica para "são"...
Bug esquisito, espero que ajude quem estiver com esse problema com palavras acentuadas em seus links...
Detalhe, o problema também afeta hyperlinks (aquele <a href="http://www.twitter.com/?status=">...
Então preste atenção a este detalhe...
Isso claramente não afeta apenas o PHP, mas qualquer linguagem... Pois os links gerados não funcionam nos browsers também...
Segue links para você testar por você mesmo (os links não funcionam pra quem não esta logado):
Tenha medo, muito medo, :P

Update: Entendi o bug... Ao acessar a url com www ele redireciona para a url sem o www, e neste redirect ele acaba sujando a mensagem...
Coisa de programador idiota que faz urlencode(urlencode($text))...

domingo, 11 de julho de 2010

Unidade Substituta

Enquanto eu tive de deixar meu desktop desligado por causa do problema da fonte, e eu não queria danificar os demais componentes e o próprio windows com os travamentos, utilizei o meu EeePC como substituto do desktop...
Liguei um hub USB e liguei teclado, mouse, o monitor, e a dock station....
Tirei o HD de dados do desktop e coloquei na Dock....
Como eu havia planejado a migração foi quase transparente, é claro que eu não alterei a pasta meus documentos, mas o utorrent e o mirc funcionaram perfeitamente no EeePC como se estivessem no desktop, nem perceberam o mudança...
O Msn tive de usar o que esta no netbook, pois daria muito mais trabalho adaptar a versão que esta no Desktop, mas os logs estão mantidos...
De resto foi como se eu não tivesse desligado o desktop, o EeePC aguentou ficar ligado por quase uma semana, apesar que a cada dois dias eu reiniciava ele, não confio no XP tanto assim...
Foi interessante, o EeePC tinha muito menos cabos ligados nele, e eu nem liguei todos os dispositivos Usb que tinha, no desktop eu estou praticamente sem portas, isso porque eu tenho uma PCI USB 4+1.... E estou sem portas livres....

Fonte Failure - A solução

Bom dia, semana passada passei por maus bocados com o desktop que passou a reiniciar aparentemente sem motivo, pensei que pudesse ser culpa do teclado USB que acabei comprando esses dias, um Microsoft Confort Curve 2000, mas o problema persistiu mesmo retirando ele....
As vezes o sistema dava tela azul (BSOD), com as mais variadas mensagens de erro, tirei até foto de algumas das telas azul aqui...
Pensei que pudesse ser problema das portas USB, aos que não sabem eu queimei a porta usb frontal do micro, usando o USB Power em um Speaker cheap....
Mas o problema persistiu sem dispositivos USB....
Pensei que pudesse ser problema do Windows 7, pois rodei um Update um dia antes também, pensei que pudesse ser também o MSN 2010 Beta que instalei no dia também....
Percebi que era problema de hardware quando micro começou a não ligar...
A placa-mãe dizia, Falha no Tteste de CPU, sim minha mobo fala, em português ainda....
Que medo, depois de 10 tentativas o micro ligou, medo foi embora... Mas continuou travando...
Foi então que me acenderam a luz e eu percebi que esse problema poderia muito bem ser a fonte, ou pior ainda a placa-mãe....
Resolvi apostar na solução mais simples e barata economicamente, já que uma fonte poderia ser aproveitada futuramente....
E também eu fiz um teste, o nobreak aqui tem o auto-teste, rodei ele, o micro resetou, e todas as outras vezes que travou eu lembro que eu tinha ouvido o nobreak sofrer variação de tensão.... Ou seja, probabilidade de ser a fonte era bem maior, o único problema é se ele afetou os demais componentes do pc....
E não é que resolveu a bagaça?
Comprei uma Fonte Corsair 550 W - Série VX, de fato já estou com o sistema rodando a 4 dias sem trava...
Aparentemente a Fonte Seventeam ST-420BKV deu defeito em algum componente interno que atua quando há variação de tensão, o que estava causando falhas no suprimento de energia do computador....
A vantagem da fonte nova é que ela tem PFC ativo, mas nem lembro o consumo da anterior para saber se houve redução no consumo de energia, por ser mais eficiente que a anterior....

domingo, 4 de julho de 2010

Guia para ser mais inteligente...

Título original...
Guia para ser mais inteligente...
  1. Parta do príncipio que você está sempre errado;
  2. Quem deve dizer que você está certo são os outros e não você;
  3. Se os outros disserem que você está errado, eles estão errados;
  4. Você nunca pode estar certo de nada, pois a verdade não existe, é uma mera ilusão criada por aqueles que não podem conviver com a idéia de estarem errados;
  5. Nunca assuma presunções absolutas, um dia podem descobrir que a gravidade também puxa as coisas para cima (já existem teorias sobre);
  6. Se você achar que este guia está errado você provavelmente está certo;
  7. A verdade só existe para aqueles que não podem provar que ela está errada;
  8. Só porque todos dizem que a água é molhada não significa que ela seja realmente molhada, pode ser que ela seja apenas úmida;
  9. Não perca tempo com aqueles que não sabem a verdade, nem com aqueles que não sabem de nada;
  10. Não acredite que estudar é tudo, nem que a experiência supre qualquer necessidade, nem que a vida é curta, se fosse curta ela duraria 30 segundos;
Cansei por aqui, use o que puder, ignore o que quiser, mas saiba que a inteligência é resultado dos estimulos que a pessoa recebe nos primeiros meses de vida, o resto é apenas reflexo.