Info:

twitter

Ultimi commenti: Comment feed

Tags:

Sponsor:

Archivio 2018:

Mag Feb Gen

Archivio 2017:

Dic Nov Ott Mag Apr Mar Feb Gen

Archivio 2016:

Dic Nov Ott Ago Mag Mar Feb Gen

Archivio 2015:

Nov Ott Set Mar Gen

Archivio 2014:

Dic Nov Ott Set Lug Giu Mag Apr Gen

Archivio 2013:

Dic Nov Set Ago Lug Giu Mag Apr Feb Gen

Archivio 2012:

Dic Nov Ott Set Ago Giu Mag Apr Mar Feb Gen

Archivio 2011:

Dic Nov Ott Set Ago Lug Giu Mag Apr Mar Feb Gen

Archivio 2010:

Dic Nov Ott Set Ago Lug Giu Mag Apr Mar Feb Gen

Archivio 2009:

Dic Nov Ott Set Ago Lug Giu Mag Apr Mar Feb Gen

Archivio 2008:

Dic Nov Ott Set Ago Lug Giu Mag Apr Mar Feb Gen

Archivio 2007:

Dic Nov Ott Set Ago Lug Giu Mag Apr Mar Feb Gen

Archivio 2006:

Dic Nov Ott Set Ago Lug Giu Mag Apr Mar Feb Gen
Tribal Knowledge

Qui in Intentional il modello di sviluppo è abbastanza flessibile. Però ogni mattina c’è un meeting in cui ognuno racconta quello che ha fatto il giorno precedente e quello che farà nelle successive ore lavorative. Nei miei primi meeting mi sembrava di essere sbarcato su un altro pianeta: oltre allo slang tipico aziendale, c’era da assorbire uno strato abbastanza spesso di notazione ungherese.

Durante uno di questi meeting ho ascoltato per la prima volta le parole tribal knowledge per descrivere un insieme di conoscenze tramandato per via di esperienza lavorativa di gruppo, magari tramite striminzita documentazione scritta.

Era un concetto che nel tempo ho inconsciamente assimilato e già conoscevo e a cui veniva per la prima volta associata una definizione pseudo-formale. La tribal knowledge esiste ovunque ma è estremamente preponderante nei progetti software, secondo una visione estremamente personale della cosa.

Personalmente è il motivo per cui, il rilascio di software tramite codice sorgente, è irrilevante rispetto alle metriche di qualità. Chi ha a disposizione codice sorgente può chiaramente modificarlo, ma molto difficilmente migliorarlo senza assorbire la tribal knowledge necessaria laddove le modifiche da apportare non siano estremamente semplici. TK fatta di “se cambi questo parametro vai ad incidere su questo fattore che non è assolutamente ovvio, in quanto abbiamo fatto delle prove e scoperto che”.

Bottomline: avere il codice sorgente è senz’altro un valore in più, ma non si dovrebbe barattare per nessun’altra qualità del software che si va ad usare.

-quack

Pubblicato lunedì 22 aprile 2013 alle 10:20 PM - 0 commenti so far
Archiviato in: Codice

Cercare numeri reali

einstein[1]Soluzione pratica ad un problema comune. È la seconda volta che si manifesta in meno di due anni e avrei pensato che la soluzione a mio dire più pratica di tutte fosse anche la più intuibile. A guardare le facce ogni volta che la propongo direi di no.

Il problema: cercare e visualizzare tutte le righe (di una tabella, lista, contenitore, ecc.) contenenti valori in virgola mobile. Ovvero: se l’utente cerca “2.5” il valore 2.4998 dovrebbe essere “accettato”?

Soluzione: usare i principi della notazione scientifica. Ovvero convertire:
(X == 2.5) in (2.45 < X <= 2.55); similmente (X == 2.50) in (2.4995 < X <= 2.505) e
(X <= 2.5) in ( X <= 2.55). Lasciare ( X < 2.5) così come è e agire simmetricamente per il verso opposto.

Ora spero nel premio Nobel per il parsing.

-quack

Pubblicato martedì 6 novembre 2012 alle 1:09 AM - 2 commenti so far
Archiviato in: Codice

Congruenze

Piccole grandi formule interessanti. Da giovane ero in grado di calcolare la prima grazie ad un aiuto mnemonico per la parte più difficile relativa al mese e semplificando il calcolo limitandolo al secolo allora in corso e già passato. Raccolte qui per un piacere puramente estetico.

La congruenza di Zeller:

h = \left(q + \left\lfloor\frac{13(m+1)}{5}\right\rfloor + K + \left\lfloor\frac{K}{4}\right\rfloor + \left\lfloor\frac{J}{4}\right\rfloor - 2J\right) \mod 7,

(Analisi)

La luna nuova:

d = 5.597661 + 29.5305888610 \times N + (102.026 \times 10^{-12})\times N^2

(Spiegazione)

Formula di Oudin:

image

(spiegazione)

-quack

Pubblicato lunedì 4 giugno 2012 alle 5:46 AM - 0 commenti so far
Archiviato in: Codice

LunedìQuìz–serie 2012 #2

Implementare la seguente funzione:

bool SumExists(int[] data, int sum)

che restituisce true se esistono due elementi nell’array data la cui somma è sum e definirne la complessita in notazione O.

-quack

P.S. titolo leggermente alterato per arginare l’eventuale ondata spam

Pubblicato lunedì 20 febbraio 2012 alle 6:05 PM - 11 commenti so far
Archiviato in: Codice

Lunedì quiz - serie 2012 #1

Dato un albero binario (vedasi esempio figura)

image

si implementi la funzione:

TrovaAntenatoComune(node root, node first, node second)

che restituisce l’antenato comune più “vicino” ai due nodi o sollevi un’eccezione se uno dei due nodi non è raggiungibile dalla radice.

Esempio:

TrovaAntenatoComune(A, D, I) = B
TrovaAntenatoComune(A, P, F) = E

-quack

Pubblicato martedì 7 febbraio 2012 alle 2:51 AM - 18 commenti so far
Archiviato in: Codice