Tag: Mondo informatica 🖥

  • Come scaricare i tuoi dati da un account Instagram

    Come scaricare i tuoi dati da un account Instagram

    Scaricare una copia dei tuoi dati personali da Instagram è un modo per tenere sotto controllo quello che Instagram sa di noi, delle nostre preferenze e del nosto account. La curiosità di vedere nel concreto i dati che vengono condivisi è tanta, in molti casi, e per farlo ho utilizzato il mio account personale per scrivere questa guida in modo da comprendere meglio (e cercare di condividere) quello che sembra più interessante.

    Instagram permette di esportare i tuoi dati personalizzati organizzati come file e cartelle, sia in formato HTML che JSON, conviene il primo che potete visualizzare con un comune browser come Firefox, salvo usi particolari che richiede invece JSON. Ma come si fa a scaricare i nostri dati personali, inclusi like, video visti e via dicendo?

    Procedura passo-passo per scaricare una copia dei nostri dati da Instagram

    Come primo passo, andiamo su instagram.com (con un browser come Firefox, Safari o Chrome di Google) e facciamo login nel tuo account, inserendo nickname e password, oppure se avessi collegato l’account a Facebook fai login con Facebook.

    Come recuperare la password dimenticata

    Se non ricordi la password, no problem! Ripristinala mediante la procedura di recupero che trovi qui:

    https://www.instagram.com/accounts/password/reset/

    Accedi a Privacy e sicurezza

    Torniamo alla procedura principale, adesso: dalla home del tuo profilo fai un bel click sull’ingranaggio vicino al tuo nome, e seleziona tra le tante voci Privacy e sicurezza.

    Cerca download dei dati

    Scorri in basso, fino a trovare “Download dei dati”, e clicca su Richiedi il download. In alternativa, puoi anche andare direttamente qui su Instagram:

    https://www.instagram.com/download/request/

    dopo aver fatto login. Questo è in effetti il link per richiedere un file con tutti i propri dati personali, che poi sarà creato da Instagram e ti sarà inviato per posta elettronica al tuo indirizzo, quello che hai usato per registrare il tuo account Instagram.

    Come riconoscere la mail di Instagram

    La mail ti arriverà in questa forma:

    e l’oggetto è in genere Le tue informazioni di Instagram. Attenzione che potrebbe arrivare dopo un po’ dalla richiesta, quindi fate tutto con molta calma e se non arriva subito, ogni tanto controllate nella casella di spam e toglietelo dallo spam, in caso.

    La consegna del file coi vosti dati via email avviene in modo non immediato, con attesa di qualche ora o di un giorno a seconda della dimensione del vostro account (più è vecchio più ci vuole tempo, ovviamente).

    Rischio privacy: il file è privato, contiene molte informazioni associate al vostro account, per cui non è opportuno lasciarlo incustodito o conviderlo con altre persone, in chat o via email o tantomeno sui social!

    Dopo aver cliccato sul link indicato (ti ricordiamo che devi fare click sul link dove c’è scritto: Richiedi il download), ti apparirà una finestra di conferma in cui dovrai selezionare il formato: per quello che vogliamo fare, va bene selezionare HTML quindi in formato WEB (JSON è un formato che i browser non aprono, ma che va bene per fare altre cose).

    Digita con attenzione l’indirizzo di mail dove desideri ricevere il file, controllando bene di aver scritto l’indirizzo prima di confermare.

    Nota. Non puoi richiedere una copia dei tuoi dati più di una volta ogni 4 giorni.

    Nella mail ricevuta, finalmente:

    troverai un bottone con su scritto “Scarica informazioni“, che sono le tue informazioni personali nel formato HTML che sono pronte ad essere scaricate nel tuo computer.

    Per sicurezza, servirà di nuovo la tua password.

    Adesso scarica il file in formato compresso, .ZIP, e attendi che finisca di scaricarlo (io possiedo Instagram dal 2013, ed il file “pesava” circa 1,3 GB).

    Apri il file con un solito doppio click e, se non riesci ad aprirlo, niente paura: scarica ed installa un decompressore come 7zip o segui questa guida.

    Il file avrà il seguente formato, ad esempio:

    tuonickname_datadiesportazione.zip

    Se lo decomprimi, vedrai qualcosa del genere:

    Per sapere cosa c’è dentro questo file, a questo punto, leggi l’articolo dedicato.

  • SOLUZIONE per il problema pagina “Uffa!” di Google Chrome

    SOLUZIONE per il problema pagina “Uffa!” di Google Chrome

    Che cosa vuol dire l’errore Uffa su Chrome? L’errore specifico presenta la seguente descrizione:

    Si è verificato un errore durante la visualizzazione della pagina. Per continuare, fai clic su ricarica o vai a un’altra pagina.

    mentre visivamente si presenta in questo modo:

    Significa che c’è un problema nel vostro browser, che dovrebbe essere risolto in tre modi:

    1. aggiornando la vostra versione di Chrome all’ultima disponibile;
    2. disinstallando Chrome e provando a reinstallarlo da zero (salvatevi ed esportate i bookmark e le password, prima di farlo!);
    3. seguendo le istruzioni riportate nell’ultimo passaggio dell’articolo.

    L’errore “Uffa” nella versione inglese può anche essere indicato come:

    “Aw, Snap!”

    ed indica un errore di tipo generale durante la visualizzazione della pagina web che stavate cercando di aprire.

    Come risolvere? Ci sono vari tentativi che si possono fare.

    Prima di cominciare. Se si tratta di un indirizzo URL specifico che ha dato l’errore Uffa, vi consigliamo di salvarvi l’URL o indirizzo in un file di testo, per poi averlo a portata di mano nella fase successiva.

    Aggiornare Chrome all’ultima versione

    Prova ad aggiornare il browser all’ultima versione, cliccando su Informazioni su Google Chrome e verificando di avere l’ultima versione disponibile. Se non è così, sarà  il browser a dirvi di scaricarla: scaricatela, aggiornate e riprovate a connettervi alla pagina.

    Pulire la cronologia

    Cancellate per intero tutta la cronologia di navigazione, chiudete il browser e poi provate a riaprirlo.

    Uso della modalità  compatibilità

    Per risolvere il problema è possibile selezionare, dalle proprietà  di Google Chrome nella sezione Compatibilità , la versione del sistema operativo che state usando: selezionate la spunta vicino a Modalità  compatibilità  e poi scegliete dal menù a tendina il sistema operativo che state usando. Se non sapete quale sia, leggete la guida per trovare la propria versione di Windows.

    In questo caso, per esempio, potete provare a togliere di mezzo la pagina di errore “Uffa!” su Windows 7 selezionando, per l’appunto, Windows 7 dalla casella di scelta indicata.

    Disabilitando l’antivirus

    Questa impostazione è solo di emergenza: non è buona norma lasciare il vostro computer senza antivirus attivo, ovviamente. Ad ogni modo, pero’, può essere un test diagnostico utile a capire se il problema in questione non dipenda da qualche impostazione del vostro antivirus che, ad esempio, potrebbe arrivare a bloccare alcune porte di connessione. Se disabilitando l’antivirus e provando a connettersi alla pagina (che vi sarete salvati nel file di testo, ricordiamo) funziona tutto, l’antivirus deve essere impostato in modo che non interferisca con la navigazione, consultando il manuale del prodotto antivirus stesso.

    Foto di copertina: Luisella Planeta Leoni da Pixabay

  • Commenti in Python: come, dove e perché

    Commenti in Python: come, dove e perché

    L’Arte dei Commenti in Python

    Benvenuti, colleghi programmatori! Siete pronti a rendere il vostro codice più leggibile, manutenibile e, oserei dire, amato? La chiave di volta sta nei commenti. In Python, i commenti non sono solo un’opzione, ma una vera e propria necessità per chiunque voglia scrivere codice di qualità.

    In questo tutorial, esploreremo i vari modi per inserire commenti in Python, con esempi pratici e progressivi, e vi daremo 5 consigli d’oro per scrivere commenti che facciano davvero la differenza.

    Cosa sono i Commenti?

    In poche parole, i commenti sono porzioni di testo all’interno del codice sorgente che vengono ignorate dall’interprete Python. Servono a spiegare, annotare o disabilitare temporaneamente sezioni di codice. Sono per gli esseri umani che leggono il codice, non per la macchina.

    Modalità di Commento in Python

    Python offre due modi principali per inserire commenti:

    1. Commenti a Linea Singola (#)

    Il modo più comune per commentare in Python è utilizzare il simbolo del cancelletto (#). Tutto ciò che segue il # sulla stessa riga viene considerato un commento.

    Esempio Base:

    Python

    # Questo è un commento su una singola linea.
    print("Ciao mondo!") # Questo commento spiega la riga di codice precedente.
    

    Spiegazione:

    • La prima riga è interamente un commento.
    • La seconda riga contiene codice Python seguito da un commento sulla stessa riga.

    Esempio Progressivo: Commenti per Spiegare una Variabile

    Python

    nome_utente = "Alice" # La variabile 'nome_utente' memorizza il nome dell'utente corrente.
    età = 30             # L'età dell'utente, espressa in anni.
    

    Spiegazione: Qui, i commenti chiariscono lo scopo e il tipo di dato di ciascuna variabile, rendendo il codice più comprensibile a prima vista.

    Esempio Significativo: Commenti per Chiarire un Algoritmo Semplice

    Python

    # Calcolo dell'area di un rettangolo
    lunghezza = 10
    larghezza = 5
    
    # La formula per l'area è lunghezza * larghezza
    area = lunghezza * larghezza
    
    print(f"L'area del rettangolo è: {area}")
    

    Spiegazione: I commenti ci guidano attraverso il processo di calcolo dell’area, spiegando sia il contesto generale che la formula specifica utilizzata.

    2. Commenti su Più Linee (Docstrings – Stringhe di Documentazione)

    Sebbene Python non abbia un costrutto specifico per i commenti multilinea come alcuni altri linguaggi, possiamo usare le docstrings (stringhe di documentazione). Le docstrings sono stringhe racchiuse tra tre apici singoli (''') o tre apici doppi ("""). Quando sono la prima istruzione all’interno di un modulo, una classe, una funzione o un metodo, vengono interpretate come docstrings e sono accessibili a runtime.

    Esempio Base:

    Python

    """
    Questo è un commento su più linee,
    noto come docstring.
    Può estendersi per diverse righe.
    """
    print("Python è fantastico!")
    

    Spiegazione: La docstring all’inizio del file spiega lo scopo generale dello script.

    Esempio Progressivo: Docstring per una Funzione

    Python

    def saluta(nome):
        """
        Questa funzione saluta una persona con il nome specificato.
    
        Args:
            nome (str): Il nome della persona da salutare.
    
        Returns:
            str: Un messaggio di saluto formattato.
        """
        return f"Ciao, {nome}!"
    
    messaggio = saluta("Bob")
    print(messaggio)
    

    Spiegazione: Questa docstring documenta la funzione saluta, specificando cosa fa, quali argomenti accetta (con il loro tipo) e cosa restituisce. Questo è fondamentale per la documentazione automatica e per chiunque debba usare la vostra funzione.

    Esempio Significativo: Docstring per una Classe

    Python

    class Contatore:
        """
        Rappresenta un semplice contatore che può essere incrementato
        e il cui valore può essere resettato.
        """
        def __init__(self, iniziale=0):
            """
            Inizializza il contatore con un valore iniziale.
    
            Args:
                iniziale (int, optional): Il valore iniziale del contatore.
                                          Predefinito a 0.
            """
            self.valore = iniziale
    
        def incrementa(self):
            """
            Incrementa il valore del contatore di 1.
            """
            self.valore += 1
    
        def get_valore(self):
            """
            Restituisce il valore corrente del contatore.
            """
            return self.valore
    
        def resetta(self):
            """
            Resetta il contatore al suo valore iniziale (0).
            """
            self.valore = 0
    
    # Utilizzo della classe Contatore
    mio_contatore = Contatore()
    print(f"Valore iniziale: {mio_contatore.get_valore()}") # Output: 0
    mio_contatore.incrementa()
    mio_contatore.incrementa()
    print(f"Valore dopo incremento: {mio_contatore.get_valore()}") # Output: 2
    mio_contatore.resetta()
    print(f"Valore dopo reset: {mio_contatore.get_valore()}") # Output: 0
    

    Spiegazione: Ogni componente della classe Contatore (la classe stessa, il costruttore __init__ e i metodi) è documentato con una docstring, rendendo l’intera struttura chiara e facilmente comprensibile. Questo è l’approccio standard per documentare il codice Python.

    5 Indicazioni Base per Mettere Buoni Commenti nel Proprio Codice

    Ora che sapete come fare i commenti, vediamo quando e cosa commentare per massimizzare il loro impatto.

    1. Spiega il “Perché”, Non il “Cosa”:

      • Cattivo Commento: # Incrementa il valore di x (Il codice già lo mostra chiaramente).
      • Buon Commento: # Incrementa il contatore dei tentativi per prevenire attacchi brute-force. (Spiega la ragione dietro l’azione). I commenti dovrebbero chiarire le intenzioni e le decisioni di progettazione, non semplicemente riscrivere il codice in inglese.
    2. Mantieni i Commenti Aggiornati:Un commento obsoleto è peggio di nessun commento, perché può fuorviare chi legge il codice. Se modifichi una sezione di codice, assicurati di aggiornare anche i commenti correlati. Questo richiede disciplina, ma è cruciale per la manutenibilità.
    3. Sii Conciso e Chiaro:Evita commenti prolissi o ambigui. Vai dritto al punto e usa un linguaggio semplice e diretto. Immagina che il lettore abbia fretta e voglia capire il concetto chiave rapidamente.
    4. Usa le Docstrings per la Documentazione API:Come abbiamo visto, le docstrings sono lo strumento principale per documentare moduli, classi, funzioni e metodi. Segui le convenzioni (es. Google Style, NumPy Style, reStructuredText) per descrivere argomenti, valori di ritorno, eccezioni sollevate e un riassunto generale. Questo permette a strumenti come Sphinx di generare documentazione automatica.
    5. Evita Commenti Ovvi o Rumorosi:Non commentare ogni singola riga di codice, specialmente se il codice è autoesplicativo. Troppi commenti possono appesantire la lettura e nascondere il vero valore di quelli significativi. Concentrati sulle parti complesse, sui “hack” temporanei (con un TODO), sulle decisioni di progettazione non evidenti e sulle assunzioni.
      • Evitare:

        Python

        # Assegna il valore 10 alla variabile 'a'
        a = 10
        # Stampa il valore di 'a'
        print(a)
        
      • Preferire: Lasciare che il codice parli da sé per le operazioni semplici.

    Ci auguriamo che questo tutorial vi sia utile per padroneggiare l’arte dei commenti in Python. Ricordate: un buon codice non è solo quello che funziona, ma anche quello che può essere facilmente compreso e mantenuto da voi stessi e dagli altri, anche a distanza di tempo. Happy coding!

  • Come fare un backup su disco fisso usando Gmail (e Ruby On Rails)

    Come fare un backup su disco fisso usando Gmail (e Ruby On Rails)

    Volete effettuare un backup programmato o una tantum delle vostre email su Gmail? Magari su disco fisso, in un formato che sia riutilizzabile in caso di smarrimento o furto dell’account? Bene, se queste sono le vostre intenzioni seguiteci, perchè oggi vi proporremo un semplice metodo, peraltro gratuito, per assolvere allo scopo. Unica accortezza sarà  quella di fare uso di RubyInstaller, un comodissimo tool (anch’esso gratis) per installare l’ambiente di lavoro necessario a far funzionare imap-backup, il plugin per effettuare il backup del vostro account Gmail o Google Suite in locale.

    Su Windows, scaricate il pacchetto ufficiale e lanciatelo, seguendo la procedura guidata; su Linux e Mac dovreste già  avere a disposizione il comando gem, nel caso contrario basta seguire queste istruzioni ovvero:

    1. scaricate l’ultima versione del pacchetto RubyGems;
    2. aprite il pacchetto, scompattandolo, ed entrate nella directory;
    3. installate da terminale utilizzando il comando: ruby setup.rb

    Fatto questo, saremo pronti a fare uso del tool di backup per Gmail, che si chiama imap-backup (lo trovate qui su github) come abbiamo detto poco fa, e che si installa da linea di comando mediante:

    gem install 'imap-backup'
    

    Per utilizzarlo la prima volta (procedura di installazione) dovrete seguire il tool a linea di comando che vi abiliterà  in automatico il tutto, con l’unica accortezza di abilitare le password per le app sul vostro account Gmaill: lanciate questo comando, e seguite le indicazioni in inglese in esso contenute. Non è difficile ed in pochi passi dovreste riuscire a configurare il vostro account per scaricare tutte le mail in locale.

    imap-backup setup

    Inoltre, per ottenere una lista completa dei comandi a disposizione, utilizzate:

    imap-backup help
    

    Per informazioni su un COMANDO specifico, scrivete:

    imap-backup help COMANDO

    Ricordiamo che ogni cartella della vostra Gmail sarà  salvata in un file mbox; ogni mbox avrà  estensione .imap e conterrà  la lista degli UID di IMAP necessari per un eventuale ripristino dell’account Gmail su un nuovo indirizzo.

    Photo by Markus Spiske on Unsplash

  • Come rinnovare o installare HTTPS via terminale SSH [Let’s Encrypt]

    Come rinnovare o installare HTTPS via terminale SSH [Let’s Encrypt]

    Eccovi la procedura completa da seguire per installare o rinnovare manualmente un certificato SSL gratuito con Let’s Encrypt in modo semplice, quasi meccanico: utilizzando una connessione SSH quindi un terminale remoto. Questa procedura è alternativa a quella che si può eseguire anche via FTP e cPanel, che ho descritto in una guida a parte: Come rinnovare HTTPS via cPanel (senza SSH).

    Per quello che ci serve, come al solito, procediamo per ordine e cerchiamo di capirci su tutto.

    Preliminari

    Per eseguire alla perfezione i passi indicati sono richieste conoscenze di base, a livello teorico, di come funzioni SSL, di cosa serva e di come funzioni; ovviamente non servirà  sapere ogni cosa nel minimo dettaglio, anche perchè nel dettaglio la questione è complessa e si richiama a concetti avanzati di informatica e crittografia.

    A livello che ci interessa in questa sede, un certificato SSL serve a proteggere la connessione quando un visitatore si connette al vostro sito web; al tempo stesso, gli fornirà  la garanzia di essere nel posto giusto e non in un sito di phishing, ad esempio.

    Quindi, per quello che ci interessa:

    1. installeremo un certificato SSL come primo step;
    2. lo andremo a configurare e validare sul dominio in questione via SSH;
    3. saremo felici di aver rinnovato SSL 🙂

    Ricordo che i certificati scaduti non sono in genere buona cosa, tantomeno i siti sprovvisti di SSL visto che anche i browser si accorgono della mancanza e potrebbero in generale non mostrare proprio il sito, o etichettarlo come insicuro (che per un e-commerce, ad esempio, non è il massimo).

    Cosa ci servirà

    Per questo tutorial dovrete avere a portata di mano:

    1. Un’installazione di Linux Ubuntu 16.04 sul server del vostro sito, con possibilità  di eseguire comandi anche da root (sudo)
    2. Un web server Apache attivo e funzionante con il nome di dominio configurato ed il virtual host che specifichi il campoServerName.
    3. l’accesso SSH al dominio / hosting che state configurando.

    Come sistema operativo di riferimento terrò conto che stiate utilizzando Ubuntu 16.04; ovviamente se la versione di Linux fosse diversa – ad esempio Debian o CentOS – qualche comando potrà  cambiare di conseguenza, ma la sostanza rimane la stessa.

    Siamo pronti? Procediamo!

    Installare Let’s Encrypt su Apache via terminale SSH

    Come prima cosa facciamo login dentro SSH, inserendo la nostra username e password seguendo questa falsariga:

    ssh root@nomesito.it

    la password ci verrà  richiesta dopo aver confermato, eventualmente, la validità  del certificato. Mentre la scriveremo, per motivi di sicurezza non sarà  mostrato nulla sul terminale: la cosa è perfettamente normale ed è classica dei sistemi Unix/Linux.

    Installare il client Let’s Encrypt

    La prima cosa da fare è installare un client per Let’s Encrypt, e la cosa migliore può essere quella di sfruttare il software ufficiale: Certbot, che viene aggiornato e gestito frequentemente da un buon team di sviluppatori. Come prima cosa, quindi, bisognerà  aggiungere il repository, quindi daremo il seguente comando:

    sudo add-apt-repository ppa:certbot/certbot

    seguito dal tasto Invio per confermare (cosa che faremo per ogni comando indicato, e che non ripeterò più nel seguito). Poi sarà  necessario aggiornare tutti i pacchetti all’ultima versione:

    sudo apt-get update

    a questo punto siamo pronti ad installare Certbot con una semplice apt-get:

    sudo apt-get install python-certbot-apache

    Dopo qualche istante il software per Let’s Encrypt sarà  installato.

    Impostare il certificato SSL

    Il client Certbot è molto utile perchè permette di generare o rigenerare alla scadenza (anche in automatico, come vedremo) un certificato SSL valido per il dominio che gli passate come parametro. Per farlo, basta lanciare certbot da linea di comando per esempio sul dominio tuosito.it:

    sudo certbot –apache -d tuosito.it

    Attenzione perchè dovrete includere tutte le varianti del vostro nome di dominio, quindi ad esempio sottodomini o versioni con o senza www davanti; il primo parametro dopo -d sarà  quello del dominio primario (base domain), quindi come secondo parametro dovrete passare anche la versione con www ad esempio.

    Di solito io genero il certificato così, quindi:

    sudo certbot –apache -d tuosito.it www.tuosito.it

    Il comando andrà  a fare quasi tutto in automatico, inclusa l’installazione delle dipendenze necessarie; vi sarà  richiesto inoltre di inserire un indirizzo email per recuperare la chiave privata del certificato, e scegliere se volete redirezionare il traffico in modo autonomo via sito (ad esempio htaccess o plugin per HTTPS) oppure preferite farlo fare a certbot in modo automatico. Ovviamente, poi, se avete più siti web sullo stesso server (virtual hosts differenti) sarà  necessario ripetere la procedura per ognuno di essi.

    Check del certificato SSL

    Una volta conclusa l’installazione senza errori, dovreste trovare i file del certificato nella cartella di Ubuntu /etc/letsencrypt/live. Potete verificare che tutto sia stato configurato in modo corretto andando sul sito ssllabs.com oppure sslshopper ed inserendo il nome del vostro dominio: sarà  verificata l’integrità , la scadenza e la coerenza del certificato e vi sarà  anche dato un “voto” per rappresentarne la qualità  (quella di Let’s Encrypt deve essere tipicamente A). Il certificato sarà  valido per 90 giorni da quando lo avrete installato.

    Arrivati fin qui, il sito dovrebbe funzionare con HTTPS, ed è possibile che debba essere configurato: ad esempio, come accennato, installando un plugin WordPress per HTTPS oppure impostando il redirect 301 da HTTP a HTTPS. Il fatto che HTTPS funzioni e restituisca lucchetto verde dal browser, in sostanza, non vuol dire per forza che sia ben configurato e che gli utenti lo usino.

    Come impostare l’auto-rinnovo di HTTPS da terminale SSH

    HTTPS scade ogni 90 giorni, usando Let’s Encrypt: per cui potrebbe essere una buona idea impostare l’auto-rinnovo. Molto semplice anche qui: basta impostare un comando

    certbot renew

    mediante un cron job di Linux. Per controllare che sia tutto ben configurato, potete effettuare un check mediante questo comando:

    sudo certbot renew –dry-run

    Se non vengono dati errori da qui, è tutto ok e l’autorinnovo sarà  ben impostato sul server. A questo punto è necessario riavviare il server perchè le modifiche vengano rilevate dal sito, per cui ad esempio dovrete dare un:

    service apache2 restart

  • Come stare al sicuro online?

    Come stare al sicuro online?

    Stai cercando un modo per stare sempre al sicuro quando navighi su internet? Hai paura che qualcuno possa rubare i tuoi dati personali?

    Oppure hai paura che le tue foto personali e imbarazzanti finiscano online per colpa di qualche hacker? Non ti preoccupare, in questa breve guida ti spiegherò tutti i segreti per stare al sicuro online.

    Navigare online in un modo poco sicuro può portare a tanti rischi, i tuoi dati personali o magari dati della tua carta di credito possono essere esposti e un hacker può rubarteli in pochissimo tempo.

    Per prevenire ciò eccoti 7 regole da seguire per evitare di avere problemi con la tua sicurezza.

    7 regole da seguire per stare al sicuro online


    1. Non dare a nessuno le tue informazioni personali private


    La prima regola è molto semplice da seguire, infatti ti basta non parlare delle tue informazioni personali con altre persone online. Le persone con cui lavori online per esempio non hanno bisogno di sapere il tuo indirizzo e di conoscere la tua situazione sentimentale, quello di cui hanno bisogno sono solo quelle cose che riguardano l’ambito delle competenze e dell’esperienza in quel lavoro.


    1. Scegli password complesse


    Molte persone utilizzano password semplicissime per ricordarle sempre, ma non sanno che questo è uno dei principali motivi per cui vengono rubate informazioni online. Le password semplici sono diffusissime e sono tutte molto simili, per esempio viene usata anche la stessa parola password, oppure date di nascita o password composte da una sequenza di numeri crescente o decrescente.

    Non fare come la maggior parte di queste persone e utilizza password più complesse, come password formate da numeri, lettere e caratteri speciali. Se hai paura di dimenticare le tue password ti basterà  usare un software apposito per salvarle, oppure scrivile su un pezzo di carta e nascondilo in un posto sicuro.


    1. Assicurati che la tua connessione sia sicura


    Se ci si connette ad una rete Wi-Fi pubblica si rischia moltissimo, per questo è meglio controllare prima se la connessione che stai utilizzando è sicura. Le reti pubbliche sono le più rischiose perché nel momento in cui ci si connette non si ha un controllo diretto sulla sicurezza della rete.

    Secondo gli esperti di Router-4G, un ottimo modo per stare al sicuro quando si utilizza una connessione pubblica è l’utilizzo di una VPN (Virtual Private Network) che ha molte funzionalità  e una di queste è quella di proteggere i tuoi dati quando si utilizzano reti non sicure.


    1. Stai attento a ciò che scarichi


    Molti cybercriminali cercano di installare virus nei computer delle persone per cercare di rubargli dati o informazioni. Per farlo utilizzano delle applicazioni o altri tipi di contenuti, e per questo è bene controllare la sicurezza e l’affidabilità  del sito prima di scaricare una qualsiasi cosa, per evitare di installare qualche tipo di virus che possa danneggiare completamente il tuo computer, o che possa rubarti qualche informazione privata come dati della carta di credito e password.

    Ovviamente, se si ha un antivirus è meno probabile che ciò accada.


    1. Installa un buon antivirus


    Come detto prima, un antivirus può prevenire che un virus entri nel tuo computer, ma non sempre tutti gli antivirus possono proteggerti al 100%, quindi installa un buon antivirus e tienilo sempre aggiornato.

    Alcuni antivirus sono in grado di proteggerti anche sul web e sono in grado di verificare la sicurezza di qualsiasi sito, esistono tantissimi antivirus al momento, a te la scelta.


    1. Usare le impostazioni sulla privacy


    Per evitare che qualcuno veda i tuoi dati ti basterà  utilizzare le impostazioni sulla privacy delle varie applicazioni e siti per proteggere al meglio le tue informazioni. Quindi assicurati di attivare e tenere sempre attive queste impostazioni per proteggere la privacy.


    1. Acquista sempre da siti sicuri


    Quando si fanno degli acquisti online bisogna pagare con la tua carta di credito, e quindi se il sito non è sicuro stai esponendo tutti i tuoi dati. Per questo motivo devi controllare che il sito sia sicuro prima di acquistare una qualsiasi cosa online.

    Per capire se il sito è sicuro ti basterà  controllare se c’è l’icona di un lucchetto accanto alla barra degli indirizzi, in caso contrario il tuo antivirus potrebbe avvisarti con una notifica sullo schermo che il sito non è sicuro.

    Conclusioni

    Queste regole potrebbero non bastare, poiché ogni giorno gli hacker e i cybercriminali cercano in tutti i modi di rubare informazioni. Queste piccole regole non ti garantiscono la sicurezza al 100%, ma almeno ti renderanno più sicuro di prima e ovviamente dovrai sempre tenere gli occhi aperti quando navighi online.

  • Codice errore 38 Iliad: cosa vuol dire?

    Codice errore 38 Iliad: cosa vuol dire?

    Il codice di errore 38 su Iliad potrebbe essere associato a diversi problemi legati alla rete o all’account.

    Di solito, potrebbe indicare una mancanza di credito sufficiente sulla SIM, un problema con la connessione di rete, un’area senza copertura o un errore temporaneo nel sistema dell’operatore.

    Per risolvere questo problema, potresti provare diverse azioni:

    1. Verifica del credito: Assicurati di avere credito sufficiente sulla tua SIM Iliad per effettuare chiamate, inviare SMS o utilizzare dati mobili.
    2. Riavvio del dispositivo: Riavvia il telefono per aggiornare le impostazioni di rete e cercare di ristabilire la connessione.
    3. Controllo della copertura: Assicurati di essere in un’area coperta dalla rete Iliad. In alcuni casi, potresti essere in un’area con segnale debole o senza copertura.
    4. Verifica delle impostazioni di rete: Controlla le impostazioni di rete del tuo telefono per assicurarti che siano configurate correttamente per utilizzare la rete Iliad.

    Se il problema persiste nonostante queste azioni, ti consigliamo di contattare direttamente il servizio clienti di Iliad per ricevere assistenza specifica riguardo al codice di errore 38, e per avere un aiuto più concreto nella risoluzione del problema.

    Questa non è una guida ufficiale di Iliad e non è riconducibile all’azienda stessa in alcun modo.

  • Cron job: cosa sono e come funzionano

    Cron job: cosa sono e come funzionano

    I cron job sono strumenti potenti e flessibili per pianificare l’esecuzione automatica di script e comandi su sistemi Unix e Linux.

    Pianificare l’esecuzione automatica di script e comandi su sistemi Unix e Linux è una pratica fondamentale per la gestione efficiente dei sistemi e l’automazione delle operazioni quotidiane. Questo processo consente agli amministratori di sistema e agli utenti di automatizzare attività ripetitive, garantendo che vengano eseguite a intervalli regolari senza intervento manuale.

    Utilizzati spesso per la gestione di task ripetitivi, come il backup dei dati o l’invio di report, i cron job possono essere configurati per eseguire attività a intervalli regolari.

    Che Cos’è la Pianificazione Automatica?

    La pianificazione automatica si riferisce all’uso di strumenti e meccanismi per avviare automaticamente script e comandi a orari o intervalli specifici. Questo è essenziale per eseguire attività come backup, aggiornamenti, pulizie di sistema e rapporti periodici, senza la necessità di avviare manualmente ciascuna operazione.

    Strumenti Principali

    In Unix e Linux, il principale strumento per la pianificazione di attività è il cron. cron è un demone (un programma che gira in background) che si occupa di eseguire comandi o script a intervalli regolari. La configurazione di cron è gestita attraverso il file crontab (cron table), che specifica le istruzioni su quando e come devono essere eseguiti i comandi.

    pianificare l’esecuzione automatica di script e comandi su Unix e Linux tramite cron è un metodo potente e flessibile per automatizzare e gestire operazioni sistemiche. Permette di ottimizzare i flussi di lavoro e migliorare l’efficienza operativa, riducendo il carico di lavoro manuale e minimizzando gli errori umani.

    Come Funziona

    1. Definizione dei Job: Un cron job è una singola attività pianificata che cron deve eseguire. Questo job può essere qualsiasi comando o script, come un backup del database o l’invio di report via email.
    2. File Crontab: Gli utenti e i sistemi hanno file crontab personali in cui definiscono i loro cron job. Ogni riga del file crontab rappresenta un singolo cron job e segue una sintassi precisa per specificare l’orario di esecuzione.
    3. Sintassi della Programmazione: La sintassi di un file crontab include cinque campi di tempo seguiti dal comando da eseguire. I campi sono:

      • Minuto (0-59)

      • Ora (0-23)

      • Giorno del mese (1-31)

      • Mese (1-12)

      • Giorno della settimana (0-6, dove 0 è la domenica)


      Ad esempio, 0 2 * * 1 /home/user/script.sh indica che lo script /home/user/script.sh deve essere eseguito ogni lunedì alle 2 di notte.

    4. Esecuzione e Log: Quando il momento specificato arriva, cron avvia il comando o lo script definito. L’output di questi comandi può essere diretto verso file di log per il monitoraggio e la risoluzione dei problemi.

    Vantaggi

    • Automazione: Riduce il bisogno di intervento manuale per attività ripetitive.
    • Affidabilità: Garantisce che le attività siano eseguite puntualmente.
    • Efficienza: Permette agli amministratori di concentrarsi su compiti più complessi, delegando le operazioni routine a cron.

    Esempi Pratici

    Backup Giornaliero: Immagina di voler eseguire un backup del database ogni giorno alle 3 del mattino. Configureresti un cron job per eseguire il comando di backup in quell’orario.

    0 3 * * * /usr/bin/backup.sh

    Pulizia dei Log: Per mantenere il sistema pulito, potresti voler eliminare i log più vecchi di un mese ogni primo giorno del mese.

    0 0 1 * * /usr/bin/cleanup_logs.sh

    Aggiornamento Settimanale: Per garantire che il sistema sia sempre aggiornato, potresti eseguire gli aggiornamenti ogni sabato alle 4 di mattina.

    0 4 * * 6 /usr/bin/update_system.sh

    Configurazione del Crontab

    Per modificare il file crontab dell’utente, si usa il comando:

    crontab -e

    Questo apre l’editor di testo configurato per il file crontab dell’utente, permettendo di aggiungere, modificare o eliminare cron job.

    Gestione e Monitoraggio

    • Visualizzare i Cron Job: Usa crontab -l per elencare i cron job configurati.
    • Rimuovere i Cron Job: Usa crontab -r per rimuovere il file crontab dell’utente, cancellando tutti i cron job associati.

    Considerazioni

    • Permessi: Assicurati che gli script e i comandi abbiano i permessi di esecuzione corretti.
    • Ambiente: I cron job eseguono in un ambiente molto limitato, quindi è importante specificare percorsi completi e variabili ambientali se necessario.
    • Errori: Gli errori nei cron job possono essere difficili da diagnosticare; è utile reindirizzare l’output e gli errori verso file di log per l’analisi.

    Guida Pratica ai Cron Job

    1. Cos’è un Cron Job?

    Un cron job è un processo automatizzato che viene eseguito in background a intervalli specifici, definiti attraverso un file chiamato crontab (che vuol dire cron table). I cron job sono gestiti dal demone cron, che legge il file crontab e avvia i comandi o script programmati.

    2. Come Funzionano i Cron Job?

    I cron job sono definiti in un file crontab, che può essere modificato con il comando crontab -e. Ogni riga del file crontab rappresenta un singolo cron job e segue una sintassi specifica:

    * * * * * /percorso/del/comando
    - - - - -
    | | | | |
    | | | | +---- Giorno della settimana (0 - 7) (Domenica è sia 0 che 7)
    | | | +------ Giorno del mese (1 - 31)
    | | +-------- Mese (1 - 12)
    | +---------- Ora (0 - 23)
    +------------ Minuto (0 - 59)
    

    Suggerimenti per farne uso al meglio

    • Verifica l’Output: Controlla i log per assicurarti che i cron job stiano funzionando correttamente.
    • Gestione degli Errori: Imposta redirezioni per l’output degli errori per facilitare la risoluzione dei problemi.
    • Permessi: Assicurati che i cron job abbiano i permessi necessari per eseguire i comandi e accedere ai file.

    3. Esempi di Cron Job (100+)

    Ecco una serie di esempi pratici di cron job.

    Ecco un elenco di esempi pratici su come configurare i cron job, con la sintassi specifica da inserire nel file crontab. Ogni esempio include la descrizione dell’attività e il comando da utilizzare.

    1. Esecuzione di uno script ogni minuto
      • * * * * * /percorso/del/comando
    2. Esecuzione di uno script ogni ora
      • 0 * * * * /percorso/del/comando
    3. Esecuzione di uno script ogni giorno alle 3 del mattino
      • 0 3 * * * /percorso/del/comando
    4. Esecuzione di uno script il primo giorno di ogni mese a mezzanotte
      • 0 0 1 * * /percorso/del/comando
    5. Esecuzione di uno script ogni lunedì alle 6 del mattino
      • 0 6 * * 1 /percorso/del/comando
    6. Esecuzione di uno script ogni giorno alle 10 di sera
      • 0 22 * * * /percorso/del/comando
    7. Esecuzione di uno script ogni 15 minuti
      • */15 * * * * /percorso/del/comando
    8. Esecuzione di uno script ogni giorno alla stessa ora, ma solo nei giorni feriali
      • 0 12 * * 1-5 /percorso/del/comando
    9. Esecuzione di uno script ogni giorno alla mezzanotte, solo se è il 15 del mese
      • 0 0 15 * * /percorso/del/comando
    10. Esecuzione di uno script ogni domenica a mezzogiorno
      • 0 12 * * 0 /percorso/del/comando
    11. Esecuzione di uno script ogni giorno alle 6 del pomeriggio, ma solo nei mesi estivi (da giugno ad agosto)
      • 0 18 * 6-8 * /percorso/del/comando
    12. Esecuzione di uno script ogni giorno tra le 2 e le 4 del mattino
      • 0 2-4 * * * /percorso/del/comando
    13. Esecuzione di uno script ogni domenica a mezzanotte, ma solo se il giorno è un multiplo di 5
      • 0 0 * * 0 [ $(date +\%d) -eq 5 ] && /percorso/del/comando
    14. Esecuzione di uno script ogni 5 giorni alle 9 di sera
      • 0 21 */5 * * /percorso/del/comando
    15. Esecuzione di uno script ogni primo giorno del trimestre a mezzanotte
      • 0 0 1 1,4,7,10 * /percorso/del/comando
    16. Esecuzione di uno script ogni 30 minuti
      • */30 * * * * /percorso/del/comando
    17. Esecuzione di uno script ogni 10 minuti
      • */10 * * * * /percorso/del/comando
    18. Esecuzione di uno script ogni giorno alle 5 del pomeriggio, ma solo nei giorni dispari del mese
      • 0 17 1-31/2 * * /percorso/del/comando
    19. Esecuzione di uno script ogni giorno alla stessa ora, ma solo negli anni bisestili
      • 0 0 1 1 * [ $(date +\%Y | awk '{print ($1 % 4 == 0) ? "1" : "0"}') -eq 1 ] && /percorso/del/comando
    20. Esecuzione di uno script ogni giorno alle 7 del mattino, ma solo nei mesi dispari
      • 0 7 * 1,3,5,7,9,11 * /percorso/del/comando
    21. Esecuzione di uno script ogni giorno alle 10 di sera, ma solo nei giorni festivi
      • 0 22 * * 0,6 /percorso/del/comando
    22. Esecuzione di uno script ogni giorno alle 11 di mattina, ma solo nei giorni festivi
      • 0 11 * * 0,6 /percorso/del/comando
    23. Esecuzione di uno script ogni giorno alle 4 del pomeriggio, ma solo nei giorni lavorativi
      • 0 16 * * 1-5 /percorso/del/comando
    24. Esecuzione di uno script ogni giorno alle 8 di sera, ma solo se è un giorno pari del mese
      • 0 20 2-30/2 * * /percorso/del/comando
    25. Esecuzione di uno script ogni 12 ore
      • 0 */12 * * * /percorso/del/comando
    26. Esecuzione di uno script ogni giorno alle 9 di sera, ma solo se è un giorno festivo
      • 0 21 * * 0,6 /percorso/del/comando
    27. Esecuzione di uno script ogni giorno alle 2 di pomeriggio, ma solo se è un giorno di lavoro
      • 0 14 * * 1-5 /percorso/del/comando
    28. Esecuzione di uno script ogni giorno alle 10 di sera, ma solo nei mesi estivi (giugno, luglio, agosto)
      • 0 22 * 6-8 * /percorso/del/comando
    29. Esecuzione di uno script ogni giorno alle 3 di pomeriggio, ma solo nei mesi dispari
      • 0 15 * 1,3,5,7,9,11 * /percorso/del/comando
    30. Esecuzione di uno script ogni domenica alle 5 di pomeriggio, ma solo nei mesi di gennaio e luglio
      • 0 17 * 1,7 * /percorso/del/comando
    31. Esecuzione di uno script ogni giorno alle 4 del pomeriggio, ma solo nei giorni pari del mese
      • 0 16 2-30/2 * * /percorso/del/comando
    32. Esecuzione di uno script ogni 5 minuti durante l’orario lavorativo
      • */5 9-17 * * 1-5 /percorso/del/comando
    33. Esecuzione di uno script ogni giorno alle 11 di mattina, ma solo nei mesi di gennaio e luglio
      • 0 11 * 1,7 * /percorso/del/comando
    34. Esecuzione di uno script ogni giorno alle 6 di pomeriggio, ma solo nei giorni festivi
      • 0 18 * * 0,6 /percorso/del/comando
    35. Esecuzione di uno script ogni 6 ore
      • 0 */6 * * * /percorso/del/comando
    36. Esecuzione di uno script ogni giorno alle 5 di pomeriggio, ma solo nei mesi di maggio e novembre
      • 0 17 * 5,11 * /percorso/del/comando
    37. Esecuzione di uno script ogni giorno alle 2 di pomeriggio, ma solo nei mesi dispari
      • 0 14 * 1,3,5,7,9,11 * /percorso/del/comando
    38. Esecuzione di uno script ogni giorno alle 3 di notte, ma solo nei giorni dispari del mese
      • 0 3 1-31/2 * * /percorso/del/comando
    39. Esecuzione di uno script ogni 30 minuti durante l’orario lavorativo
      • */30 9-17 * * 1-5 /percorso/del/comando
    40. Esecuzione di uno script ogni domenica alle 4 di pomeriggio, ma solo nei mesi con 30 giorni
      • 0 16 * 4,6,9,11 * /percorso/del/comando
    41. Esecuzione di uno script ogni giorno alle 7 di sera, ma solo nei mesi di maggio e ottobre
      • 0 19 * 5,10 * /percorso/del/comando
    42. Esecuzione di uno script ogni giorno alle 6 di pomeriggio, ma solo nei giorni dispari della settimana
      • 0 18 * * 1,3,5 /percorso/del/comando
    43. Esecuzione di uno script ogni giorno alle 7 di mattina, ma solo nei giorni di lavoro
      • 0 7 * * 1-5 /percorso/del/comando
    44. Esecuzione di uno script ogni giorno alle 10 di mattina, ma solo nei mesi estivi
      • 0 10 * 6-8 * /percorso/del/comando
    45. Esecuzione di uno script ogni giorno alle 4 di pomeriggio, ma solo nei mesi di febbraio e agosto
      • 0 16 * 2,8 * /percorso/del/comando
    46. Esecuzione di uno script ogni giorno alle 3 di notte, ma solo se è un giorno festivo
      • 0 3 * * 0,6 /percorso/del/comando
    47. Esecuzione di uno script ogni 2 ore, ma solo nei giorni lavorativi
      • 0 */2 * * 1-5 /percorso/del/comando
    48. Esecuzione di uno script ogni giorno alle 6 di pomeriggio, ma solo nei mesi pari
      • 0 18 * 2,4,6,8,10,12 * /percorso/del/comando
    49. Esecuzione di uno script ogni domenica alle 9 di sera, ma solo se è un giorno pari del mese
      • 0 21 2-30/2 * 0 /percorso/del/comando
    50. Esecuzione di uno script ogni giorno alle 8 di sera, ma solo se è un giorno festivo
      • 0 20 * * 0,6 /percorso/del/comando
    51. Esecuzione di uno script ogni 15 minuti durante l’orario lavorativo
      • */15 9-17 * * 1-5 /percorso/del/comando
    52. Esecuzione di uno script ogni giorno alle 5 di mattina, ma solo nei mesi estivi
      • 0 5 * 6-8 * /percorso/del/comando
    53. Esecuzione di uno script ogni giorno alle 7 di sera, ma solo se è un giorno festivo
      • 0 19 * * 0,6 /percorso/del/comando
    54. Esecuzione di uno script ogni giorno alle 8 di mattina, ma solo se è un giorno di lavoro
      • 0 8 * * 1-5 /percorso/del/comando
    55. Esecuzione di uno script ogni domenica alle 5 di pomeriggio, ma solo nei mesi di gennaio e luglio
      • 0 17 * 1,7 * /percorso/del/comando
    56. Esecuzione di uno script ogni 6 ore, ma solo nei giorni lavorativi
      • 0 */6 * * 1-5 /percorso/del/comando
    57. Esecuzione di uno script ogni giorno alle 5 di pomeriggio, ma solo se il giorno è un giorno di lavoro
      • 0 17 * * 1-5 /percorso/del/comando
    58. Esecuzione di uno script ogni giorno alle 3 di pomeriggio, ma solo nei giorni dispari del mese
      • 0 15 1-31/2 * * /percorso/del/comando
    59. Esecuzione di uno script ogni giorno alle 10 di sera, ma solo nei giorni lavorativi
      • 0 22 * * 1-5 /percorso/del/comando
    60. Esecuzione di uno script ogni giorno alle 3 di pomeriggio, ma solo nei mesi pari
      • 0 15 * 2,4,6,8,10,12 * /percorso/del/comando
    61. Esecuzione di uno script ogni domenica alle 7 di sera, ma solo nei mesi con 31 giorni
      • 0 19 * 1,3,5,7,8,10,12 0 /percorso/del/comando
    62. Esecuzione di uno script ogni ora tra le 9 e le 17, ma solo nei giorni feriali
      • 0 9-17 * * 1-5 /percorso/del/comando
    63. Esecuzione di uno script ogni giorno alle 11 di mattina, ma solo nei mesi di gennaio e luglio
      • 0 11 * 1,7 * /percorso/del/comando
    64. Esecuzione di uno script ogni giorno alle 6 di pomeriggio, ma solo nei giorni festivi
      • 0 18 * * 0,6 /percorso/del/comando
    65. Esecuzione di uno script ogni domenica alle 5 di pomeriggio
      • 0 17 * * 0 /percorso/del/comando
    66. Esecuzione di uno script ogni giorno alle 6 di pomeriggio, ma solo nei giorni lavorativi
      • 0 18 * * 1-5 /percorso/del/comando
    67. Esecuzione di uno script ogni giorno alle 3 di pomeriggio, ma solo nei mesi dispari
      • 0 15 * 1,3,5,7,9,11 * /percorso/del/comando
    68. Esecuzione di uno script ogni domenica alle 4 di pomeriggio, ma solo nei mesi con 30 giorni
      • 0 16 * 4,6,9,11 0 /percorso/del/comando
    69. Esecuzione di uno script ogni giorno alle 7 di mattina, ma solo nei mesi di marzo e ottobre
      • 0 7 * 3,10 * /percorso/del/comando
    70. Esecuzione di uno script ogni giorno alle 2 di pomeriggio, ma solo nei giorni dispari della settimana
      • 0 14 * * 1,3,5 /percorso/del/comando
    71. Esecuzione di uno script ogni giorno alle 8 di sera, ma solo nei giorni festivi
      • 0 20 * * 0,6 /percorso/del/comando
    72. Esecuzione di uno script ogni ora, ma solo durante il weekend
      • 0 * * * 0,6 /percorso/del/comando
    73. Esecuzione di uno script ogni giorno alle 11 di mattina, ma solo nei mesi di gennaio e luglio
      • 0 11 * 1,7 * /percorso/del/comando
    74. Esecuzione di uno script ogni giorno alle 6 di pomeriggio, ma solo nei giorni lavorativi
      • 0 18 * * 1-5 /percorso/del/comando
    75. Esecuzione di uno script ogni 10 minuti, ma solo se è un giorno festivo
      • */10 * * * 0,6 /percorso/del/comando
    76. Esecuzione di uno script ogni giorno alle 6 di pomeriggio, ma solo nei mesi di gennaio e luglio
      • 0 18 * 1,7 * /percorso/del/comando
    77. Esecuzione di uno script ogni giorno alle 8 di mattina, ma solo se è un giorno di lavoro
      • 0 8 * * 1-5 /percorso/del/comando
    78. Esecuzione di uno script ogni domenica alle 9 di sera, ma solo nei giorni pari del mese
      • 0 21 2-30/2 * 0 /percorso/del/comando
    79. Esecuzione di uno script ogni giorno alle 4 del pomeriggio, ma solo nei giorni lavorativi
      • 0 16 * * 1-5 /percorso/del/comando
    80. Esecuzione di uno script ogni giorno alle 3 di notte, ma solo nei giorni dispari del mese
      • 0 3 1-31/2 * * /percorso/del/comando
    81. Esecuzione di uno script ogni giorno alle 5 di mattina, ma solo nei mesi estivi
      • 0 5 * 6-8 * /percorso/del/comando
    82. Esecuzione di uno script ogni giorno alle 10 di sera, ma solo nei giorni lavorativi
      • 0 22 * * 1-5 /percorso/del/comando
    83. Esecuzione di uno script ogni giorno alle 7 di mattina, ma solo nei giorni di lavoro
      • 0 7 * * 1-5 /percorso/del/comando
    84. Esecuzione di uno script ogni giorno alle 6 di pomeriggio, ma solo nei mesi dispari
      • 0 18 * 1,3,5,7,9,11 * /percorso/del/comando
    85. Esecuzione di uno script ogni domenica alle 5 di pomeriggio, ma solo nei mesi di gennaio e luglio
      • 0 17 * 1,7 * /percorso/del/comando
    86. Esecuzione di uno script ogni giorno alle 11 di mattina, ma solo nei mesi di gennaio e luglio
      • 0 11 * 1,7 * /percorso/del/comando
    87. Esecuzione di uno script ogni giorno alle 7 di pomeriggio, ma solo nei mesi di maggio e ottobre
      • 0 19 * 5,10 * /percorso/del/comando
    88. Esecuzione di uno script ogni giorno alle 3 di notte, ma solo nei giorni pari del mese
      • 0 3 2-30/2 * * /percorso/del/comando
    89. Esecuzione di uno script ogni giorno alle 5 di pomeriggio, ma solo nei mesi di febbraio e agosto
      • 0 17 * 2,8 * /percorso/del/comando
    90. Esecuzione di uno script ogni giorno alle 2 di pomeriggio, ma solo nei giorni lavorativi
      • 0 14 * * 1-5 /percorso/del/comando
    91. Esecuzione di uno script ogni giorno alle 3 di pomeriggio, ma solo nei giorni pari della settimana
      • 0 15 * * 2,4,6 /percorso/del/comando
    92. Esecuzione di uno script ogni giorno alle 5 di pomeriggio, ma solo nei mesi dispari
      • 0 17 * 1,3,5,7,9,11 * /percorso/del/comando
    93. Esecuzione di uno script ogni giorno alle 2 di pomeriggio, ma solo nei giorni festivi
      • 0 14 * * 0,6 /percorso/del/comando
    94. Esecuzione di uno script ogni giorno alle 6 di pomeriggio, ma solo nei mesi di maggio e novembre
      • 0 18 * 5,11 * /percorso/del/comando
    95. Esecuzione di uno script ogni giorno alle 4 di pomeriggio, ma solo nei giorni lavorativi
      • 0 16 * * 1-5 /percorso/del/comando
    96. Esecuzione di uno script ogni giorno alle 11 di mattina, ma solo nei mesi di gennaio e luglio
      • 0 11 * 1,7 * /percorso/del/comando
    97. Esecuzione di uno script ogni giorno alle 5 di pomeriggio, ma solo nei giorni lavorativi
      • 0 17 * * 1-5 /percorso/del/comando
    98. Esecuzione di uno script ogni giorno alle 7 di mattina, ma solo nei giorni festivi
      • 0 7 * * 0,6 /percorso/del/comando
    99. Esecuzione di uno script ogni giorno alle 6 di pomeriggio, ma solo nei mesi estivi
      • 0 18 * 6-8 * /percorso/del/comando
    100. Esecuzione di uno script ogni giorno alle 5 di pomeriggio, ma solo se è un giorno festivo0 17 * * 0,6 /percorso/del/comando
  • Dirette Facebook: come funzionano e che cosa sono

    Dirette Facebook: come funzionano e che cosa sono

    Come fare una diretta Facebook e di che cosa si tratta? Lo spieghiamo in questa guida.

    Che cosa sono le dirette Facebook

    Le dirette Facebook si possono effettuare con il nostro telefono e dopo aver installato l’app ufficiale di Facebook: in questo modo potremo trasmettere in diretta, come un vero e proprio VIP, un video in cui ci sei tu che parli, conduci un programma radio, suoni uno strumento e… tutto quello che desideri fare in una diretta! Le dirette Facebook sono uno strumento disponibilePer fare una video diretta Facebook da mobile è necessario aver installato sul tuo dispositivo l’app di Facebook per Android o iOS. per qualsiasi utente lo desideri, che sia registrato al social network blu e che abbia ovviamente almeno un minimo numero di contatti a cui trasmettere.

    Dirette Facebook: attenzione alla privacy

    Le dirette Facebook possono essere fatte sia dalle aziende che da utenti privati, e sono uno strumento di comunicazione molto potente e potenzialmente vi permetteranno di arrivare a chiunque. Al tempo stesso, pero’, bisogna fare attenzione al fatto che si tratta di una diretta, che eventuali errori potrebbero essere registrati da qualche utente smaliziato e potrebbero anche registrarci a nostra insaputa.

    Quindi attenzione a non esagerare, a non fare cose di cui potremmo pentirci in futuro e a mantenere il tono sempre coerente con il nostro modo di essere. Le dirette Facebook, in genere, devono essere fatte con la supervisione di un adulto nel caso di minorenni, e richiedono una connessione ad internet sufficentemente veloce per poter trasmettere il video e l’audio in modo fluido e senza scatti.

    Come fare le dirette Facebook (da smartphone)

    Per effettuare una diretta video Facebook da mobile è indispensabile aver installato sul tuo dispositivo l’app di Facebook per Android o iOS, ovviamente dagli store ufficiali del vostro telefono. Per fare le dirette Facebook in streaming è piuttosto semplice: ovviamente, come prima cosa, devi accedere al tuo account Facebook con username e password, e poi entrare nella schermata principale.

    Procedura passo-passo per fare le dirette

    Direttamente dall’app mobile ufficiale, tappa sulla voce “A cosa stai pensando“, e poi tappa sul bottone Live oppure sull’icona del video.

    A questo punto devi abilitare, almeno per la prima volta che ne fai uso, l’accesso del telefono alla fotocamera (per il video, cioè per mostrarti nella diretta) e al microfono (ovviamente per l’audio, cioè per far sentire la tua voce).

    Troverai a questo punto una sezione di testo da compilare con quello che stai per trasmettere (ad esempio: “in diretta dalla mia stanza”), e fai attenzione al prossimo punto: devi infatti selezionare la privacy per la trasmissione, ovvero decidere se mostrare la tua diretta a chiunque (pubblico), solo ad una lista di persone che hai pre-selezionato tu, oppure soltanto ai tuoi contatti FB.

    Siamo quasi arrivati al dunque: per andare in diretta su Facebook ed essere visibile a chiunque tu desideri, clicca sul bottone “Go live ed inizia a trasmettere.

    Una volta finita la diretta, devi tappare sul bottone Fine per concludere la diretta e decidere, eventualmente se rendere pubblicamente disponibile la tua diretta in forma registrata (tappando su Pubblica, se desideri farlo), che sarà normalmente disponibile solo a chi vuoi tu ed in formato HD.

    Se vuoi cancellare per sempre la tua diretta è semplicissimo: basta infatti tappare sul pulsante Elimina.

  • Stupid sort: cose a caso per ordinare un vettore

    Stupid sort: cose a caso per ordinare un vettore

    Ordinare letteralmente a caso: guida pratica al bogosort

    Lo chiamano bogosort per non chiamarlo stupid sort, ordinamento stupido, il che potrebbe suonare grottesco o aggressivo agli occhi di qualche studente. In effetti il Bogosort è un algoritmo di ordinamento molto inefficiente e non pratico, tanto che ci si chiede a cosa possa servire nella pratica. Funziona seguendo un metodo casuale: consiste nel mescolare casualmente l’intera lista e verificare, ad ogni tentativo, se è ordinata. Se la lista non è ordinata, il processo di mescolamento casuale viene ripetuto fino a quando la lista è ordinata.

    Ordinare a caso, fino a quando (forse)è ordinato

    Hai mai desiderato un algoritmo che incarnasse l’entropia dell’universo? Ti presentiamo il Bogosort: l’algoritmo che dice “E se provassimo a mischiare tutto finché per miracolo è ordinato?”

    Lo studio del Bogosort, sebbene sia un algoritmo di ordinamento inefficace e impraticabile, può essere utile per diversi motivi. Non sembrerebbe, a prima vista. A che cosa dovrebbe servire “ordinare a caso”, in effetti? Ad esempio può essere un esercizio didattico utile per capire meglio i concetti di base degli algoritmi di ordinamento, anche se in pratica non è utilizzato in applicazioni reali a causa della sua estrema inefficienza. Serve anche a:

    1. Comprendere i limiti degli algoritmi: Studiare il Bogosort aiuta a capire meglio cosa rende un algoritmo efficiente o inefficiente. È un esempio estremo di un algoritmo molto inefficiente e fornisce un confronto con algoritmi di ordinamento efficienti come Quicksort o Mergesort.
    2. Approfondire la comprensione dei criteri di confronto: L’analisi del Bogosort può approfondire la comprensione dei criteri utilizzati per valutare le prestazioni degli algoritmi di ordinamento, come il tempo di esecuzione, la complessità computazionale e l’efficienza.
    3. Apprendere i concetti di casualità / probabilità: Il Bogosort utilizza il concetto di casualità per mescolare gli elementi. Studiarlo può aiutare a comprendere meglio i concetti di casualità e probabilità nell’informatica e nei processi decisionali.
    4. Finalità educative / divertimento: In un contesto educativo o ludico, l’apprendimento del Bogosort può essere utilizzato come esercizio per esplorare gli algoritmi e comprendere le differenze tra un approccio efficiente e uno inefficace.

    Come funziona il bogosort

    In altri termini, l’algoritmo Bogosort funziona in questo modo:

    1. Mescola casualmente l’intera lista.
    2. Verifica se la lista è ordinata.
    3. Se la lista non è ordinata, ripete il mescolamento casuale.
    4. Continua a ripetere il processo finché la lista non è ordinata.

    Se preferisci:


    1. Prendi una lista di numeri o di elementi ordinabili (due elementi sono ordinabili se esiste un criterio per cui uno è maggiore dell’altro).



    2. Controlla se è ordinata. Lo è?



    3. Se non lo è, mischiala a caso.



    4. Ripeti dal punto 2, finché il cosmo si allinea l’algoritmo ha finito l’ordinamento per puro caso.


    Si tratta di un algoritmo interessante perchè l’uso di un rimescolamento casuale introduce non determinismo e questo, naturalmente, cambia in modo radicale l’approccio algoritmico: che è deterministico quando stabiliamo che la somma di 2+2 è 4, comunque decidiamo di calcolarlo, e diventa non deterministico se introduciamo un evento non prevedibile come il rimescolamento casuale degli elementi.

    Cosa che, alla prova dei fatti, è difficile anche da prevedere come esito, poichè la probabilità di ordinare N elementi casualmente è ben più alta del numero di combinazioni casuali ottenibili. Che sono N! (N fattoriale), per inciso: per cui se hai 3 elementi distinti (1, 2, 3), i possibili ordini distinti sono 3!=3×2×1=6:

    1. 123
    2. 132
    3. 213
    4. 231
    5. 312
    6. 321

    Se hai, ad esempio, 4 elementi distinti, i possibili ordini distinti sono 4!=4×3×2×1=24 ordini distinti. In un caso solo 1 combinazione su 6 sarà corretta (24% di probabilità di ordinare al primo colpo), nel caso di N=4 avremo 1 su 24 probabilità di trovare la combinazione ordinata (4% circa).

    Poiché il mescolamento casuale è completamente non deterministico, nel bogosort, non c’è alcuna garanzia che l’ordinamento avverrà in un tempo ragionevole. La complessità temporale dell’algoritmo bogosort è estremamente alta, può arrivare ad essere O(N!) e può richiedere un tempo indefinito, nella pratica, per ordinare la lista non ordinata.

    Bogosort in C++

    Ecco un esempio di come si potrebbe implementare il Bogosort in C++

    #include <iostream>
    #include <algorithm>
    #include <random>
    
    // Funzione per verificare se la lista è ordinata
    bool isSorted(int arr[], int size) {
    for (int i = 1; i < size; ++i) {
    if (arr[i - 1] > arr[i]) {
    return false;
    }
    }
    return true;
    }
    
    // Funzione per mescolare casualmente la lista
    void shuffle(int arr[], int size) {
    std::random_device rd;
    std::mt19937 g(rd());
    std::shuffle(arr, arr + size, g);
    }
    
    // Implementazione dell'algoritmo Bogosort
    void bogoSort(int arr[], int size) {
    while (!isSorted(arr, size)) {
    shuffle(arr, size);
    }
    }
    
    // Funzione di stampa della lista
    void printArray(int arr[], int size) {
    for (int i = 0; i < size; ++i) {
    std::cout << arr[i] << " ";
    }
    std::cout << std::endl;
    }
    
    int main() {
    int arr[] = {3, 1, 4, 5, 2}; // Lista da ordinare
    int size = sizeof(arr) / sizeof(arr[0]);
    
    std::cout << "Lista non ordinata: ";
    printArray(arr, size);
    
    // Ordina la lista utilizzando Bogosort
    bogoSort(arr, size);
    
    std::cout << "Lista ordinata: ";
    printArray(arr, size);
    
    return 0;
    }

    La funzione shuffle utilizza le funzioni fornite dalla libreria standard di C++ ( e ) per eseguire il mescolamento casuale dell’array. In breve tale funzione prende un array di numeri e li mescola casualmente utilizzando un generatore di numeri casuali, modificando così l’ordine originale.

    Ecco cosa fa esattamente:

    1. std::random_device rd; crea un oggetto random_device che serve come seme per il generatore di numeri casuali. Questo aiuta a generare numeri casuali veri e propri.
    2. std::mt19937 g(rd()); crea un generatore di numeri casuali mt19937 (Mersenne twister) utilizzando rd() come seme. mt19937 è un motore di generazione di numeri casuali di alta qualità, usato molto spesso nella pratica (e anche, ad esempio, per generare numeri casuali in Excel).
    3. std::shuffle(arr, arr + size, g); utilizza la funzione shuffle della libreria standard di C++ (che ha 4 argomenti, da non confondersi coi 3 della funzione creata). Prende l’array arr e il suo numero di elementi size e utilizza il generatore di numeri casuali g per mescolare gli elementi dell’array in modo casuale.