O Desktop KDE4
Ajude a Combater o Spam! Clique aqui!
Bom, como o KDE4 é em grande parte algo visível não vou ficar falando muito não. Vou postar screenshots de algumas telas do kde4 para ver o que vocês acham e recomendariam.

Dolphin.. o novo gerenciador de pastas

Novo Konqueror.. mais voltado para web browser

Aee, o Renice Dialog do KSysGuard em ação, lembram??
Veja todas as screenshots no meu flickr!
Depois eu posto como instalar o KDE4 devel no Slackware12 e em outros sistemas!
Resposta do desafio criptografia Blowfish
Ajude a Combater o Spam! Clique aqui!
Já faz um tempinho que coloquei o ‘Desafio criptografia Blowfish’ no meu blog. Só que ninguem conseguiu, ou tentou, resolver o problema.
Vamos ver que é bem simples esse desafio.
Primeiro coisa a fazer é ler o desafio e perceber que temos 2 coisas importantes alí:
- Mensagem criptografada
- Senha da mensagem.
Feito isso já podemos matar o problema. Como?
Primeiro escolha a linguagem de programação que você quer resolver. No caso vamos utilizar Python.
Você pode baixar o blowfish.py aqui.
Se você abrir o código, pode perceber que no final do arquivo têm uns exemplos de uso. Ou simplesmente faça:
-
$ tail blowfish.py -n 20
A saída será essa:
-
if __name__ == ‘__main__’:
-
key = ‘This is a test key’
-
cipher = Blowfish (key) print "Testing encryption:"
-
xl = 123456
-
xr = 654321
-
print "\tPlain text: (%s, %s)" %(xl, xr)
-
cl, cr = cipher.cipher (xl, xr, cipher.ENCRYPT)
-
print "\tCrypted is: (%s, %s)" %(cl, cr)
-
dl, dr = cipher.cipher (cl, cr, cipher.DECRYPT)
-
print "\tUnencrypted is: (%s, %s)" %(dl, dr)
-
print "Testing buffer encrypt:"
-
text = ‘testtest’
-
print "\tText: %s" %text
-
crypted = cipher.encrypt (text)
-
print "\tEncrypted: %s" %crypted
-
decrypted = cipher.decrypt (crypted)
-
print "\tDecrypted: %s" %decrypted
Agora já sabemos como faz para chamar o método de criptografar e descriptografar.
Mas peraí, no exemplo acima o mensagem era uns números e não vários caracteres como na do nosso desafio.
Aí vem a primeira pegadinha..
nossa string foi convertida para codificação base 64.
Então teremos de converter toda a string para uma string conhecida pelo blowfish(ou não, temos que ver).
-
import base64
-
base64.b64decode(’string_do_desafio’)
Beleza, agora sabemos que está tudo ok. Temos que conhecer o Blowfish.
Para isso vamos dar uma pesquisada na internet.
…10 minutos depois…
Bom, pelo que eu vi aqui na wikipedia e vejo isso: A entrada para essa parte do algoritmo são 64 bits…
Com complexas contas chegamos que 64 bits = 8 Bytes = 8 caracteres. Para quem não entendeu ainda, fizemos 64 bits / 8 bits = 8 Bytes
Então quer dizer que o blowfish só recebe em blocos de 8 caracteres as entradas.. hmmmm interessante..
Sabendo isso, vamos ter que separar nossa string com muitos caracteres em várias de 8 caracteres apenas.
Faremos isso com um for normal e vamos cortar a string em vários blocos de 8 caracteres. Mas e se o último bloco conter apenas 6 caracteres? Para termos certeza de que a string contem 8 caracteres podemos forcar com o método string.ljust(variavel, 8 )
Não se esqueça que a senha também não deve ter menos de 8 caracteres, então está a outra dica: Usar o ljust() na senha também.
Depois disso é só você criar seu código. Eu criei uma classe bem simples que criptograda e descriptografa.
Na verdade é bem simples sim. Vou postar meu código aqui e quem quiser baixar ele fique a vontade..
Tente desvendar o mistério e resolva o desafio!!!
Agora só falta postarem o resultado, ficou fácil né? hehe
cript.py
-
#
-
# Feito em 22/08/2007
-
#
-
-
import sys
-
import string
-
import base64
-
import blowfish
-
-
__author__ = "Felipe Ferreri Tonello <felipe.tonello@gmail.com>"
-
-
class BFCript:
-
"""
-
Classe que usa criptografia Blowfish juntamente com encodificacao Base64
-
-
uso: cript.py cript|descript ’senha’ ‘texto’
-
-
PS: Quando for descriptografar, o texto deve estar codificado em Base64
-
"""
-
CRIPTOGRAFAR = 0
-
DESCRIPTOGRAFAR = 1
-
-
def cript(self, sKey, sTxt, iAction):
-
bf = blowfish.Blowfish((len(sKey) < 8 and [string.ljust(sKey, 8)] or [sKey])[0])
-
-
if iAction == self.DESCRIPTOGRAFAR:
-
sTxt = base64.b64decode(sTxt)
-
-
sCript = ""
-
-
for i in [x*8 for x in range(0, len(sTxt)/8+1)] :
-
sSBox = sTxt[i:i+8]
-
if len(sSBox) > 0 :
-
if iAction == self.CRIPTOGRAFAR:
-
sCript += bf.encrypt(string.ljust(sSBox, 8))
-
elif iAction == self.DESCRIPTOGRAFAR:
-
sCript += bf.decrypt(sSBox)
-
-
if iAction == self.CRIPTOGRAFAR:
-
return base64.b64encode(sCript)
-
elif iAction == self.DESCRIPTOGRAFAR:
-
return sCript
-
-
##################################################
-
-
if __name__ == "__main__" :
-
bfc = BFCript()
-
if len(sys.argv) != 4 or (sys.argv[1] != "cript" and sys.argv[1] != "descript"):
-
print BFCript.__doc__
-
sys.exit(0)
-
elif sys.argv[1] == "cript" :
-
print bfc.cript(sys.argv[2], sys.argv[3], bfc.CRIPTOGRAFAR)
-
elif sys.argv[1] == "descript" :
-
print bfc.cript(sys.argv[2], sys.argv[3], bfc.DESCRIPTOGRAFAR)
OLPC Game Jam Brazil e Conisli
Ajude a Combater o Spam! Clique aqui!
É isso ae..
Foi muito bom esse final de semana. Na sexta feira fui para o conisli onde dei duas palestras:
E no OLPC Game Jam Brazil foi muitoooo legal, bem mais do que eu imaginei!
Conheci muita gente, inclusive o Leandro Lameiro(manja muito de pyton) que fez parte do time que é super gente fina!
Comemos bastante lá, aprendemos muito e zuamos!
Computadores com Fedora, acesso ao root, XO para todos, internet, wifi, muita comida e até um quartinho para dormir! hehehe
Os jogos estavam muito bons! E a maioria do pessoal também não tinha muita experiência com PyGame, e uns nem com Python, fizeram em SDL com C mesmo!
Nota 10 para o evento, e estamos esperando o próximo!!
Depois eu faço um posto sobre o jogo que eu e o Leandro Lameiro desenvolvemos.
Vocês podem ver as fotos do evento no meu flick e na tag GameJam Brasil.
Conisli e Game Jam OLPC
Ajude a Combater o Spam! Clique aqui!
Esse final de semana será bem corrido hehehe
Galera, todos estão convidados para as 2 palestras que irei fazer no conisli, Congresso Internacional de Software Livre, na cidade de São Paulo.
A primeira será 15:45 às 16:45 Engatinhando com AJAX e PHP no dia 9/11.
Em seguida será 17:00 às 18:00 Zend Framework para um PHP mais poderoso no mesmo dia 9/11.
Depois da palestra vou correndo para São Carlos nas UFSCar(Universidade Federal de São Carlos), minha querida facul, onde terá o Game Jam OLPC nos dias 10-11/11.
Vou participar no time com o Leandro Lameiro. Uhuuu vamos lá!!! ![]()
Plugin Category Show(WordPress) atualizado 0.2
Ajude a Combater o Spam! Clique aqui!
Houve mudanças no banco de dados na versão nova do WP, 2.3.x.
Então lancei a versão 0.2 que está funcionando no wordpress 2.3.x inclusive com a nova função para tags nos posts.
Você pode baixar aqui
wp_catshow0.2.tar.gz
wp_catshow0.2.zip
O Category Show exibe em formato de lista(<ul><li>) seus posts relacionados a categoria ou tag desejada.
Bastante útil para quem quer exibir seus tutoriais, artigos ou simplesmente seus posts de certa categoria.
Modo de uso
É mais fácil ainda usar.
No post seu, onde você quer listar sua(s) categorias é só usar essa sintaxe:
%.%wpcs-CATEGORIA%.%
só que sem o ponto(.) entre os %%. Coloquei se não ele lista as coisas hehe
O nome da categoria não pode ter acentos ou caracteres chatos. Caso sua categoria seja: “Olá tudo bom?“. Use assim:
%.%wpcs-ola tudo bom%.%
lembrando: sem o ponto entre os %%
Versão para WP 2.2.x:
Ajudando no desenvolvimento do KDE 4
Ajude a Combater o Spam! Clique aqui!
Comecei essa semana no projeto de desenvolvimento do KDE4.
No momento estou ajudando no desenvolvimento do KSysGuard, o monitor de sistema do KDE.
Olha, muito fera o desenvolvimento viu.. o pessoal manja demais, e sem contar na ajuda que você recebe..
Muito legal
O KSysGuard está sendo reformulado para o KDE 4, com novas funções de administração do sistema, bem legais.
No caso estou ajudando na parte de gerenciamento do processo. Você pode controlar quanto o processo vai usar de processador, hard disk e até network.
Só pra galera já ir imaginando como vai ser no KDE 4, icones oxygen, plasma, qt4 e sem contar que agora estão incentivando muito a acessibilidade!
![]()
Por falar nisso, se alguem tiver alguma sugestão do layout da UI, por favor, fique a vontade de se expressar!

