Come unire o dividere documenti PDF in Windows 10

A volte capita di dover modificare la struttura dei documenti PDF. Spesso mi capita di dover eliminare della pagine da un documento oppure di unirne diversi un uno solo per comodità.

Esistono molti programmi per svolgere queste funzioni, sia online che offline, io mi trovo molto bene con PDF Arranger. Si tratta di una interfaccia grafica scritta in Python di pikepdf che è una libreria piuttosto potente per la manipolazione dei documenti PDF ed è scritta in Python e C++.

Continua a leggere Come unire o dividere documenti PDF in Windows 10

Aggiungere una finestra di conferma quando si usano le select multiple nella SQLFORM.grid di Web2py

La SQLFORM.grid di Web2py è una funzionalità davvero potente, permette di avere una pagina di gestione dei record di una tabella già pronta e funzionante.

Permette anche di aggiungere un check field ad ogni riga per poter eseguire, in una sola operazione, una operazione su tutti i record selezionati. Un caso tipico è la cancellazione.

Dato che la cancellazione non è una operazione reversibile però è bene chiedere una conferma aggiuntiva prima di eseguirla per essere sicuri delle intenzioni dell’utilizzatore.

Questa funzionalità purtroppo non è prevista.

Pubblico qui come ho realizzato io questa funzione visto che non ho trovato in rete soluzioni già realizzate.

Continua a leggere Aggiungere una finestra di conferma quando si usano le select multiple nella SQLFORM.grid di Web2py

Come automatizzare le operazioni di un programma Windows 10

Quando usavo Linux ho sempre tenuto diversi widget attivi per monitorare le attività del computer.

Anche in Windows 10 esiste qualcosa di simile, si chiama Gestione Attività, ma se lo lanciamo all’avvio non lo si riesce a far scomparire dalla barra delle applicazioni attive. Per farlo scomparire bisogna aprirlo e poi ridurlo ad icona (dopo aver impostato questo comportamento nelle configurazioni).

Inutile dire che la cosa è abbastanza fastidiosa.

Per il risolvere il problema ho usato AutoHotKey (che uso anche per impostare le scorciatoie per le lettere accentate maiuscole e i caratteri speciali).

Continua a leggere Come automatizzare le operazioni di un programma Windows 10

Disabilitare il plugin All In One SEO di WordPress in una singola pagina

Per aggiungere la sezione link a questo sito ho usato due plugin che mi hanno permesso di lavorare sempre dalla dashboard senza bisogno di scrivere nuovi plugin (trovi i dettagli in questo post).

Con il passaggio alla versione 4 del plugin All In One SEO, però, è stata eliminata la possibilità di poterne disabilitare le funzioni in una singola pagina (che io usavo per modificare titolo e proprietà dell’OpenGraph di Facebook) e, in più, è stata anche modificata la riscrittura dei titoli delle pagine.

Queste modifiche hanno reso non più completamente funzionante la mia sezione link ed ecco dunque le modifiche che ho dovuto fare.

Continua a leggere Disabilitare il plugin All In One SEO di WordPress in una singola pagina

Incorporare un sito Odoo 12 in un iframe di un sito esterno

In un gestionale che ho scritto in Web2py incorporo alcune pagine di un’installazione di Odoo 12 che risiede su un server diverso.

Le recenti politiche di sicurezza dei browser hanno reso impossibile questo comportamento a meno di una autorizzazione esplicita del sito incorporato.

Il problema è che né Odoo 12 né la versione installata del server Nginx che uso come reverse proxy gestiscono questa possibilità.

Come fare?

Continua a leggere Incorporare un sito Odoo 12 in un iframe di un sito esterno

Rendere accessibile da Internet un server connesso tramite protocollo NAT o firewall con IP dinamico

Può essere necessario dover accedere ad un server che sia collegato ad Internet ma che non disponga di un indirizzo IP pubblico e statico. Potrebbe avere un indirizzo IP dinamico oppure potrebbe capitare di dover utilizzare un router per telefonia mobile che spesso usa il protocollo NAT, condividendo quindi lo stesso indirizzo IP con altri router.

Se abbiamo a disposizione un secondo server con indirizzo IP pubblico e statico lo possiamo usare come ponte per collegarci al primo server.

Continua a leggere Rendere accessibile da Internet un server connesso tramite protocollo NAT o firewall con IP dinamico

Scrivere un plugin WordPress direttamente dalla Dashboard andando subito al nòcciolo e saltando tutte le parti noiose

Aggiornamento del 29/01/2021: i dettagli sono prima della conclusione.

Volevo aggiungere una sezione link a questo sito per archiviare le notizie interessanti che incontro in giro per la Rete e per avere un unico indirizzo da condividere su Facebook e Linkedin.

Potevo installare un plugin già pronto, ma avrei dovuto cercarne e trovarne uno adatto, oppure potevo scriverne uno io, ma avrei dovuto preparare la struttura di cartelle e file necessari per il codice che spesso contiene ripetizioni di blocchi simili {chi lo ha già fatto sa di cosa sto parlando ;-)}.
Entrambe le soluzioni hanno dunque qualche punto debole.

Ho deciso quindi di provare ad usare i plugin Pods e Code Snippets per prendere il meglio da ciascuna delle due opzioni precedenti: ottenere un plugin che faccia esattamente quello che mi serve concentrandomi solo sul codice che implementa il comportamento del modulo.

Continua a leggere Scrivere un plugin WordPress direttamente dalla Dashboard andando subito al nòcciolo e saltando tutte le parti noiose