Verificare i dati recuperati con ddrescue e md5sum

In un precedente post ho spiegato come recuperare dati da un supporto danneggiato utilizzando il programma GNU ddrescue. Sfortunatamente se il recupero non è completo ci possono essere dei file danneggiati all’interno del materiale recuperato. In questo post utilizzeremo nuovamente il programma ddrescue per verificare quanto e quale del materiale sia stato effettivamente recuperato.

Creazione di un raid software livello 5 con Debian o Ubuntu

Nella gestione dei dati una delle tecniche migliori da utilizzare è sicuramente il RAID, in particolare tra tutti i livelli disponibili per questa tecnologia, quello che offre il miglior rapporto tra prestazioni, uso disco e ridondanza è sicuramente il livello 5. Esistono 3 tipologie di RAID a livello implementativo

  • RAID hardware: disponibile sui server di fascia alta, è quello che offre forse le migliori performance in quanto le operazioni vengono eseguite tutte dal controller in maniera completamente trasparente, ma ha sicuramente i costi più elevati. Inoltre utilizzando questa tipologia di raid i dati sono legati al controller utilizzato e non possono essere utilizzati ad esempio in un’altra macchina senza che si utilizzi lo stesso controlloer
  • FAKERAID: ovvero RAID hardware a basso costo. Questa è la tecnologia che viene usata sui controller di fascia bassa oppure implementata nelle motherboard dei computer desktop. Questa tecnologia viene chiamata fakeraid in quanto non è un RAID vero e proprio ma una parte dell’implementazione e della computazione viene lasciata alla CPU e l’interfacciamento con i dati avviene tramite un driver. Qui le performance sono decisamente più basse e rimane il problema del trasporto dei dati da un sistema all’altro. Inoltre non è detto che il driver di questi controller sia disponibile per tutti i sistemi operativi.
  • RAID software: quello di cui discuteremo qui. Il maggiore vantaggio di questa tecnologia è il controllo assoluto sui propri dati, si possono aggiungere e rimuovere dispositivi a piacere e soprattutto si possono trasferire da una macchina all’altra. Inoltre è possibile eseguire le operazioni di manutenzione a sistema attivo, cosa che non è possibile negli altri due casi in cui è richiesto un reboot.

Geotag delle foto con iPhone, Everytrail ed exiftool

Una delle funzioni che ho apprezzato maggiormente di iPhoto 09 è l’aggiunta di “Places” (nella versione italiana “Luoghi”). Questa funzione si interfaccia con Google Maps per mostrare una mappa interattiva delle proprie fotografie e dei luoghi dove esse sono state scattate.

Per far si che le foto vengano mostrate sulla mappa è necessario però che le immagini contengano i dati GPS negli appositi campi EXIF. Questo può essere ottenuto in vari modi, ad esempio iPhone, essendo dotato di un modulo GPS interno, inserisce automaticamente tali dati nelle proprie foto. Altre macchine fotografiche di fascia medio alta hanno integrato un sensore GPS oppure dispongono di un interfaccia hardware per collegare un ricevitore esterno, normalmente questo comporta una spesa aggiuntiva che con un iPhone ed un po di sforzo possiamo evitare.

Creare files icns per applicazioni Mac

Un buon motivo per cui si può volere un file formato icns è quello di voler personalizzare le icone del Finder ed avere icone di eccellente qualità. Nel mio caso, mi serviva un icona per pacchettizzare un’applicazione Java che ho sviluppato, e volevo darle un aspetto migliore dell’icona degli archivi jar. Il risultato che ho avuto nel mio caso è questo

Per ottenere le icone in questo formato ho trovato un paio di trucchetti che non sono niente male. Il primo metodo per creare icone in questo formato a partire da un file grafico esistente è quello di utilizzare il sito IConvert. Il sito è di utilizzo immediato, si carica un file grafico ed una volta terminato l’upload si ha la possibilità di scaricare il file convertito in numerosi formati tra cui icns.

Il secondo metodo consiste nell’utilizzare il programma img2icns scaricabile da questo sito. Anche questo metodo risulta di immediato utilizzo, si apre il programma, si trascina all’interno della finestra principale l’immagine da convertire e si salva il file tramite il pulsante apposito. Il programma offre anche la possibilità di esportare l’immagine come cartella, come icona per iPhone o come favicon per i propri siti, ma questi due ultimi formati richiedono la versione pro a pagamento.

Infine un ultimo metodo che ho trovato molto utile per creare icone a partire da icone esistenti. Supponiamo che vogliate creare un file icns a partire da una cartella o da un’applicazione in vostro possesso. In tal caso ho trovato un metodo molto efficace per Snow Leopard in questo post. Il metodo descritto nel post dovrebbe funzionare per chi ha ancora Leopard, ma in SL sembra che l’utility icnsBrowser non ci sia più. In ogni caso trovo molto più efficace il metodo descritto nell’ultimo commento, in pratica partendo dalla cartella (o applicazione) della quale si vuole l’icona si apre il pannello delle informazioni del finder (clic destro e Ottieni Informazioni oppure Comando (⌘)-I dopo aver selezionato l’elemento). Nel pannello fare clic sull’icona di interesse in alto a sinistra affinché questa venga evidenziata, dopo di che premere Comando (⌘)-C per copiare l’icona. A questo punto apriamo Anteprima (Preview) e premiamo Comando (⌘)-N per creare l’icona a partire dal contenuto degli appunti.

Abbiamo la nostra icona in formato icns visualizzata in Anteprima, ma se proviamo a salvare non risulta possibile. Per avere il file però è sufficiente “chiudere” i vari elementi nella barra laterale di Anteprima utilizzando la freccia nera a destra e trascinare in una cartella qualsiasi del finder l’oggetto risultante ed esso verrà salvato come icona nel punto di rilascio, provare per credere.

Cambiare la posizione delle screenshot in Snow Leopard

Una funzione molto comoda di OS X è quella di poter creare con semplicità screenshot di quello che si visualizza a schermo. Per utilizzare questa funzionalità si può usare il programma Istantanea presente nella directory Applicazioni – Utility oppure delle comode shortcut da tastiera. Personalmente preferisco il secondo metodo in quanto una volta imparate le scorciatoie è sicuramente di più immediato richiamo.

A differenza del programma Istantanea, utilizzando le combinazioni di tasti non è possibile decidere dove saranno salvate le immagini prodotte, queste saranno registrate tutte sul Desktop. In alcuni casi può essere desiderabile cambiare la posizione di default per mantenere un pò di ordine sulla propria scrivania.

Database profiling con Firebug in Zend Framework

Un metodo rapido e veloce per tenere sott’occhio quello che succede nel vostro database durante l’esecuzione di applicazioni Zend Framework è quello di utilizzare la classe Zend_Db_Profiler_Firebug. A differenza del plugin ZFDebug, il setup di questa classe è immediato e non richiede l’installazione di files aggiuntivi, ma solamente un paio di direttive nel file application.ini e delle due estensioni per Firefox Firebug e Firephp (che a prescindere da questo utilizzo sono indispensabili per chi sviluppa siti web di qualunque natura).

Migliorare le performance del proprio sito PHP con l’estensione APC

php-logoSe avete un sito web realizzato in PHP e volete raddoppiarne le performance con un semplice ma significativo passo, allora la soluzione giusta è l’estensione PECL APC.

Come molti sapranno PHP è un linguaggio interpretato, questo fa si che ad ogni singola richiesta di una pagina web, l’interprete PHP debba leggere il codice nei files memorizzati su disco, valutarne la correttezza, trasformarlo in istruzioni eseguibili, trasformare i nomi di variabili e funzioni in indirizzi di memoria, ed eseguire le istruzioni specificate.

Inoltre per chi fa uso di framework o librerie particolarmente corpose, c’è l’overhead dovuto alle dozzine di files contenuti in queste librerie. Per esempio Zend Framework è composto da più di 2500 files, e spesso e volentieri per istanziare un singolo oggetto di una data classe è necessario che l’interprete legga decine di files.

Usare Google CDN per caricare i framework javascript

Una Content Delivery Network (in breve CDN), è una rete distribuita per la distribuzione di contenuti al grande pubblico. Vediamo come è perché utilizzare Google come CDN per il caricamento dei più diffusi framework javascript nelle nostre applicazioni web.

Spesso capita di dover utilizzare un framework javascript per aggiungere funzionalità 2.0 al proprio sito, in tale contesto su siti sviluppati ad hoc è prassi comune includere i files javascript contenenti le librerie direttamente nel proprio dominio.

Questa procedura può e dovrebbe essere evitata andando ad utilizzare le versioni di tali librerie messe a disposizione da Google nella propria rete di distribuzione. Utilizzare tale approccio ha innumerevoli vantaggi tra i quali

  • La rete di Google è distribuita e replicata attraverso innumerevoli host dislocati in tutto il mondo, nel risolvere l’hostname i dns di Google reindirizzeranno la richiesta al server geograficamente più vicino alla locazione del utente che fa richiesta della risorsa, garantendo tempi di download e di latenza migliori rispetto al vostro webserver.
  • Più siti utilizzano questa tecnica (e ci sono già innumerevoli siti e portali che lo fanno, incluse le principali piattaforme di blogging), maggiore è la probabilità che la stessa richiesta che il browser dell’utente effettua sia già stata eseguita in precedenza. Dal momento che Google indica al browser di mantenere i file scaricati in cache per un anno, nella stragrande maggioranza dei casi il download del file richiesto non sarà neppure necessario, trovandosi esso in cache.
  • Gli aggiornamenti dei framework sono gestiti da Google che mette a disposizione le ultime release stabili delle librerie disponibili.
  • Con alcuni contratti di hosting la banda può essere una risorsa preziosa, in questo modo si svincola il proprio server dal dover inviare i files javascript portando ad un risparmio di banda notevole. Ad esempio, la versione attualmente disponibile di prototype pesa 143KB, mentre la versione compressa di jQuery pesa 56KB. Moltiplicate per il numero di utenti ed la banda impiegata cresce a dismisura.

Recuperare i propri files da un disco danneggiato

Mi è appena capitato di dovermi cimentare in questa impresa per fare un favore ad un amico. Come al solito ci si accorge di non aver fatto i backup dei propri files importanti sempre quando e troppo tardi per recuperarli, o quasi. Nella fattispecie si trattava di una pendrive (piuttosto attempata) che non risultava più leggibile con nessun sistema operativo/computer.

Inserendola in un computer con Windowx XP compariva in esplora risorse il messaggio “L’unità F: non è formattata, formattare?”

Fortunatamente la chiavetta mi è capitata in mano prima che qualcuno rispondesse avventatamente si a tale domanda.

Come recuperare i dati

La procedura che ho usato in questo caso è abbastanza semplice, richiede solamente un paio di programmi per provare il recupero testdisk e photorec. In più per lavorare con un buon margine di sicurezza e lasciarsi aperta la strada per tentare altri approcci di recupero conviene non lavorare direttamente sul dispositivo, ma su una sua immagine salvata su un altro harddisk. A questo scopo ci sono varie soluzioni, ma quella con cui mi sono trovato meglio è dd_rescue.

Configurare Zend_Mail usando application.ini

zfmailIn un precedente articolo ho parlato di come scrivere un’application resource per Zend Framework per utilizzare il plugin ZFDebug. In questo articolo vedremo come utilizzare lo stesso meccanismo per un’operazione più semplice ma di utilizzo molto più frequente, ovvero configurare il default transport per l’invio di messaggi di posta elettronica tramite il componente Zend_Mail.

Normalmente per configurare l’invio dei messaggi si utilizza il seguente codice (ad esempio nel bootstrap):

$config = array('auth' => 'login',
                'username' => 'myusername',
                'password' => 'password');

$transport = new Zend_Mail_Transport_Smtp('mail.server.com', $config);
Zend_Mail::setDefaultTransport($transport);

Per liberarci di questo codice in ogni applicazione che utilizzi la classe Zend_Mail ho scritto una classe Application Resource da inserire nella propria libreria. Il codice della classe è piuttosto semplice

Subscribe to RSS Feed