Esercizio con le mappe mentali (per tutti)

May 24th, 2008

Cosa fare quando il sabato sera si è a casa influenzati? (troppa acqua presa in moto)

Ho deciso di fare una mappa mentale per descrivere ciò che faccio nella realtà e quello che vorrei fare. E’ un esercizio che tutti potrebbero farsi, sia per analizzarsi, sia per imparare la tecnica delle mappe mentali.

Ho messo qualche BOIs di troppo (più di sette) ma credo che sia una buona mappa…

Who Am I - Mind Map

Ciao Piero

Una shell Ruby

May 21st, 2008

Per chi non seguisse la Mailing List nazionale di Ruby, un utente questa mattina ha segnalato l’esistenza di rush, una shell unix con sintassi Ruby.

Dedicata ai ruby-maniacs e ispirata alla M$ PowerShell di .NET utilizza il paradigma object oriented come punto di forza nella sintassi.

L’ho subito provata, mi è sembrata un po’ scomoda (ad esempio non si ha il concetto di CWD, che viene rimpiazzato da una istanza di un oggetto directory che possiede i metodi classici tipo ‘ls’).

Questa shell potrebbe essere molto comoda da integrare nella console Rails o in Capistrano…

La potete installare come gemma seguendo le istruzioni su

http://rush.heroku.com/

e leggere una migliore recensione su infoQ

http://www.infoq.com/news/2008/02/rush-oop-shell

Lotus Notes 7, Ubuntu 8.04, Firefox 3

May 19th, 2008

Se avete i Ubuntu 8.04 (quindi anche firefox 3) probabilmente non riuscirete ad installare Lotus Notes 7 a causa dell’errore “Could not validate mozilla version” / “Impossibile convalidare la versione di Mozilla”

Questo a causa di un bug dell’installer che genera un script bash che controlla la versione e le dipendenze corrette delle librerie GTK/XulRunner/Mozilla. Per ovviare a questo inconvegnente ho utilizzato un workaround, non molto elegante, ma funzionante.

Ecco come funziona l’installer:

1) L’installazione di notes avviene normalmente nella cartella /opt da utente non root

2) L’installer scrive il file il risultato del comando ldd (che controlla le dipendenze) in un file temporaneo (/tmp/iwcttmp.out)

3) L’installer controlla il risultato in iwcttmp.out e fallisce (non ho capito perché, ho sclerato un paio di ore con strace ma niente da fare…)

Ecco come ho installato notes:

1) Ho eseguito da ROOT il comando

ldd “/usr/lib/mozilla/libgtkembedmoz.so” | grep gtk>&/tmp/iwcttmp.out

in questo modo l’utente normale non avrà i permessi di scrittura su quel file quindi non potrà rigenerarlo

2) Si può ora eseguire l’installazione di Lotus Notes 7 (da utente non root) tranquillamente!

Non sarà una soluzione elegante…. ma funziona…

Ciao Piero

UPDATE: Sembra che questo ‘trucchetto’ abbia funzionato solo sulla mia macchina, in un altra il problema è persistito.

NoMachine e aggiornamento ssh

May 16th, 2008

Recentemente è stato scoperto un baco nel pacchetto Debian (e ubuntu) di ssh dovuto ad un packager che ha commentato due linee di codice nel sorgente del generatore di chiavi. Se avete aggiornato il vostro server se chiavi ssh saranno state rigenerate, facendo scadere vecchie chiavi salvate sui client.

Per una sessione ssh “normale” è sufficiente eliminare (o modificare) sul proprio client il file ~/.ssh/known_host che verrà rigenerato alla prima connessione.

Se avete NoMachine come client X (una X-client molto comodo per gestire le sessioni sui server in modo simile a RDP di Windows) dovrete aggiornare le chiavi sul server anche nella cartella home di NX.

1) eliminate il file  known_hosts di NX: “sudo rm /usr/NX/home/nx/.ssh/known_host”

2) copiate la nuova chiave ssh nella cartella home di NX: “cp /etc/ssh/ssh_host_rsa_key.pub  /usr/NX/home/nx/.ssh/known_host”

3) That’s all!

Mappe mentali… anche nei db!

April 2nd, 2008

Oggi ho dovuto effettuare qualche lavoro di aggiornamento su un database, utilizzando delle query – per me – piuttosto complesse dal punto di vista logico.

Per organizzare il lavoro e pensare ai risultati aspettati, mi sono preparato una mappa mentale delle tabelle e delle procedure in questione, utilizzando diversi simboli grafici per dare un significato istantaneo alle tabelle. Il risultato? Ora il db mi è molto più chiaro e qualla parte di lavoro è stata effettuata correttamente.

Per me, questa è una dimostrazione della flessibilità delle mappe mentali e del radiant thinking, tecnica molto ben spiegata nel libro ‘Mappe mentali’ di Tony e Barry Buzan.

E’ molto importante associare un simbolo grafico ad un elemento testuale di una mappa, per me questo è stato un passo piuttosto difficoltoso, anche perchè ero convinto di non avere nessuna abilità grafica, ma con l’esercizio mi è stato possibile migliorare anche sotto questo aspetto. Oltremodo mi è stato utile fare ‘mindmapping’ a mano piuttosto che con software come FreeMind. Sebbene il computer sia più semplice da usare e permette correzioni più veloci, non mi consente di esprimermi al meglio: se voglio fare uno scarabocchio con la matita per indicare movimento o una azione nel tempo il foglio di carta è sempre il più indicato… quindi armiamoci di un bel bloccone di carta bianca (non quadrettata) e di qualche pennarello colorato e alleniamo e istruiamo le nostre sinapsi con le mappe mentali!

Ottenere la revisione SVN nella vostra applicazione Rails

February 25th, 2008

Se volete stampare il numero di revisione della vostra applicazione Rails su una pagina potete fare come segue:

  1. Aprite il file config/environment.rb
  2. Aggiungete questa linea
    “MY_APP_REVISION = %x[(cd "#{RAILS_ROOT}" && svn info | grep Revision | cut -c 11-)].strip”
  3. Salvate e aprite la view dove volete visualizzare il numero di revisione
  4. aggiungete la linea “<%= MY_APP_REVISION %>”

Il comando funziona come segue:

  • %x[] è simile alla funzione system() di ruby e permette di eseguire un comando in una shell e catturarne l’output
  • tutti i comandi sono rinchiusi all’interno di due parentesi tonde in modo da aprire una nuova shell esclusivamente per questo comando
  • prima mi posiziono della directory principale di rails, se ho successo, lancio il comando ’svn info’ che mi ritorna tutte le informazioni sul mio repository svn
  • redirigo l’output a grep che mi filtra le linee contenenti la parola ‘Revision’ (in questo caso una sola), otterrò così la stringa ‘Revision: 580′
  • redirigo di nuovo l’output (‘Revision: 580′) al comando cut che taglia una stringa. I parametri passati a cut sono ‘-c 11-’ ovvero taglia dal carattere 11 fino al termine della linea
  • L’output ottenuto da %x[] sarà una stringa terminata da ‘\n’, per eliminare il carattere di fine linea utilizzo il metodo standard della classe string strip().

Naturalmente questo tip funziona solo su sistemi unix-like

Ciao Piero

Sessioni vecchie e Rails 2.0

February 20th, 2008

Se stupidamente, come me, avete utilizzato le sessioni nella vostra WebApp memorizzando molto più che lo stretto necessario avrete qualche problema con Rails 2.0 ricevendo errori di Cookie Overflow.

Infatti di default Rails 2.0 utilizza CookieStore per salvare le sessioni limitando così a 4Kb la dimensione massima della sessione. Per ‘tamponare’ questo problema potete tornare ad utilizzare il vecchio metodo di Rails 1.x: PStore.

Modificate il vostro file config/environment.rb e aggiungete questa linea:

config.action_controller.session_store = :p_store

e tutto tornerà a funzionare come prima.

Press any key

December 30th, 2007

Ecco una bella figura dell’Italiota di turno…  che crede che il “press any key” significhi premere il tasto “any”…

Leggere il thread per credere

http://www.hwupgrade.it/forum/showthread.php?t=1263518

Lavorare in un ambiente confortevole: quanto conta nell’IT?

December 19th, 2007

vedere per credere!
[youtube R90Zs60HXms]

10 Things Every Java Programmer Should Know About Ruby

December 12th, 2007

Sul sito Ruby-doc sono riportate le slides di Jim Weirich alla Open Source Conference del 2005 riguardo a ruby.

Sono molto interessanti e utili, la lettura non porta via più di 10 minuti…

Il link è questo

Il blog di Weirich è questo