Skip to main content

Scansione fronte-retro di un documento in un singolo PDF con PDFsam

Oggi, nel tentativo di uscire dall’ufficio a un’ora decente, ho deciso di portarmi  casa un pò di lavoro arretrato. Tra le varie cose avevo la necessità di effettuare la scansione di un certo numero di documenti così da potermi disfare delle relative versioni cartacee. Avendo a disposizione una multi-funzione HP CM1410 MFP, con un cassetto da 30 pagine e un’ottima velocità di acquisizione, pensavo di essere a posto. Ho scoperto mio malgrado che non era così: la maggior parte dei documenti erano stampati su entrambe le facciate del foglio, rendendo impossibile per la mia multifunzione acquisirli in modo corretto in quanto mancante della modalità di scansione fronte-retro.

 

Ho quindi pensato che avrei potuto utilizzare Adobe Acrobat, scansionando le pagine in due tempi (prima il fronte, poi il retro) e poi riordinando manualmente le facciate: questa operazione avrebbe però richiesto parecchio tempo, visto che avevo a che fare con documenti piuttosto lunghi (50 pagine o più). Ero quindi sul punto di rinunciare, rimandando l’attività all’indomani – utilizzando lo scanner fronte-retro dell’ufficio – quando mi sono ricordato dell’esistenza di un software Open Source che avevo già avuto modo di utilizzare qualche tempo fa per riordinare alcuni PDF di grandi dimensioni. Il suo nome era PDFsam, acronimo di PDF Split and Merge: ho deciso di controllare se, a distanza di anni, avrebbe potuto essermi nuovamente utile, quindi ho effettuato una rapida ricerca su Google e… Indovinate un pò? Esiste ancora, è in ottima forma e ha risolto il mio problema in pochi secondi!

Approfondisci

Disable Windows 10 Tracking, una applicazione per bloccare la raccolta di dati da parte di Microsoft

Non tutti sono rimasti contenti alla notizia – peraltro non molto pubblicizzata – che il colosso di Redmond ha dotato la sua ultima creatura Windows 10 di un complesso e accurato sistema di raccolta dei dati personali dell’utente. Le motivazioni esposte per giustificare la cosa riguardano, come di consueto, la modulazione e personalizzazione dei servizi offerti, nonché l’introduzione di un meccanismo rivoluzionario che analizza le abitudini degli utenti allo scopo di migliorare le successive versioni del sistema operativo più famoso al mondo: ovviamente non si tratta di una giustificazione sufficiente per chiunque abbia a cuore il tema della privacy personale, specie considerando che si tratta di attività gestite – come al solito – in modo poco trasparente, con il risultato di tenere l’utente medio all’oscuro dell’intero sistema.

Approfondisci

Come aggiornare il proprio CocoaPod e vivere felici

CocoaPod è un framework meraviglioso ma, diciamocelo pure, sul piano della documentazione fa acqua da tutte le parti, nonostante gli sviluppatori abbiano dedicato un intero sito web alla guida all’uso. Cos’è che non funziona esattamente? Il linguaggio utilizzato, la sintassi proprietaria estremamente contorta, gli strumenti di comando altamente user-unfriendly, l’incapacità di fornire degli esempi reali… un pò tutte queste cose insieme, unite alla intrinseca difficoltà che molti sviluppatori incontrano nel mettere d’accordo ben tre realtà: l’ambiente di sviluppo XCode, il repository GitHub e, per l’appunto, l’interfaccia di comandi pod . Non c’è niente di complicato, intendiamoci: il problema è che, almeno nel mio caso, si tende a dimenticarsi sistematicamente cosa bisogna fare.

Per risolvere questo problema ho provato a buttare giù un mini-elenco di cose da fare: di certo farà risparmiare qualche minuto a me, magari anche ad altri.

  • Accendete il Mac (o fate partire la vostra macchina virtuale).
  • Effettuate un Pull del vostro progetto dal repository GitHub o BitBucket sul vostro repository locale, giusto per assicurarvi di acquisire ogni possibile cambiamento effettuato direttamente dal web (merge di qualche pull request che avete accettato, etc.).
  • Aprite il progetto con XCode e modificate il codice sorgente sui vostri file locali, effettuando zero, uno o più Commit sul vostro repository locale a seconda di come siete abituati a lavorare.
  • Quando siete pronti, la prima cosa da fare è aprire il file .podspec ed aggiornarlo incrementando la versione della libreria modificando il valore numerico del parametro   s.version , ad esempio da 1.11 a 1.12.
  • Effettuate un test della vostra nuova build lanciando un prompt dei comandi, navigando fino alla cartella principale del vostro Pod e digitando: pod lib lint
  • Effettuate un ultimo Commit sul vostro repository locale includendo tutti gli ultimi cambiamenti, ivi incluso il cambio di versione effettuato nel file .podspec.
  • Al termine del Commit, assegnate al suddetto un Tag identico al numero di versione – lo stesso che avete specificato nel parametro   s.version  (1.12 nel nostro esempio).
  • Effettuate un Sync/Push sul vostro repository GitHub.
  • Lanciate nuovamente un prompt dei comandi, recatevi nella cartella principale del vostro Pod e digitate: pod trunk push NAME.podspec

Bingo.

Se solo potessi ricordarmi tutto questo per più di 3 ore…

Jquery.scrolling: controllare la comparsa e la scomparsa degli elementi nel Viewport

Con l’affermarsi del responsive design e dei layout adattivi diventa sempre più importante tenere traccia della presenza degli elementi man mano che essi diventano visibili all’interno del viewport, ovvero della zona del browser visibile all’utente. Sfortunatamente né il linguaggio javascript né il popolare framework jquery mettono a disposizione un modo nativo per controllare lo stato degli elementi HTML in conseguenza dello scroll della pagina.

Per rispondere a questa esigenza ho sviluppato il plugin jquery.scrolling, che può essere utilizzato proprio per assolvere a tale compito. Il plugin consente infatti di disporre di due eventi, scrollin e scrollout, che si attivano rispettivamente quando un elemento entra o esce dall’area di visualizzazione del viewport.

Gli eventi si attivano in conseguenza di uno scroll o di un resize, ma possono anche essere attivati manualmente nel caso di contenuto generato dinamicamente, ad esempio a seguito di chiamate AJAX. Il plugin supporta infatti ogni tipo di contenuto presente all’interno del DOM della pagina ovvero all’interno di frame o iframe in essa presenti.

Approfondisci

Gestire le GitHub Pages con Mercurial e TortoiseHG

Abbiamo già visto in un precedente articolo come sia possibile creare, pubblicare e gestire un repository su github.com senza bisogno di installare Git, avvalendosi unicamente di MercurialTortoiseHG. In questo articolo spiegheremo come sia possibile utilizzare lo stesso metodo per impostare branch aggiuntivi, come ad esempio il branch gh-pages mediante il quale GitHub consente di pubblicare le cosiddette project pages.

GitHub Pages: cosa sono e a cosa servono

Come spiega il sito, le GitHub pages non sono altro che pagine web ospitate sui server di GitHub. Si dividono in due tipologie:

  • User & Organization Pages: si tratta di pagine legate al nostro account GitHub. Per crearle è sufficiente creare un repository con un nome particolare legato al nostro account. La sintassi da seguire è la seguente:  <username>.github.io  , dove al posto di <username> andrà inserito il nome corrispondente al proprio account GitHub. Una volta creato sarà possibile aggiungere una o più pagine web (e relativi css, js, immagini etc.) che diventeranno immediatamente accessibili all’indirizzo:  http(s)://<username>.github.io .  Queste pagine sono solitamente utilizzate per creare un mini sito web relativo al proprio account GitHub: presentazione e informazioni sullo sviluppatore, portfolio, mission del team di sviluppo, etc.
  • Project Pages: si tratta di pagine legate a un progetto specifico pubblicato su GitHub. Possono essere create manualmente utilizzando gli appositi comandi Git oppure automaticamente utilizzando il software di generazione automatico messo a disposizione da GitHub. In entrambi i casi verrà aggiunto un branch apposito, denominato gh-pages, dove sarà possibile aggiungere una o più pagine web alle quali si potrà accedere mediante l’indirizzo: http(s)://<username>.github.io/<projectname> . Queste pagine sono solitamente utilizzate per creare un sito web relativo al proprio progetto: descrizione, istruzioni per l’uso, esempi, demo, documentazione, API, etc.

Poiché le User & Organization Pages utilizzano il branch master del repository a loro dedicato, per gestirle è sufficiente fare riferimento all’articolo pubblicato in precedenza, che illustra appunto come gestire un repository Git tramite Mercurial. Nel caso delle Project Pages la questione è resa leggermente più complicata dal fatto che dobbiamo creare un branch apposito: vediamo come.

Approfondisci

Close