Avete mai provato ad aprire il file dati di un’applicazione con un editor di testo? Nella migliore delle ipotesi vedremo sul video una serie incomprensibile di caratteri a cui è impossibile dare un senso. Un formato non human readable, ma che quasi certamente sarà anche interpretabile solo da quella specifica applicazione.
Un formato dati che fa eccezione è la sintassi Todo.txt, esempio notevole di formato dati che è allo stesso tempo human and machine readable. Detto in parole più semplici, se si rispettano le regole della sintassi Todo.txt è possibile annotare in modo formale delle azioni (o task), lasciandole comprensibili anche alla lettura mediante un editor di testo.
La gestione dei task è naturalmente più semplice ricorrendo a una delle applicazioni che utilizzano questo formato dati, ma l’utilizzo manuale dei dati è comunque possibile anche con un semplice blocco note.
Vediamo come funziona.
Sintassi Todo.txt, uno sguardo d’insieme
Creata dall’imprenditrice statunitense di origine italiana Gina Trapani, la sintassi ha un proprio sito dedicato. Todotxt.org contiene infatti tutto quello che serve per poter impostare e gestire il proprio file dei ToDo:
- specifica della sintassi todo.txt (con rimando al repository su GitHub);
- link ai tool per i diversi ambienti (Windows, Linux, Mac OS, Android, estensione di Chrome, …);
- suggerimenti e rimando alla community di supporto.
Lo spirito del Todo.txt si direbbe quello di essere una formalizzazione della classica lista di cose da fare che in tanti ci ritroviamo periodicamente a stilare, dopo aver provato una delle ennemila applicazioni di gestione dei task. Frustrati dalla difficoltà di trovare un’app semplice, che giri su piattaforme pc e mobili, che non costi più tempo nella gestione di quanti vantaggi organizzativi ci dia, credo che un po’ tutti siamo tornati alla lista nel file testo.
Bene, basta seguire poche regole per rendere quel file testo gestibile da semplici app per le varie piattaforme. E non serve più avere un’unica app, essendo il formato dati standard. È sufficiente avere il file dati in una locazione condivisa, esempio classico Dropbox.
Nella documentazione GitHub si trova lo schema riassuntivo della struttura dati di Todo.txt:Esploriamo i vari campi, partendo da quelli indispensabili per cominciare.
Le regole della sintassi Todo.txt
Abbastanza semplici e intuitive, sono anche facili da seguire.
Prima regola: ciascuna riga del file contiene tutte le informazioni relative a un’azione. La forma più semplice è quella che contiene solo la descrizione dell’azione:
Montare le ruote estive.
Pagare la quota condominiale.
Prenotare visita otorino.
Provare Linux Lite e Q4OS.
Per garantire una semplice gestione della lista, anche senza strumenti ad hoc, è bene che la descrizione inizi con una lettera maiuscola (Montare e non montare).
È possibile assegnare differenti priorità alle varie azioni, in modo da poterle visualizzare dalla più urgente a quella meno pressante. La priorità di un’azione si assegna ponendo, all’inizio della riga, una lettera maiuscola racchiusa tra parentesi tonde.
(B) Montare le ruote estive.
Pagare la quota condominiale.
(A) Prenotare visita otorino.
(B) Provare Linux Lite e Q4OS.
La priorità si indica con una lettera da A (massima priorità) a Z. A parità di priorità prevarrà l’ordine in cui la riga è posizionata nel file. Le azioni a cui non viene assegnata una priorità sono considerate a priorità minima.
Una volta completata un’azione, si può semplicemente eliminare la riga dal file oppure marcare con una x l’inizio della riga.
x (B) Montare le ruote estive.
Pagare la quota condominiale.
(A) Prenotare visita otorino.
(B) Provare Linux Lite Q4OS.
Regole semplici per applicazioni semplici
La logica di queste regole si può osservare semplicemente utilizzando un terminale (dos o linux): un semplice comando sort ordinerà le linee del file e sistemerà correttamente le azioni, elencando prima quelle a cui è stata assegnata una priorità, poi quelle senza e, infine, quelle terminate.
Nella schermata che segue ho utilizzato il terminale Mac OS per eseguire in sequenza i due comandi unix (o linux): cat todo.txt, che stampa il contenuto del file così come è memorizzato; cat todo.txt | sort, che ordina in senso crescente le righe del file, prima di stamparle.
Correttamente vengono elencate l’azione con priorità A, a seguire quella con priorità B, poi quella senza priorità e, infine, quella terminata e che aveva priorità A.
In Linux il comando cat sta per concatenate e si utilizza per stampare (verso il video) i file elencati, uno dopo l’altro. Cat todo.txt, quindi, stampa il contenuto del file todo.txt.
La barretta verticale “|”, anche detta pipe, è un potente comando che lega due comandi, facendo in modo che l’output del primo costituisca l’input del secondo.
Quindi: cat todo.txt | sort si traduce in: prendi il contenuto del file todo.txt, metti in ordine alfabetico le righe e mostrale a video.
Sintassi Todo.txt: contesto e progetto
Al nostro file mancano ancora alcuni elementi importanti, come l’indicazione di un progetto, cioè di un ambito in cui classificare l’azione, e di un contesto, cioè una parola chiave che ci dica come, in che occasione, o dove l’azione vada effettuata.
Per ogni azione possono essere indicati anche più progetti e più contesti, inoltre questi elementi possono essere inseriti dove si vuole, all’interno della descrizione dell’azione.
Vediamo come potrebbe arricchirsi il nostro file:
x (B) Montare le ruote estive +auto.
Pagare la quota condominiale +casa @banca.
(A) Prenotare visita otorino +salute @asl.
(B) Provare Linux Lite e Q4OS +articolo +linux @lab.
Il formato è intuitivo: +auto indica che l’azione è classificata nell’ambito auto, mentre @asl indica che per eseguire l’azione devo passare dall’Asl (in realtà, probabilmente, prenoterò da pc).
E le date?
In un file di Todo si deve poter inserire delle date. Generalmente sono tre quelle d’interesse:
- creazione del task;
- fine prevista;
- fine effettiva.
La sintassi Todo.txt ha regole piuttosto semplici per gestire le date:
- le date hanno il formato aaaa-mm-dd; questo formato standard ha il vantaggio che l’ordinamento alfabetico crescente coincide con l’ordinamento temporale crescente (2022-04-19 viene prima di 2022-05-01);
- un’azione può non avere nessuna indicazione di data;
- può essere presente la data di creazione del task, che va inserita prima della descrizione e dopo la priorità, se presente;
- se si vuole inserire la data di completamento effettivo, questa va inserita subito dopo la priorità e prima della data di creazione, che in questo caso deve essere presente;
- volendo indicare anche la data di fine prevista, si ricorrerà a un tag apposito; esempio due:2022-05-01.
I tag sono il meccanismo per inserire nella sintassi nuovi campi non inizialmente previsti.
Nota: alcuni programmi di gestione di file Todo.txt rimuovono la priorità quando l’azione viene marcata come completata. In questo caso la data di fine effettiva segue direttamente la x che marca la riga come azione completata.
Le applicazioni
Non sorprende scoprire che una delle prime applicazioni scritte per questo formato dati sia un’applicazione (linux) a linea di comando: Todo.txt CLI.
La gestione a linea di comando significa che non c’è alcuna interfaccia grafica evoluta (che consenta, ad esempio, di trascinare elementi per modificare l’ordine dei dati), ma che ogni modifica dei dati avvenga via linea di comando. Ad esempio, per aggiungere un’azione al file, occorrerà digitare qualcosa come:
add “THING I NEED TO DO +project @context”
È certamente una cosa da nerd, ma esistono anche applicazioni più evolute. Un esempio per Mac OS è TodoTxtMac. Più che un’applicazione pienamente grafica si direbbe una linea di comando evoluta, si tratta comunque di un’ottima soluzione. Un video su YouTube ne racconta il semplice funzionamento.
Ci sono naturalmente anche app per Android. Ho scelto Todo.txt for Android, la più diffusa (10.000+ download, che per un’app di nicchia non sono pochissimi). Ecco come appare il file di prova nell’app:
La sintassi Todo.txt è la mia soluzione ideale?
Difficile rispondere a questa domanda, esiste una concreta probabilità che io ritorni alla lista testuale gestita a mano, che rimane comunque la soluzione più terra-terra.
Todo.txt ha però un vantaggio indubbio su qualunque altra soluzione: anche se dovessi passare alla gestione manuale del file testo, probabilmente continuerei a rispettare le regole della sintassi e questo mi consentirebbe, in ogni momento, di tornare all’utilizzo dell’app. E non si tratterebbe di un’auto-imposizione, in fin dei conti sono regole più che ragionevoli ed efficaci.
Foto di apertura di Markus Winkler, da Pixabay.
Mi chiamo Pasquale Petrosino, radici campane, da alcuni anni sulle rive del lago di Lecco, dopo aver lungamente vissuto a Ivrea.
Ho attraversato 40 anni di tecnologia informatica, da quando progettavo hardware maneggiando i primi microprocessori, la memoria si misurava in kByte, e Ethernet era una novità fresca fresca, fino alla comparsa ed esplosione di Internet.
Tre passioni: la Tecnologia, la Matematica per diletto e le mie tre donne: la piccola Luna, Orsella e Valentina.
Potete contattarmi scrivendo a: p.petrosino@inchiostrovirtuale.it