Re: [Python] Gestionale fatto in casa

2009-04-15 Per discussione enrico franchi
2009/4/14 salvatore monaco salvatore.mon...@gmail.com:

 io uso mysql ma postgres non e' da meno come potenza scalabilità e
 performance
 ma qualsiasi sia la scelta che tu voglia fare a livello di database sappi
 che devi padroneggiare tutto lo scibbile del db per poter avere il meglio.

Non esageriamo. Capisco dire che bisogna padroneggiare i db, su questo
sono d'accordo. Ma per me padroneggiare lo scibile dei db ha un significato
un po' eccessivo.

Tipicamente la distribuzione fisica dei dati su disco (organizzazione a livello
di cilindri, per dire), le strategie implementative per gestire
failures hardware
e ricorstruire a partire da dati corrotti, implementare indici, multi-indici,
implementare in modo efficiente b-tree, hash-tables, obdd, scrivere
un'ottimizzatore
per query SQL (o in generale ottimizzare espressioni dell'algebra
relazionale), la
conseguenze ottimizzazione dei piani per l'esecuzione delle query
la memorizzazione efficiente di righe, implementazione di varie
politiche di undo/redo,
e colonne su disco a seconda dell'efficienza che si vuole ottenere,
magari in ambiente
distribuito e parallelo... beh, tutta sta roba fa parte dello scibile
dei db, ma direi che
e' abbastanza sovradimensionata per scrivere un gestionale, visto che
interessa a chi
scrive un DBMS e non chi lo usa.

Qualche fondamento e' utile per capire le questioni di efficienza (per
dire sapere come
si implementano gli indici puo' essere molto utile per progettarli in
modo efficiente lato
utente), ma in generale potrebbe essere un overkill per un gestionale
con Django.

 per quanto riguarda GUi io prediliggo per adesso il web con django ma se
 devi sviluppare e scegliere un toolkit grafico vale la stessa regola per i
 db

Si, anche io suggerirei un gestionale GUI based nella maggior parte dei casi.
Testare le web-ui se non esageri e' piu' facile che testare le UI
classiche, IMHO.

 sono tutti strumenti accellenti ma bisogna conoscerli con profondità per
 averne il meglio.
 ho visto cose fatte con tkinter da paura

Quoto, ovviamente. Tkinter e' solo un po' bruttarello di default (e
IMHO rispetto
certe librerie come Cocoa e Qt *rimane* bruttino), ma pre il resto fa
il suo mestiere.

 usa da subito un software per il versionamento del codice csv o svn vanno
 benissimo

CVS io lo schiverei ormai. SVN fa il suo mestiere.
Ultimamente sono innamoratissimo di Perforce.
Per stare su roba open, io userei mercurial.

 parti da delle specifiche funzionali , carta e penna e diagrammi di flusso
 sono molto piu' importanti della scelta del db o del toolkit grafico
 e non dimenticare che la forza di un buon progetto e' la struttura del Db
 pensa bene a come organizzare i dati tabelle, le stored procedures e i
 trigger per far fare al db il lavoro che altrimenti faresti fare a
 python(l'ho imparato con ORACLE, plSQL a manetta) .

Qui invece sono abbastanza in disaccordo. Premessa: io sono un forte
fautore di metodi agili di sviluppo. Sono fortemente convinto che il
big-design up front sia un ottimo modo per avere un cattivo progetto.
Questo e' diverso da dire che *non* ci deve essere design, eh.

Non so comunque se sia il caso di insistere qui sulle metodologie di sviluppo.
OP potrebbe essere ferrato in questo e semplicemente non avere esperienza
con lo sviluppo Python, per cui fare una discussione su XP potrebbe essere
solo fuori luogo. http://www.extremeprogramming.org/

Non solo, molte stored procedures sono IMHO evitabili, *oggi*. MySQL ha un
supporto limitatissimo, Postgre lo ha migliore, ma rimane sempre un PITA
rispetto a scrivere le cose in Python. Hai un certo hit in termini di
efficienza,
ma e' difficile imbattercisi in un gestionale come quello di OP. Direi anche
impossibile, visto e considerato che addirittura non sconsiglierei un ORM.
Le SP ti vincolano ad un singolo DB. Potrebbe non essere *necessariamente*
la scelta migliore. Io partirei con l'idea di non usarle affatto e la
cambierei dopo
avere comprovato che semplificano *considerabilmente* le cose. Vedo sotto
che parti da una logica di AS400, e questo spiega la tua visione. E non lo dico
in senso negativo. Dico solo che cambiando in modo cosi' radicale la piattaforma
(qui parliamo di Python + piccolo db su un server win/linux), certe
scelte potrebbero
essere molto diverse.
Nota che debuggare una SP in Oracle e' ben piu' facile che farlo su
Postgre o su
MySQL.


Per il suo progetto io addirittura sarei del parere che il db e' quasi
un dettaglio
implementativo sottostante il modello ad oggetti. Questo e' in contrasto con la
classica visione del problema, ma e' un punto di vista sempre piu'
diffuso, specie
in questi ambiti.





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


Re: [Python] subprocess: come evitare il freezing durante la lettura dallo stdout di un processo?

2009-04-15 Per discussione G. Allegri
Sì, ho provato sia con

stdout_value = proc.communicate('\n')[0]

che con

proc.stdin.write('\n')

ma niente da fare. Addirittura con SendKeys non ottengo il risultato...

Il 14 aprile 2009 16.05, G. Allegri gioha...@gmail.com ha scritto:
 Gentili colleghi pythonisti,
 sono alle prese col modulo subprocess, perché devo interagire con
 un'applicazione console su Windows (di terze parti), la quale richiede
 alla fine dell'esecuzione (e dopo aver stampato i risultati sullo
 stdout) che l'utente prema sulla tastiera per fare terminare il
 processo.

 Sono bloccato alle prime righe:

 proc = subprocess.Popen('la_mia_applicazione',
                       shell=True,
                       stdout=subprocess.PIPE,
                       )
 stdout_value = proc.communicate()[0]
 #stdout_value = proc.stdout.readlines()
 PROCESS_TERMINATE = 1
 handle = win32api.OpenProcess(PROCESS_TERMINATE, False, proc.pid)
 win32api.TerminateProcess(handle, -1)
 win32api.CloseHandle(handle)
 print stdout_value

 Ho usato TerminateProcess per forzare l'uscita dall'applicazione senza
 l'interazione con l'utente, ma ricevo un errore di 'Access Denied'
 perché, suppongo, proc.communicate (ma anche proc.stdout.readlines)
 mantengono un handle su proc in attesa, forse, di un EOF, che non ci
 sarà mai poiché l'applicazione non termina...
 Se non leggo lo stdout, ovviamente, riesco a forzare il termine del
 programma senza errori.

 Come posso uscire da questo inghippo?
 Grazie,
 Giovanni

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


Re: [Python] subprocess: come evitare il freezing durante la lettura dallo stdout di un processo?

2009-04-15 Per discussione G. Allegri
Risolto usando SendKeys [1], il quale usa chiamate alle API di
windows.h. E' inevitabile dal momento che Press any key si aspetta
un segnale di basso-livello della console, e non da standard input.

[1] http://www.rutherfurd.net/python/sendkeys/

Il 15 aprile 2009 10.43, G. Allegri gioha...@gmail.com ha scritto:
 Sì, ho provato sia con

 stdout_value = proc.communicate('\n')[0]

 che con

 proc.stdin.write('\n')

 ma niente da fare. Addirittura con SendKeys non ottengo il risultato...

 Il 14 aprile 2009 16.05, G. Allegri gioha...@gmail.com ha scritto:
 Gentili colleghi pythonisti,
 sono alle prese col modulo subprocess, perché devo interagire con
 un'applicazione console su Windows (di terze parti), la quale richiede
 alla fine dell'esecuzione (e dopo aver stampato i risultati sullo
 stdout) che l'utente prema sulla tastiera per fare terminare il
 processo.

 Sono bloccato alle prime righe:

 proc = subprocess.Popen('la_mia_applicazione',
                       shell=True,
                       stdout=subprocess.PIPE,
                       )
 stdout_value = proc.communicate()[0]
 #stdout_value = proc.stdout.readlines()
 PROCESS_TERMINATE = 1
 handle = win32api.OpenProcess(PROCESS_TERMINATE, False, proc.pid)
 win32api.TerminateProcess(handle, -1)
 win32api.CloseHandle(handle)
 print stdout_value

 Ho usato TerminateProcess per forzare l'uscita dall'applicazione senza
 l'interazione con l'utente, ma ricevo un errore di 'Access Denied'
 perché, suppongo, proc.communicate (ma anche proc.stdout.readlines)
 mantengono un handle su proc in attesa, forse, di un EOF, che non ci
 sarà mai poiché l'applicazione non termina...
 Se non leggo lo stdout, ovviamente, riesco a forzare il termine del
 programma senza errori.

 Come posso uscire da questo inghippo?
 Grazie,
 Giovanni


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


Re: [Python] Gestionale fatto in casa

2009-04-15 Per discussione Diego Barrera
Daniele Varrazzo ha scritto:
 Questo è un flamebait. 
   
Non era mia intenzione.. mi scuso.
ciao diego

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


Re: [Python] Gestionale fatto in casa

2009-04-15 Per discussione Diego Barrera
salvatore monaco ha scritto:
 per il db e' indifferente sappi pero' che per realizzare un gestionale 
 hai bisogno di conoscere con profondità tanti argomenti.
 io uso mysql ma postgres non e' da meno come potenza scalabilità e 
 performance
 ma qualsiasi sia la scelta che tu voglia fare a livello di database 
 sappi che devi padroneggiare tutto lo scibbile del db per poter avere 
 il meglio.
Non ho intenzione di fare subito la versione definitiva.. vorrei prima 
creare una struttura dati  coerente con la realtà aziendale, poi qualche 
form spartana per l'inserimento e la ricerca dei dati.. poi man mano 
implementare nuove funzionalità man mano che si rendono necessarie 
(automatizzare procedure ce ora vengono svolte manualmente)

 parti da delle specifiche funzionali , carta e penna e diagrammi di 
 flusso sono molto piu' importanti della scelta del db o del toolkit 
 grafico
Sono daccordissimo


 ovviamente credo tu non abbia molte scadenze.
In effetti no ;)

 se vuoi una mano io sono qui per quello che ne posso capire se fai il 
 culo a software tipo AS400 io sono dalla tua
Tnx, quando ne avro' bisogno postero'
Ciao

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


Re: [Python] Gestionale fatto in casa

2009-04-15 Per discussione Alessandro
 Original Message  
Subject: Re: [Python] Gestionale fatto in casa
From: Diego Barrera diegonebarr...@yahoo.it
To: Discussioni generali sul linguaggio Python python@lists.python.it

 Con ncurses potrei usare ssh da remoto?
 Grazie per la risp.
   
Si, ma per ottenere questo tuo vantaggio personale obbligheresti tutti a 
utilizzare ncurses?
Comunque, anche utilizzando un normale client, potresti instradare la 
porta di connessione al db dentro un tunnel ssh.

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


Re: [Python] Gestionale fatto in casa

2009-04-15 Per discussione Diego Barrera
enrico franchi ha scritto:
 2009/4/14 Diego Barrera diegonebarr...@yahoo.it:

   
 Il gestionale sarà utilizzato da macchine linux e win con DB server linux.
 Sono indeciso sul DBMS: mysql o postgres , quale ha la migliore
 integrazione con python?
 

 Come *qualità* dell'integrazione, direi che si potrebbe dire che sono a pari.
 Anche grazie a cose come SQLAlchemy, per dire.

 Poi su quale usare c'è l'ovvio flame. La posizione più diffusa qua
 dentro è che MySQL sia un obrobrio senza paragone e che usarlo per un
 nuovo progetto sia un ottimo modo per farsi male.
   
Infatti ero piu' orientato su postgres, tnx
 Io ti suggerirei pyqt. A mio avviso Qt è una libreria eccellente, IMHO
 migliore di wx sotto un buon numero di punti di vista. La
 documentazione di Qt è eccellente e una delle migliori mai viste
 (questo non è un'opinione, ma un fatto). Ci sono anche alcuni buoni
 libri su Python e Qt, sebbene aggiornati direi alle 4.2/4.3.
 ncurses io le lascerei perdere, a meno che il fatto di girare in una
 console non sia una cosa specificamente richiesta. Non è generalmente
 considerato piacevole lavorarci, sebbene l'API in Python semplifichi
 il compito.
   
Con ncurses potrei usare ssh da remoto?
Grazie per la risp.

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


Re: [Python] Gestionale fatto in casa

2009-04-15 Per discussione Marco Mariani
Diego Barrera wrote:

 Infatti ero piu' orientato su postgres, tnx
   

Bene.


 Con ncurses potrei usare ssh da remoto?
   

Ma anche con QT e ssh -X... dopo tutto e' uno unix


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


[Python] Webapp per database in CGI

2009-04-15 Per discussione Pietro Battiston
Salve a tutti,
devo sviluppare un'applicazione web che consista semplicemente nella
visualizzazione di dati da un database, nel suo aggiornamento e nella
produzione di report pdf.

So che se chiedessi un consiglio su che framework usare scatenerei un
flame, ma per fortuna ho un vincolo che restringe sensibilmente le
possiblità: l'applicazione deve essere ospitata su Aruba, per cui deve
lavorare in modalità CGI.

Ora: so che questo non è il modo standard né raccomandato di fare web
app in python, quindi la mia soluzione di fallback è che semplicemente
mi scrivo tutto da zero; ho già fatto qualche esperimentino e sarebbe un
lavoro lunghetto ma assolutamente fattibile.

Se però avete qualche libreria da consigliarmi (fondamentalmente un
layer comodo per lavorare su mask via html e/o http), sono tutt'occhi.

Se poi aveste in mente un progetto free da cannibalizzare (anche se non
fa report, tanto quelli li devo fare un po' particolari quindi dovrò
lavoricchiarci comunque), mi fareste un regalone linkandomelo.

ciao, grazie

Pietro

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


Re: [Python] Webapp per database in CGI

2009-04-15 Per discussione Marco Mariani
Pietro Battiston wrote:

 So che se chiedessi un consiglio su che framework usare scatenerei un
 flame, ma per fortuna ho un vincolo che restringe sensibilmente le
 possiblità: l'applicazione deve essere ospitata su Aruba, per cui deve
 lavorare in modalità CGI.
   

Allora, PHP.


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


Re: [Python] Gestionale fatto in casa

2009-04-15 Per discussione simozack
Il 15/04/09, Diego Barreradiegonebarr...@yahoo.it ha scritto:

 Con ncurses potrei usare ssh da remoto?

Se lo scopo è avere un programma che giri sia su Win che su Linux
(cosa che mi pare di aver capito), ncurses si elimina da solo, visto
che c'è solo per Linux/Unix.

Questo almeno, c'è scritto nella doc e si evince dal fatto che import
curses dà errori su Win (python 2.6 vanilla).

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


Re: [Python] Gestionale fatto in casa

2009-04-15 Per discussione Riccardo Lemmi
Diego Barrera wrote:

 Riccardo Lemmi ha scritto:
 Diego Barrera wrote:
 ... 

 Potresti usare/provare http://www.openerp.com/
 anche solo guardare come è fatto potrebbe essere un buon esercizio.
   
 La ditta si occupa non di vendita, ma di depositi e logistica... ho
 stracercato in giro, ma solo gestionali per il commercio : (
 Grazie comunque

openerp ha una struttura modulare e forse questo modulo fa la caso tuo:
  http://doc.openerp.com/book/5/index.html#part-phys

Pensa a openerp più come un framework che ad un prodotto finito, la sua forza,
secondo me, è il fatto che è facile da estendere.
-- 
Riccardo Lemmi

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


Re: [Python] Gestionale fatto in casa

2009-04-15 Per discussione Alessandro
From: simozack simoz...@yahoo.it

 Se lo scopo è avere un programma che giri sia su Win che su Linux
 (cosa che mi pare di aver capito), ncurses si elimina da solo, visto
 che c'è solo per Linux/Unix.
   
Al contrario, il sistema può essere utilizzato più facilmente su più 
piattaforme: basterà utilizzare una shell remota (con funzionalità 
ridotte; anzi, l'unico comando disponibile dovrebbe essere quello che 
avvia il client ncurses).

Putty o simile dovrebbe esistere per tutte le piattaforme. Si potrebbe 
utilizzare anche un eeepc..

Problema: in tal caso le esportazioni in pdf/word/xls come si potrebbero 
fare?

 Questo almeno, c'è scritto nella doc e si evince dal fatto che import
 curses dà errori su Win (python 2.6 vanilla).
   
Mi sembra comunque che ci sia un porting per windows ma non so se sia 
compatibile al 100%

Alessandro


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


Re: [Python] Gestionale fatto in casa

2009-04-15 Per discussione Marco Mariani
Alessandro wrote:

 Putty o simile dovrebbe esistere per tutte le piattaforme. Si potrebbe 
 utilizzare anche un eeepc..

 Problema: in tal caso le esportazioni in pdf/word/xls come si potrebbero 
 fare?
   

Si fanno.

Ad esempio usando un putty patchato per usare il protocollo di 
transparent printing si possono trasferire al cliente, stampe, PDF, 
file excel e HTML, etc.

La modifica e' abbastanza leggera, ma e' in C.


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


Re: [Python] Webapp per database in CGI

2009-04-15 Per discussione Manlio Perillo
Pietro Battiston ha scritto:
 Salve a tutti,
 devo sviluppare un'applicazione web che consista semplicemente nella
 visualizzazione di dati da un database, nel suo aggiornamento e nella
 produzione di report pdf.
 
 So che se chiedessi un consiglio su che framework usare scatenerei un
 flame, ma per fortuna ho un vincolo che restringe sensibilmente le
 possiblità: l'applicazione deve essere ospitata su Aruba, per cui deve
 lavorare in modalità CGI.
 

Django può essere fatto girare su CGI.

 Ora: so che questo non è il modo standard né raccomandato di fare web
 app in python, 

Dove lo hai letto?

A seconda di quello che devi fare, CGI potrebbe essere una discreta
soluzione.

Nel caso in cui ogni request è abbastanza pesante (ad esempio
generazione di grossi report), CGI sarebbe la mia prima scelta.

 quindi la mia soluzione di fallback è che semplicemente
 mi scrivo tutto da zero; ho già fatto qualche esperimentino e sarebbe un
 lavoro lunghetto ma assolutamente fattibile.
 

Ti consiglio almeno un framework WSGI minimale.

 Se però avete qualche libreria da consigliarmi (fondamentalmente un
 layer comodo per lavorare su mask via html e/o http), sono tutt'occhi.
 

Che intendi con lavorare su mask?


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