[Progetto] [Olifant] programma antifurto pc!

Iniziative e progetti della comunità legati a Ubuntu.
Regole della sezione
Questa sezione ha lo scopo di raccogliere le iniziative/progetti della nostra Comunità legati ad Ubuntu. I progetti ospitati nascono da iniziative degli utenti o gruppi di utenti. In futuro i progetti potrebbero rimanere iniziative "personali" o essere integrate nella distribuzione, sponsorizzate da Ubuntu o da Canonical a discrezione dei responsabili. All'interno di essa sarà possibile inserire delle discussioni che hanno la funzione di pubblicizzare avvenimenti, iniziative e progetti software su Ubuntu e GNU/Linux in generale. Sarà inoltre possibile per gli utenti proporre lo sviluppo di nuovi software e in questo caso la discussione di richiesta avrà la funzione di generare un requisito funzionale del prodotto da sviluppare.

Sezione I - Iniziative
  • Fanno parte di iniziative, ad esempio, le seguenti categorie: corsi, progetti editoriali, libri.
  • La segnalazione di un'iniziativa avviene creando una discussione con l'annuncio.
  • Una volta effettuata la segnalazione, la discussione viene chiusa dal Gruppo Forum.
  • Se l'iniziativa esposta comporta un costo di adesione o fruizione, questo deve essere esplicitamente riportato all'interno della discussione.
  • È obbligatorio segnalare all'interno della discussione i riferimenti per poter contattare/partecipare all'iniziativa.
Sezione II - Progetti
  • La segnalazione di un progetto software, come per le iniziative, avviene e si sviluppa all'interno di una singola discussione.
  • Sarà consentito l'inserimento di software solo se rilasciati sotto licenza GPL (in tutte le sue versioni) o equivalente FOSS, tale da garantire agli utenti l'utilizzo del prodotto senza restrizioni e agli sviluppatori la proprietà intellettuale del codice prodotto.
  • Nell'oggetto della discussione dovrà essere riportata la categoria (es. [Iniziativa], [Progetto] o [Proposta]) e una semplice descrizione del progetto.
  • Se il progetto ha già un sito che lo ospita sarà a discrezione del Gruppo Forum chiuderla come segnalazione o lasciarla aperta.
  • Se il progetto non ha un sito che lo ospita si potranno aprire due discussioni, una per proporre modifiche/implementazioni (dove nel titolo occorre specificare [sviluppo]) ed una per segnalare problemi (e nel titolo dovrà comparire [supporto]).
  • Non è consentita l'apertura di nuove discussioni in riferimento a versioni superiori o modificate di un prodotto già riportato in precedenza.
  • Se il software oggetto del progetto ha una dimensione non superiore ai 128 kB, per prodotti che non hanno un sito che li ospita, sarà possibile allegarlo alla discussione.
Sezione III - Proposte
  • Una proposta deve essere eseguita e si svilupperà all'interno di una singola discussione.
  • Le proposte dovranno essere inserite direttamente nella sezione "Progetti della Comunità".
  • Dovranno essere specificate le funzionalità che devono essere sviluppate.
  • Non dovranno essere riportate diciture tipo "...deve fare come questo software...", ma indicare nel miglior modo possibile i requisiti.
  • Una volta segnalata la discussione resterà aperta per consentire uno scambio di idee su come sviluppare il codice o finché gli sviluppatori non forniranno una soluzione (da pubblicizzare poi, come visto prima, nella sezione Progetti) che ne soddisfi il requisito.
Per quanto non esposto sopra, si fa comunque riferimento al Regolamento del forum ed al Codice di Condotta della Comunità.
Avatar utente
cristian_c
Accecante Asceta
Accecante Asceta
Messaggi: 23422
Iscrizione: lunedì 29 ottobre 2007, 11:31

Re: [Progetto] [Olifant] programma antifurto pc!

Messaggio da cristian_c »

kokito » [url=http://forum.ubuntu-it.org/viewtopic.php?p=4164342#p4164342]40 minuti fa[/url] ha scritto:beh questo ci semplificherebbe le cose! sentiamo se i programmatori cosa ne pensano
Devo rivedere un sacco di cose su olifant, ci sono tante cose in arretrato. A breve mi rifaccio vivo su questi schermi :D
UP! Unreal Project: il futuro inizia qui. Crusade è tra noi
È scienza!
Avatar utente
davideddu
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1546
Iscrizione: martedì 2 novembre 2010, 20:35
Desktop: Unity
Distribuzione: Ubuntu 14.04 AMD64
Località: Pennsylvania, Stati Uniti
Contatti:

Re: [Progetto] [Olifant] programma antifurto pc!

Messaggio da davideddu »

Mi intronmetto...

Penso che onboard sia molto meno sicura di una tastiera integrata nel programma, dato che i tasti premuti possono essere interpretati da un keylogger...
Computer HP Probook 4510s CPU Intel Pentium Dual-Core T4400 Video Intel GMA 4500 Tablet ASUS Nexus 7 2013 (Wi-Fi)
Homepage - GitHub - Dropbox Referral - Copy Referral
Capisci di usare troppi editor di testo quando, cadendoti mezzo chilo di zucchero nel caffè, cerchi disperatamente di premere Ctrl+Z per rimediare... :D
Avatar utente
kokito
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 994
Iscrizione: sabato 16 dicembre 2006, 18:25
Località: si
Contatti:

Re: [Progetto] [Olifant] programma antifurto pc!

Messaggio da kokito »

Davideddu » [url=http://forum.ubuntu-it.org/viewtopic.php?p=4164930#p4164930]23/08/2012, 15:45[/url] ha scritto:Mi intronmetto...

Penso che onboard sia molto meno sicura di una tastiera integrata nel programma, dato che i tasti premuti possono essere interpretati da un keylogger...

ok ma per visionare il log il ladro dovrebbe aver accesso al pc, giusto?
Avatar utente
davideddu
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1546
Iscrizione: martedì 2 novembre 2010, 20:35
Desktop: Unity
Distribuzione: Ubuntu 14.04 AMD64
Località: Pennsylvania, Stati Uniti
Contatti:

Re: [Progetto] [Olifant] programma antifurto pc!

Messaggio da davideddu »

kokito » [url=http://forum.ubuntu-it.org/viewtopic.php?p=4166751#p4166751]sabato 25 agosto 2012, 15:15:56[/url] ha scritto:
Davideddu » [url=http://forum.ubuntu-it.org/viewtopic.php?p=4164930#p4164930]23/08/2012, 15:45[/url] ha scritto:Mi intronmetto...

Penso che onboard sia molto meno sicura di una tastiera integrata nel programma, dato che i tasti premuti possono essere interpretati da un keylogger...

ok ma per visionare il log il ladro dovrebbe aver accesso al pc, giusto?
E probabilmente anche di root: di default linux keylogger mi pare che salvi l'output o su /var/log o su /etc...
In ogni caso dovrebbe aver usato chroot da una live per installare lkl e creare il servizio all'avvio... Un ladro non penso che riporti il pc dal padrone dopo aver messo un keylogger...
Computer HP Probook 4510s CPU Intel Pentium Dual-Core T4400 Video Intel GMA 4500 Tablet ASUS Nexus 7 2013 (Wi-Fi)
Homepage - GitHub - Dropbox Referral - Copy Referral
Capisci di usare troppi editor di testo quando, cadendoti mezzo chilo di zucchero nel caffè, cerchi disperatamente di premere Ctrl+Z per rimediare... :D
Avatar utente
kokito
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 994
Iscrizione: sabato 16 dicembre 2006, 18:25
Località: si
Contatti:

Re: [Progetto] [Olifant] programma antifurto pc!

Messaggio da kokito »

appunto, per questo non capisco la tua osservazione! in che senso sarebbe meno sicura? (ammesso che al ladro interessi rubare il pc e non dati etc etc)
Avatar utente
davideddu
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1546
Iscrizione: martedì 2 novembre 2010, 20:35
Desktop: Unity
Distribuzione: Ubuntu 14.04 AMD64
Località: Pennsylvania, Stati Uniti
Contatti:

Re: [Progetto] [Olifant] programma antifurto pc!

Messaggio da davideddu »

kokito » [url=http://forum.ubuntu-it.org/viewtopic.php?p=4169606#p4169606]martedì 28 agosto 2012, 17:22:42[/url] ha scritto:appunto, per questo non capisco la tua osservazione! in che senso sarebbe meno sicura? (ammesso che al ladro interessi rubare il pc e non dati etc etc)
Potrebbe in qualche modo accedere alla password digitata. è molto semplice con grub accedere a una shell root con privilegi completi: basta accedere all'elenco degli OS, premere "e", andare nella linea del kernel (che comincia con linux) e sostituire alla fine "ro quiet splash" con "rw init=/bin/bash", che invece di avviare normalmente il sistema avvia solo bash (senza rete). Con un semplice "cat /var/log/keys.log | tail" si ottiene la password. Per questo vi dicevo che è importante impostare la password al GRUB/BURG al blocco del PC...
Computer HP Probook 4510s CPU Intel Pentium Dual-Core T4400 Video Intel GMA 4500 Tablet ASUS Nexus 7 2013 (Wi-Fi)
Homepage - GitHub - Dropbox Referral - Copy Referral
Capisci di usare troppi editor di testo quando, cadendoti mezzo chilo di zucchero nel caffè, cerchi disperatamente di premere Ctrl+Z per rimediare... :D
Avatar utente
cristian_c
Accecante Asceta
Accecante Asceta
Messaggi: 23422
Iscrizione: lunedì 29 ottobre 2007, 11:31

Re: [Progetto] [Olifant] programma antifurto pc!

Messaggio da cristian_c »

@Davideddu,
sono riuscito a implementare la soluzione che avevi escogitato qui: http://forum.ubuntu-it.org/viewtopic.ph ... 0#p4112127 :sisi:
In pratica, ora riesco a mantenere il focus sulla textbox anche quando premo i bottoni. In questo modo, il numero relativo al bottone premuto va a finire tra i caratteri della password digitato, come ci si dovrebbe aspettare :D
L'unico dubbio è se inserire il focus nel metodo init della finestra di dialogo, o nel set_properties. Oppure ancora fuori dai metodi in cima alla classe :shy:
UP! Unreal Project: il futuro inizia qui. Crusade è tra noi
È scienza!
Avatar utente
davideddu
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1546
Iscrizione: martedì 2 novembre 2010, 20:35
Desktop: Unity
Distribuzione: Ubuntu 14.04 AMD64
Località: Pennsylvania, Stati Uniti
Contatti:

Re: [Progetto] [Olifant] programma antifurto pc!

Messaggio da davideddu »

cristian_c [url=http://forum.ubuntu-it.org/viewtopic.php?p=4421115#p4421115][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:@Davideddu,
sono riuscito a implementare la soluzione che avevi escogitato qui: http://forum.ubuntu-it.org/viewtopic.ph ... 0#p4112127
In pratica, ora riesco a mantenere il focus sulla textbox anche quando premo i bottoni. In questo modo, il numero relativo al bottone premuto va a finire tra i caratteri della password digitato, come ci si dovrebbe aspettare
L'unico dubbio è se inserire il focus nel metodo init della finestra di dialogo, o nel set_properties. Oppure ancora fuori dai metodi in cima alla classe :shy:
Non pensavo che questo progetto fosse ancora attivo... Sono contento che tu ci sia riuscito :)
Io comunque GTK l'ho mollato, mi ha rotto veramente le scatole! Sono passato a Kivy, dovreste provarlo ;)

Comunque ricordo che avevate dei problemi con la sirena... adesso che ci penso ho provato un programma di antifurto, Prey, che non è nient'altro che uno script bash eseguito all'avvio che controlla periodicamente il server per vedere cosa deve fare. Tra le azioni possibili ci sono un blocco dello schermo (penso usi la schermata di blocco standard), una sirena a tutto volume che non si riesce proprio a spegnere (il bello è che non parte subito, quindi tu dici "non funziona" e ti metti a fare altro, e quando meno te lo aspetti ti fa saltare dalla sedia come se uscisse la bambina di "the ring" dallo schermo :D), e operazioni più elementari come il blocco dello schermo. Se voi riusciste a implementare anche il blocco completo del bootloader sarebbe perfetto :D
Computer HP Probook 4510s CPU Intel Pentium Dual-Core T4400 Video Intel GMA 4500 Tablet ASUS Nexus 7 2013 (Wi-Fi)
Homepage - GitHub - Dropbox Referral - Copy Referral
Capisci di usare troppi editor di testo quando, cadendoti mezzo chilo di zucchero nel caffè, cerchi disperatamente di premere Ctrl+Z per rimediare... :D
Avatar utente
cristian_c
Accecante Asceta
Accecante Asceta
Messaggi: 23422
Iscrizione: lunedì 29 ottobre 2007, 11:31

Re: [Progetto] [Olifant] programma antifurto pc!

Messaggio da cristian_c »

Io comunque GTK l'ho mollato, mi ha rotto veramente le scatole! Sono passato a Kivy, dovreste provarlo ; - )
Beh, non è proprio corretto parlare di gtk: http://en.wikipedia.org/wiki/WxWidgets :)
Comunque ricordo che avevate dei problemi con la sirena... adesso che ci penso ho provato un programma di antifurto, Prey, che non è nient'altro che uno script bash eseguito all'avvio che controlla periodicamente il server per vedere cosa deve fare. Tra le azioni possibili ci sono un blocco dello schermo (penso usi la schermata di blocco standard), una sirena a tutto volume che non si riesce proprio a spegnere (il bello è che non parte subito, quindi tu dici "non funziona" e ti metti a fare altro, e quando meno te lo aspetti ti fa saltare dalla sedia come se uscisse la bambina di "the ring" dallo schermo : - D), e operazioni più elementari come il blocco dello schermo. Se voi riusciste a implementare anche il blocco completo del bootloader sarebbe perfetto : - D
Tutto molto interessante :sisi:

Comunque, ho già riscontrato un problema: se avvio il programma e poi chiudo la finestra del tastierino numerico, ottengo nel terminale l'errore:

Codice: Seleziona tutto

Traceback (most recent call last):
  File "gui.py", line 142, in OnLockClick
    pwd = passdlg.getPasswd()
  File "gui.py", line 293, in getPasswd
    if passwd != conf_passwd:
NameError: global name 'passwd' is not defined
Eppure, la variabile è definita all'inizio della classe :o

Qualche idea? :D
UP! Unreal Project: il futuro inizia qui. Crusade è tra noi
È scienza!
Avatar utente
davideddu
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1546
Iscrizione: martedì 2 novembre 2010, 20:35
Desktop: Unity
Distribuzione: Ubuntu 14.04 AMD64
Località: Pennsylvania, Stati Uniti
Contatti:

Re: [Progetto] [Olifant] programma antifurto pc!

Messaggio da davideddu »

cristian_c [url=http://forum.ubuntu-it.org/viewtopic.php?p=4421515#p4421515][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:
Io comunque GTK l'ho mollato, mi ha rotto veramente le scatole! Sono passato a Kivy, dovreste provarlo ; - )
Beh, non è proprio corretto parlare di gtk: http://en.wikipedia.org/wiki/WxWidgets
Comunque ricordo che avevate dei problemi con la sirena... adesso che ci penso ho provato un programma di antifurto, Prey, che non è nient'altro che uno script bash eseguito all'avvio che controlla periodicamente il server per vedere cosa deve fare. Tra le azioni possibili ci sono un blocco dello schermo (penso usi la schermata di blocco standard), una sirena a tutto volume che non si riesce proprio a spegnere (il bello è che non parte subito, quindi tu dici "non funziona" e ti metti a fare altro, e quando meno te lo aspetti ti fa saltare dalla sedia come se uscisse la bambina di "the ring" dallo schermo : - D), e operazioni più elementari come il blocco dello schermo. Se voi riusciste a implementare anche il blocco completo del bootloader sarebbe perfetto : - D
Tutto molto interessante :sisi:

Comunque, ho già riscontrato un problema: se avvio il programma e poi chiudo la finestra del tastierino numerico, ottengo nel terminale l'errore:

Codice: Seleziona tutto

Traceback (most recent call last):
  File "gui.py", line 142, in OnLockClick
    pwd = passdlg.getPasswd()
  File "gui.py", line 293, in getPasswd
    if passwd != conf_passwd:
NameError: global name 'passwd' is not defined
Eppure, la variabile è definita all'inizio della classe :o

Qualche idea? :D
Ah ok giusto, basta :D
Dove posso scaricare i sorgenti per darvi un'occhiata? Comunque se il resto funziona puoi mettere un try che cattura le eccezioni di tipo NameError e tagli la testa al toro...

EDIT: ehm aspetta, hai detto "all'inizio della classe"...? Che ne diresti di richiamarla con self.passwd e non con passwd, che non esiste? :p
Computer HP Probook 4510s CPU Intel Pentium Dual-Core T4400 Video Intel GMA 4500 Tablet ASUS Nexus 7 2013 (Wi-Fi)
Homepage - GitHub - Dropbox Referral - Copy Referral
Capisci di usare troppi editor di testo quando, cadendoti mezzo chilo di zucchero nel caffè, cerchi disperatamente di premere Ctrl+Z per rimediare... :D
Avatar utente
cristian_c
Accecante Asceta
Accecante Asceta
Messaggi: 23422
Iscrizione: lunedì 29 ottobre 2007, 11:31

Re: [Progetto] [Olifant] programma antifurto pc!

Messaggio da cristian_c »

Ah ok giusto, basta :D
Dove posso scaricare i sorgenti per darvi un'occhiata? Comunque se il resto funziona puoi mettere un try che cattura le eccezioni di tipo NameError e tagli la testa al toro...
Io avevo già il codice nella mia home :D Comunque, ho controllato sia launchpad che questo topic e mi sono accorto che l'ultimo upload è stato fatto il 13 maggio del 2012. Credo che il pacchetto beta caricato sia lo stesso di quello linkato qui: http://forum.ubuntu-it.org/viewtopic.ph ... 0#p4078626 ;)
EDIT: ehm aspetta, hai detto "all'inizio della classe"...? Che ne diresti di richiamarla con self.passwd e non con passwd, che non esiste? :p
Il fatto è che all'inizio della classe non viene utilizzato il self per quella variabile :shy:
UP! Unreal Project: il futuro inizia qui. Crusade è tra noi
È scienza!
Avatar utente
davideddu
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1546
Iscrizione: martedì 2 novembre 2010, 20:35
Desktop: Unity
Distribuzione: Ubuntu 14.04 AMD64
Località: Pennsylvania, Stati Uniti
Contatti:

Re: [Progetto] [Olifant] programma antifurto pc!

Messaggio da davideddu »

cristian_c [url=http://forum.ubuntu-it.org/viewtopic.php?p=4421684#p4421684][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:
Ah ok giusto, basta!
Dove posso scaricare i sorgenti per darvi un'occhiata? Comunque se il resto funziona puoi mettere un try che cattura le eccezioni di tipo NameError e tagli la testa al toro...
Io avevo già il codice nella mia home :D Comunque, ho controllato sia launchpad che questo topic e mi sono accorto che l'ultimo upload è stato fatto il 13 maggio del 2012. Credo che il pacchetto beta caricato sia lo stesso di quello linkato qui: http://forum.ubuntu-it.org/viewtopic.ph ... 0#p4078626
EDIT: ehm aspetta, hai detto "all'inizio della classe"...? Che ne diresti di richiamarla con self.passwd e non con passwd, che non esiste?
Il fatto è che all'inizio della classe non viene utilizzato il self per quella variabile :shy:
[code2=python]class SettingColor(SettingItem):
popup = ObjectProperty(None, allownone=True) # <----
textinput = ObjectProperty(None)

# [...]

def _dismiss(self, *largs):
if self.popup: # <----
self.popup.dismiss()
self.popup = None[/code2]
Funziona benissimo :)

Se definisci una variabile subito dopo il tag "class", questo diventa un attributo di quell'oggetto, ergo dentro le funzioni lo devi richiamare con self.attributo.
Ricordati che "self" non è altro che l'istanza attuale dell'oggetto in questione, e che è solo una convenzione :) Puoi dargli un nome qualsiasi!

[code2=python]class MyObject(object):
variabile = "ciao"

def __init__(gatto):
gatto.funzione()

def funzione(cane):
print cane.variabile[/code2]
Istanziando l'oggetto MyObject verrà stampato "ciao", anche se al posto di self ho usato due cose diverse in ogni funzione :)

[code2=python]class MyObject(object):
variabile = "ciao"

def __init__(self):
self.funzione()

def funzione(self):
print self.variabile[/code2]
Questo codice funziona allo stesso modo del precedente!
Computer HP Probook 4510s CPU Intel Pentium Dual-Core T4400 Video Intel GMA 4500 Tablet ASUS Nexus 7 2013 (Wi-Fi)
Homepage - GitHub - Dropbox Referral - Copy Referral
Capisci di usare troppi editor di testo quando, cadendoti mezzo chilo di zucchero nel caffè, cerchi disperatamente di premere Ctrl+Z per rimediare... :D
Avatar utente
cristian_c
Accecante Asceta
Accecante Asceta
Messaggi: 23422
Iscrizione: lunedì 29 ottobre 2007, 11:31

Re: [Progetto] [Olifant] programma antifurto pc!

Messaggio da cristian_c »

Bravo Davideddu, non ci avevo pensato :vittoria:

Alcune cose, adesso:
- dopo aver digitato la password nel campo 'Choose password', devo attivare il campo 'Confirm password' per poter digitare la conferma. È la soluzione più corretta in termini di usabilità, secondo voi? :)
- dopo aver digitato la password nel campo 'Choose password', attivo il campo 'Confirm password'. Ma quando premo un qualsiasi bottone del tastierino numerico, viene stampato direttamente tutto insieme un numero di caratteri maggiore di un'unità rispetto a quello digitato in 'Choose password' e non uno soltanto, dato che ho premuto un solo bottone (esempio: se digito la password '1234' nel primo campo e poi, dopo aver attivato il secondo campo, premo il bottone '1', nel secondo campo appare '*****'). Sul terminale, non esce alcun messaggio in proposito :nono:
UP! Unreal Project: il futuro inizia qui. Crusade è tra noi
È scienza!
Avatar utente
davideddu
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1546
Iscrizione: martedì 2 novembre 2010, 20:35
Desktop: Unity
Distribuzione: Ubuntu 14.04 AMD64
Località: Pennsylvania, Stati Uniti
Contatti:

Re: [Progetto] [Olifant] programma antifurto pc!

Messaggio da davideddu »

cristian_c [url=http://forum.ubuntu-it.org/viewtopic.php?p=4422185#p4422185][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Bravo Davideddu, non ci avevo pensato :vittoria:

Alcune cose, adesso:
- dopo aver digitato la password nel campo 'Choose password', devo attivare il campo 'Confirm password' per poter digitare la conferma. È la soluzione più corretta in termini di usabilità, secondo voi? :)
Certo! Come può un programma indovinare se l'utente ha già finito di scrivere la password oppure no?
cristian_c [url=http://forum.ubuntu-it.org/viewtopic.php?p=4422185#p4422185][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto: - dopo aver digitato la password nel campo 'Choose password', attivo il campo 'Confirm password'. Ma quando premo un qualsiasi bottone del tastierino numerico, viene stampato direttamente tutto insieme un numero di caratteri maggiore di un'unità rispetto a quello digitato in 'Choose password' e non uno soltanto, dato che ho premuto un solo bottone (esempio: se digito la password '1234' nel primo campo e poi, dopo aver attivato il secondo campo, premo il bottone '1', nel secondo campo appare '*****'). Sul terminale, non esce alcun messaggio in proposito :nono:
Aggiungi un tasto in più e collegalo a una funzione che quando premuto stampa il contenuto di confirm password, così puoi vedere se puoi fare aggiustamenti del tipo
confirm_passwd.set_text(confirm_passwd.get_text[:-1])
Computer HP Probook 4510s CPU Intel Pentium Dual-Core T4400 Video Intel GMA 4500 Tablet ASUS Nexus 7 2013 (Wi-Fi)
Homepage - GitHub - Dropbox Referral - Copy Referral
Capisci di usare troppi editor di testo quando, cadendoti mezzo chilo di zucchero nel caffè, cerchi disperatamente di premere Ctrl+Z per rimediare... :D
Avatar utente
cristian_c
Accecante Asceta
Accecante Asceta
Messaggi: 23422
Iscrizione: lunedì 29 ottobre 2007, 11:31

Re: [Progetto] [Olifant] programma antifurto pc!

Messaggio da cristian_c »

Aggiungi un tasto in più e collegalo a una funzione che quando premuto stampa il contenuto di confirm password, così puoi vedere se puoi fare aggiustamenti del tipo
Ho aggiunto un bottone Print all'interfaccia. Ma se ripeto il test e poi premo il bottone, sul terminale viene stampato soltanto [] :o
UP! Unreal Project: il futuro inizia qui. Crusade è tra noi
È scienza!
Avatar utente
davideddu
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1546
Iscrizione: martedì 2 novembre 2010, 20:35
Desktop: Unity
Distribuzione: Ubuntu 14.04 AMD64
Località: Pennsylvania, Stati Uniti
Contatti:

Re: [Progetto] [Olifant] programma antifurto pc!

Messaggio da davideddu »

cristian_c [url=http://forum.ubuntu-it.org/viewtopic.php?p=4422465#p4422465][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:
Aggiungi un tasto in più e collegalo a una funzione che quando premuto stampa il contenuto di confirm password, così puoi vedere se puoi fare aggiustamenti del tipo
Ho aggiunto un bottone Print all'interfaccia. Ma se ripeto il test e poi premo il bottone, sul terminale viene stampato soltanto [] :o
Hai scritto qualcosa nel box di conferma?
E poi perché ti da una lista?
Mandami il pezzo di codice a cui stai lavorando...
Computer HP Probook 4510s CPU Intel Pentium Dual-Core T4400 Video Intel GMA 4500 Tablet ASUS Nexus 7 2013 (Wi-Fi)
Homepage - GitHub - Dropbox Referral - Copy Referral
Capisci di usare troppi editor di testo quando, cadendoti mezzo chilo di zucchero nel caffè, cerchi disperatamente di premere Ctrl+Z per rimediare... :D
Avatar utente
cristian_c
Accecante Asceta
Accecante Asceta
Messaggi: 23422
Iscrizione: lunedì 29 ottobre 2007, 11:31

Re: [Progetto] [Olifant] programma antifurto pc!

Messaggio da cristian_c »

Hai scritto qualcosa nel box di conferma?
E poi perché ti da una lista?
Mandami il pezzo di codice a cui stai lavorando...
Sì, come da test. All'inizio della classe c'è:

Codice: Seleziona tutto

    passwd = []
    conf_passwd = []
Comunque, penso di aver trovato l'inghippo. La funzione è:

Codice: Seleziona tutto

    def getPasswd(self):
	if self.passwd != self.conf_passwd:
		showError('Error!','Password and confirmation do not match.')
	else:
		return ''.join(self.passwd)
ma nel codice c'è:

Codice: Seleziona tutto

		if choice == 0:
        		passdlg = MyDialog2(self,-1)
			passdlg.clearAll() #TODO we need this because of a bug
			passdlg.ShowModal()
			pwd = passdlg.getPasswd()
Il punto è che non so come risolvere :shy:
UP! Unreal Project: il futuro inizia qui. Crusade è tra noi
È scienza!
Avatar utente
davideddu
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1546
Iscrizione: martedì 2 novembre 2010, 20:35
Desktop: Unity
Distribuzione: Ubuntu 14.04 AMD64
Località: Pennsylvania, Stati Uniti
Contatti:

Re: [Progetto] [Olifant] programma antifurto pc!

Messaggio da davideddu »

cristian_c [url=http://forum.ubuntu-it.org/viewtopic.php?p=4422483#p4422483][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:
Hai scritto qualcosa nel box di conferma?
E poi perché ti da una lista?
Mandami il pezzo di codice a cui stai lavorando...
Sì, come da test. All'inizio della classe c'è:

Codice: Seleziona tutto

    passwd = []
    conf_passwd = []
Comunque, penso di aver trovato l'inghippo. La funzione è:

Codice: Seleziona tutto

    def getPasswd(self):
	if self.passwd != self.conf_passwd:
		showError('Error!','Password and confirmation do not match.')
	else:
		return ''.join(self.passwd)
ma nel codice c'è:

Codice: Seleziona tutto

		if choice == 0:
        		passdlg = MyDialog2(self,-1)
			passdlg.clearAll() #TODO we need this because of a bug
			passdlg.ShowModal()
			pwd = passdlg.getPasswd()
Il punto è che non so come risolvere :shy:
  1. Perché "passwd" e "conf_passwd" sono liste e non stringhe?
  2. Dal codice che hai postato (a meno che tu non ne abbia tolto qualche pezzo) non mi pare che tu stia aggiornando self.passwd con il valore dell'interfaccia, e dal momento che tu non stai usando Kivy devi farlo a mano :)
  3. Mi mandi la classe per intero?
Computer HP Probook 4510s CPU Intel Pentium Dual-Core T4400 Video Intel GMA 4500 Tablet ASUS Nexus 7 2013 (Wi-Fi)
Homepage - GitHub - Dropbox Referral - Copy Referral
Capisci di usare troppi editor di testo quando, cadendoti mezzo chilo di zucchero nel caffè, cerchi disperatamente di premere Ctrl+Z per rimediare... :D
Avatar utente
cristian_c
Accecante Asceta
Accecante Asceta
Messaggi: 23422
Iscrizione: lunedì 29 ottobre 2007, 11:31

Re: [Progetto] [Olifant] programma antifurto pc!

Messaggio da cristian_c »

Perché "passwd" e "conf_passwd" sono liste e non stringhe?
Sono liste di caratteri :)
Dal codice che hai postato (a meno che tu non ne abbia tolto qualche pezzo) non mi pare che tu stia aggiornando self.passwd con il valore dell'interfaccia, e dal momento che tu non stai usando Kivy devi farlo a mano :)
Questo lavoro lo fa __onKeyClick :)
Mi mandi la classe per intero?

Codice: Seleziona tutto

class MyDialog2(wx.Dialog):

    passwd = []
    conf_passwd = []

    def __init__(self, *args, **kwds):
        # begin wxGlade: MyDialog2.__init__
        kwds["style"] = wx.DEFAULT_DIALOG_STYLE
        wx.Dialog.__init__(self, *args, **kwds)
        self.choosePswdLabel = wx.StaticText(self, -1, "Choose password", style=wx.ALIGN_CENTRE)
        self.choosePswdBox = wx.TextCtrl(self, -1, "", style=wx.TE_PASSWORD)
        self.ConfirmPswdLabel = wx.StaticText(self, -1, "Confirm password", style=wx.ALIGN_CENTRE)
        self.ConfirmPswdBox = wx.TextCtrl(self, -1, "", style=wx.TE_PASSWORD)
        self.KeypadButton_1 = wx.Button(self, -1, "1")
        self.KeypadButton_2 = wx.Button(self, -1, "2")
        self.KeypadButton_3 = wx.Button(self, -1, "3")
        self.KeypadButton_4 = wx.Button(self, -1, "4")
        self.KeypadButton_5 = wx.Button(self, -1, "5")
        self.KeypadButton_6 = wx.Button(self, -1, "6")
        self.KeypadButton_7 = wx.Button(self, -1, "7")
        self.KeypadButton_8 = wx.Button(self, -1, "8")
        self.KeypadButton_9 = wx.Button(self, -1, "9")
        self.KeypadButton_DEL = wx.Button(self, -1, "DEL")
        self.KeypadButton_0 = wx.Button(self, -1, "0")
        self.KeypadButtonButton_Enable = wx.Button(self, -1, "ENABLE")
        self.KeypadButton_Print = wx.Button(self, -1, "PRINT")

        self.__set_properties()
        self.__do_layout()
        # end wxGlade

        self.focus = self.choosePswdBox  

    def __set_properties(self):
        # begin wxGlade: MyDialog2.__set_properties
        self.SetTitle("dialog_3")
        self.SetSize((300, 370))
        self.choosePswdLabel.SetFont(wx.Font(11, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, "Ubuntu"))
        self.choosePswdBox.SetMinSize((150, 30))
        self.ConfirmPswdLabel.SetFont(wx.Font(11, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, "Ubuntu"))
        self.ConfirmPswdBox.SetMinSize((150, 30))
        self.KeypadButton_1.SetMinSize((50, 50))
        self.KeypadButton_2.SetMinSize((50, 50))
        self.KeypadButton_3.SetMinSize((50, 50))
        self.KeypadButton_4.SetMinSize((50, 50))
        self.KeypadButton_5.SetMinSize((50, 50))
        self.KeypadButton_6.SetMinSize((50, 50))
        self.KeypadButton_7.SetMinSize((50, 50))
        self.KeypadButton_8.SetMinSize((50, 50))
        self.KeypadButton_9.SetMinSize((50, 50))
        self.KeypadButton_DEL.SetMinSize((50, 50))
        self.KeypadButton_0.SetMinSize((50, 50))
        self.KeypadButtonButton_Enable.SetMinSize((50, 50))
        self.KeypadButtonButton_Enable.SetFont(wx.Font(7, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, ""))
        self.KeypadButton_Print.SetMinSize((50, 50))
        # end wxGlade

	self.choosePswdBox.SetEditable(False)
        self.KeypadButton_1.Bind(wx.EVT_BUTTON,self.__onKeyClick)#,self.button_1_u)
        self.KeypadButton_2.Bind(wx.EVT_BUTTON,self.__onKeyClick)#,self.button_1_u)
        self.KeypadButton_3.Bind(wx.EVT_BUTTON,self.__onKeyClick)#,self.button_1_u)
        self.KeypadButton_4.Bind(wx.EVT_BUTTON,self.__onKeyClick)#,self.button_1_u)
        self.KeypadButton_5.Bind(wx.EVT_BUTTON,self.__onKeyClick)#,self.button_1_u)
        self.KeypadButton_6.Bind(wx.EVT_BUTTON,self.__onKeyClick)#,self.button_1_u)
        self.KeypadButton_7.Bind(wx.EVT_BUTTON,self.__onKeyClick)#,self.button_1_u)
        self.KeypadButton_8.Bind(wx.EVT_BUTTON,self.__onKeyClick)#,self.button_1_u)
        self.KeypadButton_9.Bind(wx.EVT_BUTTON,self.__onKeyClick)#,self.button_1_u)
        self.KeypadButton_DEL.Bind(wx.EVT_BUTTON,self.__onKeyClick)#,self.button_1_u)
        self.KeypadButton_0.Bind(wx.EVT_BUTTON,self.__onKeyClick)#,self.button_1_u)
        self.KeypadButtonButton_Enable.Bind(wx.EVT_BUTTON,self.__onKeyClick)#,self.button_1_u)
        self.KeypadButton_Print.Bind(wx.EVT_BUTTON,self.__onPrintClick)#,self.button_1_u)
        self.choosePswdBox.Bind(wx.EVT_SET_FOCUS, self.__onPswdBoxFocused)
        self.ConfirmPswdBox.Bind(wx.EVT_SET_FOCUS, self.__onPswdBoxFocused)
	#self.choose_pswd.SetEditable(False)

    def __do_layout(self):
        # begin wxGlade: MyDialog2.__do_layout
        sizerPswdDialog = wx.BoxSizer(wx.VERTICAL)
        GridPswdDialog_5 = wx.GridSizer(2, 3, 0, 0)
        GridPswdDialog_4 = wx.GridSizer(2, 3, 0, 0)
        GridPswdDialog_3 = wx.GridSizer(2, 3, 0, 0)
        GridPswdDialog_2 = wx.GridSizer(1, 3, 0, 0)
        GridPswdDialog_1 = wx.GridSizer(1, 3, 0, 0)
        sizerPswdDialog.Add(self.choosePswdLabel, 0, wx.TOP | wx.ALIGN_CENTER_HORIZONTAL, 10)
        sizerPswdDialog.Add(self.choosePswdBox, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 6)
        sizerPswdDialog.Add(self.ConfirmPswdLabel, 0, wx.ALIGN_CENTER_HORIZONTAL, 0)
        sizerPswdDialog.Add(self.ConfirmPswdBox, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 6)
        GridPswdDialog_1.Add(self.KeypadButton_1, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 0)
        GridPswdDialog_1.Add(self.KeypadButton_2, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 0)
        GridPswdDialog_1.Add(self.KeypadButton_3, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 0)
        sizerPswdDialog.Add(GridPswdDialog_1, 1, wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 10)
        GridPswdDialog_2.Add(self.KeypadButton_4, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 0)
        GridPswdDialog_2.Add(self.KeypadButton_5, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 0)
        GridPswdDialog_2.Add(self.KeypadButton_6, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 0)
        sizerPswdDialog.Add(GridPswdDialog_2, 1, wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 10)
        GridPswdDialog_3.Add(self.KeypadButton_7, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 0)
        GridPswdDialog_3.Add(self.KeypadButton_8, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 0)
        GridPswdDialog_3.Add(self.KeypadButton_9, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 0)
        sizerPswdDialog.Add(GridPswdDialog_3, 1, wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 10)
        GridPswdDialog_4.Add(self.KeypadButton_DEL, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 0)
        GridPswdDialog_4.Add(self.KeypadButton_0, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 0)
        GridPswdDialog_4.Add(self.KeypadButtonButton_Enable, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 0)
        sizerPswdDialog.Add(GridPswdDialog_4, 1, wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 10)
        GridPswdDialog_5.Add(self.KeypadButton_Print, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 0)
        sizerPswdDialog.Add(GridPswdDialog_5, 1, wx.BOTTOM | wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 10)
        self.SetSizer(sizerPswdDialog)
        self.Layout()
        # end wxGlade

    def __onKeyClick(self,evt):
	button = (evt.GetEventObject()).Label
	if not ( (button == 'DEL') or (button == 'ENABLE') ):
		self.passwd.append(button)
		self.focus.SetValue(''.join(self.passwd))
	elif button == 'DEL' and (len(self.passwd)>0):
		self.passwd.pop()
		self.focus.SetValue(''.join(self.passwd))
	else:
		self.Close()

    def __onPrintClick(self,evt):
	print self.conf_passwd

    def __onPswdBoxFocused(self, evt):
	self.focus = evt.GetEventObject()

    def getPasswd(self):
	if self.passwd != self.conf_passwd:
		showError('Error!','Password and confirmation do not match.')
	else:
		return ''.join(self.passwd)

    def clearAll(self):
		self.passwd = []
		self.conf_passwd = []
UP! Unreal Project: il futuro inizia qui. Crusade è tra noi
È scienza!
Avatar utente
davideddu
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1546
Iscrizione: martedì 2 novembre 2010, 20:35
Desktop: Unity
Distribuzione: Ubuntu 14.04 AMD64
Località: Pennsylvania, Stati Uniti
Contatti:

Re: [Progetto] [Olifant] programma antifurto pc!

Messaggio da davideddu »

cristian_c [url=http://forum.ubuntu-it.org/viewtopic.php?p=4422496#p4422496][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:
Perché "passwd" e "conf_passwd" sono liste e non stringhe?
Sono liste di caratteri :)
Dal codice che hai postato (a meno che tu non ne abbia tolto qualche pezzo) non mi pare che tu stia aggiornando self.passwd con il valore dell'interfaccia, e dal momento che tu non stai usando Kivy devi farlo a mano :)
Questo lavoro lo fa __onKeyClick :)
Mi mandi la classe per intero?

Codice: Seleziona tutto

[..]
E certo che non funziona! conf_passwd non lo aggiorni da nessuna parte! Dovresti controllare quale casella è in focus, e impostare la variabile corrispondente. Comunque secondo me è meglio una stringa: per aggiungere una lettera anziché "append" usi variabile += lettera, per toglierla usi variabile = variabile[:-1].

Alcuni consigli per accorciare il tutto:
[code] self.KeypadButton_1.SetMinSize((50, 50))
self.KeypadButton_2.SetMinSize((50, 50))
self.KeypadButton_3.SetMinSize((50, 50))
self.KeypadButton_4.SetMinSize((50, 50))
self.KeypadButton_5.SetMinSize((50, 50))
self.KeypadButton_6.SetMinSize((50, 50))
self.KeypadButton_7.SetMinSize((50, 50))
self.KeypadButton_8.SetMinSize((50, 50))
self.KeypadButton_9.SetMinSize((50, 50))

# [...]

self.KeypadButton_1.Bind(wx.EVT_BUTTON,self.__onKeyClick)#,self.button_1_u)
self.KeypadButton_2.Bind(wx.EVT_BUTTON,self.__onKeyClick)#,self.button_1_u)
self.KeypadButton_3.Bind(wx.EVT_BUTTON,self.__onKeyClick)#,self.button_1_u)
self.KeypadButton_4.Bind(wx.EVT_BUTTON,self.__onKeyClick)#,self.button_1_u)
self.KeypadButton_5.Bind(wx.EVT_BUTTON,self.__onKeyClick)#,self.button_1_u)
self.KeypadButton_6.Bind(wx.EVT_BUTTON,self.__onKeyClick)#,self.button_1_u)
self.KeypadButton_7.Bind(wx.EVT_BUTTON,self.__onKeyClick)#,self.button_1_u)
self.KeypadButton_8.Bind(wx.EVT_BUTTON,self.__onKeyClick)#,self.button_1_u)
self.KeypadButton_9.Bind(wx.EVT_BUTTON,self.__onKeyClick)#,self.button_1_u)[/code]

Questo codice è parecchio ridondante: crei una lista e poi imposti tutti i callback e gli attributi con un ciclo for.

[code] if not ( (button == 'DEL') or (button == 'ENABLE') ):[/code]
Pura pignoleria :D
Le keywords "elif" escludono le precedenti: se consideri prima il caso DEL, poi ENTER, puoi usare else per considerare tutti gli altri casi e cioè i numeri ;)
Computer HP Probook 4510s CPU Intel Pentium Dual-Core T4400 Video Intel GMA 4500 Tablet ASUS Nexus 7 2013 (Wi-Fi)
Homepage - GitHub - Dropbox Referral - Copy Referral
Capisci di usare troppi editor di testo quando, cadendoti mezzo chilo di zucchero nel caffè, cerchi disperatamente di premere Ctrl+Z per rimediare... :D
Scrivi risposta

Ritorna a “Progetti della Comunità”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 6 ospiti