Cos’è GRUB

Dopo aver visto cos’è rEFInd non poteva mancare il popolarissimo GNU GRUB che, se probabilmente siete qui, avete sempre trovato installato sul vostro computer con sistemi operativi Linux o Windows.

È anche questo un boot manager (qui la definizione di boot loader) che serve quindi per selezionare il kernel da caricare all’avvio del vostro PC.

Screenshot di GRUB con Ubuntu installato

La documentazione potete trovarla nel sito web ufficiale:

http://www.gnu.org/software/grub/

Viene installato automaticamente su quasi tutti i sistemi Linux ed è di facile configurazione perché identifica in automatico i kernel installati e ne crea un file di configurazione.

Cos’è rEFInd

rEFInd (sì con la sigla EFI maiuscola) è un boot manager che cerca e riesce a risolvere diversi problemi che i boot manager di default di Apple o Microsoft hanno da tempo.

Essendo un progetto open source potete accedere al codice sorgente e personalizzarlo come meglio preferite.

Detto in parole semplici è un menu che vi compare all’avvio del computer e vi permette di selezionare il sistema operativo che volete utilizzare.

Il sito web ufficiale con tutta la documentazione è questo:

http://www.rodsbooks.com/refind/

Screenshot del template base di rEFInd

Personalmente lo utilizzo per risolvere il problema che si presenta con una scheda video esterna che non riesce a rimaner disabilitata durante il boot (qui l’articolo per risolvere l’errore 12). Cosa che si riesce a fare facilmente con rEFInd con l’utilizzo di una semplice pendrive e due file che disabilitano la scheda interna durante la fase di caricamento del sistema operativo.

Qual è la differenza tra UEFI e BIOS

Il BIOS è il primo programma che viene eseguito da un computer quando viene alimentato e inizializza tutte le periferiche di input e output (deriva da questo il nome BIOS: Basic Input/Output System) facendo dei test e caricando il boot loader.

UEFI invece, sigla per Unified Extensible Firmware Interface, diciamo che “è la versione dopo” che arriva per sostituisce il BIOS e in più supporta anche la diagnostica e la riparazione remota. Viene oramai utilizzato in quasi tutti i sistemi Linux, Mac e Windows.

Anche qui potete approfondire sul termine EFI o UEFI sul sito di Intel:

https://www.intel.com/content/www/us/en/architecture-and-technology/unified-extensible-firmware-interface/efi-homepage-general-technology.html

Cos’è un boot loader

Il bootloader è un programma che viene eseguito subito dopo aver dato corrente a un computer (o qualunque dispositivo che deve caricare un sistema operativo) e ha il compito di caricare il kernel dalla memoria secondaria (SSD o hard disk che sia) alla primaria (RAM).

Per una lettura più approfondita vi consiglio la pagina di Wikipedia in inglese che tratta molto approfonditamente la questione: https://en.wikipedia.org/wiki/Booting#First-stage_boot_loader

Come cancellare una regola dall’Iptables

Ovviamente non poteva mancare: dopo aver visto come aggiungere delle regole al firewall Iptables e dopo aver visto come visualizzarle in elenco… beh mancava solo più questo!

Se avete l’elenco in vista, quindi ad esempio se avete:

1    DROP       udp  --  anywhere             anywhere             udp dpt:domain
2    DROP       tcp  --  anywhere             anywhere             tcp dpt:domain

E volete cancellare la prima regola, vi basterà eseguire:

sudo iptables -D INPUT 1

Per eliminarla dall’elenco delle regole. Se utilizzate iptables-persistent per salvare permanentemente tutte le rules, vi basterà eseguire:

sudo su
iptables-save > /etc/iptables/rules.v4

Per salvarle al prossimo riavvio!

Come visualizzare l’elenco dell’Iptables

Se avete impostato delle regole nel vostro firewall, come fate a capire quali sono attive e quali no?

Beh di solito bisogna leggere la documentazione, però si sa, siamo tutti un po’ pigri… vediamo subito qual è il comando da eseguire:

sudo iptables -L --line-numbers

E dovrebbe visualizzarvi qualcosa del tipo:

Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    DROP       udp  --  anywhere             anywhere             udp dpt:domain
2    DROP       tcp  --  anywhere             anywhere             tcp dpt:domain

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination         

Cos’è un’interfaccia

In informatica, con il termine interfaccia, si può far riferimento a diverse cose (ehm Wikipedia o Treccani possono essere delle utili letture) ma nella maggior parte dei casi che tratterò negli articoli o tutorial, farò principalmente riferimento a un’interfaccia di rete utilizzando il solo termine di interfaccia, omettendo appunto di rete.

Ho dato una definizione poco più dettagliata in questo articolo.

Come salvare permanentemente l’Iptables

Abbiamo visto che l’Iptables è il firewall di Linux e che funziona molto bene, si gestisce facilmente da linea di comando… ma ora andiamo diretti alle regole (se vuoi sapere come impostarle, leggi questo).

Prima di tutto installate questo pacchetto:

sudo apt install iptables-persistent

Poi spostatevi sull’account amministratore con sudo su ed eseguite:

iptables-save > /etc/iptables/rules.v4

Per salvare l’attuale configurazione. Mentre per ripristinarlo (nel caso abbiate apportato delle modifiche) con:

iptables-restore < /etc/iptables/rules.v4

Ora provate a riavviare e vedete se è ancora tutto uguale!

Come impostare il DNS e nel caso forzarlo

Alzi la mano chi ha avuto problemi ad impostare i DNS sul proprio computer/server Linux. Ci sono almeno 3-4 impostazioni intercambiabili e dipendenti tra loro (il DHCP può darvi un’IP ma voi ne volete un altro).

Nel caso questa mini-descrizione faccia per voi, ecco come forzarli nel file di configurazione delle interfacce:

sudo nano /etc/network/interfaces

E incollate al fondo gli IP del vostro DNS preferito:

dns-nameservers 8.8.8.8 8.8.4.4

Ora riavviate con un sudo reboot now e dovrebbe essere cambiato (salvo altre impostazioni strane con dnsmasq, qui un esempio con un Raspberry Pi).

Controllate l’effettiva risposta con:

nslookup google.com

E dovrebbe comparirvi qualcosa del tipo:

Server:		8.8.8.8
Address:	8.8.8.8#53

Come impostare delle regole nell’Iptables

Abbiamo visto cos’è l’Iptables ma non abbiamo ancora visto come impostare delle regole. Beh, come ho specificato nell’articolo precedente, è molto semplice! Aprite il terminale ed eseguite:

sudo iptables -A INPUT -i eth1 -p udp -m udp --dport 53 -j DROP
sudo iptables -A INPUT -i eth1 -p tcp -m tcp --dport 53 -j DROP

Questi due comandi imposteranno delle regole che bloccheranno tutte le richieste di DNS sull’interfaccia eth1 (se non sai cos’è una network interface, leggi qua).

Ovviamente queste regole al prossimo riavvio saranno resettate, nel prossimo articolo vedremo come salvarle permanentemente.

Cos’è l’Iptables

L’Iptables è un firewall installato in quasi tutti i sistemi Linux, molto semplice e intuitivo.

È facilmente gestibile da linea di comando e per ora non sono state trovate falle conclamate. Gestisce in modo semplice le regole di input, output e forward.

Potete leggere la documentazione in italiano sul sito di Ubuntu https://wiki.ubuntu-it.org/Sicurezza/Iptables

Come rimuovere CocoaPods

Dopo aver visto come installarlo e come usarlo, non poteva mancare anche come rimuovere completamente (disintegrare, se proprio vogliamo usare il comando in italiano):

sudo gem install cocoapods-deintegrate cocoapods-clean
pod deintegrate && pod clean
rm Podfile

Ovviamente tutto eseguito da terminale e nel percorso del progetto con all’interno le dipendenze.

Come usare CocoaPods

Dopo aver visto come installare CocoaPods, vediamo come utilizzarlo.

Se avete appena scaricato un progetto da GitHub ma non sapete come eseguirlo perché ha diverse dipendenze gestite con CocoaPods (di solito viene indicato se la documentazione è fatta come si deve), vediamo subito come fare!

Spostatevi nel percorso del progetto e create un file denominato Podfile senza estensione.

sudo nano Podfile

E incollate qualcosa di simile:

source 'https://github.com/CocoaPods/Specs.git'
use_frameworks!
target 'Example app' do
    pod 'Alamofire', '~> 4.7'
end

Salvate ed eseguite:

pod install

Attendete il tempo necessario per scaricare tutte le dipendenze e aprite il progetto (normalmente dev’esserci un file .xcworkspace altrimenti il classico file del progetto di Xcode).

Come installare CocoaPods

CocoaPods è un gestore di dipendenze per progetti in Swift e Objective-C. Qualche mese fa abbiamo visto come alleggerirlo, ma non abbiamo mai affrontato l’argomento base, cioè come installarlo.

Installarlo è molto semplice, vi basterà aprire il terminale ed eseguire:

sudo gem install cocoapods

Ovviamente dovete già aver installato Xcode da App Store o scaricato tramite il developer.apple.com.

Come avere una Touch Bar virtuale su Xcode

Se volete provare la nuova Touch Bar disponibile nei nuovi MacBook Pro, vi basterà installare Xcode, aprire un progetto e cliccare nel menu in alto alla voce Window (quella prima di Help) e cliccare su Show Touch Bar.

Menu contestuale su Xcode

Avrete così modo di provarla in modo virtuale anche senza averla fisicamente sul vostro Mac o PC (nel caso di hackintosh).

Touch Bar virtuale

Dove trovare le vecchie versioni di Xcode

State cercando una vecchia versione di Xcode perché non riuscite ad aprire un vecchio progetto con la versione attuale?

Magari state cercando di convertire un progetto da Swift 2 alla 4.2?

Beh ecco a voi il link alla pagina di download:

https://developer.apple.com/download/more/

Potrete scaricare tutte le vecchie versioni di Xcode, comprese quelle non più compatibili con Mojave (avrete bisogno di una macchina virtuale con sopra High Sierra o un Mac con sopra installato macOS 10.13).

3 versioni di Xcode installate (non vi dico quanti GB sprecati)

Come resettare le lampadine IKEA Trådfri

Dopo aver visto come resettare le Hue e le Yeelight, vediamo come resettare quelle di Ikea.

Navigando su internet bisogna fare una procedura simile alle Yeelight (che però a differenza delle Hue usano Zigbee come tecnologia).

bulb off (5sec)

bulb on (0.5sec) bulb off (2 sec)
bulb on (0.5sec) bulb off (2 sec)
bulb on (0.5sec) bulb off (2 sec)
bulb on (0.5sec) bulb off (2 sec)
bulb on (0.5sec) bulb off (2 sec)

bulb on (0.5sec)
bulb off (5 sec)

Se non dovesse funzionarvi, fate un click veloce (meno di un secondo) dallo switch e poi tenete premuto per spegnerla.

Caso estremo in cui non dovesse funzionarvi, seguite la guida ufficiale (che spesso viene aggiornata da Ikea) che potete trovare qui:

https://www.ikea.com/gb/en/customer-service/smart-lighting-support/troubleshooting/

Come emulare il Game Boy Advance su iPhone

Similmente come visto con l’emulatore per Nintendo DS per iPhone, anche per questo emulatore per Game Boy Advance dovrete compilarvelo da soli, semplicemente aggiungendo un certificato:

https://github.com/marcotini/gba4ios

Farlo è molto semplice, cliccate su Clone or download, aprite il progetto con Xcode e cambiate il certificato.
Selezionate il vostro iPhone o iPad come target di destinazione e cliccate su compila!

Importare le ROM è facile e intuitivo quindi non sto a spiegarvelo. Fatemi sapere se avete dei problemi con un commento!

GBA4iOS screenshot

Come emulare il Nintendo DS su iPhone

Dopo aver visto come emulare il Nintendo 3DS e la Nintendo Switch su PC, vediamo come emulare il vecchio Nintendo DS su iPhone.

Purtroppo (o per fortuna) sull’App Store ufficiale di Apple non è possibile scaricare l’emulatore perché non è propriamente legittimo in quanto i giochi scaricati non sono stati veramente acquistati dall’utente.

Detto questo, vi toccherà compilarvi il codice (qui potete avere una guida passo a passo su come fare). Altrimenti potete utilizzare dei servizi come builds.io che però non garantisco, in quanto bisogna pagare una quota annuale.

Nel caso non riuscite, io ho fatto una fork del progetto originale e qui potete trovare tutti i file necessari https://github.com/marcotini/iNDS in cui c’è tutto il progetto. Vi basterà cambiare certificato e installarlo sul vostro iPhone o iPad.

Rispetto al codice che potete trovare su GitHub, dovete semplicemente identificare questa stringa:

E cambiare da Debug a Release:

Ed ecco a voi:

Screenshot di Pokémon