Re: [Python] Interfacce grafiche

2007-12-08 Per discussione Gian Mario Tagliaretti
Il 08/12/07, Christian<[EMAIL PROTECTED]> ha scritto:

accidentalmente non ho risposto alla lista, rimando.

> Grazie intanto per la risposta.
> Solo un ultimo dettaglio:
> parlando con un amico questo mi ha detto che per usare le Qt senza
> licenza non devo chiudere il codice (come hai detto anche tu) ma in
> aggiunta mi ha detto che devo rilasciarlo, ossia metterlo a disposizione
> su un mio sito o su un altro (tipo sourceforge).
> E' corretto?

Dipende per che audience sviluppi l'applicazione, se è un'applicazione
che sviluppi per un tuo cliente e la rilasci sotto GPL i sorgenti
vanno dati solo a quest'ultimo, se rilasci (o vendi) i binari, ad
esempio su un tuo sito web, dichiarando che è sotto licenza GPL devi
rendere disponibili anche i sorgenti.

Questa  è una rapida ed imprecisa descrizione, per i dettagli ti
consiglio di leggere le rispettive licenze delle Qt ed il testo della
GPL oppure di scrivere in una mailing list dedicata all'argomento,
e.g. Assoli.

ciao
-- 
Gian Mario Tagliaretti
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Interfacce grafiche

2007-12-08 Per discussione Pietro Battiston
Christian ha scritto:
> Salve a tutti,
> cosa mi consigliate di utilizzare per realizzare interfacce grafiche con
> Python?
> Io avrei da dover personalizzare del software sviluppo con le Qt ma se
> questa personalizzazione fosse per usi commerciali mi pare di aver
> capito che occorrano delle licenze... In realtà ho un po di confusione
> in proposito... ossia ho letto che per linux la libreria sarebbe libera
> mentre sotto Windows lo sarebbe solo per usi non commerciali. Ora questo
> è riguarda la piattaforma di sviluppo potendo quindi sviluppare sotto
> linux e rilasciare tranquillamente anche per utenti windows oppure no?
> Per quanto riguarda invece le Gtk mi sembra che il discorso sia diverso,
> ossia che non ci siano particolari restrizioni ne sulla piattaforma ne
> sull'uso (commerciale o no).
> Potete consigliarmi?
>   

Rispondo io con un'altra domanda: perché non wxwidgets? Funziona ovunque 
(OK, non su windows mobile, QUASI ovunque) e ovunque è nativo, perché 
usa le librerie "autoctone".

Io l'ho usato poco (e comunque con successo), e mi sembra la soluzione 
definitiva... ma non ho mai fatto una grande attenzione alle performance 
(non ne avevo bisogno per il mio semplicissimo programma).

Qualcuno ne potrebbe dire qualcosa di più preciso?

Pietro
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Interfacce grafiche

2007-12-08 Per discussione Daniele Varrazzo
Pietro Battiston ha scritto:
> Christian ha scritto:
>> Salve a tutti,
>> cosa mi consigliate di utilizzare per realizzare interfacce grafiche con
>> Python?
>> Io avrei da dover personalizzare del software sviluppo con le Qt ma se
>> questa personalizzazione fosse per usi commerciali mi pare di aver
>> capito che occorrano delle licenze... In realtà ho un po di confusione
>> in proposito... ossia ho letto che per linux la libreria sarebbe libera
>> mentre sotto Windows lo sarebbe solo per usi non commerciali. Ora questo
>> è riguarda la piattaforma di sviluppo potendo quindi sviluppare sotto
>> linux e rilasciare tranquillamente anche per utenti windows oppure no?
>> Per quanto riguarda invece le Gtk mi sembra che il discorso sia diverso,
>> ossia che non ci siano particolari restrizioni ne sulla piattaforma ne
>> sull'uso (commerciale o no).
>> Potete consigliarmi?
>>   
> 
> Rispondo io con un'altra domanda: perché non wxwidgets? Funziona ovunque 
> (OK, non su windows mobile, QUASI ovunque) e ovunque è nativo, perché 
> usa le librerie "autoctone".
> 
> Io l'ho usato poco (e comunque con successo), e mi sembra la soluzione 
> definitiva... ma non ho mai fatto una grande attenzione alle performance 
> (non ne avevo bisogno per il mio semplicissimo programma).
> 
> Qualcuno ne potrebbe dire qualcosa di più preciso?

Quoto.

Ho usato estensivamente sia Wx che Qt.

Le Qt sono più raffinate, non c'è che dire. Per soli meriti tecnici sono 
superiori a ogni altro sistema di widgets. Ma:

  - se vuoi scrivere un programma commerciale e non vuoi pagare licenze di 
sviluppo

oppure

  - se vuoi scrivere o contribuire a programmi open *che NON siano GPL*

allora tieniti lontano dalle Qt, altrimenti la tua testa esploderà :)

Riguardo il secondo punto, la faccenda è intricata, ma sostanzialmente Qt lega 
male con qualunque licenza open che non sia GPL. Per esempio se tu volessi 
fare un frontend per PostgreSQL (licenza BSD) o per Subversion (Apache/BSD) il 
tuo programma non potrà mai essere distribuito insieme a questi package ma 
dovrà sempre essere "a parte".

Quindi se hai una vaga, minima e remota possibilità di cadere in una delle 
voci di sopra, ti consiglio di passare direttamente a wxWidgets/wxPython, che 
non hanno restrizioni di licenza, hanno una ottima documentazione (e che puoi 
praticamente imparare solo guardando la demo) e hanno un aspetto decente anche 
su Windows.

-- 
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Interfacce grafiche

2007-12-08 Per discussione Gian Mario Tagliaretti
2007/12/8, Daniele Varrazzo <[EMAIL PROTECTED]>:

> Le Qt sono più raffinate, non c'è che dire. Per soli meriti tecnici sono
> superiori a ogni altro sistema di widgets. Ma:

Mi ero tenuto lontano da questioni tecniche ma tu mi ci tiri dentro :).

La tua è una *rispettabilissima* opinione personale, non si può dire
in assoluto che le Qt siano migliori, così come non lo si può dire di
altri toolkit.

> Quindi se hai una vaga, minima e remota possibilità di cadere in una delle
> voci di sopra, ti consiglio di passare direttamente a wxWidgets/wxPython, che
> non hanno restrizioni di licenza, hanno una ottima documentazione (e che puoi
> praticamente imparare solo guardando la demo) e hanno un aspetto decente anche
> su Windows.

Tutto si può dire delle wx ma non che abbiano un'ottima documentazione.

Il discorso sui toolkit è come quello su quale sia la migliore IDE...

ciao
-- 
Gian Mario Tagliaretti
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Interfacce grafiche

2007-12-08 Per discussione Daniele Varrazzo
Gian Mario Tagliaretti ha scritto:
> 2007/12/8, Daniele Varrazzo <[EMAIL PROTECTED]>:
> 
>> Le Qt sono più raffinate, non c'è che dire. Per soli meriti tecnici sono
>> superiori a ogni altro sistema di widgets. Ma:
> 
> Mi ero tenuto lontano da questioni tecniche ma tu mi ci tiri dentro :).
> 
> La tua è una *rispettabilissima* opinione personale, non si può dire
> in assoluto che le Qt siano migliori, così come non lo si può dire di
> altri toolkit.
> 
>> Quindi se hai una vaga, minima e remota possibilità di cadere in una delle
>> voci di sopra, ti consiglio di passare direttamente a wxWidgets/wxPython, che
>> non hanno restrizioni di licenza, hanno una ottima documentazione (e che puoi
>> praticamente imparare solo guardando la demo) e hanno un aspetto decente 
>> anche
>> su Windows.
> 
> Tutto si può dire delle wx ma non che abbiano un'ottima documentazione.
> 
> Il discorso sui toolkit è come quello su quale sia la migliore IDE...

Ok, no flamewar, plz.

Ho usato entrambi i framework e questo è il mio giudizio. Passo e chiudo.

-- 
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Interfacce grafiche

2007-12-08 Per discussione Pietro Battiston
Pietro Battiston ha scritto:
> Rispondo io con un'altra domanda: perché non wxwidgets? Funziona ovunque 
> (OK, non su windows mobile, QUASI ovunque) e ovunque è nativo, perché 
> usa le librerie "autoctone".
>   

Mi autorispondo per una piccola precisazione, anche se infima, forse 
scontata e forse OT: wxwidgets non funziona /con python/ su Windows 
Mobile; in generale non so.

Pietro
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python logging

2007-12-08 Per discussione dialtone

On 2 Dec, 10:27 pm, [EMAIL PROTECTED] wrote:
Non ho mai sentito niente del genere. Il modulo logging non ha bug 
aperti.
Vedi se ti dà indicazioni maggiori. Lo sai che il nostro Splendido 
Presidente

a volte � un po' duro nei suoi giudizi :)


Lo sono ma sempre con una ragione :).
Per quanto ne so io, il modulo è sicuro. Nella parte di sorgenti che ho 
letto,
mi sembra che le zone critiche siano protette da lock. Non l'ho 
sottoposto a
chissà che analisi, ma logging è un modulo molto usato da tantissime 
persone,
tanto che di logger alternativi non ne è spuntato quasi nessuno. Direi 
che, se

non altro, ad essere thread-safe ci prova :)


Non hai guardato troppo bene diciamo :). Anche se il problema e` piu` 
generalizzato del semplice modulo logging (che comunque ha problemi di 
suo).


In realta` il problema principale e` che nessun fd in python e` 
threadsafe.
E` un baco noto e non credo lo sistemeranno, tutti gli fd acquisiscono e 
rilasciano lock nel momento sbagliato.


Inoltre ti ricordo sempre questo:

import logging, threading

class C(object):
  def __init__(self):
  print threading.currentThread()
  def __del__(self):
  print threading.currentThread()
  logging.warn('deleted %r' % self)

if __name__ == '__main__':
  c = C()


:)
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Interfacce grafiche

2007-12-08 Per discussione Enrico Franchi

On Dec 8, 2007, at 1:01 PM, Daniele Varrazzo wrote:

> Riguardo il secondo punto, la faccenda è intricata, ma  
> sostanzialmente Qt lega
> male con qualunque licenza open che non sia GPL. Per esempio se tu  
> volessi
> fare un frontend per PostgreSQL (licenza BSD) o per Subversion  
> (Apache/BSD) il
> tuo programma non potrà mai essere distribuito insieme a questi  
> package ma
> dovrà sempre essere "a parte".


Non mi risulta *affatto*. Da codice GPL si può chiamare senza problemi  
codice sotto BSD, Apache/BSD, MIT etc.

E' il contrario che è un problema. D'altra parte leggi la BSD: trova  
dove sta scritto che una libreria sotto tale licenza non possa essere  
chiamata da codice sotto GPL.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Interfacce grafiche

2007-12-08 Per discussione Daniele Varrazzo
Enrico Franchi ha scritto:
> On Dec 8, 2007, at 1:01 PM, Daniele Varrazzo wrote:
> 
>> Riguardo il secondo punto, la faccenda è intricata, ma  
>> sostanzialmente Qt lega
>> male con qualunque licenza open che non sia GPL. Per esempio se tu  
>> volessi
>> fare un frontend per PostgreSQL (licenza BSD) o per Subversion  
>> (Apache/BSD) il
>> tuo programma non potrà mai essere distribuito insieme a questi  
>> package ma
>> dovrà sempre essere "a parte".
> 
> 
> Non mi risulta *affatto*. Da codice GPL si può chiamare senza problemi  
> codice sotto BSD, Apache/BSD, MIT etc.
> 
> E' il contrario che è un problema. D'altra parte leggi la BSD: trova  
> dove sta scritto che una libreria sotto tale licenza non possa essere  
> chiamata da codice sotto GPL.

Sto parlando di distribuzione, non di utilizzo.

Es. Il dizionario italiano per il PostgreSQL 
(http://www.develer.com/~piro/ispell-italian/) è rilasciato sotto licenza GPL 
(perché nasce da un progetto GPL). Non può essere *incluso nel package* di 
PostgreSQL perché le due licenze sono incompatibili.

Questo non vuol dire che non possa essere usato, ma va scaricato da un'altra 
parte e messo insieme "a valle", dall'assemblatore di una distro o dall'utente 
finale.

-- 
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Interfacce grafiche

2007-12-08 Per discussione Enrico Franchi

On Dec 8, 2007, at 5:12 PM, Daniele Varrazzo wrote:

> Sto parlando di distribuzione, non di utilizzo.
>
> Es. Il dizionario italiano per il PostgreSQL
> (http://www.develer.com/~piro/ispell-italian/) è rilasciato sotto  
> licenza GPL
> (perché nasce da un progetto GPL). Non può essere *incluso nel  
> package* di
> PostgreSQL perché le due licenze sono incompatibili.
>
> Questo non vuol dire che non possa essere usato, ma va scaricato da  
> un'altra
> parte e messo insieme "a valle", dall'assemblatore di una distro o  
> dall'utente
> finale.

Certo, ma è sempre il problema opposto. Ovvero, il front-end qt per  
postgres non può essere distribuito
assieme a postgres, ma viceversa puoi distribuire postgres assieme al  
front-end. Buffo, ma possibile.

Comunque sostanzialmente io ho letto la tua frase all'inverso.

Tornando a noi, posto che io pure se non ho un buon motivo per usare  
GPL non la uso, complessivamente se dovessi scegliere una GUI cross- 
platform, credo che userei Qt e mi rassegnerei a GPL. Purtroppo GTK è  
ancora balzana sotto OS X (e io ci sviluppo, figuriamoci se non mi  
interessa che sia comodo! :) ). Tkinter è ottimo per piccole cose,  
frontend buttati su al volo tanto per, ma è osceno da vedere (a meno  
di non fare *molta* attenzione).

wx continua a non convincermi. Tutt'ora non ho visto applicazioni wx  
decenti sotto OS X, mentre ne ho viste abbastanza Qt. Delle quali  
almeno una è piccola abbastanza da farmi pensare che non ci siano  
uccisi sopra. Oltre che ho visto che con un minimo di accortezza è  
abbastanza facile fare cose decorose sotto OS X con Qt.

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python logging

2007-12-08 Per discussione Daniele Varrazzo
[EMAIL PROTECTED] ha scritto:
> On 2 Dec, 10:27 pm, [EMAIL PROTECTED] wrote:
>> Non ho mai sentito niente del genere. Il modulo logging non ha bug 
>> aperti.
>> Vedi se ti d� indicazioni maggiori. Lo sai che il nostro Splendido 
>> Presidente
>> a volte � un po' duro nei suoi giudizi :)
> 
> Lo sono ma sempre con una ragione :).
>> Per quanto ne so io, il modulo � sicuro. Nella parte di sorgenti che 
>> ho letto,
>> mi sembra che le zone critiche siano protette da lock. Non l'ho 
>> sottoposto a
>> chiss� che analisi, ma logging � un modulo molto usato da tantissime 
>> persone,
>> tanto che di logger alternativi non ne � spuntato quasi nessuno. Direi 
>> che, se
>> non altro, ad essere thread-safe ci prova :)
> 
> Non hai guardato troppo bene diciamo :). Anche se il problema e` piu` 
> generalizzato del semplice modulo logging (che comunque ha problemi di 
> suo).
> 
> In realta` il problema principale e` che nessun fd in python e` threadsafe.
> E` un baco noto e non credo lo sistemeranno, tutti gli fd acquisiscono e 
> rilasciano lock nel momento sbagliato.

Ok, allora il buon Giovanni avrà problemi con qualunque cosa multi-thread, non 
solo col modulo di logging. Direi che può stare "tranquillo" :)

Il problema che indichi è interessante: hai un riferimento?

> Inoltre ti ricordo sempre questo:
> 
> import logging, threading
> 
> class C(object):
>   def __init__(self):
>   print threading.currentThread()
>   def __del__(self):
>   print threading.currentThread()
>   logging.warn('deleted %r' % self)
> 
> if __name__ == '__main__':
>   c = C()

L'output dello script è:

 <_MainThread(MainThread, started)>
 <_DummyThread(Dummy-1, started daemon)>
 Exception exceptions.AttributeError: "'NoneType' object has no
 attribute 'warn'" in > ignored

Mi sembra più un problema di interazione tra thread e distruttori che tra 
logger e thread, visto che il secondo print stampa "<_DummyThread(Dummy-1, 
started daemon)>".

In particolare, mi sembra che il distruttore di c viene chiamato quando 
l'interprete è già in fase di cancellazione: se aggiungi un "del c" come 
ultima istruzione dello script l'errore (intendo il "DummyThread") non si 
presenta (perché il distruttore viene invocato quando l'interprete ha ancora 
tutte le rotelle a posto):

 <_MainThread(MainThread, started)>
 <_MainThread(MainThread, started)>
 WARNING:root:deleted <__main__.C object at 0xb7c7eeac>

Inoltre il problema è nella funzione di modulo "logger.warn()", non nei logger 
in sé. Questo ad esempio funziona, ed è un caso più verosimile di uso dei 
logger:

 import logging, threading

 logging.basicConfig()
 logger = logging.getLogger()

 class C(object):
 def __init__(self):
 print threading.currentThread()
 def __del__(self):
 print threading.currentThread()
 # "logger", non "logging"
 logger.warn('deleted %r' % self)

 if __name__ == '__main__':
 c = C()

L'output in questo caso è:

 <_MainThread(MainThread, started)>
 <_DummyThread(Dummy-1, started daemon)>
 WARNING:root:deleted <__main__.C object at 0xb7c54ecc>

dove il logger ha funzionato bene anche se l'interprete principale è stato già 
distrutto.

A mio giudizio questi piccoli glitch non giustificano la riscrittura di un 
sistema di logging da zero per la propria applicazione. Tu conosci alternative 
già cotte, esenti da problemi e adeguatamente flessibili?

Conosci altri problemi che ti fanno dire che il moduo logging "comunque ha 
problemi di suo"?

A presto!

-- 
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Interfacce grafiche

2007-12-08 Per discussione Gian Mario Tagliaretti
2007/12/8, Daniele Varrazzo <[EMAIL PROTECTED]>:

> Ok, no flamewar, plz.

appunto era quello che intendevo io, si sa come si va a finire quando
si entra nell'ambito "questo è meglio perchè lo dico io, stop".

> Ho usato entrambi i framework e questo è il mio giudizio. Passo e chiudo.

Avevo già precisato che la tua è una rispettabilissima opinione.

ciao
-- 
Gian Mario Tagliaretti
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Interfacce grafiche

2007-12-08 Per discussione Enrico Franchi

On Dec 8, 2007, at 12:43 PM, Pietro Battiston wrote:

> Rispondo io con un'altra domanda: perché non wxwidgets? Funziona  
> ovunque
> (OK, non su windows mobile, QUASI ovunque) e ovunque è nativo, perché
> usa le librerie "autoctone".

Per esempio perchè su OS X fa onco.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python