Archive for 'Desenvolvimento'
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:
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.
Aonde está a inovação?
Posted on February 23, 2008, under Desenvolvimento.
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á!
Gedit com font Monaco e tema do emacs
Posted on October 29, 2007, under Desenvolvimento.
O novo Gedit está muito bom, já tinha comentado anteriormente, que umas das novidades do Ubuntu 7.10 era a nova versão do Gnome e o suporte a temas do Gedit.
Ontem li dois post sobre customização do desktop gnome, este e este, depois de ler estes posts, e executar o que os foi indicados pelos dois, fui trabalhar no gedit, e percebi que a fonte que utilizo, a font monaco, estava mais suavizada, então resolvi configurar a mesma para um tamanho menor. Antes eu utilizava a fonte com tamanho configurado em 10 pontos, porque em 9 pontos ficavam muito ruim, depois destas alterações a fonte ficou mais suavizada inclusive nos 9 pontos, o que ficou muito bom.
Entusiasmado com a melhor de aparência da font, resolvi ir atrás de um outro tema de cores para o Gedit, e encontre um bem melhor do que o tema dark que vem com o Ubuntu, o tema é o emacs dark, disponível no site no próprio site do gedit.
O tema é muito leve e pouco cansativo, o tema que estava utilizando anteriormente era o Dark, apesar de gostar de temas com o fundo preto, as cores das fonts não ficaram muito boas no Dark, já neste tema do emacs ficam muito bem balanceadas.
UPDATE: A monaco parece não ser tão monospace assim, com este tema as letras em bold ocupam mais espaço do que as letras não bold, para resolver isso edit o arquivo do tema e remova os bold=”true”, ou baixe este arquivo para quem estiver sem paciência. Obs: depois que importar o tema você deve mudar para outro tema e depois de volta para o tema do emacs para que isso tenha efeito.
Framework Akelos - Primeiras impressões
Posted on October 27, 2007, under Desenvolvimento.
Através do site PHP Frameworks, reencontrei um framework PHP, que já tinha visto em outro momento mas não tinha dado muita atenção, o Akelos. O Akelos é o segundo framework mais parecido com Rails na minha opinião, o primeiro é PHP on Trax (até no nome).
Depois de alguns testes rápidos, vamos a uma analise ainda mais rápida sobre o framework.



