Whoosh come motore di ricerca per un blog

Da un bel po’ di tempo il mio sito sta aspettando un bell’aggiornamento, ma ogni volta mi blocco per un motivo o per l’altro. Questa volta è stato il turno della ricerca.

Questa funzionalità è una delle più complicate da implementare, per una moltitudine di fattori, che vanno dalla necessaria attenzione alle prestazioni al fatto che la ricerca non è un problema con una soluzione precisa. Non a caso i motori di ricerca di oggi si basano completamente su algoritmi di machine learning, che però per un piccolo sito come il mio, che vuole comunque offire questa possibilità, sarebbe un’esagerazione, peraltro impossibile, in quanto non avrei nemmeno i dati per il training.

In ogni caso, non voglio rimuovere questa funzionalità dal sito, né implementarla in maniera troppo inefficace, né rivolgermi a servizi di terzi, quindi mi sono guardato un po’ attorno per decidere sul da farsi e ho provato diverse soluzioni.

Come già annunciato, sto lavorando in Python, con Django, quindi il mio primo passo è stato provare Haystack.

Questo è un framework che fa da ponte tra i modelli dell’ORM di Django e diversi backend per la ricerca, tra cui i celebri Elasticsearch e Solr, entrambi basati su Apache Lucene, e i meno famosi Xapian e Whoosh. Precisamente Haystack mette a disposizione delle API agnostiche dal backend per indicizzare, eseguire ricerche ed altre operazioni sui modelli di Django. Quindi, una volta creato il codice basato su Haystack, si possono facilmente provare i vari backend. … [Leggi il resto]

Slow standards

Negli ultimi anni in molti hanno parlato di diverse politiche slow: slow food, slow life, ma forse nessuno ha mai parlato di slow web standard.

Fondamentalmente penso che ormai gli standard web siano veramente una cosa gigantesca, che se da un certo punto di vista permettono di costruire applicazioni sempre più complete e complesse, da un altro diventano estremamente difficili da seguire e introducono possibili rischi per la sicurezza e per la privacy.

Cominciai a scrivere per il web quando lo stato dell’arte erano HTML 4.01 e CSS 2.1 e ho assistito alla creazione dell’HTML 5 e di tante API che oggi gli sviluppatori danno per scontate e permettono di ottenere risultati un tempo ritenuti impossibili senza usare hack e/o javascript, da flexbox alle varie animazioni. Poi con gli anni un po’ ho perso la passione per lo sviluppo web, un po’ gli studi mi hanno assorbito il tempo, quindi non mi sono tenuto molto aggiornato.

Tuttavia, non è una mia impressione che le modifiche siano estremamente frequenti, infatti con HTML 5 hanno deciso di eliminare il numero e di trasformarlo in HTML Living standard una cosa che secondo me, anche sono anni che va avanti così, è sbagliata. … [Leggi il resto]

Qualcosa è andato storto

L’email è una tecnologia che potremmo dire venga dal paleolitico dell’informatica: SMTP è datato 1982, MIME 1996 (RFC 2045), eppure oggi mi sono trovato in difficoltà.

Il mio obiettivo era stampare i biglietti per l’aereo a mia sorella, una cosa che non dovrebbe richiedere 50 minuti.

Ma partiamo dalla radice del problema: Lufthansa ha pensato di inviare il biglietto come mail HTML con le varie immagini di cui è composto come ulteriori allegati. Questa cosa è possibile, ed è regolata dalla RFC 2392 (Content-ID and Message-ID Uniform Resource Locators, datata agosto 1998), tuttavia, in generale, fare una mail in HTML con immagini non è mai una cosa banale, esistono diverse soluzioni, ma nessuna perfetta.

Una soluzione ottima sarebbe stato un bel file PDF, aperto tranquillamente da ogni dispositivo, salvato e gestito come meglio si crede.

Ciò che però ha veramente causato il problema è stato il modo in cui io ho ricevuto l’email in questione: inoltrata. … [Leggi il resto]

Android 9 su Oneplus One? Ma certo!

Ultimamente sono stato molto impegnato, prevalentemente con lo studio, e non ho avuto molto tempo e voglia di sperimentare con tecnologie varie.

Tuttavia sono riuscito a lavorare un po’ sul mio Oneplus One, anche perché ne avevo bisogno. Infatti, negli ultimi tempi mi sembrava di essere con il telefono costantemente attaccato ad una presa di corrente a caricarsi.

La cosa purtroppo non mi è nuova, ed è stata più di una volta il motivo che mi ha spinto a cambiare ROM e lo è stato ancora una volta.

A dir la verità, quest’anno sono un po’ in ritardo, un po’ non ho seguito molto il rilascio della nuova versione di Android, 9 o Pie, cosa che solitamente faccio, un po’ perché non volevo rischiare di trovare bug strani che prevengono il funzionamento corretto di funzionalità come GPS, fotocamera o addirittura dei dati.

Alla fine però mi sono deciso, in particolare ho provato Arrow OS. Questa ROM non è perfetta, mancano alcune funzionalità che sono abituato ad usare, come il remapping dei bottoni fisici, che peraltro non sono neanche illuminati e qualche volta c’è stato un riavvio automatico. Inoltre sembrano esserci dei problemi con la velocità del WiFi a 2,4GHz, che con i 5GHz non ci sono, ma non so se sia dovuto alla grande interferenza di reti che c’è dove sono io. … [Leggi il resto]

Affari ai mercatini: DIR-615 e ho provato WireGuard

Nel post precedente a questo avevo accennato al fatto che sarò a Oslo per qualche mese, anzi, ormai è già passato il primo.

In particolare avevo descritto la soluzione che avevo ideato per il networking qui, i problemi riscontrati e la soluzione tampone che avevo dovuto adottare.

Usare la Raspberry ha il vantaggio principale che gestisco completamente l’hardware di rete e che posso anche eseguire tutti i servizi che mi servono, uno su tutti OpenVPN, che uso per avere sempre un collegamento con casa e le varie cose che ho lì, per esempio il NAS, oppure per avere un indirizzo IP italiano, che mi viene richiesto per certi servizi.

Tuttavia c’erano anche diversi lati negativi: l’adattatore ethernet-USB sempre occupato e quindi l’impossibilità di usarlo con un computer che è privo di porta ethernet, ma soprattutto la scheda wireless della Raspberry non è nata per fare l’access point e infatti non riveste questo ruolo molto bene.

Quindi, quando ieri ad un mercatino delle pulci ho trovato un D-Link DIR-615, non ho resistito e l’ho comprato. Visto che i venditori non erano sicuri che funzionasse e che volevano disfarsi di più oggetti possibili perché stavano per chiudere, per 20NOK (circa 2€), mi sono portato a casa questo router e uno ZyXEL NBG6503. In particolare, il primo è compatibile con OpenWRT ed è il motivo principale per cui volevo comprarlo. … [Leggi il resto]