Boas Vindas

February 3, 2009 · Posted in Perl · View Comments 

Pessoal, é com grande prazer que eu dou as boas vindas ao nosso mais novo editor: SmokeMachine, do perl-e.org.

Ele é um dos grandes nomes do Perl no Brasil e agora estará aqui com a gente trazendo artigos e tirando dúvidas mais focadas aos iniciantes na linguagem Perl.

Seja Bem Vindo, e muito sucesso!

Perl Dirty Job

January 15, 2009 · Posted in Bla Bla Bla, Perl · View Comments 

A piada não é minha, os trocadilhos que vem dela também não, mas vejam mais um exemplo da São Paulo Perl Mongers trabalhando pela cidade…

Read more

Faxina depois da festa

December 16, 2008 · Posted in Perl · View Comments 

“Não só de regex vive o monge, mas de todo módulo que há no CPAN.”

Recentemente fui incumbido da ingrata tarefa de realizar determinada atividade de trás para frente. O bom senso nos diz que a melhor hora para higienizar (ou sanitizar) dados em um sistema é em algum momento antes de eles entrarem na base de dados. Isso poupa enormes dores de cabeças, inclusive por SQL Injection.

Read more

Membros privados em estruturas C

May 18, 2008 · Posted in C/C++ · View Comments 

Esta semana, lá no trabalho tive mais uma prova de que paradigma de programação é algo completamente independente de linguagem, ou seja, não é pelo fato de você estar programando em C++, compilando com o g++ que o seu código vai ser orientado a objetos, tão pouco, se você programa em ANSI C o seu código obrigatoriamente vai ser estruturado ou você estará impedido de programar orientado a objetos.

Read more

Eclipse + Qt + svn

May 9, 2008 · Posted in C/C++, Qt, Subversion · View Comments 

Mais como log pessoal do que um tutorial, senti a necessidade de deixar num local de fácil acesso, as etapas de configuração do eclipse para meu próprio uso, ou seja, a instalação do eclipse e dos plugins que eu normalmente uso (svn e qt).

Os comandos que afetam diretórios fora de seu home, precisarão de permissão de superusuário.

Se você resolveu instalar o eclipse apartir dos pacotes disponíveis em sua distribuição, pode pular direto para o passo #2.

Passo #0: Instalação do Java

Para que o eclipse funcione, vc precisa do Java Runtime Environment (JRE) instalado *E* configurado.

O JRE pode ser baixado direto do site da Sun http://java.sun.com/javase/downloads/index.jsp. Instruções completas de instalação e configuração podem ser encontradas em http://java.sun.com/javase/6/webnotes/install/index.html, para o caso do JRE 6.

Passo #1: Donwload e instalação do eclipse

O eclipse pode ser facilmente baixado a partir da área de downloads no seu site oficial: http://www.eclipse.org/downloads. Após o download, basta descompactá-lo e sair usando. No meu caso eu usei:

user@host$ tar -xvzf eclipse-cpp-europa-winter-linux-gtk.tar.gz -C /usr/local

Se tudo deu certo o executável do eclipse estará em /usr/local/eclipse/eclipse, daí é só criar um link/atalho/whatever no seu ambiente gráfico favorito.

Passo #2: Download e instalação do plugin de integração com o QT


Qt Eclipse Integration
Qt Eclipse Configuration

O plugin que eu atualmente uso é o fornecido pela própria Trolltech. Nele você pode gerenciar os seus arquivos de projeto a partir de um pequeno editor gráfico, e ainda se preferir, tem acesso direto ao arquivo .pro.

O download pode ser feito a partir de http://trolltech.com/developer/downloads/qt/eclipse-integration-download, e a instalação cujas instruções completas podem ser encontradas em http://trolltech.com/developer/downloads/qt/qteclipse-installmanual, é complicadíssima:

user@host$ tar -xvzf qt-eclipse-integration-linux.x86-gcc3.3-1.4.0.tar.gz -C /usr/local

Se tudo deu certo, os arquivos do plugin foram copiados para o diretório /usr/local/eclipse/plugins.

Nota: Para quem optou pela instalação do eclipse através dos pacotes da distribuição, atenção!!! Dentro do arquivo compactado, há o diretório eclipse/plugins/, e dento dele os arquivos do plugin, que devem ser copiados para o diretório de plugins da instalação do seu eclipse, normalmente /usr/lib/eclipse/plugins.

Após a instalação, inicie o eclipse com o comando:

user@host$ /usr/local/eclipse/eclipse -clean

Agora, vá em Window>Preferences>Qt e ajuste a versão e os “pathes”, de acordo com a sua instalação do Qt.

Para ficar mais cômodo, se você invoca o eclipse direto da linha de comando, adicione o diretório do seu executável na variável de ambiente $PATH, dentro de algum dos scripts de inicialização (.bash_profile)

export PATH=$PATH:/usr/local/eclipse

Passo #3: Subversion

No eclipse vá em Help>Softwares Updates>Find and Install. Marke a opção Search for new features to install e clique em Next. Agora adicione os sites remotos:

Buckminster

http://download.eclipse.org/tools/buckminster/updates

SubClipse

http://subclipse.tigris.org/update_1.2.x

Marque os respectivos checkboxes, e clique em Finish. Depois de uma pequena consulta à internet, é só marcar o plugin e dependências e correr pro abraço.

Iniciando no QT, parte III – qmake e .pro

May 7, 2008 · Posted in C/C++, Qt · View Comments 

Neste terceiro post sobre QT vamos falar do utilitário qmake e dos arquivos de projeto *.pro. Vamos entender para que serve o qmake e como configurar diferentes tipos de projetos.

O qmake

O qmake é um utilitário que acompanha o framework QT. Sua função é parsear um arquivo de projeto (*.pro) e gerar um Makefile já com as regras do moc, uic e opções do QT embutidas. Sem ele por exemplo, teríamos que chamar o moc explicitamente para criar os arquivos moc_* e passar explicitamente para o compilador e linker, as opções corretas para incluir o QT aos nossos projetos.

A documentação oficial sobre o qmake e arquivos de projeto, pode ser encontrada aqui.

Arquivos de projeto *.pro

Para criar um arquivo de projeto simples pela linha de comando, entramos no diretório do projeto e digitamos:

user@host$ qmake -project

Feito isso, será criado um arquivo com o mesmo nome do diretório corrente, seguido da extensão .pro. Caso já existam nesse diretório arquivos reconhecidos pelo qmake, como arquivos de códigos fontes (.h, .cpp), forms (.ui), etc, eles serão automaticamente adicionados ao arquivo de projeto.

Criado o arquivo .pro, ao executarmos qmake sem argumentos ele tentará parsear um arquivo .pro com o mesmo nome do diretório corrente. Você ainda pode especificar um arquivo de projeto alternativo como argumento para o qmake. Se tudo deu certo, um arquivo Makefile foi criado, e com um simples make, podemos compilar o projeto.

Os arquivos de projeto são arquivos de texto normais, contendo macros e diretivas que serão interpretadas pelo qmake para criar o Makefile. A lista completa de opções pode ser encontrada na documentação online. As mais comuns são:

TEMPLATE: Indicam o tipo de projeto. Use ‘app’ para proramas executáveis ou ‘lib’ para criar bibliotecas.

CONFIG: Adicionam opções diversas ao projeto. Entre elas, ‘debug’ para adicionar informações de depuração, ‘staticlib’ em conjunto com o template ‘lib’, para que abiblioteca criada seja estática (.a no linux).

TARGET: O nome e a localização do alvo, ou seja, do aplicativo ou biblioteca.

MOC_DIR: Diretório onde serão grados os arquivos moc_*. Útil para não poluir o diretório de códigos fontes.

OBJECTS_DIR: Complementar à opção anterior, indica o diretório onde serão gerados os aquivos de código objeto (*.o).

INCLUDEPATH: Diretórios externos onde existem headers que serão utilizados no projeto, como headers de bibliotecas externas.

DEPENDPATH: Diretórios de códigos fontes externos que serão utilizados pelo projeto.

HEADERS: Os arquivos de cabeçalho do projeto (*.h).

FORMS: arquivos de interface gerados com o QtDesigner (*.ui).

SOURCES: Os arquivos de implementação de código fonte do projeto (*.cpp).

LIBS: Bibliotecas externas utilizadas pelo projeto. -L indica o path para a biblioteca, e -l diz o nome da biblioteca.

QT: Módulos do QT que devem ser adicionados/excluidos do projeto. Se for passado ‘QT =’ (QT igual vazio), nenhum módulo QT será utilizado no projeto.

SUBDIRS: Utilizado em conjunto com o template ‘subdirs’, indica os subdiretórios ons o qmake deve procurar por outros arquivos de projeto.

Com isso em mãos podemos criar algums projetos simples.

Um aplicativo simples:

# O primeiro caracter desta linha cria um comentário
# O nome deste arquivo é 'app.pro'
TEMPLATE     =  app            # Nosso template é um aplicativo chamado
TARGET       =  bin/myapp.bin  # myapp.bin, dentro do dir ./bin
MOC_DIR      =  tmp/moc        # Diretório para mocs, opcional
OBJECTS_DIR  =  tmp/obj        # Diretório para código objeto, opcional
HEADERS      += myclass.h      # Header da classe MyClass
SOURCES      += main.cpp      # Utilize  para organizar os arquivos em
                myclass.cpp    # várias linhas.

Uma biblioteca simples:

# O nome deste arquivo é 'lib.pro'
TEMPLATE     =  lib            # Nosso template é uma biblioteca
CONFIG       += dll            # dinâmica, chamada
TARGET       =  lib/mylib      # mylib, dentro do dir ./lib
MOC_DIR      =  tmp/moc        # Diretório para mocs, opcional
OBJECTS_DIR  =  tmp/obj        # Diretório para código objeto, opcional
HEADERS      += myclass.h      # Header da classe MyClass
SOURCES      += myclass.cpp    # Implementação da classe MyClass

Um aplicativo que usa uma biblioteca externa:

# O nome deste arquivo é 'mixed.pro'
TEMPLATE     =  app            # Nosso template é um aplicativo chamado
TARGET       =  bin/myapp.lkd  # myapp.lkd, dentro do dir ./bin
MOC_DIR      =  tmp/moc        # Diretório para mocs, opcional
OBJECTS_DIR  =  tmp/obj        # Diretório para código objeto, opcional
INCLUDEPATH  += .              # Dir onde estão os Headers da lib externa
SOURCES      += main.cpp       # Implementação do aplicativo.

Diretórios aninhados:

Para utilizarmos diretórios aninhados, precisamos de um arquivo de projeto no diretório atual, e outro no subdiretório.

No diretório atual, utilizamos as opções:

TEMPLATE = subdirs
SUBDIRS  = [lista de subdirs para serem compilados em sequência]

Caso seja fornecido apenas o nome do diretório, ele precisa conter uma arquivo de projeto com o seu próprio nome. É possível no entando, informar diretamente na lista de subdiretórios, um diretório seguido por um arquivo de projeto com quaquer nome.

O código fonte completo dos exemplos abordados neste tutorial pode ser encontrado aqui.

Concluindo

O qmake é uma ferramenta simples e muito poderosa que facilita enormemente a vida de quem tem de gerenciar aŕvores de projeto complexas, mesmo que o projeto não utilize QT (basta acrescentar no final a opção ‘QT = ‘). Adicione a isso o fato de os arquivos de projeto terem uma sintaxe bastante simples e até certo ponto intuitiva. Se você precisar de ajustes mais finos, a documentação online lhe dará uma dezena de opções para se divertir.

Com QT ou sem QT, o qmake é sempre uma boa opção para gerenciamento de árvore de build.

Encontro Técnico da rio.pm

April 15, 2008 · Posted in Eventos, Perl · View Comments 

No dia 26 de abril de 2008 a partir das 10:00 hs, no sexto andar da UERJ, será realizado o próximo encontro técnico da rio.pm.

Teremos palestras e oficinas abordando Perl e Smalltalk entre outros assuntos, e ainda contaremos com a presença do Randal Schwartz, figurinha carimbada dos nossos ES.

Entrada franca.

Você pode conferir a grade de palestras através desse link.

As dúvidas podem ser respondidas na nossa Lista de Discussão.

O endereço completo da UERJ é:

Campus Francisco Negrão de Lima – Maracanã
Endereço: Rua São Francisco Xavier, 524 – Maracanã – Cep: 20550-013
Telefone Geral: (21) 2587-7100

« Previous PageNext Page »