Passiamo al processo con cui Modus Operandi elabora le varie situazioni.
Spiegando questo, l'utente dovrebbe essere in grado di comprendere meglio le regole alla base di una buona configurazione.
In questo post verranno analizzate i problemi comuni che possono incorrere in una configurazione che genera dei conflitti e delle anomalie.
Seguirà poi un post relativo alla configurazione di Modus Operandi sul mio Nexus One che utilizza praticamente tutti i plugin sviluppati e attualmente disponibili .
Bene, iniziamo!
Il cuore di Modus Operandi è la procedura di controllo delle Situazioni.
Regola numero uno:
l'ordine in cui compaiono le Situazioni non è necessariamente l'ordine con cui le Situazioni vengono controllate. Quest'ordine non è definibile e di conseguenza le situazioni devono essere configurate in modo da non andare in conflitto tra di loro.
Le situazioni in conflitto sono di fatto Situazioni che hanno Azioni in contrasto (per esempio attivo wifi in una situazione e lo disattivo in un altra) e hanno condizioni diverse che risultano validate contemporaneamente in un certo momento della giornata.
Regola numero due:
In caso di 2 o più Situazioni in conflitto, l'ultima situazione che viene verificata tra le 'contendenti' vince.
Aggiungo infine l'ultima regola :
Per far eseguire le Azioni di una Situazioni, tutte le Condizioni della Situazione devono essere verificate contemporaneamente (sono tutte in logica AND tra di loro)
Ecco un esempio di situazione in conflitto, che come intuibile sono assolutamente da evitare per non imbattersi in comportamenti anomali:
1) Situazione "Wifi attivo a casa":
- Condizioni
Location (Casa, Interno)
- Azioni
Wifi (Attiva)
2) Situazione "Batteria scarica":
- Condizioni
Batteria (25%, <)
- Azioni
Wifi (Disattiva)
In questo esempio si capisce che quando si è a casa e la batteria è scarica entrambe le Situazioni sono verificate ed è altrettanto semplice capire che le azioni inserite in queste situazioni sono in contrasto: infatti una situazione attiva il wifi e l'altra lo disattiva.
Questo fa si che, in modo casuale, Modus Operandi farà vincere la 1) o la 2) e quindi ogni tanto ci si trova il wifi attivo e ogni tanto lo si trova disattivo (dipendentemente da come Modus Operandi elabora le situazioni, potrebbe anche non presentarsi mai il problema perchè il modo con cui vengono processate le situazioni è, sempre per caso , come l'utente vuole).
Un modo intelligente di affrontare questo problema è capire cosa si vuole dall'applicazione.
Più si vuole automazione e più è importante creare Situazioni e configurarle avendo ben presente cosa si vuole ottenere.
Ecco il modo di ottenere una configurazione funzionante secondo le esigenze dell'esempio:
1) Situazione "Wifi attivo a casa":
2) Situazione "Batteria scarica":
- Condizioni
Batteria (25%, <)
- Azioni
Wifi (Disattiva)
In questo modo la mia Situazione 1) è vera solo se sono a casa e se ho la batteria con carica superiore a 25%.
Non potrà mai andare in conflitto con la situazione 2) che è vera solo quando la batteria ha una carica inferiore a 25%.
Di fatto, quando si decide di usare il plugin condizionale della Batteria, è bene creare una regola per quando la batteria è scarica e inserire una condizione per la batteria carica in tutte le altre situazioni, indipendentemente da quali e quante esse siano.
Un altro esempio interessante che genera anomalie è usare più locazioni geografiche in situazioni diverse, ma farlo in modo semplicistico :
1) Situazione "Wifi attivo a casa"
- Condizioni
Location (Casa, Interno)
- Azioni
Wifi (Attivo)
2) Situazione "Wifi disattivo"
- Condizioni
Location (Casa, Esterno)
- Azioni
Wifi (Disattivo)
3) Situazione "Wifi attivo a lavoro"
In questo caso, la Situazione 2) e 3) sono validate entrambe (ma sono anche in conflitto) quando sono a lavoro.
Infatti quando sono a lavoro la 2) vorrebbe disattivare il wifi (perchè non sono a casa) e la 3) vorrebbe attivarlo (perchè sono a lavoro).
La soluzione al problema è modificare così la Situazione 2)
2) Situazione "Wifi disattivo"
In questo modo la disattivazione del Wifi è fatta solo quando non sono a casa nè a lavoro (quindi durante il tragitto, risparmiando la batteria ), ma attivandola quando sono a casa o quando sono a lavoro.
Anticipo alcuni di voi con una precisazione:
Non posso creare un'unica Situazione che chiamo "Wifi attivo" e dirgli di attivarlo quando sono a lavoro e a casa (in un'unica Situazione intendo), perchè in realtà non è corretto dire "sono a lavoro e sono a casa". Non si può essere in due posti contemporaneamente e Modus Operandi lo sa . Quindi è necessario creare una Situazione per ogni luogo quando la configurazione è "Interno" (nel rispetto dell'ultima regola detta in alto).
Per la configurazione "Esterno" del plugin della geolocalizzazione invece, è vero che si può non essere a lavoro e contemporaneamente non essere a casa, quindi Modus Operandi lo gestisce in un'unica Situazione (sempre nel rispetto dell'ultima regola).
Se poi a queste situazioni si aggiunge quella della batteria scarica, ricordarsi anche di aggiungere la condizione batteria carica nelle altre situazioni .
Seguirà un post con la mia configurazione di Modus Operandi, vi invito a postare la vostra, in modo da permettere agli utenti di capire le potenzialità ed i modi di utilizzo di questa applicazione .
Enjoy!