lunedì 27 aprile 2009

IDEe sparse...

IDE = (I)ntegrated (D)evelopment (E)nvironment...
Bah, avrebbero fatto meglio a chiamarlo (I)nvece (D)i andare a zappare la terra (E)cco cosa inventi per trascorrere il tempo.
Iniziare un post frivolo con un po' di polemica è quello che mi ci vuole per sfogare la tensione, tensione causata proprio da questi IDE moderni che, diciamocelo schietto schietto, dovrebbero servire ad abbreviare i tempi di sviluppo ma, a volte, il tempo necessario per installare e configurare il suddetto supera quello che si risparmia usandolo.
Io ho iniziato a programmare quando l'ide si chiamava sistema operativo, erano i gloriosi tempi del Commodore... da allora ne abbiamo fatta di strada.
Fu così che ieri mi trovo a dover (=voler) sviluppare un'applicazione in Java basata su Web service. Unico requisito: Ubuntu come sistema operativo.
A me Java fa venire in mente due cose: Netbeans ed Eclipse. Scelgo il secondo.
Questo viene via facile, una botta di apt-get e ho tutto installato.
Web Service a me fa venire in mente solo una cosa: axis... sì sì, lo so che sono ignorante ma non è che uno può tenere in mente tutto se non lo usa, tanto le cose cambiano troppo in fretta.
Questo invece viene via un po' meno facile... per farla brave se n'è andata quasi una giornata, spesa praticamente tutta a farmi una ragione del fatto che se volgio usare axis2 non c'è apt-get che tenga, mi devo scaricare i pacchetti e scopiazarmelo da qualche parte. In verità ancora non ci credo ma sembra che sia proprio così.
Non è finita: adesso arriva il bello, i WSDL.
Questi wsdl sono così ricchi di metodi che, a quanto pare il mio PC (niente di mostruoso ma un bel processore con 2 giga di ram) inizia a rallentare e a un certo punto schiatta (schiatta=5 minuti a clic). Altra mezza giornata per cercare di caricare il meno possibile e far girare il tutto.
Morale: arrivo a sera tarda con implementato il primo metodo di login... che da un bell'errore.
Ma sono contento per ora, evviva gli IDE, abbasso gli IDE!

giovedì 9 aprile 2009

Tunnel SSH

Nel mondo delle autostrade informatiche mi sembra il minimo che ogni tanto si possano trovare dei tunnel, no? Cosa sono questi tunnel SSH e a cosa servono? E, soprattutto: ce li possiamo costruire sa soli o serve la concessione edilizia?
Nessuna concessione, tanquilli. Innanzi tutto cos'è SSH? E' l'acronimo di Secure SHell e in pratica è un protocollo che permette di stabilire una connessione cifrata con un host, permettendo passaggio sicuro di informazioni. Ha da tempo rimpiazzato il vecchio telnet per quanto riguarda i terminali remoti, in quanto molto più sicura rispetto a quest'ultimo, specie in tempi in cui la privacy è vista con particolare attenzione.Veniamo al sodo. A cosa può servire un tunnel SSH? Uno degli usi più diffusi è il cosiddeto "address binding", tramite il quale si può collegare una porta della macchina locale a un indirizzo e una porta di un qualunque host raggiungibile da una macchina remota. Ma forse è più chiaro con un esempio.
Supponiamo che siamo in ufficio dove ci bloccano la connessione a un determinato servizio (ad esempio VNC, che lavora di default sulla porta 5900). Però ci è concesso di utilizzare SSH per collegarci a qualche macchina che a sua volta ha la porta 5900 aperta verso l'esterno. Abbiamo tutti gli ingredienti per poter costruire un tunnel SSH che collega la porta 5900 di localhost alla porta 5900 della macchina dove vogliamo usare VNC.
Ricapitolando, abbiamo tre attori:
  • La macchina (L)ocale (con porta 5900 chiusa verso l'esterno)
  • La macchina (R)emota su cui vogliamo connetterci con VNC
  • Una macchina che useremo come (P)onte per costruire il tunnel SSH
Quello che faremo è costruire un tunnel SSH da L a P dicendo a SSH di inoltrare la porta 5900 su R. La sintassi è questa:

$ ssh -L 5900:macchina_remota:5900 utente@macchina_ponte


Una volta collegati all'host possiamo iniziare a usare VNC con il comando:


$ xvnc4viewer localhost


Il protocollo SSH permette anche di attivare la compressione, cosa che ci potrebbe dare una mano, specialmente nel caso di connessioni particolarmente lente. Dovendola attivare, consiglio di impostare il massimo valore per la compressione, dato che in genere il collo di bottiglia non è la CPU ma la rete.


$ ssh -L 5900:macchina_remota:5900 utente@macchina_ponte -C -o CompressionLevel=9


Ovviamente il tutto funziona anche se la macchina su cui vogliamo connetterci con VNC è la stessa su cui abbiamo accesso in SSH (tipicamente il PC di casa nostra). Cambia solo leggermente la sintassi, in quanto adesso P coincide con R (quindi R=localhost).


$ ssh -L 5900:localhost:5900 utente@macchina_ponte -C -o CompressionLevel=9
BlogItalia.it - La directory italiana dei blog