27 de março de 2007

Ubuntu 7.04 Beta review

Na minha máquina tenho dois sistemas linux instalados: o Frugalware (default) e o Ubuntu 7.04 Beta, que tenho testado. No futuro pretendo testar o FreeBSD.

A respeito do Ubuntu, como muitos têm lido, ele vai passar a ter Compiz instalado, instalação de codecs por demanda, e um melhor suporte aos drivers proprietários da ATI e da nVidia, fora outros detalhes menos aparentes ao usuário.

O sistema inicia sem Compiz ou Beryl, mas tem uma opção para habilitar o Compiz (Beryl só instalando via aptitude ou apt-get) semelhante a encontrada em outras distros como a Fedora. Ao habilitar o Compiz, ele sugere a instalação dos drivers da placa de vídeo (ATI ou nVidia). Os efeitos do Compiz são legais, mas não se equiparam aos do Beryl. Contudo, o Compiz é bem mais leve.

A instalação de codecs por demanda é muito interessante, e facilitam a vida do usuário, mas eu só vi funcionar com vídeo, com outros formatos a coisa não funcionou da mesma forma. Eu ainda encontrei alguns problemas com os codecs. Basicamente, eu continuo precisando do MPlayer para assistir a vídeos nos padrões mais novos do formato WMV.

O sistema como um todo está funcionando melhor. Corrigiram diversos bugs, incluindo o do framebuffer, que não funcionava bem, mas a interface do terminal (fora do X11) continua estranha. A Canonical ainda tem um bom caminho para trilhar, mas o tem feito de maneira admirável.

Em suma, ainda não é a distro perfeita, e nunca vai ser, uma vez que somos criaturas imperfeitas, e nada perfeito pode advir de nossos trabalhos, mas é a distribuição perfeita para usuários iniciantes, inexperientes, ou que não querem ter dor-de-cabeça ou mesmo perder tempo com configurações. Tudo funciona out-of-the-box. É instalar e usar. Para os demais, só vocês são capazes de dizer o que é melhor para vocês.

Novidades

Muita coisa aconteceu nessas duas semanas que não enviei um só post para cá.

Participei do SAP Fórum em São Paulo, onde vi as "últimas" novidades do que se está desenvolvendo em termos de ERP/CRM comercial: a comunidade SAP "descobriu" as facilidades das interfaces web (aleluia!), com SAP Netweaver.

Obviamente não é necessário comprar o Netweaver para fazer uma interface web com o SAP; já existem conectores para diversas linguagens, incluindo Ruby, .Net, e Java. Cheguei a assistir uma palestra de uma empresa chamada Matec que criou todo um sistema de interface com o SAP usando plataforma .Net. Excelente!

E na última semana, resolvi me auxiliar no desenvolvimento da distribuição linux Frugalware. Tive uma calorosa acolhida, e a equipe parece ter a mente aberta para mudanças e novas idéias. Muito bom! Nada como trabalhar com algo que se gosta em um ambiente agradável.

Uma curiosidade: eu não vi o uso de notações húngaras no código-fonte do setup de instalação da distro, apesar de boa parte dos desenvolvedores ser húngara. Nem tudo é perfeito. Rsrs!

12 de março de 2007

Frugalware Linux 0.5 - Review

Nesse final de semana testei a versão 0.5 do Frugalware Linux, uma distribuição baseada no Slackware e no Arch Linux, com versão para x86_64. O Frugalware pode ser instalado em CDs (9), em DVD, ou em USB (Net Install). Optei pela versão em DVD.

Instalação

O instalador é feito em ncurses, mas não deixa nada a desejar para o Anaconda. A instalação é bastante straight forward. Até um pouco demais, pois não há como voltar atrás. Ou seja, um erro significa recomeçar. Ponto negativo aqui.

O instalador oferece opção de escolher cada pacote a ser instalado na máquina, mas para "agilizar" o processo, optei pela instalação padrão, que vem com quase todos os pacotes do DVD. Algo em torno de 1138 pacotes.

Utilização

Depois de instalado o sistema, o início é (muito) bastante rápido (mesmo), mas não consegui entrar na interface gráfica. Por algum motivo o xorg.conf estava ajustado para usar o driver "nvidia", mas esse não veio instalado. Outro ponto negativo. Mudando para "nv" entrei no KDE sem problemas.

Além do KDE, a instalação padrão traz o Gnome, o XFCE, FVWM, e vários outros. Vale ressaltar que eu só entrei no KDE.

Outros problemas foram a falta de som, e plugins para o Firefox, mas não posso dizer que foram realmente problemas, porque não me esforcei muito para ajustá-los.

Uma curiosidade: o Frugalware vem com 11 terminais por padrão. Assim, o X11 é acessado no Ctrl+Alt+F12. Estranho, mas indiferente.

Atualização

Tive problemas para atualizar o sistema para a versão mais nova (0.6rc2). Aparentemente o processo é simples, mas o gerenciador de pacotes (pacman) apresentou dependências circulares. Não foi difícil resolvê-las, mas contei isso como um ponto negativo.

Depois de 2h baixando os pacotes novos, o sistema ficou atualizado bleeding edge. Excelente! Contudo, continuei sem conseguir instalar os drivers da nVidia. Passei pelo mesmo problema do openSuse. Só consegui acesso aos recursos da placa instalando o driver baixado do site da nVidia.

Não me arrisquei a instalar grandes coisas no sistema, mas fiquei muito satisfeito com o resultado.

Resumo

Pontos negativos: a falta de opção para rever os passos no instalador gráfico; as dependências circulares nos pacotes; o X11 ter sido configurado para um driver não instalado; e o driver da nVidia do repositório não funcionar.

Pontos positivos: o instalador gráfico simplificado; a velocidade do início de sessão, e do gerenciador de janelas; o gerenciador de arquivos (pacman) e a forma simples e rápida com que se atualiza o sistema; e os pacotes atuais e compilados para x86_64. Algumas distribuições usam pacotes compilados para 686 em arquitetura x86_64.

Conclusão

Enfim, uma grande distribuição em desenvolvimento. Provavelmente, a nova versão não terá boa parte desses erros, apresentando performance ainda melhor. Mal posso esperar pelo Frugalware 0.6.

7 de março de 2007

Java e o povo brasileiro

No outro dia eu estava conversando com um colega de trabalho a respeito de porque o Java se tornou tão popular no Brasil, chegando esse a ter uma, senão a, maior comunidade Java do planeta.

Ora, se há algo que brasileiro gosta de fazer é mudar o que vem padronizado para algo que atenda aos seus interesses ou gostos. Um exemplo disso são os fast foods (Mc Donald's, Bob's, etc). Somente no Brasil (até bem pouco tempo atrás) se podia pedir um número 1 com mais ou menos queijo, e com suco de laranja e nuggets, ao invés de refrigerante e batatas fritas.

Outro exemplo claro de como o brasileiro gosta de "personalizar" é o SAP. Em nenhum outro país do mundo se criou tantas extensões (melhorias ou user exits) para os programas do SAP como se faz no Brasil.

Caso ainda não tenha feito a relação, raciocine comigo. O Java traz em si, desde a primeira versão, um quê de "faça você mesmo", fora ser livre, e, atualmente, código aberto. Ou seja, tudo o que um brasileiro gosta de ouvir: Java é pra personalizar.

Hoje em dia, obviamente, já existem diversas outras linguagens que oferecem as mesmas características, mas nenhuma tão sólida quanto o Java. Sólida no sentido de documentada (livros, manuais, referência, etc), com amplo suporte, e estável, tanto no que se refere ao funcionamento, quanto a mudanças.

Obviamente, não foi só isso, a Sun fez um excelente trabalho de marketing, e aproveitou o tempo certo. Falando nisso, acredito ser esse o momento certo de se investir em marketing no Linux, agora que o Windows Vista está se mostrando um sistema operacional não viável.

Quem sabe um dia essa idéia ganha maturidade...

Em busca da distribuição perfeita (parte 3)

O script que eu escrevi para instalar o sistema está sendo atualizado conforme a instalação prossegue. Quando tiver uma versão final eu ajusto o post onde o descrevi pela primeira vez.

Bom, ontem instalei o Gnome, os drivers da nVidia, e o Beryl. Rodou tudo muito bem, inclusive o framebuffer (sendo simplório, é aquela tela colorida de carregamento do sistema). Ainda não terminei de "tunar" ("no pain no game") o driver de vídeo, mas já está muito excelente!

Agora falta instalar o sistema de áudio (ALSA), e os aplicativos que vou usar (OpenOffice, players de mídia, etc).

Parece que minha busca acabou. Gentoo é o cara!

Mas, como tenho um filesystem disponível para instalar sistemas operacionais, podem esperar por reviews.

6 de março de 2007

Stored Procedures: usá-las ou não usá-las, eis a questão!

O pessoal que ja trabalha com java sabe que alem de ser multiplataforma, java pode ser multi-banco (sei lá se existe esta expressão). A tecnologia JDBC permite que utilizemos a mesma interface para acessar da mesma maneira vários bancos diferentes (Oracle, DB2, SQLServer, MySQL, etc...).

Isto é muito bom para facilitar o desenvolvimento e melhor ainda para que nossa aplicação fique independente de banco de dados. Bastando apenas mudar o driver JDBC de um banco para outro, sem que seja necessário nenhuma alteração na aplicação (no máximo em arquivos de configuração se a aplicação for bem feita ;-) ).

Para que isto funcione 100% devemos utilizar SQL Ansy e não podemos utilizar nenhuma feature que não seja comum a todos os bancos de dados.

Este seria um mundo perfeito de desenvolvimento para banco de dados, mas todos sabemos que "mundos perfeitos" não existem. Muitos bancos de dados possuem features que podem aumentar em muito a performance da aplicação. E dependendo da aplicação ela pode não existir sem estas features.

O que fazer neste caso? Usar ou não usar estas features do banco?

É neste ponto que entra uma expressão muito importante na informática, o bom-senso.

Se a aplicação tiver realmente a necessidade de trabalhar com vários bancos diferentes não tem muita opção. O máximo que pode ser feito é se a aplicação for utilizar procedures, criar scripts diferentes para cada banco (o que é muito trabalhoso e sujeito a falhas).

Mas se sua aplicação vai rodar em um único banco, acho que é uma boa idéia considerar utilizar estas features, pois na maioria das vezes o ganho de prerformance pode ser considerável (como exemplo eu trabalhei num projeto onde algumas querys demoravam mais de 60 minutos para serem executadas, e criando procedures com tabelas temporarias, etc... o tempo caio para menos de 30 segundos).

Mas lembre-se mesmo que não haja previsão de troca de banco de dados, o futuro é incerto, e passar toda a regra de negócio para procedures pode não ser uma boa estratégia.

Se foque na relação custo x benefício que as features do banco podem trazer para sua aplicação. No final das contas o que importa mesmo é o bom-senso.

Em busca da distribuição perfeita (parte 2)

Conforme falei, resolvi reinstalar o Gentoo na minha máquina. Para isso, planejei apagar o openSuse (HD SATA2) e instalar o Ubuntu (HD IDE), e então instalar o Gentoo (HD SATA2).

Assim, eu tentei, mas o instalador do Ubuntu 6.10 para x86_64 deu erro na hora de definir a tabela de partições. Ele dizia que eu não tinha definido o diretório raiz ("\"), apesar de eu o ter feito. Vai entender...

Resultado: instalei o openSuse no HD IDE sem nem mesmo me preocupar em instalar nada além do que vinha no DVD de instalação, e instalar o Gentoo no HD SATA2. Para isso fiz um script em bash (myGentooInstall.sh) de instalação que se tornou a listagem logo abaixo.

Espero que quando eu chegar em casa já tenha terminado tudo, e o sistema esteja funcionando bem. Está sendo bom me sentir dono do sistema operacional mais uma vez. Com o Gentoo, se ocorre um erro, é bem fácil resolvê-lo ou contorná-lo.

[EDIT: O script foi movido para o fórum do Gentoo ]

5 de março de 2007

Em busca da distribuição perfeita (parte 1)

Recentemente comprei uma nova máquina. Parti de um AMD Athlon XP 2400+ (IDE, AGP, FX 5200 128MB) para um AMD Athlon X2 4200+ AM2 (SATA2, PCI-X, 7900 GS DDR2 256MB), e como toda mudança, preciso reinstalar o sistema operacional (na verdade não precisaria, mas eu acidentalmente apaguei o SO antigo).

Eu já tinha idéia que uma boa parte dos aplicativos é desenvolvida pensando em arquiteturas de 32bits, ou seja, apesar de rodá-los em um processador de 64bits, provavelmente eles não aproveitam todo o potencial do processador. Em outras palavras, distribuições com pacotes binários precisam ter pacotes específicos para a arquitetura em questão (x86_64) para se ter uma resposta condizente na interface.

Não vou entrar em detalhes a respeito do uso e das facilidades de cada distribuição, uma vez que esse tipo de material tem pela rede aos montes. Então vou focar nos problemas encontrados, e na minha percepção de power user (RÁ!).

Minha jornada começou onde quase terminou a de 32bits, com o Ubuntu.

O Ubuntu instalou tudo o que pedi facilmente (usei o Automatix), mas o framebuffer ficou um lixo! O bootsplash ficou cinza e pixelado. A interface gráfica funcionou direito, sem maiores problemas, mas a resposta do sistema não ficou condizente com o upgrade de hardware. Desconfio que os pacotes não são específicos para 64bits.

Depois disso, resolvi tentar o openSuse, onde minha jornada de 32bits terminou.

Utilizei um script para agilizar a instalação de codecs e drivers no openSuse (o driver da nVidia instalado foi o dos repositórios). O framebuffer estava OK, mas a inicialização do sistema é muito lenta, e a interface gráfica não entrou. Problemas com o driver da nVidia. Instalei o driver direto do site do fabricante, mas mesmo assim continuei sem direct rendering, e o sistema não reconheceu a placa, e fiquei também sem beryl.

Atualmente estou testando o Gentoo 2006.1 para x86_64. Cheguei a instalá-lo pelo live DVD. O sistema não ficou como eu queria, mas a velocidade apresentada é muitas vezes superior às outras distros. Não testei ainda a interface gráfica com os drivers da nVidia, mas o farei em breve. Também não instalei bootsplash.

Penso em testar o Frugalware, distribição baseada no Slackware, mas que segue linha própria. Vamos ver no que dá.