25 novembro 2012

Configurando Rede no CentOS 6.3 virtualizado

Recentemente instalei o CentOS 6.3 e percebi que não pude escolher muitas opções e configurações na instalação. Portanto, muita coisa ficou para ser configurada depois.

Precisei baixar pacotes de instalação de algumas funcionalidades ausentes e percebi que não tinha conexão com a internet. A interface de rede eth0 não estava configurada. Para ver se a sua está presente execute no prompt o comando:

ifconfig

Se só aparecer a interface lo, será necessário configurar a interface eth0. É importante, nesse ambiente virtualizado ter certeza que sua placa está em modo bridge nas configurações da máquina virtual no VirtualBox.

Para configurar a interface eth0 você terá que editar um arquivo de script de configuração de rede. Detalhes aqui. No meu caso o comando foi:

vi /etc/sysconfig/network-scripts/ifcfg-eth0

O arquivo aparecerá na tela para edição. digite i para começar a inserir texto e insira as seguintes linhas:

  • Modifique o valor do ONBOOT de no para yes para que a rede esteja disponível quando o sistema é iniciado.
  • Acrescente o gateway e a mascará (coloque o número IP do seu roteador):
    • GATEWAY=192.168.0.1
    • NETMASK=255.255.255.0
  • Para usar DHCP (o roteador fornece o número IP da máquina) mantenha a linha BOOTPRO="dhcp"
Para salvar as alterações do arquivo no vi tecle esc e digite :wq

Reinicie a máquina e cheque o IP da máquina com ifconfig.

Para fazer a comunicação do sistema windows com o sistema linux execute ping na máquina linux e ping na máquina windows para ver se os dois se veem na mesma rede.

23 novembro 2012

Instalação de Packages Python - Estrutura

Para instalar pacotes python (bibliotecas, etc.) há várias maneiras. Em ambiente Windows recomendo ir por algum desses caminhos:

  • Instalador próprio
  • Distutils
  • Setuptools (EasyInstall)
  • Pip
Para poder usar qualquer um deles vamos deixar nosso ambiente preparado. Distutils já é inerente ao python e qualquer pacote que você baixar que tenha sido criado com distutis poderá ser instalado com a instrução:

python setup.py install

Instalador próprio também se encarregará de tudo.

A vantagem de EasyInstall e Pip é o acesso que eles fazem à internet. Isso facilita muito para instalar pacotes, verificando dependências e pegando sempre a última versão. Para ter os dois rodando na nossa máquina, vamos instalar primeiro o setuptools e a partir dele o pip.

Python possui um repositório gigantesco de pacotes open source conhecido como PyPI (pronuncia-se "paipi") - Python Package Index. Funciona como um catálogo de packages disponíveis online. EasyInstall e Pip consultam o PyPI em busca das últimas versões dos pacotes requisitados.

Vamos instalar então o setuptools, baixando um instalador das páginas web do PyPI: http://pypi.python.org/pypi/setuptools. Baixe o instalador adequado na parte inferior da página (verifique a sua versão do Python e baixe a versão de tipo Windows Installer). Proceda a instalação (a interface é típica dos instaladores gerados com distutils) aceitando as opções padrão.

Para instalar o pip já vamos usar o easy_install. Abra um prompt de comando e simplesmente digite:

easy_install pip

Caso o sistema não identifique o easy_install como um comando válido, acrescente C:\Python27\Scripts\ ao PATH do Windows (este post mostra como chegar lá).

Se tudo deu certo o easy_install vai acessar o catálogo do PyPI e vai baixar da internet a última versão do pacote pip. Depois de baixado ele vai fazer a instalação do pacote.

Pronto, nosso ambiente está bem preparado para instalar pacotes Python que vão facilitar a nossa vida. Na próxima postagem vamos instalar alguns bem importantes.


21 novembro 2012

Minha IDE - parte 4 - vinculando Python e Eclipse-Pydev

Abra o eclipse e clique no menu Window, opção Preferences. Abra a opção PyDev. Clique na opção Interpreter - Python. Vamos incluir o interpretador Python que instalamos na etapa anterior.

Clique em New... Na janela que abriu (Select Interpreter), preencha Interpreter Name: com Python27. Em Interpreter Executable, digite ou localize o arquivo (através de Browse...) o arquivo C:\Python27\python.exe. Confirme tudo com OK.

Uma janela com diversas localizações de bibliotecas vai aparecer. Aceite as configurações padrão, simplesmente clicando em OK.

Clique em Apply, aguarde o processamento, e depois em OK.

Pronto. Python está configurado no Eclipse.


Primeiro projeto

Para testar, vamos criar nosso primeiro projeto em Python.

Antes, vamos abrir a perspectiva do Pydev. Por padrão o eclipse vem preparado para trabalhar com Java (veja que é esta perspectiva que está selecionada bem no canto superior direito). Vamos mudar para a perspectiva do PyDev.

Clique em Window / Open Perspective / Other... Se você instalou o Aptana direitinho uma das perspectivas disponíveis será a PyDev. Selecione PyDev e OK. O eclipse informará que vai colocar algumas configurações padrão do Git (controle de versão). Clique em OK. As configurações serão aplicadas automaticamente.

A tela e as barras de ferramentas mudaram um pouco e a perspectiva selecionada (canto superior direito) agora é PyDev.

Vamos criar o projeto. Clique no menu File / New / PyDev Project. Se você configurou tudo certo na primeira etapa, a pasta E:\TI\Projetos é a sua pasta padrão e por isso você não precisa informar o diretório. Deixe Use Default marcado. Coloque em Project Name: o nome do projeto: TestePrimos. Em Project Type certifique-se que Python está selecionado e em Grammar Version, mantenha 2.7. Em Interpreter selecione o interpretador cadastrado por você anteriormente, isto é, Python27. Escolha a opção Create 'src' folder and add it to the PYTHONPATH. Clique em Finish.

Na sua lista de projeto à esquerda vai estar disponível o projeto TestePrimos. Expanda o projeto clicando no sinalzinho de mais ao lado do nome do projeto. A pasta src conterá os seus módulos de código fonte. Por isso clique com o botão direito sobre a pasta src e clique em New / Pydev Module.

Em Name escreva primos. Deixe Package em branco. Template mantenha <Empty>. Clique em Finish.

No módulo (centro da tela) copie o código abaixo (pode apagar qualquer coisa que já existia escrita no módulo):
def eh_primo(a):
    x = True
    for i in range(2, a):
        if a % i == 0:
            x = False
            break
    return x


for i in range(1,1001):
    if eh_primo(i):
        print i, 'primo'
    else:
        print i

Não esqueça que em Python a indentação(deslocamento das linhas) é fundamental. Execute o código que você digitou teclando Ctrl+F11 ou clicando no botão verde com um símbolo de Play na barra de ferramentas. O código será executado e na parte inferior da tela serão impressos os números de 1 a 1000 indicando se é primo ou não ao lado.

Na próxima postagem vamos instalar algumas bibliotecas para o Python.

Minha IDE - Parte 3 - Instalando o Python 2

Há duas famílias da linguagem Python coexistindo atualmente. A família Python 2 e a família Python 3. Python 3 é mais moderno e apresenta muitos avanços. Python 2 é mais compatível com outras tecnologias que ainda não migraram para Python 3 como é o caso do Django. Como utilizo Django e também outras bibliotecas ainda não portadas para Python 3, minha instalação principal é a versão Python 2.7.3 (a última da família 2). Nada impede de instalar também o Python 3, mas a versão de trabalho é a versão 2.

Para começar a instalar o Python em um ambiente Windows, faça o download no site da Python Software Foundation - http://www.python.org/ - e acesse a área de download. Baixe a versão do Python 2.7.3 adequada ao seu sistema operacional (notem que, para Windows, há uma versão 32 e uma 64 bits). Prefira as versões com a palavra "Installer" que já vem com um conveniente instalador para facilitar o processo.

Execute o instalador certificando-se de instalar na pasta C:\Python27\ (que é a pasta padrão oferecida pelo instalador). Utilize todas as opções padrão. Note um agradecimento a Mark Hammond. Sem ele, python nunca seria a maravilhosa ferramenta que é para o ambiente Windows. Ao final da instalação simplesmente clique em Finish. Pronto, o Python está instalado.

Para acessar o interpretador Python de qualquer lugar no sistema, inclua uma entrada no PATH do sistema. No Windows 7, procure Computador e acesse  as propriedades do computador clicando com o botão direito e clicando sobre a opção Propriedades. Vá em Configurações Avançadas do Sistema e, na guia Avançado, clique em Variáveis de Ambiente... Na parte de cima estão as variáveis de usuário e na de baixo as do sistema. A diferença é que na primeira a configuração só valerá para você e na segunda valerá para todos os usuários daquela máquina. A inclusão do caminho pode ser feita tanto em um como no outro. Localize a variável Path ou PATH. Caso não exista, crie clicando em Novo... Caso já exista selecione e clique em Editar... Não apague o que já estiver ali. Simplesmente inclua, caso não exista, uma entrada C:\Python27\ separada das outras por ponto-e-vírgula (;). Salve tudo e reinicie a máquina.

Se tudo estiver certo, você pode abrir um prompt de comando (digite cmd e tecle enter na caixinha bem embaixo do menu principal do Windows 7). Escreve python no prompt de comando. Se tudo deu certo aparecerá o prompt do Python (>>>) digite 3 * 3 e dê enter. O resultado 9 deverá aparecer. Digite quit() para voltar ao prompt do Windows. Tudo funcionou corretamente. Na próxima postagem, vamos vincular o Python ao Eclipse - Pydev.

16 novembro 2012

Minha IDE - Parte 2 - Configurando o Eclipse

No eclipse, clique no menu Window e na opção Preferences.

Há muitas opções, cada uma com diversos subitens. Deixe intactas as que não forem mencionadas aqui.

  1. General / Editors / Spelling - desabilite a opção Enable Spell Checking. Clique em Apply.
  2. General / Workspace - Na opção Text file encoding deve estar selecionado o Default (Cp1252). Mude para Other e escolha a opção UTF-8. Clique em Apply.
  3. Aptana Studio / Themes - Aqui a primeira coisa é importar um tema modificado que se aplica adequadamente a todos os tipos de desenvolvimento. Baixe, clicando com o botão direito no link e seguindo a opção Salvar Como.... Salve em qualquer lugar do seu computador e depois utilize a opção Import para importar o tema para o seu eclipse. Certifique-se de que a fonte é Consolas 10 pt. e habilite as opções Apply to all (non-Studio) views e Apply to all (non-Studio) editors. Clique em Apply.
  4. Clique em OK para finalizar as configurações. O Pydev nós vamos configurar depois que tivermos instalado o Python.

Se, ao finalizar, o eclipse perguntar alguma coisa em termos de criar um arquivo .ssh, etc. responda Yes.

Na próxima parte vamos instalar o Python e aí configurar o Pydev.

Configuração da minha IDE personalizada

Vou registrar aqui toda a configuração que utilizo como IDE para desenvolvimento web (HTML5, PHP, Django) e Python. Pressupondo ambiente Windows.

A base de tudo é o Eclipse com plugin Aptana.

Neste post vou explicar somente como obter e instalar o eclipse e o aptana. No próximo post mostrarei a  minha configuração pessoal. Dessa vez, só instalação. Vamos lá! Primeiro a instalação do Eclipse:

  1. Crie uma pasta simples de digitar quando precisar usar linha de comando. Evite colocar qualquer coisa naquelas pastas do tipo "Documents and Settings" ou "Arquivos de Programas". Só a presença do espaço já é uma dor de cabeça. Crie no drive E ou no drive C uma pasta "TI" e dentro dela uma pasta "apl". Ou seja você ficará com o caminho "E:\TI\apl".
  2. Vá até a página de downloads do site eclipse.org e baixe a opção Eclipse Classic (normalmente é a segunda opção com mais downloads). Baixe a versão 32 bits se o seu windows é 32 bits ou versão 64 bits se o seu windows é 64 bits. O pacote baixado é um arquivo zip.
  3. Extraia o conteúdo dessa pasta para dentro da pasta E:\TI\apl. Ali será criada uma pasta "eclipse" que contém todo o programa eclipse. Para acessar o programa, duplo-clique no arquivo eclipse.exe. Crie um atalho para esse executável na sua área de trabalho.
  4. Ao abrir o eclipse ele perguntará por uma pasta para colocar as configurações do seu workspace. Crie uma pasta E:\TI\Projetos e use esta pasta como padrão.
  5. Na tela de entrada do eclipse, procure o atalho para Workbench e clique nele. A sua IDE estará visível, preparada para desenvolvimento em Java.
Como queremos usar o eclipse para desenvolver em Python e para desenvolvimento web, precisamos instalar o plugin Aptana. O legal é que o pydev (IDE python para eclipse) vem integrado no plugin Aptana. Portanto, quando instalarmos o Aptana, o Pydev estará instalado. Vamos ao passo a passo:

  1. Abra o eclipse. No menu Help, escolha a opção Install New Software...
  2. No campo Work with: digite http://download.aptana.com/studio3/plugin/install e tecle Enter.
  3. No campo grande, abaixo, deverá aparecer uma caixa de seleção com o nome Aptana Studio 3. Clique nessa opção e em seguida clique em Next.
  4. Clique em Next novamente e aceite os termos do contrato. Depois de aceitar os termos do contrato clique em Finish.
  5. O software será instalado progressivamente importanto pacotes da internet. Aguarde o término da instalação. Quando terminar o programa perguntará se deseja reiniciar o eclipse para que as mudanças ocorram. Responda Yes. O eclipse reiniciará já com o Aptana instalado.
Pronto. A instalação está feita. No próximo post passaremos para as configurações e personalizações.

08 agosto 2012

Erro causado por hashtag em templates jinja

Caso você esteja usando jinja para geração de todo tipo de documentos a partir de templates e tenha se deparado com um erro desse tipo

jinja2.exceptions.TemplateSyntaxError: Missing end of comment tag

causada por uma hashtag logo depois de uma chave ("{#") a solução é bastante simples. Basta "enganar" o parser do jinja. O parser acha que você está abrindo um comentário que em jinja tem a sintaxe {# ... #}. Para que o parser não veja aquilo como comentário, separe a chave da hashtag com um espaço ("{ #"). Isso deve resolver o problema.

28 julho 2012

Compilando meu próprio plugin para QtSql - driver QMYSQL

Que sofrimento!

Um processo longo de tentativa e erro... Tudo começou quando eu quis usar o driver QMYSQL do PySide (tenho usado PySide em lugar do PyQt por causa da licença LGPL). Quando fui usar o driver, quem disse que ele está disponível?

Simplesmente não há driver disponível na instalação padrão do PySide.

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC3 QODBC QPSQL7 QPSQL 

Esta foi a mensagem que recebi. Pesquisando descobri que eu mesmo teria que compilar um driver para mim. Tenho a biblioteca qt instalada, por isso resolvi aceitar o desafio. Mas foi difícil. A melhor receita é a que eu mesmo sugeri no stackoverflow.

Ou seja, a receita básica é esta:

cd %QTDIR%\src\plugins\sqldrivers\mysql
qmake "INCLUDEPATH+=C:\MySQL\include" "LIBS+=C:\MYSQL\MySQL Server \lib\opt\libmysql.lib" mysql.pro
nmake

Bom, o que é necessário então é ter o VC++ 2008 Express instalado, a biblioteca Qt instalada e o MySql instalado e aí as dicas são:

  • Use o prompt do VC++ e não o prompt comum do windows.
  • O qmake usa o gcc por padrão. Por isso use -spec win32-msvc2008 logo depois do qmake para que o compilador da Microsoft seja utilizado.
  • Caso no item anterior o sistema indicar que mkspecs não foi encontrado em um caminho bem estranho (C:\qt-greenhouse\Trolltech\Code_less_create_more\Trolltech\Code_less_create_more\Troll\4.6\qt) simplesmente reproduza todo esse caminho na sua máquina e copie toda a pasta mkspecs para lá. Tudo indica que isso é um bug no Qt.
  • Os caminhos que contém espaços complicam tudo. Use dir /x para ver como ficam os nomes no padrão 8.3.

Depois de muita luta, a minha instrução final, que funcionou ficou assim:
F:\Qt\2010.05\qt\qmake\qmake -spec win32-msvc2008 "INCLUDEPATH+=C:\PROGRA~1\MySQL\MYSQLS~1.5\include" "LIBS+=C:\PROGRA~1\MySQL\MYSQLS~1.5\lib\libmysql.lib" mysql.pro
Como o qmake não está no path tive que usar o caminho completo.

Depois na hora do nmake vi que faltava toda a biblioteca Qt compilada. Por isso tive que compilá-la usando configure. Veja as instruções nesta página. Não precisa remover tudo que o autor removeu ali.

O importante para mim era conseguir o arquivo QtSql4.lib. E, mesmo com alguns erros na compilação do Qt, no final das contas ele estava ali. Resolvi arriscar e fiz o nmake na pasta do plugin e aí finalmente deu certo. De posse da minha preciosa DLL - qsqlmysql4.dll - coloquei-a com todo carinho em C:\Python27\Lib\site-packages\PySide\plugins\sqldrivers e quanto testei no meu aplicativo em PySide, dessa vez funcionou! Foi difícil, não relatei todos os problemas aqui, mas agora tenho um driver funcional para acesso a banco de dados MySQL diretamente no Qt.

17 julho 2012

Máquina Virtual Virtualbox não inicia

Caso você esteja enfrentando o mesmo problema que eu enfrentei, de após uma atualização do VirtualBox não conseguir mais acessar a máquina virtual com o maldito erro VERR_LDR_MISMATCH_NATIVE, a solução, encontrada aqui, é apagar a pasta C:\USERS\\AppData\Local\VirtualStore\Program Files\Oracle com todas as subpastas.

É só fazer isso que a máquina virtual volta a funcionar normalmente.