giovedì 21 giugno 2012

FileMaker Pro: Limitare l'accesso al record

In ufficio mi è arrivata una richiesta particolare e specifica. Dato un DB FileMaker Pro, fare in modo che gli utenti di dominio Active Directory (vedi Come configurare FileMaker Server per il SSO su Microsoft Active Directory) potessero accedervi via IWP (Istant Web Publishing), limitando la possibilità di modifica ad un solo record specifico dell'utente.

FileMaker ha una gestione degli account e privilegi molto potente e completa, ma nulla che possa far controllare l'accesso ai record. Probabilmente perché i record non sono elementi di definizione della base dati. Per realizzare tale caratteristica ho quindi proceduto nel seguente modo:

Appunti OOP: Cause di riprogettazione

A cosa stare attenti quando si progettano delle classi al fine di evitare di trovarsi nei guai successivamente:

  1. Creare oggetti specificando in modo esplicito una classe.
    Il problema consiste nel legare il progetto ad una specifica implementazione di una classe piuttosto che ad una interfaccia. Quindi, dovendo cambiare per una qualche ragione la classe soggetta a istanza è obbligo modificare tutti i punti in cui sono creati gli oggetti di tale classe e codice del client, qualora l'interfaccia (intesa come metodi pubblici esposti dalla classe) della nuova classe differisca dalla vecchia. 

lunedì 11 giugno 2012

Calcolo delle competizioni senza ripetizioni con massimo riposo - La Patch (Parte2/2)

E' vero che l'algoritmo consente il massimo riposo, ma tale riposo è garantito solo per la prima squadra estratta dalla sequenza. La seconda è scelta partendo dalla più, fino alla meno riposata, purché non abbia ancora giocato una partita con la prima estratta. Man mano che le partite si esauriscono esiste la possibilità che una squadra si trovi a dover competere in partite adiacenti. Nella maggior parte dei casi tale anomalia non si verifica, e quando si verifica  presenta una o due ricorrenze nella sequenza delle partite.
Esempio di anomalia a 6 squadre

martedì 5 giugno 2012

Calcolo delle competizioni senza ripetizioni con massimo riposo (Parte1/2)

Curiosando su un forum mi è capitato d'imbattermi in un quesito simpatico (demo soluzione con codice visionabile). Si chiedeva come calcolare l'ordine degli incontri/partite giocate su un solo campo e in una sola giornata permettendo alle squadre/concorrenti di riposare il più possibile tra un incontro e l'altro.

Non conoscendo una soluzione, ho pensato bene di prendere carta e matita e iniziare a cercare un metodo manuale per risolvere il problema. Ho quindi stilato l'elenco degli incontri necessari nel caso di 6 squadre ottenendo:
Elenco di tutte le possibili partite a 6 squadre