Monthly Archive for abril, 2007

Introducció a Haml: un sistema de vistes web collunut

Haml va ser concebut per tal de fer vistes amb ruby on rails que fossin el més llegibles possible.

Per generar vistes amb aquest sistema cal instal·lar un pluguin a la nostra aplicació rails:


$./script/plugin install http://svn.hamptoncatlin.com/haml/tags/stable

Aquesta ordre el que fa és descarregar els fitxers del plugin i els copia a la carpeta “vendor/plugins” de la nostra aplicacio rails.

Un cop instal·lat el pluguin, per crear plantilles hem de posar l'extensió .haml als fitxers de les vistes en comptes de .rhtml.

Per resumir una mica haml defineix els tags posant:

  
  %nom_tag
  
  Es converteix en:
  
  
  
    
  

Per posar les propietats d'un tag:

  
  %tag{ :propietat => "valor", :propietat2 => "valor2"}
  
  Es converteix en:
  
  
  
    
  

Si volem posar un tag del tipus %br que no es tanca li hem de posar / al final:

  
  %br/ 
  
  Es converteix en:
  
  
  

si és un tag amb propietats posem la contrabarra al final:

  
  %tag{...}/
  

Per aniuar tags un dins l'altre cal identar amb dos espais.

Per posar la propietat id d'un tag hem de posar (#) i per posar un class (.).

  
    p#prova.hola="Hola"
  
  Es converteix en:
  
  
    

Hola

Si senzillament volem posar un div

    
  #id.class
  
  Es converteix en:
  
    
  

Quan no posem nom al (#) haml ho converteix en un div

Si per exemple volem definir una taula:

  
  %table{:border => 1}
      %tr
        %td{:width => 20}="el que sigui"
        %td{:width => 50}
          posem el text que ens vingui de gust
      %tr
        %td{:colspan => 2}="Això és un text"
  
  Es converteix en:
  
  
  
el que sigui posem el text que ens vingui de gust
Això és un text

Per inserir codi ruby en mig s'ha d'emprar el guió mig(-):

  
  %html
      %head
        %title="Prova"
      %body
        - unless flash[:notice].nil? 
        #error="Missatge d'error"
        - end
  

Nota: cal identar el codi ruby a dins del tag corresponent

SSH tunneling and SOCKS

Ssh protocol is used to stablish connections to remote machines in a secure way. Using it and socks is possible to avoid restrictions of a proxy and get free Internet connection.

To get full Internet access without proxys limits is needed to connect to and intermidied server using ssh.
Connection is encrypted, so proxy can't track our movements because information travels throw an encryted tunnel.

Connections scheme

What do we need?

To be able to create a tunnel is needed:

– Ssh client (such as putty)

– Ssh server (it's easy with Debian: apt-get install openssh-server)

(Of course both, client and server, must be connected to an Internet connection)

Creating the ssh tunnel

Tunneling with Unix, Linux and Mac OS X

Open a new shell session:

ricard$ ssh -p 22 -DN 9999 userName@ssh-server-adress

We type our password and we've got a tunnel running.

Notice:Port 22 is set by default, so “-p 22″ is not needed unless your server listens connections in anther port.

N parameter will avoid shell start, we only start the tunnel. Port 9999 is the local port we use to get into the tunnel.

Tunneling in windows

First of all download putty

client.

Then execute it:

Putty's main window

Set servers hostname or ip and port(by default is set to 22), choose connection type SSH.

SSH properties configuration

Check “Don't start a shell or command at all”, protocol version 2 and set Blowfish encryption cipher after — warn below here –.

Tunel properties

Set local port we use to access to tunnel (ex: 9999) and select “Dynamic”. Then press “Add” and must appear D9999 in the list.

Once everything is configured, go back to the first screen(“Session”) and save configuration settings putting a name and then press save. Finally we press into Open, set you username and password and that's all. It's easy, isn't it?

Setting up your broswer to use tunnels

Firefox

Go to firefox preferences:

Advanced/Network

Advanced -> network -> parameters

Firefox socks setup localhost 9999

Set localhost and port 9999 just like the screeshot.

Optionaly you can add local adress you don't want to pass throw tunnel such localhost, 127.0.0.1 and your netowork address.

Apple Safari

Configure Mac OSX to use a tunnel

This will make our computer to use tunnel for all connections.

If we want to omit some adress we must set them just like in firefox configuration.

Internet Explorer 7

Go to preferences

Go to Internet Options

Configuring connections to tunnel

Set socks adress localhost and port 9999. It's just like the same as previous one's.

If you want to configure for example e-mule or any p2p client to go throw a ssh tunnel SOCKS just set localhost and port 9999 in proxy configuration window.

Tunels ssh amb SOCKS

El protocol ssh serveix per establir conexions a màquines remotes de forma segura. Amb això i els socks podem conectar-nos a Internet lliurement si per exemple estem en un lloc on hi ha un proxy que limita la conexió.

El que fem amb això és conectar a un servidor intermediari que ens permet accés total a la xarxa i sense les limitacions del proxy. La conexió aquesta és encriptada, de manera que el proxy només sap que hem establert una conexió segura, però no pot saber quina informació hi viatge, ja que les dades queden encriptades.

Conexió normal i per tunel ssh

Ingredients

Per poder crear un tunel ens calen dues coses:

– Client ssh

– Servidor ssh

(Obviament cal que tots dos, client i servidor, estiguin conectats a Internet)

Creació del tunel ssh

Tunels amb windows

Necessitem descarregar el client ssh putty

Si l'executem:

Pantalla inicial del putty

Hem de posar el nom o la IP del servidor ssh i el port que normalment és el 22 i indicar que que el tipus de conexió és ssh.

Configuració de les propietats del protocol ssh

Marquem “No començar shell or comandes”, indiquem que la versió del protocol és 2 i el xifrat Blowfish a sota de — warn below here —

Propietats del tunel

Indiquem el port local(ex: 9999) des d'on accedirem al tunel i seleccionem destinació dinamica. Llavors fem “Add”. Ens apareixarà D9999 a “Forwarderd ports”.

Un cop tenim tot això configurar anem a la pantalla del principi “Session” i desem la configuració: posem un nom a “Saved Session” i premem a “Save” i ja podem fer Open. Posem el nom d'usuari i contrassenya. La pantalla quedarà fixa.

Túnels amb Unix, Linux i OS X

Obrim una sessió de shell:

ricard$ ssh -p 22 -DN 9999 nomUsuari@adreça-servidor-ssh

Posem el password corresponent i ja tenim el túnel creat.

Observació:-p 22 no cal posar-ho, però si el nostre servidor ssh reb les conexions per un altre port cal indicar-li.

El parametre N farà que no s'obri sessió de shell i 9999 és el port local per on accedirem al nostre túnel.

Configurar navegador perquè utilitzi el tunel

Firefox

Anem a les preferències del firefox:

Avançat/Xarxa

Avançat -> Xarxa -> Paràmetres …

Ordinador central de socks localhost 9999

Indiquem que l'ordinador central SOCKS és localhost i el port 9999.

Opcionalment podem afegir la nostra adreça de xarxa si posem pel cas que tenim una xarxa interna on la nostra màquina és 192.168.1.5, posarem tal com surt a la imatge, que no faci passar pel tunel les peticions internes posant 192.168.1.0/24.

Apple Safari

Configurar Mac OSX perquè utilitzi tunel

Amb això farem que totes les conexions del nostre sistema que surtin per la “Ethernet incorporada” viatgin pel túnel ssh.

Si volem ometre que adreces locals viatgin pel túnel ho indiquem al requadre de sota igual que hem fet amb el firefox.

Internet Explorer 7

Anem a les preferències

Anem a les preferències

Configurem les conexions cap al tunel

Configurem els paràmetres de conexió: localhost i port d'entrada al túnel.
Igual que en els altres podem configurar adreces que no passaran pel túnel.