Adriano Melo

Fazendo uma instalação portable de python para linux!

by Adriano Melo on mai.22, 2010, under Linux, python

Que tal ter a sua instalação de python no pendrive para usá-la em qualquer computador com linux?

Esse artigo é uma reação à dificuldade encontrada por alguns alunos do centro de informática em usar softwares que não são instalados por padrão nos computadores do laboratório de graduação do centro e que são necessários para o desenvolvimento de projetos ou para estudo.

Vamos lá! A demostração será como fazer isso com python, que é uma linguagem de programação, mas a ideia é que você possa reproduzir esses passos para outros softwares.

Primeiro vamos criar a pasta onde os arquivos serão baixados e instalados. Uma sugestão é colocar no seu pendrive mesmo. Vou referenciar PEN como sendo o nome do dispositivo montado.

# indo para a pasta raiz do pendrive.
cd /media/PEN/
# criando a pasta onde vão ficar os arquivos-fonte dos programas e os binários pós-instalação
mkdir programas
# movendo para dentro da pasta programas
cd programas

Agora vamos baixar e descompactar o interpretador python diretamente do site oficial, python.org. Note que a operação de descompactar o arquivo pode demorar um pouco, devido à quantidade de arquivos e a velocidade dos pendrives normalmente não ser alta.

# baixando o python
wget http://www.python.org/ftp/python/2.6.5/Python-2.6.5.tar.bz2
# descompactando os arquivos do interpretador
tar -xf Python-2.6.5.tar.bz2
# entrando na pasta onde os arquivos foram descompactados
cd Python-2.6.5.tar.bz2

Vamos agora compilar o código fonte! note o parâmetro –configure=/media/PEN/programas, está sendo usado para indicar que a instalação do programa deverá ser feita na pasta /media/PEN/programas. Isso é necessário pois a idéia de fazer uma instalação portable é justamente para que você possa fazer isso de qualquer computador e sem precisar privilégios especiais para isso.

# Configuração da instalação...
./configure --prefix=/media/PEN/programas
# Compilando os arquivos...
make
# Instalando os arquivos...
make install

No último passo da instalação o make retorna um erro. Esse erro é mostrado em sistemas de arquivos fat32, fat16 ou ntfs, onde não é possível criar links. Caso o erro não seja o que está sendo mostrado abaixo então você realmente teve um problema no processo de compilação.

(cd /media/PEN/programas//bin; ln python2.6 python)
ln: criando ligação absoluta "python" => "python2.6": Operação não permitida
make: ** [bininstall] Erro 1

Pronto! com esses passos bem sucedidos você já tem a sua instalação portable de python. Basta agora dizer ao terminal que você usará os binários gerados por essa compilação. Uma das formas de fazer isso é incluindo na variável de ambiente a pasta com os arquivos binários.

# setando a variável de ambiente
export PATH=/media/PEN/programas/bin:$PATH

Para verificar se tudo deu certo, digite o comando “which python2.6″, a saída deverá ser parecida com a abaixo:

[adriano@adrianomelo bin]$ which python2.6
/media/ASTM/programas/bin/python2.6
[adriano@adrianomelo bin]$

O bom de ter uma instalação portable é que você só precisa configurar a sua instalação uma vez. Para quem usa alguma biblioteca que não vem na instalação padrão de python, é uma mão na roda! Eu vou instalar o pacote numpy como demonstração.

# Mudando de diretório para a pasta /media/PEN/programas
cd /media/PEN/programas
# baixando numpy
wget http://downloads.sourceforge.net/project/numpy/NumPy/1.4.1/numpy-1.4.1.tar.gz?use_mirror=ufpr
# descompactando os arquivos
tar -xf numpy-1.4.1.tar.gz
# entrando na pasta que acabou de ser descompactada
cd numpy-1.4.1
# compilando a biblioteca
python2.6 setup.py build
# instalando a biblioteca
python2.6 setup.py install

Popularity: 8% [?]

1 Comment :, , , , , more...

Quero ter minha própria sintaxe!

by Adriano Melo on mai.20, 2010, under Ciência da Computação, Desenvolvimento, Teoria e Implementação de Linguagens Computacionais (if688)

Um problema difícil de ser solucionado e que é recorrente para alguns desenvolvedores é de ter um arquivo que atenda a uma sintaxe bem específica em seus projetos de software.

O HTML, por exemplo, possui uma sintaxe bem característica que é de ter uma árvore de conceitos encadeados e encapsulados por “tags”.

Como fazer um programa ou aplicação que tenha arquivos com uma sintaxe singular e que possa ser complexo em relação às regras, e ainda assim legíveis e organizados?

A resposta, que é o motivo desse post, empresta alguns conceitos de compiladores. As duas primeiras etapas de um projeto de compilador são as análises léxica e sintática. A análise léxica identifica palavras-chave nos dados de entrada, e a análise sintática explora as regras definidas para a sua linguagem utilizando as palavras-chave encontradas na fase anterior.

Se o seu projeto é em C, existem duas ferramentas que são as mais difundidas e utilizadas: o lex para análise léxica e o yacc para análise sintática. Essas duas são as ferramentas mais tradicionais, elas foram reescritas e há versões mais recentes com mais suporte da comunidade e documentação atualizada. São os projetos flex e bison, o primeiro substitui o lex, e o segundo o yacc.

Para a linguagem python existem os projetos plex, antlr, ragel e outros.

Em java você pode usar o antlr, jflex, jlex, BYACC/J.

Uma lista mais completa de desses tipos de ferramentas pode ser encontrada através do link: http://en.wikipedia.org/wiki/List_of_parser_generators

Popularity: 8% [?]

1 Comment more...

Vídeo aulas sobre o Zend Framework

by Adriano Melo on jan.28, 2010, under Desenvolvimento, php

Eu sempre tive vontade de aprender um framework para PHP mas nunca soube como começar.
Trabalhando na Wenetus percebi que precisava aumentar a minha produtividade e organização em projetos mais complexos.

A estrutura que eu costumo usar é muito flexível para projetos pequenos, como plugins do wordpress ou integração de uma lógica com um template, que é basicamente usar um “Front Controller” e separar o código de dados, do html e da lógica da aplicação, que é o padrão arquitetural MVC.

Atualmente estou implementando, como freelancer, um sistema de controle de produção de camisetas online. Um sistema desse porte precisa ser muito bem estruturado e objetivo, daí a importância de usar um framework. Eu escolhi o Zend Framework pois é maduro para se usar em empresas e possui vasta documentação.

Eu já aprendi todos os conceito básicos do framework por vídeo aulas, a partir do site http://www.zendcasts.com. Mas a dica vai só para quem tem o domínio da língua inglesa, todos os vídeos são em inglês e não possuem legenda ou tradução.

Gostei tanto dos “web casts” (vídeos) que já baixei todos os disponíveis e assisti quase todos, são mais de 3 GB para baixar!

Pasta com os vídeos do zendcast

Se você sabe inglês e deseja aprender um framework para PHP, a dica está dada!

Popularity: 19% [?]

1 Comment :, , , , , , more...

Monitoria de Sistemas Inteligentes

by Adriano Melo on nov.11, 2009, under Centro de Informática, Ciência da Computação

Apresentações

Documentação Oficial das Ferramentas

Scripts para estudo

Downloads

Jess

Protégé

Ontologias biológicas

Popularity: 22% [?]

Leave a Comment :, , , , , more...

Flash CS4 no Ubuntu 9.04

by Adriano Melo on mai.13, 2009, under Desenvolvimento, actionscript

O ubuntu 9.04 está muito bom! finalmente eu posso usar dois monitores nativamente. Além de ter um sistema muito rápido, cerca de 3 vezes mais rápido que o windows vista (o outro S.O. que tenho instalado no meu computador).

Só essas duas funcionalidades já me fizeram migrar definitivamente para o Linux. Mas como nem tudo são flores, há o problema da portabilidade de softwares que não funcionam no linux. Os dois principais para mim são o Flash CS4 ou CS3 e o Visual Studio 2008. Esses dois programas são essenciais pois o primeiro eu uso para projetos da faculdade e o segundo para um sistema que desenvolvo para uma empresa de pernambuco.

Soluções???? tentei várias!!

Começando pelo wine com o flash CS4, não consegui. Tentei a versão portável e a normal….

Tentei em seguida usar o vmware. Esbarrei em um problema crítico: desempenho! O meu computador usa um processador Turion com 1,5GB de memória RAM. Muito pouco para firefox + linux + windows + flash…

A terceira solução foi usar o rdesktop. Remote Desktop do windows. O único probleminha é que você tem que ter um computador extra para fazer isso….

Para quem tiver um computador que tenha windows para usar como uma “máquina virtual” no linux você pode usar um comando parecido com esse:

rdesktop 192.168.0.1 -u “Adriano Melo” -g 1230×920 -x l -r clipboard:CLIPBOARD -a 24

O que eu mais gostei nessa solução é que não consome muito os recursos da máquina cliente (linux). Ela meio que balanceia a carga entre os dois computadores, o servidor roda o flash, que consome muita memória, e no cliente você pode usar o firefox, MSN…

Abaixo segue um printscreen do flash rodando:

Flash CS4 on Ubuntu 9.04

Popularity: 24% [?]

Leave a Comment more...

Como instalar o oracle xe no linux

by Adriano Melo on jan.13, 2009, under Uncategorized

Hoje estava com a tarefa de instalar ASP.NET em um servidor debian para um website que estou desenvolvendo. Instalei o mono, e irei instalar daqui a pouco o mod_mono. Mas tinha um problema crucial: Qual bando de dados usar?

No Visual Studio 2008 por padrão existem esses tipo de conexões:

  • Microsoft Access Database File
  • Microsoft ODBC Data Source
  • Microsoft SQL Server
  • Microsoft SQL Server Compact 3.5
  • Microsoft SQL Server Database File
  • Oracle Database

Qual deles podem ser usados no linux?

Nos meus conhecimentos até 1 hora atrás, nenhum.

Então, instalei o Connector para MySQL. Mas não foi uma boa ideia… para algumas coisas ele não é tão redondo quanto o SQL Server (óbvio).

Depois de algumas experiências não muito bem sucedidas com o MySQL, fui ver se existia algo do oracle para linux, e existe!!!

Fui seguir esse tutorial então:

http://www.cognovis.de/developer/en/oracle-xe-installation

Mas ao adicionar uma chave para o repositório do oracle tive esse problema: “Cannot write to `RPM-GPG-KEY-oracle’ (Broken pipe)

Então, caso queira instalar o oracle no linux, esses passos serviram para mim:

wget http://oss.oracle.com/debian/dists/unstable/main/binary-i386/libaio_0.3.104-1_i386.deb

dpkg -i libaio_0.3.104-1_i386.deb

wget http://oss.oracle.com/debian/dists/unstable/non-free/binary-i386/oracle-xe-universal_10.2.0.1-1.1_i386.deb

dpkg -i oracle-xe-universal_10.2.0.1-1.1_i386.deb

wget http://oss.oracle.com/debian/dists/unstable/non-free/binary-i386/oracle-xe-client_10.2.0.1-1.2_i386.deb

dpkg -i oracle-xe-client_10.2.0.1-1.2_i386.deb

/etc/init.d/oracle-xe configure

echo “source /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh” >>/etc/profile

su – oracle

sqlplus system

Se tudo deu certo, você estará na tela do sqlplus pronto para fazer suas consultas. Para melhorar a segurança eu criei um usuário para o banco de dados do site com os comandos:

create user meusite identified by minhasenha;

grant create session, create table, create procedure, create sequence, create view, create trigger, create type, dba to meusite;

connect meusite/minhasenha;

Ainda vou ver se o oracle vai funcionar redondo com o mono, mais isso já é outra estória…

Popularity: 26% [?]

4 Comments more...

[p1] Desenvolvendo com PHP, Como Obter ajuda

by Adriano Melo on set.02, 2008, under Desenvolvimento, php

Primeiro, para aprender a programar em php você tem que ter um bom material de auxilio para lhe guiar e ensinar. Eu sempre leio, ou tento ter, a documentação oficial. No caso do PHP é essa:

Em posse desse documento você já tem tudo para dar os passos iniciais. Têm muitas coisas que são avançadas também, mas há ferramentas que você tem que conhecer antes de se aprofundar mais na linguagem.

Outro recurso interessante enquanto estuda é ter a quem perguntar quando tudo estiver dando errado, neste caso uma lista de discussão é muito bem vinda. A mais ativa no brasil é a php-brasil.

Caso nenhum desses dois tenha a sua resposta, ele terá: Gooooooooooooooooooooogle!

E caso o Google não saiba (o que é impossível!!), fala comigo, pois provavelmente o que você está querendo não é algo técnico. (email: adriano @ adrianomelo . com – sem os espaços).

Popularity: 33% [?]

3 Comments more...

[p0] Desenvolvendo com PHP

by Adriano Melo on set.02, 2008, under Desenvolvimento, php

Devido a necessidade de alguns amigos meus da faculdade estarem precisando aprender PHP, eu vou fazer uma série de posts que terão uma introdução para quem quer aprender a linguagem. Mas estarei supondo que quem vai ler já tem uma boa noção sobre programação.

Os assuntos que tentarei fala algo são esses:

  1. Onde obter ajuda (documentação)
  2. Conceitos da linguagem
    1. PHP + HTML
    2. Sintaxe básica
    3. Comentários
    4. Tipos
      1. Booleanos, inteiros, números ponto-flutuante, string, array, objeto, resource.
      2. NULL, pseudo-tipos
    5. Funções
    6. Estrutura de controle
    7. Classes e objetos
    8. Exceções
    9. Referências
  3. Conexão ao MySQL
  4. CakePHP

Estarei à disposição de todos que tiverem alguma dúvida através do email adriano @ adrianomelo . com (sem os espaços).

Popularity: 32% [?]

1 Comment more...

Descontinuação dos projetos Kurumin e Kalango Linux

by Adriano Melo on mar.20, 2008, under Linux

No fórum do clube do hardware, Carlos Morimoto e Leandro Santos anunciaram que os projetos Kurumin Linux e Kalango Linux, ambos nacionais, serão descontinuados.

Olá Pessoal,

Meu nome é Leandro Santos e sou o criador e mantenedor do Kalango Linux. Eu e o Carlos Morimoto havíamos destido de manter os projetos Kalango e Kurumin por não existir até então mais algum motivo plausível para a existência desses projetos, já que hoje em dia temos ótimas opções para Desktop como o Ubuntu, Madriva, Fedora, etc…distros que tem feito um trabalho competente no que se refere à Desktop.

Entrentanto nós sabíamos que o fim dos dois projetos de uma vez seria uma perda enorme para a comunidade nacional, pois os dois projetos já têm o seu público fiel que espera um sistema que use KDE por padrão, que já tenha suporte total ao Português do Brasil e diversas outras características que vocês estão acostumados.

Dentro deste assunto eu fiz a proposta de manter a nova geração do Kurumin chamada Kurumin NG com base no (K)Ubuntu, proposta esta que foi aceita pelo Carlos e que já está em andamento. A princípio é isso que posso falar a respeito do Kurumin NG, de agora em diante vamos manter vocês atualizados a respeito do projeto.

E me ajudem nos testes do novo sistema de Ícones Mágicos que vou postar no fórum.

Leandro, ao ser indagado por que escolheu o (K)Ubuntu para ser a base para desenvolvimento do Kurumin NG (“Next Generation”), respondeu:

A vantagem é que o Ubuntu consegue lançar uma versão estável com “todos” os pacotes atualizados de 6 em 6 meses, enquanto que o Debian normalmente demora mais de 1 ano. Além de ser mais fácil contribuir com o Ubuntu através do Launchpad, com isso poderemos nos aproximar mais do desenvolvimento da distro que será a base.

Falou também que o primeiro release da nova distro vai ser baseada no Hardy Heron (8.04).

Apesar de não usar nem o Kurumin, nem o Kalango, eu já usei o primeiro e gostei muito. Todos que estão por dentro do cenário linux nacional sabem da competência dessa dupla. Vamos aguardar, vem coisa boa por ai…

Popularity: 47% [?]

8 Comments more...

Beryl em notebook Acer Aspire 50’s

by Adriano Melo on jan.27, 2008, under Linux, Ubuntu

Finalmente… após tentar umas 3 vezes instalar o beryl e todas aquelas frescurinhas que fazes as pessoas dizerem “nooooossa, que legal!!!”, eu consegui.

Utilizando o Ubuntu Linux 7.10 32bits.

A chave foi instalar o xgl-server, que não vem instalado por padrão. já que o Gutsy trás tudo prontinho para girar, enfeitar, escurecer, deixa transparente… enfim… aqui vai o xorg.conf e logo em seguida alguns screenshots.

O que é ligado diretamente ao beryl no /etc/X11/xorg.conf é isso:

Section “Device”
Identifier “ATI Technologies Inc RS485 [Radeon Xpress 1100 IGP]”
Driver “fglrx”
Busid “PCI:1:5:0″
EndSection

Section “Monitor”
Identifier “Monitor Genérico”
Option “DPMS”
EndSection

Section “Screen”
Identifier “Default Screen”
Device “ATI Technologies Inc RS485 [Radeon Xpress 1100 IGP]”
Monitor “Monitor Genérico”
Defaultdepth 24
SubSection “Display”
Modes “1280×800″
EndSubSection
EndSection

Section “ServerLayout”
Identifier “Default Layout”
screen “Default Screen”
Inputdevice “Generic Keyboard”
Inputdevice “Configured Mouse”
Inputdevice “Synaptics Touchpad”
EndSection
Section “Module”
Load “glx”
Load “dri”
EndSection

Section “DRI”
Mode 0666
EndSection

Section “Extensions”
Option “Composite” “1″
EndSection

E aqui está o xorg.conf completo.

Screenshots:

Janelas Distorcidas Tudo empenadoDVDCubo

Popularity: 43% [?]

1 Comment more...