Re: [Python] Utilizzo di Readline con socket

2008-01-30 Per discussione De Santis Luca
  NOTA: le variabili dovrebbero iniziare con una lettera minuscola. 
E' una convenzione o é obbligatorio ? Perché sto studiando il python sul testo 
pensare Informatico ma non ho trovato riferimenti alle maiuscole  Ma non 
stavi parlando di socket? Come funziona il collegamento via seriale? 
Il socket é fatto via bluetooth sul cellulare
 
#Avvio del server RFCOMMdef StartServer():global connserver = 
socket.socket(socket.AF_BT, socket.SOCK_STREAM)channel = 
socket.bt_rfcomm_get_available_server_channel(server)server.bind((, 
channel))server.listen(1)socket.bt_advertise_service(uJesterPlugIn, 
server, True, socket.RFCOMM)socket.set_security(server, socket.AUTH | 
socket.AUTHOR)print - Waiting for clients...conn, client_addr = 
server.accept()return connprint - Jester connected with phone
 
Esite un modo per aggirare il problema di ReadLine ? Ho provatao anche con 
l'istruzione read ma nessun riultato :( Lo script sul telefono sul telefono 
comunica con un client fatto in vb6 su Windows ed in RealBasic su Mac.
_
Organizza le tue feste e condividine le foto con Windows Live Eventi!
http://home.services.spaces.live.com/events/___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Utilizzo di Readline con socket

2008-01-30 Per discussione Manlio Perillo
De Santis Luca ha scritto:
  
   NOTA: le variabili dovrebbero iniziare con una lettera minuscola.
  
 E' una convenzione o é obbligatorio ? Perché sto studiando il python sul 
 testo pensare Informatico ma non ho trovato riferimenti alle maiuscole
  


http://python.org/dev/peps/pep-0008/

   Ma non stavi parlando di socket? Come funziona il collegamento via 
 seriale?
  
 
 Il socket é fatto via bluetooth sul cellulare
  
 #Avvio del server RFCOMM
 def StartServer():
 global conn
 server = socket.socket(socket.AF_BT, socket.SOCK_STREAM)

Non conoscevo questa possibiltà.
Quindi ti connetti via bluetooth e non via seriale.

 channel = socket.bt_rfcomm_get_available_server_channel(server)
 server.bind((, channel))
 server.listen(1)
 socket.bt_advertise_service(uJesterPlugIn, server, True, 
 socket.RFCOMM)
 socket.set_security(server, socket.AUTH | socket.AUTHOR)
 print - Waiting for clients...
 conn, client_addr = server.accept()
 return conn
 print - Jester connected with phone
  
 Esite un modo per aggirare il problema di ReadLine ? Ho provatao anche 
 con l'istruzione read ma nessun riultato :( Lo script sul telefono sul 
 telefono comunica con un client fatto in vb6 su Windows ed in RealBasic 
 su Mac.
 


Ora non conosco i dettagli della gestione di un socket della famiglia 
bluetooth, ma di solito una readline blocca fino a che non accade una 
delle seguenti condizioni:

1) Ci sono dati disponibili nel buffer di ricezione
2) Tra i dati disponibili c'è il terminatore di linea
(dovrebbe essere '\n')
3) Il client chiude la connessione


La soluzione è usare select o poll e leggere dei dati *solo* quando 
disponibili, impostando i socket in modalità non bloccante.

Nota che comunque c'è la possibilità che readline blocchi, ad esempio se 
sono disponibili dei dati nel buffer di ricezione ma non il terminatore 
di linea.

Nel tuo caso non dovrebbero esserci problemi, ma dovresti controllare.



La soluzione alternativa (popolare, ma sconsigliata) è usare un thread 
separato.



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


[Python] [Python C] Letture consigliate

2008-01-30 Per discussione Massimiliano Giovine
Ciao a tutti.
Volevo cherede se mi potevate consigliare qualche lettura per imparare
a estendere Python con il C, o quantomeno a interfacciare un listato
in C con uno script Python.
Grazie a tutti.

-- 
-Massimiliano Giovine
Aksel Peter Jørgensen dice: Why make things difficult, when it is
possible to make them cryptic and totally illogic, with just a little
bit more effort?
Blog: http://opentalking.blogspot.com
Il vero programmatore: http://www.arcetri.astro.it/~comore/true_programmer.txt
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] diversi __init__ ??

2008-01-30 Per discussione Pietro Battiston
Java ha scritto:
 E a tal proposito ne approfitto per scagliare un'altra frecciatina: il 
 python la javadoc se la sogna di notte, poi si sveglia tutto sudato e 
 si accorge di avere solo un elenco di funzioni con parametri e valori 
 restituiti.

Vorrei assicurarmi che tu conosca già epydoc... e gradirei sapere se per
il Java c'è qualcosa di ganzo come ipython per programmare letteralmente
al volo (sfruttando anche - appunto - le docstring).

Per me, che di Python sono abbastanza ignorante, ipython significa non
ti preoccupare dei nomi di funzioni e classi, né di come si usano:
mettiti al lavoro e il resto verrà da sé. Ed è una cosa che nel mio
breve excursus in Java non ho notato.

Ma questa è una cosa che riguarda anche tutti gli altri linguaggi che
ho visto...

ciao

Pietro

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


Re: [Python] libreria per grafi?

2008-01-30 Per discussione Antonio Penta
Ciao io ho usato:

http://www.graphviz.org/Resources.php



Il 30/01/08, Java [EMAIL PROTECTED] ha scritto:

 Qualcunbo di voi conosce una libreria per creare grafi (nodi e archi) in
 python? O mi devo fare tutto a manina?

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

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


Re: [Python] diversi __init__ ??

2008-01-30 Per discussione Domenico Chierico
sorry problemi con gmail :)

cmq ritengo che fare pesante uso di overloading sia cmq una pessima
soluzione al problema .. magari la soluzione di python e' estrema
nell'altro senso pero' fino ad ora nessuno si e' lamentato piu' di
tanto, quindi sembra funzionare.


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


Re: [Python] diversi __init__ ??

2008-01-30 Per discussione Pietro Battiston
Java ha scritto:
 Vorrei assicurarmi che tu conosca già epydoc...
 
 epydoc è un ottimo progetto (che sembra comunque di terze parti) che 
 emula, sicuramente anche in maniera ottima, la javadoc
   
  e gradirei sapere se per
 il Java c'è qualcosa di ganzo come ipython per programmare letteralmente
 al volo (sfruttando anche - appunto - le docstring).
 
 ipython è una shell alternativa a quella di python, e pure questa è mi 
 sembra sviluppata da terzi.


Sono entrambi di terze parti, ed entrambi dimostrano l'intrinseca
qualità e maneggevolezza di un codice Python ben scritto e documentato.

Se è questo che intendi per terze parti, dietro a Python non c'è
nessuna Sun.

Se invece intendi mi aspettavo di trovare una gestione della
documentazione nelle librerie standard,
http://www.python.org/doc/2.4/lib/module-pydoc.html


 una shell in java, c++ o altro non ha proprio 
 senso
   

Appunto.

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


Re: [Python] libreria per grafi?

2008-01-30 Per discussione Alberto
Java ha scritto:
 Qualcunbo di voi conosce una libreria per creare grafi (nodi e archi) in 
 python? O mi devo fare tutto a manina?

 ___
 Python mailing list
   
Sinceramente non ne conosco moduli sui grafi,ma puoi gestirti le 
connessioni tra i nodi creandoti una matrice delle adiacenze...
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] libreria per grafi?

2008-01-30 Per discussione Pietro Battiston
Java ha scritto:
 Sinceramente non ne conosco moduli sui grafi,ma puoi gestirti le 
 connessioni tra i nodi creandoti una matrice delle adiacenze...
   
 

 mmm volevo evitarla, dato che potrei raccogliere *molti* nodi 
 (nell'ordine delle miglialia) e la matrice diventa troppo cicciona da 
 gestire

http://osl.iu.edu/~dgregor/bgl-python/reference/boost.graph.html

Detto ciò, con migliaia di nodi la matrice è ovviamente ingestibile, ma
una semplice classe
class nodo(list):
(tecnicamente parlando, una rappresentazione sparsa della matrice delle
adiacenze) risolve il problema (anche se ovviamente non dà funzioni di
libreria che possono risultare utili, e anche se per ottenere risultati
decenti in casi di grafi direzionali è spesso necessario che ogni nodo
ricordi anche gli archi entranti, e quindi avere due liste).

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


[Python] avrei bisogno del valore null... o almeno credo...

2008-01-30 Per discussione Java
Prima di tutto chiedo perdono per il bombardamento di domande...

Poi... ecco di cosa vrei bisogno (una riga di pseudocodice vale più di 
mille parole):

# devo aggiornare questa lista
rete = [lista di oggetti con etichetta]
# usando i dati di questa
lista = [lista[0]è la testa tutti gli altri sono Etichette]

testa = null
for elem in lista:
if elem.getEtichetta() ==  lista[0]:
   testa = elem
else:
   testa = Elemento()

# da qui in poi lavoro su testa

Spero che si capisca che testa può essere sia un nuovo oggetto 
Elemento e sia un'oggetto già presente in rete.

Quello che ci faccio dopo è identico in entrambi i casi, ma senza valore 
null non so come fare

Potrei subito creare testa = Elemento(), ma se poi invece devo solo 
aggiornare un valore già presente, ho creato inutilmente un nuovo 
oggetto che resterà in giro fino al prossimo garbage collecting...
   


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


Re: [Python] avrei bisogno del valore null... o almeno credo...

2008-01-30 Per discussione Y3s

Il giorno 30/gen/08, alle ore 18:18, Java ha scritto:


CUT

 testa = null
 for elem in lista:
 if elem.getEtichetta() ==  lista[0]:
testa = elem
 else:
testa = Elemento()

 # da qui in poi lavoro su testa

 Spero che si capisca che testa può essere sia un nuovo oggetto
 Elemento e sia un'oggetto già presente in rete.

Penso che stai ragionando in un altro linguaggio, non in python.  
Comunque, col tempo farai refactoring ;-)
In python (e in altri linguaggi furbi) non c'è alcun bisogno di  
metodi getter/setter. Accedi direttamente all'attributo che ti  
interessa, se poi un giorno hai bisogno di controllare l'accesso  
trasformerai l'attributo in una property e il tutto ti funzionerà  
automaticamente, senza modificare nient'altro. Comunque non mi è  
molto chiaro il tuo problema, ma il codice che hai scritto mi sembra  
errato, per ogni elemento della lista, se getEtichetta() non è uguale  
a lista[0] viene creato un nuovo oggetto Elemento che poi viene  
perso. Dovresti quantomeno mettere un'istruzione di uscita dal ciclo  
da qualche parte, ma probabilmente esiste una strada migliore. Di  
preciso, cosa devi fare?


 Quello che ci faccio dopo è identico in entrambi i casi, ma senza  
 valore
 null non so come fare

In python esiste l'oggetto None, che viene sempre valutato False.  
In ogni caso non mi sembra che ti serva.


 Potrei subito creare testa = Elemento(), ma se poi invece devo solo
 aggiornare un valore già presente, ho creato inutilmente un nuovo
 oggetto che resterà in giro fino al prossimo garbage collecting...


Ecco, appunto :-)
Ti consiglio di non porti troppi problemi del genere, a meno che  
questo oggetto Elemento non pesi davvero troppo non è proprio un  
problema crearlo. Soprattutto visto che nel codice sopra ne crei len 
(lista) - 1 ;-)

--
Antonio Valente


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


Re: [Python] avrei bisogno del valore null... o almeno credo...

2008-01-30 Per discussione Francesco Guerrieri
On Jan 30, 2008 6:18 PM, Java [EMAIL PROTECTED] wrote:

 Prima di tutto chiedo perdono per il bombardamento di domande...

 Poi... ecco di cosa vrei bisogno (una riga di pseudocodice vale più di
 mille parole):

 # devo aggiornare questa lista
 rete = [lista di oggetti con etichetta]
 # usando i dati di questa
 lista = [lista[0]è la testa tutti gli altri sono Etichette]

 testa = null
 for elem in lista:
if elem.getEtichetta() ==  lista[0]:
   testa = elem
else:
   testa = Elemento()

 # da qui in poi lavoro su testa

 Spero che si capisca che testa può essere sia un nuovo oggetto
 Elemento e sia un'oggetto già presente in rete.

 Quello che ci faccio dopo è identico in entrambi i casi, ma senza valore
 null non so come fare

 Potrei subito creare testa = Elemento(), ma se poi invece devo solo
 aggiornare un valore già presente, ho creato inutilmente un nuovo
 oggetto che resterà in giro fino al prossimo garbage collecting...

 Non mi è chiaro il tuo problema
Dall'esempio di codice che hai mandato, non c'è nessuno bisogno di creare un
nameholder testa
(comunque sarebbe testa = None)

semplicemente nei due casi assegni testa a due oggetti diversi,
di volta in volta o elem o Elemento()
Ti faccio ntoare che il tuo codice assegna testa all'ULTIMO elem in lista
che abbia l'etichetta giusta.

Ma forse il codice che volevi scrivere era:

rete = [elem for elem in lista if elem.etichetta == qualcosa]

?
Non mi piace molto neanche il metodo getEtichetta, non ti basta leggere
elem.etichetta?
ciao,
Francesco
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] avrei bisogno del valore null... o almeno credo...

2008-01-30 Per discussione Java
Francesco Guerrieri ha scritto:


 # devo aggiornare questa lista
 rete = [lista di oggetti con etichetta]
 # usando i dati di questa
 lista = [lista[0]è la testa tutti gli altri sono Etichette]

 testa = null
 for elem in lista:
if elem.getEtichetta() ==  lista[0]:
   testa = elem
else:
   testa = Elemento()

 # da qui in poi lavoro su testa


 Non mi è chiaro il tuo problema
 Dall'esempio di codice che hai mandato, non c'è nessuno bisogno di 
 creare un nameholder testa
 (comunque sarebbe testa = None)

mmm senza quel testa = None, la variabil testa si vedrebbe fuori dal 
ciclo for?? Se si allora non ci vuole
 semplicemente nei due casi assegni testa a due oggetti diversi,
 di volta in volta o elem o Elemento()
 Ti faccio ntoare che il tuo codice assegna testa all'ULTIMO elem in 
 lista che abbia l'etichetta giusta.
Ultimo e unico, (se tutto è andato bene :-D)

 Ma forse il codice che volevi scrivere era:

 rete = [elem for elem in lista if elem.etichetta == qualcosa]

mmm forse si, ma ora sono veramente fuso (tra lavoro e studio ho fatto 
11 ore al pc :-( )
 ?
 Non mi piace molto neanche il metodo getEtichetta, non ti basta 
 leggere elem.etichetta?
hem rimasugli di UML e Ingegneria del software.
 ciao,
 Francesco
adieu
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Utilizzo di Readline con socket

2008-01-30 Per discussione Manlio Perillo
De Santis Luca ha scritto:
   La soluzione è usare select o poll e leggere dei dati *solo* quando
   disponibili, impostando i socket in modalità non bloccante.
 
 Ho spulciato tutta la documentazione di pys60 e putroppo select é 
 suppoerato solo per i dati in uscita, non per quelli in ingresso e per 
 le eccezioni :(
 

Mi sembra assurdo...

Prova a chiedere su un forum specifico come si fa per sapere quando c'è 
qualcosa da leggere in un socket.





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


Re: [Python] diversi __init__ ??

2008-01-30 Per discussione Enrico Franchi

On Jan 30, 2008, at 4:14 PM, Java wrote:

 ipython è una shell alternativa a quella di python, e pure questa è mi
 sembra sviluppata da terzi.

E quindi?

 una shell in java, c++ o altro non ha proprio
 senso

Non è  che 'non ha senso', è che è una mina farla. Per il resto  
sarebbe piuttosto comoda averla (e non a caso in Java stanno battendo  
strade per avere cose analoghe, vedi tutto l'interesse per i vari  
linguaggi dinamici da embeddare etc etc etc.

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


Re: [Python] libreria per grafi?

2008-01-30 Per discussione Enrico Franchi

On Jan 30, 2008, at 4:08 PM, Java wrote:

 Qualcunbo di voi conosce una libreria per creare grafi (nodi e  
 archi) in
 python? O mi devo fare tutto a manina?

https://networkx.lanl.gov/wiki

http://osl.iu.edu/~dgregor/bgl-python/

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


Re: [Python] avrei bisogno del valore null... o almeno credo...

2008-01-30 Per discussione Enrico Franchi

On Jan 30, 2008, at 6:54 PM, Java wrote:

 mmm senza quel testa = None, la variabil testa si vedrebbe fuori dal
 ciclo for?? Se si allora non ci vuole

E' una cosa che sorprende spesso anche me. Ti cito un passo del Python  
in a Nutshell.

A function's parameters, plus any variables that are bound (by  
assignment or by other binding statements) in the function body, make  
the function's local namespace, also known as local scope.

Direi che è abbastanza chiaro.

 mmm forse si, ma ora sono veramente fuso (tra lavoro e studio ho fatto
 11 ore al pc :-( )


Cerca comunque sempre di pensare in maniera pythonica, non di tradurre  
codice 'pensato' in altri linguaggi.
Con il tempo viene naturale.

C'era un vecchio adagio sul fatto che i programmatori Lisp fossero  
talmente abituati a soluzioni eleganti da tirarne fuori di  
particolarmente eleganti anche quando 'costretti' ad usare 'linguaggi  
da meno'.


 hem rimasugli di UML e Ingegneria del software.

Sigh, non si rendono nemmeno conto di quanto male faccia insegnare  
UML. :(

Ad ogni modo in *Python* usiamo direttamente il valore senza passare  
per i setter.
Questo si può fare perchè c'è  property che in caso di bisogno ti cava  
d'impiccio senza bisgno di modificare il codice.
Effettivamente in altri linguaggi passi proprio per dei getter  e  
setter.

La cosa per esempio è sensata in Java e in C++ (anche se in Java fra  
IDE, beans e tutto ce la si scavella). In Ruby al di la del fatto che  
pure hai un modo facile per creare getter e setter, a tutti gli  
effetti li stai usando (anche se non li definisci esplicitamente). In  
C# dalla regia dicono che pure ci sono delle properties.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python