Re: [Python] Che barba sta codifica!

2015-06-20 Per discussione Diego Barrera

Il 20/06/2015 09:39, Marco Buttu ha scritto:

On 19/06/2015 17:56, Manlio Perillo wrote:

Documentati il prima possibile.
Ad esempio:
http://www.joelonsoftware.com/articles/Unicode.html


Ascolta il suggerimento di Manlio ;)

La codifica dei caratteri e' il pane quotidiano di un programmatore


Se il convento passa questo, bisogna adeguarsi :)


Morale della favola:

* impensabile non spendere qualche pomeriggio per studiare la codifica 
dei caratteri

* byte e testo non sono la stessa cosa
* Python 3 ha scelto la soluzione piu' pythonica per gestire la cosa

Avevo cominciato questo progetto con django e python3, ma non mi ricordo 
quale caspita
di pacchetto era compatibile solo con python2. Sara' per il prossimo o 
per un futuro aggiornamento.

Grazie mille della spiegazione
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Why should I care about the netiquette? [Was: Re: VI PREGO AIUTATEMI!!!! Problema con Pyahton]

2015-06-20 Per discussione Marco Buttu

On 19/06/2015 16:59, Carlo Miron wrote:

2015-06-19 16:34 GMT+02:00 Diego Barreradiegonebarr...@yahoo.it:


Il 19/06/2015 13:28, Michele Orru` ha scritto:

In compenso però permette di farci pompini a vicenda™


Bella questa :)
un po' macabra ma bella!

https://www.youtube.com/watch?v=j-WrzQ1a_CU

Carlo, non te ne sfugge una :D

--
Marco Buttu

INAF-Osservatorio Astronomico di Cagliari
Via della Scienza n. 5, 09047 Selargius (CA)
Phone: 070 711 80 217
Email: mbu...@oa-cagliari.inaf.it

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


Re: [Python] Che barba sta codifica!

2015-06-20 Per discussione Diego Barrera

Il 20/06/2015 11:38, Carlos Catucci ha scritto:


2015-06-20 11:25 GMT+02:00 Diego Barrera diegonebarr...@yahoo.it 
mailto:diegonebarr...@yahoo.it:


Gia' sto un bel pezzo avanti, devo capire come includere questa
cosa nel mio codice..


Chiamasi refactoring. Se fai continuous integration e' una cosa 
quotidiana.

Stessa cosa se hai dei capi/committenti che non sanno cazzo vogliono.

Mal comune mezzo gaudio!
Ti sono vicino ;)

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


Re: [Python] Che barba sta codifica!

2015-06-20 Per discussione Marco Buttu

On 19/06/2015 17:56, Manlio Perillo wrote:

2015-06-19 16:58 GMT+02:00 Diego Barrera diegonebarr...@yahoo.it 
mailto:diegonebarr...@yahoo.it:


premesso che non ho mai capito come funziona la codifica dei
caratteri,


Documentati il prima possibile.
Ad esempio:
http://www.joelonsoftware.com/articles/Unicode.html


Ascolta il suggerimento di Manlio ;)

La codifica dei caratteri e' il pane quotidiano di un programmatore, per 
cui se non si capisce come funziona, prima di andare avanti ci si deve 
soffermare (un pomeriggio, due, quanto basta) per studiarla e capirla 
*sino in fondo*. E' veramente un concetto imprescindibile. La 
distinzione tra testo e byte che si ha in Python 3 viene spesso 
criticata, ma credo sia uno dei suoi maggiori punti di forza, ed è una 
scelta veramente Pythonica, in perfetto accordo con lo Zen di Python.


In Python 2 poi darmi una sequenza di byte come stringa:

   open('myfile', 'w').write('via 1\xf8 Maggio, 21') # Python 2

e io posso leggerla come testo, senza pormi alcun problema:

   open('myfile').read() # Python 2
  'via 1\xf8 Maggio, 21'

Questo non solleva eccezioni, e per chi non sa cosa sta sotto il 
passaggio da byte a testo (che qua non avviene, perche' in Python 2 e' 
un miscuglio) e viceversa, e' il comportamento desiderato, visto che Il 
mio programma gira, anche se ogni tanto mi saltano fuori caratteri 
strani. E infatti anche per questo abbiamo mojibake dietro ogni angolo.


In Python 3 la musica cambia. *Giustamente* i byte sono byte, e il testo 
e' testo, ovvero una sequenza di byte interpretata secondo una data 
codifica. Apro il file in lettura, e per default open() tira fuori il 
_testo_. Ma per poter ottenere testo da quella sequenza di byte, 
ovviamente deve poter sapere come interpretare tali byte. Per default 
ipotizza che voglio usare l'encoding impostato nella mia macchina (utf-8):


   open('myfile').read()
  Traceback (most recent call last):
   ...
  UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf8...

Non e' utf-8. Se so cosa fare, lo faccio:

   open('myfile', encoding='cp850').read() # Grazie a Carlo ;)
  'via 1° Maggio, 21'

Se non ho idea di come il testo originale e' stato codificato, e non 
voglio provare ad indovinare, posso *esplicitamente* indicare di fare 
passare gli errori silenziosamente:


   open('myfile', errors='ignore').read()
  'via 1 Maggio, 21'

Explicit is better than implicit and Errors should never pass silently.

Morale della favola:

* impensabile non spendere qualche pomeriggio per studiare la codifica 
dei caratteri

* byte e testo non sono la stessa cosa
* Python 3 ha scelto la soluzione piu' pythonica per gestire la cosa

--
Marco Buttu

INAF-Osservatorio Astronomico di Cagliari
Via della Scienza n. 5, 09047 Selargius (CA)
Phone: 070 711 80 217
Email: mbu...@oa-cagliari.inaf.it

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


Re: [Python] Che barba sta codifica!

2015-06-20 Per discussione Diego Barrera

Il 20/06/2015 11:25, Manlio Perillo ha scritto:
2015-06-20 11:22 GMT+02:00 Diego Barrera diegonebarr...@yahoo.it 
mailto:diegonebarr...@yahoo.it:


Controlla che sia UTF-8, e se non lo è riporta un *chiaro* messaggio 
di errore.
Inoltre specifica che il file deve essere in UTF-8 anche nella 
documentazione del form HTML.




In realta' utilizzo django-model-form solo per validare i dati,
non per renderizzare dell'html.
In pratica il programma
1. legge un csv e infila i dati in un dizionario
2. da' il dizionario in pasto al django-model-form
3. il django-model-form valida i dati
4. se tutto e' andato a buon fine invoca il metodo save()

Siccome abbiamo vari clienti, ed ognuno manda un formato
diverso di csv, posso intervenire nel punto 1 perche' e' comunque
customizzato per ogni cliente.

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


Re: [Python] Che barba sta codifica!

2015-06-20 Per discussione Marco Beri
On Jun 20, 2015 1:49 PM, Manlio Perillo manlio.peri...@gmail.com wrote:

 Ricorda che ogni volta che non usi UTF-8 per la codifica, un
programmatore perde i capelli a causa dello stress.

Ora capisco tutto...

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


Re: [Python] Che barba sta codifica!

2015-06-20 Per discussione Diego Barrera

Il 19/06/2015 17:56, Manlio Perillo ha scritto:
2015-06-19 16:58 GMT+02:00 Diego Barrera diegonebarr...@yahoo.it 
mailto:diegonebarr...@yahoo.it:


Ciao lista,
premesso che non ho mai capito come funziona la codifica dei
caratteri,


Documentati il prima possibile.
Ad esempio:
http://www.joelonsoftware.com/articles/Unicode.html


Grazie del link


La stringa viene letta e inserita in un django-model-form, poi
viene invocato il metodo save()
La stringa viene inviata da una macchina windows di un cliente
tramite csv


Non ho capito bene come viene inviata la stringa.
Il client invia il file così come è?
In questo caso c'è poco da fare, perchè non hai modo di conoscere 
l'encoding usato nel file (ma puoi cercare di indovinarlo).


Avevo chiesto esplicitamente alla software house di questo nostro 
cliente di utilizzare utf8...

la prendo con filosofia e colgo l'occasione per imparare una cosa nuova.
Grazie di nuovo

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


Re: [Python] Why should I care about the netiquette? [Was: Re: VI PREGO AIUTATEMI!!!! Problema con Pyahton]

2015-06-20 Per discussione Simone Federici
Gollum:

 Credo che comincerò a filtrare il filtrabile è farmi bellamente i cazzi
 miei.


Non ragioniam di lor, ma guarda e passa


-- 
Simone Federici

Software Craftsman
XP, Agile, Scrum, Kanban
Quality, performance  security

Explicit is better than implicit.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Che barba sta codifica!

2015-06-20 Per discussione Manlio Perillo
2015-06-20 11:59 GMT+02:00 Diego Barrera diegonebarr...@yahoo.it:

 Il 20/06/2015 11:25, Manlio Perillo ha scritto:

 2015-06-20 11:22 GMT+02:00 Diego Barrera diegonebarr...@yahoo.it
 mailto:diegonebarr...@yahoo.it:

 Controlla che sia UTF-8, e se non lo è riporta un *chiaro* messaggio di
 errore.
 Inoltre specifica che il file deve essere in UTF-8 anche nella
 documentazione del form HTML.


 In realta' utilizzo django-model-form solo per validare i dati,
 non per renderizzare dell'html.
 In pratica il programma
 1. legge un csv e infila i dati in un dizionario


Se ci dai più informazioni magari possiamo aiutarti a risolvere (o almeno
affrontare) il problema nel migliore dei modi.
Questo programma gira sul server o sul client? È un programma desktop?

Comunque anche se il programma gira sul PC del cliente, la soluzione più
solida è quella di forzare UTF-8, perchè anche
su Windows l'encoding di un file non può essere determinato con certezza
assoluta (puoi sapere l'encoding di sistema e/o
l'encoding della console, ma il programma che genera il file potrebbe usare
UTF-8 o UTF-16).

Ricorda che ogni volta che non usi UTF-8 per la codifica, un programmatore
perde i capelli a causa dello stress.


 [...]


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


Re: [Python] Why should I care about the netiquette? [Was: Re: VI PREGO AIUTATEMI!!!! Problema con Pyahton]

2015-06-20 Per discussione Marco Fochesato
 Anche a me spiacerebbe.


Spiacerebbe anche a me!
Pur essendo stato piú volte cazziato in passato!
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Che barba sta codifica!

2015-06-20 Per discussione Diego Barrera

Il 20/06/2015 13:57, Marco Beri ha scritto:


On Jun 20, 2015 1:49 PM, Manlio Perillo manlio.peri...@gmail.com 
mailto:manlio.peri...@gmail.com wrote:


 Ricorda che ogni volta che non usi UTF-8 per la codifica, un 
programmatore perde i capelli a causa dello stress.


Ora capisco tutto...


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


Re: [Python] Che barba sta codifica!

2015-06-20 Per discussione Manlio Perillo
2015-06-20 11:22 GMT+02:00 Diego Barrera diegonebarr...@yahoo.it:

 Il 19/06/2015 17:56, Manlio Perillo ha scritto:


  [...]

 Non ho capito bene come viene inviata la stringa.
 Il client invia il file così come è?
 In questo caso c'è poco da fare, perchè non hai modo di conoscere
 l'encoding usato nel file (ma puoi cercare di indovinarlo).

  Avevo chiesto esplicitamente alla software house di questo nostro
 cliente di utilizzare utf8...

la prendo con filosofia


No, non prenderla con filosofia.

Controlla che sia UTF-8, e se non lo è riporta un *chiaro* messaggio di
errore.
Inoltre specifica che il file deve essere in UTF-8 anche nella
documentazione del form HTML.


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


Re: [Python] Che barba sta codifica!

2015-06-20 Per discussione Diego Barrera

Il 19/06/2015 18:23, Carlo Miron ha scritto:

2015-06-19 16:58 GMT+02:00 Diego Barrera diegonebarr...@yahoo.it:

e sto usando Python 2.17.9, leggendo la stringa

Python 2.17.9 ??? :P


Quando me ne sono accorto gia' avevo spinto invia :D


Su un Python molto più vecchio, 2.7.9:

  print 'via 1\xf8 Maggio, 21'.decode('cp850')
 via 1° Maggio, 21

Gia' sto un bel pezzo avanti, devo capire come includere questa cosa nel 
mio codice..

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


Re: [Python] [python] Re: Che barba sta codifica!

2015-06-20 Per discussione computer service
On 20 Jun 2015 at 11:38, Carlos Catucci wrote:

 2015-06-20 11:25 GMT+02:00 Diego Barrera diegonebarr...@yahoo.it:
 
  Gia' sto un bel pezzo avanti, devo capire come includere questa cosa nel
  mio codice..
 
 
 Chiamasi refactoring. Se fai continuous integration e' una cosa quotidiana.
 Stessa cosa se hai dei capi/committenti che non sanno cazzo vogliono. A me
 capitano sempre di questo tipo, che cazz...
 
 Carlos
 -- 
 EZLN ... Para Todos Todo ... Nada para nosotros
 
i committenti che non sanno cosa vogliono sono il 99.999%. io ne devo ancora 
trovare di 
clienti che sanno chiaramente che hardware vogliono e che software vogliono.
mentre quelli che vogliono spendere nulla o quasi sonoil 99.999%, senza 
rendersi conto del 
tempo che ci perdi.
saluti
Gilberto

Computer Service
Lido Estensi (Fe)
tel.:0533328922
cell.:338/2791579
cserv...@simail.it
http://gilwiki.altervista.org


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


Re: [Python] Che barba sta codifica!

2015-06-20 Per discussione Andrea D'Amore
2015-06-19 17:56 GMT+02:00 Manlio Perillo manlio.peri...@gmail.com:
 Documentati il prima possibile.
 Ad esempio:
 http://www.joelonsoftware.com/articles/Unicode.html

E in ambito Python-specifico vedi anche Unipain, video e presentazione:

http://nedbatchelder.com/text/unipain.html


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


Re: [Python] Che barba sta codifica!

2015-06-20 Per discussione Enrico Bianchi

On 06/19/2015 04:58 PM, Diego Barrera wrote:
premesso che non ho mai capito come funziona la codifica dei caratteri, 


Ho sempre amato questo: http://farmdev.com/talks/unicode/

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


Re: [Python] Che barba sta codifica!

2015-06-20 Per discussione Fabio T .
Il 20 giugno 2015 15:40:17 CEST, Enrico Bianchi enrico.bian...@ymail.com ha 
scritto:
On 06/19/2015 04:58 PM, Diego Barrera wrote:
 premesso che non ho mai capito come funziona la codifica dei
caratteri, 

Ho sempre amato questo: http://farmdev.com/talks/unicode/

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

Ottima presentazione, thanks for sharing!

Fabio
-- 
Inviato dal mio dispositivo Android con K-9 Mail. Perdonate la brevità.___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Che barba sta codifica!

2015-06-20 Per discussione Simone Federici
Marco Beri:

  Ricorda che ogni volta che non usi UTF-8 per la codifica, un
 programmatore perde i capelli a causa dello stress.

 Ora capisco tutto...

posso essere l'eccezione che conferma la regola?
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Che barba sta codifica!

2015-06-20 Per discussione Gollum1
Il 20 giugno 2015 13:57:56 CEST, Marco Beri marcob...@gmail.com ha scritto:
On Jun 20, 2015 1:49 PM, Manlio Perillo manlio.peri...@gmail.com
wrote:

 Ricorda che ogni volta che non usi UTF-8 per la codifica, un
programmatore perde i capelli a causa dello stress.

Ora capisco tutto...

Quando ho letto quella frase ho proprio pensato a te... :)

Byez
-- 
Gollum1
Teoro, dov'è il mio teoro

Inviato dal mio dispositivo Android con K-9 Mail. Perdonate la brevità e gli 
errori di battitura (maledetto correttore automatico).
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Circular references Django migration problem

2015-06-20 Per discussione Carlos Catucci
2015-06-19 13:51 GMT+02:00 Marco Beri marcob...@gmail.com:

 Questo commento non ti aiuta?

 https://code.djangoproject.com/ticket/22932#comment:4


Allora finalmente ho avuto tempo (rubato) per controlalre la circular
reference. Ho letto quello che accennava l'articolo che mi hai indicato e
altri, e ho seguito il consiglio di Simomne, solo che non ci sono referenze
circolari.
Per essere certo che non mi sfuggise nulla ho preso un mind-pmapper, ho
creto uno schema cei models delle apps interessate, elencando sotto ogni
tabella le foreign key e poi collegandole alle tanbelle linkate. Dopo ho
cambiato il colore di quelle che puntano ad altre tabelle della stessa app.
Sono rimaste alla fine 4 soli link. Solo che non ci sono referenze
circolari di alcun tipo. E mi trovo punto e a capo.
Va beh lunedi' provo a commentare un poco di rovba fino a che non vedo
socmparire la Circular Ref cosi da capire cosa gli dia fastidio.

Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python