Articolo in evidenzaArticolo in evidenzaArticolo in evidenzaArticolo in evidenzaArticolo in evidenza

Feb

9

2019

Utilizzare Timeshift, per creare snapshot (istantanee) del sistema (ripristinabili all’occorrenza, un po’ come avviene con i punti di ripristino del sistema di Windows) è estremamente semplice. Su un sistema Debian like, basta il seguente comando per installare:

sudo apt install timeshift

Dopo l’installazione, basterà avviare Timeshift e cliccare su Configurazione guidata; in realtà è tutto estremamente semplice, totalmente basato su una comoda ed intuitiva interfaccia grafica, e se non ci sono particolari esigenze si può scegliere tranquillamente di creare le snapshot con rsync (l’altra opzione è il brtfs), indicare la destinazione delle snapshot stesse, il numero di istantanee da mantenere memorizzate, e la frequenza di creazione delle istantanee del sistema.

Alla fine della configurazione, tornando alla schermata iniziale, basterà cliccare su Crea per ottenere la prima istantanea del sistema.

Successivamente, ci penserà Timeshift a gestire il tutto secondo le cadenze indicate in configurazione.

In caso di necessità, per effettuare un ripristino basterà scegliere la snapshot desiderata e cliccare su Ripristina. In caso di impossibilità ad accedere al sistema, si può anche usare una live distro, tramite la quale installare il tool, avviarlo e navigare fino alla posizione in cui si trovano le snapshot per ripristinarne una.

Alla prossima..

Share

Gen

31

2019

Recentemente ho acquistato un Pocophone F1 di Xiaomi e, con mia grande sorpresa, ho scoperto che Waze e Amazon Music non funzionavano correttamente con Android Auto.

Nello specifico, Waze (il famosissimo navigatore “sociale”) non riusciva ad agganciare correttamente il segnale GPS, e quindi di fatto era inutile, mentre Amazon Music segnalava genericamente che “al momento non sembra funzionare”.

Si trattava di problemi legati alla MIUI, l’OS installato sui terminali di Xiaomi, o meglio alle impostazioni di default per le app.

Per Waze, da Impostazioni -> App installate -> Waze -> Risparmio batteria, è necessario impostare Nessuna restrizione (altrimenti la modalità risparmio energetico “stacca” il GPS quando si spegne lo schermo del cellulare).

Per Amazon Music, da Impostazioni -> App installate -> Permessi app, basta concedere i permessi presenti.

Inoltre, va tenuta d’occhio anche la modalità di pulizia della memoria della MIUI, capace di interferire col corretto funzionamento di molte app collegate ad Android Auto.

Alla prossima..

Share

Apr

19

2018

Forse in molti avranno sentito parlare di Cross Origin Resource Sharing (CORS). Un caso estremamente comune per le applicazioni web è quello del reperimento dei dati mediante un web service di tipo REST, la nostra applicazione quindi andrà a reperire i dati da mostrare attraverso un servizio esposto.

Purtroppo, per limitare l’eventualità di attacchi informatici, i browser moderni applicano la restrizione same-origin; senza entrare in dettagli, un’applicazione web su un dominio A non riuscirà a chiamare il servizio REST esposto su un dominio B.

In Java, esistono vari modi per aggirare tale restrizione, una semplicissima consiste nello scrivere una classe CORSFilter che, come dice il nome stesso, è un filtro CORS personalizzato:

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class CORSFilter implements Filter {
	
	@Override
	public void init(FilterConfig filterConfig) throws ServletException {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
			throws IOException, ServletException {
		
		HttpServletRequest req = (HttpServletRequest) request;
 
        // Autorizza tutti i domini a consumare il servizio
        ((HttpServletResponse) response).addHeader("Access-Control-Allow-Origin", "*");
        ((HttpServletResponse) response).addHeader("Access-Control-Allow-Methods", "GET, OPTIONS, HEAD, PUT, POST, DELETE");
        ((HttpServletResponse) response).addHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
 
        HttpServletResponse resp = (HttpServletResponse) response;
 
        if (req.getMethod().equals("OPTIONS")) {
            resp.setStatus(HttpServletResponse.SC_ACCEPTED);
            return;
        }
 
        chain.doFilter(request, response);
		
	}

	@Override
	public void destroy() {
		// TODO Auto-generated method stub
		
	}

}

Per poi registrarla come filtro nel web.xml:

<filter>
    <filter-name>CorsFilter</filter-name>
    <filter-class>nomedelpackage.CORSFilter</filter-class>
</filter>
 
<filter-mapping>
    <filter-name>CorsFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

Da ricordare che le righe qui sopra vanno inserite prima del tag <servlet>.

Tutto qui.. Adesso il filtro CORS funziona a dovere.

Alla prossima..

Share

Mag

10

2017

Nel precedente articolo abbiamo visto come ottenere la serie di immagini necessarie a realizzare un video in timelapse, ora non resta che trasformarle nel nostro video.

Per prima cosa, occorre un software in grado di montare le varie immagini, io consiglio Avidemux, free e multipiattaforma, scaricabile da qui. Dopo aver effettuato il download, non dimentichiamo di rendere eseguibile il file .appImage ottenuto:

chmod +x avidemux_2.6.20.appImage

In modo da poterlo eseguire semplicemente con

./avidemux_2.6.20.appImage

A questo punto, aprite Avidemux, aprite la prima immagine della sequenza e automaticamente dovrebbero essere importate anche tutte le altre. In caso contrario, sarà necessario aprire le immagini una alla volta, aggiungendole man mano alla timeline del video.

Al termine, potrete visionare l’anteprima del video cliccando su Play in basso a sinistra, e salvare infine il vostro video cliccando File -> Save -> Save Video.

Alla prossima..

Share

Mag

7

2017

Realizzare un video in timelapse con Raspberry Pi e PiCamera è davvero semplice e alla portata di tutti. Supponendo di aver già installato ed attivato il modulo PiCamera, si procede con pochi semplici passi.

Il comando necessario per scattare una foto è il seguente:

raspistill -o nomefile.jpg

Dopo aver scattato, dovremmo essere in grado di visualizzare l’immagine nella directory nella quale abbiamo lanciato il comando. Se dovesse risultare capovolta (dipende da come è posizionato il modulo PiCamera), basterà modificare il comando precedente:

raspistill -hf -vf -o nomefile.jpg

A questo punto abbiamo già tutto il necessario per realizzare le nostre immagini.. Basterà creare un piccolo script che scatta una foto e la salva in una specifica directory (ad esempio potremmo creare una directory timelapse nella home dell’utente del nostro Raspberry Pi):

cd timelapse
sudo nano timelapse.sh

#!/bin/bash
DATE=$(date +"%d-%m-%Y_%H%M")
raspistill -hf -vf -o /home/nomeutente/$DATE.jps

Testiamo lo script con un semplice:

./timelapse.sh

E se tutto funziona, scheduliamolo in modo che scatti, ad esempio, una foto ogni 10 minuti:

sudo crontab -e

Ci verrà chiesto di scegliere un editor, io di solito scelgo nano. Poi alla fine del file visualizzato aggiungiamo:

*/10 * * * * sh /home/nomeutente/timelapse/timelapse.sh 2>&1

Chiudiamo l’editor salvando il file e, fin da subito, potremo iniziare a vedere le immagini che vengono create ogni 10 minuti nella directory che abbiamo indicato in precedenza.

Ovviamente possiamo variare a piacere l’intervallo di scatto delle foto, e altrettanto ovviamente occorre stare attenti alla capacità della SD che usiamo col nostro Raspberry Pi. Potrebbe essere utile tenere collegata una pendrive USB a riguardo.

Alla prossima con la realizzazione del nostro video..

Share

Licenza

Creative Commons License
RedBlue's Blog di RedBlue è rilasciato sotto licenza Creative Commons 2.5 Italia.

Badges

Cionfs'Forum CMS Check PageRank

Other

Se hai trovato utile questo blog, supportalo con una piccola donazione per l'hosting..


Locations of visitors to this page