Re: [Python] O non capisco sqlite, o non capisco sqlalchemy, o entrambi

2013-11-18 Per discussione Matteo Vitturi



[...]
> 
> Per capire, mi sono andato a vedere la query che sqlalchemy genera, ed è
> come segue:
> 
> "SELECT a.id AS a_id, a.col AS a_col FROM a, arel WHERE ? = arel.id1 AND
> a.id = arel.id2", la_mia_id
> 
> Provando a chiamare direttamente questa query direttamente con sqlite,
> in effetti ottengo lo stesso effetto che usando l'ORM di slqalchemy.
> 
> Ora, le mie conoscenze/ricerche di SQL sono sufficienti per farmi capire
> che questa è una JOIN implicita, e qual'è la sua logica. Però non
> capisco:
> 1) dal punto di vista implementativo: com'è possibile che una JOIN sia
> così più lenta di svariate SELECT che fanno (concettualmente, per quel
> che ne posso capire) esattamente lo stesso lavoro?!
> 2) ammesso che debba essere così, cosa impedisce a sqlalchemy di usare
> le stesse SELECT che uso io, per recuperare esattamente la stessa roba?!
[...]
> Pietro

Sqlite accede a AREL cercando id1=la_mia_id: in assenza di indice su AREL.id1 
effettua una ricerca lineare. Supponiamo pure che questo per scorrere tutta la 
tabella serva un decimo di secondo.
Per ogni riga ottenuta accede alla tabella A cercando quale "id" batta: in 
assenza di indice su A.id effettua una ricerca lineare, ogni volta impiegando 
un decimo di secondo per scorrere tutta la tabella.
Ora, con milioni di decimi di secondo si si arriva facilmente a qualche giorno 
di esecuzione...

Aggiungi due indici.
M.


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


Re: [Python] 2 neo pythonisti che affrontano un orda barbara di javisti - con quasi-rissa finale

2011-04-07 Per discussione Matteo Vitturi

> 
> Manlio Perillo wrote:
> 
> Il discorso "si puo' fare casino in ogni linguaggio" e' vuoto. 
> Tecnicamente e' vero: si possono introdurre bachi con qualunque 
> linguaggio e tecnologia (che sia potente abbastanza da fare qualcosa di 
> interessante). Ma e' anche banale e qualunquista.
> 
> Ha lo stesso pattern di "tutti i linguaggi sono uguali", che e' 
> ovviamente un assurdo.


Giustamente fai notare che non tutti i linguaggi sono uguali.
Aggiungo che per fare casino in ciascun linguaggio ci vuole lo skill specifico 
di quel linguaggio.
;-)
M.

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


Re: [Python] 2 neo pythonisti che affrontano un orda barbara di javisti - con quasi-rissa finale

2011-04-06 Per discussione Matteo Vitturi

Insomma, c'è modo di fare casino con qualunque linguaggio.

> Ripeto, il problema secondo me non è sbagliare. Tutti sbagliano. Il
> problema è a) continuare a sbagliare b) credere di non aver sbagliato
> c) non osservare e imparare da errori & successi altrui.

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


Re: [Python] Eseguire del codice in una stringa (gestione aggiornamenti?)

2010-02-19 Per discussione Mattsteel Matteo Vitturi

> Date: Thu, 18 Feb 2010 21:46:54 +0100
> From: mich...@nectarine.it
[...] 
> Ora, il RE ha un compito ben preciso: scaricare [e supponiamo, per  
> ora, che questo venga fatto in modo sicuro e senza modifiche] il  
> codice sorgente dell'applicazione, e non ci preoccupiamo per ora di  
> come lo scarica.
> Quello che voglio realizzare in questo modo e` un'applicazione che si  
> autoaggiorna ad ogni avvio, scaricando il codice sorgente ed  
> eseguendolo.
[...]
> Prima domanda: e` possibile tutto cio` ?
> Seconda domanda: quali sono i metodi che devo guardarmi? eval() e  
> compile() possono fare al caso mio?
> 
> Vi ringrazio.
>Michele
[...]


Mi permetto di rispondere alla tua prima domanda: Personalmente, ho già usato 
questa tecnica. 



Supponiamo, come dici, di avere il modulo RE e un modulo Applicazione 
accessibile da parte di RE in esecuzione.

In questo caso, quando RE deve aggiornare Applicazione può fare così:



appl = 'Applicazione'

del sys.modules[appl]

exec( '''import {0}'''.format(appl) )



N.B. exec solleva un eccezione se l'import va male: ti stai esponendo
al rischio di importare del codice non più funzionante o peggio...


Conviene evitare di re-importare in un sol colpo tutta
l'Applicazione. Se Applicazione è suddivisa in più package, puoi
importare all'occorrenza solo la parte effettivamente modificato dal
precedente import.



Ciao.

Matteo.



  
_
Scatta, ritocca e condividi le tue foto online. Gratis per te
http://www.windowslive.it/foto.aspx___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] ReportLab e barcode

2010-02-11 Per discussione Mattsteel Matteo Vitturi

Anni fa ho prodotto per il magazzino dei reports con dei bar-code di tipo UPC-A 
(un sottoinsieme di EAN13).
Lavoravo con WindowsNT quindi ho potuto usare un font TrueType trovato in rete.
Per esempio con il font EAN13, per codificare il barcode 123456789012 dovevo 
costruire la stringa b3D5FG|XYPQRx 
Penso che ci siano ancora in giro dei siti dove puoi trovare i font
Per Ubuntu, non so se i font TrueType possano essere adattati.
Matteo.


> Ciao a tutti,
> con Python e Reportlab creo dei documenti in pdf.
> Vorrei poter aggiungere dei barcode all'interno di questi documenti.
> 
> E' da un paio di giorni che cerco sulla rete, ma sono troppo ignorante,
> e non riesco a capire come fare ad installare ste estensioni..
> 
> Qualcuno mi può dare una mano?
> 
> Lavoro con Ubuntu..
> 
> Marco
  
_
Scatta, ritocca e condividi le tue foto online. Gratis per te
http://www.windowslive.it/foto.aspx___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python