Começando a falar de Ruby
Æ!!
Se você já conhece Ruby, ignore esse post! A idéia do post é mostrar um pouco da linauagem Ruby para pessoas que não conhecem nada sobre ela.
Eu, claro, acho muito bizarro interessante que muita gente por aí ainda não conhece Ruby, mesmo com a grande popularização do Rails, e eu chego a ouvir coisas assim:
“Não é você que programa naquela linguagem esquisita?”
Cheguei a ouvir do meu “professor de algoritmo” ( perdeu meu respeito ):
“Gostei desse algoritmo que você fez nessa linguagem esquisita aqui”
Há muitas pessoas que já ouviram falar em algo relacionado a Ruby apenas quando leram alguma coisa na Info falando de RubyOnRails. Portanto, resolvi escrever alguns posts sobre a linguagem para passar para esse pessoal que ainda não conhece nada. Pretendo que esse seja o post introdutório de vários capítulos passando por partes interessantes da linguagem.
Então…Vamos falar de Ruby!
Ruby é uma linguagem interpretada, criada pelo japonês Yukihiro “matz” Matsumoto e liberada publicamente em 1995. Desde lá o Ruby vem aparecendo bastante no mundo de tecnologia, sendo que a partir de 2006 teve um grande boom de comentários, ainda mais com o maior aparecimento do Rails.
Uma coisa que me irrita bastante é as pessoas associarem diretamente Ruby com Rails, portanto preciso deixar isso claro…Rails não é Ruby!
Rails é um framework para desenvolvimento web que utiliza a linguagem Ruby para o tal. O Ruby tem bem mais coisas legais do que só o Rails.
Como o Ruby é uma linguagem interpretada, podemos facilmente fazer um Hello World em Ruby:
puts 'Hello World'
Isso aí! Apenas uma linha! Uma linguagem totalmente orientada a objeto e você não precisa necessáriamente criar uma classe, um método ( public static void main… ) e escrever mil comandos Hierarquicamente para escrever algo!
O interessante do Ruby é que tudo é um objeto, ou seja, se você escreve o numero 10 ele já é um objeto, tendo seus próprios métodos, como por exemplo:
10.times { puts 'Vou estudar Ruby' }
No caso acima usamos um dos métodos do 10 ( que é da Classe Fixnum ) que é o método times, que faz um loop 10 ( ou qualquer outro numero Fixnum que estivesse aqui ) vezes fazendo o que está dentro do bloco, no caso, imprimir “vou estudar Ruby”.
No Ruby você consegue modificar métodos em tempo de execução! Uma classe que não possuía nenhum método pode possuir 10 em tempo de execução bastando que seu código os inclua lá, e isso é uma coisa muito legal!
A sintaxe da linguagem foi feita para ser simples, você tem vários métodos facilitadores, inclusive com uso de “?” ( interrogação ) para alguns métodos, como por exemplo para descobrir se a variável está não retorna nada:
variavel.nil?Aqui temos uma pergunta explícita, que você olhando isso intuitivamente lhe vem duas respostas: Sim ou não ( nem me venha com talvez
),o que mostra que você olha um código Ruby e facilmente distingue muita coisa.
E tem bem mais coisas interessantes!
Tá…E por que diabos eu deveria usar Ruby
Aí que está! É aí que entram as coisas legais, como:
Rails
Agora sim você pode usar esse cara aí em cima para desenvolver aplicações bem legais usando todas as facilidades que o Ruby pode te oferecer
Shoes
Uma biblioteca bem interessante para desenvolvimento desktop multiplataforma, onde você consegue fazer muita coisa legal.
JRuby
Olha que legal, se você gosta bastante do Java, você pode rodar programas Ruby em cima da maquina virtual Java, o que é bem legal, até por que, a velocidade do JRuby, já passou a do MRI ( Matz Ruby Interpreter, ou a versão core oficial do Ruby, feita pelo Matz ).
Inclusive você pode importar várias bibliotecas do Java e tudo mais.
Iron Ruby
Você usa a plataforma .NET da Microsoft? Então procure por esse cara! Eu não tenho muito a comentar por que não uso .NET.
É claro que não existem só esses aí em cima, apenas estou citando algumas coisas legais, mas se você procura por desenvolvimento web você pode escolher Sinatra, Merb ( ainda não se fundiu com o Rails, mas isso vai acontecer na versão 3 do Rails ), ou outros.
E se você apenas pensa em desenvolver para Desktop, alem do Shoes, você pode escolher, o RubyGTK, o MacRuby ( para usuários MAC ) ou até o FXRuby!
Se você não é programador, e trabalha com administração de sistemas, por que não utilizar Ruby para automatizar as tarefas? É fácil, tem manutenção simples, vem padrão em várias distribuições Linux…Não tem desculpa!
Meu foco nesse post não é abordar a fundo nenhuma das ferramentas que eu citei acima, e sim apenas dar um overview de tudo que você pode fazer usando essa linguagem.
Puxa, gostei! Como usar?
Moleza! Está no Linux né? Se estiver usando Ubuntu só dê os comandos mágicos:
sudo apt-get install ruby irb rdocNão está no Linux? Humm…No Windows é fácil tambem, baixe o executável e instale. Não tive muito contato com um mac ainda para instalar coisas e tudo mais, mas me parece fácil.
Basta clicar aqui e pegar os arquivos necessários para a instalação!
Vixe…Instalei, e agora?
Agora é hora de brincar um pouco com a linguagem para saber como ela funciona! Eu recomendo você a entrar no IRB ( Interactive Ruby Shell ) e começar a brincar!
Para acessar o irb é aquela moleza de sempre, apenas entre no terminal e chame por irb ( acho que funciona assim no Windows tambem )!
Lá você pode tentar executar uns códigos, inclusive os poucos exemplos que eu postei aqui, é muito legal para você conhecer a linguagem, descobrir uns métodos e tudo mais.
Já estou no IRB, mas eu não sei fazer nada…
Bem, agora é partir para as cabeças!
- Eu recomendo você a começar lendo o tutorial de Ruby do TaQ que é um material bem legal para começar.
- Se seu ingles é bom ( não precisa ser fluente, mas você precisa saber ler e enteder ) eu aconselho firmemente você a participar de algum curso Core do Rubylearning.org, e lá você vai aprender bastante coisa, alem de se divertir bastante.
- Leia alguns dos livros gratuitos que estão disponíveis na web gratuitamente e em português! Eu recomendo o Aprenda a Programar e o (comovente) guia de Ruby do Why. ( obrigado pela dica Abraão )
- Participe de Grupos de usuários para aumentar seus conhecimentos e conhecer pessoas que tambem estão interessadas na linguagem e sempre estudando! Se você está em São Paulo eu recomento fortemente você a participar do GURU-SP!
- Fique de olho aqui no blog que eu pretendo começar a postar umas coisas básicas, mas não espere somente por mim e já inicie seus estudos!
Bem, com isso você já tem uma pequena base do que é o Ruby ( e sabe que o Rails é apenas um framework feito em Ruby ) e já pode começar a se divertir com ele!
Há braços
Plugin para WordPress: Anti IE6 Army
Æ!!
Estou postando para anunciar que foi lançada a versão 1.0 do meu plugin para WordPress chamado anti-IE6-army!
A idéia do plugin é juntar um exército de campanhas contra o Internet Explorer 6 que estão perdidas pela internet em um único plugin, para que todos que possuem blogs com WordPress possam usar facilmente, sem precisal alterar HTML, ou abrir qualquer arquivo de código!
Aqui no blog tem uma página só para falar do Plugin, e lá você pode obter mais informações.
Espero o comentário de vocês sobre o Plugin, e se quiserem contribuir com código, o projeto está no GitHub!
Esse foi o meu Call to Arms, agora espero que vocês realmente usem!
English Version
I’m posting here to announce my anti-IE6-army WordPress Plugin!
The idea behind this project is unite a lot of campaigns against Internet Explorer 6 that are splitted on the internet on one single wordpress plugin, so everybody with a WordPress blog will can use it easily, without change any HTML, or open a single code file!
You can read more about this plugin on the plugin page at this blog.
I’m waiting your comments about the plugin, and if you want to contribut with code, the project is on GitHub!
This post is my Call to Arms! Now i hope you really use this plugin.
Há braços
Rails X Django
Æ!!
Como todos sabem eu sou do mundo Ruby/Rails ( Não sou xiita mas é o que mais gosto ) e de vez em quando começo a brincar com coisas diferentes para poder formar a minha própria opinião sobre o assunto. No mes de fevereiro me surgiu um projeto bem interessante para trabalhar, pessoas legais, oportunidade legal, bem interessante! O projeto seria feito em Python/Django, e achei bem interessante a idéia de poder comparar várias coisas do Rails com o Django.
Bem…Vamos as minhas comparações:
Pontos fortes
- Como primeiro argumento, e incontestável para mim, tenho que dizer que o admin do Django é muito legal! Você consegue fazer coisas bonitinhas e funcionais com uma facilidade espantosa! Sei que no Rails podemos fazer um scaffold ( ou até usar o ActiveScaffold, mas não é tão bom ) e criar facilmente um CRUD para mexer nos dados, mas isso não é um admin pronto, é apenas uma forma fácil de se manipular os dados. Penso eu que com o Rails seja mais facil de se criar um admin personalizado, com Design próprio, mas gostei bastante da solução a curto prazo do Django.
- Achei bem interessante como podemos fazer a divisão de trabalhos com o nosso HTML(er) / JavaScript(er), por que o Django dá pouquíssima liberdade para o template com relação a código, ou seja, você define na sua view as query’s que vão ser mandadas para o template e no template ele vai usar apenas o que você pode mandar, e não vai poder consultar ou fazer maiores alterações no conteúdo, portanto, quem deve cuidar de como o conteúdo vai chegar ao template são os programadores que vão enviar os dados para quem vai fazer a integração com o layout.
Pontos fracos
- Não encontrei uma padronização / centralização para os plugins do Django…Você encontra vários modos de instalação para determinados plugins, alguns vem com setup.py, outros falam para você jogar na pasta do Python. Não tem algo centralizado como as gems do Rails ou os próprios plugins para jogar na pasta vendor/plugins, ou usar um script/plugin install …
- Não cria uma estrutura de pastas, deixando que você faça o que bem entender com a estrutura, ao invés de usar uma convenção sobre configuração.
- Talvez seja a inexperiencia, mas eu não achei legal o que tivemos que fazer com o settings, pois cada um precisava colocar uma configuração diferente de diretórios de imagens, ou algumas configurações referentes aos plugins ( filebrowser no caso ), portanto cada um tinha que ter um settings.py diferente, informando o settings.py quando vamos executar alguma coisa.
- Não me acostumei muito bem com o esquema de indentação do Python…Não que seja ruim, mas como estavamos trabalhando em sistemas operacionais diferentes de vez em quando aparecia um indentation error por causa de conversões de tabs em espaços e tal. Sei que esse argumento vai ser facilmente contestado com um: “É só configurar o seu editor de texto” ou “usa um editor de texto multiplataforma”, mas mesmo assim…A idéia da indentação é legal, mas ainda me atrapalha um pouco.
Bem, é isso! Essas foram as minhas primeiras impressões do Django, como disse, não tinha experiência com o framework e muitas coisas poderiam ser evitadas mais facilmente, ou feitas de um modo bem melhor.
Continuo gostando bastante do Rails, mas achei muito legal várias idéias do Django, e acho que tem aplicações legais dependendo do projeto que você for usar.
Há braços
Projeto de fevereiro
Æ!!
No mes de fevereiro eu estive envolvido com um projeto bem interessante na empresa que estou trabalhando ( ainda vamos trabalhar mais em nosso site
), que foi feito em Python / Django e deveria gerar páginas estáticas ( exigencia do projeto ).
Tivemos um prazo muito curto para tudo que deveria ser feito, o que gerou uma grande quantidade de trabalho fora do horário e dos dias comuns. Entre o começo e o fim do projeto, tínhamos o carnaval, portanto tivemos que deixar nossos espíritos carnavalescos guardados e partir para o trabalho árduo no feriado até horas indeterminadas.
O ambiente de trabalho era bem legal, trabalhamos onde chamávamos de The Rubens, que tinha tudo o que precisávamos para nos sentir a vontade:
Obviamente nada melhor do que instrumentos ( para uma leve descontraída antes de voltar ao trabalho árduo ), pessoas motivadas, barrinhas de cereal, livros ( vários nomes interessantíssimos nessa biblioteca! ) e programação! A única coisa que não tínhamos era tempo o suficiente para fazer tudo tranquilamente, mas aproveitamos bastante o tempo.
Trabalhamos todos os dias durante o carnaval, sábado, domingo, de madrugada, e em qualquer outro horário que fosse possivel ( hehe ). Nosso repositório Git já estava bem legal no gráfico de Network do GitHub, entre emaranhados coloridos!
Durante o caminho tivemos que enfrentar alguns contratempos, como o calor infernal, a falta de energia elétrica, a quantidade de novidades para lidar, tanto com o Python / Django, como com o Git e outras coiasas mais!
Nenhum dos contratempos pode nos barrar muito! Com o calor vieram os ventiladores, com a falta de energia veio o nosso local de trabalho provisório ( só durante aquele dia ), e o prazo curto nós conseguimos vencer com muitas barrinhas de cereal e horas de trabalho.
Ahhh! É claro que no meio de toda a correria tinhamos que ter tambem o nossos momentos de descontração, alem do nosso amigo Darth Vader que aparecia na hora dos conflitos do merge… hehehe
Entre nossas descontrações ( geralmente pouco antes de ir embora, 22:00h ) tinhamos sessão violão e sitar, ou momento Guitar Hero, ou jogo de alvo + dardos, um pouco de tiro com o Open Arena entre outras coisinhas.
Estavamos trabalhando com 2 Macs, 1 Windows e 1 Linux, portanto sempre tinha as boas e velhas conversas sobre o melhor sistema operacional, que é claro que o Linux é o melhor ( haha, pelo menos aqui eu sou o root para dizer isso…hehehe ).
Enfim…Foi um projeto corrido, dormimos pouco, trabalhamos muito, consideramos feriados e finais de semana como dias normais de trabalho, mas…Como diria o Rubens ( algo parecido com isso ):
“É dos projetos mais difíceis que ficam as suas ótimas recordações”
Portanto, na minha humilde opinião, se você tiver a oportunidade de entrar naquele projeto difícil com bons amigos, faça que vai valer a pena!
Update: Bem lembrado pelo Nelson! Nós temos o nosso vídeo de comemoração, quando terminavamos nossas features:
<
p style=”text-align: center;”>
Há braços
Ruby Inside Brasil

Æ!!
Há um tempo já que eu deveria ter postado sobre o Ruby Inside Brasil, mas estou esvaziando aos poucos o meu Todo List e estou aproveitando a promoção que eles fizeram para liberar esse post tambem.
O Ruby Inside Brasil é a edição autorizada do Ruby Inside mantido pelo Peter Cooper. Uma ótima iniciativa para postar bom conteúdo em português.
A idéia inicial do projeto foi do Carlos Brando, que junto com vários outros colaboradores está contruindo o nome do Ruby Inside Brasil, e tem como idéia não apenas postar traduções dos conteúdos do Ruby Inside em inglês, mas tambem postar conteúdo próprio escritos por desenvolvedores brasileiros, cobrindo tudo que acontece relacionado a Rails e Ruby aqui Brasil!
Ajude a divulgar o projeto no Twitter, postando em seu blog, falando para os amigos e tudo mais. Se você possui uma empresa e quer patrocinar o projeto entre em contato com os responsáveis pela página de contato.
Parabens a todos envolvidos no projeto.
Há braços
Colocando sua aplicação Rails na Dreamhost
Æ!!
Estou fazendo um pequeno site em Rails e como tinha que mostrar o andamento para um colega, aproveitei para testar como seria o Deploy desse projeto na DreamHost ( mesmo sabendo que o provedor final não será lá ), e achei muito fácil de se fazer, portanto resolvi escrever um pouco sobre o processo.
Primeiramente, você precisa ter acesso SSH na sua conta. Se você ainda não tiver esse acesso apenas faça o seguinte procedimento:
- Acesse o menu Users > Manage Users
- Clique em Edit no user que você vai usar para o acesso SSH
- Marque a opção Shell account – allows SFTP/FTP plus ssh access.
A partir daí você pode acessar por SSH assim como acessava por FTP, com esse usuário e senha.
Agora que temos acesso SSH a conta, vamos colocar nossa aplicação lá! Se ela estiver no GitHub você pode fazer um clone da sua aplicação facilmente:
git@github.com:usuario/projeto-qualquer.git
Se não estiver no GitHub você pode fazer um pacote tar.gz e enviar facilmente por scp:
tar cvf app.tar.gz aplicacao-quaquer/ scp usuario@xxx.xxx.xxx.xxx:/home/local/da/applicacao app.tar.gz
*Sendo que o xxx é o endereço IP ou Nome da sua maquina na Dreamhost
Com nossa aplicaçào lá, vamos criar o nosso domínio ou sub-domínio no painel de controle da DreamHost , pelo menu domains > manage domains Geralmente seu domínio demora um pouco para começar a funcionar, mas você não precisa esperar que ele esteja totalmente funcional para que você continue o processo
O que você precisa fazer é?
- Ativar o Ruby on Rails Passenger (mod_rails)
- Apontar o Specify your web directory para o diretório public da sua aplicação
Agora que temos o nosso domínio criado e validando ( lembre-se que não é instantâneo ), podemos configurar o nosso banco de dados!
Acesse o Manage Mysql pelo menu Goodies > Manage Mysql e preencha o formulário que está logo abaixo dos bancos de dados já existente ( se houver ) para criar um novo banco.
Com o novo banco de dados criado, vamos adaptar nossa aplicação para usá-lo!
Vá no arquivo config/database.yml e altere as informações da seção production para o que foi configurado no painel..
Agora com tudo configurado, vamos rodas as nossas migrations para as configurações de produção:
RAILS_ENV=production rake db:migrateCom isso você já terá seu projeto funcionando assim que o domínio se propagar!
Foi bem mais simples do que eu pensava, como eu deixei o repositório com Git lá, basta eu fazer as alterações localmente e dar um push que já terei minha aplicação alterada lá!
É isso aí, espero que seja útil para vocês.
Há braços
Search
Recent Posts
WP Cumulus Flash tag cloud by Roy Tanck and Luke Morton requires Flash Player 9 or better.
Categories
Personal Links
Archives
- April 2012
- May 2011
- April 2011
- March 2011
- January 2011
- December 2010
- October 2010
- September 2010
- August 2010
- July 2010
- April 2010
- March 2010
- February 2010
- January 2010
- December 2009
- November 2009
- October 2009
- September 2009
- August 2009
- July 2009
- June 2009
- May 2009
- April 2009
- March 2009
- February 2009
- January 2009
- December 2008
- November 2008
- October 2008
- September 2008





