Re: [Python] Django + Postgres

2013-12-16 Per discussione enrico franchi
On Sunday, December 15, 2013, Simone Federici wrote:

 Se parlate di una dimensione progetto. Ok.

 Ma se si sviluppa un prodotto? Valgono le stesse riflessioni?


Dipende cosa intendi con prodotto. Siccome ho sempre un customer, nel mio
caso i progetti sono in certo senso anche prodotti.


E si, se. Lo sforzo di sviluppo o di ops cresce troppo, io voto per
cambiare i componenti colpevoli. Anche se sono db.


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


Re: [Python] R: [OT] Che distro usate per il vostro server (WAS desktop)

2013-12-16 Per discussione Giampaolo Rodola'
Se posso scegliere: Ubuntu server.
Motivi:

- ha apt
- rispetto a Debian mi sembra un pelo meno conservativa (vedi più
aggiornata) ma cmq seria / affidabile
- la uso gia su desktop

Sempre se sono io a poter scegliere cerco di non farmi condizionare
troppo dal package manager.
Per dire, compilare Python 3.4 da sorgenti è veramente semplice:
http://stackoverflow.com/questions/12023773/python-3-3-source-code-setup-modules-were-not-found-lzma-sqlite3-tkinter/20468723#20468723
...e per quanto ne so io non ha particolari controindicazioni (ma non
è il mio mestiere e potrei sbagliarmi).


--- Giampaolo
https://code.google.com/p/pyftpdlib/
https://code.google.com/p/psutil/
https://code.google.com/p/pysendfile/
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Django + Postgres

2013-12-16 Per discussione enrico franchi
On Sunday, December 15, 2013, Alberto Granzotto wrote:




 Secondo me la vera cosa che rende schiavi e' l'avere dei dati
 semi-denormalizzati.


Non è che ti rende schiavo. Ti rende pazzo e ti tira scemo. Dopo di che lo
sai come va.

Sql è old ed enterprise, nosql è ggiovane.

Semplicemente ci sono cose che fai meglio con uno e con l'altro. Oltretutto
ci sono quintali di nosql diversi, ognuno che va bene a fare vose diverse.


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


Re: [Python] Django + Postgres

2013-12-16 Per discussione Simone Federici
2013/12/16 enrico franchi enrico.fran...@gmail.com

 Dipende cosa intendi con prodotto. Siccome ho sempre un customer, nel mio
 caso i progetti sono in certo senso anche prodotti.


se hai un solo customer, è un progetto.
se il tuo customer è la tua azienda, che vende il prodotto che sviluppi
tramite molteplici canali a migliaia di clienti finali allora direi che è
un prodotto.
Diciamo che possiamo generalizzare dicendo che un prodotto lo sviluppi per
un customer ma il cliente finale non corrisponde al tuo customer.

E si, se. Lo sforzo di sviluppo o di ops cresce troppo, io voto per
 cambiare i componenti colpevoli. Anche se sono db.


Scegliere il DB per un prodotto è una cosa difficile. Per esigenze di
vendita in differenti realtà il requisito del tuo cliente (stessa azienda)
potrebbe essere supportare i maggiori DB.

Un ORM semplifica la vita.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python, redis e bottleneck

2013-12-16 Per discussione Pietro Battiston
Il giorno dom, 15/12/2013 alle 22.24 +, A. Cavallo ha scritto:
 Dipende tutto dalla mole di dati. Sopra 1T? Fino a diciamo 500Gb la
 soluzione più semplice è un disco sdd pcie, oramai costano sotto i
 1000euri e puoi usare un DB tradizionale. 
 Redis è adatto in certi scenari ma non rimpiazza un DB (può in sempre
 usare un DB relazionale come nosql).
 

?!

Nel mio scenario, se dovessi (costretto con le spalle al muro)
sostituire Redis lo sostituirei con un dizionario Python, che potrebbe
aumentare un po' l'efficienza, a costo però di costringermi a legare i
dati ad un processo specifico. Quindi se vuoi sono i dump di Redis che
rimpiazzano veramente un database per me. E in questa situazione se
volessi investire in hardware, comprerei più RAM (dato che gli SSD sono
almeno un ordine di grandezza più lenti).

(per la cronaca: se ci fosse un modo più pratico/rodato/efficiente per
fare il dump e ricaricare dei singoli database json sarei
interessatissimo - ma non ho trovato niente, e non ho voglia di
scrivermi codice ad hoc)

Vorrei solo capire dov'è il bottleneck, dato che né CPU né disco (né
RAM) sono utilizzati al massimo. Ma è una curiosità intellettuale (dato
che comunque la CPU è utilizzata all'80%, quindi il guadagno pratico da
un'eventuale illuminazione sarebbe limitato).

ciao

Pietro




 Pietro Battiston m...@pietrobattiston.it wrote:
 Salve a tutti,
 
 dopo l'ultima discussione in cui sono stato invitato a verificare se 
 ci
 guadagnassi veramente qualcosa a mappare con oggetti le mie tabelle 
 SQL,
 mi sono reso conto... che l'SQL era semplicemente lo strumento 
 sbagliato
 per me. Ed ho scoperto redis.
 
 L'unico mio problema con redis è che devo usare svariati database
 diversi, che non stanno tutti in memoria. Però posso caricarli quando 
 mi
 servono, con redis-dump-load.¹
 
 Qui veniamo alla domanda: per fare ciò, i database devono essere 
 salvati
 su disco in formato json (e qui l'efficienza è un problema secondario,
 dato che lo faccio una volta sola) e ricaricati. Ricaricarli è
 un'operazione che mi prende parecchio tempo (nel senso che devo anche
 farla svariate volte). Ha certamente a che fare con il fatto che il 
 mio
 computer non è una scheggia (N.B: il bottleneck non è il disco), però
 comunque mi stupisce che, su
 due core che ho, l'utilizzo (verificato con
 un brutale top) rimanga intorno al 80% di python + i 35% di redis. 
 Non
 ho altri processi impegnino il processore in maniera significativa
 (tant'è che nella successiva fase di analisi dei dati, python è fisso 
 al
 100%).
 
 Ho letto che redis può essere nettamente più efficiente se si usa un
 socket unix invece che TCP-IP, ed in effetti provando ho notato un 
 certo
 incremento di prestazioni (con il TCP-IP, le cifre erano piuttosto 70%
 di python + 30% di redis).
 
 Sapete dirmi se potrei fare qualcosa di più? O se dovrei arrendermi?
 
 grazie
 
 Pietro
 
 ¹ : https://github.com/p/redis-dump-load/
 
 
 __
 
 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


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


Re: [Python] [OT] Che distro usate per il vostro server (WAS desktop)

2013-12-16 Per discussione Gianluca Sforna
2013/12/13 Marco Beri marcob...@gmail.com:
 Parlando di questo thread con un mio collega, si è detto molto interessato
 alla cosa e mi ha detto: bello, ma per un server?

RHEL/CentOS. Il supporto Red Hat non si batte.

C'è comunque da dire che all'epoca del cloud, la distro usata sta
diventando sempre meno importante. Per dire, se Fedora mi offre
(solo?) 13 mesi di update, con uno qualunque dei sistemi di
automazione menzionati altrove posso tirare su una nuova istanza già
bella e pronta in pochi minuti.

-- 
Gianluca Sforna

http://morefedora.blogspot.com
http://identi.ca/giallu - http://twitter.com/giallu
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] [OT] Che distro usate per il vostro server (WAS desktop)

2013-12-16 Per discussione Dario Bertini
2013/12/16 Gianluca Sforna gia...@gmail.com:
 C'è comunque da dire che all'epoca del cloud, la distro usata sta
 diventando sempre meno importante. Per dire, se Fedora mi offre
 (solo?) 13 mesi di update, con uno qualunque dei sistemi di
 automazione menzionati altrove posso tirare su una nuova istanza già
 bella e pronta in pochi minuti.


Visto che menzioni questo, m'hai fatto venire in mente che ad astrarre
ancora di più le differenze ora ci sono anche figaggini come Docker:

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


Re: [Python] [OT] Che distro usate per il vostro server (WAS desktop)

2013-12-16 Per discussione Fabrizio Soppelsa
On 12/16/2013 04:18 PM, Dario Bertini wrote:
 Visto che menzioni questo, m'hai fatto venire in mente che ad astrarre
 ancora di più le differenze ora ci sono anche figaggini come Docker:

 http://www.docker.io/

Che non è production-ready comunque :-)
Anch'io sto studiando Docker, se a qualcuno interessa possiamo fare il
gruppo-studio :-)

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


Re: [Python] [OT] Che distro usate per il vostro server (WAS desktop)

2013-12-16 Per discussione Gianluca Sforna
2013/12/16 Fabrizio Soppelsa fsoppelsa...@gmail.com:
 Anch'io sto studiando Docker, se a qualcuno interessa possiamo fare il
 gruppo-studio :-)

+1



-- 
Gianluca Sforna

http://morefedora.blogspot.com
http://identi.ca/giallu - http://twitter.com/giallu
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Accoppiare due liste

2013-12-16 Per discussione simozack
Ho due liste di oggetti fatti da me: uno è una testata e l'altra sono le righe.

I dati sono pre-elaborazioni di due csv di qualche migliaio di righe.

Ad ogni testata dovrei ora associare le righe. Lo faccio con questo criterio:

for riga in righe:
testata = [ft for ft in fatture if ft.numero_fattura == riga._nr_fattura][0]
testata.aggiungi_riga(riga)

Bello (beh, insomma...), però per 1000 righe ci impiega circa 30
secondi con un tempo di lavoro di circa 40 min per la mole di dati che
ho.

Secondo voi, come posso velocizzare l'elaborazione?

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


Re: [Python] Accoppiare due liste

2013-12-16 Per discussione Marco Beri
2013/12/16 simozack simozac...@gmail.com

 for riga in righe:
 testata = [ft for ft in fatture if ft.numero_fattura ==
 riga._nr_fattura][0]
 testata.aggiungi_riga(riga)


Prova così.


fatture = dict([(ft.numero_fattura, ft) for ft in fatture])
for riga in righe:
fatture[riga._nr_fattura].aggiungi_riga(riga)

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] Accoppiare due liste

2013-12-16 Per discussione simozack
Il 16 dicembre 2013 17:56, Marco Beri marcob...@gmail.com ha scritto:
 Prova così.

 fatture = dict([(ft.numero_fattura, ft) for ft in fatture])
 for riga in righe:
 fatture[riga._nr_fattura].aggiungi_riga(riga)

Bah, qualche piccolo miglioramento... :)

PS: per la cronaca siamo nell'ordine di qualche decina di migliaia di
volte, a ben vedere... :)

Grazie mille per la lezione,
Simone
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Accoppiare due liste

2013-12-16 Per discussione Marco Beri
2013/12/16 simozack simozac...@gmail.com


 Bah, qualche piccolo miglioramento... :)
 PS: per la cronaca siamo nell'ordine di qualche decina di migliaia di
 volte, a ben vedere... :)
 Grazie mille per la lezione,


My pleasure :-)

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] Python, redis e bottleneck

2013-12-16 Per discussione Enrico Bianchi

On 12/16/2013 01:22 PM, Pietro Battiston wrote:

Nel mio scenario, se dovessi (costretto con le spalle al muro)
sostituire Redis lo sostituirei con un dizionario Python, che potrebbe
aumentare un po' l'efficienza, a costo però di costringermi a legare i
dati ad un processo specifico.
Per me stai continuando a sbagliare strumento. Redis e` un database 
NoSQL di tipo key value con qualche struttura di gestione semplice del 
dato, mentre tu parli di dizionari e JSON. Con queste premesse, e` molto 
piu` conviente orientarsi su di un database di dipo document store, che 
permettono tra l'altro la navigabilita` del documento. Sistemi adatti 
sono quindi MongoDB, Cassandra (un po' meno), CouchDB, OrientDB e, non 
ultimo PostgreSQL (il datatype JSON e` completamente navigabile). A 
questo punto ti consiglio di valutare e di provare uno dei sistemi che 
ti ho appena citato, indubbiamente saranno molto piu` adatti di Redis 
per quello che ti prefiggi


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