itaeng

Blog

Pubblicato in:linux script trucchi

Stampare un PDF per ogni file LibreOffice in una directory

14MAR2016

Questa mattina avevo necessità di creare un file PDF per ogni file LibreOffice CALC presente in una directory. È una cosa che devo fare, periodicamente, ed aprire i singoli file è un'operazione noiosa, soprattutto quando iniziano ad esserci decine di documenti da convertire.

Per fortuna uso linux :) ed è semplice creare uno script che mi permetta di effettuare quest'operazione da linea di comando... ma ancora non mi è sufficiente, vorrei poterlo fare direttamente da Nautilus.

Detto fatto

Prima di tutto è necessario creare un nuovo file nella directory ~/.local/share/nautilus/scripts, io l'ho chiamato "Crea PDF da documento LibreOffice" (senza estensione perché anche quest'ultima verrebbe mostrata nel menu contestuale di Nautilus). Dentro ci ho messo questo:

#!/usr/bin/perl -w
# By Emanuele "ToX" Toscano

use strict;

my @files = split("\n", $ENV{NAUTILUS_SCRIPT_SELECTED_FILE_PATHS});
foreach my $file (@files)
{
  if ( -f $file )
  {
    system("libreoffice --headless --convert-to pdf --outdir ./pdf/ '$file'");
    shift;
  }
}

Ho salvato il file, l'ho reso eseguibile, ho selezionato un po' di files e cliccato tasto destro... vedo che lo script "Crea PDF da documento LibreOffic", lo lancio e... inaspettatamente ha funzionato tutto al primo colpo :) Mi ha creato tanti file PDF quanti erano i file selezionati, e li ha salvati all'interno di una sottocartella "pdf".

Facile, no? :)

Pubblicato in:linux script trucchi

Affiancare più video con FFMPEG

18DIC2015

Oggi ho avuto necessità di fare una cosa diversa dal solito: niente programmazione, ma ho dovuto realizzare un video che fosse il risultato di quattro video, affiancati due a due (2 video sopra, 2 video sotto).

Realizzare qualcosa del genere può sembrare difficile, ma con gli strumenti giusti (ed un minimo di dimestichezza con la shell) si tratta di una cosa veramente semplice. Dopo un po' di ricerche e di tentativi, ecco il risultato:

#!/bin/bash

ffmpeg -i 1.avi  -vf "movie=2.avi [in1]; [in]pad=500:210:color=white[in0]; [in0][in1] overlay=250:0 [out]" -crf 5 -b:v 8M out1.avi
ffmpeg -i 3.avi  -vf "movie=4.avi [in1]; [in]pad=500:236:color=white[in0]; [in0][in1] overlay=230:15 [out]" -crf 5 -b:v 8M out2.avi
ffmpeg -i out1.avi  -vf "movie=out2.avi [in1]; [in]pad=500:446:color=white[in0]; [in0][in1] overlay=0:216 [out]" -crf 5 -b:v 8M out.avi

rm out1.avi
rm out2.avi

La prima riga affianca i primi due video (1.avi e 2.avi) in un file temporaneo chiamato out1.avi. Le dimensioni del file risultante sono specificate nell'istruzione pad=500:210, che si occupa di "creare" lo spazio in cui inserire il secondo video, impostando uno sfondo bianco fra un video e l'altro (ho voluto lasciare qualche pixel di distanza fra i due video). L'istruzione overlay=250:0 invece inserisce il secondo video nello spazio creato in precedenza, a 250px da sinistra e 0 dall'alto.

I parametri finali (-crf 5 -b:v 8M) sono necessari per mantenere una qualità decente nel file risultante. Non conosco precisamente il significato di questi parametri, so solo che mi hanno permesso di mantenere inalterata la qualità iniziale dei singoli video. Per maggiori informazioni, consulta il manuale di ffmpeg.

La seconda riga fa la stessa cosa con i file 3.avi e 4.avi, creando un file out2.avi.

La terza riga prende out1.avi e out2.avi e li posiziona uno sopra l'altro. Le istruzioni sono simili, cambiano solamente il padding e l'overlay.

Fatto questo elimino i file temporanei et voilà, il file out.avi contiene i 4 video, affiancati.

Facile, no?

Pubblicato in:segnalazioni trucchi

Disattivare l'autocomplete su chrome (ed altri browser)

04SET2015

Disattivare l'autocomplete per username e password dovrebbe essere una questione semplice, normalmente si tratta solamente di un

autocomplete='off'

da implementare a livello di singolo campo e/o di form. Purtroppo chrome ha deciso di fare a modo suo, e quell'attributo non è sufficiente. L'autocomplete lo vuole usare a tutti i costi, e se trova un campo di tipo password, lui presume che quello precedente sia lo username.

Disattivarlo è semplice, ma è un workaround degno di un Internet Explorer qualunque. Per raggiungere questo obiettivo, è sufficiente mettere -prima dei veri campi username e password- due campi nascosti e fasulli... chrome li vede, pensa di dover usare l'autocomplete lì e si lascia fregare.

Per farla breve, appena dopo l'apertura del form metti qualcosa del genere:

<!-- campi fasulli nascosti, per fregare chrome con l'autocomplete -->
<input style="display:none" type="text" name="fakeusernameremembered"/>
<input style="display:none" type="password" name="fakepasswordremembered"/>

Et voilà. 

Ridicolo, no?

Pubblicato in:segnalazioni php

Alcuni siti si vedono male su chrome 44

24LUG2015

Da quando Google Chrome 44 è stato rilasciato sono fioccati problemi di compatibilità con alcuni siti che non si vedono più correttamente, sembrano essersi persi dei pezzi o in generale si comportano in modo strano.

Beh, è un bug di questa versione di Chrome, che dovrebbe venire aggiornata a breve (il 27 luglio). Ad esserne affetti sono potenzialmente un po' tutti i siti. Personalmente ho riscontrato un problema su un sito PHP "fatto a mano" ed uno in Wordpress.

Nel frattempo, è possibile risolvere il problema "eliminando" due variabili di sessione che "confondono" questa versione di Chrome:

# Fix for CHROME 44 https bug
unset($_SERVER['HTTP_HTTPS']);
unset($_SERVER['HTTPS']);

Tutto lì. A saperlo prima, mi sarei evitato qualche ora di debug... :)

Pubblicato in:segnalazioni

Prima ti obbligo e poi ti spiego come farlo: Chiarimenti sulla cookie law

01LUG2015

Visto che continua ad esserci moltissima confusione sulla cookie law, il Garante della Privacy ha pensato che potesse essere utile spiegare come mettersi in regola con la legge, che nel frattempo era già entrata in vigore.

Lo ha fatto con una semplice immagine (bisogna ammettere che è -abbastanza- ben fatta) che chiarisce probabilmente molti più dubbi di quanto avrebbero fatto intere paginate di spiegazioni in burocratese, quindi... ecco a voi.

Ora, probabilmente non è ancora del tutto chiaro... cosa significa "ridurre il potere identificativo", per esempio? Io uso il servizio X, sono in regola? A questo viene in soccorso un altro sito, quello di SqueezeMind, che ha preparato un paio di altre belle grafiche ed una spiegazione finalmente comprensibile dagli addetti ai lavori.

 

Non perderti la spiegazione, la puoi trovare  sul loro sito.