Thursday 28 May 2009

Voltei ao Ubuntu 8.10

Antes que me esqueca, voltei a usar o Ubuntu 8.10. Tive que voltar porque o Ubuntu 9.04 parece ainda nao estar pronto. Achei muito instavel e com problemas.

Isso eh uma consequencia dessa historia de se disponibilizar um novo release da distribuicao a cada 6 meses. Eh muito pouco tempo. Quando o sistema comeca a ficar estavel, redondinho, em suma, do jeito que a gente quer eis que sai uma nova versao.

Pessoalmente acredito que foi isso que acabou com o Fedora. A distribuicao se tornou impraticavel para o dia a dia. E parace que o Ubuntu esta indo para o mesmo caminho. Tomara que nao.

Apesar de estar satisfeito com o CentOS, comeco a voltar a pensar em FreeBSD. Me parece que o Linux esta meio que perdido. Apesar de haver centenas de distribuicoes disponiveis, eh dificil de achar uma que seja estavel e atualizada ao mesmo tempo.

Mozilla Jetpack e os web designers

Uma tecnologia que me deixou muito curioso eh o Mozilla Jetpack. Jetpack eh uma extensao para o Mozilla Firefox que torna muito mais facil modificar, filtrar e juntar paginas. Se entendi, tornou muito mais facil escrever ferramentas tipo Greasemoneky.

Uma chamada do site Slashdot diz que o Jetpack pode causar o conflito de web designers e usuarios contras as empresas de marketing. Uma vez que permite aos usuarios filtar o conteudo.

O que me deixou impressionado eh a possibilidade de causar uma revolucao de como usamos a Web. A ideia que podemos adaptar as paginas ao nosso gosto da outro sentido a como interaginos com os web sites. E de quebra torna o trabalho dos web designers uma incognita, afinal, como projetar uma pagina que voce nao sabe como vai ser vista?

Acho que essa tecnologia se tornar popular pode comecar um novo capitulo na Internet.

Monday 4 May 2009

Luta com Ubuntu Jaunty Jackalope

Eu em geral me arrempedo depois, mas acho irresistível a tentação de testar um novo release da distribuição que estou usando no momento. Atualmente tenho usando Ubuntu. No começo tinha quase vergonha de admitir que usava Ubuntu, pois me parecia Linux para idiotas.

Mas depois de usar Intrepid Ibex (8.10), tanto x86 quando x86_64, por um tempo posso dizer que é uma boa distribuiçao. Nos momentos de maior entusiasmo chego a me pegar dizendo que é a melhor distribuição para desktop, porque para servidor nada me parece mais confiável que Red Hat Enterprise Linux (RHEL), e em especial CentOS. Sou super fã dessa distribuição, o CentOS.

Após o lançamento do Jaunty, baixei as versões 32bit e 64bit como de costume. Por hora achei melhor não instalar no Dell Latitude D510 (32bit) que uso para Skype e música (meu player é o songbird). Primeiro que está funciona muito bem com o Intrepid. E depois porque já está dando sinais da idade. Para essas coisas eu tenho o meu Dell XPS M1530 (64bit), uma máquina ótima.

Depois de instalar Jaunty, achei que estava tendo problemas com a instalação do driver da NVIDIA. Não lembro exatamente o que foi, mas depois de tentar um pouquinho, a coisa funcionou. Em seguida começei a ter problemas com o vmware player. Logo após iniciar a máquina virtual (que vou me referir por vm), aparecei um monte de "g", e ctrl-alt não fucionava, para sair usava ctrl-alt-f1. Estava sendo uma experiência muito frustrante. Googling não estava ajudando. Só achei um cara que reclamou da mesma coisa quando atualizou de 8.04 para 8.10.

O arquivo xorg.conf só tinha a entrada da configuração de display (que parecia ser coisa da NVIDIA). Me pareceu o mesmo problema que tive com Opensolaris depois de atualizar, faltava a configuração de teclado e por isso só funcionava no layout US.

Depois de ir modificando o xorg.conf manualmente me pareceu que a coisa estava indo de mau a pior. Num ato de desespero reinstalei o sistema inclusive formatando a minha partição . E nada.
Me lembrei de uma entrada no blog do CentOS, planet CentOS, de 29 de abril em que Dag comenta sobre quais distribuições seriam recomendadas para o Desktop e aquilo me pareceu fazer muito sentido e resolvi tentar o Ubuntu 8.04 LTS.

Novamente reinstalei o sistema. Depois de fazer todas as atualizações, configurar o meu desktop. Sim, essa é uma das primeiras coisas que faço. Uso o tema Silicon, que ao ser instalado remove o tema original, Human, que é medonho, diga-se de passagem.

O problema dessa vez foi o driver da NVIDIA, que apresentava a tela de login, simplemente em branco. Digo "branco" como uma folha de papel. Eu até ouvia o tamborzinho do prompt de login. Para ter certeza alterei o driver no xorg para "nv" ao invés do "nvidia" e ai tudo funcionou. Depressão total.

O final da história foi que voltei ao Jaunty, e de quebra usei o disco inteiro, removendo a partição Windows Vista. Para não dar chance ao azar, instalei o Virtualbox ao invés do vmware player. E desde então tudo tem funcionado (quase) as mil maravilhas. Digo quase porque tenho que trocar a configuração de rede do Virtualbox de NAT para brigded. Isso para permitir a comunicação entre o host e o guest.

Como não podia deixar de ser a primeira máquina virtual criada foi para o CentOS.

Tuesday 31 March 2009

Intalando Wicket

A instalacao do Wicket é relativamente simples, mas a integração com Eclipse e fazer a coisa funcionar foi um parto. E olha que nem cheguei nos projetos em si, ainda estou falando do "Hello world!".

Hoje vou tratar apenas da instalação do Wicket e a integração com o Eclipse vai ficar para outro dia.

Os pré-requesitos são Apache Maven e slf4j. A instalação do Maven é fácil e tem um README.txt que explica direitinho. Agora não dá para dizer o mesmo do slf4j. O slf4j parece ser um monte de arquivos tipo .jar. Ambos eu extrai no /opt.

Os executáveis do Maven devem ir no $PATH e o slf4j eu coloquei no $CLASSPATH. Um teste para ver se a instalação do Maven deu certo é dar o seguinte comando mvn --version:
mgarcia@xps1530:~/workspace$ mvn --version
Maven version: 2.0.10
Java version: 1.6.0_12
OS name: "linux" version: "2.6.27-11-generic" arch: "amd64" Family: "unix"
mgarcia@xps1530:~/workspace$
A instalação do Wicket é direta. Simplesmente extrai o arquivo em /opt. Mas depois não fica muito claro o que fazer. Na dúvida eu adicionei os 2 diretórios ao meu $CLASSPATH:
CLASSPATH=/opt/slf4j-1.5.6:/opt/apache-wicket-1.3.5/src:/opt/apache-wicket-1.3.5/lib

A melhor maneira de começar a trabalhar com Wicket é usar o Quickstar do site. Preenchendo os campos, o comando na caixa de texto é atualizado, em seguida copiar o comando, ir para pasta-pai (workspace no caso do Eclipse) do projeto e colar o comando. Isso gera uma nova pasta com o o nome do ArtifactID com a estrutura de arquivos descritas na própria página.

Vá para o diretorio com o nome do ArtifactID, dispare o jetty com mvn jetty:run, abra o browser e digite o URL http://localhost:8080/"artifactId" (onde "artifactId" é o nome dado ao projeto) e veja a mensagem do Wicket dizendo que a configuração está OK.

Não sei se é realmente necessário, mas eu defini a variável de ambiente M2_REPO=~/.m2/repository. Eu acho que só precisei dessa variável depois que comecei a usar o Eclipse.

A integração do Wicket com o Eclipse é feita através do pacote Laughing Panda. A instalação do plugin está descrita no site, basta adicionar o site e instala-lo.

Sunday 29 March 2009

Editar em HTML não funciona!

Uma descoberta terrível sobre esse Blogger: editar diretamente em HTML produz uma visualização horrível.

Isso é muito triste. Afinal, me corta em muito a liberdade da minha formatação. Qual o problema se quero esse controle.

Cada dia me convenço mais que o Google é a nova Microsoft. Por isso não uso novos produtos e até tenho começado a estudar mudar alguns deles.

Configurando PostgreSQL

PostgreSQL


A minha idéia é usar o Wicket para criar um banco de dados para registrar os laptops que configuramos para os usuários.


A escolha pelo PostgreSQL é por duas razões:1) é o banco de dados usado pelo OpenNMS, então parte do trabalho já está feita e não faria sentido ter dois servidores, o outro seria MySQL. 2) Desde que o MySQL foi adquirido pela Sun, e o mecanismo InnoDB pela Oracle, acho que MySQL está ficando um cria do Frankenstein*. E para piorar as coisas a IBM está em vias de comprar a Sun.

Servidor

O servidor PostgreSQL vai rodar numa máquina virtual onde foi instalado Fedora 10. A idéia de usar uma máquina virtual (VM) é de não poluir meu sistema principal e se por algum motivo eu mudasse de idéia, seria só reinstalar o Fedora ou criar outra máquina virtual.

A instalação do servidor foi feita durante a instalação do Fedora. Na escolha dos pacotes, marquei o grupo "Postgresql". Depois da atualização do sistema, a versão do PostgreSQL é postgresql-8.3.7-1.

O primeiro passo é criar uma role para acessar o banco de dados. Uma role é como uma conta de usuário do sistema, e a palavra usuário vai ser usada nos dois contextos e espero que fique claro quando se trata do usuário do sistema ou do usuário do banco de dados, mas como o usuário do sistema já foi criado (afinal ele já esta logado), pode-se assumir que estou falando do banco de dados.

Como root mudar para postgres. Essa conta foi criada durante a instalação do servidor.

# su - postgres
$ createuser mgarcia

Eu (mgarcia) escolhi que posso criar outros usuarios e banco de dados, mas não sou super user. E também não coloquei senha.

Como teste, no servidor e usando a conta mgarcia (sistema), criar o meu banco de dados:

$ createdb mydb

Se tudo correr bem, não há nenhum mensagem, volta-se ao prompt do sistema e o banco de dados foi criado. Em seguida pode-se acessar o banco de dados:


$ psql mydb

E novamente, se tudo correu bem, aparece a mesagem e o prompt do PostgreSQL:

Welcome to psql 8.3.6 (server 8.3.7)...
(...)
mydb=>

Acesso remoto

O objetivo é acessar o servidor de outra máquina e para isso é necessário configurar o servidor para aceitar conexões dos clientes.

A configuração é feita editando-se dois arquivos:pg_hba.conf e postgresql.conf. Ambos ficam no diretório /var/lib/pgsql/data.

No arquivo pg_hba.conf deve-se adicionar uma entrada para a rede onde estão os clientes:


host all all 192.168.184.0/24 trust

E para o caso do postgresql.conf, para permitir a conexão adicionar 2 linhas:


listen_addresses = '*'
port = 5432

Com isso é possível acessar o servidor remotamente. Como última etapa, adicionar a variável de ambiente PGHOST ao arquivo de inicialização, que no caso do bash, é .bashrc.


PGHOST=fedora
export PGHOST

Isso encerra essa parte. O próximo passo é criar um banco de dados e acessa-lo usando Java.



* Frankenstein é o cientista, a criatura não tem nome e isso é uma das suas mágoas com o doutor.

Saturday 28 March 2009

Wicket

Estou aprendendo a usar o Web framework do projeto Apache chamado Wicket[1]. A razão é que quero voltar a programar. Mas apesar de parecer uma coisa simples, há várias questões que vêem junto, qual linguagem? para que?

A escolha da linguagem foi algo particularmente difícil. Acho que existe uma cesta de linguagem que são básicas, ou melhor, são as que garantem maior "empregabilidade". Elas são: Java, Python e PHP. A linguagem C (e C++) não está incluida porque é muito especifíca, e para a maioria não faz parte do dia-a-dia. Coisas tipo ASP, C# e outras crias da Microsoft eu nem considero.

A minha linguagem preferida é Python. É simples, e ao mesmo tempo poderosa, tendo todos os quesitos de uma linguagem moderna. Tenho a impressão que para a maioria dos mortais é a única linguagem necessária na vida. Inclui PHP porque me parece que é a linguagem natural para desenvolvimento Web. E está na minha lista de coisas a aprender. Mas isso é para o futuro.

No entanto, tenho gasto um tempo para (re)aprender Java. Java é mais que uma linguagem de programação, é uma plataforma de programação[2]. E se alguém está sério sobre programação enterprise level, ent&aatilde;o tem que aprender Java. Para mim, a gota d'água foi ter que usar OpenNMS[3] para o monitoramento da rede da empresa. Faz tempo que quero participar de algum projeto Open Source e achei que seria esse. Paralelamente, também tenho tido muito interesse em programar para a Internet. A escolha do Wicket foi por ter o pedigree do Projeto Apache, ser em Java, lendo a lista de recursos, me pareceu bastante interessante.

Então juntando o útil ao agradável, estou aprendendo Java e Wicket. A luta agora, e praticamente vencida, é desenvolver usando Eclipse[4] como IDE.

[1] http://wicket.apache.org/
[2] Core Java Volume 1 - Fundamentals; Cay S. Hostmann and Gary Cornell, Prenticel Hall
[3] http://www.opennms.org/index.php/Main_Page
[4] http://www.eclipse.org/

Wednesday 18 March 2009

Por do sol azulado

Faz tempo que não escrevo neste blog, mas a notícia que a IBM está para comprar a Sun é fantastica. Adoro quando posso ver um evento que, como dizem por aqui (UK), "send chock-waves".

Se isso ocorrer será o fim de uma era. A longo prazo será uma era mais pobre, mas o processo de digestão vai ser muito interessante. Afinal a Sun têm sido muito importante desde os tempos do SunOS, depois com o Solaris, e por fim com Java. Aparentemente a transição de uma empresa de hardware e software para uma baseada em free software não foi bem sucedida e isso tem diminuido o valor de mercado paulatinamente.

A pergunta que todos se fazem é como a IBM vai absorver uma empresa que tem tanta sobreposição? O que vai ser dos Solaris? do MySQL? do Java e tantos outros produtos?

Concordo com a opnião que a IBM esta se livrando de um competidor e de quebra se armando para uma enfrentar a HP e a Cisco.

A IBM sempre investiu muito em Java e não gostou da licença ter virado GLP. De posse da Sun, seria possível flexibilizar para uma licença tipo Apache. Outra pérola seria o OpenOffice, no qual se basea o Lotus Simphony, que é o office da IBM.

Para mim é o fim do Solaris. Não acredito que a IBM vá gastar tempo e dinheiro com ele. O resultado é que o futuro do Linux parece mais azul que nunca.