Ottieni la data di ultima modifica di una pagina web

curl -vvv http://adrianofarina.it/MIMO
> GET /MIMO/ HTTP/1.1
> Host: adrianofarina.it
> User-Agent: curl/8.4.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Thu, 08 Feb 2024 19:45:16 GMT
< Content-Type: text/html
< Transfer-Encoding: chunked
< Connection: keep-alive
< Last-Modified: Tue, 18 May 2021 22:25:18 GMT

Salva un’intera pagina web con Chrome

Un sacco di pagine moderne non funzionano senza JavaScript, come facciamo ad archiviarle?
Con questo comando, riportato in versione Chrome per Mac, ma con minimi adattamenti funziona anche su Linux e Windows.

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \
--headless --incognito --dump-dom https://github.com > /tmp/github.html

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome è il path all’eseguibile di Chrome

https://github.com è l’indirizzo del sito da archiviare

> è l’output redirect

/tmp/github.html è la destinazione in cui salvare il risultato

Conversione automatica da MarkDown a HTML o EPUB, con CSS

Sto lavorando a un progetto su nuovi formati di audioguide, e man mano che leggo la letteratura scientifica prendo appunti in Markdown. Ovviamente basterebbe usare un’app di appunti in Markdown, ma voglio che resti un file pulito nella cartella condivisa con il resto del team, ma presentando il risultato in modo leggibile.

Ho quindi installato pandoc con

brew install pandoc
o
sudo apt-get install pandoc

Rispettivamente per Mac e per Debian

Poi ho copiato il css di default di Cassidoo in base.css, e ho eseguito il seguente comando

pandoc -c base.css -s -f markdown+smart --toc --metadata pagetitle="Audioguide Notes" --metadata title="Audioguide Notes" notes.md -o notes.epub

Per l’EPUB, mentre per l’HTML:

pandoc -c base.css -s -f markdown+smart --toc --metadata pagetitle="Audioguide Notes" notes.md -o notes.html

Genera anche un’indice grazie all’opzione –toc, ma in realtà mancano un sacco di metadata, innanzitutto la lingua, per la quale basta aggiungere

-V lang=it

Sostituendo il codice lingua da voi utilizzato.

Inoltre la pagina generate manca completamente di landmark, non ha nemmeno un main, difetto prontamente segnalato dai checker di accessibilità come Axe.

Alla stessa maniera potete anche creare documenti Word, o PDF. Per mettere il file su un kindle la cosa più semplice è usare Calibre, che converte perfettamente gli EPUB.

Come scaricare un sito da archive.org

Il sito di un progetto a cui ho collaborato, progettosipario.org, ha smesso di funzionare l’estate scorsa, e a me piace aver traccia del lavoro svolto. Per cui ho comprato il dominio progettosipario.it con l’intenzione di ripubblicare il contenuto del sito, che fortunatamente è salvato su web.archive.org.

L’unico strumento in grado di scaricare un intero sito è il wayback-machine-downloader di hartartor, che è uno script ruby. Recentemente archive.org ha dovuto introdurre un limite al quantitativo di file scaricabili, per cui bisogna aggiungere delle attese nello script, come spiegato in questa issue: https://github.com/hartator/wayback-machine-downloader/issues/273

A questo punto ho ottenuto 189 file, solo che, come spesso accade con i siti WordPress, i link erano tutti assoluti, cioè il link dalla home alla about puntava sempre alla about di progettosipario.org, e quindi non funzionava. Ho perso tempo con uno script perl trovato su perlmonks che avrebbe dovuto fare esattamente quello che mi serviva, risolvendo anche un problema di dipendenze, causato dalla sostituzione dei tab con gli spazi mentre scaricavo lo script.

Alla fine l’ho risolta in modo molto più semplice, in Visual Studio Code ho aperto la cartella contenente l’intera struttura del sito, e ho fatto un cerca e sostituisci, da progettosipario.org a progettosipario.it.

Poi ho caricato tutto sul server via FTP, il problema è che ci avevo già installato Omeka S, e adesso funziona solo specificando esattamente l’URL del file, non della cartella come dovrebbe. Non sembrano esistere istruzioni su come disinstallare Omeka S.

Sideloading su iOS 2024

Da anni aspetto che l’Apple permetta di eseguire il software che vogliamo sul nostro hardware. Forse i recenti sforzi legislativi riusciranno a convincerli, ma intanto qui spiego un modo di farlo adesso, se avete un Mac o un PC Windows.

Bisogna installare l’AltServer sul vostro computer, seguendo le istruzioni installare l’AltStore sul vostro dispositivo iOS, poi abilitare i vari repositories. A quel punto potete installare varie App non disponibili sullo Store ufficiale, sono soprattutto vari emulatori, sia di interi sistemi operativi che di varie console da videogiochi.

Con UTM, ad esempio, si possono emulare vari sistemi operativi “da computer”, sui quali possiamo eseguire software arbitrario, eliminando quindi tutte le limitazioni di iOS. Ovviamente è una soluzione scomoda, ma è bello poter pensare di farlo.

Shortcut per OCR su Mac e iOS

Una semi-traduzione di questo articolo, nel quale viene spiegato come farsi un semplice Shortcut (il sistema di scripting per Mac e iOS che nelle intenzioni dell’Apple dovrebbe, prima o poi, sostituire Automator e AppleScript) che mette nella clipboard il testo contenuto in qualunque immagine o documento. Questo utilizza lo stesso sistema di riconoscimento del testo che ci permette di copiare il testo da un’immagine.

Nell’articolo originale viene anche mostrato come usare questo shortcut da linea di comando e da dentro uno script Python, con ovvio potenziale di automazione. Ma come si fa a scegliere un’immagine come input dello script senza usare la linea di comando? Soprattutto, come si fa da iPhone, dove la linea di comando non c’è? (O meglio, c’è ish che è molto comodo, ma non ha accesso al comando shortcuts).

Bisogna andare nel pannello details (premendo il tasto ℹ️) e attivare l’opzione Show in Share Sheet

A questo punto per testare il funzionamento è sufficiente condividere un’immagine con del testo. Ecco un esempio:

Ed ecco il risultato

13:40
80
DD
1U.44
To: Adriano Farina >
You’re in for the January Challenge!
down dog
We’re thrilled to have you join the January 2024 challenge!
Remember, all Down Dog apps are included in this challenge

  • this might be the perfect time to try something new! Your subscription gets you access to all of our apps! Just download and log in with your same account info,
    Stay tuned for updates from us here and on Instagram, & join the conversation in the Down Dog Community. b
    See you on your mat •e
    Yoga
    HIIT

    Meditation
    Barre
    Prenatal
    You’ve received this email as a registered user of Down Dog
    2170 Harrison St. #3 San Francisco, CA 94110

Il vero vantaggio di questo Shortcut non è per le immagini, dato che cliccando l’icona in basso a destra nella Gallery si ottiene lo stesso identico risultato:

Con lo Shortcut si può fare la stessa cosa con qualunque file statico, ad esempio con dei PDF contenenti immagini.

Baco nella masterizzazione di CD e DVD su Windows

Per bizzarri motivi burocratici devo consegnare un software a un cliente in forma fisica, quindi ho comprato dei CD-R, ne ho messo uno nel mio lettore/materizzatore DVD USB, ho trascinato i file, sono andato nel menù in alto e cliccato “Burn to disc”. Mi è venuta fuori una finestra di errore con scritto “Windows can’t read the disc in drive E:\ Make sure that the disc uses a format that Windows recognizes. If the disc is unformatted, you need to format it before using it.”.

Googlando ho trovato questo thread su Microsoft Answers, in cui un utente nel 2019 ha avuto lo stesso problema, ma senza alcuna soluzione. Purtroppo il thread è chiuso, ma la soluzione è molto semplice, basta cliccar destro sul fondo della finestra in cui si vede l’elendo dei file da bruciare, e cliccare “Burn to disc” dal menù di click destro. Apparentemente sono due modi per fare la stessa cosa, ma simpaticamente quello in bella vista non va, quello nascosto sì. La meravigliosa qualità del software.

Sfogliatine porco e kimchi

Per capodanno ho creato delle sfiziose eresie, combinando un ripieno ispirato da questi ravioli con della sfoglia pronta presa all’Esselunga, arrotolata imitando la forma delle empanadas.

Per il ripieno:

  1. Soffritto di cipolle con un cucchiaio di strutto sciolto nell’olio
  2. 200g di pasta di salame
  3. 200g di kimchi (in scatola), rompendo i pezzi di cavolo più grossi con la forchetta
  4. Zenzero fresco sminuzzato
  5. Un goccio di salsa di pesce tailandese
  6. Un goccio di salsa Worcestershire

Una volta fatto il soffritto ho aggiunto tutto il resto mischiato bene, spadellato a fuoco basso finché non si è asciugato. A quel punto ho aggiunto un uovo ben mescolato.

Ho tentato un paio di metodi diversi per mettere il ripieno nella sfoglia. Il primo era quello dei tortelli d’erbetta, un rettangolo piegato in due. In seguito sono passato a quelle delle empanadas, tagliando dei pezzi circolari di sfoglia con un coppapasta (sarà da couper?), mettendo il ripendo al centro e ripiegando i bordi.

Ho spennellato la superficie della sfoglia di uovo. Per la cottura sono 20 minuti a 200°C in forno ventilato.

Con queste dosi mi son servite 3 confezioni di sfoglia. A seconda di quanto kimchi e zenzero usate viene lievemente piccante, ma è stato apprezzato anche da parenti particolarmente debole in tal senso, c’è un buon contrasto dolce-salato-piccante.

Manipolazione PDF da linea di comando

Mettiamo di avere una cartella piena di immagini numerate, una per pagina, possiamo ottenere un pdf con img2pdf

img2pdf * > output.pdf

Tuttavia nel caso in cui mi sono imbattuto oggi ogni immagine conteneva due pagine, e quindi andavano divise, ho usato ImageMagick con il comando (adattato da StackOverflow), sostituendo subfolder_name con il nome di una sottocartella esistente a nostro arbitrio, in modo da tenere separate le immagini divise da quelle originali.

ls -1 *.png | sed 's,.*,& subfolder_name/&,' | xargs -n 2 convert -crop 50%x100% +repage

Spostandomi nella sottocartella, ho riallineato le pagine, togliendo la copertina che era stata erroneamente divisa in due, e inserendone un’ulteriore copia per mantenere l’allineamento degli spread. Quindi ho ricreato il pdf con img2pdf, di default le immagini vengono inserite in ordine alfabetico.

L’ultimo passaggio è stato un grossolano tentativo di riconoscimento automatico dei caratteri, usando OCRmyPDF

ocrmypdf input.pdf output.pdf

Per mia fortuna oggi lavoravo su un testo in inglese, ma si possono installare altre lingue