Categorie
GNU/Linux

overGrive il client Google Drive definitivo

Si può amare o meno Google, ma non sempre la grande azienda americana ha tenuto il pinguino nella giusta considerazione. E’ questo il caso del client Google Drive, ma apparso su GNU/Linux in forma ufficiale. Gli appassionati e volenterosi sviluppatori nel campo open ha sviluppato alcuni client da linea di comando però poco pratici nell’uso comune.

OverGrive è invece un client grafico che ha nulla da invidiare a quello ufficiale di Google disponibile su Windows. Il suo utilizzo è pratico, semplice e funziona in background permettendo di sincronizzare agevolmente il proprio lavoro su cloud. Lo scotto da pagare è un codice proprietario e il costo della licenza di soli 4,99 dollari, un prezzo comunque abbordabile e giustificato dalla qualità del software. Sono inoltre supportate tutte le distribuzioni principali e tantissime lingue.

Principali caratteristiche

  • Auto Sync Google Drive to your computer
  • Auto Sync Local Files to Google Drive
  • Select Google Drive Folder
  • Select Google Drive Folders to Sync
  • Convert Google Docs to Office File Formats for offline editing
  • Convert Office Files back to Google Docs formats
  • Sync Multiple Accounts
  • Support
Categorie
GNU/Linux

Scorciatoie per Ubuntu

Launcher
Super ( Pressione ) Apre il Launcher, mostra le scorciatoie.
Alt +F1 Apre la navigazione da tastiera Launcher.
Super + Tab Cambia applicazione attraverso il Launcher.
Super +1…9 Equivale al click su un’icona dal Launcher
Super + Maiusc + 1..9 Apre una nuova finestra dell’applicazione.
Super + T Apre Cestino.

Dash
Super ( Tocco ) Apre la Dash.
Super + A Apre la Lens >> app <<
Super + F Apre la Lens >> File <<
Super + M Apre la Lens >> Musica <<
Ctrl + Tab Passa da una Lens all’altra.
Tasti freccia Spostano il focus.
Invio Apre l’elemento che fa il focus.

HUD e barra dai Menù
Alt ( tocco ) Apre HUD
Alt ( pressione ) Mostra menù dell’applicazione.
Alt + F10 Apre il menù degli indicatori
Freccia destra o sinistra Spostano il focus tra gli indicatori.

Cambio Applicazione
Alt + Tab Passa da un’applicazione all’altra.
Alt + Backslash Cambia finestra dell’applicazione in uso.
Freccia destra o sinistra Spostano il focus.

Spazi di lavoro
Super + S Mostra gli spazi di lavoro.
Ctrl +Alt +Tasti cursore Cambia spazio lavoro.
Maiusc + Ctrl +Alt+ Tas.. Sposta la finestra attiva su altro spazio lavoro.

Finestre
Super + W Mostra le finestre dello spazio di lavoro in uso.
Ctrl + Super + D Minimizza tutte le finestre.
Ctrl + Super + Su Massimizza la finestra in uso.
Ctrl + Super + Giù Ripristina o minimizza la finestra in uso.
Ctrl + Super + Sinistra o.. Massimizza parzialmente la finestra in uso.
Alt +F4 Chiede finestra in uso.
Alt + Spazio Apre il menù di accessibilità della finestra.
Ctrl + Alt +Num Mette la finestra nelle posizioni corrispondenti.
Alt + Clic Sinistro trasci.. Muove la finestra.
Alt + Clic Centrale trasci.. Ridimensiona la finestra.

Per visualizzare l’immagine dei relativi comandi al video Scrivania (Desktop) su Ubuntu 15.10 / 14.04 /12.04 LTS, basta solo premere il tasto ” Win ” sulla tastiera IT.

Categorie
GNU/Linux

Git come iniziare

git

Git è uno dei più famosi tool di controllo, insieme a CVS Mercurial. Questo programma permette di creare un repository con il proprio codice sorgente e condividerlo con altri utenti tramite hub come GitHub. Ma cosa significa condividerlo con esattezza? Con condivisione intendiamo che è possibile permettere a chiunque di leggere il nostro codice e fargli apportare delle modifiche in maniera collaborativa, senza creare conflitti e potendo sempre tornare sui propri passi, nel caso una di queste modifiche non rientrasse nei nostri piani. Permettere a più persone di lavorare su uno stesso file, però introduce notevoli problemi, come il controllo di revisione, i conflitti e molti altri aspetti. Git è sotto questo aspetto decisamente potente e permette di affrontare questi problemi con naturalezza, senza doversi sorbire grossi manuali. Rispetto a CVS, Git è un tool decentralizzato, questo significa che è possibile creare/lavorare su un repository senza essere collegati online. In pratica si può lavorare tranquillamente offline su un’isola deserta per poi collegarsi al branch principale per caricare le proprie modifiche. Decisamente comodo.

Iniziare Per creare il primo repository, si dovrà inizialmente configurare Git fornendogli alcuni dati personali:

git config --global user.name "vostro nome"
git config --global user.email "vostra email"

Ci si sposta poi nella cartella in cui si vuole creare il primo progetto e si digita il comando:

git init

In questo modo verrà creata una cartella .git in cui si terrà traccia di tutte le nostre modifiche apportate, la configurazione e molto altro. Particolare importanza riveste .git/index che contiene gli indici del nostro progetto e .git/objects per gli oggetti del database. Per aggiungere un file al nostro progetto basta scrivere:

git add nome-del-file

In questo modo verranno aggiunti i file al progetto in una zona temporanea, prima della loro effettiva inclusione che avverrà con il comando commit.

Per ottenere informazioni sullo stato del nostro progetto risultano utili questi tre comandi per visualizzare gli aggiornamenti, i messaggi o i codici identificativi dei vari commit:

git status
git log
git show

Tramite il commit si rendono effettive le modifiche apportate, inglobandole nel progetto:

git commit -m 'primo commit'

il parametro -m ‘descrizione’ aggiunge un messaggio (obbligatorio) al commit. È interessante notare come ogni commit sia identificato da un numero ID sempre diverso: infatti digitando git log si vedranno in sequenza tutti i commit effettuati, i messaggi descritti e i relativi ID identificativi. Questi numeri ID sono importanti perché in ogni momento è possibile ritornare sui propri passi, annullando le modifiche apportate con un precedente commit (se per qualche motivo le modifiche apportate da una terza persona si rivelassero in futuro errate o non di nostro gradimento). Aggiungiamo ora un nuovo file con il comando git add nome-del-file ed effettuiamo un nuovo commit (che avrà un nuovo ID). Sará possibile tornare sui propri passi (come avere una macchina del tempo in pratica) ed eliminare l’aggiunta di questo file semplicemente digitando:

git checkout id-del-commit-precedente

In questo modo si tornerà indietro nel tempo, grazie al fatto che Git memorizza ogni nostra modifica al progetto, tenenendone costantemente traccia.

Un nuovo ramo Una volta che il proprio progetto assume una connotazione stabile, diciamo quasi definitiva, è possibile spostarsi dal ramo stabile definito solitamente master per crearne uno sperimentale per esempio chiamato experimental. Per fare questo si utilizza un semplice comando:

git branch nome-del-ramo-secondario

Si viene così a creare un nuovo ramo (branch) del progetto su cui è possibile apportare nuove e profonde modifiche, senza inficiare la stabilità del progetto originale (master). La potenza di questo diversificazione sta nel fatto che in ogni momento è possibile fondere le migliorie apportate nel nuovo ramo sperimentale con quello stabile, in maniera semplice ed efficiente.

git checkout nome-del-ramo-secondario
git add nome-di-un-altro-file
git commit -a -m 'modifiche apportate al secondo ramo'
git checkout master
git merge ramo-secondario

Con questi comandi ci si è spostati sul ramo secondario (se non eravamo già li), abbiamo aggiunto un file ed effettuato il commit. Questa modifica non ha apportato nessuna variazione nel progetto master (che non conterrà alcun nuovo file), ma solo nel ramo sperimentale. Se questo nuovo file ci piace e vogliamo in futuro renderlo effettivo anche nel ramo master, basterà spostarsi sul ramo master ed effettuare il merge (fusione) come indicato nell’ultimo comando.

E i conflitti? Quando su due diversi rami vi sono file, per esempio con lo stesso nome ma con contenuti differenti, possono insorgere dei fastidiosi conflitti. In questo caso si sarà chiamati in causa per decidere quale file sia degno di far parte del progetto e quale debba essere invece scartato. Se nel nostro caso avessimo due file con lo stesso nome leggimi.txt ma con un contenuto differente, si dovrà prima di tutto comprendere quale inglobare nel progetto (ipotizziamo nel nostro caso sia quello del ramo secondario)

git checkout nome-del-ramo-secondario leggimi.txt
git commit -m 'fusione esente da conflitti'

Effettueremo perciò solo il checkout della versione presente nel ramo secondario del nostro file leggimi.txt. Quello appena affrontato è un caso molto elementare di conflitto, ma nei casi più complessi è necessario utilizzare delle strategie articolate.

Git e GitHub GitHub è uno dei servizi più utilizzati per creare dei repository dei propri progetti. Per utilizzarlo (una volta creato un account ovviamente) con Git da linea di comando è necessario inizialmente configurarlo:

git remote add origin https://github.com/nome-utente/nome-repository

Con git remote si aggiunge un indirizzo remoto definito dall’alias origin. In questo modo dando il seguente comando si “spingerà” il risultato del proprio commit verso il ramo master di origin (identificato dal nostro account su GitHub).

git push -u origin master

Risorse utili
* GitHub guida
* Git la guida tascabile
* Pro Git
* Git Wikipedia
* Ottima alternativa a GiHub (Bitbucket)

Categorie
GNU/Linux

Estrarre dati con Awk

Awk, o meglio la sua moderna implementazione Gawk, può essere definito come un linguaggio di scripting per l’elaborazione dei dati nei file di testo. L’accostamento a grep è lecito, ma awk, risulta più flessibile, potente e inevitabilmente maggiormente complesso.
Qui di seguito elencherò alcune porzioni di codice, introducendo un commento per illustrare la potenza di awk:

who | awk '{print $1, $4, $3}'

L’istruzione who visualizza gli utenti loggati, mentre il carattere pipe  concatena l’istruzione con awk. che si limita a stampare a video il primo argomento, poi il quarto e quindi il terzo dell’output prodotto da who.

L’ istruzione awk è composta sempre da due parti:

  1. la prima parte (opzionale) è un pattern da verificare. Se la verifica ha esito positivo, allora i risultati vengono processati.
  2. la seconda parte è racchiusa tra parentesi graffe e individua l’operazione da compiere.

Nel’istruzione precedente non esiste alcun pattern da verificare, quindi verranno stampati il primo, il quarto e il terzo argomento dei risultati dati dall’istruzione who.

Altre informazioni basilari nell’apprendimento di awk, sono le seguenti:

  1. l’argomento $0 indica l’intero record. Quindi senza specificare un pattern di verifica, awk risulta molto simile a grep.
  2. l’input elaborato da awk è una singola linea. Quindi a meno di specificare un carattere di separazione, per awk un record è dato da una linea.

Specificare il carattere di separazione

awk -F, '{print $1}' nomefile

Questa istruzione specifica il carattere di separazione di record con l’opzione -F seguito dal carattere (nel nostro caso, la virgola). Segue poi il campo da stampare (il primo) e il nome del file

Pattern di ricerca

ls -l | awk '$3 !~ /^root$/ {print $9, $1}'

In questo caso viene verificato un preciso pattern: viene analizzato il terzo campo di ogni riga ($3) e confrontato con il pattern root (si vedano le regex). Solo gli argomenti diversi da root verranno considerati corretti. Di questi si stamperà il nono e il primo campo.

Azione composte

awk '{out = ""; for (i = 1; i <= NF; i += 1) out = out $i "* "; print out }'

Quest’ultimo comanda aggiunge alcuni aspetti importanti:

  1. Il punto e virgola (;) permette di separa varie istruzioni consecutive, permettendo di realizzare costrutti più complessi
  2. NF individua il numero di campi in un record

In definitiva questo comando:

  1. definisce una variabile out
  2. un ciclo viene incrementato di 1 sino a quando non si raggiunge il numero di campi contenuti in un record
  3. si assegna alla variabile out il suo valore concatenato con il carattere *
  4. infine lo si stampa con il comando print

Awk è un tool estremamente complesso e duttile, e non sempre i suoi vantaggi sono tali da preferirlo a grep o cut.

cat nomefile | cut -d, -f 3-2-1

Con cat  viene letto un file e l’output reindirizzato su cut (che stampa alcune parti di una riga).

  1. il delimitatore dei campi viene impostato con -d (nel nostro caso  è la virgola)
  2. i campi da stampare vengono indicati facendoli precedere da -f
Categorie
GNU/Linux

Atom l’editor free

Atom è attualmente uno dee migliori editor disponibili, sono solo perché è free, multipiattaforma (Linux, OS X, Windows), ma soprattutto per la grande flessibilità e personalizzazione. In questo senso supera nettamente Sublime Text (altro stupendo editor che costa però 70 $), ma possiede anche dei peccati di gioventù come quello di divenire terribilmente lento con file dalle elevate dimensioni (parlo di migliaia di righe di codice).

Atom

 

Categorie
GNU/Linux

Lettere accentate con una tastiera USA/EN (americana)

Spesso chi programma preferisce un layout americano per la propria tastiera, per via della migliore accessibilità a caratteri speciali come parentesi e apostrofi. Prima o poi però capiterà di scrivere un testo e di voler utilizzare velocemente anche le lettere accentate del proprio idioma. Le lettere apostrofate, insomma vanno bene per una email, meno per scrivere il proprio curriculum. A tal proposito qui elenco due sistemi (per Ubuntu 15.10) per scrivere velocemente le lettere accentate, senza cambiare il proprio layout americano.

  1. Utilizzare il layout “USA Internazionale”, conosciuto anche come “Inglese (USA Internazionale con tasti muti”. Il layout si aggiunge andando su Preferenze->Tastiera e quindi premendo sul link Inserimento testo. Ora basterà premere sul pulsante[+] e aggiungere il layout indicato. Ora per digitare le lettere accentate basterà premere l´accento desiderato più la lettera da accentare. I due accenti sono ` (che si alla sinistra del tasto 1) e  che invece si trova alla destra di ; (punto e virgola) Questo sistema è molto comodo tranne che per utilizzare gli apostrofi (utilizzati spesso in programmazione) .
  2. Questo sistema non necessita di impostare il layout “USA Internazionale” visto nel punto precedente. Questo sistema utilizza il tasto Compose che in Ubuntu è disabilitato di default. Andate su Preferenze->Tastiera e quindi premete sul link Inserimento testo e successivamente su Impostazioni della tastiera. Sotto il menu Scorciatoie–>Digitazione apparirà la voce Tasto Compose disabilitato: premete sulla parola Disabilitato e impostate il tasto speciale a voi più comodo (io utilizzo ALTGr). Ora per digitare una lettera accentata basterà premere: Tasto speciale impostato + lettera da accentate + apostrofo. Gli apostrofi sono gli stessi visti precedentemente. Questi sono ` (che si alla sinistra del tasto 1) e  che invece si trova alla destra di ; (punto e virgola)