Le categorie: Qual'è la linea di demarcazione?


Questa pagina ha una gerarchia - Pagina madre:Il g 6 e il regolamento

Home Forum Il g 6 e il regolamento Le categorie: Qual'è la linea di demarcazione?

Questo argomento contiene 62 risposte, ha 9 partecipanti, ed è stato aggiornato da stegemma stegemma 3 anni, 2 mesi fa.

Stai vedendo 15 articoli - dal 1 a 15 (di 63 totali)
  • Autore
    Articoli
  • #3203
    Lissandrello Luca
    Lissandrello Luca
    Moderatore

    Una delle classificazioni dei programmi di scacchi è quella che li divide in originali, derivati e cloni.

    Abbiamo un regolamento che ci permette di capire se un programma specifico è stato copiato o meno da un’altro.
    Considerando che un programma originale è un programma interamente scritto dal suo autore o dai suoi autori risulta chiaro che se il programma Pippo ha il 50% di codice copiato pari pari da Pluto, è ovvio che non è originale.
    Prendiamo in esame il caso Vitruvius, tale programma è nato da un codice sorgente non scritto dall’autore, quindi originale non è. Gli autori, però non hanno solo copiato il codice (come la licenza glielo permetteva), ma lo hanno evoluto modificandone l’approccio (a livello di database) la tipologia di gioco (cercando di renderlo simile al gioco umano) e quant’altro. A causa di tali modifiche di codice, hanno reso tale programma molto differente dall’originale, anzi forse lo hanno reso quasi più originale dell’originale stesso. Tale software ha partecipato (e vinto) all’ultimo IOSC tra la categoria ‘free’ (derivati).
    Prendiamo un’altro caso ancora e poi faccio la domanda…
    Caiozz di Carlo Pivotto è stato definito un clone in passato (di conseguenza lo trovate tra i cloni nella pagina delle categorie… dal menu Documentazione\Categorie) è un clone perché il codice sorgente è uguale a quello di Fruit.

    Chiarito a grandi linee quali sono le categorie dei chess engines la domanda è: vogliamo definire le linee di demarcazione tra l’una e l’altra?

    LL

    #3205

    lucaNaddei
    Membro

    Secondo me un programmatore che prende un programma open source e lo modifica completamente fino a che nemmeno una riga è uguale all’originale rimane comunque un clone.

    Detto questo per me sono programmi originali solo quelli che hanno una “genesi”  che versione dopo versione ne dimostri lo sviluppo. Tutto il resto è fuffa.

    Lo so, la cosa è piuttosto drastica, ma casualmente c’azzecca al 99,99% dei casi.

     

    LucaN

    #3206
    Lissandrello Luca
    Lissandrello Luca
    Moderatore

    Io non sono completamente d’accordo.
    Prima faccio un po’ un escursus per farci capire anche da chi la vive più da scacchista che da programmatore e che non è ovviamente aggiornato sullo stato dell’arte.

    Da un po’ di tempo a questa parte vi erano due categorie ben distinte:  i programmi originali e i cloni.
    L’ICGA (International Computer Games Association) ha assunto una chiara posizione verso i cloni.
    Tale tipologia di programmi non può essere accettata perché assolutamente deleteria verso quello che è innovazione, verso il lavoro di tanti programmatori originali e verso una equa competizione tra le forze in campo.
    Qui sul gsei, in accordo con la posizione di David Levy (presidente dell’ICGA) tendiamo a non coinvolgere nei tornei tali programmi.

    Vi sono alcuni programmatori che mettono a disposizione il proprio codice sul web attraverso varie forme di licenza. Fondamentalmente lo fanno per permettere l’evoluzione del progetto da parte di programmatori da tutto il mondo.
    Queste forme di distribuzione hanno permesso lo sviluppo ad esempio di Firefox, Android e di tanti programmi che, alla fine risultano in molti casi più veloci, stabili e potenti delle controparti commerciali.
    L’open source in particolare ha dato un grande impulso quindi all’innovazione e i benefici per l’utilizzatore finale sono tanti.
    Nel campo dei chess engines alcuni progetti si sono evoluti attraverso questa forma. E’ giusto chiamare tali progetti ‘cloni’? Certamente no, se ne rispettano i termini di licenza e ne modificano sensibilmente il codice.
    La categoria alla quale quindi dovrebbero far parte è quella dei derivati che, ricordiamolo, non esisterebbero in assenza degli originali.
    I derivati, attraverso la gestione attuale del gsei sono gestiti nella categoria ‘free’, di conseguenza possono partecipare ai tornei e vincere il premio di categoria.

    Come si fa a capire se un programma è originale o derivato?
    Quanto segue è il mio punto di vista…
    Qui sul gsei ci basiamo sui sorgenti in ‘dubbio’, non sulla genesi degli stessi.
    Se Watkins dice che un sorgente risulta al 50 % uguale a quello di un’altro, perdipiù non dichiarato, il programmatore non risulterà avere diritto a chiamare il proprio programma originale, qualunque innovazione abbia implementato nel suo rimanente 50%.
    Nel caso specifico tale programma lo definirei derivato e il programmatore semplicemente non avrà diritto alla partecipazione ai tornei del gsei.

    Io direi quindi di ‘sanzionare’ un determinato partecipante che non dichiara l’utilizzo di codice altrui attraverso l’esclusione dai tornei del gsei.
    La dichiarazione anticipata dei pezzettini rilevanti o meno investirebbe, per me, molta importanza.
    Io, non ho mai nascosto l’utilizzo del libro di aperture di Beowulf (lo trovate scritto nel readme di Neurone e nel file stesso). Vogliamo capire se Neurone, a fronte di tale ‘pezzettino’ è ancora da considerarsi originale? Bene, i miei sorgenti e tutto quanto saranno inviati a Watkins e sarà lui a giudicare.
    In qualunque caso, al massimo Neurone andrà a far parte dei derivati e bon. Nessun problema, parteciperà in quella categoria.
    Se un programma è privato o commerciale, basta che l’autore lo pubblicizzi per come è stato creato, a me basterebbe avere quelle informazioni per trarre un giudizio e, nel caso di dubbi, c’è sempre il technical consultant, scelto apposta.
    Un programmatore non vuole inviare il codice sorgente a Watkins/non accetta queste regole? Nessun problema, gioca tra i ‘free’ (caso Equinox).

    Insomma accettiamo tutti in una categoria od un’altra (non è una punizione giocare tra i ‘free’), basta che i programmatori giochino a carte scoperte, altrimenti fuori dai nostri tornei.

    Che dite?
    Bye!
    LL

    LL

    #3208

    ok, quindi un programmatore che giochi tra gli originali può avere dei micropezzi di codice copiato basta che lo dica?

    e allora, quanto micro devono essere?

    #3210

    Secondo me se prendi dei pezzi di codice abbastanza corti e’ quasi certo che trovi delle parti uguali. In quanti modi diversi puoi serializzare una bitboard? Essenzialmente e’ un ciclo while, con il trucchetto garantito dall’aritmetica in complemento a 2. Difficile farlo diverso, IMHO, e stiamo parlando di 3 righe di codice. Diverso e’ il caso della funzione che fa la ricerca ricorsiva (AlfaBeta, PVSearch, etc.): questa avra’ delle somiglianze (perche’ usa alfabeta, essenzialmente) ma avra’ un sacco di cose diverse, perche’ io e te implementeremo tagli, riduzioni, null-moves etc. in maniera completamente diversa (soprattutto perche’ le nostre strutture dati, etc. saranno diverse, ma non soltanto). E questa e’ una differenza macroscopica. Ma, per dire, copiare un array da un punto all’altro non e’ che ammetta tanto spazio alla creativita’…

    Poi l’origine del motore (diciamo la sua genesi) dovrebbe essere documentabile dall’autore: io non sono neanche tanto per la versione “punitiva” (ci hai provato e ti hanno sgamato? allora fuori dal nostro orizzonte); diciamo che non me ne frega niente se il tizio poi si “accomoda” nella categoria dei free. L’importante IMHO e’ il deterrente.

    Riguardo a quello che dice Luca Naddei, condivido abbastanza, ma non so dove mettere il “limite”: come dicevo tempo fa a qualcuno, se Stockfish volesse iscriversi a un torneo con regolamento g6, che si fa? E’ un derivato legittimissimo di Glaurung, ma pur sempre un derivato. Secondo logica non potrebbe partecipare tra i programmi “Originali”. Se pero’ il programma viene scritto da capo, ma prendendo (magari adattandoli) pezzi di codice, bisogna mettere un limite esplicito che non si presti ad interpretazioni: senza questo limite diventa rapidamente un caos. Per capire, Luca N., il tuo punto di vista, se uno scrive un programma da zero e pero’ usa dei pezzettini di codice di un altro programma per te e’ originale (visto che avra’ le sue versioni sperabilmente progressivamente migliori, e la sua storia di sviluppo)? Dobbiamo mettere bene questa cosa nero su bianco perche’ e’ fondamentale.

    bye^2,     mr

    #3216
    Lissandrello Luca
    Lissandrello Luca
    Moderatore

    @Mauro: non sono d’accordo sul tuo deterrente; così si accomunano gente che è stata chiara sin dall’inizio (come quelli di Vitruvius) con gente che ha copiato il codice e che ha cercato di proporsi come originali. Per me occorre, oltre a tenere ben separate le due categorie, anche parificarle, non penalizzando nessuna delle due.

    La mia comunque era una proposta, se riusciamo a stabilire i limiti, ancora meglio! E’ solo che più ci penso e più mi sembra un’utopia.

     

     

    LL

    #3217

    Se per categorie intendi “Originali” e “Free” sai che sono d’accordo che debbano essere “parallele”.

    Ma onestamente (e del tutto IMHO) mi appassiona poco la differenza tra chi partecipa da subito nei “Free”, e chi ci viene “mandato” perche’ non rispetta le caratteristiche che deve avere un “Originale”; se giochi nei “Free” non c’e’ bisogno di dichiarare niente, sei “Free” perche’ non ti va di accettare i vincoli della categoria “Originali”: il perche’ sono affari tuoi, visto che non facciamo alcun controllo, tranne quelli standard che vietano il gioco da remoto, o gli interventi non autorizzati dell’operatore, per esempio, che valgono per entrambe le categorie; se giochi negli “Originali” invece accetti quei vincoli aggiuntivi, se li violi (per qualunque motivo, volontario oppure no) non mi sembra necessario fare un granche’: tra l’altro secondo me noi dovremmo incentivare i software originali in Italia, e i loro autori, ad uscire allo scoperto, sapendo di essere tutelati nel loro diritto di giocare “ad armi pari” contro altri programmi scritti nelle loro medesime condizioni (insomma, “armi pari” si fa per dire 🙂 ). Se uno gioca nei “Free” gia’ lo sa che invece in linea di principio giochera’ contro la “scatola chiusa”, che e’ piu’ o meno il prezzo della liberta’ 🙂

    bye^2,     mr

    #3295
    stegemma
    stegemma
    Moderatore

    Chissà, forse, in linea teorica, si potrebbe definire originale un software scritto da zero (e questo è ovvio). Un derivato è un software che per scriverlo si è partiti da un altro software e lo si è modificato in modo da farlo giocare meglio. Un clone è tutto il resto, ovvero: anche se sei partito da un software open source e l’hai cambiato in peggio => è un clone (e fai anche al figura del c….lione). Se gioca meglio dell’originale (vedi Vitruvius) => è un derivato.

    In questo modo si incentiva lo sviluppo di software originali o, per lo meno, lo studio e l’implementazione di nuove tecniche. Ci sarebbe un’altra categoria, quella dei Frankenstein, in cui si sono prese parti da questo e parti da quell’altro software… si sono messe assieme e si ottiene qualcosa di migliore di tutti i software scopiazzati. Sarebbe un derivato multiplo… forse anche più difficile da scrivere di un software originale… ma di questi obbrobri non ne conosco.

    Ah beh, poi c’è Satana, che è originale per definizione 😉

    #3309

    Administrator
    Moderatore

    Aggancio qui, dato che contestualmente mi sembra più appropriato, quanto commentato in un’altra pagina:

    —————————————————————————————————————

    mauro.riccardi:

    Il mio punto di vista (visto che ho avuto parte anche io nella stesura dell’attuale regolamento) e’ che quel regolamento e’ un punto di partenza. Vale a dire: indietro non si torna. E per quanto mi riguarda, quest’anno e’ andata cosi’, ma per il futuro io personalmente mi arruolo nel fronte dell’intransigenza: o quel regolamento (con la doppia suddivisione), o niente. Per cui mi puo’ andare bene la proposta di Stefano di fare due tornei separati (compatibile col regolamento), ma nemmeno un centimetro indietro (giusto coach? ;-) ).
    Riguardo al torneo “diffuso” per il CIPS la ritengo una iniziativa da valutare. Su due piedi non mi viene altro da dire, ma certamente pensiamoci.

    bye^2, mr

    —————————————————————————————————————

    Lissandrello Luca:

    :-) Ci puoi scommettere

    —————————————————————————————————————

    stegemma:

    Dobbiamo comunque trovare un compromesso per il discorso “sorgenti”. Io vorrei partecipare come “originale” ma non dare i sorgenti ad alcuno… c’è una soluzione? Del resto, di Rybka si è scoperto la derivazione solo dall’ex e, senza avere a disposizione i sorgenti…

    —————————————————————————————————————

    Lissandrello Luca:

    Beh… per Rybka ci son voluti anni, con il controllo dei sorgenti Watkins ci metterà un mese al massimo.
    Per la visione dei sorgenti dubito che a qualcuno venga il dubbio sull’originalità dei tuoi programmi … perchè questo astio?
    Nell’ipotesi remota, i tuoi sorgenti verrebbero presi dall’arbitro, girati a Mark, quindi cancellati dopo le verifiche. Considera che pure Andrea era disponibilissimo, seppur Chiron fosse prima privato poi commerciale, a inviare i sorgenti a chi di competenza.

    —————————————————————————————————————

    stegemma:

    Mah… sarà una mia paranoia, quella di non dare i sorgenti. Bisogna anche considerare che basterebbe il modo di giocare dei miei programmi, per escludere al 100% che siano cloni di qualunque altro. C’è anche un piccolo problema tecnico: i miei software si basano anche su librerie in C++ che sono il frutto di quasi vent’anni di lavoro. Nulla di trascendentale ma quanto basta per non volerle rendere pubbliche (gestione stringhe, collection, db custom, parser di formule…). Tra l’altro, buona parte di esse vengono usate da clienti importanti, con i quali ho un vincolo di riservatezza (si parla di industrie meccaniche che usano il db custom per proteggere dati riservati di configurazione macchine). Insomma, se volessi inviare i sorgenti a Mark, dovrei togliere queste librerie. Non sono essenziali, per l’engine, ma senza di esse i programmi non sarebbero nemmeno compilabili. L’ambiente sul Mac, ad esempio, consta di circa 30 Mb di librerie di base, in C++, oltre a quelle specifiche dell’interfaccia in wxWidgets, da me realizzate ed usate anche in altri software commerciali, di tutt’altro tipo. Anche solo estrapolando la parte del chess angine (che è già in una libreria parte, ovviamente) non si avrebbe la certezza che il programma che gioca sia lo stesso che Mark analizza, perché non potrebbe compilarne una versione esattamente uguale.

    Ci deve essere, insomma, un altro modo per garantire l’originalità di un software… o forse no, non c’è?

    —————————————————————————————————————

    mauro.riccardi:

    Secondo me un altro modo non c’e’.
    In compenso poiche’ non ti serve il 100% delle tue librerie per far funzionare un motore, puoi per esempio linkarlo contro una versione ridotta delle librerie, in modo che si possa fare il controllo.
    Oppure semplicemente giocare nei “Free”, che *non* e’ una scelta da stigmatizzare.
    Come ho detto prima uno puo’ avere i suoi motivi per non dare i sorgenti a chicchessia, e di conseguenza giocare nei Free: scelta legittima.

    Riguardo al pericolo di “fuga di segreto industriale”, faccio notare che oggigiorno esistono gia’ strumenti per il reverse engeneering degli eseguibili, quindi per lo stesso motivo non dovresti far mettere le mani nemmeno sull’eseguibile. Soprattutto se tali segreti valgono tanti soldi: maggiore e’ il valore, maggiore e’ il possibile guadagno di un possibile cracker, e maggiore sara’ l’investimento in termini di lavoro e tempo che questi impieghera’ per violare quei segreti.

    Il tutto ovviamente IMHO :-)

    bye^2, mr

    —————————————————————————————————————

    Le faq sono nel menu principale, sotto Documentazione! 😉

    #3310
    stegemma
    stegemma
    Moderatore

    Gli exe della parte riservata sono ovviamente già in giro per il mondo (li usano dall’America del Nord all’Australia), quindi non è questo il problema. Io comunque suggerirei due livelli di analisi: se dal gioco e dalla storia del singolo programma/programmatore è chiaro che non si tratta di un clone o di un derivato, non serve il controllo sui sorgenti. Certo, uno potrebbe fare il furbo… ma verrebbe comunque prima o poi sputtanato a livello internazionale e dovrebbe bastare (visto che molti di noi sono del mestiere e non se lo potrebbero permettere).

    #3313
    Lissandrello Luca
    Lissandrello Luca
    Moderatore

    Allora, scrivo solo per razionalizzare meglio la problematica, dato che sono un poco gnugnu  😆
    Correggetemi quindi se sbaglio:
    Se io basassi la collocazione del tuo programma, Satana, in una delle due categorie (originali o derivati) sia con la mia proposta che con quella di Mauro tu saresti un programma appartenente alla categoria ‘free’. Potresti essere un programma originale non appena ti troveresti quantomeno nella condizione di poter inviare i sorgenti alla verifica di Mark.

    La prima domanda che mi viene da fare è per Stefano:
    Ma scusami, quanto ti ci vuole per farti ex novo quelle funzioni che utilizzi nelle librerie esterne destro Satana?

    Qualche domanda per Mauro…
    Secondo la tua idea (genesi) Esaminiamo per ora una serie di casi: Tu come ti comporti se:
    Chess engine A 0.0.0.1 partecipa come originale. Nulla da dichiarare (elo 3000) … nasce un sospetto. Tu che fai?
    e se…
    Chess engine A 30.0.0.0 partecipa come originale. Genesi originale, già verificato. Dichiara di aver copiato i bonus per la posizione dei pezzi sulla scacchiera. Tu che fai?

    Una domandina (tanto per fare un po’ di casino) 🙂  per Edoardo.
    Tu come la vedi? Proposte?
    Una riflessione:
    La ‘creazione’ di altre categorie potrebbe, secondo me portare a problematiche particolari; tenderei a semplificare in questo momento, se possibile.

    Una certezza:
    Mi dispiacerebbe veramente se alla fine Satana dovesse esser costretto a partecipare tra i ‘free’ pur essendo originale, però il punto è che non è possibile dire che un programma è originale solo perchè il programmatore è originale, ma soltanto se non sorgono dubbi sull’originalità (con o senza verifiche).
    Bye!
    LL

    LL

    #3314

    beh, i programmatori sono sempre original; per ora la pecora Dolly non ha ancora imparato a scrivere codice 😆

    un programmatore-clone che scrive un programma identico al programmatore originale porrebbe notevoli questioni filosofiche ed etiche…

    #3315
    Lissandrello Luca
    Lissandrello Luca
    Moderatore

    beh, i programmatori sono sempre original; per ora la pecora Dolly non ha ancora imparato a scrivere codice 

    Ok, ma non possiamo escludere l’ipotesi, seppur remota… metti caso che i Vitruviani stravolgono Vitruvius fino a farlo diventare originale, vogliono partecipare al torneo come originali. A quel punto, se Mark non riconosce nemmeno una riga di Ippolit o chicchessia, secondo me sarebbe corretto (giusto?) considerarlo originale.

    E’ comunque un’altra questione, ma se siamo tutti d’accordo sin d’ora io proverei metterei il punto fine a questa faccenda e continuerei a valutare la migliore soluzione per la collocazione di quei programmi che sono in bilico tra ‘originali’ e ‘free’.

    LL

    #3316
    stegemma
    stegemma
    Moderatore

    Il problema è che il torneo degli originali viene ormai visto come il torneo di serie B, semplicemente perché nella categoria free finiscono per giocare i più forti. Questa è l’impressione che ho avuto a Roma, dove, tra l’altro, si è notata anche una gran confusione creata dal fatto di avere quasi più categorie che partecipanti 😉

    A questo punto, comunque si decida di definire le due categorie, si rischia comunque di dover giocare un solo torneo. Non è una mia scelta, non mi piace questa situazione, io eliminerei cloni e derivati da ogni competizione… ma ci si deve adeguare. O si gioca il CIPS in modo “alternativo” o si gioca solo lo IOCSC (fin che Sgrò avrà la pazienza di ospitarci alle varie forme di “Giocando con i Re”).

    #3317
    Lissandrello Luca
    Lissandrello Luca
    Moderatore

    Sono d’accordo, io aggiungerei comunque una formulazione di un cips alternativo da proporre a Sgrò (che è una persona indubbiamente aperta al dialogo), nel contesto della sua manifestazione, se poi non ci si trova d’accordo andremo avanti da soli (e ritengo che saremo in grado di farlo).

    LL

Stai vedendo 15 articoli - dal 1 a 15 (di 63 totali)

Devi essere loggato per rispondere a questa discussione.

© 2017 G 6 Tutti i diritti riservati - Buon divertimento!

By continuing to use the site, you agree to the use of cookies. more information

Questo sito utilizza i cookie per fonire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o clicchi su "Accetta" permetti al loro utilizzo.

Chiudi