Home    About me    Publications    Blog    Undergrad memories

Fabio Ruini's blog

'cause Italians blog better

Archivio per la 'Informatica ed Internet' Categoria

Wonga

Una cosa e’ certa. Una volta che decidi di affidarti ad Internet per cercare un lavoro c’e’ chi si sfrega le mani contento. Sono le agenzie di recruiting, che in men che non si dica si fiondano su di te per infilarti nei loro archivi, nella speranza che siano loro a trovarti qualcosa. E guadagnare su questa operazione le dovute provvigioni. Oggi e’ stato il turno di Mortimer Spinks, una compagnia inglese con sedi a Londra, Birmingham, Leeds e nel Surrey, specificatamente dedicata a gestire “technology talents”. Grazie ad una proposta fattami da quest’ultima sono venuto a conoscenza di un business che assolutamente mi era ignoto. Al secolo, quello dei micro-prestiti on-line.

Nello specifico sono stato infatti contattato con la prospettiva di una posizione da risk analyst presso Wonga. Il core business di questa azienda e’ interessante: offrire prestiti di piccolo importo (£400 max per i nuovi utenti, fino a £1,000 per quelli piu’ fidati) iniettandoli direttamente sul conto corrente dell’usufruitore nel giro di pochi minuti. Fondi da restituirsi entro un periodo massimo di 30 giorni. Il costo di questo servizio, invero, e’ notevole. Un prestito di £400 per 30 giorni viene infatti fatto pagare la bellezza di £125 e rotti, pari al 31% abbondante del “capitale” ottenuto. Ma nonostante tutto pare, a quanto mi dicono, che Wonga faccia affari d’oro e sia in continua e frenetica espansione. Al punto che non solo sta ricercando diverse nuove figure da inserire nel proprio organico, ma offre anche salari altamente competitivi. Decisamente un posticino che potrebbe essere interessante. Anche se quello che cercano, al momento, e’ qualcuno con competenze in statistica decisamente piu’ ampie e approfondite rispetto a quelle che puo’ offrire il sottoscritto.

Share

Lion on P-ARTS: up and running!

Essendo che il mio contratto da Post Doc qui a Plymouth e’ ormai agli sgoccioli e sta arrivando il tempo, per il sottoscritto, di cambiare aria (non sono ancora ben definiti il dove e il come), prima di lasciare il laboratorio ho deciso di spendere un po’ di tempo per dare una risistemata alla nostra P-ARTS, la grid di Xserve messa in piedi nel lontano 2008 (vedi ad esempio qui e qui) grazie ad un finanziamento ottenuto da Apple nel contesto del vecchio programma ARTS.

Scopo principale dell’operazione quello di aggiornare l’OS delle varie macchine, da OS X 10.5 Leopard Server a 10.7 Lion. Procedura non banale, ma della quale abbiamo già discusso a suo tempo (per la precisione in questo post). Procedura in questo caso resa ancora piu’ complicata dal fatto che due delle macchine da aggiornare non hanno scheda grafica installata e l’unico modo che ho trovato per completare su di esse l’installazione (ovviamente da remoto) di Lion ha richiesto l’utilizzo di un cavo Firewire e l’avvio delle macchine in target disk mode da un altro laptop (ringrazio a tal proposito il buon Linc Davis per l’aiuto che mi ha fornito in questo thread sull’Apple Communities Support).

Una volta aggiornate tutte le macchine mi sono messo a configurare un po’ il tutto, fino ad arrivare ad un setup che mi piace molto. Le macchine possono ora contare su un set di utenti creato attraverso Apple Open Directory. Le home folder dei vari utenti sono su un file system condiviso via (AFP) ed e’ quindi possibile effettuare il login ed accedere ai propri file su qualunque delle quattro macchine che fanno parte della grid. L’accesso da remoto puo’ avvenire sia via SSH, sia con Apple Remote Desktop, sia utilizzando un client VNC “tradizionale”. In merito a quest’ultimo punto ho testato con successo: Tight VNC per Windows, Enhanced Tight VNC Viewer per Linux e Chicken of the VNC per Mac OS X. Non mancano ovviamente un web server basato su Apache e con supporto per la creazione di Wiki, nonché controller ed agenti per XGrid. Nota dolente e’ che non mi e’ ancora stato possibile testare il buon funzionamento della grid siccome in Xcode 4 non esiste piu’ la cartella /Developer e, con essa, e’ scomparso GridSample, uno degli esempi piu’ famosi che Apple forniva per testare una grid, ovvero un’applicazione in grado di generare frattali di Mandelbrot suddividendo l’immagine in blocchi, ciascuno dei quali processato in parallelo da uno dei computer i connessi alla grid.

All’appello manca soltanto la creazione di uno script per installare automaticamente gli aggiornamenti software di Apple ad giorno/ora prefissati (ho già provveduto a far si’ che una delle quattro macchine effettui i download e mantenga un archivio locale degli update, al quale gli altri computer possano approvvigionarsi; la procedura e’ descritta qui) e la configurazione di Boinc per operare in modalita’ demone/trasparente.

Share

GPGTools

L’argomento trattato brevemente nel post di oggi e’ GPGTools, un pacchetto software per Mac OS X che si pone come obiettivo quello di rendere una soluzione OpenPGP (qui la pagina Wikipedia dedicata) utilizzabile sul proprio sistema, con pochi click, anche da utenti inesperti in materia di sicurezza.

Tra i vari software contenuti all’interno del pacchetto GPGTools spicca senz’altro GPGMail. Integrandosi alla perfezione con Apple Mail, GPGMail permette di crittare (nel caso in cui si sia in possesso della chiave pubblica del destinatario) ed applicare una firma digitale a qualsiasi messaggio di posta si desideri inviare. Tutto questo in maniera semplice e lineare (qui una dimostrazione pratica, qui un po’ di documentazione).

Sul sito web di GPGTools sono presenti vari screencast che mostrano il funzionamento dell’intera suite software. Un crash course e’ disponibile anche su YouTube e visibile qui di seguito.

Nota a margine. Ho trovato curioso il fatto che, sul sito di web di un pacchetto software come GPGTools, fosse necessario il login per accedere a determinate aree del portale. E, ancor di piu’, che per effettuare il login fosse possibile utilizzare un account OpenID.

Come sarebbe a dire? Non conoscete OpenID? Obbligatorio allora dare un’occhiata a questa pagina.

Share

Tails: The Amnesic Incognito Live System

Tails: The Amnesic Incognito Live Systems, da poco arrivata alla sua versione 0.10.1, e’ una distribuzione Linux basata su Debian Live che si propone tre semplici obiettivi. Aiutare qualsiasi suo utente a:

  • use the Internet anonymously almost anywhere you go and on any computer: all connections to the Internet are forced to go through the Tor network;
  • leave no trace on the computer you’re using unless you ask it explicitly;
  • use state-of-the-art cryptographic tools to encrypt your files, email and instant messaging.

L’interfaccia di Tails e’ pulita ed essenziale, nel tipico stile Gnome, così come testimoniato dallo screenshot che segue.

Come accennato nell’elenco puntato qui sopra, tutti i software inclusi nella distribuzione sono configurati in maniera tale da utilizzare esclusivamente la rete Tor (acronimo che sta ad indicare “The onion router”). Ogni tipo di connessione diretta viene bloccata sul nascere.

Il funzionamento di Tor e’ concettualmente molto semplice. Nel momento in cui, ad esempio, si configura il browser del proprio computer per utilizzare questo network, tutto il traffico non viene inviato direttamente alle destinazioni ricercate, ma passa attraverso una rete di relays che rimbalzano tra di loro la richiesta fino a farla arrivare a destinazione. Il processo vale anche in fase di ricezione e, a vari stadi del processo, parti dei dati trasferiti vengono crittate e decrittate. E’ solo il client, cioè la macchina dalla quale parte la richiesta originaria, ad essere a conoscenza dell’intero percorso che i pacchetti dovranno seguire per arrivare a destinazione. Ciascuno dei relays conosce soltanto a chi e’ che vede inviare i pacchetti che passano per le sue mani. In questo modo diventa pressoché impossibile per un’autorità riuscire a controllare chi si celi effettivamente dietro ad una certa richiesta. In altre parole chi abbia visitato un certo sito web, chi abbia scritto un certo messaggio, eccetera.

Per saperne di piu’ su Tor e’ possibile trovare in rete moltissimo materiale. Innanzitutto la documentazione ufficiale ed una piu’ generica overview del servizio. Abbiamo poi una buona pagina Wikipedia dedicata. Ed infine un paio di pubblicazioni scientifiche: Tor: The Second-Generation Onion Router, presentato ad USENIX ’04 ed Anonymity Loves Company: Usability and the Network Effect, discusso durante WEIS 2006 (The Fifth Workshop on the Economics of Information Security).

Share

Sbarco su Twitter (@fabio_ruini)

Ci e’ voluto un pochino di tempo (spulciando gli arretrati del blog, vedo che già parlavo di questo servizio nel lontano 2009) ma alla fine anche io, non certo classificabile come conservatore quando si tratta di tecnologia, sono caduto nelle grinfie di Twitter. Difficile identificare il drive preciso che mi ha portato a muovere questo passo (piccolo per un uomo, ma potenzialmente molto fastidioso per l’intera comunità), se non che ultimamente Facebook mi stava un po’ stancando slash infastidendo.

Com’era facile intuire, una volta rimesso in piedi l’account aperto (e mai utilizzato) diversi mesi fa mi sono ritrovato un attimino spiazzato. Con un forte desiderio di comunicare qualcosa (cosa positiva), ma la netta sensazione di: a) non sapere bene cosa; b) non sapere bene il come. a) e’ un problema comune per chiunque si affacci su un nuovo social network. Sa di dover comunicare, ma non necessariamente sa il perché. E, di conseguenza, neppure il cosa comunicare. b) e’ un problema altrettanto tipico, destinato pero’ a passare dopo un attimo di smanettamento a caso pratica. Per velocizzare questa seconda fase ho cercato in giro per il web un qualche tutorial. Scoprendo, un po’ sorpreso, che i piu’ popolari sono visuali piuttosto che testuali. E, come tali, ospitati su YouTube. Quello che segue e’ il video cui mi sono affidato per apprendere i rudimenti di Twitter, chiaro, conciso e ben realizzato.

Ora, chiunque dovesse sentisse questo forte desiderio/ardore di seguirmi nei miei (quotidiani?) cinguettii non ha altro da fare che aggiungermi sotto le mentite spoglie di @fabio_ruini. Possibilmente adulandomi, in maniera tale che io mi innamori di Twitter e ne diventi un appassionato. Al punto da avere una scusa per acquistare il feedair di prossima uscita…

Share

Beware the doubles!

Due giorni di debug. Ed alla fine, come sempre, il problema era piuttosto banale. Ma, lo ammetto, un po’ difficile da trovare mediante debugging “tradizionale”. In quanto legato ad un “troncamento”, operato di default, sulla parte decimale delle variabili di tipo double che utilizzo all’interno del mio programma.

Provo a riassumere per sommi capi la questione. All’interno dell’applicazione sulla quale sto lavorando ho una SOM di dimensioni 10×10 per la quale, a ciascuna unita’, sono associati 3 pesi. Questi pesi sono contenuti all’interno di variabili a doppia precisione. Lanciando l’applicazione per la prima volta ed addestrando le varie SOM al riconoscimento di determinati oggetti, il learning avveniva alla perfezione. Salvando le matrici di pesi delle SOM e ricaricandole dalla memoria ad un successivo avvio dell’applicazione, invece, il comportamento appreso persisteva ma risultava molto piu’ inefficiente. Con alcuni oggetti che venivano sistematicamente “dimenticati” dal robot guidato da queste SOM. Comportamento alquanto strano, che naturalmente mi ha fatto pensare a qualche problema con il salvataggio/loading delle SOMs dalla memoria. Non fosse che non riuscivo a trovare alcuna anomalia. Visualizzavo i pesi dall’interno dell’applicazione e questi erano gli stessi che poi mi trovavo su file di testo, nonché all’interno dell’applicazione dopo averli caricati. Eppure i valori restituiti da alcune funzioni che lavorano con questi dati erano diversi nei due scenari. Cerca, cerca, cerca ed alla fine (dopo un bel po’ di tempo) l’illuminazione. I dati che visualizzavo attraverso la funzione qDebug() di Qt venivano automaticamente troncati per quanto riguarda la parte decimale. Allo stesso punto esatto di dove venivano troncati per essere salvati su file di testo. Così che, al successivo caricamento, mi ritrovavo con i valori troncati piuttosto che con quelli veri.

Per risolvere il problema e’ stato sufficiente aggiungere una riga di codice alla funzione che si occupa di salvare i double su disco. Al secolo una chiamata al metodo setRealNumberPrecision() della classe QTextStream. Di seguito il nuovo look della funzione.

Ora sotto al prossimo bug!

Share

Tenda Wireless N300 PCI adapter on Ubuntu Linux 11.10 (Oneiric)

L’impresa tecnologica del weekend e’ consistita nella configurazione su Linux (Ubuntu 11.10 Oneiric Ocelot) di un adattatore Wi-Fi PCI prodotto dalla sconosciuta compagnia cinese Tenda. Il modello in questione e’ il W322P 300Mbps Wireless N, basato su chipset Ralink e comprato qualche tempo fa su eBuyer.

Ubuntu non e’ in grado, con i driver di default (Ralink 3062), di riconoscere ed utilizzare correttamente il dispositivo in questione. Per rimediare al problema e’ comunque sufficiente ricorrere a driver piu’ aggiornati (al secolo Ralink 3562). Per la loro installazione mi sono basato principalmente sulle informazioni contenute all’interno di questa discussione apparsa su UbuntuForums.org. Per ricapitolare un po’ la questione, elenco quali sono i passi da seguire per chi dovesse trovarsi nella mia stessa situazione.

Come prima cosa e’ necessario sostituire il firmware installato di default da Ubuntu con quello preparato da Ralink. Il link dove trovare il firmware aggiornato e’ questo. Per effettuare la sosituzione non c’e’ da fare altro che copiare il file rt2860.bin, contenuto nell’archivio scaricato, in /lib/firmware/.

Il secondo passo consiste nella compilazione dei driver, reperibili a questo indirizzo. Una volta scompattato l’archivio occorre modificare le linee 12 e 15 del file DPO_RT…/os/linux/config.mk in maniera tale da farle risultare come segue:

HAS_WPA_SUPPLICANT=y
HAS_NATIVE_WPA_SUPPLICANT=y

Da terminale si puo’ quindi accedere alla directory principale del pacchetto e compilare con il classico make seguito da un sudo make install.

Per sicurezza si puo’ provvedere a copiare anche manualmente il modulo del kernel creato durante la compilazione (rt3562sta.ko) dentro a /lib/modules/…/kernel/drivers/net/wireless (con un’istruzione del tipo cp ./os/linux/rt3562sta.ko /lib/modules/$(uname -r)/kernel/drivers/net/wireless/rt3562sta.ko).

Occorre quindi “blacklistare” i driver vecchi che non vogliamo piu’ utilizzare. Lo facciamo editando il file /etc/modprobe.d/blacklist.conf ed aggiungendo le seguenti righe:

#Wireless drivers conflicting with rt3562sta
blacklist rt2800pci
blacklist rt2x00pci

Al file /etc/modules andiamo invece ad aggiungere una nuova linea contenente solo:

rt3562sta

in maniera tale da far si’ che il modulo corretto venga caricato ad ogni avvio di sistema.

Infine aggiorniamo le modifiche con un sudo update-initramfs -u e riavviamo la macchina.

Se tutto e’ andato bene, dopo il reboot dovremmo trovarci con una scheda wireless perfettamente funzionante e riconosciuta al 100% dal proprio OS.

Share

Goodbye MB!

Non ho neppure fatto in tempo a braggare il mio nuovo setup con triplo monitor 27″, che la motherboard del mio desktop di casa ha deciso di tirarmi un simpatico scherzetto. Tutto d’un tratto pare se ne sia partito il controller SATA integrato nella motherboard (una Asus P5G41T-M LX2/GB). Con il risultato che i due dischi installati sulla macchina (un Hitachi magnetico da 1TB ed un SSD OCZ Vertex 2 da 180GB) non sono più visti dal BIOS (nonostante un upgrade in extremis di quest’ultimo).

Ancora non sono sicuro al 100% che si tratti di un problema di controller piuttosto che di alimentazione. Nel dubbio ho portato questa mattina la macchina ai ragazzi del Computerbase plymouthiano per farci dare un’occhiata.

Mentre cercavo di isolare il problema per i fatti mai ne ho approfittato per un po’ di shopping sul solito eBuyer, grazie al quale ho aggiornato il disco magnetico del computer con un Western Digital WD20EARS Caviar Green SATA-III da 2TB con 64MB di cache e mi sono comprato un caddy esterno USB per drive SATA da 3,5″ in maniera tale da poter riciclare il drive Hitachi come disco di backup. Il disco Hitachi funziona alla perfezione all’interno di questo case, rendendomi fortunatamente sereno per quanto riguarda il recupero dei miei dati.

Ora aspettiamo solo che ci rimettano in modo la baracca.

Share

Bicos tri is mei che uan

Suvvia, diciamocelo. Ormai avere un computer ed utilizzarlo con un doppio monitor non fa più notizia. Sono lontani i tempi in cui, forte della mia Matrox G400 Dual Head, avevo collegato alla mia macchina dell’epoca un 17″ a tubo catodico ed una tv (un gioiellino con player/registratore VHS integrato) da 15″, provocando l’invidia di tutti i nerd del vicinato (poi, certo, trovarmi all’epoca in un posto come Roteglia sicuramente aiutava). Ora, a quasi 15 anni di distanza, le cose sono cambiate. Ormai chiunque e’ in grado di crearsi una configurazione dual screen. Ed e’ quasi normale imbattersi in configurazioni del genere. Piu’ raro e’ invece trovarsi davanti ad un setup con triplo monitor. Ancora più raro se i tre monitor sono da 27″ e vanno quindi a creare una superficie complessiva di 81″. Guarda caso, si tratta proprio del mio nuovo setup.

I tre monitor sono degli LG W2753VC-PF con risoluzione abbastanza standard di 1,080p Full HD (al secolo 1,920×1,080px). La scheda che supporta il tutto e’ una semplice XFX Radeon HD 5750 single-slot con due uscite DVI ed una mini-displayPort. Siccome i miei monitor non hanno ingressi displayPort il collegamento del terzo monitor e’ stato un po’ tricky. Sono dovuto passare attraverso un adattatore attivo mini-displayPort/DVI e ne ho dovuti provare alcuni prima di individuarne finalmente uno funzionante (per la precisione un modello della Startech, come consigliato dal supporto di AMD).

Ne ho approfittato anche per un upgrade della tastiera. Ora sono seduto di fronte ad una Logitech G19. Un vero e proprio gioiellino che probabilmente meriterebbe un post a parte. E che, tra le altre cose, estende di un altro paio di pollici la “superficie LCD” della mia postazione. Ma di lei, magari, ne parleremo un’altra volta.

Share

Qt libraries go 3D

In un post di Marius Storm-Olsen pubblicato sul blog di sviluppo delle librerie Qt, viene fatto un riepilogo delle numerose funzionalita’ aggiunte al popolarissimo tool nel corso del 2011. Da questo scopro che, il 9 dicembre scorso, il modulo Qt/3D e’ stato ufficialmente incluso all’interno del “trunk” principale. Il modulo in questione e’ dunque ritenuto sufficientemente stabile da poter essere utilizzato all’interno di progetti di qualsivoglia tipo.

Cosa sta a significare tutto ciò? Che chi fosse intenzionato a sviluppare applicazioni grafiche in 3D che non necessitano di engine fisici (anche se l’integrazione con Bullet e’ possibile, come dimostrato in 3DHappyFrog) ha ora a propria disposizione una serie di funzioni semplici, potenti ed efficaci. In puro stile Qt.

Interessante notare, tra le altre cose, il supporto ai mouse 3D (vedi qualche esempio di tali periferiche su Engadget).

Per chi avesse tempo/voglia di smanettare un pochino con le Qt/3D, un po’ di esempi sono disponibili a partire da questo link, dove e’ mostrato anche come importare modelli 3DS attraverso il metodo loadScene di QGLAbstractScene.

Share

« Pagina precedentePagina successiva »