Come recuperare foto o dati cancellati da una chiavetta USB/SD Card con Linux

Postato da ROb | nella categoria Linux, Utilità | venerdì, 15 marzo 2013

2

Ecco i passaggi che ho eseguito per recuperare i dati dalla scheda xD di un amico che aveva erroneamente perso dall’hard disk dopo averli cancellati dalla scheda:

  1. generata un’immagine esatta della scheda con dd su un file immagine: sudo dd if=/dev/sdb of=~/Desktop/my_card.img bs=512
  2. installato photorec: sudo apt-get install testdisk
  3. avviato photorec sull’immagine: photorec my_card.img
  4. eseguita la procedura guidata proposta da photorec. I passaggi cruciali sono: 1) scelta della partizione, 2) identificazione del tipo della partizione, 3) scelta della cartella di destinazione dei file recuperati.

Se tutto va a buon fine photorec sara’ in grado di estrarre i dati nella cartella specificata. Produrra’ anche un file xml contenente il risultato del recupero.
Io sono riuscito a recuperare 129 file per circa 400Mb di spazio. Tutte le foto cancellate per errore sono state ritrovate!

La guida inglese che ho seguito e’: https://goinggnu.wordpress.com/2008/02/14/recover-deleted-files-from-memory-card/

Ora non dobbiamo piu’ ricorrere alle altrettanto valide utility Windows, abbiamo la nostra cartella degli attrezzi Open Source

Grazie!

Roberto Rossi

net2ftp – un pannello web per ftp

Postato da ROb | nella categoria Sviluppo web, Utilità | giovedì, 13 settembre 2012

0

Spesso si ha la necessità di esporre un servizio ftp senza però aprire il servizio ftp (porta 21) al mondo intero.

Net2ftp si preoccupa di fare proprio questo. Fa da intermediario tra l’utente e il servizio ftp attraverso un pannello web.
Semplice, veloce ed immediato, net2ftp è un ottimo prodotto open source per soddisfare questa esigenza.

A questo indirizzo sono disponibili alcuni screenshot che mostrano l’aspetto del software.
Dalla homepage è anche possibile provarlo al volo su un account ftp di cui disponiamo l’accesso.

DBeaver il database manager universale!

Postato da ROb | nella categoria Java, Utilità | mercoledì, 28 settembre 2011

2

Ogni sviluppatore sa quanto è importante avere nella propria cassetta degli attrezzi un valido software di interrogazione e gestione delle base di dati.

Generalmente ogni db vendor propone la sua soluzione specifica, console e grafica, per accedere ai propri db e tabelle. Sono poche le soluzioni open in grado di connettersi e lavorare con successo su diverse piattaforme e che nello stesso tempo siano facilmente utilizzabili.

Dopo anni e anni di ricerca quasi per caso ho trovato DBeaver, il castoro dei database (dal suo nome curioso).
DBeaver è un software sviluppato in Java tramite il framework di sviluppo di Eclipse: RCP.
E’ disponibile per moltissime piattaforme (cosa comune a quasi tutti i software scritti in Java) e segue dei cicli di sviluppo molto regolari tanto che in poco più di un anno dalla sua pubblicazione ha raggiunto una maturità e una lista di funzioni veramente invidiabili.

Attualmente è alla versione 1.4.0, rilasciata pochi giorni fa.

I db vendor attualmente supportati sono molti (tutti? :-D ):

  • MySQL
  • Oracle
  • PostgreSQL
  • IBM DB2
  • Microsoft SQL Server
  • Sybase
  • ODBC
  • Java DB (Derby)
  • Firebird (Interbase)
  • HSQLDB
  • SQLite
  • Mimer
  • H2
  • IBM Informix
  • SAP MAX DB
  • Cache
  • Ingres
  • Linter
  • Any JDBC compliant data source

Nelle sue ultime versioni permette anche di modificare lo schema dei dati (tabelle e altro) e di visualizzare/salvare degli schemi ER delle tabelle selezionate.

Per me è diventato un indispensabile compagno di viaggio e quando posso cerco anche di segnalare eventuali malfunzionamenti o problemi.

Ecco alcuni screenshot presi direttamente dal sito ufficiale.

Provatelo e datemi il nostro parere!

Fiddler – super web debugging proxy

Postato da ROb | nella categoria Sviluppo web, Utilità | giovedì, 5 maggio 2011

0

Ieri, cercando di risolvere un problema di un sito che si verificava con il browser Safari su Windows, navigando qua e là in cerca di risposte, ho trovato qualcuno che consigliava di installare Fiddler, un web debugging proxy freeware per Windows.

Chi già utilizza l’estensione LiveHttpHeaders per Firefox o Firebug sa già quanto siano importanti tali strumenti per lo sviluppatore web. Essi infatti permettono non solamente di analizzare il codice di una pagina web (html, css, javascript) ma anche di visualizzare tutte le chiamate http effettuate dal browser, con le relative risposte, e di fare debugging del codice Javascript presente nella pagina stessa.

Alcuni browser come Safari, Chrome e altri, pur avendo i propri strumenti di sviluppo, non permettono di scendere  anche nel dettaglio delle singole chiamate http, inoltre non sempre il client delle chiamate web è un browser, in alcuni casi potrebbero essere un software stesso che prova a connettersi a un servizio web per scaricare, ad esempio, gli aggiornamenti.

Per tutti questi casi, ma sicuramente anche per molti altri, Fiddler si offre come valido strumento di analisi, frapponendosi in modo trasparente tra client e server e intercettando tutte le richieste e le risposte http del nostro PC.

Per funzionare ha bisogno del framework .NET che installa autonomamente nel caso non sia già presente. Una volta installato è sufficiente avviarlo e iniziare a navigare con un browser per vedere tutte le nostre chiamate (e anche i nostri dati :-D ) apparire nelle schermate del programma.

Il sito del software è il seguente: http://www.fiddler2.com/

Per il download fate riferimento a quest’altro indirizzo: http://www.fiddler2.com/fiddler2/version.asp

Happy debugging!

Screenshot di sistemi Unix e GNU/Linux via command line

Postato da ROb | nella categoria Linux, Utilità | venerdì, 22 aprile 2011

2

Tutti noi conoscono almeno 3 o 4 modi differenti per catturare screenshot di finestre o schermo intero sia su sistemi Windows che in sistemi Linux o Unix.

Oggi voglio proporvi due piccoli script che ho scritto ispirandomi a un interessante articolo su IBM Developer Works.

Entrambi gli script sfruttano i comandi messi a disposizione dai sistemi X11 e tipicamente già installati nelle nostre distribuzioni. Tali comandi sono: xwd e xwininfo .

Per renderli un pò più comodi ho utilizzato anche il comando convert, della suite di ImageMagick, e notify-send per inviare delle notifiche all’utente al termine delle operazioni di salvataggio.

Il primo script, di nome capture_full.sh, può ricevere in ingresso 1 parametro che determina il numero di secondi di attesa prima di catturare il nostro desktop in un file nel nostro Desktop. Se tale parametro non viene passato il valore di attesa di default è 3 secondi.

#!/bin/bash

if [ "$1" != "" ]
   then
     seconds=$1;
   else
     seconds=3;
fi

now=`date "+%Y_%m_%d-%H_%M_%S"`
filepath="${HOME}/screen_full_${now}.png"

sleep ${seconds} ; xwd -root | convert - ${filepath}

notify-send -t 3000 -u low -i gtk-dialog-info "Screenshot" "file saved in ${filepath}";

Il secondo script, di nome capture_window.sh, ci permette invece di catturare una singola finestra (anche se non ci permette di interagire con il mouse nella finestra, per far apparire ad esempio un menu contestuale). Il funzionamento di questo script è il seguente: dopo che viene lanciato attende alcuni secondi (modificabili con il primo parametro opzionale) per permetterci di scegliere una finestra del desktop, quindi salva l’id della finestra e lo usa per memorizzare l’immagine della finestra nel desktop.

#!/bin/bash

if [ "$1" != "" ]
 then
 seconds=$1;
 else
 seconds=3;
fi

sleep ${seconds};
wid=`xwininfo | grep "Window id" | awk '{print $4}'`;

now=`date "+%Y_%m_%d-%H_%M_%S"`
filepath="${HOME}/Desktop/screen_window_${now}.png";

xwd -id ${wid} | convert - ${filepath}

notify-send -t 3000 -u low -i gtk-dialog-info "Screenshot" "file saved in ${filepath}";

Provateli, modificando anche la variabile $filepath se lo ritenete opportuno, e fatemi sapere.

Ecco L’articolo originale di William von Hagen in IBM.

Un semplice script per scaricare in mp3 la traccia di un video su YouTube

Postato da ROb | nella categoria Linux, Utilità | domenica, 20 marzo 2011

2

In questi giorni ho avuto la necessità di scaricare la traccia audio di un video caricato su YouTube.

Per farlo conoscevo già diversi servizi online ma, visto la potenza della shell Linux, ho pensato di scrivere un piccolo script che assolvesse al compito e che potesse sfruttare alcune utility scritte proprio per questi scopi.

La mia intenzione era quella di avere a disposizione uno script a cui potessi passare un solo parametro, l’url della pagina, e che mi salvasse il file in formato mp3 possibilmente con un nome abbastanza esplicativo. Per riuscire a tale scopo mi sono avvalso di due soli comandi: youtube-dl e ffmpeg.

youtube-dl è uno script python in grado di estrarre un file in formato .flv semplicemente passando il path HTTP alla pagina del video. Questa utility compie tutto il lavoro “duro” del mio semplice script ed è anche in grado di scaricare il nome del video legato all’url. Nel mio caso youtube-dl è servito a salvare il titolo del video, per rinominare correttamente il file mp3 e successivamente è servito per fare il download del file video in formato .flv.

La separazione della traccia audio da quella video e la successiva codifica nel formato mp3 è stata invece assegnata a ffmpeg, uno dei più apprezzati comandi per la gestione e fruizione dei video in Linux (e non solo).

Per entrambi i software mi sono però avvalso di versioni più aggiornate di quelle presenti nella mia distribuzione Ubuntu 8.04. Nelle versioni disponibili nei miei repository infatti youtube-dl non era in grado di effettuare il download del video mentre ffmpeg non riusciva a gestire i video nel formato .flv . Per aggiornare lo script python è stato sufficiente effettuare il download del nuovo script e metterlo nella mia cartella di binari dentro ~/bin/ . Per quanto riguarda ffmpeg invece ho prima provato a effettuare una compilazione della distribuzione per rigenerare la nuova versione. Dopo alcuni tentativi falliti, ho deciso di optare per un binario precompilato linkato staticamente per Linux 32bit. Una valida compilazione l’ho trovata al seguente indirizzo: http://horsfall.eu/2010/11/27/ffmpeg-full/ . Il file binario contenente ffmpeg è stato quindi salvato, con i corretti permessi di esecuzione, nella cartella ~/bin.Tale cartella è nella prima posizione della variabile $PATH. In questo modo i binari che si trovano in tale cartella hanno la precedenza su quelli presenti nelle altre cartelle di binari del sistema.

Veniamo ora al mio script, salvato con il nome: youtube2mp3.sh :

#!/bin/bash

url=$1
flvfile=/var/tmp/$$.flv

title=`youtube-dl -e ${url}`
mp3file=~/Desktop/${title}.mp3

youtube-dl ${url} -o ${flvfile}

ffmpeg -i ${flvfile} "${mp3file}"

rm ${flvfile}

L’unico parametro gestito dalla script, il primo, è l’url della pagina in cui si trova il video in YouTube. Lo script estra prima l’informazione del titolo del filmato e la memorizza nella variabile “title”.
Quindi effettua il download del video salvandolo in un file temporaneo che ha come nome il pid del processo bash invocato.
Successivamente converte il video nella traccia audio mp3 che viene salvata nel Desktop con il nome del titolo e suffisso .mp3.
Infine il file temporaneo .flv viene cancellato dalla directory temporanea.

Google Apps for free: come utilizzare le Google Web App per il nostro dominio

Postato da ROb | nella categoria Android, Informatica in generale, Utilità, Varie, email | lunedì, 7 marzo 2011

2

Dopo un periodo di silenzio durato più di un mese, torno a farmi sentire per segnalare un’importante opportunità per tutti coloro che vogliono configurare e utilizzare le applicazioni web di Google per il proprio dominio.

Non tutti sanno infatti che Google fornisce tale possibilità, pur con delle limitazioni, a tutti i possessori di un dominio, sia per scopi personali che aziendali.
La differenza con la versione enterprise (a pagamento) consiste principalmente nel numero massimo di utenze attivabili, nella mancanza di alcune specifiche applicazioni (Google Video for Business e Google Groups for Business), nella capacità di storage complessiva offerta, nello SLA fornito e in alcune piccole altre customizzazioni e protezioni.

Dopo aver letto la pagina introduttiva ed esservi fatti un’idea di cosa sia il servizio Google Apps for free, leggete i prossimi paragrafi per capire come impostare la configurazione per essere subito operativi con il vostro dominio “Google managed”.

Passo numero 1: specificare il dominio

Da questa pagina è possibile iniziare la sequenza degli step per la gestione del dominio by Google. Il primo passo consiste nello specificare un dominio esistente sul quale abbiamo la possibilità di effettuare le modifiche alle entry del DNS. Come esempio per questo mini-tutorial userò il dominio di test giuliarossi.com .

Passo numero 2: registrazione al servizio Google Apps

In questo passaggio bisogna specificare i propri dati e quelli della propria organizzazione.

Passo numero 3: creazione dell’account di amministratore

In questo passaggio dobbiamo creare l’account di amministrazione del dominio nonché accettare le condizioni contrattuali del servizio.

Passo numero 4: creazione del record CNAME per verificare la proprietà del dominio

A questo punto Google ci chiede di verificare che siamo veramente nelle condizioni per poter “gestire” il dominio che diciamo di possedere. Per farlo ci suggerisce di creare un record CNAME con un nome particolare che successivamente proverà a risolvere per capire se abbiamo risposto positivamente alla sua richiesta.

Passo numero 5: login nel pannello di configurazione del nostro dominio

Se anche il precedente passaggio è andato a buon fine possiamo entrare nel pannello di configurazione e vedere lo stato di attivazione dei nostri servizi. L’attivazione del servizio di posta elettronica richiede qualche passaggio in più. Per gli altri servizi è invece sufficiente attendere qualche minuto.

Passo numero 6: modifica dei record MX per far gestire la posta entrante per il nostro dominio

Nella successiva schermata, al passo 4, Google ci chiede di creare 7 record MX per il nostro dominio che puntano ai server di Google. In questo modo istruiamo i sistemi di posta worldwide che per lasciare un messaggio nella nostra casella devono contattare direttamente i server di Google.

Passo numero 7: modificare le URL per i vari servizi

Ora, per ogni servizio, possiamo modificare l’url predefinito assegnato da Google con un sottodominio del nostro nuovo dominio. Per farlo è sufficiente andare nel link “modifica URL” di ogni servizio. Vi mostrerò il caso della posta, per gli altri servizi la procedura è analoga.

Passo numero 8: verifica dei nomi DNS e test finale

Ecco come si presenta alla fine la configurazione DNS per il nostro dominio.

Ora non ci resta che provare a inviarci dei messaggi di posta e riceverli. Stessa cosa per tutti gli altri superservizi.

Ah, non dimenticatevi, possiamo agganciare anche i nostri dispositivi mobili e soprattutto il nostro telefono Android!

Spero possa servire a qualcuno… ROb

Come accedere al servizio box.net tramite protocollo webdav

Postato da ROb | nella categoria Linux, Utilità | venerdì, 17 dicembre 2010

3

Dopo che mi è arrivata la mailing list periodica di box.net, felice del fatto che il servizio ha aumentato il suo spazio di archiviazione a 5Gb anche per gli utenti free, ho deciso di pubblicare questo mini post sulla modalità di accesso webdav per box.net.

Non tutti sanno infatti che box.net offre ai suoi utenti questa possibilità, consentendo, per la gioia di molti, l’accesso via HTTP (webdav è un’estensione di questo).

Vediamo come farlo tramite il nostro amato (almeno da me) Krusader.

Dopo aver avviato Krusader, in un nuovo tab digitando il seguente url:

webdav://box.net/dav/

Vi verranno chieste le credenziali per l’accesso al servizio (al quale, lo davo per scontato, dovete essere iscritti). Potete vedere il seguente screenshot.

Se le credenziali sono corrette vedrete il contenuto della directory principale del vostro account box.net.
Questo è il mio.

Ovviamente box.net non è l’unico servizio per memorizzare e condividere file. Il suo principale concorrente è DropBox, che fornisce un client multipiattaforma funzionale ed efficace.

Trasformare un pdf in formato A4 in un libretto formato A5

Postato da ROb | nella categoria Linux, Utilità | giovedì, 9 dicembre 2010

7

Dopo un non molto breve periodo di silenzio, è arrivato il momento di un piccolo articolo.

Oggi voglio parlarvi della soluzione che ho trovato per trasformare un pdf in formato A4, generato a partire da un documento ODF (ma vale per qualsiasi pdf A4), in un pdf in formato A5 con l’ordine delle pagine adatto per la creazione di un libretto rilegabile.

Questa particolare esigenza mi è venuta per la preparazione del libretto della liturgia della Festa dell’Immacolata, 8 dicembre 2010, a Macerata, in occasione della visita del Cardinale Tarcisio Bertone.
Avendo intenzione di prepararlo usando Linux e volendo nello stesso tempo trovare un modo per farlo comodamente anche in altre occasioni, ho pensato di documentarmi un pò sui programmi e sui metodi offerti dal pinguino.
In passato infatti, quando ancora utilizzavo Windows, avevo fatto qualche esperimento positivo con il programma Publisher. In Linux, non avendo ancora imparato a usare Scribus (che penso sia lo strumento migliore per tali impaginazioni) non avevo una valida soluzione per la creazione di un tale libretto.

Voglio quindi ora condividere con voi il risultato di questa piccola ricerca.

I comandi che entrano in gioco per tale operazioni sono: pdftops (pacchetto Ubuntu poppler-utils), psbook (psutils), psnup (psutils) e ps2pdf (ghostscript).
Serve inoltre un file pdf in formato A4. Se non ne avete uno a disposizione potete usare questo che è proprio il file della cerimonia, generato con Open Office Writer, e successivamente convertito in formato pdf.

Il primo passo è la generazione del file in formato .ps . Per farlo usiamo il comando:

pdftops libretto_sacerdoti_2010_12_08.pdf

Questo comando genererà il file libretto_sacerdoti_2010_12_08.ps
A questo punto lanciamo:

psbook libretto_sacerdoti_2010_12_08.ps | psnup -pa4 -2 > libretto_sacerdoti_2010_12_08_A5.ps

In questo modo il file .ps viene trasformato nell’impaginazione libretto e successivamente il numero di pagine per facciata viene impostato a 2. L’output finale viene salvato nel file libretto_sacerdoti_2010_12_08_A5.ps .

Ora non ci resta che riconvertire il file in formato pdf :

ps2pdf libretto_sacerdoti_2010_12_08_A5.ps libretto_sacerdoti_2010_12_08_A5.pdf

Potete gustarvi il risultato del vostro lavoro e verificare che la stampa funzioni correttamente.
Per le stampanti fronte-retro basta lanciare la stampa, per le stampanti solo fronte dovete procedere in questo modo:

  • stampare le pagine dispari del documento
  • se il totale delle pagine è pari estrarre i fogli e rimetterli nella stampante (tipicamente con il lato scritto rivolto verso il basso e nel verso corretto di stampa), se è dispari allora prima di rimetterli dentro dovete togliere l’ultima pagina dispari stampata (quella più in alto nella pila)
  • stampare le pagine pari in ordine inverso

Se avete proceduto correttamente il vostro libretto è pronto per essere rilegato.
Questo modo di convertire i pdf A4 può tornare utile per stampare un libro risparmiando carta (sempre che il risultato finale sia ancora ben leggibile).

Altro consiglio: numerate le pagine per non farvi venire inutili mal di testa!

Monitorare file creati, modificati e cancellati in una directory

Postato da ROb | nella categoria Linux, Utilità | martedì, 14 settembre 2010

0

Qualche volta può tornarci utile conoscere con esattezza tutti i file che vengono creati, modificati e cancellati in una specifica cartella.

Un modo semplice per farlo è sfruttando il comodissimo pacchetto inotify-tools che include al suo interno il comando inotitywait.

Il seguente script si mette in attesa e segnala in output gli eventi accaduti per la directory specificata:

#!/bin/bash

directory=$1

inotifywait -q -m --format '%f %e' -e modify -e move -e create -e delete ${directory} | while read line

do
	echo "doing something with: $line";

	# for example:
	# java -jar compiler.jar --js=in1.js --js=in2.js ... --js_output_file=out.js
done

Può essere invocato in questo modo, passando come primo e unico parametro la directory da monitorare:

./inotify.sh ~/Desktop/download/

ed emette ouput di questo tipo:

doing something with: Stack Overflow_screenshot.png MOVED_FROM
doing something with: printecdisplay.pdf DELETE
doing something with: ecommerce_03.html CREATE
doing something with: ecommerce_03.html MODIFY
doing something with: avatar_908.png CREATE
doing something with: avatar_908.png MODIFY

Ovviamente il tutto può essere modificato a proprio piacimento per eseguire operazione o avere notifiche via mail (o qualsiasi altra cosa creativa vi venga in mente).