<br><br><div class="gmail_quote">Il giorno 07 marzo 2011 13:57, Clauz <span dir="ltr"><<a href="mailto:clauz@ninux.org">clauz@ninux.org</a>></span> ha scritto:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On 03/07/2011 11:42 AM, Claudio wrote:<br>
> Il 07 marzo 2011 11:38, Clauz <<a href="mailto:clauz@ninux.org">clauz@ninux.org</a>> ha scritto:<br>
>> Pensandoci: se usassimo un database testuale potremmo anche usare git (o<br>
>> mercurial) come backend...<br>
><br>
> esplicita meglio la tua idea, come faresti? dettagli architetturali plz<br>
<br>
</div>Innanzitutto si potrebbero (o anche no) implementare gli utenti, con<br>
differenti permessi: tutti possono vedere la history, magari con diff<br>
tra revisioni, ma solo gli admin possono fare i revert.<br>
<br>
Ho in mente una cosa tipo questa:<br>
<a href="http://battlemesh.org/BattleMeshV4?action=info" target="_blank">http://battlemesh.org/BattleMeshV4?action=info</a><br>
<br></blockquote><div><br></div><div>Diciamo che è possibilissimo. Solo che non capisco a cosa serva ora se siamo solo pochi developer, certo approntarlo ora evita il casino dopo, comunque non sono contrario, solo da convincere perché non riesco a capire fino in fondo l'utilità.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
Con git:<br>
<br>
Sotto vengono fatte chiamate a git (diff, log, etc) parsate e presentate<br>
agli utenti.<br>
<br>
Drawback: per fare questa cosa serve un database dei nodi su file<br>
testuale, rinunciando a mysql o postgres.<br>
<br>
<br>
Senza git:<br>
<br>
C'e' un modo nativo di 'versionare' la tabella di un database? So che<br>
postgresql di fatto sotto tiene traccia delle versioni [0] (e, scopro<br>
ora da wikipedia, anche mysql!) ma non credo che siano accessibili<br>
all'utente del database...<br>
<br>
Se no si fa una nuova tabella con la lista di operazioni effettuate<br>
sulla mappa:<br>
<br>
operations (timestamp, node_id, user, op_type, op_params)<br>
<br>
- timestamp e user sono momento e utente (o indirizzo IP) che effettua<br>
l'operazione<br>
- node_id e' l'id del nodo coinvolto nell'operazione<br>
- op_type puo' essere: insert, delete, edit_type, edit_location, edit_ip<br>
- op_params e' un campo il cui significato varia a seconda del tipo di<br>
operazione (hai presente assembler? :)) per cui, nel caso di:<br>
   - 'insert' dentro op_params ci va null (tutti i dati del nodo stanno<br>
nella tabella dei nodi)<br>
   - 'delete' dentro op_params ci va null, ma bisogna fare in modo che<br>
il nodo non venga effettivamente cancellato dalla tabella dei nodi ma<br>
solo marcato come cancellato (impostando il tipo di nodo a -1 per esempio)<br>
   - 'edit_type' dentro op_params ci vanno il tipo di nodo vecchio ed il<br>
tipo di nodo nuovo, separati da punto e virgola<br>
   - 'edit_location' dentro op_params ci va: old_lat,old_lng,old_alt;<br>
new_lat,new_lng,new_alt (si capisce?)<br>
   - 'edit_ip' dentro op_params ci mettiamo: ip_vecchio; ip_nuovo<br>
<br></blockquote><div><br></div><div>Queste operazioni "da history" sono realizzabilissime e senza sbattersi tanto. So già come fare. Giovedì ve le illustro, così mi dici Caluz se ho capito bene la tua idea.</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
P.S. in realta' i database relazionali, soprattutto in ambito web, sanno<br>
un po' di vecchio se confrontati con roba come couchdb [1], ma la curva<br>
di apprendimento e' piuttosto ripida...<br>
<br></blockquote><div><br></div><div>Passare ad un No-SQL DB quando vuoi, ho pronto tutto quello che serve ! </div><div><br></div><div>In più al codemotion ho visto anche qualcosa di nuovo e quasi pronto, solo che non so se realizzabile in PHP.</div>
<div><br></div></div>Giorgio<br clear="all"><br>-- <br><div>Il saggio coltiva Linux, perché sà che Window$ si pianta da solo !</div><div><br></div><div><div>“To iterate is human, to recurse divine.” (L. Peter Deutsch)</div>
</div><br>