OSX HD Cleanup for Developers

So you are an iOS Developer and Mac user, ain’t it? I’ll show you some tips I use to reclaim my HD space [=

As a Mac user you shold have TimeMachine enabled in order to keep your things backed-up .

You should know that Time Machine has by default the Automatic Backup enabled that takes some snapshots also on local storage waiting for a full backup on your external HD.

It’s show time, so open up a Terminal window!

To see these snapshots you do:

sudo tmutil listlocalsnapshots /
sudo tmutil listlocalsnapshots /
com.apple.TimeMachine.2018-10-02-150623
com.apple.TimeMachine.2018-10-03-120519
com.apple.TimeMachine.2018-10-03-130357
com.apple.TimeMachine.2018-10-03-140849
com.apple.TimeMachine.2018-10-03-150352

In order to delete a local snapshot you have to type:

sudo tmutil deletelocalsnapshots 2018-10-02-150623
sudo tmutil deletelocalsnapshots 2018-10-02-150623
Deleted local snapshot '2018-10-02-150623'

Were you used to disable localsnapshots, do you say?

With OSX High Sierra+ you cannot. (Without disabling automatic backups). Correct me if I’m wrong.

Anyway, if you need to reclaim some of your HD space you could delete all local snapshots in one shot:

sudo tmutil listlocalsnapshots / | sed 's/com.apple.TimeMachine.//g' | xargs -I % sudo tmutil deletelocalsnapshots %
$ sudo tmutil listlocalsnapshots / | sed 's/com.apple.TimeMachine.//g' | xargs -I % sudo tmutil deletelocalsnapshots %
Deleted local snapshot '2018-10-03-130357'
Deleted local snapshot '2018-10-03-140849'
Deleted local snapshot '2018-10-03-150352'
Deleted local snapshot '2018-10-03-160946'

Another trick you could use is to delete all the old Device Debug Support symbols that Xcode download every time you connect a new physial device to your Mac with a new iOS Version. So you will have, for example, debug symbols for 10.3, 10.3.1, 10.3.2, …, 11.0.0, 11.1.0, …, 11.4.1, … and so on.

This symbols are stored in the following directory:

~/Library/Developer/Xcode/iOS DeviceSupport/

Let’s check it out by entering the above directory and typing:

find . -type f -size +1G | xargs -I % du -h %

You sould see some big files (more than 1 giga):

find . -type f -size +1G | xargs -I % du -h %

1.0G ./11.3 (15E216)/Symbols/System/Library/Caches/com.apple.dyld/dyld_shared_cache_arm64

1.0G ./11.4 (15F79)/Symbols/System/Library/Caches/com.apple.dyld/dyld_shared_cache_arm64

1.0G ./11.3.1 (15E302)/Symbols/System/Library/Caches/com.apple.dyld/dyld_shared_cache_arm64

1.0G ./11.2.5 (15D60)/Symbols/System/Library/Caches/com.apple.dyld/dyld_shared_cache_arm64

1.0G ./11.4.1 (15G77)/Symbols/System/Library/Caches/com.apple.dyld/dyld_shared_cache_arm64

1.0G ./11.2.6 (15D100)/Symbols/System/Library/Caches/com.apple.dyld/dyld_shared_cache_arm64
If you need them no more… delete’em all! (or only the ones you need no more [=)
Hope this tips could be of any help to you. Let me know your tips if you do have different ones!
Bye!
OSX HD Cleanup for Developers

Friendly firewalls for your OSX, Windows and Linux

 _  _

Oggi parleremo di tre firewall veramente facili da utilizzare che che ci daranno modo (a livello di utilizzatore basico di PC) di avere sotto controllo tutte le connessioni di rete che avvengono nei nostri computer.

Per Windows descriverò la versione di GlassWireBasic” (a pagamento) che ad oggi costa circa 60€.

Mentre per OSX descriverò il bundle LittleSnitch+MicroSnitch che costa ad oggi circa 32€.

Le cifre sono una-tantum e quindi una volta acquistata la licenza, siamo a posto per sempre. Non come i firewall messi a disposizione dagli antivirus che sono attivi solamente con le versioni professionali a pagamento annuale, ma non voglio dilungarmi oltre su questo argomento.

OpenSnitch è il porting di LittleSnitch su Linux che sta facendo Simone Margaritelli (aka evilsocket). OpenSnitch, devo dire la verità, non ho ancora avuto modo di utilizzato perché è molto recente e in sviluppo in questi giorni, ma credo comunque che meritasse di essere menzionato e tenuto d’occhio visto che si prefigge di dare sotto Linux le stesse opzioni di LittleSnitch.

Le funzionalità di questi software sono veramente belle, e credo che ogni utilizzatore di PC dovrebbe averle a disposizione!

La funzione più bella è la modalità del firewall  “Ask To Connect” (in Little e Open Snitch è attiva di default, mentre in GlassWire va abilitato nella scheda Firewall).

Questo cosa vuol dire?

Vuol dire che non appena avremo installato il programma, questo comincerà a controllare tutte le connessioni al computer in Ingresso e in Uscita e di default non permetterà quelle in Uscita.

Se per ogni connessione in Uscita non è ancora stata stabilita una regola, allora vi verrà presentato un popup con il quale decidere se negare o acconsentire la connessione.

GlassWire:

OpenSnitch:

LittleSnitch:

Ad esempio facendo per la prima volta anche un solo telnet su Windows, dovremo abilitare la regola su GlassWire prima di riuscire nell’intento 😉

Stessa cosa per LittleSnitch.

Inoltre avremo la possibilità di andare a vedere le regole impostate sul Firewall e fare alcune operazioni sia sulla regola ma anche sull’applicazione stessa. Potremo per esempio fare la scansione con l’antivirus corrente sul PC (GlassWire) e vedere chi ha firmato il programma (GlassWire e LittleSnitch) e anche vedere se la firma è valida (LittleSnitch).

Avrete quindi sotto controllo tutto il traffico suddiviso per applicazione o per connessioni!

Se poi volete spingervi ancora più a fondo, potete abilitare (GlassWire) le notifiche sull’attività di fotocamera e microfono.

Ma se avete comprato anche MicroSnitch, avrete le stesse funzioni anche su Mac OSX.

Beh, spero che queste cose vi piacciano e vi possano tornare utili!

Soprattutto vi facciano stare più tranquilli mentre utilizzate il vostro PC.

Alla prossima.

 

Friendly firewalls for your OSX, Windows and Linux

MacOSX trackpad gestures

Poiché molte persone che conosco hanno un Mac con un bellissimo Trackpad, ma continuano a cliccarci “con forza” invece che semplicemente tapparlo, oggi voglio suggerire in questo articolo come abilitare alcune utili “gesture” sul vostro Mac 🙂

Innanzitutto ecco qui i link ufficiali:

Poiché vi ho già messo i link per configurare le varie opzioni qui vi metterò la sintesi  per accedere ad esse (io ho il sistema operativo in inglese):

  • Le gesture: System Preferences –> Trackpad –> Mouse Gestures
  • Trascinamento a tre dita: System Preferences –> Accessibility –> Mouse and Trackpad –> Trackpad options –> Enable dragging –> Three finger drag

Una volta impostati, difficilmente ne farete a meno.

E’ ovviamente del tutto personale, ma fatemi sapere come andate!

MacOSX trackpad gestures

Git bash environment on Mac OSX

Oggi vogliamo essere un po’ geek e configurarci il prompt per git a linea di comando.

Per fare questo scarichiamoci questi cinque file più, se volete utilizzarlo come editore predefinito, Sublime Text:

Il profilo dobbiamo importarlo dal menu del nostro terminale: Terminal –> Settings (io l’ho in inglese) e poi sotto la lista di profili, clicchiamo la piccola ruota dentata vicino al “-” (meno)

Scarichiamo (nella cartella Downloads)  bash_profile e apriamo il terminale e digitiamo:

cd
mv Downloads/bash_profile .bash_profile

ATTENZIONE: copiate il .bash_profile solo se non ne avete già uno, altrimenti integrate il vostro con quanto scritto nel mio.

Scarichiamo (nella cartella Downloads) git-prompt.sh e git-completion.bash (presi direttamente dal repository ufficiale di git su GitHub – https://github.com/git/git) e git_configure_commands.sh

Digitiamo i comandi

cd
mv Downloads/git_configure_commands.sh .
mv Downloads/git-completion.bash .
mv Downloads/git-prompt.sh .

A questo punto lanciamo il comando git_configure_commands.sh

./git_configure_commands.sh

che imposterà il conflict style a diff3, metterà il push.default ad upstream e imposterà Sublime Text come l’editore di default per il messaggio di commit (fate attenzione qui che il percorso di Sublime Text sia anche da voi come nel file, altrimenti correggetelo)

A questo punto non vi resta che chiudere e riaprire il terminale e navigare in una cartella che sia un repository git.

Ecco qua!

 

Si lo so, l’interfaccia grafica ci vizia un po’, ma avere anche una riga di comando tutta personalizzata non è male 😉

Git bash environment on Mac OSX

TimeMachine Local Snapshot

Intanto se non sapete cosa sono i “local snapshot” andate a leggere qui.

MacOSX TimeMachine non esegue i backup solamente sul disco esterno, ma fintantoché non ha fatto il backup (ripeto all’ultimo), ad intervalli regolari, tiene un local snapshot in locale, “rubando” spazio al nostro prezioso Macintosh HD! 🙂

Bene, se volete non farli più occorre:

Aprite un terminale.
Digitate il comando: 

sudo tmutil disablelocal

Inserire la password di amministratore (se richiesta).
Riavviare il Mac.

Disabilitando i “local snapshot” tutti gli snapshot presi fino a questo momento saranno cancellati.

TimeMachine Local Snapshot

Visualizzare i file nascosti in Mac OSX

mac_osx

 

Aprite il terminale e digitare

defaults write com.apple.finder AppleShowAllFiles YES

Premete invio.

Poi rilanciate il finder cliccando con il pulsante destro + tasto option e scegliendo “rilancia (relaunch)”.

Per nascondere nuovamente i file nascosti, sempre da terminale

defaults write com.apple.finder AppleShowAllFiles NO
Visualizzare i file nascosti in Mac OSX

Visualizzare i file nascosti su Mac Osx

Da terminale lanciare

defaults write com.apple.finder AppleShowAllFiles YES

E riavviare la “Finder app” cliccando ‘Alt’+pulsante destro sull’icona nel dock e scegliere “Relaunch” (o Riavvia se avete la lingua Italiana).

relunch_finder

Per ripristinare il default:

defaults write com.apple.finder AppleShowAllFiles NO

e rilanciare nuovamente il finder.

Visualizzare i file nascosti su Mac Osx

The missing Package Manager for OS X: Homebrew

Essendo un utilizzatore sia di Linux che di OSX e utilizzando molto la riga di comando, a volte mi sono trovato in difficoltà su Mac per la mancanza di un package manager fino a quando non ho scoperto Homebrew!

Dateci un’occhiata!

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Homebrew è più intuitivo di MacPorts.

The missing Package Manager for OS X: Homebrew

Backup sdcard Raspberry Pi

Questa guida insegna come fare il backup e un eventuale ripristino della sdcard del sistema operativo del proprio Raspberry Pi tramite Mac OSX.

BACKUP:
Inseriamo l’sdcard nel nostro Mac e apriamo il Terminale.
Per prima cosa controlliamo che la scheda sdcard sia stata riconosciuta con il comando

diskutil list
/dev/disk0
#:                       TYPE NAME                    SIZE       IDENTIFIER
0:      GUID_partition_scheme                        *121.3 GB   disk0
1:                        EFI EFI                     209.7 MB   disk0s1
2:                  Apple_HFS Macintosh HD            75.0 GB    disk0s2
3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
4:       Microsoft Basic Data BOOTCAMP                45.5 GB    disk0s4
/dev/disk1
#:                       TYPE NAME                    SIZE       IDENTIFIER
0:     FDisk_partition_scheme                        *4.0 GB     disk1
1:                 DOS_FAT_32 NO NAME                 78.6 MB    disk1s1
2:                 Linux_Swap                         255.9 MB   disk1s2
3:                      Linux                         3.7 GB     disk1s3
/dev/disk2
#:                       TYPE NAME                    SIZE       IDENTIFIER
0:     FDisk_partition_scheme                        *1.0 TB     disk2
1:               Windows_NTFS Elements                1.0 TB     disk2s1

La nostra sdcard è stata vista ed è montata sotto il volume /dev/disk. Andiamo quindi a fare l’unmount del device con il comando

diskutil unmountDisk /dev/disk1

Una volta fatto l’unmount del volume andiamo ad eseguire un disk dump  con il comando dd e mettiamo tutto in pipe con gzip in modo da creare un archivio compresso. In questo caso l’ho messo nel volume /Volumes/Elements (un hd western digital usb) all’interno della directory /raspi/ chiamando l’archivio con il nome image_20141130.gz
NOTA: se bs=4m non dovesse funzionare (da errore) provare con bs=4M.

sudo dd bs=4m if=/dev/disk1 | gzip > /Volumes/Elements/raspi/image_20141130.gz
959+1 records in
959+1 records out
4025483264 bytes transferred in 1691.089930 secs (2380408 bytes/sec)

Aspettiamo il termine del comando e avremo il nostro file image_20141130.gz pronto per essere archiviato al sicuro.

RESTORE
Per fare il restore invece andiamo ad inserire sempre la nostra sdcard all’interno del nostro MAC e ne facciamo sempre l’unmount con il comando

diskutil unmountDisk /dev/disk1

Lanciamo quindi il comando per decomprimere l’archivio e mettiamo tutto in pipe con il comando disk dump (dd) questa volta dall’archivio verso l’sdcard.

gzip -dc /Volumes/Elements/raspi/image_20141130.gz | sudo dd bs=4m of=/dev/disk1

A questo punto al termine del comando avremo nella nostra sdcard il ripristino del sistema operativo del nostro Raspberry Pi relativo all’archivio gzip selezionato.

Se vi si presenta il messaggio:

dd: /dev/disk1: Permission Denied

allora dovete formattare la scheda SD:

Fabios-MacBook-Air:~ shadowsheep$ diskutil unmount /dev/disk1
disk1 was already unmounted or it has a partitioning scheme so use “diskutil unmountDisk” instead
Fabios-MacBook-Air:~ shadowsheep$ diskutil unmountDisk /dev/disk1
Unmount of all volumes on disk1 was successful
Fabios-MacBook-Air:~ shadowsheep$ diskutil partitionDisk /dev/disk1 1 MBR “Free Space” “%noformat%” 100%
Started partitioning on disk1
Unmounting disk
Creating the partition map
Waiting for the disks to reappear
Finished partitioning on disk1
/dev/disk1
#: TYPE NAME SIZE IDENTIFIER
0: *31.0 GB disk1
Fabios-MacBook-Air:~ shadowsheep$

Mi raccomando, fate in modo che il vostro Mac o PC non vada in sospensione durante le copie altrimenti il comando potrebbe non terminare correttamente! 🙂

Screen Shot 2015-03-27 at 14.51.36

Ripristinate poi la configurazione come meglio credete al termine del backup o del ripristino.

Istruzioni dettagliate per installare la prima volta una immagine sull’SD del vostro Raspberry Pi le potete trovare direttamente sul sito raspberry.org!

Backup sdcard Raspberry Pi