I miei dispositivi

Comincio con una premessa: mi piace cambiare e provare sempre strumenti nuovi sia per il mio lavoro principale che per la programmazione: una passione che in qualche caso si incrocia con il mio lavoro.

Solitamente il mio setup prevede: un macbook (in questo momento utilizzo un air con processore M1, prima avevo un Pro da 16 pollici), un PC Desktop con Windows (il mio principale PC lavorativo), un iPad (in questo momento ho un Pro da 11 pollici prima generazione), un notebook con Linux (solitamente utilizzo Ubuntu con l’ultima release disponibile anche se ora sono molto incuriosto da Elementary Os e da Pop!_OS). Quest’ultimo pc è quello che sostituisco più di frequente perchè normalmente sono pc usati che rivendo quando trovo qualcosa che mi piace di più e perchè qualche volta lo sostituisco con macchine virtuali installate su un vecchio server aziendale dismesso dove ho installato PROXMOX come hypervisor. Fino a poco tempo avevo anche una macchina virtuale Windows 10 su un server aziendale con hypervisor VMWARE da utilizzare da remoto. Ora ho configurato un semplice sistema domotico che mi permette tra le altre cose di accendere da remoto il mio Pc Desktop in ufficio a cui accedere con la VPN aziendale da qualsiasi altro dispositivo.

La cosa che cerco di realizzare è sempre l’intercambiabilità tra sistemi in modo che posso fare (quasi) qualsiasi cosa con ognuno dei dispositivi che utilizzo.

I software per la navigazione

Come dicevo il mio scopo è quello di poter utilizzare tutti i dispositivi in modo intercambiabile. Uno strumento indispensabile è il browser. Quale usare? All’inizio preferivo utilizzare lo stesso browser ovunque così da delegare a questo la gestione di preferiti e password (insieme ad un file su una cartella condivisa). Questo sistema però crea un problema: spesso ogni sistema ha il browser ideale. Su Windows mi trovavo bene con chrome mentre ora preferisco edge. Su Linux sicuramente firefox è il più performante mentre su MAC safari è il più veloce (soprattutto nel mio attuale mac con M1). Senza considerare poi che alcuni servizi funzionano meglio su alcuni browser (alcuni servizi aziendali funzionano solamente su chrome o su internet explorer). Quindi ora ho scelto di installare su ciascun sistema i browser disponibili in modo da poter verificare la risposta dei siti e portali che programmo sui diversi sistemi. Quindi, a seconda della disponibilità nella singola piattaforma, installo: chrome, edge, firefox e safari.

Per i preferiti utilizzo start.me che permette di creare una pagina iniziale con i bookmarks suddivisi anche tra diverse tab. Ho utilizzato la versione gratuita per diverso tempo per passare alla versione completa in occasione di una promozione.

Per le password utilizzo lastpass. Ne ho provati diversi e questo era quello che dava la versione gratuita più completa. In questo caso sono dovuto passare alla versione a pagamento con le recenti limitazioni al numero di dispositivi introdotte per il servizio gratuito. Una volta provato il sistema di gesione della password è molto difficile rinunciare alla sua comodità. In più aumenta la sicurezza visto che la scelta di password complesse non è più un problema.

I software per la programmazione

Il primo software da considerare è il terminale. Su Linux e Mac il terminale è sempre presente. Su Mac utilizzo anche iTerm 2 che permette una forte personalizzazione con oh-my-ZSH. In questo articolo trovi un ottimo tutorial per la personalizzazione: iTerm2 e oh-my-zsh. Su Windows preferisco una terminale linux like e utilizzo git bash. Su windows abilito anche WSL2.

Per la gestione e condivisione dei progetti di programmazione tra tutti i dispositivi utilizzo quasi esclusivamente GIT.

Come editor di sviluppo installo sempre VSCODE e Sublime Text (e Notepad++ dove disponibile). Quello che al momento utilizzo principalmente è VSCODE con alcune estensioni come docker, Laravel Extension Pack, MySQL, Material Icon Theme, … e qualche altra estensione per toml, .env, javascript, php, css, emmet, …

Altro software indispensabile è docker (e Vagrant anche se ultimamente non utilizzo più Homestead per lo sviluppo con Laravel).

Un discorso a parte va fatto per l’ambiente di sviluppo locale che permette di eseguire applicazioni Php e Laravel. Anche in questo caso ho provato molti sistemi LAMP, WAMP, MAMP, … o ambienti più complessi utilizzando container docker; anche adesso ho generalmente più sistemi installati. Però con Laravel utilizzo quasi esclusivamente SAIL presentato con laravel 8 che si basa su containers docker e rende l’ambiente molto semplice da gestire. Su Windows utilizzo invece principalmente Laragon: super semplice e potente.

I dati

Per i progetti di programmazione, come già detto, utilizzo GIT.

Per tutti gli altri dati utilizzo servizi cloud come Dropbox, Google drive e Onedrive. In questo momento, avendo un account aziendale di office365 ,il mio software principale è onedrive sia con il client per i dispositivi in cui è disponibile sia con accesso via web (per Linux).

I software indispensabili

Gli altri software che installo sempre sono: * Office: word, excel, powerpoint, outlook - office365 mi permette di installare tutte le applicazioni desktop su più piattaforme (su Linux utilizzo le webapp). * Gimp - per l’elaborazione delle immagini. Il mio utilizzo è basico. * Notion - da quando ho scoperto questa applicazione per la gestione della produttività ho spostato tutto quì: agenda, appunti, progetti, note, … ancora è gratuita con un ottimo di livello di funzioni disponibili * Teams - utilizzata per tutta la messaggistica aziendale * Zoom - per le videoconferenze insieme a meet * OpenOffice e LibreOffice - installo sempre anche un sistema di “office” free. Su Mac utilizzo anche Pages, Numbers, Keynotes. * NordVPN - per la sicurezza in mobilità una VPN è, secondo me, fondamentale. Al momento ho l’abbonamento a questo servizio. In più installo il client per il collegamento alla VPN aziendale * Lastpass - per la gestione delle password (come app e/o come estensione dei browser) * Microsoft Desktop remoto - su Linux, a seconda della distro, utilizzo un sistema RDP alternativo * Sistema gestionale aziendale * EXTRA: Adobe Cloud - non è una indispensabile ma da un paio di anni ho un abbonamento ad adobe cloud che mi permette di utilizzare le app desktop (sui sistemi supportati) come Photoshop, Illustrator, Acrobat DC, InDesign, … . L’applicazione che utilizzo maggiormente è Acrobat DC soprattutto per lavoro, per la modifica di documentazione aziendale.

Conclusione

Naturalmente i diversi dispositivi che utilizzo hanno installati diversi altri software che utilizzo per scopi particolari o che semplicemente ho installato per provare. Cerco di mantenere sempre i sistemi il più puliti possibili disinstallando i programmi che non utilizzo. Qualche volta però mi scappa la mano e se la situazione non è più gestibile, faccio un backup e riparto da zero.

Le configurazioni sopra descritte sono quelle di partenza quando configuro un nuovo terminale. Da li poi ciascuno prende una sua strada a seconda anche dell’utilizzo specifico: solo lavoro, solo personale, lavoro e personale, svago, …