Re: [Python] Gestionale fatto in casa
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?
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?
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
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
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
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
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
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
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
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
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
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
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
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
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