Domanda:
È normale che un revisore paritario chieda un file eseguibile per controllare i miei risultati?
Marvel LePont
2017-04-28 02:24:57 UTC
view on stackexchange narkive permalink

Ho appena ricevuto una lettera di decisione per il mio manoscritto inviato a una rivista Elsevier. È stata una revisione e ripresentata. Tuttavia uno dei revisori ha chiesto un file eseguibile per controllare i miei risultati. (Ho sentito diffidenza dal suo commento ..)

Si tratta di un articolo di informatica sul test dell'efficienza di un algoritmo su una serie di istanze dalla letteratura. Ho confrontato i risultati dell'algoritmo con quelli di altri autori.

Per chiarire: il documento parla di alcuni software e il revisore vuole essere in grado di eseguire il software? Non so quanto sia comune (non sono un informatico), ma purché qualsiasi licenza sul softwareti permette di darlo al revisore sembra una richiesta ragionevole.
Bene, se pubblichi un algoritmo devi in qualche modo pubblicare il codice effettivo.Sembra che il tuo manoscritto non lo includa affatto?
Se l'algoritmo verrà pubblicato comunque, non vedo "perché no"!
@DSVA: "Se pubblichi un algoritmo devi in qualche modo pubblicare il codice effettivo" ... quale percentuale di algoritmi pubblicati pensi che siano dotati di codice sorgente?
@Mehrdad "quale percentuale di algoritmi pubblicati pensi che siano forniti con il codice sorgente" molto meno della percentuale che dovrebbe venire con il codice sorgente.Imho, se non puoi verificare l'affermazione senza implementare l'algoritmo, allora dovrebbe avere allegato il codice sorgente e il codice sorgente dovrebbe essere revisionabile, altrimenti non è una buona scienza.Nessun revisore sano di mente accetterebbe un articolo con "la magia accade qui" nel mezzo della dimostrazione, quindi anche "il software closed source accade qui" non dovrebbe essere consentito.
Un revisore diffidente è una buona cosa, significa che darà al tuo articolo un test severo e, se ci sono problemi con il documento, è più probabile che li trovi, il che è a tuo vantaggio a lungo termine.Dubito fortemente che diffidino della tua onestà, solo del risultato.
Poiché qualcuno con poca o nessuna esperienza nella pubblicazione di software (o algoritmi), fornire loro un eseguibile compilato non fornirebbe loro solo un modo per eseguire il codice, non visualizzarlo?
@Sumyrda "Imho se non puoi verificare la dichiarazione senza implementare l'algoritmo, ..., non è una buona scienza" Sfortunatamente, le cose spesso non sono così semplici per gli algoritmi.Molti algoritmi possono essere dimostrati corretti, ma comunque non banali da implementare.Questo è il motivo per cui l'ingegneria degli algoritmi è un campo serio.Uno di questi casi è l'algoritmo di triangolazione di Chazelle.La sua dimostrazione è molto probabilmente corretta, ma non c'è implementazione per un po '(per quanto ne so), anche se è un algoritmo spesso "usato"!
In termini scientifici generali, solo un vero revisore tra pari è responsabile di fare una cosa del genere.Una percentuale eccessiva rischia di segnalarlo come troppo difficile.Il loro è stato un giorno (mi è stato detto) in cui la revisione tra pari significava REVISIONE !.Qualcun altro era sicuro che tu sapessi le tue cose e avrebbe messo il loro nome (anche se in modo anonimo) alla conclusione.Queste persone sono ovviamente molto fastidiose, ma fanno parte delle fondamenta su cui è costruita la vera scienza.O lo era.
In quale altro modo suggerisci che dovrebbe andare a verificare i tuoi risultati?
@Discretelizard "Molti algoritmi possono essere dimostrati corretti, ma comunque non banali da implementare."Ma è esattamente quello che ho detto.O mostri lo pseudocodice e dimostri che è corretto, o se non puoi farlo per qualche motivo, specialmente quando affermi che il tuo algoritmo è più veloce di qualche altro algoritmo, allora dovresti mostrare il tuo codice o fornirne un altromodo per verificare la tua richiesta se riesci a pensare a qualcosa.
Chiarire: l'articolo parla di un algoritmo?O un programma?O i risultati di un'implementazione specifica prodotta su input specifici?
Non dovresti mai distribuire eseguibili, ma sempre il codice sorgente.Nessuno vuole eseguire un programma binario senza compilarlo dal sorgente.Potrebbe fare qualsiasi cosa sul tuo sistema.Si può provare ad aggirare il problema con una sandbox, ma perché non distribuire il sorgente, se fa parte del tuo lavoro scientifico?
@JonasStein Penso che l'unico motivo per cui vorrei che il codice sorgente sarebbe stato così da poterlo esaminare per errori, non perché sono preoccupato che un altro ricercatore possa danneggiare il mio sistema.Soprattutto uno che non ha offerto volontariamente un tale eseguibile ma lo sta producendo su richiesta.
@PhdStudent "La cosa buona della scienza è che è vero, che tu ci creda o no."Ho sicuramente fiducia nei nostri scienziati, ma questa fiducia si guadagna attraverso la verifica e la revisione tra pari.Quando pubblichiamo la scienza senza verifica, ci apriamo alla pesudo-scienza nella migliore delle ipotesi e all'inganno intenzionale nella peggiore.
Osservo l'uso di pronomi maschili per riferirmi a un revisore presumibilmente anonimo.Penso che questo sia il nostro pregiudizio implicito che lavora contro di noi.
@Sumyrda C'è una differenza tra codice sorgente e pseudo-codice.Il codice sorgente È un'implementazione, ma non ancora in forma eseguibile.Lo pseudo-codice non è codice sorgente, è solo un metodo per descrivere algoritmi.Ma se intendevi che almeno una sorta di argomento verificabile (dal lettore) per i risultati di un algoritmo deve essere presente, allora ovviamente sono d'accordo.
@Discretelizard Esattamente, deve essere verificabile.Che sia verificabile passando attraverso lo pseudo codice insieme al tuo ragionamento o rivedendo il tuo codice sorgente non importa, ma l'uno o l'altro deve essere possibile.Sono indeciso nel verificare l'affermazione eseguendo test su un eseguibile closed source - c'è ancora troppa "magia accade qui" per i miei gusti - ma è meglio di niente.
Otto risposte:
Dan Romik
2017-04-28 03:27:32 UTC
view on stackexchange narkive permalink

Non so se sia normale, ma dovrebbe essere normale che tutti i revisori facciano sforzi ragionevoli per verificare che le affermazioni degli autori siano corrette, quindi nella misura in cui non è normale, Posso solo elogiare il revisore per essere disposto a fare uno sforzo che altri revisori non fanno. Ciò che intendi come "sfiducia" è il revisore che fa il proprio lavoro, niente di più o meno (ed è probabilmente in qualche modo esatto dire che il compito di un revisore è quello di diffidare delle affermazioni dell'autore, quindi non vedo l'idea di essere diffidato da un recensore come qualcosa di cui vergognarsi o da cui offendere).

A proposito, dovrebbe anche essere normale per gli autori rendere disponibile qualsiasi software (incluso il codice sorgente quando possibile) necessario per replicare e verificare i loro risultati. Quindi, se non sei soddisfatto del fatto che il revisore ti risponda con richieste fastidiose che ritardano la decisione sul tuo articolo, la prossima volta puoi prevenire tali problemi rilasciando il tuo codice sorgente (o almeno presentandolo alla rivista) insieme al tuo manoscritto. Sono sicuro che il revisore sarebbe molto più felice e alla fine tutti ne trarrebbero vantaggio, incluso te.

Grazie per il tuo commento, forse mi sono sentito offensivo perché è il mio primo articolo di giornale.Tuttavia, nel mio campo di ricerca non è comune che gli autori rendano disponibile il loro codice. In ogni caso, invierò l'eseguibile al revisore perché ha dichiarato che senza questo controllo il paper non può essere accettato.Grazie ancora.
Essendo uno che lavora nel settore e legge i giornali come "un outsider", mi è sempre sembrato molto strano che ci fosse la tendenza a "nascondere il codice".La mia sensazione è che il codice, proprio come un giornale, dovrebbe essere disponibile e disponibile.Sono assolutamente con Dan qui, dovrebbe essere fatto di più.Almeno per me, non pubblicare codice ha sempre un retrogusto amaro di qualcosa di losco in corso.
Sfortunatamente, la maggior parte degli algoritmi e dei metodi numerici descritti in riviste come Journal of Computational Physics (una rivista molto rispettabile!) Sono implementati in codici sorgente chiusi interni.Ho fatto qualche recensione lì e dovevo solo fidarmi dei risultati.
Sarebbe bello per gli autori rendere disponibile il software anche quando non è necessario replicare o verificare i risultati.Mi viene in mente un documento sull'algoritmo che una volta ho provato a implementare e ho rinunciato perché non sembrava digitare.Un'implementazione di riferimento avrebbe aiutato a comprendere il documento.
D'accordo sulla corretta definizione del sentimento di "sfiducia" - meglio interpretarlo come un sano scetticismo scientifico, che ogni revisore dovrebbe avere.Ripongo un certo livello di fiducia negli articoli sottoposti a revisione paritaria (soprattutto per argomenti con cui non ho familiarità) proprio perché hanno soddisfatto lo scetticismo di un gruppo di revisori.
@SBI Non è affatto strano.Se investi 4 anni di lavoro in un codice, è necessario che ripaghi in abbastanza documenti / citazioni / attenzioni per ottenere una promozione.Un documento non lo farà, e se rilasci il tuo codice, dovrai passare un altro lungo periodo di tempo a codificare un nuovo risultato pubblicabile mentre i tuoi rivali usano il tuo codice per scovarti.Non è tanto "pubblicare o morire" quanto "pubblicare più di assunzioni alternative o perire".(Personalmente, ho rilasciato il mio codice; sono anche morto.)
La risposta presuppone che il revisore abbia a cuore solo le migliori intenzioni insieme a una tendenza idealistica a migliorare la cultura scientifica.Anche se loderei immediatamente queste cose, sfortunatamente viviamo nel mondo reale.Bisogna considerare che il revisore è una persona anonima che richiede la parte centrale di un processo di ricerca con una chiara esperienza nel campo e il conseguente potenziale interesse in esso.Consiglierei di considerare attentamente tali richieste anche dal punto di vista che ci sono persone che potrebbero tentare di sfruttare l'anonimato e il privilegio del recensore.
Un'altra bandiera rossa che attira la mia attenzione è che richiedono un "file eseguibile".L'utente non ha modo di verificare che l'eseguibile non stampi solo i risultati senza alcun algoritmo dietro, a parte il reverse engineering (senza entrare troppo nei dettagli qui).Tale richiesta può forse significare che il revisore cerca di cullare l'autore in un falso senso di sicurezza non richiedendo intenzionalmente il codice sorgente.
@user3209815: Possono soddisfare il punto di Xerxes: il rilascio del codice sorgente potrebbe non essere accettabile perché altri autori possono quindi raccogliere l'OP.Rendere il file eseguibile significa che dovranno decompilarlo ... il che potrebbe non essere fattibile.Tuttavia, come dici tu non c'è modo di verificare che un tale eseguibile non stampi solo i risultati richiesti.
@Xerxes Ma come può la tua idea essere pubblicabile in un paper, se dipende così tanto dal codice closed source?Voglio dire, hai comunque aperto tutta la tua idea.Ho scritto codice basandosi su documenti innumerevoli volte.Di solito, il codice è più una prova di concetto piuttosto che contenere più informazioni di quelle che pubblichi comunque.Al contrario, però, diventa più complicato.Fare affermazioni senza dimostrare che funzionano davvero è ... difficile.
@SBI Naturalmente, il documento deve essere tale che chiunque possa implementare l'algoritmo davvero!Ma questo può essere un lavoro molto noioso di ingegneria del software.
@Xerxes Idealmente il tuo lavoro sarebbe adeguatamente supportato da qualche agenzia di finanziamento (di solito pubblica).In cambio, apri il codice sorgente.In pratica, capisco che fai quello che devi fare.
@Xerxes ecco perché il codice dovrebbe essere rilasciato con licenze che richiedono attribuzioni.Se le persone prendono il tuo codice e pubblicano un articolo basato su di esso, dovrebbero attribuirti come l'autore originale del codice, proprio come dovrebbero citarti se usassero i risultati dei tuoi articoli pubblicati.
@VladimirF: "Dovevo solo fidarmi dei risultati".No, non l'hai fatto.Se i risultati sono prodotti dal software, dovresti essere in grado di verificare i risultati e, se non puoi verificarli, non lo accetti.C'è il detto "immagini, o non è successo".
Aggiungerei che l'eseguibile (codice compilato) * da solo *, sebbene consentirebbe la replica dello sforzo, non sarebbe particolarmente utile nel grande schema delle cose.Il codice sorgente, come altri hanno detto, è la cosa più importante.O è un software comunemente disponibile (nel qual caso, perché i revisori non possono scaricarlo da soli?), Oppure è un codice raro o proprietario, nel qual caso il codice sorgente è il dettaglio più importante.È il metodo che deve essere replicato e il binario è una scatola nera che nasconde il codice, che è il metodo.
I revisori sono vincolati dalla riservatezza: puoi fornire il codice ai revisori senza rilasciarlo.Sì, a volte i revisori imbrogliano, anche se raramente. Ci sono più movimenti verso i revisori che provano il codice;vedere http://www.artifact-eval.org/ per un approccio.
@gnasher729 Ti fidi degli esperimenti anche quando gli autori non ti hanno messo a disposizione la loro struttura per rifare i loro esperimenti?E se quel metodo numerico fosse implementato in un codice CFD per il quale gli autori non hanno pieno diritto di ridistribuzione?Il calcolo può richiedere molto tempo per la CPU su un supercomputer e i revisori non li ricalcoleranno comunque.Non lo farei per quel documento che ho recensito.Anche l'analisi dei risultati potrebbe richiedere molto tempo.
@Xerxes No, non hai impiegato 4 anni per il tuo codice.Hai passato quattro anni sul tuo algoritmo, che stai già facendo conoscere al mondo attraverso il tuo giornale.Il codice è semplicemente un'implementazione di esso che avresti potuto scrivere in una frazione del tempo, se lo avessi iniziato dopo aver stabilito l'algoritmo.
Chris H
2017-04-28 13:02:37 UTC
view on stackexchange narkive permalink

Vengo da un campo diverso, in cui il codice che usiamo non è un output importante. Ma se un arbitro chiedesse il codice, lo forniremmo e saremmo felici. La maggior parte del nostro lavoro è fatto in python, quindi un eseguibile non sarebbe usuale, il sorgente lo sarebbe (vero anche per matlab).

In effetti l'unica cosa che trovo leggermente strana qui è l'uso di eseguibile piuttosto che source.

Non essere offeso dalla richiesta per un paio di motivi: non è compito dei revisori fidarsi di te; è loro compito controllare la tua carta. Se un revisore è abbastanza interessato al tuo lavoro da desiderare di eseguire il tuo codice, non ha ignorato il tuo documento senza averlo fatto.

Mi piace il punto finale.Mi sembrerebbe anche un po 'onorato se l'arbitro fosse disposto a provare il mio software :)
@Džuris in effetti, significa che stanno prendendo molto sul serio il tuo articolo.
Grazie per il tuo secondo paragrafo!Nessuno qui sembra vederlo.Quando ho letto il titolo della domanda, ho pensato che OP avesse trovato strano che qualcuno richiedesse un eseguibile piuttosto che il codice sorgente perché ciò indica che non si preoccupano abbastanza di controllare il codice sorgente per errori / errori / errori deliberati e in effettisono troppo stupidi o pigri per compilare da soli il codice sorgente (che presumo sia stato fornito).
@UTF-8 È anche possibile che non abbiano un compilatore (forse non possono a causa di problemi di licenza / piattaforma) o non hanno le competenze in quella lingua per dare un senso alla fonte.Anche allora * ancora * vorrei il codice
Upvoted e a ++ per il fatto che è strano vogliono un eseguibile e non il sorgente.Diamine, quando valuto i compiti, voglio il codice sorgente e qualsiasi altra cosa richiesta per compilare, inclusi i comandi / istruzioni / opzioni / argomenti del compilatore se è qualcosa di più complesso di "g ++ foo.cpp -o pippo"
Graham
2017-04-28 17:58:59 UTC
view on stackexchange narkive permalink

Per riassumere la situazione con i tuoi dati: -

1) Hai inventato un algoritmo su carta / Matlab / qualunque cosa.

2) Hai implementato quell'algoritmo in qualche programmazione linguaggio.

3) Hai costruito una serie di dati di test per esercitare il tuo algoritmo e hai ottenuto alcuni risultati per ciò che dovrebbe fare in teoria.

4) Hai messo quel test dati attraverso il codice e ne sono usciti alcuni risultati per ciò che fa nella pratica.

In questo processo ci sono vari punti in cui le cose possono andare storte con la tua metodologia. Il tuo codice potrebbe non riflettere correttamente il tuo algoritmo. I dati del test potrebbero essere stati elaborati a ritroso dal codice anziché in avanti dall'algoritmo. I dati di test per il tuo algoritmo e i dati di test per il tuo codice potrebbero non essere gli stessi.

A meno che il revisore non abbia l'algoritmo e il codice sorgente e tutti i dati di test per entrambi e tutti i dati di output per entrambi, non possono verificare che il tuo lavoro sia corretto e le tue conclusioni siano valide. Questo non è soggetto a controversia - è logicamente impossibile, se vogliono rivedere adeguatamente il tuo lavoro. Qualsiasi altra cosa è fare supposizioni che potrebbero non essere valide.

Sono stato personalmente colpito da questa situazione, quando la mia azienda ha acquistato un IP della teoria del controllo da un ricercatore. Aveva scritto articoli su come avrebbe dovuto funzionare e la teoria alla base, e poi aveva costruito dell'elettronica per implementare la sua teoria. I suoi articoli coprivano la teoria e includevano anche schemi per l'elettronica. Quando ho letto questo per capire come implementare la sua teoria nel software, ho scoperto che lo schema aveva un filtro extra. L'azione di questo filtro si è rivelata fondamentale per la stabilità o addirittura l'efficacia del sistema, ma non è stata documentata in nessun punto del suo lavoro. È stato solo quando abbiamo ricevuto una telefonata con lui che abbiamo scoperto qual era lo scopo del filtro e come avremmo dovuto regolarlo.

Questo era in un documento che in teoria era stato sottoposto a peer review quando è stato pubblicato. Chiaramente non era stato sottoposto a peer review abbastanza a fondo! I suoi risultati hanno mostrato che, dati gli stessi dati, l'output dell'implementazione era abbastanza vicino all'output teorico atteso e l'effetto del filtro si trovava in un punto diverso nella risposta. Tuttavia, l'implementazione in modo piatto non avrebbe mai funzionato senza questo filtro presente e non sarebbe stato affatto difficile includerlo nel modello teorico. Avrebbe anche potuto dire "questo filtro è necessario per questi motivi, ma può essere ignorato in quest'area della risposta che stiamo cercando per questi motivi" e sarebbe stato coperto. Ciò che non è accettabile è quello che ha fatto, ovvero non menzionarlo affatto, perché il risultato finale è che qualcuno che cerca di implementare il suo lavoro non sarebbe in grado di farlo.

Come ho detto, lui ancora ha pubblicato il suo articolo e nessuno si è lamentato in quel momento. Tuttavia, avrebbe dovuto essere individuato dai suoi revisori originali. Nel tuo caso, il tuo revisore dovrebbe cercare discrepanze come questa: è l'intero punto della revisione tra pari. Quindi, se le persone ti chiedono cose che non hai reso disponibili, (a) è un buon segno che stanno controllando accuratamente e (b) avresti dovuto renderlo disponibile in primo luogo come best practice.

Alexey B.
2017-04-28 20:06:47 UTC
view on stackexchange narkive permalink

Le presentazioni di artefatti sono una cosa in CS. Quello che ho visto è che prepareresti una macchina virtuale, dove il tuo software è già configurato e pronto per fare esperimenti. Quindi, il revisore potrebbe riferirsi al fatto che la rivista ha qualche procedura ufficiale per l'invio di artefatti. In alternativa, alcuni autori rendono disponibile il codice sorgente dei loro strumenti e benchmark tramite servizi come github e il revisore potrebbe suggerire che dovresti farlo anche tu. Per quanto riguarda la sfiducia, gli informatici sono naturalmente diffidenti nei confronti dei benchmark e dei confronti degli strumenti, poiché i dati finali possono dipendere molto da come è impostato il tuo esperimento (ad esempio, se confronti la tua implementazione di un algoritmo esistente, l'hai implementato correttamente ). Potrebbe anche essere che i numeri che fornisci nel documento sembrino un po 'strani, ma poi il revisore avrebbe indicato ciò che esattamente non gli sembra giusto.

Sod Almighty
2017-04-28 06:33:42 UTC
view on stackexchange narkive permalink

Inviare un eseguibile non è la stessa cosa che inviare il codice sorgente. Un eseguibile in realtà non dà al destinatario alcun accesso al tuo codice originale (come dovrebbe già sapere uno studente di informatica, ovviamente). Non vedo alcun problema con questa richiesta.

Vedo un grosso problema: l'eseguibile eseguito sugli stessi casi di test produrrà gli stessi risultati.anche se questi risultati sono errati a causa di un errore nel programma.
Sono curioso di sapere come invieresti un "eseguibile" di, diciamo, codice Python, senza dare accesso al tuo codice originale?Dovresti offuscarlo?
@jamesqf Potrebbero provare altri casi, non coperti dagli autori.
Qualsiasi eseguibile può essere decompilato per produrre funzionalmente lo stesso codice.Qualsiasi codice che viene compilato in JVM o .NET può essere decompilato in qualcosa di relativamente simile all'originale e persino il codice macchina può essere distrutto con un lavoro sufficiente.Anche se credo profondamente che il codice sorgente dovrebbe essere pubblicato con pubblicazioni come questa, se ti rifiuti di farlo, non puoi offrire un eseguibile come se nascondesse ciò che volevi nascondere dal tuo codice sorgente.
@CaptainEmacs ma non possono farlo se non riescono a vedere cosa fa effettivamente il programma.Potrebbe anche avere dati incorporati nell'eseguibile o fare qualcos'altro rispetto a quanto dichiarato.
@mathreadler Certo, potrebbe essere tutto sfortunato.Tuttavia, ho avuto esattamente questa situazione durante il mio dottorato di ricerca e gli autori mi hanno inviato un eseguibile e ho potuto provare i miei esempi con esso.Se c'è una cattiva codifica (costanti hardcoded), a volte è ancora possibile modificare il binario per risolverlo (l'ho fatto anche io una volta).
twilighttucson
2017-05-01 05:24:54 UTC
view on stackexchange narkive permalink

Data la mia esperienza personale con le comunità open source e il presupposto che l'articolo includa la totalità dell'algoritmo in questione, l'invio del codice sorgente o la relativa compilazione di detto software non produrrebbe molti effetti negativi.

Ciò consentirebbe al revisore di verificare i risultati e le affermazioni fatte dall'autore dell'articolo. Il problema chiave che il revisore potrebbe cercare è che tu abbia implementato correttamente l'algoritmo nel codice sorgente e non ti affidi per errore a una funzionalità del linguaggio di programmazione, del sistema operativo o dell'hardware per fare affermazioni sul suo tempo di esecuzione o su altre funzionalità.

A prima vista, vorrei riferire che nei casi legati all'I / O è facile scambiare algoritmi efficienti per, ad esempio, la capacità di Javascript di rendere asincrona quasi ogni chiamata di funzione. Ovviamente questo si vede principalmente nelle operazioni di I / O piuttosto che nei loop computazionali proliferativi. Quindi l'efficienza misurata non è quella dell'algoritmo come prova formale ma; invece si basa su una caratteristica specifica della lingua.

Il punto saliente è che ci sono molti casi in cui l'algoritmo formale e l'implementazione possono divergere dal rappresentarsi fedelmente e così facendo la conclusione, se basata su metriche empiriche come il tempo di esecuzione, può essere eseguita in molte questioni in cui un'implementazione impropria può attestare una conclusione errata.

abought
2017-05-01 21:29:34 UTC
view on stackexchange narkive permalink

Il codice sorgente può contenere bug e per rivedere in modo veramente efficace un algoritmo, una descrizione in prosa del metodo da sola potrebbe non essere sufficiente. Condividere qualcosa oltre il testo è vantaggioso; un buon documento con il codice sorgente effettivo (+ input di esempio) è il gold standard per la riproducibilità.

Una ruga divertente: a seconda di dove si trova il tuo revisore, potresti non essere autorizzato per dare loro un binario. Ad esempio, alcuni codici utilizzano librerie proprietarie concesse in licenza liberamente nel mondo accademico, ma qualcuno nell'industria potrebbe richiedere una licenza separata anche per utilizzare un file binario esistente, tanto meno per compilarlo. (questo mi è successo una volta, anche se non come parte della revisione tra pari)

Marquis of Lorne
2017-04-29 04:55:35 UTC
view on stackexchange narkive permalink

È una richiesta idiota da parte sua.

  1. Potrebbe prendere un virus.
  2. Non esiste un modo realistico per verificare che l'eseguibile implementa quanto descritto nel tuo articolo, ergo in nessun modo la richiesta ha alcun valore scientifico.

Dovrebbe chiedere il codice sorgente, e questo è tutto ciò che dovresti accettare dagli.

# 2 è spesso falso.Un numero significativo di problemi ha la caratteristica che verificare una soluzione è molto più semplice che trovare una soluzione.In tal caso, un revisore può verificare che una scatola nera produca effettivamente soluzioni corrette e misurare la complessità del runtime.Ciò sarebbe particolarmente utile se, ad esempio, il revisore notasse che tutti gli esempi utilizzati nel documento avevano caratteristiche particolari che li rendevano più facili da risolvere rispetto al caso generale, poiché poteva formulare i propri casi di prova.
@BenVoigt Ma * cosa * scatola nera?Come può il revisore sapere che ha la scatola nera che implementa ciò che afferma il documento?
C'è un punto valido che l'uso di una scatola nera non garantisce che la carta contenga una descrizione e una spiegazione accurate del metodo utilizzato, ma il revisore potrebbe essere molto meno preoccupato del rischio di aver falsificato la descrizione dato che un nuovo metodoha dimostrato di esistere, almeno rispetto al rischio di falsificare metodo e descrizione.
@BenVoigt Non riesco a capirlo dopo la parola "ma".Una scatola nera non prova nulla sulle affermazioni nel giornale.Dimostra solo che esiste una scatola nera che produce i risultati dichiarati, in qualche modo.
Il revisore potrebbe eseguire l'eseguibile con un diverso insieme di parametri per riprodurre un risultato noto.OP non sembra fornirci informazioni sufficienti per sapere che è così.Per quanto riguarda la parte con il virus, un utente Linux potrebbe sentirsi più sicuro di un utente Win.
@Magicsowon Vorrei venderti il ponte di Brooklyn.Ho gli atti di proprietà.Non te li mostro ma posso inviarti un .exe che stamperà "sì" ogni volta che chiedi se lo possiedo.
@Magicsowon "un utente Linux potrebbe sentirsi più sicuro di un utente Win" utente Linux qui.Non sono affatto d'accordo.Potresti facilmente scrivere un programma che danneggia i documenti personali o li invia tramite una connessione di rete su entrambe le piattaforme, se il destinatario è così gentile da eseguirlo per te.Linux è più sicuro per i malware "diffusi" che non ti prendono di mira in modo specifico, anche perché ce ne sono altri realizzati per Windows.
@AndreaLazzarotto La parola chiave è "if".Gli utenti Linux che dipendono dalle loro macchine per la ricerca sono spesso abbastanza paranoici da avere il backup dei loro dati in 3 posti diversi ed eseguire software di terze parti solo dove non può danneggiare nulla.Ciò non esclude persone come me che non hanno mai perso dati nel modo in cui descrivi e semplicemente si sentono al sicuro per questo.
@EJP Lo farò non appena la mia lontanissima zia dalla Liberia mi invierà la mia eredità così posso pagarti.


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...