Blog

  • Apache: bloccare determinati IP usando .htaccess

    Se il vostro hosting vi fornisce una piattaforma Apache, allora è possibile bloccare la visione del vostro sito a determinati IP (ad esempio per questioni di spam o privacy – sicuramente se vi siete imbattuti in questa pagina sapete perché li volete bloccare).

    Vediamo come possiamo bloccare questi IP:

    • creiamo un file .htaccess;
    • scriviamo le seguenti righe nel file appena creato:
    • allow from all
      deny from 111.222.222.2
      deny from 1.2

    • facciamo l’upload del file nella root del proprio sito

    In questo caso blocchiamo tutte le richieste provenienti dall’indirizzo IP 111.222.222.2 e dalla sottorete 1.2/16. È sufficiente aggiungere ogni IP (o ogni sottorete) che vogliamo bloccare su una nuova riga, seguendo il pattern mostrato.

    Quando questi IP cercheranno di visualizzare il vostro sito, otterranno una pagina HTTP 403 (Access Forbidden).
    Altri possibili utilizzi del file .htaccess si possono trovare qui.

    • Come scrivere la tesi di laurea con LaTeX

      Prossimo al traguardo della laurea specialistica, ho scritto la mia seconda tesi di laurea ancora con LaTeX. Nonostante io sia un fanboy della suite Office di Microsoft, ho deciso di rimanere fedele al LaTeX: perché?

      • perché l’inserimento delle figure non crea grossi grattacapi come con Word;
      • perché la resa tipografica è di gran lunga migliore;
      • perché è sicuramente molto più adatto per scrivere un libro (quale una tesi di una laurea) rispetto a Word, grazie alla filosofia che permette all’autore di separare il contenuto dal documento dalla sua formattazione (capirete il perché leggendo una delle guide qui sotto).

      Fino ad oggi ho letto una decina di guide, tra le migliori posso ricordare Impara LaTeX! (… e mettilo da parte), Una (mica tanto) breve introduzione a LaTeX e Scrivere la tesi di laurea con LaTeX.

      Ultimamente ho trovato una guida che riassume e completa le tre precedenti: oserei chiamarla LA guida. È aggiornatissima, contienere molte nozioni (anche quelli di grammatica italiana che spesso servono) e le presenta in modo chiaro e semplice, utilizzando sempre degli esempi. Inoltre, ogni esempio è corredato dalla rispettiva versione “codice sorgente”. La guida è stata scritta da Lorenzo Pantieri, e si intitola L’arte di scrivere con LaTeX. Non dimenticate di fargli avere il vostro feedback (sul suo sito sono presenti i contatti).

      Ora, per i più impazienti, che cosa vi serve per scrivere la vostra tesi di laurea? Supponendo che usiate Windows (non importa se XP o Vista), vi servono essenzialmente due cose:

      • Un “compilatore” e tutto la relativa suite LaTeX: io consiglio MikTeX
      • Un editor di testi che si integri con LaTeX: io consiglio TeXnic Center

      Dopo aver installato MikTeX e TeXnic Center, il gioco è fatto: da questo momento in poi dovrete solo aprire TeXnic Center e cominciare a scrivere, utilizzando la sintassi del LaTeX (se non la conoscete dovete, appunto, leggere la guida).

      Se usate altri sistemi operativi (come Linux o MacOSX), nella guida di Pantieri trovate tutto il materiale per installare correttamente la suite LaTeX per il vostro sistema operativo.

    • LaTeX: risolvere il warning “PDF inclusion: found PDF version <1.5>, but at most version <1.4> allowed”

      Ultimamente sto usando LaTeX per scrivere la mia tesi di laurea. Dopo aver inserito alcune immagini in formato PDF, il “compilatore” pdflatex si lamenta del fatto che la versione PDF specificata nel file di tali immagini era troppo avanzata (1.5), e che la massima versione ammessa è la 1.4 con questo warning:

      “PDF inclusion: found PDF version <1.5>, but at most version <1.4> allowed”

      Tuttavia questo è solo un warning, infatti le immagini sono regolarmente comparse nel documento. Ma come si può evitare che questo venga presentato?

      Basta aggiungere un’istruzione nel preambolo che specifichi a pdflatex di consentire anche la versione PDF 1.5 in questo modo:

      \documentclass[a4paper,11pt,twoside]{article}
      <preambolo>
      \pdfoptionpdfminorversion=5
      \begin{document}
      <immagini>
      \end{document}

      In questo modo pdflatex non genererà più warnings.

    • Windows Vista: come rimuovere l’icona "Risorse di rete Bluetooth" dal desktop

      imageimageQuando si installano determinati software (o drivers) Bluetooth può succedere che venga creata sul desktop di Windows Vista  la fastidiosa icona “Risorse di rete Bluetooth”.

      Come si può rimuovere? Cliccando con il tasto destro non c’è modo di trovare una soluzione, e nemmeno scorrendo tra le varie impostazioni di personalizzazioni del desktop…

      Per eliminare l’icona si procede in questo modo:

      1. Start -> regedit
      2. Andate sulla chiave
      3. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\desktop\NameSpace

      4. Scorrete le varie sottochiavi di desktop, fino a trovare la chiave per cui il valore “Dati” è settato a “My Bluetooth Places”image
      5. Eliminate tale sottochiave
      6. Andate sul vostro desktop e premete F5 (aggiorna) per constatare che l’icona è effettivamente sparita.
    • Aggiornare Ubuntu da Hardy (8.04) a Intrepid Ibex (8.10) usando la linea di comando

      Ultimamente mi è capitato di dover aggiornare alcuni server da Ubuntu 8.04 (NB: questa versione è una LTS, ovvero Long Time Support che significa pacchetti aggiornati per 3 anni per la versione desktop e fino a 5 per i server) a Ubuntu 8.10 (questa versione non è LTS!).

      Personalmente preferisco prima aggiornare una macchina di test, e, se tutto va bene, migrare tutte anche le altre macchine alla nuova versione. Ma come si può aggiornare Ubuntu usando soltanto l’accesso a linea di comando (tipicamente ssh)?

      È tutto molto semplice:

      1. Installare (se non è già installato) update manager con: sudo apt-get install update-manager-core
      2. Modificate il file /etc/update-manager/release-upgrades cambiando la riga:
      3. Prompt=lts

        con

        Prompt=normal

        (usate vim o il vostro editor preferito)

      4. Salvate il file e lanciate il processo di aggiornamento con sudo do-release-upgrade

      Se tutto va bene, update-manager vi chiederà se volete effettivamente aggiornare e vi darà anche una stima del tempo previsto:

      Calculating the changes

      Do you want to start the upgrade?

      24 packages are going to be removed. 208 new packages are going to be
      installed. 1018 packages are going to be upgraded.

      You have to download a total of 768M. This download will take about 1
      hour 10 minutes with your connection.

      Fetching and installing the upgrade can take several hours. Once the
      download has finished, the process cannot be cancelled.

      Continue [yN]  Details [d]y

    • Creare una lista dei programmi installati su Windows XP/Vista

      Come si può creare velocemente una lista dei programmi che abbiamo installato su un computer con Windows XP/Vista?

      Molto semplice: aprite il prompt dei comandi e digitate:

      • wmic (Invio)
      • /output:installed.txt product get name

      A questo punto il file installed.txt conterrà la lista dei programmi attualmente installati sul vostro computer.

    • Creare il proprio avatar in stile manga

      Anche voi appassionati delle serie tv giapponesi?  avatar_manga

      Volete creare il vostro personaggio in stile manga e poi usarlo come avatar?

      Niente di più facile: basta andare sul sito https://www.faceyourmanga.it/ e seguire la procedura che vi aiuterà a creare il vostro avatar.

    • Come convertire documenti .docx, .xlsx in .doc, .xls senza installare nulla (da Office 2007 a Office 2003)

      A volte capita che si debba leggere un documento Word in formato .docx ma non si abbia a disposizione Word 2007 per leggerlo; infatti, tutti i programmi della suite Office 2007 (quindi anche Excel, PowerPoint, etc.) utilizzano un nuovo formato per il salvataggio dei documenti:

      • Word usa .docx
      • Excel usa .xlsx
      • … e via dicendo

      Inutile dire che le versioni precedenti di Office (quindi Office 97, XP e 2003) non sono in grado di leggere tali files: come si possono convertire files dal nuovo formato al vecchio formato senza installare nulla sul nostro computer?image

      Grazie a zamzar la conversione è molto semplice e gratuita: basta recarsi sul sito, effettuare l’upload, scegliere il formato di destinazione (.doc, .xls, o .pdf) e scaricare il file convertito.

    • Python: uno script per eliminare i file Thumbs.db e le cartelle .DS_Store

      Windows XP crea automaticamente un file, chiamato Thumbs.db, in tutte le cartelle che visita per salvarne la visualizzazione (dettagli, anteprima, etc.). La stessa cosa fa OSX, creando addirittura (!) una cartella dal nome .DS_Store, contenente gli stessi attributi.

      Stanco di avere il mio hard disk pieno di questi file (in Vista la gestione di questi file è intelligentemente centralizzata), ho creato uno script Python che analizza ricorsivamente una directory (specificata dall’utente) e stampa tutte le posizioni di questi file e directory indesiderati.image

      Lo script richiede esattamente due argomenti: il path da cui si vuole iniziare ad analizzare ricorsivamente la presenza di file e directory indesiderate, e una stringa che conferma l’azione: nel caso in cui l’opzione sia delete, lo script cancella i file desiderati, altrimenti stamperà soltanto le loro posizioni.

      Esempio:
      python recursiveDeleteUnwantedFilesAndDir.py C:\ print

      stampa la posizione dei i files/directory indesiderati

      python recursiveDeleteUnwantedFilesAndDir.py C:\ delete

      stampa la posizione dei i files/directory indesiderati e li elimina dal disco

      Veniamo al codice sorgente:

      import os
      import sys
      
      def recursiveDeleteUnwantedFilesAndDir(path,action):
          for root, dirs, files in os.walk(path):
              for name in files:
                  if name == 'Thumbs.db':
                      print os.path.join(str(root),str(name))
                      if action == 'delete':
                          os.remove(os.path.join(str(root),str(name)))
              for name in dirs:
                  if name == '.DS_Store':
                      print os.path.join(str(root),str(name))
                      if action == 'delete':
                          os.removedirs(os.path.join(str(root),str(name)))
      
      recursiveDeleteUnwantedFilesAndDir(sys.argv[1],sys.argv[2])
      

      Per scaricare lo script: recursiveDeleteUnwantedFilesAndDir.zip

    • Come creare un tunnel SSH dinamico con PuTTY

      imageAvete bisogno di un tunnel SSH? Ci sono molteplici ragioni per utilizzarlo; se state cercando di realizzare un tunnel sicuramente ne avrete già in mente (almeno) una.

      Passiamo all’opera. Requisito fondamentale: un server Linux con accesso ssh e che permetta ssh tunneling (Ubuntu e quasi tutte le altre distribuzioni con openssh-server di default lo permettono).

      Apriamo PuTTY e cominciamo:

      1. Inserite l’host del vostro server come in figura
      2. Spostatevi nel tab Connection -> SSH -> Tunnels
      3. Nel campo Destination, impostate Dynamic
      4. Scegliete una porta TCP che sapete essere libera sulla vostra macchina locale (un numero >= 1024 potrebbe andare bene) e inserite il numero nel campo Source portimage
      5. Premete Add
      6. Premete ora su Open, connettetevi al vostro server in ssh specificando username e password e lasciate aperta la sessione

      A questo punto il tunnel è creato su localhost, sulla porta TCP che avete specificato come source port: aprite il programma con cui volete sfruttare il tunnel appena creato e specificate di usare un proxy SOCKS5 con indirizzo localhost e come porta la source port che avete scelto.

      A titolo di esempio, usiamo Firefox per sfruttare il tunnel appena creato:

      1. Aprite Firefox
      2. Controllate su www.whatismyip.com quale sia il vostro indirizzo IP e annotatelo
      3. Andate in Strumenti -> Preferenze
      4. Andate su Avanzate e poi nel tab Rete, poi su Connessioni e infine Impostazioni
      5. Cliccate su “Configurazione manuale dei proxy” e inserite nel campo Host SOCKS: l’indirizzo IP del computer locale (127.0.0.1) e come porta la source port che avete scelto in PuTTY (nel mio caso, la 17222)image
      6. Cliccate su OK e chiudete tutte le opzioni che avete aperto
      7. Aprite di nuovo il sito www.whatismyip.com e controllate l’indirizzo IP: se il tunnel sta funzionando correttamente, l’indirizzo IP mostrato è diverso da quello visualizzato al punto 2.