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 46 a 60 (di 63 totali)
  • Autore
    Articoli
  • #3953
    stegemma
    stegemma
    Moderatore

    Purtroppo hai usato la parola giusta: “scoraggiare”. Tutti i casini legati ai cloni e presunti cloni stanno scoraggiando le persone dal dedicarsi all’informatica scacchistica… per dedicarsi magari alla computer chess.

    Se dobbiamo fare una regola, che sia semplice e chiara, senza tante categorie e sotto-categorie. Decidiamo una volta per tutte quale debba essere il criterio insindacabile per stabilire se un programma è originale o no. Se poi non lo è, Saddam Hussein diceva che lui non distingueva tra le lenticchie… ha fatto una brutta fine ma modo di dire arabo qui calza a pennello: non distinguiamo tra le lenticchie! Se un programma è originale gioca originalmente e non assomiglia ad altri software. Se assomiglia in modo sospetto ad un altro software => va nel mucchio delle lenticchie da buttare.

    Sennò decidiamo una buona volta che tutto è lecito e facciamo il prossimo torneo con “tutto è permesso” (del tipo: basta che respiri), compresi aiuti dall’esterno, lettura dei fondi del caffè, sedute spiritiche con Fisher…. e non sto poi tanto scherzando!!! Sarebbe l’unico modo per vedere un po’ di gente ai nostri tornei.

    #3954
    Lissandrello Luca
    Lissandrello Luca
    Moderatore

    Riprendendo parte di vecchi post cerco di rimettermi in pari 🙂

     

    Lissandrello Luca wrote:

    Se uno lo dichiara (e non sono in tanti a farlo), non ci vuol molto a testare i risultati del lavoro:

    Mauro: Hai detto la parola critica…”se”…

    Se uno non lo dichiara ricadiamo nella casistica originali e; per qualunque dubbio… sorgenti a Watkins (no sorgenti no categoria originali); se zona grigia da valutare specificatamente caso x caso

     

     Alessandro: Secondo me un clone è un software cut&paste di un altro, un derivato è un motore che dal cut&paste dell’intero codice ci lavora sopra e lo modifica.

    Sì, è così.

     

    Alessandro: Questione 2: un clone non apporta alcun beneficio alla chess programming. Non è vero: il mio motore è scritto in Ada. Se anche fosse un clone, sarebbe pur sempre un contributo visto che di programmatori Ada non ce ne sono molti. 

    Il tuo motore non può essere un clone, per la definizione prima accennata. La domanda invece potrebbe essere: ma è originale o derivato? L’appartenenza di un engine ad una categoria od un’altra non si misura in base al linguaggio utilizzato. Ti faccio due esempi… io prendo un programma open source c# , utilizzo uno dei convertitori e me lo trovo in vb net. Se confrontiamo i due programmi, noteremo un sacco di righe diverse, ma il risultato sarebbe uguale. In quel caso il programma vb.net sarebbe da considerarsi originale? Risposta: No, ovviamente. Sarebbe da considerarsi derivato? Risposta: No; non lo si è evoluto abbastanza. E’ di conseguenza un clone. I cloni generalmente non sono gpl, altrimenti sarebbero subito sgamati, di conseguenza hanno solo l’obiettivo di permettere agli autori di spacciarsi programmatori quando in realtà non ne capiscono una mazza. Il semplice fatto di utilizzare anni di programmazione altrui per vanto e spesso senza il permesso dell’autore originale, non penso sia una procedura da invogliare.

    Altro esempio: io do un’occhiata a tutti i codici sorgenti che trovo in giro, mi informo sul web per quello che mi interessa implementare, mi faccio un’idea di come organizzarmi il lavoro e scrivo il mio programma sviluppando quelle idee per come la vedo io e per quel che mi permette il linguaggio di programmazione.  Il risultato sarà originale.

    Ti faccio un’ulteriore esempio: Leggo tutto quello che è scritto in italiano in materia di CC, me ne fotto altamente. Faccio un programma in modo più diverso possibile rispetto agli standard usati. Quando vedo che ho fatto qualcosa di simile rispetto a qualcos’altro di esistente al mondo, correggo il mio programma e lo sviluppo in modo diverso. Questo programma si chiama Neurone. 🙂

     

    Alessandro: Chi non apporta benefici, secondo me, sono i software chiusi e comunque ciascuno ha il diritto di rilasciare il proprio motore nella licenza che più gli aggrada.

    Non sono d’accordo; ti faccio un paio di esempi: In ogni occasione con Mauro io mi metto sempre in modalità learning 😉 Ti assicuro che qualunque cosa dice è da incorniciare tra i quadretti della CC. Ehi, ma… il suo programma è privato!

    Un’altro esempio: Marco Grella ha creato Rinko, anche lui un engine privato. Sempre presente ai nostri tornei torinesi e agli storici CIPS, è stato lui a darmi l’idea di agevolare l’arrocco utilizzando una funzione che verifichi il coordinamento delle torri e se è presente il re tra loro o no.

    Io non ho mai avuto dubbi sull’originalità dei loro lavori.

     

     Alessandro: … L’importante è essere leali e ammettere le radici del proprio motore!

    D’accordissimo!

     

    Mauro: Comunque, per chiarire: a me di categorie ne vanno bene due, pero’ allora i derivati potranno solo gareggiare nei “Free”. Col risultato che non ci sarebbe per loro nessun incentivo a dichiarare la discendenza del loro motore. Il che non e’ che sia un male di per se’ (in fondo, chissene…) ma mette tutti nello stesso calderone: personalmente non sento la necessita’ di differenziare (tra “Free” e “Derivati”), pero’ se si vuole essere “inclusivi” si puo’ anche fare un passo in quella direzione.

    Stefano: … non distinguiamo tra le lenticchie! Se un programma è originale gioca originalmente e non assomiglia ad altri software. Se assomiglia in modo sospetto ad un altro software => va nel mucchio delle lenticchie da buttare.

    E allora avanti, a me va bene così, tanto di derivati ‘puliti’ non è che ce ne siano tantissimi (al limite se le cose cambieranno in futuro vedremo).

    Per le zone grigie ripropongo una semplice votazione collettiva tra i partecipanti attivi del gsei (e bon).

     

    Bye!

    LL

     

    LL

    #3955

    Purtroppo hai usato la parola giusta: “scoraggiare”. Tutti i casini legati ai cloni e presunti cloni stanno scoraggiando le persone dal dedicarsi all’informatica scacchistica…  

    Beh, pero’ io intendevo scoraggiare quelli che *NON* volevano scrivere un motore originale 😉

    bye^2,     mr

     

    #3956

    Mauro: Comunque, per chiarire: a me di categorie ne vanno bene due, pero’ allora i derivati potranno solo gareggiare nei “Free”. Col risultato che non ci sarebbe per loro nessun incentivo a dichiarare la discendenza del loro motore. Il che non e’ che sia un male di per se’ (in fondo, chissene…) ma mette tutti nello stesso calderone: personalmente non sento la necessita’ di differenziare (tra “Free” e “Derivati”), pero’ se si vuole essere “inclusivi” si puo’ anche fare un passo in quella direzione.

    Stefano: … non distinguiamo tra le lenticchie! Se un programma è originale gioca originalmente e non assomiglia ad altri software. Se assomiglia in modo sospetto ad un altro software => va nel mucchio delle lenticchie da buttare.

    E allora avanti, a me va bene così, tanto di derivati ‘puliti’ non è che ce ne siano tantissimi (al limite se le cose cambieranno in futuro vedremo). Per le zone grigie ripropongo una semplice votazione collettiva tra i partecipanti attivi del gsei (e bon).

    Ok, mi avete convinto, mi rimangio la proposta della categoria “Derivati”. Non e’ che ci credessi chissa’ quanto, in effetti: e’ durata poco 😉

    bye^2,     mr

     

    #3957
    Lissandrello Luca
    Lissandrello Luca
    Moderatore

    Qualcun altro vuole intervenire? … e 1… e 2… e… (eh, sennò non la finiamo più! :-))

    Bye!

    LL

    LL

    #7416
    stegemma
    stegemma
    Moderatore

    Come ho scritto sulla chat, ho litigato” un po’ con Eclipse ed i thread. Riguardo ai thread, ho utilizzato le librerie fornite con GCC ma i miei sorgenti sono multi-piattaforma e possono essere compilati con Eclipse/G++, Visual C++ e Borland C++ Builder. Quest’ultimo è nella versione 6, ormai vecchia ed obsoleta, e non fornisce i pthread, per cui ho scaricato sorgenti free per la loro gestione. Mi sono chiesto se l’uso di software free per gestire librerie di sistema sia consentito o meno. Non sarebbe un problema, perché uso il Borland solo per le prove mentre Satana verrà rilasciato solo nella versione Eclipse/G++.

    Più in generale, è definito nel regolamento questo genere di “confine”?

    PS: si tratta dei thread in standard POSIX

    #7417
    stegemma
    stegemma
    Moderatore

    PS2: comunque la libreria free per il multi-threading non funziona con Satana compilato col Borland C++ Builder 6.0 (sarà un problema in Satana o nella lib o nel compilatore? boh… cmnq lascio perdere il vecchio BC++ e resto su Eclipse/G++)

    #7418

    marco belli
    Membro

    vorrei apportare una semplice considerazione alla vostra discussione: Vajolet appartenente alla categoria free credo che passi egregiamente tutti i “similarity test” con percentuali basse eppure continene righe di codice e idee di stockfish, probabilmente fruit e cheng visto che li ho studiati per capire cosa scrivevo e visto che quando ho trovato cose che ritenevo non avrei saputo scrivere meglio o che si adattavano bene al mio modo di pensare un programma.
    Credo sia molto difficile riuscire a definire una netta demarcazione fra programmi originali/ derivati/cloni eccetera eccetera. Il mio programma viene ritenuto non originale dal g-sei, abbastanza originale da sedat canbaz con il suo torneo degli original engine. Ognuno fa la sua scleta e deve decidere dove sta la linea di demarcazione.
    Detto ciò sono d’accordo che la posizione più intransigente possa far scappare molte persone dal gruppo g-sei e far ri-morire la programmazione scacchistica in italia.

    basta ho finito le mie considrazioni 🙂

    #7419
    stegemma
    stegemma
    Moderatore

    Nel caso che ho indicato non ci sarebbe un vero problema, perché si tratta di librerie standard POSIX per la gestione dei thread, che non sono collegate direttamente all’engine. Le stesse funzioni le si ottengono semplicemente cambiando il compilatore. In c++11 sono comprese nel linguaggio ma, purtroppo, g++ non è completo, nell’implementazione (almeno su Windows).

    Quando si parla invece di parti specifiche di un engine, allora possono esserci casi dubbi ed altri certi. Se copii, anche solo in parte, la funzione di valutazione allora si tratta di un clone/derivato. Se copii la gestione del book… boh, non saprei, non è quella che influisce sulla forza, contando di più la compilazione del libro di aperture che come viene salvato/letto.

    Molto più interessante l’ultima frase di Marco: “Detto ciò sono d’accordo che la posizione più intransigente possa far scappare molte persone dal gruppo g-sei e far ri-morire la programmazione scacchistica in italia.”. Credo che questo sia già successo sia con le posizioni intransigenti che con quelle accomodanti. Il nucleo storico del g6 si è disgregato quando ho cercato di tenere aperto un dialogo tra due parti opposte… prendendo del cogl… da tutti. Se fossi stato intransigente allora, adesso ci sarebbe il “vecchio g6”? Forse no, forse sì. Saremmo forse rimasti solo noi, la vecchia guardia, a giocarci e rigiociarci sempre le stesse vecchie idee. O, forse, i nuovi arrivati avrebbero saputo di aver meno carta bianca, per utilizzare codici altrui e si sarebbero adeguati? Credo di no, come il team di Vitruvius credo insegni (un software nato dichiaratamente derivato… e con giusto orgoglio).

    Allora si dovrebbe usare più buon senso e meno regole… ormai sono passato dal ritenere un clone chi ha copiato anche una sola riga di codice al “ma poi, chissenefrega?” dell’auspicare un torneo senza regole, dove chiunque possa giocare con l’entità scacchistica che preferisce.

    #7420

    Alessandro
    Membro

    Scusate ma qual è il problema con i thread che non riesco a capire?

    Ragazzi io sono convinto che la classificazione dei motori vada bene nella misura in cui poi i motori gareggino tutti nello stesso torneo o comunque a pari diritti. Non credo che porti a qualche risultato creare contrapposizione fra un originale ed un derivato. Un derivato è comunque un lavoro che è costato tempo e risorse al programmatore ed questa cosa che differisce da un clone.
    Secondo me cioè non è tanto la classificazione in sé ad essere problematica quanto il peso che si sta dando all’una o all’altra “categoria”. Sembra quasi che aver sviluppato un motore “derivato” sia una cosa brutta di cui nascondersi! Personalmente sarei comunque orgoglioso anche se venissi classificato come derivato, sempre che questo non mi escluda la partecipazione a qualche evento! 🙂
    Cerchiamo di mantenere alto il senso di appartenenza a questo gruppo, ok?

    #7422
    stegemma
    stegemma
    Moderatore

    A livello internazionale, come anche viene riportato nel regolamento del G6, si dà molta importanza al fatto che il codice sia stato scritto dal programmatore. Se lo fa da zero, si tratta di un “originale” sennò o è un “clone” o è un “derivato”. Al WCCC (campionato del mondo dei software di scacchi) non è ammesso partecipare con cloni o derivati (credo che ci siano eccezioni, per questi ultimi, ma non ne sono sicuro). Al IGT si può partecipare con derivati, purché ovviamente li si dichiari come tali. I derivati non partecipano all’assegnazione di premi e titoli… non che ci siano premi eccezionali (la Ferrari non c’è) ma il titolo è molto ambito 😉

    Per la necessità di garantire che non ci siano furbetti che mettono insieme un programma da 2200 ELO scopiazzando qui e là, il regolamento prevede anche che a richiesta si debbano rendere disponibili i sorgenti, per l’eventuale analisi. Tutto questo complica le cose, rendendo effettivamente a volte “fastidioso” quello che dovrebbe essere solo un hobby. Sarebbe però ancor più fastidioso vedersi battuti da furbetti che quasi non sanno programmare.

    Alla fine siamo relativamente pochi e ce la caviamo “alla buona”. Il mio dubbio (che ormai non ha più importanza) nasceva perché nei miei software non c’è mai stato nulla di copiato; addirittura in Drago avevo rifatto l’interfaccia grafica a finestre, con la gestione del mouse a livello di BIOS. Si è trattato solo di un eccesso di zelo, pormi il problema, relativamente ai thread, come libreria di sistema. Sarebbe stato invece “scorretto” prendere la gestione del multi-threading da un engine, perché questa sì che è legata al software di scacchi.

    Prendo al volo quest’occasione per proporre di modificare il regolamento in senso più elastico. Sono ormai in molti a realizzare derivati, più che originali, e sarebbe ormai giunto il tempo per adeguarsi alla realtà. Potremmo avere molti più software attivi nel G6 e molti meno “fastidi”. Magari si risveglierebbe anche l’area programmazione… sennò che ci stiamo a fare? 😉

    Possiamo parlarne all’IGT o magari anche prima, qui.

    #7424

    Mi ero domandato anch’io quale fosse la linea di demarcazione e preferisco parlare apertamente qui per non avere sorprese all’igt o più avanti.

    Nello sviluppare Pedone ho studiato diversi sorgenti (crafty,stockfish,gull,senpai,texel) ed ho reperito diverse informazioni da chessprogramming o da vari forum di programmazione scacchistica.

    Questo ha fatto sì che alcune idee di massima sono similari, ma l’interpretazione e lo sviluppo all’interno del mio engine ha portato ad un codice sostanzialmente diverso.

    Ad esempio il margine della futility in Pedone lo calcolo con depth*MARGINE che è similare a stockfish, ed è un buon compromesso tra precisione e facilità di tuning.

    In valutazione la protezione del re usa una funzione non lineare simile a quella descritta in chessprogramming, ma migliorata.

    L’ordinamento e i tagli in quiescenza con SEE in questa ultima versione di Pedone sono il frutto dello sviluppo della programmazione scacchistica, non li ho certamente inventati io.

    Detto questo Pedone lo ritengo un engine originale (per alcuni aspetti totalmente) sviluppato tenedo conto dei progressi della programmazione scacchistica e applicando alcune tecniche che sono quasi standard (killer, futility, history, SEE, NullMove) per molti engine.

    Con questo, non vorrei mettermi in competizione con altri engine g6 che sono stati sviluppati soltanto sulla base di idee nuove.

    Anche se non è facile, sarebbe importante chiarire fino a che punto si possano applicare idee condivise (sorgenti, pubblicazioni, forum) e fino a che punto si debba inventare da 0.

    #7425
    stegemma
    stegemma
    Moderatore

    Le idee si possono prendere ovunque ed anche “copiare”, non è richiesto che si re-inventino da zero. La regola condivisa è che non si dovrebbero copiare i sorgenti, non le idee. C’è un po’ di paranoia, in questo, perché se uno scrive da zero può anche copiare senza copia e incolla, semplicemente… avendo una buona memoria 😉

    Se invece uno non copia nulla ma applica un algoritmo noto… è molto probabile che arrivi, di fatto, allo stesso codice. Non ci sono molti modi di scrivere alfabeta, ad esempio.

    Basterebbe dotarsi di buon senso ed onestà, più che di regole, come in tutte le cose.

    Io direi di proporre ciascuno la propria idea per un nuovo regolamento più flessibile, senza per questo mettere in discussione l’IGT (siamo in 7/8 e bene o male ci conosciamo tutti, tra di noi non ci sono problemi).

    Comincio io?

    #7427
    stegemma
    stegemma
    Moderatore

    Mi sono riletto il regolamento ed io modificherei questa regola:

    “* Par. A – Partecipazione alla manifestazione
    […]Il programma deve essere scritto da zero. Non sono quindi accettati derivati/cloni di alcun tipo.
    […]”

    Ci provo, vediamo cosa esce:

    “* Par. A – Partecipazione alla manifestazione
    […]Il programma deve essere scritto da zero. Sono ammessi, a totale ed insindacabile discrezione dell’organizzazione, software derivati da altri a condizione che abbiano caratteristiche tali da renderli nettamente distinguibili da ognuno dei programmi presi come base. L’organizzazione può rifiutare l’ammissione di software ritenuti sospetti, sempre a sua totale ed insindacabile discrezione.
    […]

    Eliminerei ogni paranoia sul controllo dei sorgenti (tanto i miei non li dò a nessuno, anche a costo di non partecipare – vedi iscrizione “con riserva”), visto che il “a totale ed insindacabile discrezione dell’organizzazione” copre ogni caso. Direi che chi si smazza per organizzare un torneo debba avere il diritto di accettare chi vuole… visto che nessuno è obbligato a partecipare e non è questo un diritto costituzionale. Per il resto, ci si affida al buon senso ed all’onestà di tutti, come più volte ripetuto.

    #7562
    Lissandrello Luca
    Lissandrello Luca
    Moderatore

    Ricordiamoci di parlarne a Torino, io non sono d’accordo e penso di avere buoni motivi, ma siamo in una democrazia, quindi vedremo che salterà fuori e cosa si deciderà.

    Bye!

    LL

Stai vedendo 15 articoli - dal 46 a 60 (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