Arquivo de março \28\+00:00 2013

Assinatura no Thunderbird

Faz muito tempo que eu não usava assinatura com imagens nos meus e-mail, mas a empresa onde trabalho resolveu padronizar o modelo de assinatura para variar e eu não tinha ideia de como fazia para se colocar imagens nas assinaturas do Thunderbird, então de uma googlada e descobri que era simples, basicamente um arquivo html + caminho das imagens resolve. O Thunderbird lê o arquivo e formata ele para ser usado como e-mail. A dica é o formato que vai ser colocado o cominho das imagens na tag img, você só precisa colocar o caminho completo para a imagem usando o file://, fica abaixo um exemplo:

<html>
<body>
<div style="font-size:9pt;color:#1F497D;">
 <table>
 <tr>
 <td><img src="file:///home/pablo/Imagens/email/logo.png" /></td>
 <td style="font-size:9pt;color:#1F497D;">
 <span style="font-size:9pt;color:#1F497D;font-weight:bold;">Pablo Alexander</span><br />
 <span style="font-size:9pt;color:#1F497D;font-weight:bold;">Tecnologia da Informa&ccedil;&atilde;o</span><br />
 Tel.: (11) 1234-5678 [123]<br />
 E-mail: pablo@cloudwall.com.br<br />
 Site: www.cloudwall.com
 </td>
 </tr>
 </table>
 <img src="file:///home/pablo/Imagens/email/regando.jpg" />
</div>
</body>
</html>
logo.png

logo.png

regando.jpg

regando.jpg

Deixe um comentário

Ruby: Código útil

Para que está começando o ruby agora ou para quem precisa volta e meia descobrir onde está armazenado as bibliotecas do rubygems fica o seguinte script.

#!/usr/bin/ruby
# Obtem o local de uma gem especifica
require 'rubygems'
puts Gem::Specification.find_by_name(ARGV[0]).gem_dir

Use-o assim:

$ chmod a+x local.rb
$ ./local.rb rails
$ ./local.rb railties

Deixe um comentário

Apreendendo Ruby na prática

Esse é um curioso titulo para uma postagem, mas uma verdade, depois que você se acostuma com a lógica de programação e passa trabalhar com ela, torna-se desnecessário apreender uma linguagem de programação do zero, já que todas sempre vão ter os mesmo recursos primários de condição, repetição e manipulação. Cada uma com suas particularidades, tendo isso em mente resolvi apreender Ruby on Rails na prática, isso mesmo que você entendeu, peguei um projeto com prazo para terminar e resolvi fazer em RoR, mesmo nunca tendo sequer trabalhado com Ruby, isso foi de qualquer forma um auto desafio onde que eu queria ver a minha capacidade para fazer um sistema onde eu ainda teria que estudar a linguagem e o framework que eu iria usar, isso poderia dar em MERDA! E me custar um bom cliente, mas essa era emoção do desafio, moral da história, terminei o projeto na metade do prazo e usei o resto do tempo para testar a capacidade do Ruby on Rails.

A linguagem Ruby como eu tinha pensado foi muito fácil de apreender, não precisei de muito tempo para adaptar-me a ela, já o Rails demorei algum tempo para entender a sua lógica, principalmente para entender que ele já auto gerava basicamente 70% dos códigos para mim, isso foi frustrante e ao mesmo tempo um alivio, já que o tempo que eu economizava com o framework eu poderia usa-lo em outros projetos, ou seja, mais GRANA para mim, de qualquer forma percebi algo interessante de Ruby on Rails, que ele não é uma linguagem boa para você ensinar para alguém que está apreendendo a programar, digo isso porque ele facilita tanto a sua vida que se você na não tiver apreendido as boas práticas em outras linguagens como Pascal e C++, dificilmente você irá praticá-las com Rails.

Nessa postagem vou mostrar o ambiente que eu criei para desenvolvimento com Ruby on Rails e vou cria o nosso primeiro projeto em Ruby on Rails, com essa ambiente criado ficará fácil publicar nosso projeto em um servidor cloud já que as configurações seram baseadas em um plano de hospedagem cloud real da locaweb (Cloud Server PRO). Para isso vamos precisar dos seguinte itens:

  • Um computador com uma distribuição GNU/Linux devidamente configurada
  • VirtualBox Instalada
  • CD/ISO do Ubuntu Server 12.04 LTS
  • Acesso a internet

Eu recomendo que a configuração da maquina virtual seja igual a do plano que você pretende contratar quando for publicar seu projeto, no meu caso usei a seguinte configuração:

  • 2 vCPUs de processamento
  • 512MB de memória
  • 8GB de armazenamento

“Sendo que na instalação do Ubuntu Server reservei 512MB de armazenamento como partição swap.”

Vão ser instalados a seguinte lista de programas:

  • Nginx (Como proxy reverso)
  • NodeJS
  • “Ambiente de desenvolvimento C/C++” (gcc g++ make)
  • “Biblioteca SQLite3” (libsqlite3-dev)
  • Ruby
  • Bundle
  • Rubygems
  • Rails
  • Passenger (Como servidor de aplicação via socket)

Não vou mostrar como instalar o Ubuntu Server LST 12.04 em uma maquina virtual, vou mostrar como configurar o Ruby on Rails após a instalação do mesmo. Para isso é necessário ter um conhecimento básico em ambiente GNU/Linux e arquivos de configurações.

Instalando o Servidor

Instalando o Servidor

Eu costumo realizar todas configurações primárias na própria maquina virtual e depois usar o ambiente de desenvolvimento via SSH, mais isso é opção de cada um. Após instalada a maquina, antes de começarmos a instalar e configurar os aplicativos é recomendado atualizar o sistema.

$ sudo su
# apt-get update&&apt-get upgrade -y&&apt-get install aptitude vim -y&&reboot

Atualizando o Sistema

Atualizando o Sistema

Coloquei um reboot no final do procedimento porque normalmente quando se atualiza pela primeira vez é instalado uma versão recente do Kernel e com isso é necessário reiniciar a maquina para que a nova versão seja usada. Após atualizado já podemos mandar instalar os principais serviços:

$ sudo su
# aptitude install vim-ruby ruby1.9.1 rubygems1.9.1 nodejs nginx nginx-common nginx-full gcc g++ make libsqlite3-dev

Instalando...

Instalando…

Para as ultimas instalações vamos usar o rubygems que é um gerenciador de pacotes para a linguagem Ruby muito parecido com o apt-get, com esse gerenciador vamos instalar o bundle, sqlite3 e rails que é o suficiente para testarmos.

# gem install bundle –no-ri –no-rdoc
# gem install sqlite3-ruby –no-ri –no-rdoc
# gem install rails –no-ri –no-rdoc

rubygems

rubygems

É opcional o ‘–nori –no-rdoc’, eu gosto de usar essa opção para agilizar a instalação já que eu prefiro estudar a documentação pela internet. As vezes usando o rubygems você pode se deparar com situações de erro como aconteceu na instalação do sqlite3-ruby, mas não entre em pânico! Boa parte dos pacotes do Ruby são mistos de C/C++ e Ruby, isso permite que seja criado complementos que usam os recursos de bibliotecas publicas do sistema operacional. Lembra quando instalamos via aptitude o pacote libsqlite3-dev, ele é necessário para instalar o sqlite3-ruby, mas além dele é necessário instalar o pacote ruby1.9.1-dev que contem os cabeçalhos necessários para compilar os complementos ruby, então digite como superusuário:

# aptitude install ruby1.9.1-dev&&gem install sqlite3-ruby –no-ri –no-rdoc

sqlite3-ruby

sqlite3-ruby

Após isso instale o Rails com o comando descrito acima, a gem rails é a que demora mais para instalar, então dependendo da sua maquina virtual e internet vá tomar um café, arrumar o escritório, fazer alguns comentários no meu blog e talvez quando fizer isso ela tenha terminado de instalar. Apos terminar a instalação vamos criar um projeto rails e testar se está funcionado, para isso siga o seguinte procedimento:

# mkdir /srv/app
# cd /srv/app
# rails new teste
# cd teste
# rails server

O bundle em ação!

O bundle em ação!

Testando

Testando

Quando você executar o ‘rails new teste’ ele irá executar o bundle para instalar automaticamente os complementos que faltam. Agora nosso Ruby on Rails já está funcionando e pronto para o desenvolvimento, mas falta deixa-lo como um ambiente de produção real onde normalmente usa-se uma aplicação servido como o apache ou nginx para rodar várias aplicações Ruby ao mesmo tempo. Assim como a gem sqlite3-ruby o passenger também requer que seja compilado e para isso eu recomendo que seja instalada a libcurl4-nss-dev já que quando se instala ela o apt-get instala as dependências que satisfazer os requisitos do passenger.

# aptitude install libcurl4-nss-dev
# gem install passenger –no-ri –no-rdoc

Com o passenger instalado basta criarmos um bash script dentro do nosso aplicativo ruby para iniciar o serviço do passenger como um socket:

# cd /srv/app/teste
# touch socket.sh
# chmod a+x socket.sh
# vim socket.sh

E coloque o seguinte conteúdo nele:

#!/bin/bash
# Cria o socket usando o passenger
passenger start --socket /tmp/rails_teste.socket -d --nginx-version 1.1.19 --user=root

Esse script cria um socket temporário e aponta que será usado no nginx descrevendo a sua verção para maior compatilidade, além disso aponta um usuário do sistema para evitar problemas de restrição por o passenger não ter poderes sem usuário. Quando for executado o script ele vai baixar e instalar os recursos necessários para que o passenger crie o socket, mas para isso é necessário instalar a libssl-dev:

# aptitude install libssl-dev
# ./socket

Depois de instalados os ultimos requisitos do passenger ele irá criar no socket temporário e ficar rodando nossa aplicação em background, agora só falta configura o nginx para fazer proxy reverso com o passenger, para isso precisamos substituir o conteúdo do arquivo padrão do nginx (#vim /etc/nginx/sites-available/default) para:

upstream teste_upstream {
server unix:/tmp/rails_teste.socket;
}

server {
listen 80;
server_name teste.com.br;
root /srv/app/teste/public;
location / {
proxy_pass http://teste_upstream;
proxy_set_header Host $host;
}
}

Com o arquivo alterado, basta reiniciar o nginx e testar!

# service nginx restart

, , , , , ,

Deixe um comentário