Re: [Python] filtrare ai margini

2013-09-19 Per discussione Alessandro Dentella
On Thu, Sep 19, 2013 at 01:07:36PM +0200, Diego Barrera wrote:
> Il 19/09/2013 09:38, Nicola Larosa ha scritto:
> >Nicola Larosa wrote:
> >>Evita di rispondere a uno dei messaggi di quella discussione e poi
> >>cambiato l'oggetto.
> >Editing fail. Qualcosa come:
> >
> >Evita di rispondere a un messaggio di una discussione preesistente
> >cambiando poi l'oggetto.
> >
> Infatti questo 3d mi compare all'interno di un altro..
> sta cosa non ho mai capito come funziona!
> Cioe' se uno risponde ad un 3d cambiando l'oggetto,
> me lo mostra nel 3d originale; a volte invece benche'
> uno risponda al 3d crea un nuovo albero.. perche'?
> Dipende dal client?

normalmente il client legge l'header In-Reply-To che ad esempio per questa
mail ora è:

  In-Reply-To: <523adaf8.3060...@yahoo.it>

io spesso per pigrizia faccio reply di una mail del gruppo e poi elimino
l'header subito, questo crea un nuovo thread, anche se lascio lo stesso
subject. 

Ricordo che però yahoo qualche anno fa scassava qualunque thread perché non
utilizzava correttamente questo header

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


Re: [Python] Quoting (was: filtrare ai margini)

2013-09-19 Per discussione Daniele Zambelli
Il giorno 19 settembre 2013 11:06, Nicola Larosa  ha
scritto:

> (come minchia si traduce "angle bracket" in
> italiano? :-) )
>

Parentesi angolari?


-- 

Daniele

www.fugamatematica.blogspot.com

giusto!
nel verso
forse è perché non guardiamo le cose
Quando non ci capiamo,
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Il dilemma degli array mutabili

2013-09-19 Per discussione Piergiuliano Bossi
2013/9/19 Riccardo Lemmi 

> Piergiuliano Bossi wrote:
>
> > 2013/9/18 Riccardo Lemmi 
> >
> >>
> >>
> >> Mi sfugge il caso, forse un esempio chiarirebbe... L'unico posto in
> >> cui vedo male il codice messo sopra è quello in cui si usano gli
> >> elementi dell'array non in sequenza ma pescando in "qua e la'"
> >>
> >>
> > Ho visto la luce.
> >
> > Questo e' il codice che ha causato il thread (semplificato,
> > ovviamente);
> >
> > def evaluate(list):
> > return sum(v for v in list if v % 2 == 0)
> >
> > def _subtract(list1, list2):
> > result = list1[:]
> > for val in list2:
> > result.remove(val)
> > return result
>
> Manca un check prima di fare il remove. Alternativamente la scriverei
> così:
>
>
Vero, ma in questo contesto so gia' che l'elemento che rimuovo e' gia'
nella lista.


>
> detto così sembra proprio che tu stia lavorando con i set...
>
>
Quasi: in realta' ognuna di quelle liste puo' contenere duplicati, quindi i
set sono fuori discussione. Mi ero baloccato con l'idea di usare un dict
dove la chiave e' la posizione nella lista originaria, ma diventava tutto
troppo complesso e l'algoritmo e' insensibile rispetto alla posizione nella
lista.


Ciao
Giuliano



-- 
Piergiuliano Bossi
Blog: http://thinkingbox.wordpress.com/
Twitter: http://twitter.com/thinkingbox (English)
Twitter: http://twitter.com/scatolapensante (Italiano)
Google+: https://plus.google.com/u/0/108187981162465525118
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Quoting (was: filtrare ai margini)

2013-09-19 Per discussione Gollum1
Il giorno 19/set/2013 18:45, "Diego Barrera"  ha
scritto:

> Io pure sono un integralista, ma te ci obblighi al burqa ;)

Solo per gli uomini... le donne le preferisco ben visibili (non nude, ma
con vestitini di taglio elegante e adeguato alle varie situazioni).

;)

Byez
-- 
Gollum1
teoro, dov'è il mio teoro...
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Quoting (was: filtrare ai margini)

2013-09-19 Per discussione Diego Barrera

Il 19/09/2013 18:37, Gollum1 ha scritto:


Dipende se il tuo incorpora entrambe... personalmente preferisco 
scrivere in semplice testo... poi in realtà leggo tranquillamente 
entrambi i formati sullo smartphone, dove leggo il 90% delle mail. 
Come dicevo mi infastidisce di più il quoting fatto con il culo... ma 
se possibile... evitate comunque l'html (tenetelo per i siti web).



Io pure sono un integralista, ma te ci obblighi al burqa ;)
ciao diego
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Il dilemma degli array mutabili

2013-09-19 Per discussione Giovanni Porcari

Il giorno 19/set/2013, alle ore 16:31, Marco Beri  ha 
scritto:

> Il giorno 19/set/2013 15:08, "Piergiuliano Bossi"  ha 
> scritto:
> che fa tutto al volo e mi e' venuta al primo colpo:
> 
> > def useless(list):
> > return [list[i] for i in range(len(list)) if evaluate(list[:i] + 
> > list[i+1:]) == evaluate(list)]
> 
> Questo codice può diventare un più chiaro con enumerate:
> 
> def useless(list):
> return [val for i, val in enumerate(list) if evaluate(list[:i] + 
> list[i+1:]) == evaluate(list)]
> 
> 


Butto lì un'ipotesi vaga senza pensarci troppo (quindi ha un'elevata 
probabilità di essere una fesseria) :

E se invece di togliere gli elementi si usasse un array parallelo di booleani 
che dicono se l'elemento è attivo o no ?

Si potrebbe avere un generatore che dice

def filtered_list(mylist,flags):
for k,v in enumerate(mylist):
if flags[k]:
yield v


E poi la evaluate si fa sulla filtered_list.

A questo punto non si deve duplicare la lista ma solo settare i flag e ripetere 
il calcolo.

Dico una bestialità o ha un senso ?

G.

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


Re: [Python] Il dilemma degli array mutabili

2013-09-19 Per discussione Diego Barrera

Il 19/09/2013 16:31, Marco Beri ha scritto:


Il giorno 19/set/2013 15:08, "Piergiuliano Bossi" > ha scritto:

che fa tutto al volo e mi e' venuta al primo colpo:

> def useless(list):
> return [list[i] for i in range(len(list)) if evaluate(list[:i] + 
list[i+1:]) == evaluate(list)]


Questo codice può diventare un più chiaro con enumerate:

def useless(list):
return [val for i, val in enumerate(list) if evaluate(list[:i] + 
list[i+1:]) == evaluate(list)]



Pero' evaluate potrebbe essere complessa..

def useless(mylist):
k = evaluate(mylist)
return [val for i, val in enumerate(mylist) if evaluate(list[:i] + 
list[i+1] == k]


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


Re: [Python] Quoting (was: filtrare ai margini)

2013-09-19 Per discussione Gollum1
Dipende se il tuo incorpora entrambe... personalmente preferisco scrivere
in semplice testo... poi in realtà leggo tranquillamente entrambi i formati
sullo smartphone, dove leggo il 90% delle mail. Come dicevo mi infastidisce
di più il quoting fatto con il culo... ma se possibile... evitate comunque
l'html (tenetelo per i siti web).

Byez
-- 
Gollum1
teoro, dov'è il mio teoro...
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] filtrare ai margini

2013-09-19 Per discussione Gollum1
Il giorno 19/set/2013 13:08, "Diego Barrera"  ha
scritto:
>
> Il 19/09/2013 09:38, Nicola Larosa ha scritto:
>
>> Nicola Larosa wrote:
>>>
>>> Evita di rispondere a uno dei messaggi di quella discussione e poi
>>> cambiato l'oggetto.
>>
>> Editing fail. Qualcosa come:
>>
>> Evita di rispondere a un messaggio di una discussione preesistente
>> cambiando poi l'oggetto.
>>
> Infatti questo 3d mi compare all'interno di un altro..
> sta cosa non ho mai capito come funziona!
> Cioe' se uno risponde ad un 3d cambiando l'oggetto,
> me lo mostra nel 3d originale; a volte invece benche'
> uno risponda al 3d crea un nuovo albero.. perche'?
> Dipende dal client?

Purtroppo sì... le specifiche indicano che nella risposta ad una mail venga
inserito un campo di identificazione che fa riferimento alla mail a cui si
risponde, i client seri costruiscono l'albero delle mail attraverso questi
identificativi... pro... la tua risposta finisce direttamente sotto alla
mail a cui hai risposto, quindi se il thread sui sviluppa in più rami è più
facile seguirli. Contro... se inizi un nuovo thread rispondendo ad una
mail, questa finisce nel thread precedente.

Altri client (purtroppo gmail, web o app che sia, è uno di questi) ordina i
thread in base all'oggetto... e nelle risposte non mantiene gli id (ma non
sono sicuro su questa seconda parte)... quello che avviene è che al cambio
di una sola lettera nell'oggetto ti spezza il thread... anche se non vuoi.
Altro fatto negativo accoda tutti i messaggi e non te li presenta
nell'affine nell'ordine giusto... creando un unico ramo di risposte.

Ora che cui penso... se leggi con Thunderbird via IMAP, vedi l'albero
corretto... quindi probabilmente vengono mantenuti gli id.

Byez
-- 
Gollum1
teoro, dov'è il mio teoro...
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Il dilemma degli array mutabili

2013-09-19 Per discussione Riccardo Lemmi
Piergiuliano Bossi wrote:

> 2013/9/18 Riccardo Lemmi 
> 
>>
>>
>> Mi sfugge il caso, forse un esempio chiarirebbe... L'unico posto in
>> cui vedo male il codice messo sopra è quello in cui si usano gli
>> elementi dell'array non in sequenza ma pescando in "qua e la'"
>>
>>
> Ho visto la luce.
> 
> Questo e' il codice che ha causato il thread (semplificato,
> ovviamente);
> 
> def evaluate(list):
> return sum(v for v in list if v % 2 == 0)
> 
> def _subtract(list1, list2):
> result = list1[:]
> for val in list2:
> result.remove(val)
> return result

Manca un check prima di fare il remove. Alternativamente la scriverei 
così:

def _subtract(list1, list2):
result = []
for val in list2:
if val not in list2:
 result.append(val)
return result

ma se non ci sono ridondanze nelle due liste cioè stai effettivamento 
implementando la differenza fra insiemi:

result = set(list1) - set(list2)

o

result = set(list1).difference(list2) 

> def useless(list):
> useful = list[:]
> for val in list:
> useful.remove(val)
> if evaluate(useful) != evaluate(list):
> useful.append(val)
> return _subtract(list, useful)
> 
> if __name__ == "__main__":
> print(useless([]))# => []
> print(useless([1, 2, 3, 5, 8]))# => [1, 3, 5]
> 
> Codice abbastanza orrido, no?
> 
> L'idea e' calcolare gli elementi di una lista che non contribuiscono
> al valore determinato da una certa funzione. Diciamo che evaluate in
> realta' e' molto piu' complessa (non computazionalmente, ma
> matematicamente non e' semplice), che e' insensibile all'ordine degli
> elementi nella lista (da cui l'uso di remove non posizionale) e che
> ovviamente questo codice non e' ottimizzato (eg: e' inutile chiamare
> evaluate(list) ogni volta nel ciclo).
> 

detto così sembra proprio che tu stia lavorando con i set...

> L'ho riscritto senza copy.copy ma con [:] e ovviamente tutto bene, ma
> non e' un gran guadagno. Poi ho provato a fare una comprehension che
> fa tutto al volo e mi e' venuta al primo colpo:
> 
> def useless(list):
> return [list[i] for i in range(len(list)) if evaluate(list[:i] +
> list[i+1:]) == evaluate(list)]
> 
> Oserei dire che e' persino un pelo piu' comunicativa cosi', visto che
> non devo calcolare una lista e poi sottrarla all'altra.
> Mi sento come se avessi trovato il barattolo di nutella di Moretti, un
> cucchiaione e nessuno attorno...  :)
> 
> Ciao
> Giuliano
> 
> PS: queste sono le cose che fanno scattare l'aore...
> 
> 

-- 
   Riccardo Lemmi

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


Re: [Python] Quoting (was: filtrare ai margini)

2013-09-19 Per discussione Marco Beri
2013/9/19 Gollum1 

> Netetiquete
>
Già nel 2010 c'era chi si chiedeva se fosse ancora vero:
http://ask.metafilter.com/159162/Is-HTMLformatted-email-still-bad-netiquette

Diciamo che se uno non vuole le mail in HTML, configura il suo MUA per
avere la versione senza HTML.

Ciao.
Marco.

-- 
http://beri.it/ - Un blog
http://beri.it/i-miei-libri/ - Qualche libro
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Quoting (was: filtrare ai margini)

2013-09-19 Per discussione Gollum1
Il giorno 19/set/2013 14:28, "Marco Beri"  ha scritto:
>
> 2013/9/19 Andrea Ambu 
>
> > BTW anche in gmail puoi decidere di rispondere in formato testo, che
>
> > e` quello che sto facendo io ora. Per gli a capo... 80 colonne? :P

In gmail si può forzare la colonne alla dimensione che vuoi... non mi
ricordo in quale posto, o se addirittura è qualcosa che aboliti nei labs.

>
> Boh... continuo a non capire perché deve essere meglio così.

Netetiquete

> Se la mail è pulita e senza schifezze, chi si accorge che è in HTML?

Io preferisco il solo testo... e se solo mi è possibile rompo i ciglioni...
ma più che per l'html, quello che mi preme è il quoting.

> Lo trovo un falso problema nel 2013.

Forse... o forse no...

Byez
-- 
Gollum1
teoro, dov'è il mio teoro...
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Il dilemma degli array mutabili

2013-09-19 Per discussione Piergiuliano Bossi
On Thu, Sep 19, 2013 at 11:10 AM, Nicola Larosa  wrote:

> Meglio non usare "list" come nome, perchè copre il builtin.
>

Giusto, devo riprogrammarmi il cervello per le parole tabu'.

Ciao
Giuliano


-- 
Piergiuliano Bossi
Blog: http://thinkingbox.wordpress.com/
Twitter: http://twitter.com/thinkingbox (English)
Twitter: http://twitter.com/scatolapensante (Italiano)
Google+: https://plus.google.com/u/0/108187981162465525118
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Il dilemma degli array mutabili

2013-09-19 Per discussione Nicola Larosa
> Piergiuliano Bossi ha scritto:
>> def useless(list):
>> return [list[i] for i in range(len(list)) if evaluate(list[:i] +
>> list[i+1:]) == evaluate(list)]

Marco Beri wrote:
> Questo codice può diventare un più chiaro con enumerate:
> 
> def useless(list):
> return [val for i, val in enumerate(list) if evaluate(list[:i] +
> list[i+1:]) == evaluate(list)]

Meglio non usare "list" come nome, perchè copre il builtin.

-- 
Nicola Larosa - http://www.tekNico.net/

I'll play closed-source games because they're not very harmful, and
it doesn't bother me when I ride an elevator with closed-source
firmware, but I will not - ever, under any circumstances, for any
reason - give Apple my money or my approval so that it can lock more
people into its beautifully-decorated jails. - Eric Raymond, April 2013

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


Re: [Python] Il dilemma degli array mutabili

2013-09-19 Per discussione Nicola Larosa
> Piergiuliano Bossi ha scritto:
>> def useless(list):
>> return [list[i] for i in range(len(list)) if evaluate(list[:i] +
>> list[i+1:]) == evaluate(list)]

Marco Beri wrote:
> Questo codice può diventare un più chiaro con enumerate:
> 
> def useless(list):
> return [val for i, val in enumerate(list) if evaluate(list[:i] +
> list[i+1:]) == evaluate(list)]

Meglio non usare "list" come nome, perchè copre il builtin.

-- 
Nicola Larosa - http://www.tekNico.net/

I'll play closed-source games because they're not very harmful, and
it doesn't bother me when I ride an elevator with closed-source
firmware, but I will not - ever, under any circumstances, for any
reason - give Apple my money or my approval so that it can lock more
people into its beautifully-decorated jails. - Eric Raymond, April 2013

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


Re: [Python] Il dilemma degli array mutabili

2013-09-19 Per discussione Marco Beri
2013/9/19 Piergiuliano Bossi 

> Mi sento come se avessi trovato il barattolo di nutella di Moretti, un
> cucchiaione e nessuno attorno...  :)
> Ciao
> Giuliano
> PS: queste sono le cose che fanno scattare l'aore...
>

Dimenticavo: :-)

Ciao.
Marco.

-- 
http://beri.it/ - Un blog
http://beri.it/i-miei-libri/ - Qualche libro
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Il dilemma degli array mutabili

2013-09-19 Per discussione Piergiuliano Bossi
On Thu, Sep 19, 2013 at 10:31 AM, Marco Beri  wrote:

> Il giorno 19/set/2013 15:08, "Piergiuliano Bossi"  ha
> scritto:
>
> che fa tutto al volo e mi e' venuta al primo colpo:
>
> > def useless(list):
> > return [list[i] for i in range(len(list)) if evaluate(list[:i] +
> list[i+1:]) == evaluate(list)]
>
> Questo codice può diventare un più chiaro con enumerate:
>
> def useless(list):
> return [val for i, val in enumerate(list) if evaluate(list[:i] +
> list[i+1:]) == evaluate(list)]
>
>
Eh si', concordo!

Grazie e ciao
Giuliano



-- 
Piergiuliano Bossi
Blog: http://thinkingbox.wordpress.com/
Twitter: http://twitter.com/thinkingbox (English)
Twitter: http://twitter.com/scatolapensante (Italiano)
Google+: https://plus.google.com/u/0/108187981162465525118
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Il dilemma degli array mutabili

2013-09-19 Per discussione Marco Beri
Il giorno 19/set/2013 15:08, "Piergiuliano Bossi"  ha
scritto:
che fa tutto al volo e mi e' venuta al primo colpo:

> def useless(list):
> return [list[i] for i in range(len(list)) if evaluate(list[:i] +
list[i+1:]) == evaluate(list)]

Questo codice può diventare un più chiaro con enumerate:

def useless(list):
return [val for i, val in enumerate(list) if evaluate(list[:i] +
list[i+1:]) == evaluate(list)]

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


Re: [Python] Il dilemma degli array mutabili

2013-09-19 Per discussione Marco Mariani
Le list comprehension sono il male assoluto XD
Prova per confrontare, una versione con iter_useless() che fa uso di yield,
e al limite una def useless(): return list(iter_useless())
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Il dilemma degli array mutabili

2013-09-19 Per discussione Daniele Varrazzo

On 2013-09-19 14:08, Piergiuliano Bossi wrote:


def useless(list):
return [list[i] for i in range(len(list)) if evaluate(list[:i] +
list[i+1:]) == evaluate(list)]

Oserei dire che e' persino un pelo piu' comunicativa cosi', visto che 
non

devo calcolare una lista e poi sottrarla all'altra.


Se questo codice ha bisogno di essere efficiente puoi anche 
implementarlo con collections.deque. Vedi la ricetta di delete_nth() 
negli esempi per un accenno a come fare.


Se non deve essere efficiente (cosa che potrebbe essere, visto che 
calcoli evaluate(list) per len(list) volte quando ne basterebbe una), 
come hai fatto tu è chiarissimo.



--
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] Il dilemma degli array mutabili

2013-09-19 Per discussione Piergiuliano Bossi
2013/9/18 Riccardo Lemmi 

>
>
> Mi sfugge il caso, forse un esempio chiarirebbe... L'unico posto in cui
> vedo male il codice messo sopra è quello in cui si usano gli elementi
> dell'array non in sequenza ma pescando in "qua e la'"
>
>
Ho visto la luce.

Questo e' il codice che ha causato il thread (semplificato, ovviamente);

def evaluate(list):
return sum(v for v in list if v % 2 == 0)

def _subtract(list1, list2):
result = list1[:]
for val in list2:
result.remove(val)
return result

def useless(list):
useful = list[:]
for val in list:
useful.remove(val)
if evaluate(useful) != evaluate(list):
useful.append(val)
return _subtract(list, useful)

if __name__ == "__main__":
print(useless([]))# => []
print(useless([1, 2, 3, 5, 8]))# => [1, 3, 5]

Codice abbastanza orrido, no?

L'idea e' calcolare gli elementi di una lista che non contribuiscono al
valore determinato da una certa funzione. Diciamo che evaluate in realta'
e' molto piu' complessa (non computazionalmente, ma matematicamente non e'
semplice), che e' insensibile all'ordine degli elementi nella lista (da cui
l'uso di remove non posizionale) e che ovviamente questo codice non e'
ottimizzato (eg: e' inutile chiamare evaluate(list) ogni volta nel ciclo).

L'ho riscritto senza copy.copy ma con [:] e ovviamente tutto bene, ma non
e' un gran guadagno. Poi ho provato a fare una comprehension che fa tutto
al volo e mi e' venuta al primo colpo:

def useless(list):
return [list[i] for i in range(len(list)) if evaluate(list[:i] +
list[i+1:]) == evaluate(list)]

Oserei dire che e' persino un pelo piu' comunicativa cosi', visto che non
devo calcolare una lista e poi sottrarla all'altra.

Mi sento come se avessi trovato il barattolo di nutella di Moretti, un
cucchiaione e nessuno attorno...  :)

Ciao
Giuliano

PS: queste sono le cose che fanno scattare l'aore...


-- 
Piergiuliano Bossi
Blog: http://thinkingbox.wordpress.com/
Twitter: http://twitter.com/thinkingbox (English)
Twitter: http://twitter.com/scatolapensante (Italiano)
Google+: https://plus.google.com/u/0/108187981162465525118
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] filtrare ai margini

2013-09-19 Per discussione Manlio Perillo
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 19/09/2013 12:56, Marco Mariani wrote:
> 
>>> Si potrebbe disquisire un po' sull'opportunit¢ di togliere 
>>> else/elif :)
>> 
>> Perche'?
> 
> Perché trovo che return/return/return sia un pattern altrettanto 
> leggibile e più conciso, ma era solo una battuta :)
> 

Io trovo più leggibile la prima soluzione, anche se meno concisa (ed
il compilatore produce due istruzioni finali in più per il `return None`).

> [...]


Ciao  Manlio
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Icedove - http://www.enigmail.net/

iEYEARECAAYFAlI67zAACgkQscQJ24LbaURu3wCdEDU/gFe/Oc8P6e19x/6/l2my
uU0Anjhn45aZe8heFYItcwheMDfwHS05
=iqWf
-END PGP SIGNATURE-
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Quoting (was: filtrare ai margini)

2013-09-19 Per discussione Marco Beri
>
> 2013/9/19 Andrea Ambu 

> BTW anche in gmail puoi decidere di rispondere in formato testo, che

> e` quello che sto facendo io ora. Per gli a capo... 80 colonne? :P

Boh... continuo a non capire perché deve essere meglio così.

Se la mail è pulita e senza schifezze, chi si accorge che è in HTML?

Lo trovo un falso problema nel 2013.

Ciao.
Marco.

-- 
http://beri.it/ - Un blog
http://beri.it/i-miei-libri/ - Qualche libro
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] filtrare ai margini

2013-09-19 Per discussione Nicola Larosa
> Nicola Larosa wrote:
>> Evita di rispondere a un messaggio di una discussione preesistente 
>> cambiando poi l'oggetto.

Diego Barrera wrote:
> Infatti questo 3d mi compare all'interno di un altro.. sta cosa non ho
> mai capito come funziona!
> Cioe' se uno risponde ad un 3d cambiando l'oggetto, me lo mostra nel
> 3d originale; a volte invece benche' uno risponda al 3d crea un nuovo
> albero.. perche'?
> Dipende dal client?

Credo di sì.

Ma il rimedio è semplice: indipendentemente dal client, non farlo. :-P

-- 
Nicola Larosa - http://www.tekNico.net/
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] filtrare ai margini

2013-09-19 Per discussione Marco Mariani
> def clamp(x, min, max):
> if x < min: return min
> if x > max: return max
> return x

Sì ma col return a capo. E senza usare i nomi min/max che sono builtin.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] filtrare ai margini

2013-09-19 Per discussione Diego Barrera

Il 19/09/2013 09:38, Nicola Larosa ha scritto:

Nicola Larosa wrote:

Evita di rispondere a uno dei messaggi di quella discussione e poi
cambiato l'oggetto.

Editing fail. Qualcosa come:

Evita di rispondere a un messaggio di una discussione preesistente
cambiando poi l'oggetto.


Infatti questo 3d mi compare all'interno di un altro..
sta cosa non ho mai capito come funziona!
Cioe' se uno risponde ad un 3d cambiando l'oggetto,
me lo mostra nel 3d originale; a volte invece benche'
uno risponda al 3d crea un nuovo albero.. perche'?
Dipende dal client?
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] filtrare ai margini

2013-09-19 Per discussione Diego Barrera

Il 19/09/2013 12:56, Marco Mariani ha scritto:



> > Si potrebbe disquisire un po' sull'opportunit¢ di togliere
> > else/elif :)
>
> Perche'?

Perché trovo che return/return/return sia un pattern altrettanto 
leggibile e più conciso, ma era solo una battuta :)




Cioe' intendi cosi'?

def clamp(x, min, max):
if x < min: return min
if x > max: return max
return x
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] filtrare ai margini

2013-09-19 Per discussione Marco Mariani
> > Si potrebbe disquisire un po' sull'opportunit¢ di togliere
> > else/elif :)
>
> Perche'?

Perché trovo che return/return/return sia un pattern altrettanto leggibile
e più conciso, ma era solo una battuta :)
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] filtrare ai margini

2013-09-19 Per discussione Manlio Perillo
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 19/09/2013 11:00, Marco Mariani wrote:
> 
>> def clamp(x, min, max): if x < min: return min elif x > max: 
>> return max else: return x
> 
> Si potrebbe disquisire un po' sull'opportunit¢ di togliere
> else/elif :)
> 

Perche'?

P.S.:
ma perch│ avete ISO-8859-1 come character encoding predefinito?
Non │ ora di passare tutti a UTF-8, cos↓ Thunderbird non mi incasina
l'encoding? :)



Ciao  Manlio
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Icedove - http://www.enigmail.net/

iEYEARECAAYFAlI6114ACgkQscQJ24LbaURjNQCdHoX1i/hGoGOVzecmpQIqhdNg
b+wAn3mfjeHVidGkGltOC0nGLx/EFXF3
=1CrC
-END PGP SIGNATURE-
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Quoting (was: filtrare ai margini)

2013-09-19 Per discussione Andrea Ambu
2013/9/19 Marco Beri :
> 2013/9/19 Nicola Larosa 
>>
>> Marco Beri wrote:
>> > Ma perché non lasci il quoting in html?
>>
>> Perché Thunderbird ha una scelta globale di formato di risposta per ogni
>> account. E poi non riesco ancora a convincermi di scrivere sempre in
>> HTML. :-)
>
>
> Eh... quindi è un problema anche tuo, non solo mio :-)
>
> Oramai non mi sembra più sia tutto questo tabù scrivere in HTML.
>
> A meno che non devi scrivere a RMS ma tanto non ti caga lo stesso...
>


BTW anche in gmail puoi decidere di rispondere in formato testo, che
e` quello che sto facendo io ora. Per gli a capo... 80 colonne? :P

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


Re: [Python] Quoting (was: filtrare ai margini)

2013-09-19 Per discussione Marco Beri
2013/9/19 Nicola Larosa 

> Marco Beri wrote:
> > Ma perché non lasci il quoting in html?
>
> Perché Thunderbird ha una scelta globale di formato di risposta per ogni
> account. E poi non riesco ancora a convincermi di scrivere sempre in
> HTML. :-)
>

Eh... quindi è un problema anche tuo, non solo mio :-)

Oramai non mi sembra più sia tutto questo tabù scrivere in HTML.

A meno che non devi scrivere a RMS ma tanto non ti caga lo stesso...

> Tra l'altro si fa meno fatica quando si va a capo così. Con i ">"
> > se devi rimpaginare diventi matto.
>
> No, in Thunderbird c'è un apposito comando di rewrap che tiene conto
> dell'indentazione con i ">" (come minchia si traduce "angle bracket" in
> italiano? :-) ).
>

Maggiore? Minore?

Ciao.
Marco.


-- 
http://beri.it/ - Un blog
http://beri.it/i-miei-libri/ - Qualche libro
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Quoting (was: filtrare ai margini)

2013-09-19 Per discussione Giuseppe Amato
> Perché Thunderbird ha una scelta globale di formato di risposta per ogni
> account. E poi non riesco ancora a convincermi di scrivere sempre in
> HTML. :-)
>
> Thunderbird ha tanti pro, ma se vuoi una formattazione diversa ti fa
venire il mal di testa.
Io ancora non capisco perché ogni tanto mentre batto sulla tastiera mi
ingrandisce il carattere, e come ogni malefatta non la mostra subito, ma
solo dopo che hai inviato il messaggio quando lo vai a riaprire.


-- 

Giuseppe Amato
e-mail: giuam...@gmail.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Quoting (was: filtrare ai margini)

2013-09-19 Per discussione Nicola Larosa
Marco Beri wrote:
> Ma perché non lasci il quoting in html?

Perché Thunderbird ha una scelta globale di formato di risposta per ogni
account. E poi non riesco ancora a convincermi di scrivere sempre in
HTML. :-)


> Tra l'altro si fa meno fatica quando si va a capo così. Con i ">"
> se devi rimpaginare diventi matto.

No, in Thunderbird c'è un apposito comando di rewrap che tiene conto
dell'indentazione con i ">" (come minchia si traduce "angle bracket" in
italiano? :-) ).

-- 
Nicola Larosa - http://www.tekNico.net/
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Quoting (was: filtrare ai margini)

2013-09-19 Per discussione Alessandro Dentella
On Thu, Sep 19, 2013 at 10:53:59AM +0200, Marco Beri wrote:
> Ma perché non lasci il quoting in html? Tra l'altro si fa meno fatica
> quando si va a capo così. Con i ">" se devi rimpaginare diventi matto.


??? che strano il mondo là fuori. Io qui con mutt + emacs per rimpaginare
faccio solo Alt-w e capisce come sistemare i paragrafi, anche le righe che
cominciano con '>'

sandro
*;-)


-- 
Sandro Dentella  *:-)
http://www.reteisi.org Soluzioni libere per le scuole
http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy



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


Re: [Python] filtrare ai margini

2013-09-19 Per discussione Marco Mariani
> def clamp(x, min, max):
> if x < min:
>return min
> elif x > max:
>return max
> else:
>return x

Si potrebbe disquisire un po' sull'opportunità di togliere else/elif :)
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Quoting (was: filtrare ai margini)

2013-09-19 Per discussione Marco Beri
2013/9/19 Nicola Larosa 

> On 19/09/2013 10:33, Marco Beri wrote:
> > 2013/9/19 Nicola Larosa mailto:n...@teknico.net>>
> >
> > P.S.: te l'ho già detto ma mi tocca ripetere: ti prego, fai qualcosa
> per
> > migliorare il quoting. Ogni volta perdo un sacco di tempo a
> risistemare
> > (e no, lo sai che non ci rinuncio :-) ).
> >
> >
> > Mi ricordi qual'era il problema? Ci sono altri che vedono male il mio
> > quoting?
>
> Il problema è che se rispondo in testo liscio (come ancora faccio) e non
> riformatto, il quoting viene come quello sopra: non abbastanza ">", spazi
> in eccesso tra le ">" e il testo, linee troppo lunghe.
>

Capisco.

Ma perché non lasci il quoting in html? Tra l'altro si fa meno fatica
quando si va a capo così. Con i ">" se devi rimpaginare diventi matto.

Ciao.
Marco.

-- 
http://beri.it/ - Un blog
http://beri.it/i-miei-libri/ - Qualche libro
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] filtrare ai margini

2013-09-19 Per discussione Manlio Perillo
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 19/09/2013 01:03, Vittorio Spina wrote:
> Il 19/09/2013 00:49, Valerio Maggio ha scritto:
>> On Thursday, September 19, 2013, Vittorio Spina wrote:
>> 
>> ciao, che sappiate esiste un modo pi elegante per evitare quello
>> che segue? x = UnCertaFunzioneCheRitornaINT() if x>67: x=67 if
>> x<-67: x=-67
>> 
>> 
>> from math import copysign
>> 
 x = get_value_of_X() if not -67 < x < 67:
>> ...  x = copysign(67,x)
>> 
>> Che ne dici? !-)
> Non male, ma speravo in un miracolo pythonesco del tipo
> 
> x = min_max(-67,67,UnCertaFunzioneCheRitornaINT())
> 

Non vedo nulla di pythonesco o miracoloso.
Semplicente ti basta definire questa funzione, ed usarla.

> colpo secco in una riga...

def clamp(x, min, max):
if x < min:
   return min
elif x > max:
   return max
else:
   return x

x = clamp(x, -67, 67)


Le funzioni definite dall'utente e con lexical scoping sono
disponibili da Algol 60 (1960) (visto che parli di miracoli...)


> [...]


Ciao  Manlio
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Icedove - http://www.enigmail.net/

iEYEARECAAYFAlI6up8ACgkQscQJ24LbaUSh3gCeNftn3hz0JStdECCAEjTDRjyV
5IwAoJFKHMgaCrx59Pu0BQCAWnRo4RsR
=+ldr
-END PGP SIGNATURE-
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] filtrare ai margini

2013-09-19 Per discussione Nicola Larosa
On 19/09/2013 10:33, Marco Beri wrote:
> 2013/9/19 Nicola Larosa mailto:n...@teknico.net>>
> 
> P.S.: te l'ho già detto ma mi tocca ripetere: ti prego, fai qualcosa per
> migliorare il quoting. Ogni volta perdo un sacco di tempo a risistemare
> (e no, lo sai che non ci rinuncio :-) ).
> 
> 
> Mi ricordi qual'era il problema? Ci sono altri che vedono male il mio
> quoting?

Il problema è che se rispondo in testo liscio (come ancora faccio) e non
riformatto, il quoting viene come quello sopra: non abbastanza ">", spazi
in eccesso tra le ">" e il testo, linee troppo lunghe.


> P.S. Questo messaggio l'ho lasciato apposta col quoting standard di Gmail.

-- 
Nicola Larosa - http://www.tekNico.net/

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


Re: [Python] filtrare ai margini

2013-09-19 Per discussione Marco Beri
2013/9/19 Nicola Larosa 

> P.S.: te l'ho già detto ma mi tocca ripetere: ti prego, fai qualcosa per
> migliorare il quoting. Ogni volta perdo un sacco di tempo a risistemare
> (e no, lo sai che non ci rinuncio :-) ).
>

Mi ricordi qual'era il problema? Ci sono altri che vedono male il mio
quoting?

Come sai ci tengo anche io :-)

Se può essere un ulteriore motivo per smettere di usare GMail, ben venga,
> no? ;-)
>

Onestamente non ne vedo la necessità.

Ciao.
Marco.
P.S. Questo messaggio l'ho lasciato apposta col quoting standard di Gmail.

-- 
http://beri.it/ - Un blog
http://beri.it/i-miei-libri/ - Qualche libro
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] filtrare ai margini

2013-09-19 Per discussione Nicola Larosa
>> Andrea Ambu wrote:
>>> Alternativa:
>>> 
>>> x = blah()
>>> x = -67 if x < -67 else min(x, 67)

> Nicola Larosa wrote:
>> Questa è la più leggibile di tutte, cosa piuttosto importante. :-)

Marco Beri wrote:
> Leggibile è leggibile, ma personalmente trovo più compatta e
> leggibile:
> 
> x = min(67, max(-67, blah()))

È più compatta in quantità trascurabile, ma più leggibile?

Non avevo letto con attenzione la specifica, e fino alla tua non l'avevo
capita: quella di Andrea è lampante. Dai, non ci credo che non trovi la
sua più leggibile della tua.


P.S.: te l'ho già detto ma mi tocca ripetere: ti prego, fai qualcosa per
migliorare il quoting. Ogni volta perdo un sacco di tempo a risistemare
(e no, lo sai che non ci rinuncio :-) ).

Se può essere un ulteriore motivo per smettere di usare GMail, ben venga,
no? ;-)

-- 
Nicola Larosa - http://www.tekNico.net/

I'll play closed-source games because they're not very harmful, and
it doesn't bother me when I ride an elevator with closed-source
firmware, but I will not - ever, under any circumstances, for any
reason - give Apple my money or my approval so that it can lock more
people into its beautifully-decorated jails. - Eric Raymond, April 2013
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] filtrare ai margini

2013-09-19 Per discussione Marco Beri
On Thu, Sep 19, 2013 at 9:35 AM, Nicola Larosa  wrote:

> Andrea Ambu wrote:
> > Alternativa:
> >
> > x = blah()
> > x = -67 if x < -67 else min(x, 67)
>
> Questa è la più leggibile di tutte, cosa piuttosto importante. :-)
>

Leggibile è leggibile, ma personalmente trovo più compatta e leggibile:

x = min(67, max(-67, blah()))

Ciao.
Marco.

-- 
http://beri.it/ - Un blog
http://beri.it/i-miei-libri/ - Qualche libro
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] filtrare ai margini

2013-09-19 Per discussione Perini Matteo

Il 19/09/2013 00:18, Vittorio Spina ha scritto:

ciao,
che sappiate esiste un modo più elegante per evitare quello che segue?
x = UnCertaFunzioneCheRitornaINT()
if x>67: x=67
if x<-67: x=-67


Ciao,
non so se hai contemplato la possibilità di usare moduli esterni ma io 
uso spesso:

numpy.clip

Molto utile su arrai/liste ma dovrebbe funzionare.
Ciao
M.


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


Re: [Python] filtrare ai margini

2013-09-19 Per discussione Nicola Larosa
Nicola Larosa wrote:
> Evita di rispondere a uno dei messaggi di quella discussione e poi 
> cambiato l'oggetto.

Editing fail. Qualcosa come:

Evita di rispondere a un messaggio di una discussione preesistente
cambiando poi l'oggetto.

-- 
Nicola Larosa - http://www.tekNico.net/
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] filtrare ai margini

2013-09-19 Per discussione Nicola Larosa
Andrea Ambu wrote:
> Alternativa:
> 
> x = blah()
> x = -67 if x < -67 else min(x, 67)

Questa è la più leggibile di tutte, cosa piuttosto importante. :-)

-- 
Nicola Larosa - http://www.tekNico.net/

I'll play closed-source games because they're not very harmful, and
it doesn't bother me when I ride an elevator with closed-source
firmware, but I will not - ever, under any circumstances, for any
reason - give Apple my money or my approval so that it can lock more
people into its beautifully-decorated jails. - Eric Raymond, April 2013

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


Re: [Python] filtrare ai margini

2013-09-19 Per discussione Nicola Larosa
Andrea Ambu wrote:
> Alternativa:
> 
> x = blah()
> x = -67 if x < -67 else min(x, 67)

Questa è la più leggibile di tutte, cosa piuttosto importante. :-)

-- 
Nicola Larosa - http://www.tekNico.net/

I'll play closed-source games because they're not very harmful, and
it doesn't bother me when I ride an elevator with closed-source
firmware, but I will not - ever, under any circumstances, for any
reason - give Apple my money or my approval so that it can lock more
people into its beautifully-decorated jails. - Eric Raymond, April 2013

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


Re: [Python] filtrare ai margini

2013-09-19 Per discussione Gianni Di Noia
2013/9/19 Giovanni Porcari :
> result = x>0 and (((x>67) and 67) or x)  or (((x<-67) and -67) or x)

2013/9/19 Andrea Ambu :
> x = -67 if x < -67 else min(x, 67)

entrambe hanno prestazioni molto vicine a quella di Diego.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] filtrare ai margini

2013-09-19 Per discussione Nicola Larosa
Vittorio Spina wrote:
> ciao,

Il mio Thunderbird mi mostra il tuo messaggio nascosto all'interno della
discussione "l'amore per il pitone". Il tuo Thunderbird no?

Evita di rispondere a uno dei messaggi di quella discussione e poi
cambiato l'oggetto. Crea invece un nuovo messaggio, e la tua discussione
verrà mostrata separatamente dalle altre.

Anche questa è netiquette. Ed anche rottura di palle, sì, ma una volta
sola sperabilmente. :-)

(Una volta sola per ognuno, s'intende. Avanti il prossimo.)

-- 
Nicola Larosa - http://www.tekNico.net/

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


Re: [Python] filtrare ai margini

2013-09-19 Per discussione Andrea Ambu
2013/9/19 Carlos Catucci :
> risultato: x è più veloce di y.
>>
>> 27 milionesimi di secondo contro 59.
>> nel caso dipenda dal codice ho usato, eccolo:
>
>
> Non so la velocita' ma
>
> from math import copysign
>
> x = valore_che_vuoi
>
> [x if x in range(-67,67) else copysign(67,x)]
>


Alternativa:

x = blah()
x = -67 if x < -67 else min(x, 67)



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


Re: [Python] filtrare ai margini

2013-09-19 Per discussione Marco Beri
2013/9/19 Giovanni Porcari 

> Versione con soli operatori logici :
> result = x>0 and (((x>67) and 67) or x)  or (((x<-67) and -67) or x)
> Lo so che come leggibilità non è il massimo ;)
>

Ma è un bell'esercizio!

Grande.


-- 
http://beri.it/ - Un blog
http://beri.it/i-miei-libri/ - Qualche libro
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] filtrare ai margini

2013-09-19 Per discussione Marco Beri
2013/9/19 Vittorio Spina 

> Non male, ma speravo in un miracolo pythonesco del tipo
> x = min_max(-67,67,UnCertaFunzioneCheRitornaINT())
>

Beh, la versione di Diego (che preferisco) non è molto lontana da questa:

x = min(max(UnaCertaFunzioneCheRitornaINT(), -67), 67)

Ciao.
Marco.

-- 
http://beri.it/ - Un blog
http://beri.it/i-miei-libri/ - Qualche libro
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] filtrare ai margini

2013-09-19 Per discussione Giovanni Porcari

Il giorno 19/set/2013, alle ore 09:06, Gianni Di Noia  ha 
scritto:

> On Thu, Sep 19, 2013 at 8:43 AM, Valerio Maggio
>  wrote:
>>> x = copysign(min(abs(x), 67), x)
>> /One line to rule them all/ !-)
> intorno ai 60 e copysign va importato quindi una riga in più


Versione con soli operatori logici :

result = x>0 and (((x>67) and 67) or x)  or (((x<-67) and -67) or x)

Lo so che come leggibilità non è il massimo ;)


G



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


Re: [Python] filtrare ai margini

2013-09-19 Per discussione Gianni Di Noia
On Thu, Sep 19, 2013 at 8:43 AM, Valerio Maggio
 wrote:
>> x = copysign(min(abs(x), 67), x)
> /One line to rule them all/ !-)
intorno ai 60 e copysign va importato quindi una riga in più
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python