Category: macos

  • Cercare un file dentro un backup di Time Machine

    Time Machine è il software di backup semi-automatico incluso in MacOSX; sono recentemente passato a Time Machine su consiglio di un amico, e devo assolutamente ringraziare entrambi: Time Machine mi ha salvato in ben 2 occasioni.

    Una funzionalità che però non ho trovato intuitiva è quella di ricerca di un file/directory per name dentro gli archivi di Time Machine. Per cercare un pattern, infatti, bisogna aprire Time Machine e scrivere ciò che si sta cercando nell’apposito riquadro del Finder, e poi precedere ad utilizzare lo slider temporale per andare più avanti (o indietro) nel tempo.

  • Installare ed utilizzare Mosh (mobile-shell) su Ubuntu e MacOSX

    Per le sessioni semi-perpetue di ssh che contraddistinguono il mio setup, utilizzo una combinazione di autossh e tmux/screen (wrappato da byobu). Ultimamente ho scoperto mobile-shell (Mosh): proveniente dal MIT, si tratta di un ssh killer perché, a differenza di ssh:

    • ristabilisce automaticamente la connessione dopo un certo timeout (problema risolto in precedenza da autossh);
    • utilizza un eco locale (addio lag ssh su connessioni lente!);
    • mosh e mosh-server possono essere avviati da utenti non privilegiati
    • supporta solo UTF-8!

    Da Ubuntu 12.04, mosh è presente nei repo ufficiali di Ubuntu (per le versioni precedenti, è presente anche un ppa). Per MacOSX, si può usare compilare il pacchetto usando homebrew o scaricare il dmg già pronto dal sito di riferimento.

    Provarlo è molto semplice: supponiamo di avere un server Linux e un client MacOSX. Installatelo su Linux tramite apt-get e scaricate il pkg per MacOSX. Una volta installato, per connettersi da MacOSX ho dovuto dichiarare un locale (ho scoperto che, sfortunatamente, MacOSX non dichiara alcun locale). Per cui, controllate il locale in uso sul server remoto e dichiarate lo stesso locale su MacOSX (eventualmente modificate anche il file rc relativo alla vostra shell di riferimento):

    michele@delta:~ % locale                                             
    LANG=
    LC_COLLATE="C"
    LC_CTYPE="C"
    LC_MESSAGES="C"
    LC_MONETARY="C"
    LC_NUMERIC="C"
    LC_TIME="C"
    LC_ALL=
    michele@delta:~ % export LANG="en_US.UTF-8"
    michele@delta:~ % mosh server
  • Installare Oracle JDK Java 7 su MacOSX

    Abbiamo già visto come installare la Oracle JDK 7 su Ubuntu (e Linux), ed oggi faremo la stessa cosa su MacOSX. Su OSX il processo è molto più semplice: basta infatti scaricare il dmg (l’unico disponibile per MacOSX, ovvero quello a 64bit) dall’indirizzo ufficiale di Oracle e procedere all’installazione (system-wide).

    Dopo l’installazione, aprite le Java Preferences.app (le trovate in /Applications) e trascinate Java SE 7 in cima alla lista.

    Chiudete, aprite un Terminal.app e digitate java -version. L’output che ne ottenete dovrebbe essere quello della nuova JVM come in figura.

    A titolo informativo, la JVM viene installata in

    /Library/Java/JavaVirtualMachines/1.7.0.jdk

    Tenetelo presente, vi servirà se dovrete impostare Eclipse (o qualche altro applicativo) per recuperare correttamente la JAVA_HOME della JVM appena installata [a breve arriverà un post a riguardo].

    Se volete invece affidarvi a OpenJDK (che è la reference implementation per Java 7), esistono dei pacchetti precompilati che potrete installare scaricandoli dal sito openjdk-osx-build.

  • MacOSX Lion: un po’ di customizzazione

    OSX offre alcune opzioni “nascoste” che sono modificabili tramite linea di comando (aprite Terminal.app). Ne ho già condivisa qualcuna, ma dopo aver letto “Mac Kung Fu” e ispirandomi ad un gist, ho deciso di condividere tutte le customizzazioni di OSX che uso (dove non presente ho deciso di introdurre un commento in inglese, sulla falsariga di quanto già fatto nel gist):

    echo “Enable iTunes track notifications in the Dock”
    defaults write com.apple.dock itunes-notifications -bool true
    echo “Disable iTunes Store links in iTunes”
    defaults write com.apple.iTunes invertStoreLinks -bool YES
    echo “Disable the Ping sidebar in iTunes”
    defaults write com.apple.iTunes disablePingSidebar -bool true
    echo “Disable all the other Ping stuff in iTunes”
    defaults write com.apple.iTunes disablePing -bool true
    echo “Make ⌘ + F focus the search input in iTunes”
    defaults write com.apple.iTunes NSUserKeyEquivalents -dict-add “Target Search Field” “@F”

    echo “Disable the “reopen windows when logging back in” option”
    defaults write com.apple.Preview NSQuitAlwaysKeepsWindows -bool false
    defaults write com.apple.QuickTimePlayerX NSQuitAlwaysKeepsWindows -bool false
    defaults write com.apple.loginwindow TALLogoutSavesState -bool false
    defaults write com.apple.loginwindow LoginwindowLaunchesRelaunchApps -bool false

    echo “Enable full keyboard access for all controls (e.g. enable Tab in modal dialogs)”
    defaults write NSGlobalDomain AppleKeyboardUIMode -int 3

    echo “Show all filename extensions in Finder”
    defaults write NSGlobalDomain AppleShowAllExtensions -bool true

    echo “Show Status bar in Finder”
    defaults write com.apple.finder ShowStatusBar -bool true
    defaults write com.apple.finder PathBarRootAtHome -bool TRUE

    echo “Expand save panel by default”
    defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode -bool true
    echo “Enable Safari’s debug menu”
    defaults write com.apple.Safari IncludeInternalDebugMenu -bool true
    echo “Only use UTF-8 in Terminal.app”
    defaults write com.apple.terminal StringEncodings -array 4

    echo “Popup don’t have to steal focus”
    defaults write -g NSAutomaticWindowAnimationsEnabled -bool FALSE

    echo “Add a stack with Recent Applications/Recent items on the Dock”
    defaults write com.apple.dock persistent-others -array-add ‘{ “tile-data” = { “list-type” = 1; }; “tile-type” = “recents-tile”;}’
    echo “Show the ~/Library folder”
    chflags nohidden ~/Library
    echo “Show host info on the login screen”
    sudo defaults write /Library/Preferences/com.apple.loginwindow AdminHostInfo 1

    Dopo aver applicato queste modifiche, consiglio un riavvio della macchina.

  • RescueTime: il modo migliore per visualizzare dove “spendiamo” il nostro tempo

    RescueTime: il modo migliore per visualizzare dove “spendiamo” il nostro tempo

    Ricordarsi dove si “spende” la maggior parte del proprio tempo al computer è un’attività davvero difficile, soprattutto per chi con i computer ci lavora! Proprio per questo motivo ci viene in aiuto RescueTime: una volta installato vi verrà proposto di installare un programma che se ne starà in background e che monitorerà non invasivamente quello che fate al vostro computer, per produrre poi un report delle attività che svolgete al vostro computer, contabilizzando le ore che spendete in ogni applicazione; il tutto, automaticamente!

    Una volta installato, RescueTime vi fa alcune semplici domande per capire quali sono, a vostro giudizio, i programmi che ritenete più produttivi e quali, invece, perdite di tempo. Ogni volta che RescueTime vi invierà un report delle vostre attività, con dei semplici e chiari grafici come quello qui sopra, vi dirà se siete stati produttivi o meno proprio secondo le regole che voi stessi avete dichiarato.

    Come funziona? Dopo un po’ di investigazione, ho scoperto che RescueTime memorizza solamente il titolo dell’applicazione in foreground e per quanto tempo viene utilizzata (per il browser: anche il sito visitato). Questi sono i dati memorizzati da RescueTime, per cui, se siete preoccupati per la vostra privacy, potete decidere in autonomia se installare RescueTime.

    In generale trovo RescueTime davvero utile, proprio perché mi aiuta a capire dove spendo la maggior parte del mio tempo e, nel caso in cui le attività siano distrazioni, a potermi meglio regolare in futuro. Inoltre, funziona anche come un pratico “cronometro” per progetti: spesso mi aiuta a capire qual è l’elapsed vero di un progetto a cui sto lavorando.

    RescueTime è gratuito nella versione base per Windows, Linux e MacOSX ed offre anche una versione a pagamento che vi offre informazioni ancora più dettagliate e alcune funzionalità per restare nella “zone” bloccando le attività che vi distraggono.

  • Come mandare un segnale SIGINT (Ctrl-C) ad un programma che gira nella console di Eclipse

    Quando si sviluppa un programma che deve girare ininterrottamente nella console, non ci sono problemi se si lancia il programma da console e lo si termina tramite la più classica delle combinazioni: Ctrl-C. Ma come si termina lo stesso programma se lo si è lanciato da Eclipse?

    Si deve lanciare un segnale al processo, e più in particolare un SIGINT (interruzione): apriamo una console:

    kill -s INT pid

    o, se usiamo pkill:

    pkill -s INT <nome dell’interprete che sta runnando il programma: Java, Ruby, Python, etc.>

  • 10 cose da fare prima e dopo aver installato MacOSX Lion

    Dopo un po’ di tempo di assestamento, ho aggiornato il sistema operativo che utilizzo principalmente a MacOSX Lion 10.7 (attualmente giunto alla revision 3, 10.7.3). Visto che ho optato per un’installazione from scratch (dopo aver acquistato Lion su App Store, ho creato un DVD di backup utilizzando le innumerevoli guide di cui la rete è piena), ho dovuto riapplicare tutte le customizzazioni che ho applicato man mano che acquisivo confidenza con MacOSX. Facciamo un passo indietro: di cosa bisogna fare il backup prima di passare a Lion? Ecco alcune idee:

    • Le applicazioni installate su iTunes
    • La libreria di iTunes (audio, video, libri, audiolibri, podcast)
    • I contatti su AddressBook
    • La libreria fotografica di iPhoto (~/Pictures/) e/o di Picasa
    • Bookmarks ed estensioni di Chrome e Safari
    • Il folder dei Documenti (~/Documents)
    • Le chiavi private di ssh (~/.ssh/)
    • Una lista delle applicazioni installate (ls -l /Applications)
    • Le mail archiviate su Mail.app (~/Library/Mail)
    • Eventuali altre directory che avete creato nella vostra home (es. ~/Development)

    Una volta fatto il backup di tutte queste informazioni, possiamo avviare l’installazione di Lion. Ora, una volta ottenuta un’installazione pulita di Lion, non ci resta che re-importare tutte le nostre impostazioni e i nostri dati.

    Inoltre, avendo effettuato alcune customizzazioni, le dobbiamo riapplicare. Nel mio caso:

    • Nascondere l’icona che vi porta allo Store accanto ad ogni traccia di iTunes: defaults write com.apple.iTunes invertStoreLinks -bool YES
    • Mostrare il menu di debug in Safari: defaults write com.apple.safari IncludeDebugMenu -bool YES
    • Fare in modo che iTunes mostri una notifica sulla Dock della canzone che stiamo ascoltando: defaults write com.apple.dock itunes-notifications -bool TRUE
    • Disabilitare il restore dei documenti allo startup di Preview e QuickTime: defaults write com.apple.Preview NSQuitAlwaysKeepsWindows -bool false
      defaults write com.apple.QuickTimePlayerX NSQuitAlwaysKeepsWindows -bool false

    E abbiamo finito. Consiglio un riavvio e buon utilizzo di Lion!

  • iTunes: come ascoltare tutti i podcast senza interruzioni

    A differenza di quanto accade su iOS, iTunes (OSX) non esegue un ascolto continuo dei podcast disponibili: al termine del podcast che si sta ascoltando, bisogna manualmente fare il play del prossimo episodio. Questa limitazione si può risolvere creando una smart playlist con le seguenti caratteristiche:

    • Media kind: Podcast
    • Play count: 0

    itunes_podcast

    Il risultato è una playlist di tutti i podcast non ancora ascoltati che potremo ascoltare senza interruzioni. Ovviamente potete customizzare la lista ordinandola per data di pubblicazione, come ho fatto io nell’immagine.
  • Aprire il Finder nel path corrente (wd) dal Terminale

    Semplice ma utilissimo: se vi trovate nel terminale di OSX (o nella sua migliore alternativa), potete aprire un’istanza del Finder nella directory in cui vi trovate con il comando ‘open .’

    Questa funzionalità è molto utile specialmente su Lion, per quando dobbiamo avventurarci nelle directory Library/ e Application Support/

    osx open

    Della mia shell (zsh) e del relativo prompt (PS1) ne parleremo più avanti.

  • Apple Hardware Test con Mac OSX Lion

    Con l’uscita di Lion i supporti ottici sono diventati semi obsoleti su quasi tutti i Mac.

    Tuttavia, mi sono posto una domanda: come vengono eseguiti i diagnostics, ovvero quei tool metti a disposizione da Apple per il test del sistema se non abbiamo i DVD di installazione del sistema operativo?

    Detto, fatto: la Using Apple Hardware Test è stata aggiornata con:

    For some Apple computers that shipped with OS X Lion, if Apple Hardware Test cannot be found on the hard drive, an Internet-based version starts up instead.

    (nel mio caso, invece, ho inserito il DVD #2 di Snow Leopard e ho tenuto premuto ‘D’ al boot per lanciare i diagnostici).