terça-feira, 19 de janeiro de 2010

Acessar Banco de Dados MySQL no ArchLinux

Eu usava o Ubuntu com o netbeans e o mesmo encontrava e acessava o banco de dados local mysql sem problemas, quando instalei o arch e o netbeans, eu não consegui fazer mais isso, procurei em diversos lugares diferentes(menos na Wik oficial do Arch) a solução e ninguém parecia a ter.
Como pouco uso o netbeans eu não me importei muito e me contentei em usar no meu desktop que tem o ubuntu 64 bits, eu já havia configurado as tabelas, os BD's propriamente ditos e o arquivo my.cnf e nada feito.
O problema apareceu quando eu não consegui acessar o MySQL com os meus aplicativos python, e o pior é que eu precisava demonstrar o acesso a um cliente com o programa rodando no micro dele e o mysql rodando como servidor no meu note, e agora?
Novamente a maratona no google e nada feito, então resolvi procurar na Wiki do Arch : , a solução estava lá, era só seguir os passos, e voilá, tudo funcionando, inclusive o netbeans.
Fica aí a dica, se alguém precisar configurar e por acaso cair por esse blog a solução está na wiki do arch.


Enable remote access

The MySQL server does not listen on the TCP port 3306 by default. To allow (remote) TCP connections, comment the following line in /etc/mysql/my.cnf:

skip-networking

Remember to edit /etc/hosts.allow by adding the following lines:

mysqld: ALL : ALLOW
mysqld-max: ALL : ALLOW

terça-feira, 12 de janeiro de 2010

Meu Primeiro Script PyQt

Consegui depois de algum estudo criar o meu primeiro script em Python + Qt, ele é muito simples e fiz com o intuito de resolver um problema de renomear um monte de fotos de uma pasta.
Ele funciona assim, você digita a pasta onde estão os arquivos, por exemplo:

/home/user/arquivos

depois coloca o nome base do arquivo, por exemplo:

fotos2006.jpg

depois ele renomeia as fotos como 1fotos2006.jpg,2fotos2006.jpg e assim por diante. É uma função muito simples, mas vale à pena o aprendizado, tive muitos problemas para ele funcionar com caracteres especiais.

Aqui vai o script (estou sem tempo para inserir comentários depois eu faço isso)



# -*- coding: utf-8 -*-

from PyQt4 import QtCore, QtGui
from os import system
import subprocess
class Ui_janelaPrincipal(object):
def setupUi(self, janelaPrincipal):
janelaPrincipal.setObjectName("janelaPrincipal")
janelaPrincipal.resize(419, 226)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap("../../star.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
janelaPrincipal.setWindowIcon(icon)
self.centralwidget = QtGui.QWidget(janelaPrincipal)
self.centralwidget.setObjectName("centralwidget")
self.label = QtGui.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(10, 10, 59, 30))
self.label.setObjectName("label")
self.label_2 = QtGui.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(10, 60, 91, 51))
self.label_2.setObjectName("label_2")
self.label_3 = QtGui.QLabel(self.centralwidget)
self.label_3.setGeometry(QtCore.QRect(10, 120, 59, 18))
self.label_3.setObjectName("label_3")
self.mensagens = QtGui.QLabel(self.centralwidget)
self.mensagens.setGeometry(QtCore.QRect(110, 120, 131, 61))
self.mensagens.setObjectName("mensagens")
self.botaoRenomear = QtGui.QPushButton(self.centralwidget)
self.botaoRenomear.setGeometry(QtCore.QRect(290, 140, 106, 27))
self.botaoRenomear.setObjectName("botaoRenomear")
self.caminho = QtGui.QLineEdit(self.centralwidget)
self.caminho.setGeometry(QtCore.QRect(100, 10, 311, 28))
self.caminho.setObjectName("caminho")
self.novo_arquivo = QtGui.QLineEdit(self.centralwidget)
self.novo_arquivo.setGeometry(QtCore.QRect(100, 70, 113, 31))
self.novo_arquivo.setObjectName("novo_arquivo")
janelaPrincipal.setCentralWidget(self.centralwidget)
self.menubar = QtGui.QMenuBar(janelaPrincipal)
self.menubar.setGeometry(QtCore.QRect(0, 0, 419, 24))
self.menubar.setObjectName("menubar")
janelaPrincipal.setMenuBar(self.menubar)
self.statusbar = QtGui.QStatusBar(janelaPrincipal)
self.statusbar.setObjectName("statusbar")
janelaPrincipal.setStatusBar(self.statusbar)
QtCore.QObject.connect(self.botaoRenomear, QtCore.SIGNAL("clicked()"), self.renomear)
self.retranslateUi(janelaPrincipal)
QtCore.QMetaObject.connectSlotsByName(janelaPrincipal)

def renomear(self):
caminho = unicode(self.caminho.text())
arquivo = unicode(self.novo_arquivo.text())
completo = caminho + '/.caminho'
system(u"ls %s > %s/.caminho" % (caminho, caminho))
prepare21 = open(unicode(completo), 'r')
linhas = prepare21.readlines()
contagem = 0
for arquivos in linhas:
contagem += 1
filesX = arquivos[:len(arquivos) - 1]

#print filesX
#try:
#system(u'mv -fv "%s/%s" "%s/%d%s"' % (caminho, filesX, caminho, contagem, arquivo))
# print fileX
subprocess.call(['mv', '-fv', caminho + '/' + unicode(filesX, 'utf-8'), caminho + '/' + str(contagem) + arquivo])
self.mensagens.setText(u"transação efetuada\ncom sucesso")
#except:
#self.mensagens.setText(u"Falha geral\nna transação")



def retranslateUi(self, janelaPrincipal):
janelaPrincipal.setWindowTitle(QtGui.QApplication.translate("janelaPrincipal", "Renomear em massa", None, QtGui.QApplication.UnicodeUTF8))
self.label.setText(QtGui.QApplication.translate("janelaPrincipal", "Pastas:", None, QtGui.QApplication.UnicodeUTF8))
self.label_2.setText(QtGui.QApplication.translate("janelaPrincipal", "Nome Base :", None, QtGui.QApplication.UnicodeUTF8))
self.label_3.setText(QtGui.QApplication.translate("janelaPrincipal", "Status:", None, QtGui.QApplication.UnicodeUTF8))
self.botaoRenomear.setText(QtGui.QApplication.translate("janelaPrincipal", "Renomear", None, QtGui.QApplication.UnicodeUTF8))


if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
janelaPrincipal = QtGui.QMainWindow()
ui = Ui_janelaPrincipal()
ui.setupUi(janelaPrincipal)
janelaPrincipal.show()
sys.exit(app.exec_())






segunda-feira, 28 de dezembro de 2009

Porque Resolvi Usar PyQt.

Eu estudei bastante PyGTK, e baixei manuais de referência e etc, consigo fazer diversas coisas em GTK e já fiz diversos programinhas legais para uso interno, porém surgiu recentemente um projeto maior e tive problemas com o PyGTK:

- Graves instabilidades com o Glade3.
- Biblioteca nativa GTK com limitações para o meu uso.
- Suporte Muito fraco para o windows.

Resolvi então dar uma olhada nas bibliotecas Qt que devido à minha preferência por Gnome eu nunca havia dado uma olhada nelas para programar, logo de cara uma coisa me agradou que foi a nokia estar por trás do projeto, eu gostei disso porque quando uma empresa está coordenando alguma coisa as suas diretrizes são bem definidas, nada contra outro tipo de modelo ou empresa, mas o fato é que isso me tranquilozou um pouco. Os pontos positivos de usar as bibliotecas Qt e o PyQt4 foram:

- Widgets com recursos úteis nativos, por exemplo, o masked entry faz parte do pacote do Qt Designer.

- Qt designer mais estável do que o Glade3, eu ainda não tinha tido problemas com o Glade e percebi que se o trabalho for pequeno ele não nega fogo, porém quando precisei criar interfaces mais complexas me deparei com travamentos e falhas de segmentação esporádicas que atrasaram e muito o meu trabalho, coisa que ainda não aconteceu com o Qt Designer.

- Ferramenta de geração de código faz parte da suíde de desenvolvimento PyQt- pyuic4. A ferramenta que eu utilizava para gerar o código no python era um script que eu encontrei garimpando a internet chamado gladeloader.py, ele é realmente muito bom, porém foi criado por um cara que não faz parte do desenvolvimento principal e não está ligado a nenhum projeto, o que significa que novidades vindas do glade poderiam gerar incompatibilidades com o script o que me faria ter que começar a minha odisséia novamente, temos o tepache que vem nos repositórios de diversas distros porém nunca me dei bem com ele.

- Suporte Excelente em Windows, Symbian, Maemo etc... Isso creio que não preciso comentar né?

Claro que nem tudo são flores, mas visto os benefícios eu decidi mudar todo o programa que eu esava construindo para as bibliotecas Qt, os problemas que estou encontrando são:

- Documentação do PyQt basicamente apenas em inglês e eu não encontrei material atualizado para download, não que inglês seja um encalço muito grande porém ler um documento técnico em sua lingua nativa é bem melhor e com um desenvolvimento mais rápido.

- Diferenças conceituais no manejo de sinais e eventos. As bibliotecas Qt utilizam um conceito diferente de sinais e métodos, eles usam: Sinal, Emissor, Receptor e Slot's; eu estou tendo um pouco de dificuldades de entender isso apropriadamente.

- Arquivo do Qt designer não é aproveitado como no Glade/GTK. No glade, o arquivo glade é aproveitado e no código fica apenas o código de importação do glade e a lógica do programa fica no arquivo python, no Qt designer o código de criação da Gui fica no arquivo .py e , se for o caso, teria que criar uma classe depois importar para o código da lógica, terei que fazer isso.

Fica aí a dica, se alguém como eu está tendo problemas com o PyGTK o PyQt é uma solução, é claro que temos o projeto kiwi entre outros que podem resolver essa situação, mas no meu caso não era apenas as limitações das widgets que estavam me dando dor de cabeça.

sexta-feira, 4 de dezembro de 2009

Sobre Religião, Linux, Windows e informática

Engraçado o tópico do post não? O que tem relação com Religião, Windows, linux ou informática? Eu irei explicar, mas antes vamos fazer uma pequena viagem....

Irã, Iraque, Israel, Palestina... Afeganistão. Esses países sempre estão em zona de guerra e o motivo dessa guerra é preticamente o mesmo: Religião, um quer matar, eliminar o outro por ser um "porco" infiel, e o lado Oposto, os ocidentais "iluminados" querem combater a ameaça fundamentalista e fanática.
Então aparece uma corrente de pessoas que culpam Deus, as religiões e passam a "adorar" e idolatrar um homem que foi o iluminado, aquele que tirou o ópio do povo e mostrou a verdade à luz da ciência. em contrapartida um bocado de gente fala que eles são filhos do capeta e que temos que em nome de Deus eliminar esses porcos do mundo, mais uma guerra, mais um conflito mais um jihad.
Talves por esse motivo o Elton John escreveu a sua célebre "imagine", onde ele imaginou um mundo sem religião e as pessoas dando as mãos. Pobre Elton, não poderia estar mais enganado.
Trabalho no ramo da informática a cerca de 16 anos, desde de 1994 quando eu fiz o meu primeiro curso de computação, e desde então venho participando de listas de discussão e fóruns dos mais diversos assuntos de informática, e durante esse tempo não foram poucos os "flame wars" dos quais eu vi e muitas vezes participei.
Para quem não sabe "flame wars" são discussões acaloradas em lugares na internet com fóruns e afins onde as pessoas perdem o senso racional e partem para as mais diversas discussões, ela perde o foco técnico e passa a ser pessoal, pouco importa se o sistema tem uma falha descarada e trava a todo o momento, o que vale é que eu gosto dele e pronto.
Geralmente vemos as discussões crescerem muito quando se fala de linux e windows por exemplo, um grande grupo defende com todo o amor e devoção um sistema que tem como único objetivo gerar mais riquezas para uma determinada empresa, outro grupo defende com unhas e dentes um sistema por um pseudo ideal que no fim das contas é produzido por um grupo de geeks que querem facilitar a sua vida, ao invés de ficarem reinventando a roda preferem compartilhar as suas conquistas e facilitar a sua vida e a dos outros.
O mesmo ocorre com fabricantes de processadores, placas de vídeo etc.
Isso me leva a crer, que se o sonho do elton John se tornasse realidade e de uma hora pra outra acabassem as religiões as pessoas iriam continuar brigando e lutando entre si, mas dessa vez por causa da marca do carro que a outra gosta ou marca de celular ou sistema operacional do computador.
Independente do motivo o Ser Humano Sempre dá um jeitinho de fazer guerra e brigar.
Recentemente entrei no fórum do GDH e tem uma discussão por lá a respeito de Linux e Windows e vírus no Linux, é interessante, mas eu particularmente uso linux há anos e nunca tive algum problema nessa proporção, mas mesmo assim tem alguns que teimam que existe vírus para linux, pode até ter, mas enquanto eu tiver a minha senha de root ninguém infecta o meu computador.

sábado, 24 de outubro de 2009

Configurar o Linux para o funcionamento da USB no Virtualbox e VmWare

Colocar o USB para funcionar:

Veja a id do grupo vboxusers, no gnome vá em administração>sistema>usuários e grupos, procure pelo grupo vboxusers ou o grupo do seu usuário (recomendo o vboxusers porque assim ele vai funcionar para outros usuários também), clicke duas vezes no grupo desejado e nas propriedades vai aparecer o id do grupo. Você pode criar um novo grupo também, o essencial é que o seu usuário faça parte desse grupo e você saiba o id dele.

Edite o arquivo /etc/fstab, no caso do ubuntu você pode teclar Alt+F2 e na caixa de diálogo digitar gksu gedit /etc/fstab.

Coloque a linha abaixo de todas as opções :

#Usb para o Virtualbox ou vmware:
none /proc/bus/usb usbfs devgid=124,devmode=664 0 0
no meu caso o id do grupo vboxusers é 124, altere para o id do grupo desejado.

Reinicie o micro e pronto.

terça-feira, 29 de setembro de 2009

A nova era de Golpes Multiplataforma

Programas multiplataforma estão difíceis de encontrar, Se você se aventurar a usar um outro sistema operacional como o Linux, Solaris, Machintosh, etc provavelmente terá algum problema com aplicativos ou até mesmo alguns sites que não funciona no sistema operacional que você escolheu, frequentemente terá que recorrer a fóruns e outras fontes se comprar algum item de hardware mais diferente, felizmente isso melhorou e tem melhorado muito a cada dia, mas ainda existe.
O windows por outro lado tem todo o suporte que precisar, mas por outro lado é o sistema que é mais alvo de vírus e malware em geral o simples fato de navegar na internet é um grande risco, o uso de sistemas "crackeados" e programas modificados para burlar sistemas de proteção ao direito autoral só pioram a situação pois sempre tem um "cavalo de tróia" como brinde, o uso dos pendrives então, que facilitam a nossa vida se tornou um motivo de preocupação. Mas porque isso tudo? Simples, o windows além de ser um sistema de código fechado onde o número de pessoas trabalhando para o tornar seguro é muuuito menor que o número de pessoas para o tornar inseguro. Os sistemas Unix-like já foram concebidos para rodarem os programas como usuários limitados, e por default os dados dos programas são salvos sempre na pasta do usuário, os programas, via de regra, não tem acesso direto ao sistema ou a pastas que eles não pertencem, sem falar que como a maioria dos programas são free ou opensource o uso de programas com crack é próxima do zero.
Mas o que acontece é que a Microsoft que não é bilionária à toa vem modernizando o seu sistema operacional gradativamente aos moldes de segurança Unix, o UAC nada mais é do que um sistema de permissão Unix-like for windows, isso complicou a vida dos programadores de vírus e malware em geral, e, como se não bastasse as pessoas começaram a usar celulares e tablets com sistemas operacionais muito diferentes um do outro e restritivos quanto ao acesso ao sistema em si. Como esse pessoal não dorme no ponto, novas técnicas como o phising, técnica demonstrada no meu tópico anterior, que clona um site para que o usuário digite os seus dados, e fraudes via e-mail te prometendo prêmios em troca de depósitos ou exigindo o Xerox de todos os seus documentos pessoais e empresas como o Sistema de Trabalho em casa que gera lucro apenas para os seus donos se tornaram comuns.
Os golpes e fraudes ultrapassaram a barreira dos sistemas operacionais e são agora multiplataforma, e com a web 2.0 os recursos que nos concede um conteúdo mais dinâmico e aprimorado nos traz também mais perigo, scripts dinâmicos e programas embutidos em sites maliciosos podem roubar as suas senhas armazenadas e cookies e até mesmo capturar informações sobre os seus gostos pessoais e muito mais! O uso de um sistema operacional mais segura e robusto como os Unix-like te traz uma barreira adicional de segurança, mas se os seus costumes e métodos não forem concientes você pode ser vítima de fraudes do mesmo jeito. Assim como o uso consciente do Windows pode te oferecer segurança, algumas dicas são simples e fáceis de se fazer: Use uma conta de usuário limtada para as tarefas do dia a dia; Instale um navegador diferente do Internet Explorer(não que ele seja mais ou menos seguro, mas porque o IE é um componente do Windows, o que significa que uma falha de segurança pode dar a possibilidade do criminoso invadir a sua máquina diretamente); use um antivírus gratuito e tenha o Clawin a tiracolo para fazer uma varredura periódica no seu computador e, se possível use um cliente de email como o thunderbird que identifica muitos e-mails falsos e procure comprar o seu windows e usar o mínimo possível de programas "Alternativos".
Lembre-se: Segurança não é apenas programas, mas acima de tudo atitudes!

sábado, 19 de setembro de 2009

Segurança? Use Firefox!

Eu dificilmente uso o MSN, mas infelizmente, como a maioria das pessoas o utilizam fui obrigado a abrir uma conta por lá, e hoje, sábado um amigo precisava conversar comigo, então abri o emesene que é um utilitário linux que se comunica com o hotmail entre outros, e um recurso que ele possui é mostrar os e-mails que você recebe pela rede microsoft.
O curioso é que eu não passo esse e-mail para ninguém e bloqueio todos que eu não conheço, a minha lista do hotmail é minúscula com apenas 22 pessoas, mesmo assim, recebo toneladas de SPAM por ele, felizmente não tenho nada de importante por lá, por isso eu nem abro ele, mas hoje por curiosidade abri e qual não foi a minha surpresa ao ver uma mensagem do banco bradesco, o qual eu não tenho conta:




Obviamente eu vi que era uma furada, ainda mais porque o endereço que o link tinha era www.bradesco.com.br, mas redirecionava para outro lugar no rodapé do firefox mostrava www.bradesco.com.br.br/kingdomsldkfr/recadastramento



mesmo assim resolvi clickar no link para ver como eram esses sites, fiquei curioso nunca fui(e espero nunca ser) vítima de phishing, os sites que eu considero importantes como sites de bancos entre outros estão nos meus favoritos e eu acesso somente por lá ou digito eu mesmo o endereço. A boa surpresa foi que o firefox não me deixou entrar no site:



Mas como estava muito curioso para ver a cara do site usei o opera que não me deu nenhum alerta e abriu o site de boa:


Não é apenas por usar linux que a gente está protegido, um usuário menos experiente poderia ter entrado nesse site e digitado a sua senha ou dados para posteriormente o gatuno se aproveitar dele, mas felizmente o firefox deu o alerta , mas fica a dica, cuidado onde clicka!

EDIT: Acabei de testar no IE7 e ele abriu o site também, sem nenhum alerta, como não tenho acesso ao IE8 eu não posso dizer sobre ele, Firefox 3 1 x 0 IE7.