Testando o Ubuntu Hardy 8.04

Posted on April 14, 2008, under ubuntu.

wallpaper ubuntu fuego fire hardy

Semana passada voltei a utilizar o Linux em tempo integral, devido alguns problemas de sinal com a placa da vivo estava usando Windows por um tempo. Depois que instalaram a ADLS voltei ao bom e velho Ubuntu, mas o meu já estava pedindo uma formatação, desde da compra do notebook, tinha feito uma única instalação do Ubuntu, na época o Ubuntu 6.10, depois foram só atualizações para chegar ate a versão 7.10.

Resolvi instalar a versão de teste do Ubuntu Hardy 8.04, a principio um pequeno bug na instalação: o Ubuntu agora exibe um menu logo no boot que permite escolher a linguagem na qual ele carregara o sistema, escolhendo Português, na hora de instalar ele não passa da tela de escolha do teclado, fica reiniciando o X, no meu caso escolhendo inglês durante o boot resolveu o problema.

O mais chato por enquanto tem sido um bug na tela de login do GDM, alias bug que já vinha acontecendo no 7.10, a fonte da caixa de login fica gigantesca coisa de 100 pontos, não da para ler o que se escreve nela, mas não chega ser um bug que atrapalhe, só deixa feio mesmo.

Outra mancada na bola ao meu ver é a imatura escolha do Firefox 3, não consigo enxergar nenhuma vantagem em colocar uma versão ainda em desenvolvimento no pacote. Ele ainda é incompatível com a maior partes das extensões, não é nem um pouco estável, em fim poderiam muito bem ter esperado e depois lançado como pacote de atualização, não tive duvida deixei o bichinho de lado e baixei o 2.

Fora estes pontos há uma serie de coisas bem legais na nova versão:

Ele conseguiu fazer funcionar as teclas de controle de brilho e áudio do notebook, coisa que eu tinha gasto horas para fazer funcionar no 7.10, e não só as teclas de brilho e áudio mais também as de multimídia funcionaram.

O controle de wireless parece mais estável também, com menos problemas de identificação com o Acess Point, na versão 7.10 vire e mexe eu estava tendo que redigitar a senhas. Uma pergunta pra quem souber, como posso limpar os perfis de rede wireless no Ubuntu?

Minha placa de som finalmente foi detectada sem problemas, dês da primeira instalação do Ubuntu mesmo no meu antigo Desktop eu sempre tive que adicionar algumas linhas no arquivo de configuração do alsa, felizmente dessa vez nada foi necessário.

Me decepcionei um pouco em não conseguir rodar o VMware player, precisava dele para pegar algumas coisas que estavam na máquina virtual do Ubuntu que usava no Windows, depois precisava dele pra levantar o Windows e testar o SDK de desenvolvimento para Symbian, acabei por instalar o VirtualBox que funcionou perfeitamente (com exceção do problema de USB que já acontecia no 7.10). Acredito que para instalar o VMware é só uma questão de compilar alguns drivers para o Kernel, mas não estava de tempo nem paciência para isso.

No fim das contas o sistema não é la grande mudança em relação ao 7.10, mas tem uma serie de refinamentos por baixo do capu de promoveu uma melhora principalmente em performasse como em todas as ultimas versões do Ubuntu, agora é ir atualizando (e bota atualizando nisso, todo dia pela manhã são na média de 150MB de atualizações) e esperar mais estabilidade e a versão final.

dica: Tive um problema com vídeo no Skype, a máquina travou completamente, a solução e desabilitar os recursos avançados de vídeo. Vá em Sistema -> Preferencia -> Aparência, na ultima aba “Efeitos Visuais” escolha nenhum e mande aplicar, depois que termina o vídeo e só voltar lá e habilitar os efeitos novamente.

Classificado para Arena

Posted on April 12, 2008, under Desenvolvimento, fisl.

Com muito esforço e algumas horas de estudo consegui passar na fase Registration da Arena de Programação do fisl 9.0. Depois de horas relembrando o que eu já sabia e aprendendo várias coisas novas consegui resolver o terceiro problema em C.

Pelas notícias, acredito que a maior parte dos desafios vão ser em Python e alguma coisa em Symbian C++, eu sou fã do desenvolvimento em C++ e Python, mas nunca peguei firme em aprender nenhuma das duas, sei a syntax, aprendi o duro conceito de ponteiros, mas nunca coloquei em pratica nada que possa me orgulhar em ter feito. Agora as vésperas do evento (faltam apenas 5 dias), vou ter que puxar no final semana, e juntamente com o projeto em Rails vou ter que tirar tempo pra estudar Python e C++, pelo menos relembrar o que já conhecia e perder algumas horas com o Forum da Nokia.

Já as espectativas, são boas, pelo que eu já vi no wiki em português, o desenvolvimento em Symbiam C++ chega a ser mais interessante que o de Python, mas já esbarrei no primeiro empecilho: o ambiente disponível oficialmente é para Windows, vou ter que correr atrás de uma alternativa para o Linux. Outra questão que promete é possibilidade de rodar Ruby no Symbian.

Pelo visto o céu é o limite em se tratando de Symbian, já arrisco em dizer que um porte de Lua (minha linguagem predileta) poderia ser arranjado com uma certa facilidade, afinal ninguém merece trabalhar com Java não é mesmo. :)

Desenvolvendo Rails em Windows

Posted on April 10, 2008, under Desenvolvimento, Ruby/Rails, ubuntu.

Tenho visto em vários lugares as pessoas falando sobre os problemas de desenvolver Rails em Windows, agora que o Rails passou para repositório em Git nem se fala. Um dos principais lugares onde escutei isso foi no Rails Podcast Brasil, mais especificamente no episódio 12.

Os principais problemas apontados pelo pessoal no desenvolvimento são:

- Instalação de gems: Principalmente as gems que dependem de compilação;
- Limitações do shell: É de longa data que desenvolvedores tem problema com Windows por conta do “DOS” embutido nele, nunca foi um shell muito versátil, e se comparado com bash, a coisa ficar ainda pior;
- O git é muito limitado: Ao que parece o git realmente dominou as mentes dos desenvolvedores Rails, o que é bom, mas para quem trabalha com Windows a história parece ser outra, é possível ter ele rodando através de duas opções Cygwin ou Mysgit, eu pessoalmente não gosto de nenhuma das duas soluções, o Cygwin é bom mais é limitado e confuso, o Mysgit sofre do problema anterior.

Minha solução predileta é o uso de uma máquina virtual, pessoalmente eu utilizo VMware Player com Ubuntu Server, é possível utilizar qualquer outra VirtualBox ou Qemu são exemplos, ao meu ver o VMware é o mais fácil de configurar, inclusive já tento várias máquinas virtuais prontas pra baixar. O VirtualBox tem algums problemas de configuração da placa de rede, e o Qemu, mesmo usando kqemu nunca obtive uma qualidade que pudesse se comparar rodando no VMware.

Sei que a solução de virtualização não é para todos, existe muito problemas de performance, principalmente com máquinas com pouco ram. No meu caso tenho um notebook com 1GB de Ram é um processador de 1.83 core 2, a máquina virtual roda sem atrapalhar outras aplicações, claro que não é possível jogar ao mesmo tempo que estou com Firefox aberto e a máquina virtual, inclusive o grande vilão em se tratando de memória tem sido o Firefox. Mas já detectei momentos em que não estava utilizando a máquina virtual e uso de memória do VMware desceu a 29MB, sendo a máquina configurada com 256MB.

Existe diversas formas de se configurar a máquina virtual para trabalhar com Rails, segue os passos de uma configuração simples:

- Baixe o VMware Player;
- Baixe a máquina virtual com o Ubuntu Server já instalado;
- Baixe o putty;
- Baixe o TrayTask que vai esconder sua máquina virtual na barra do relógio [opcional];
- Rode a máquina virtual, log com o usuário notroot e a senha thoughtpolice;
- Verifique o ip da máquina virtual com um ifconfig;
- Agora já é possível acessar a máquina usando o putty;
- De uma olhada neste Howto é veja como configurar o samba no Ubuntu para facilitar o acesso aos arquivos da máquina virtual;

Existem n opções para o roteiro, desde de variação no acesso os arquivos usando servidor de ftp ou o winscp, e mesmo a opção de utilizar o Xming que permite abrir janelas dos programas rodando na máquina virtual como se fosse aplicativos nativos do Windows. E no caso do Putty pode se configurar chaves que permitam logar sem a senha na sua máquina virtual.

A instalação do Rails é fácil quando se esta no Ubuntu, podemos instalar todos os pacotes através do apt ou instalar o Ruby por apt, o gem atrás de tar.gz e depois instalar os gems como se faz normalmente. Existe diversas formulas na internet de como fazer a instalação do Rails no Linux.

Eu pessoalmente acho a solução razoável, visto que a melhor solução é de fato migrar pra Linux. Mas para quem não tem esta opção por um motivo ou outro, fica a dica. Se bem configurado e usando as ferramentas certas é possível trabalhar com total conforto de um ambiente POSIX sem perder as “vantagens” do Windows.

Qual o mais legal?

Posted on March 22, 2008, under Desenvolvimento, Ruby/Rails, Symfony.

Hoje li sobre o nova versão do Zendo Framework, uma das coisas que me chamou atenção foi a nova cara do site, eu conheci as outras versões do site e sempre gostei do trabalho que eles fazem por lá.

Ai me veio uma pergunta: qual dos sites de framework é mais legal? Não que isso faça a menor diferença na qualidade dos frameworks (sem flamers pessoal), mas mesmo assim a pergunta pairava. Eu listo a baixo os frameworks que já utilizei ou utilizo, existem muitos outros, deixe nos comentários qual o seu site preferido:

Zend Framework

Django

Symfony

Cakephp

Ruby on Rails

Por mais que eu goste de trabalhar com o Ruby on Rails, e de por um tempo ter considerado o site do Rails um dos mais legais que conhecia, hoje o site do Zend me salta aos olhos, verdadeira obra prima.

Abrindo link em nova aba no Safari

Posted on February 24, 2008, under Mac.

Tela de configuração do SafariStand

Neste processo de migração do Linux para Mac uma coisa que me incomoda no Safari e que não existe uma maneira de definir que por padrão links que deveriam abrir em uma nova janela, passem a abrir em uma nova aba.

Procurando um pouco achei esse link que indica dois plugins que podem modificar esse comportamento. O primeiro deles é o Saft, que parece ser o mais completo, mas tem um custo de US $12,00 que não estou dispondo no momento.

O segundo é o SafariStand, que é mais simples, mas é freeware, ou donationware como dizem no site. Entre outro recursos interessantes ele adiciona o comportamento de abrir um link em uma aba. Uma outra coisa interessante desse plugin é que ele utiliza uma “extensão” para Mac OS X, o SIMBL, que ao que parece não tem uma licença definida, mas tem seu código fonte disponível. O SIMBL é uma espécie de hack para aplicações Cocoa que permite definir quando um plugin deve ou não ser carregado, e a maneira com que esse plugin deve ser carregado.

obs: para o screenshot que ilustra o post utilizei esta dica.

Aonde está a inovação?

Posted on February 23, 2008, under Desenvolvimento.

Questions

Outro dia via severa criticas aos filmes e a produção de seriados, a critica era bem especifica, e falava sobre erros e exageros tecnológicos encontrado nos filmes de hoje.

É impossível não concorda sobre a questão dos erros, mas espere um minuto! Desde de quanto eles não produzem filmes com erros de gravação? Hoje os blogueiros e sites relacionados a informática, observam isso porque esta relacionado a área deles, ver um computador com sinais de desligado, sendo utilizado com um computador ligado é um erro grotesco, mais ainda sim é um erro como outro qualquer, e que para maioria passa despercebido.

Mas o que me incomoda e ver gente falando mau dos exageros, e desde de quanto a gente não quer ver isso em filmes? Um super computador em uma caneta, um sistema de imersão virtual controlado pelo celular, mundo fictícios controlados por computadores que nos usam como pilhas. Isto não são erros, e a pura imaginação, é esta imaginação que nos trouxe tanta tecnologia, esta imaginação que faz o homens terem sonhos e vontades.

Pensando assim, me vem um pergunta: aonde esta a inovação da web de hoje? Uma vez li uma entrevista na revista Veja, que falava sobre o avanço do mundo sobre a interação do usuário com o computador, não vou conseguir lembrar quem foi o entrevistado, mas se alguém souber, indique e eu modifico o texto. Ele falava entre outras coisas que dificilmente vamos conseguir sair dos ícones, pois nos acostumamos a enxergar o computador assim, e ainda pior, que dificilmente vamos conseguir sair da ideia de disco ou espaços de armazenamento e arquivos, porque foi assim que o primeiro inventou, depois disso nos acomodamos sobre o fato e não conseguimos nos livrar disso para criar novas tecnologias.

Outro exemplo que ele citou foi o motor a combustão, a quantos anos criamos esse tipo de motor? Até hoje não conseguimos inovar nesse âmbito, não digo nem pela questão do combustível, falo pela questão do tipo do motor, todos usam o principio da manivela, do pistão dentre outras características, mesmo os motores a combustível alternativo são motores que tem por função girar e depois movimentar as rodas, cade a real inovação? Não desmereço quem inventou diversos tipos de tecnologia nesse meio, estão certos e de parabéns pelo que fizeram, mas me desculpe, não tem inovação nisso.

O mesmo tem acontecido a web, não existe inovação, o que vemos são aglomerados de tecnologias se junto umas as outras, as vezes de forma mais organizada, as vezes de forma gambiarrada, mas ao meu ver não ha nada de inovação nisso. Temos mais de uma década de html, e queremos dizer que AJAX e tantas outras letrinhas são inovações?

Desde da epoca em que eu comecei a trabalhar com computadores eu penso que precisamos de alguma coisa que substitua o html, que substitua o browser e sua maneira arcaica de juntar tecnologias. Eu ainda não tenhoa  solução para essa questão, mas não tem um dia sequer que eu não pense em quanto ainda podemos inovar no ramo de informática e principalmente no ramo de internet.

VirtualHost não é host

Posted on February 20, 2008, under Configuração, Desenvolvimento.

 

A muito estou trabalhando com desenvolvimento web, e sempre encontrei pelo caminho quem confundisse a configuração dos web servers, commumente chamada de VirtualHost com a configuração do host.

Para quem trabalha com redes ou servidores a definição de hosts, domínio, zonas e tantas outras coisas ligadas ao serviço de DNS são bem simples, mas nem todo desenvolver almeja entender ou querem entender como isso funciona, ao meu ver um erro, pois é muito importante entender pelo menos o básico de redes, para si tornar um bom programador.

Mas essa questão a parte, muitos confundem essa pequena diferença e acaba por não conseguirem configurar seus ambientes de testes corretamente. Para estes ai vai uma pequena explicação:

Como muitos já devem ter percebido ate aqui, VirtualHost não é o mesmo que host. Tente imaginar o seguinte o VirtualHost que você configurou dentro do seu web server é como um if ou um case, que testa por qual host o cliente chegou ao seu serviço. Ou seja ele esta lá analisado o cabeçalho das requisições http, e vê lá a informação de qual host o usuário digitou no browser para que ele conseguisse chegar ate seu servidor.

Já o host é como uma entrada em uma agenda de endereços que diz qual ip está associado a este nome. Existe duas formas de configurar um host, a primeira é através de um servidor de DNS, no caso do Linux commumente se utiliza o bind para tal tarefa, no caso do Windows existe uma implementação desse tipo de serviço em versões server, que por sinal utiliza muito do código do bind, para usuário domésticos ou mesmo programadores há uma serie de software comerciais que desempenham este papel.

Apesar da configuração do servidor de DNS ser a opção com mais características e com mais flexibilidade, se trata de uma configuração complexa, e muitas das vezes inviável ao programador, que quer apenas configurar um ambiente de teste. Em seu lugar podemos utilizar o apelido de ip, que é algo mais simples de ser configurado, com o empecilho de que só funciona na maquina onde for configurado.

Para esta configuração deve se editar o arquivo /etc/hosts no caso de ambientes Posix, como Mac os X, Linux, BSD’s, entre outros, e o arquivo C:/[windows|winnt]/System32/drivers/etc/hosts para máquinas Windows. Para ambos os casos a configuração é a mesma, adicione uma nova linha no arquivo e coloque primeiro o ip, depois o host, ficando assim:

...
127.0.0.1 apolo apolo.nasa.org
127.0.0.1 jupter
...

Observe quê se pode configurar mais de um apelido em uma mesma linha, basta apenas separar eles por um espaços. Algo muito importante que deve se deve entender é que essa configuração não é uma configuração de domínios, o fato de adicionar apolo.nasa.org não faz diferença algum para o domínio nasa.org, a não ser na minha própria maquina, o que estamos fazendo é apelidado o ip com o endereço inteiro: apolo.nasa.org para o ip 127.0.0.1.

Como isso funciona: quando um serviço ou um programa qualquer, como um browser, pede ao kernel do seu sistema para resolver o endereço chamado, o kernel antes de consultar o servidor de dns, verifica se para aquele endereço não existe uma entrada no arquivo hosts, uma vez encontrado um apelido ali, ele nem procura resolver o endereço no servidor, apenas responde com o ip.

Uma vez com o ip na mão o programa ou serviço, monta um cabeçalho http e envia-o ao ip na porta também especificada, o padrão é 80 para serviço de http. Dentre as informações que estão neste cabeçalho esta o nome do host que ser quer ter acesso, o web server recebe esse cabeçalho, e checa em seu “case” qual a configuração para este host.

Espero que isso possa ajudar aos programadores iniciantes que querem montar seus ambientes de teste para o desenvolvimento de aplicações web. Em um próximo post vou falar como é fácil configurar um VirtualHost no apache sobre Ubuntu, até lá!

E-commerce em Rails

Posted on February 16, 2008, under Ruby/Rails.

Sale

Olá a todos, tem sido uma experiência excepcional, meu primeiro projeto em Ruby on Rails, é sistema de e-commerce.

Não vou negar que esta sendo a tarefa mais difícil pela qual já passei na área de desenvolvimento, a experiência de quase 8 anos de desenvolvimento web não tem ajudado muito no quesito codificação. Já é do conhecimento de todos que o Rails ajuda em muito no desenvolvimento, mas como foi dito neste post, Rails ajuda, mas não corrige o problema de maus programadores.

Meu maior desafio em todo o projeto esta sendo e ainda vai ser por um bom tempo os testes automatizados, eu nunca tive prazer de codificar utilizando testes, isso aconteceu em parte por culpa dos prazos apertados, e da falta de conhecimento sobre o assunto.

Neste projeto o prazo continua apertado, para variar um pouco, mas como a decisão de fazer ou não orientado a testes é minha a coisa ficou mais fácil.

O projeto esta longe do fim, mas as coisas tem corrido relativamente bem, os clientes tem aprovado cada fase do projeto, e já estamos com e-commerce funciona. Espero que a partir de agora postar mais coisas sobre a experiência que estou tento construindo este sistema.

Para começo estou pensando em utilizar o RSpec, me parece uma boa opção para teste, apesar de esta aprendendo com relativa facilidade a trabalhar com os teste nativos do Rails, eu ainda os acho acho chatos de formular, o RSpec me parece uma alternativa mais elegante.

Baixe agora o novo Ubuntu + Crack + Serial

Posted on February 9, 2008, under ubuntu.

A melhor ideia do ano (pelo menos até agora):

BAIXE AGORA O NOVO UBUNTU + CRACK + SERIAL

Tarifas do Correios: Sedex e PAC

Posted on December 14, 2007, under Ruby/Rails.

Combosa do Sedex

Hoje postei minha primeira contribuição ao mundo Rails. Fiz isso no forum do RubyOnbr.org por dois motivos: ainda não descobrir como postar código com syntax colorida aqui no Wordpress :), e segundo que la tem bem mais acessos que aqui.. heheh