Autore Topic: Settings è sicuro?  (Letto 1129 volte)

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
Settings è sicuro?
« il: 25 Gennaio 2020, 07:53:57 »
Alcuni parametri del programma li salvo con settings
per essere sicuro che vengano salvati immediatamente eseguo
Codice: [Seleziona]
settings.save
per un errore nel codice il programma ha generato un errore e si è bloccato
il salvataggio di settings si è corrotto, sono stati ricaricati i valori predefiniti
questo si è verificato più volte e in una di quelle ho riscontrato che il file di salvataggio era a dimensione 0
il programma non dovrebbe bloccarsi, lo sto sviluppando e naturalmente i bug sono presenti
ciò mi è successo su raspberry e potrebbe essere dovuto anche ai ritardi con cui vengono scritti i file su SD
tutto questo mi fa sorgere il dubbio che come modalità di salvataggio non sia più sicura di un file di appoggio (  potrebbe accadere anche  con quest'ultimo)
se non mi sbaglio gambas alla chiusura del programma in modo regolare di solito salva in automatico settings

Cosa ne pensate?

« Ultima modifica: 25 Gennaio 2020, 07:57:02 da Akrobaticone »
"e il naufragar m'è dolce in questo mar"

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:Settings è sicuro?
« Risposta #1 il: 25 Gennaio 2020, 08:58:19 »
Se ben intendo la domanda, devo risponderti che non ho ancora approfondito la questione del salvataggio di un programma.
Settings salva su un normale file ini e non credo che abbia un metodo per salvare solo in "situazioni corrette".
Penso dipenda da noi creare un sistema che alla chiusura del programma distingua se stiamo uscendo su un errore oppure regolarmente.
Se usciamo su un errore non salviamo lasciando così invariato il file .conf dall'ultimo salvataggio.
Se si blocca il programma e tu esci forzando la IDE non può sovrascriversi a meno di un tuo errore logico.

PS. Ora vado a lavorare (il sabato sono di corvè)
« Ultima modifica: 25 Gennaio 2020, 08:58:55 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.728
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Settings è sicuro?
« Risposta #2 il: 25 Gennaio 2020, 10:14:39 »
@Akrobaticone
Citazione
se non mi sbaglio gambas alla chiusura del programma in modo regolare di solito salva in automatico settings
non ne sono tanto sicuro, credo che salvi solo col setting.save.
Se capita un errore non dovrebbe essere aperto il file .conf e quindi non dovrebbe riportarti con un file di configurazione di dimensioni 0.
L'unico caso che vedo è che l'errore capiti durante la scrittura del file di configurazione e questa operazione sulla SD potrebbe richiedere "molto" tempo e se succede, potrebbe andare tutto a pallino.
In passato quando ho giocato col raspberry (credo 0) facevo l'errore di aprire dei file (per scrivere un log) all'inizio del programma e di chiuderli in uscita e lì ho avuto dei casini, saltuari ma ci sono stati. Ho risolto, ovviamente, aprendo il file scrivendoci e richiudendolo subito dopo.
Potrebbe quindi essere un problema legato alla lentezza di scrittura sulla SD.
Ora sparo la proposta: puoi usare wait dopo il setting.save?

@Gianluigi
Citazione
Penso dipenda da noi creare un sistema che alla chiusura del programma distingua se stiamo uscendo su un errore oppure regolarmente.
sagge parole che non ho mai applicato!  :-[
Citazione
Se usciamo su un errore non salviamo lasciando così invariato il file .conf dall'ultimo salvataggio.
si e no, dipende perchè in alcuni casi dopo aver configurato è meglio non spettare la chiusura del programma per salvare le modifiche in configurazione. Ho dei programmi di controllo che girano per settimane e anche mesi, e in quel caso è meglio prevedere una scrittura della configurazione subito dopo averla modificata. Negli altri casi, comunque credo sia corretto quanto hai scritto.
Citazione
Ora vado a lavorare (il sabato sono di corvè)
E adesso dacci dentro co 'sta ramazza! FANNULLONE!!!  :P :P :P
« Ultima modifica: 25 Gennaio 2020, 15:56:29 da kicco »
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
Re:Settings è sicuro?
« Risposta #3 il: 25 Gennaio 2020, 13:17:35 »
Confermo che salvo subito con settings.save le modifiche e confermo anche il fatto che faccio seguire la stessa istruzione da wait
Normalmente funziona tutto, capita che dopo un blocco improvviso del programma causato da  un errore, alla sucessiva ripartenza il file era corrotto e si è rinizializzato, il programma gambas in questo caso  non si è chiuso regolarmente
Questa cosa la trovo un po anomala, anche perchè salvo su un altro file di testo altri dati del programma e quest'ultimo non si corrompe mai
In altri casi purtroppo capita che venga tolta l'alimentazione al raspy durante il funzionamento e, a meno di creare un sistema hw che avvisa della mancanza di tensione e da tempo al sistema di chiudersi regolarmente, le operazioni in sospeso vengono troncate
In questa situazione può essere normale che qualche cosa non vada a buon fine
Rucordate Windows e gli spegnimenti improvvisi?

In ogni caso ho sperimentato che, anche se non c'è la funzione settings.save, alla chiusura del programma le impostazioni vengono salvate.




"e il naufragar m'è dolce in questo mar"

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:Settings è sicuro?
« Risposta #4 il: 25 Gennaio 2020, 13:35:28 »
...

In ogni caso ho sperimentato che, anche se non c'è la funzione settings.save, alla chiusura del programma le impostazioni vengono salvate.

Settings salva i dati quando la classe viene distrutta (metodo _free()) o per meglio dire l'oggetto della classe Settings viene distrutto, occorre tenerne conto.
« Ultima modifica: 25 Gennaio 2020, 13:37:42 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
Re:Settings è sicuro?
« Risposta #5 il: 25 Gennaio 2020, 14:11:01 »
...e la classe settings viene distrutta alla chiusura regolare del programma

Quando l'interprete rileva un errore blocca il programma e mostra un messaggio che chiede
chiudi o ignora?
nel mio caso ho scelto chiudi, al riavvio ho avuto il problema di cui sopra e in almeno 3 casi
pensavo che in questo caso l'interprete avesse ancora un parziale controllo sul programma
"e il naufragar m'è dolce in questo mar"

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.728
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Settings è sicuro?
« Risposta #6 il: 25 Gennaio 2020, 15:52:50 »
Scusate, ma mi sto perdendo qualcosa.
Quello che dite sul salvataggio di setting nel file /home/nomeutente/.config/gambas/nomeprogramma.conf (spero di non aver dimenticato qualcosa) avviene solo se è stato attivato il componente gb.settings. È così?

Mi rispondo da solo visto che Gianluigi ha scritto:
Citazione
...o per meglio dire l'oggetto della classe Settings viene distrutto...
è chiaro che il componente gb.settings deve essere attivato!
 :)

e prendo atto anche di Akrobaticone:
Citazione
In ogni caso ho sperimentato che, anche se non c'è la funzione settings.save, alla chiusura del programma le impostazioni vengono salvate.
Verifichiamo che sia spiegato nel Wiki!
« Ultima modifica: 25 Gennaio 2020, 15:58:22 da kicco »
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.728
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Settings è sicuro?
« Risposta #7 il: 25 Gennaio 2020, 16:05:24 »
Citazione
Verifichiamo che sia spiegato nel Wiki!
No, non è specificato!
Lo farei io, ma non sono abilitato.
https://www.gambas-it.org/wiki/index.php?title=Uso_della_classe_Settings
 :-*

 
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:Settings è sicuro?
« Risposta #8 il: 25 Gennaio 2020, 17:23:51 »
si e no, dipende perchè in alcuni casi dopo aver configurato è meglio non spettare la chiusura del programma per salvare le modifiche in configurazione. Ho dei programmi di controllo che girano per settimane e anche mesi, e in quel caso è meglio prevedere una scrittura della configurazione subito dopo averla modificata. Negli altri casi, comunque credo sia corretto quanto hai scritto.
Non intendevo dire di salvare "solo" all'uscita dal programma, come giustamente hai scritto con Save si può salvare in qualunque momento anzi serve solo per quello perchè, come si è poi chiarito, all'uscita non serve.
Citazione
E adesso dacci dentro co 'sta ramazza! FANNULLONE!!!  :P :P :P
Rispondo solo ora e non avendo nulla di spiritoso da dire mi limito a una...  :rotfl:
Citazione
Verifichiamo che sia spiegato nel Wiki!
Lo farei io, ma non sono abilitato.
Fatto, vedi un po se ti va bene

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.728
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Settings è sicuro?
« Risposta #9 il: 25 Gennaio 2020, 21:09:48 »
si e no, dipende perchè in alcuni casi dopo aver configurato è meglio non spettare la chiusura del programma per salvare le modifiche in configurazione. Ho dei programmi di controllo che girano per settimane e anche mesi, e in quel caso è meglio prevedere una scrittura della configurazione subito dopo averla modificata. Negli altri casi, comunque credo sia corretto quanto hai scritto.
Non intendevo dire di salvare "solo" all'uscita dal programma, come giustamente hai scritto con Save si può salvare in qualunque momento anzi serve solo per quello perchè, come si è poi chiarito, all'uscita non serve.
Citazione
E adesso dacci dentro co 'sta ramazza! FANNULLONE!!!  :P :P :P


Rispondo solo ora e non avendo nulla di spiritoso da dire mi limito a una...  :rotfl:
Citazione
Verifichiamo che sia spiegato nel Wiki!
Lo farei io, ma non sono abilitato.
Fatto, vedi un po se ti va bene

 :ciao:

 :ok:
« Ultima modifica: 25 Gennaio 2020, 21:10:20 da kicco »
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)