slideshow 1 slideshow 2 slideshow 3

backup con rsync sotto windows

Giusto per rimanere in allegria, anche per quest anno, puntualmente durante le ferie natalizie, non ho voluto farmi mancare il "brivido" della cancellazione accidentale dei dati.

Senz'altro posso dire che, con l'aumentare dell'esperienza, acquisisco sempre più sangue freddo. Ricordo che in passato, in preda al panico, sono riuscito solo a far danno su danno. Questa volta, quasi istintivamente, mi sono allontanato dal PC di almeno un metro e per qualche minuto.

Per saccheggiare i miei stessi dati, mi sono destreggiato in un rm /directory -rf in cui quella directory era il nome di un'intera partizione... E così ho buttato via qualcosa come 380Gb di dati di cui almeno 80Gb indispensabili (tutto ciò che mi riguarda tra lavori, foto e filmati da quando mi accostai al pc alla fine degli anni '80).

In virtù del mio curriculum, avevo però organizzato altre due copie di questi dati. Ho, comunque, perso diversi indirizzi di posta elettrinca così come gli stessi file batch, sia per Linux che per Windows, che mi permettevano di tenere sempre aggiornato il mio backup.

E' così, dopo 24 ore di meditazione, ho pensato di tenere sempre a portata di mano, sul solito HD usb non una ma bensì due partizioni "gemelle" di cui una nascosta, agendo nel registro di sistema: una sorta di raid casereccio in differita.

Intanto ho recuperato rsync.exe come indicato in Rsync for Windows. Mi sono, però limitato a prendere solo il minimo indispensabile da CygWin e cioè:

  •  rsync.exe
  •  cygwin1.dll
  •  cygiconv-2.dll

Ho poi compilato un file batch di nome disk_sincro.bat così:

 rsync -uva --fake-super --delete-after --progress /cygdrive/w/ /cygdrive/v 

In modo che, avviandolo, tutto il contenuto del drive w: (la partizione visibile) venga riversato in v: (la partizione non visibile da esplora risorse).

Ho prodotto anche un file batch che copi in una directory, la più remota possibile del PC, solo quei dati che ritengo vitali, in questa maniera:

rsync -uva --fake-super --delete --log-file=rsync_error.log /cygdrive/w/dati /cygdrive/c/COPIE_BACKUP

Infine ho messo il tutto in un'unica directory da cui, di volta in volta, faccio partire la procedura che mi interessa.

Naturalmente ho avuto premura di preparare gli equivalenti script bash per Linux.


Buone Feste

la mia nuova galleria di foto con piwigo

Finalmente, grazie alla segnalazione di mrjive, ho trovato il modo per gestire le foto che vorrò condividere in rete: Piwigo è uno strumento davvero pratico oltre che, naturalmente, gratuito ed open source.

Ecco la mia nuova galleria di foto.

referendum del 12-13 giugno


io voterò!

mini how-to cs-rcs

ComponentSoftware RCS (CS-RCS) è un potente ed economico sistema di controllo delle versioni per Windows (freeware ad uso personale) . Si basa su GNU RCS.

USO:

In Esplora risorse, selezionare il file di cui si vuole conservare traccia delle revisioni/versioni col tasto destro del mouse e fare click su "Add to RCS".

Subito dopo è possibile effettuare un controllo dello stato di  acquisizione e, all'occorrenza, effettuare alcune operazioni dal pannello "Revision Manager" a cui si accede con il comando "Revision History...":

Dal pannello "Revision Manager" è possibile compiere le seguenti operazioni:

  1. View Revision: Vedere la revisione già acquisita (questo non modificherà nè il contenuto del file originale nè la stessa revisione in esame, dato che essa sarà aperta in modalità sola lettura).

  2. Retrieve Revision...: Esportare lo stato di revisione selezionato in un nuovo file (con attributo di sola lettura) che conserverà il nome del file originale con l'aggiunta del numero di revisione selezionato.

  3. Compare revision...: Confrontare la revisione selezionata con il file originale (solo in caso di file in formato testo).

  4. Edit Description...: Cambiare la descrizione della revisione selezionata.

  5. Edit Symbolic name...: Attribuire/cambiare/cancellare il nome simbolico alla revisione.

Dal pannello "Edit Description..." è immediatamente possibile cambiare la descrizione della prima acquisizione.

Dopo aver effettuato la registrazione della revisione del file e dopo averlo eventualmente modificato, nel menu contestuale di Explorer si attiverà la possibilità di acquisire una nuova revisione: selezionare il file, cliccare col tasto destro del mouse e selezionare la dicitura "Check-in".

Sarà così immediatamente attivata la finestra di immissione della descrizione e dei commenti:

 

Al successivo acceso al pannello "Revision Manager" avremo questo aspetto:

A questo punto dal pannello "Revision Manager" sarà possibile ottenere un report dell'elenco delle revisioni acquisite cliccando sul pulsante "Report..." che mostrerà il pannello "Revision History":

Dal pannello "Revision History", cliccando sul pulsante "Report...", sarà richiesto un nome di file (è preferibile usare lo stesso nome del file in esame) in cui sarà conservato l'elenco degli stati di revisione in formato HTML che conserverà in una tabella, oltre al nome del file in esame completo del suo percorso di ricerca, il Revision Number  (numero di versione/revisione), il Symbolic Name (nome simbolico), la Check-in Date (data di acquisizione della versione/revisione), l'Author Name (nome di chi ha acquisito la version/revisione – solitamente il nome di chi ha modificato il file), la Description (descrizione immessa al momento dell'acquisizione della versione/revisione).

Spero di riuscire presto a rimpiazzarlo con TortoiseGit, l'interfaccia più cool per il controllo delle versioni (Git). Innocenza

estrarre immagini da un PDF

Naturalmente queste istruzioni starebbero meglio in ambiente Linux (dove nascono). Talvolta però l'uso di Windows diventa una necessità. Questo ormai non è un ostacolo per via delle caratteristiche multipiattaforma di questi programmi. Ma non perdiamoci in chiacchiere...

Xpdf è un visualizzatore e gestore open source per files Portable Document Format (PDF).

ImageMagick mette a disposizione una serie di strumenti per la gestione da riga di comando delle immagini.

Una volta installate queste utility è preferibile indicarne il persorso di ricerca nelle variabili di sistema (solo se stiamo lavorando con Windows).

A questo punto possiamo agire con:

$ pdfimages file.pdf .

In cui: file.pdf indica il file da cui tirar fuori le immagini, mentre "." indica la directory in cui estrarle. Avremo così a disposizione immagini con estensione .ppm (Portable PixelMap) che andranno così convertite (in ambiente Windows):

C:\dir_delle_immagini\>for %1 in (*.ppm) do convert %1 %1.jpg

roseto

pdftotext per convertire un file formato PDF in ODS Calc LibreOffice

Come dicevo pdfcrop merita, ma tagliamo corto!

Discutendone con Habart, siamo inciampati in un file che nonostante l'uso di pdfcrop, non produceva le righe/colonne che ci aspettavamo: siamo saltati direttamente a pdftotext che è più veloce ed efficace.

$ pdftotext -x 54 -y 100  -W 70 -H 686 input.pdf otput.txt

Dove: -x indica il numero di pixel dalla sinistra del documento, -y  indica il numero di pixel dall'alto del documento, -W e -H rispettivalemte la largezza e l'altezza in pixel del box da ritagliare, a partire dalla posizione -x -y già indicata.

Naturalmente l'output.txt è già in formato ASCII, quindi, a seconda dell'impostazione del suo contenuto, potrebbe essere necessario elaborare ancora con vim oppure semplicemente incollare in Calc LibreOffice.

Un esempio di regexp
<die_z> :%s/.[0-9]./ciaociao/gc
<die_z> (la c fa sì che vim chieda conferma a ogni sostituzione)
<die_z> giuserpe: il '.' che hai scritto è un '.' letterale o sta per "qualsiasi carattere"?
<giuserpe> die_z: letterale
<die_z> giuserpe: allora intanto "escappalo" \.[0-9]\.
<die_z> altrimenti ti trova anche ?4_ con quella regex
<die_z> giuserpe: poi cosa devi fare?
<giuserpe> io faccio :%s\.[0-9]\./connonsocosa/g
<giuserpe> die_z: devo aggiungere uno ZERO
<giuserpe> \.ZERO[0-9]\.
<die_z> giuserpe: nelle regex puoi "marcare" parti del match tra () e poi "riusarle" con \1 \2 \3
<giuserpe> die_z: tradotto?
<die_z> giuserpe: quindi la regex di ricerca diventa \.\([0-9]\)\. e quella di sostituzione diventa \.0\1\.
<die_z> giuserpe: :%s/\.\([0-9]\)\./\.0\1\./gc (se non ho cannato a scrivere)
<giuserpe> fatto

 

Sasso Barisano

HUGIN, GIMP e pochi minuti.

pdfcrop merita - da PDF a ODS (passando per ODT)

 

A futura memoria, vale la pena spendere qualche riga che illustri come usare pdfcrop per l'importazione di un elenco prezzi da PDF (Acrobat Portable Document Format) a ODS (OpenOffice/StarOffice OpenDocument (Ver 2) Spreadsheet).

L'intenzione è scomporre il file elenco.pdf in colonne separate (Num.Ord./tariffa, descrizione, unità di misura, prezzo) per poi ricomporre il tutto in un foglio di calcolo editabile.

Agisco come segue: 

$/home/giuserpe/Desktop/pdfcrop.pl --verbose -bbox "54 44 100 746" elenco.pdf cod_ep.pdf

In cui --verbose mi serve solo a capire se qualcosa si sta muovendo ed in che verso.

L'opzione -bbox "x1 y1 x2 y2" indica la colonna che voglio isolare, inscritta nel bounding box di coordinate x1,y1 e x2,y2. Questi numeri sono desumibili aprendo elenco.pdf con gsview: si leggono nella forma 54,44pt dalla riga di stato infondo alla finestra del programma, posizionando il cursore nell'angolo in basso a sinistra ed in alto a destra della colonna da isolare.

Elenco.pdf è il file di origine e cod_ep.pdf è il file di destinazione.

Il tutto va fatto per ogni colonna da isolare.

Il passo successivo consiste nell'estrearre il testo dal formato pdf come segue:

$pdftotext  cod_ep.pdf cod_ep.txt

A questo punto passo all'uso di vim per manipolare cod_ep.txt ed elimino tutte le ricorrenze del tipo "Nr. 101" in esso contenure, in modo da ottenere un elenco dei soli codici (uno per ogni riga del file), senza ulteriori riferimenti, usando questo comando :%s/\nNr. [0-9]*[0-9] //g

Lo stesso valga per la colonna delle descrizioni e cioè, dopo aver ridotto ad un'unica riga l'intero contenuto del file, posso separare ogni singola descrizione con :%s/euro ([a-z]*\/[0-9]*)/\r/g ottenendo anche in questo file un'unica descrizione per ogni riga.

Il fine ultimo è ottenere un file.txt per ogni colonna dell'elenco prezzi. Ovviamente ogni file txt così ottenuto deve contenere un numero di righe pari al numero delle voci di elenco prezzo.

I files così ottenuti vanno concatenati direttamente in Openoffice.org/Calc così:

<giuSerpe> apri aaa.txt
<giuSerpe> selezioni tutto
<giuSerpe> incolli nella colonna A
<giuSerpe> apri bbb.txt
<giuSerpe> selezioni tutto
<giuSerpe> incolli nella colonna B

Oppure a priori così:

<mrjive> in bash ho fatto cosi'
<mrjive> due file, uno e due
<mrjive> i=0;for line1 in `cat uno`; do UNO[$i]=$line1; i=$i+1; done
<mrjive> j=0;for line2 in `cat due`; do DUE[$j]=$line2; j=$i+j; done
<mrjive> controlli quale dei due ha piu' righe
<mrjive>  cat uno| wc -l
<mrjive> 9
<mrjive> nel mio caso il secondo, con 10 righe
<mrjive> k=0; while [ $k -lt 9 ]; do echo ${UNO[$k]} ${DUE[$k]} >> tre; let "k = $k + 1"; done

Oppure così. (cit. mrjive)

Basterà aprire il file risultante con Openoffice.org/Calc.

Orvieto si candida per ospitare OOoCon2009

 

[...] Located in Umbria, it's 100 km far from Rome, 140 km from Florence, 555 km from Matera, 584 km from Torino, 558 from Cortina d'Ampezzo, 278 km from Bologna, 465 km from Milano, 136 km from Palestrina, 292 km from Chieti, 387 km from Padova, 542 km from Imperia...

Votate Orvieto.

Magari ci vediamo lì.

Powered by Drupal, an open source content management system

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer