Mondi su mondi, sistemi di sistemi.

Org mode: le cose che approfondirò

Thursday, November 11th, 2010

Eccoci all’ultima pun­tata della serie dedi­cata a Org!

Nel post pre­ce­dente accen­navo alle cose che mi pia­ce­rebbe appro­fon­dire. Ecco qual­che dettaglio.

Esportare i docu­menti di Org

In diverse occa­sioni ho comin­ciato ad usare l’esportazione. Ho pro­vato i for­mati prin­ci­pali (testo, HTML e PDF) con buoni risul­tati. So che sem­bra una cosa da poco, ma se penso a quanto tempo ho dedi­cato in pas­sato per tro­vare una solu­zione decente dovrei fare i salti di gioia.

Non che abbia qual­cosa con­tro pro­grammi come Word, Pages od OpenOffice, cerco però di tenere il numero di stru­menti al minimo pos­si­bile e, se pos­si­bile, avere un for­mato comune o almeno facil­mente mani­po­la­bile1.

La cosa fun­ziona bene a suf­fi­cienza da farmi acca­rez­zare l’idea di but­tare WordPress e pas­sare a un sistema basato su file. Un giorno, forse…

Org per la programmazione

Se usiamo Emacs2 per il codice sor­gente, Org è uti­lis­simo già solo per il fatto di poter col­le­gare diret­ta­mente i todo con il punto pre­ciso del codice3, che è esat­ta­mente il modo in cui lo uso adesso. Ma vor­rei esplo­rare altre possibilità.

Prima di tutto è pos­si­bile inse­rire diret­ta­mente del codice in un docu­mento di Org e – cosa molto comoda – pos­siamo edi­tare il fram­mento di codice in un buf­fer dedi­cato, in modo tra­spa­rente e con tutte la faci­li­ta­zioni spe­ci­fi­che per il lin­guag­gio usato in quel frammento.

Questo blocco di codice può essere trat­tato in diversi modi: può essere trat­tato come esem­pio let­te­rale; può essere espor­tato il risul­tato della sua valu­ta­zione; pos­sono essere espor­tate entrambe le cose o, infine, nes­suna delle due.

A que­sto punto, siamo pra­ti­ca­mente dalle parti del lite­rate pro­gram­ming, che rimane sem­pre una que­stione che mi affa­scina assai.

Prima di Org, la cosa più vicina all’ideale che ho incon­trato è Scribble ma lavora solo con Racket4 e, per quanto mi possa pia­cere, non è rea­li­stico pen­sare che si usi solo un lin­guag­gio in un pro­getto web: biso­gna poter gestire anche JavaScript, SQL e HTML, a meno di gene­rarli tutti.

Org approc­cia la que­stione in modo neces­sa­ria­mente meno sofi­sti­cato, trat­tando i fram­menti di codice al pari di tutti gli altri sistemi per il lite­rate pro­gram­ming, ovvero, come sem­plice testo. Questo signi­fica che non sap­piamo se il sor­gente che sarà assem­blato è sin­tat­ti­ca­mente valido fino a quando non verrà com­pi­lato o eseguito.

I van­taggi, però, sono grandi e sono sem­pre quelli che mi hanno fatto pas­sare a que­sto ambiente: inte­gra­zione, fles­si­bi­lità ed effi­cienza. Per ora mi sono limi­tato a gio­carci un po’, con fram­menti di codice qua e là ma alla prima occa­sione lo testerò più seriamente.

Se siete arri­vati a leg­ger fin qui, allora apprez­zete Org: che io sap­pia, non esi­ste miglior esem­pio di ciò che si può fare con Emacs.

Nelle pun­tate precedenti

  1. Per lo stesso motivo mi viene la ten­ta­zione di abban­do­nare Mail, che è un pro­gramma che uso in modo abba­stanza basico. Non ho biso­gno di fea­tu­res par­ti­co­lari e credo anzi che avrei solo da gua­da­gnare migrando ad Emacs.
  2. E cosa, altri­menti?
  3. credo che anche Eclipse abbia stru­menti simili, anche se fun­zio­nano con una logica inver­tita, rac­co­gliendo le cose da fare in base a com­menti nel codice.
  4. Una ver­sione di Scheme

Org: cos’è cambiato dopo tre mesi di utilizzo

Thursday, October 28th, 2010

Siamo quasi giunti alla fine di que­sta car­rel­lata su Org. In vista della chiu­sura volevo accen­nare ai cam­bia­menti che ha por­tato l’uso di que­sto sistema in sosti­tu­zione ad OmniFocus.

Le cose da fare e le cose collegate

A grandi linee il mio modo di gestire i todo è rima­sto simile a prima. Certo, adesso il sistema è molto più fles­si­bile, pre­ciso e non tor­ne­rei più indie­tro, ma non ha cam­biato molto il modo di affron­tare le cose da fare.

Con Org è però molto più facile pas­sare senza solu­zione di con­ti­nuità dal brain­stor­ming alla pia­ni­fi­ca­zione, dal pren­dere appunti allo scri­vere docu­men­ta­zione. A seconda del con­te­sto un’outline può rap­pre­sen­tare: la strut­tura di un docu­mento d’analisi o una lista delle cose da fare o anche essere tutte e due le cose con­tem­po­ra­nea­mente o posso sce­gliere di farle con­vi­vere all’interno dello stesso documento.

Metamorfosi dei file di progetto

Per que­sto motivo, alcuni dei file che un paio di mesi fa erano nati come pro­getti si stanno tra­sfor­mando len­ta­mente in dos­sier che riguar­dano più il cliente che il sin­golo pro­getto. Per ora è un aspetto mar­gi­nale ma credo che diven­terà più impor­tante con l’andar del tempo.

Addio “pro­gram­ma­zione”?

Ho invece quasi com­ple­ta­mente abban­do­nato la pro­gram­ma­zione delle cose da fare. È un fatto piut­to­sto iro­nico per­ché una delle cose che mi man­ca­vano in Omnifocus era quella di poter riem­pire in modo semiau­to­ma­tico una gior­nata in base al tempo sti­mato per le diverse azioni.

Adesso che con Org avrei gli stru­menti per fare qual­cosa di simile, non ne sento più il biso­gno. Sì, cerco comun­que di sti­mare il tempo neces­sa­rio a fare qual­cosa ma solo per con­fron­tarlo a con­sun­tivo. Scelgo le cose da fare in base al momento; alcune forse riman­gono più indie­tro di altre – su que­sto vor­rei essere meno appros­si­ma­tivo – ma nel com­plesso la mag­giore flui­dità non mi dispiace affatto.

Ho invece rico­min­ciato ad usare le sca­denze, anche se in un modo forse diverso dal solito. Ho preso l’abitudine di segnare la sca­denza – e non la data dell’evento – agli appun­ta­menti, in modo da vederli “arri­vare” con qual­che giorno di anticipo.

Attualmente uso la data di pro­gram­ma­zione solo per i com­piti che si ripetono.

La review settimanale

Anche la review set­ti­ma­nale si è un po’ sem­pli­fi­cata. Da una parte non devo più pia­ni­fi­care det­ta­glia­ta­mente la set­ti­mana che viene; dall’altra tendo ad aggiun­gere le cose da fare senza aspet­tare il fine set­ti­mana per deci­dere cosa farne1.

Dato che l’appetito vien man­giando, mi va già stretto il sem­plice con­teg­gio delle ore lavo­rate durante la set­ti­mana. Vorrei stu­diare qual­che modo per estrarre le infor­ma­zioni sulle atti­vità e farne qual­che con­si­de­ra­zione pseudo-statistica; tanto per vedere l’andamento del tempo dedi­cato ai vari pro­getti. Ma ne par­le­remo più avanti.

Nelle pun­tate precedenti

Per chi si fosse sin­to­niz­zato solo ora:

  1. Ovviamente non è che cambi molto aggiun­gere un todo oggi o fra due giorni. Credo però che que­sto possa por­tare un giorno a un ulte­riore snel­li­mento di tutta la pro­ce­dura per­ché alcune ope­ra­zioni, rese più veloci, pos­sono anche essere fatte tutte i giorni e non a cadenza set­ti­ma­nale.

L’agenda di Org

Thursday, October 14th, 2010

Come ho già detto, Org si basa su dei sem­plici file di testo, sud­di­visi con i cri­teri che più ci aggra­dano, ma non ho ancora spie­gato come sia pos­si­bile otte­nere una vista d’insieme di que­sti file1.

Tutto sott’occhio

Questa vista d’insieme esi­ste ed è la cosid­detta agenda, che rac­co­glie diversi tipi di rias­sunti, in particolare:

  • un’agenda vera e pro­pria, che mostra le cose da fare nel periodo di tempo considerato;
  • un’elenco dei todo, che mostra tutti i punti in qual­che modo aperti, senza tenere in con­si­de­ra­zione la data;
  • una vista fil­tra­bile in base a diversi cri­teri come i tag, lo stato dei todo o anche una ricerca full-text;
  • una time­line, sia gene­rale che per un sin­golo file;
  • una vista dei pro­getti bloccati;
  • infine, non poteva man­care la pos­si­bi­lità di defi­nire delle viste personalizzate.

Non voglio appro­fon­dire tutti que­sti aspetti: sarebbe troppo lungo e forse non molto inte­res­sante; inol­tre non uso – ancora? – delle viste per­so­na­liz­zate, per cui non avrei sug­ge­ri­menti par­ti­co­lari. Mi inte­ressa solo fare qual­che con­fronto con OmniFocus.

Modalità con­te­sto vs l’agenda

Omnifocus usa la moda­lità con­te­sto per pre­sen­tare la lista delle cose da fare2. Complice anche la loro imple­men­ta­zione essen­ziale3, i todo pos­sono essere pre­senti solo come da fare o come già fatti.

Dall’altra parte, visto che l’agenda di Org mette a dispo­si­zione delle viste basate su le parole chiave dei todo, diventa sem­pli­cis­simo fil­trare velo­ce­mente e in modo molto pre­ciso le cose che vogliamo vedere.

Risulta anche molto più natu­rale mani­po­lare il loro stato. Un solo esem­pio: con OmniFocus, per essere sicuro di chiu­dere le ultime cose prima di stac­care, facevo in modo che alcune azioni risul­tas­sero dispo­ni­bili solo verso sera. Adesso con Org le fac­cio par­tire quando voglio e le chiudo quando penso sia oppor­tuno, cosa uti­lis­sima in com­bi­na­zione con la regi­stra­zione del tempo dedi­cato a un certo compito.

Altri usi, altri van­taggi dell’agenda

Ci sono altre due situa­zioni in cui l’agenda vince facil­mente il con­fronto con OmniFocus e sono la vista dell’agenda in com­bi­na­zione con le regi­stra­zioni delle atti­vità e l’elenco dei pro­getti bloccati.

Le regi­stra­zioni delle atti­vità per­met­tono di vedere la suc­ces­sione delle varie cose fatte durante il giorno (ma anche per un periodo di tempo più ampio) minuto per minuto. Cosa uti­lis­sima quando devo fare un reso­conto det­ta­gliato della gior­nata4.

L’elenco dei pro­getti bloc­cati riguarda tutte quelle voci che non hanno un’azione da com­piere defi­nita. Di default, Org con­si­dera bloc­cati i pro­getti che non hanno almeno una voce clas­si­fi­cata come TODO.

Nel mio caso, ho solo aggiunto qual­che altra clas­si­fi­ca­zione di todo da igno­rare, anche se, dal mio punto di vista, un pro­getto bloc­cato non è solo quello che non è stato pia­ni­fi­cato ma anche quello che è “fermo”, vuoi per­ché in attesa di infor­ma­zioni da qual­cuno, vuoi per­ché non sono riu­scito a por­tarlo avanti.

Forse è pos­si­bile gene­rare un’agenda per­so­na­liz­zata con que­sta infor­ma­zioni; dovrò approfondire.

Nelle pun­tate precedenti

Per chi si fosse sin­to­niz­zato solo ora:

  1. Anche que­sto aspetto è lasciato ai gusti per­so­nali. Venendo da OmniFocus, per me era una cosa che ci doveva essere. Tuttavia, posso benis­simo imma­gi­narmi usi di Org senza l’agenda.
  2. È l’idea fon­da­men­tale del GTD: dopo averle pia­ni­fi­cate, fil­triamo le azioni in base al con­te­sto in modo da con­cen­trarci su quelle che pos­siamo fare in quel momento. Esempio clas­sico: è inu­tile che abbia davanti a me l’elenco delle tele­fo­nate se in quel momento non posso farle.
  3. I todo con Org
  4. Ovviamente, le cose da fare vanno prima regi­strate ed even­tual­mente pia­ni­fi­cate. È in parte un cir­colo vir­tuoso: più rie­sco ad essere pre­ciso nel tener trac­cia di quello che fac­cio, più sono sti­mo­lato a pia­ni­fi­carlo in modo scru­po­loso.

I todo con Org

Monday, October 11th, 2010

È pas­sato un po’ di tempo dall’ultima volta in cui ho par­lato di Org. Nel frat­tempo, ho com­ple­tato la migra­zione da OmniFocus senza grossi pro­blemi o pentimenti.

I todo

Quando ho intro­dotto Org mi sono dimen­ti­cato di par­lare della gestione dei todo; forse per­ché allora non avevo ancora appro­fon­dito la que­stione. Cercherò di rime­diare ora.

Anche sotto que­sto aspetto, que­ste due appli­ca­zioni sono agli anti­podi: con OmniFocus un task o è da fare o è fatto; con Org, come sem­pre, c’è l’imbarazzo della scelta! Gli stati dei todo non si limi­tano a “da fare / fatto” ma pos­sono essere quanti vogliamo e pos­sono rap­pre­sen­tare sia degli stati che dei cri­teri di classificazione.

Todo come indi­ca­tori di stato

Nel primo caso, usando le parole chiave1 come indi­ca­tori di stato, è pos­si­bile dei creare dei veri e pro­pri flussi di lavoro, ad es. posso defi­nirne uno come (sequence "TODO" "STARTED" "|" "DONE" "CANCELLED") il cui signi­fi­cato è: gli stati TODO e STARTED sono quelli che neces­si­tano un’azione da parte nostra; DONE e CANCELLED, sepa­rati dal primo gruppo tra­mite la pipe, sono gli stati che indi­cano la chiusura.

Todo come classificatori

Il secondo modo di usare le parole chiave dei todo è come stru­mento di clas­si­fi­ca­zione. Ad es. (type "io" "tu" | "DONE") indica che una certa cosa la puoi fare tu o la posso fare io; un’altro esem­pio che non neces­sita di spie­ga­zioni potrebbe essere: (type "casa" "lavoro" | "DONE").

La pos­si­bi­lità di avere più stati e con un embrione di flusso di lavoro rende molto più sem­plice gestire delle atti­vità che hanno biso­gno di essere por­tate avanti a più riprese durante la gior­nata. Ma per fare avere un pano­rama più com­pleto su que­sto aspetto dovremo par­lare dell’agenda, cosa che faremo prossimamente.

Nelle pun­tate precedenti

Per chi si fosse sin­to­niz­zato solo ora:

  1. Dato che Org è basato su dei file di testo, i todo non esi­stono come campo sé stante ma sono clas­si­fi­cati come tali se ini­ziano con una delle parole chiave defi­nite come todo, che di default sono: TODO e DONE.

Come uso Org

Tuesday, September 7th, 2010

Il fun­zio­na­mento di Org ruota intorno a dei sem­plici file di testo, la cui orga­niz­za­zione è com­ple­ta­mente libera: ognuno si costrui­sce il giu­sto mix in base ai pro­pri gusti e alle pro­prie esi­genze. Per ora, il mio sistema è più o meno questo.

Organizzazione dei file

Venendo da OmniFocus ho creato un file .org per quasi ogni pro­getto, tranne che per le cosette di rou­tine che sono riu­nite in un unico file chia­mato main.org. In aggiunta, c’è un file inbox.org che serve per rac­co­gliere velo­ce­mente le cose da fare e che rivedo rego­lar­mente durante la giornata.

All’interno dei file .org

Ognuno di que­sti file, inbox.org escluso, con­tiene almeno due voci di primo livello: INBOX e Main. INBOX serve a sem­pli­fi­care lo smi­sta­mento delle cose da fare dall’inbox.org: quando rivedo que­sto file, ogni voce viene smi­stata al pro­getto di appar­te­nenza e poi apro il file .org del pro­getto per la rifi­ni­tura, piaz­zan­dola al punto desi­de­rato della sezione Main, che rac­co­glie l’outline vera e pro­pria del progetto.

Non sono sod­di­sfatto al 100% di que­sto sistema: è troppo mac­chi­noso. Un modo per snel­lire la pro­ce­dura potrebbe essere quello di eli­mi­nare tout court inbox.org, magari in com­bi­na­zione con l’agenda, che vedremo in seguito.

Nelle pun­tate precedenti

Per chi si fosse sin­to­niz­zato solo ora:

Cosa manca a Org?

Monday, September 6th, 2010

Dato che non esi­ste il soft­ware per­fetto è giu­sto anche vedere cosa non va con Org, ed è anche abba­stanza sem­plice: non vi piace Emacs? Odierete Org.

Opzioni, opzioni, opzioni…

Le opzioni sono ster­mi­nate. Mi vien quasi da dire che Org non è un pro­dotto finito, ma solo un semi­la­vo­rato che tocca a noi diroz­zare. Non trovo punto di snodo in cui non sia stata pre­vi­sta un’opzione1. Questo, però, più che un difetto è una carat­te­ri­stica di fondo. Se la toglies­simo spa­ri­rebbe anche il prodotto.

UX, inte­gra­zione con Mac OS X

Un po’ meno scu­sa­bile – ma sem­pre com­pren­si­bile, visto che si tratta di un major mode di Emacs – è la user expe­rience non certo raf­fi­nata. Inoltre, dato che Emacs gira su un sacco di sistemi ope­ra­tivi diversi, l’integrazione con Mac OS X non è delle migliori anche se è comun­que meglio di quello che ci si aspet­te­rebbe da un’applicazione del genere.

L’inbox

L’unica cosa di cui sento vera­mente la man­canza è la gestione dell’Inbox di Omnifocus. Se siamo in Emacs – e abbiamo con­fi­gu­rato la cosa come si deve – la cat­tura delle cose da fare è per­fetta. Se siamo in altre appli­ca­zioni, però, non abbiamo la pos­si­bi­lità di defi­nire una scor­cia­toia da tastiera uni­ver­sale per spe­dire qual­cosa nell’Inbox, come invece si fa con Omnifocus. Inoltre non ho ancora tro­vato un modo sod­di­sfa­cente di re-indirizzare gli ele­menti dall’Inbox ai pro­getti di competenza.

Se siamo dispo­sti a per­dere un po’ di tempo, pos­siamo otte­nere un risul­tato simile anche con Org ma non è una cosa per tutti. Nemmeno io mi sono ancora deciso a risol­vere il pro­blema ade­gua­ta­mente, figu­ria­moci l’utente “stan­dard”2

E l’iPhone??

L’integrazione con l’iPhone è una que­stione inte­res­sante. Esiste un’applicazione (molto fru­gale) che si sin­cro­nizza attra­verso DropBox ma non è asso­lu­ta­mente para­go­na­bile per fea­tu­res e user expe­rience ad OmniFocus per iPhone/iPad, anche per­ché sul ver­sante desk­top la sin­cro­niz­za­zione non è auto­ma­tica ma va espli­ci­ta­mente invocata.

Tuttavia, OmniFocus ha delle pre­sta­zioni agghiac­cianti, almeno con un iPhone 3G, e la prima cosa che chiedo ad un’applicazione di que­sto tipo è un tempo di rispo­sta rapido, il più rapido pos­si­bile; tutto il resto è secondario.

Se usate l’app come Inbox tem­po­ra­nea, allora vale la pena pro­varla, altri­menti non è un gran­ché. Fino ad ora l’ho usata pochissimo.

Nelle pun­tate precedenti

Per chi si fosse sin­to­niz­zato solo ora:

  1. La cosa mi fa un po’ riflet­tere visto che siamo agli anti­podi della filo­so­fia Apple.
  2. Ammesso che esi­sta.

OmniFocus e Org, pro e contro

Thursday, September 2nd, 2010

Come ho detto ieri1, ho deciso di abban­do­nare OmniFocus per pas­sare a Org. Vediamo un po’ più da vicino perché.

L’analisi sul consuntivo

Omnifocus è un per­fetto stru­mento per pia­ni­fi­care il da farsi ma è tra­gi­ca­mente ina­de­guato sulla parte con­sun­tiva. Non è pre­vi­sta la regi­stra­zione del tempo impie­gato, di con­se­guenza non posso nem­meno sapere quante ore ho lavo­rato su que­sto o su quel pro­getto oggi, que­sta set­ti­mana o que­sto mese.

Questa cosa mi ha sem­pre fatto pen­sare per­ché Omnifocus nasce come stru­mento ispi­rato al GTD2, dove ha un’importanza fon­da­men­tale il ricon­trollo set­ti­ma­nale dei pro­getti. Anche se potrei fare a meno di sapere quante ore ho speso su una certa cosa, se ce l’ho è meglio; se poi posso con­fron­tare le ore a con­sun­tivo con quelle pre­ven­ti­vate è molto meglio, anzi, fon­da­men­tale. 3

Progetti bloc­cati

Altrettanto impor­tante del vedere cosa è stato fatto è con­trol­lare se ci sono pro­getti bloc­cati. Con OmniFocus il con­cetto degli “stuck pro­jects” esi­ste, anche se è imple­men­tato in modo rigido; con Org è molto più fles­si­bile4

Contesti al computer

Anche sull’uso dei con­te­sti, un altro con­cetto deri­vato dal GTD, ho qual­che per­ples­sità. A mio parere, i con­te­sti sono uti­lis­simi per chi, al con­tra­rio di me, non è sem­pre attac­cato al com­pu­ter e ha un qual­che van­tag­gio nel defi­nire quando può fare certe azioni e non altre. Questa con­si­de­ra­zione var­rebbe sia per OmniFocus che per Org ma con quest’ultimo il costo per non usarli è nullo; con OmniFocus devo impo­stare le pre­fe­renze in modo adatto e fare a meno della “moda­lità con­te­sto” che è una delle due prin­ci­pali (l’altra è quella di pianificazione).

Con que­sto non voglio dire che la sepa­ra­zione fra pia­ni­fi­ca­zione ed ese­cu­zione non sia impor­tante, anzi, è fon­da­men­tale. Solo che non uso i con­te­sti per fil­trare le cose da fare.

  1. Addio a OmniFocus
  2. What is GTD?
  3. La cosa è ancora più curiosa in quanto OmniFocus è impa­ren­tato con OmniOutliner che uso a fasi alterne per il pri­mis­simo plan­ning e per cal­co­lare i pre­ven­tivi. Una volta finita la migra­zione da OmniFocus, penso che pas­serò anche i vari docu­menti di OmniOutliner in org mode.
  4. Anzi, come tutto quello che riguarda Org, fin troppo fles­si­bile. Ci tor­ne­remo.

Addio a OmniFocus

Wednesday, September 1st, 2010

Uso OmniFocus da quando è uscito, da tre anni, ormai ed è stato per tutto que­sto tempo lo stru­mento con cui ho orga­niz­zato pra­ti­ca­mente tutto, sia nel lavoro che fuori.

Anche se non l’ho mai con­si­de­rato per­fetto e non ho mai dige­rito la ver­sione per iPhone1, è quello che nel com­plesso era il più adatto a me.

Poi, qual­che set­ti­mana fa ho sco­perto Org, un modo di Emacs e ho deciso in tempo zero abban­do­nare OmniFocus. Nei pros­simi giorni entrerò un po’ più nel det­ta­glio sul per­ché e il per­come della deci­sione, spe­rando che possa ser­vire anche ad altri.

  1. Fra l’altro, sem­bra che la ver­sione per iPad sia ecce­zio­nale