Newsgroup: it.comp.lang.perl
Titolo: Isogest New Release!!!

Ciao a tutti,
volevo invitarvi a provare la Demo che sono finalmente riuscito a mettere 
on-line su Sourceforge del mio software Isogest 3.1.0.
Isogest e' una "Office Suite" interamente scritta in Perl che si avvale di 
DB quali postgres o Mysql e offre una serie di soluzioni adatte al lavoro 
d'ufficio:
- Server Fax (invio ricezione distribuzione archiviazione di fax)
- Web Mail (sia per posta interna ISMS che per E-mail)
- Archiviazione documenti (digitalizzazione distribuzione e ricerca)
- Gestione documenti commerciali (impaginazione archiviazione e ricerca di 
lettere offerte ordini contratti)
- Agenda stile Outlook (per pianigficazione appuntamenti riunioni)
- TODO con possibilita' di pianificazione di progetti di gruppo;
- Gestione dei contatti aziendali (anagrafica, reclami, richieste 
commerciali)
- Un motore di ricerca stile "Internet Engine" per la ricerca di ogni 
documento;
- Possibilita' di personalizzare l'ambiente di lavoro (Skin, Linguaggio, 
procedure e permessi per utente)
Isogest e' gratuito e a disposizione di tutti (Licenza GPL) e' un lavoro 
nato quasi 5 anni fa e a cui ho dedicato molto tempo quel che chiedo e' un 
mare di feedback costruttivi grazie!!.
Demo 
http://isogest.sourceforge.net/Demo/
Sito 
http://isogest.sourceforge.net
Saluti
Luca Dante Ortolani
l.ort...@ecosystemspa.com

beh... per il feedback bisognerebbe usarlo per un po', comunque se ti
accontenti dei complimenti, sono disponibile. Bravo, sembra proprio un bel
lavoro!
Qualche consiglio tecnico:
1. Il tuo source è infarcito di html da tutte le parti, nonostante noti una
dir "templates", e questo fa perdere un casino di tempo soprattutto quando
si tratta di un progetto così grande. Poi vedo che ti limiti a un cerca e
sostituisci della label all'interno del tempalte. Il tuo code potrebbe
essere ridotto probabilmente a meno di un terzo e le complicazioni pure, se
usassi un modulo per gestire i templates.
Ad esempio con Text::MagicTemplate puoi creare output decisamente elaborati
con praticamente nessuno sforzo, perché il modulo ti va a pescare i valori
delle tue variabili e le sostituisce automaticamente nel template, generando
loops, aggiungendo o eliminando parti di template a seconda dei valori che
hanno le tue variabili nel code. C'è poi una sua estensione
Text::MagicTemplateX::HTML che ti genera anche tabelle HTML in automatico e
ti riempie i forms in automatico partendo semplicemente dai dati nel tuo
code, ma richiede altri moduli che usano librerie C, quindi magari per la
natura del tuo progetto ti conviene limitarti a Text::MagicTemplate che è
scritto in puro perl.
http://search.cpan.org/perldoc?Text::MagicTemplate
http://search.cpan.org/perldoc?Text::MagicTemplate::Tutorial
Se poi il tutorial non dovesse bastare sono disponibile ad eventuali
chiarimenti.
2. Considera anche l'uso di CGI::Application, che permette cose molto
interessanti con i CGI:
http://search.cpan.org/perldoc?CGI::Application
3. Vedo che hai una cattiva abitudine:
    &barra($lang{Agenda})
    &mensile
è consigliabile scrivere:
    barra($lang{Agenda})
    mensile()
a meno che tu voglia esplicitamente fare questo:
&NAME(LIST);   # Circumvent prototypes.
&NAME;         # Makes current @_ visible to called subroutine.
da perldoc perlsub
--
perl -MLWP::Simple -e "getprint(' 
http://perl.4pro.net
 ')"


Ciao,
come ha detto Dom, una grande mole di lavoro per cui ti
dico bravo 2 volte (una anche per la licenza GPL)!
In merito ai consigli, soprattutto tecnici, "bisognerebbe usarlo
per un po'" (Domizio, ndr :-)).
Dopo una brevissima occhiata quello che ti posso dire è
di prendere in considerazione di metterlo su CPAN
poiché forse ne vale la pena non essendoci (mi pare) altri
pacchetti simili. Chiaramente andrebbero leggermente rivisti sia
lo scheletro della distribuzione e la procedura di installazione... :-(
Ho notato cmq un codice abbastanza ben commentato.
Alcune cose appaiono a prima vista:
 - come ti hanno fatto notare, non c'è una netta separazione
   tra logica e prensentazione, per cui l'adozione di strumenti
   di templating potrebbe rendere il codice più pulito e facilmente
   mantenible (Template Toolkit su tutti per prestazioni e flessibilità,
   ma ne esistono tanti come anche quello fatto da Domizio).
 - l'uso di variabili globali (neomail a parte). Il giorno che penserai
   di usarlo sotto mod_perl, per aumentarne drasticamente prestazioni,
   dovrai rivedere un po' di cose... :-)
 - Per un progetto così complesso forse l'approccio ad una programmazione
   ad oggetti potrebbe essere più indicato.
Ciao e buon lavoro!
   - Enrico
PS: Magari ci vorrebbe una mailing list ad hoc (su sourceforge non
ne hai ancora attivate)
--------------------------------
Inviato via 
http://usenet.libero.it

    ma ne esistono tanti come anche quello fatto da Domizio).
posso anche condividere il giudizio su "prestazioni e flessibilità", (se non
si tiene in conto la complessità e dimensioni IMO atroci di questo modulo),
comunque legare il progetto all'installazione (complessa) e alla
compilazione (spesso impossibile) necessaria a tale modulo, significherebbe
perdere una grandissima fetta di utenza, e sarebbe davvero un peccato,
perché è un bel progetto.
IMO l'uso di moduli per un progetto destinato all'uso su hosts dove potrebbe
essere difficile l'installazione, dovrebbe limitarsi a moduli scritti in
puro perl, o a moduli standard disponibili su qualunque server.


finalmente...
allora c'è da fare una premessa. Quando ho iniziato a sviluppare Isogest mi 
sono trovato di fronte numerosi "moduli" da poter usare e inserire nel 
progetto. Ma poi mi sono chiesto perchè devo far dipendere il programma da 
moduli esterni? e cosi' ho iniziato a scrivere centinaia e centinaia di 
righe di codice (pure ignorando l'uso di funzioni e procedure). Nel 
frattempo Isogest era in funzione presso 2 aziende (per un totale di 40 
persone ed una mole di dati che cresceva a dismisura). Poi un giorno le 
idee andavano finendo e cosi' ho pensato bene di ritornare sui miei passi e 
rivedere il codice. Da tale ragionamento è nato iso-lib che è la libreria 
di Isogest quella che contiene tutte quelle procedure e funzioni che avrei 
potuto attingere da altri moduli. Ma la mia decisione di non utilizzare 
altri moduli esterni è rimasta invariata. Anche al fine di agevolare un 
eventuale installazione da parte di terzi (basti pensare a quei programmi 
che prima di poter essere installati hanno bisogno di una lista infinita di 
requirement).
Isogest oggi è scritto in un linguaggio sicuramente imperfetto. Il motivo è 
che per anni (cinque) ho pensato piu' ad avere idee che al modo in cui 
svilupparle al meglio. Come potrete vedere dalla Demo  (che non è completa 
:) ve lo assicuro) ci ho inserito di tutto. Tutto quello di cui ho avuto 
bisogno in 5 anni di lavoro. Ora quel che sto facendo da un paio di mesi a 
questa parte e ritoccare ottimizzare e velocizzare tutte le idee che ho 
realizzato anche per ovviare a critiche (giustissime) sul mio modo di 
programmare. Critiche che purtroppo screditano tra l'altro il progetto.
Installare Isogest in un'azienda non significa solo velocizzarne il modo di 
lavorare ma cambiare a tutti gli effetti  il modo in cui si lavora 
all'interno di un gruppo di persone.
La mia idea vista oramai la mole che il progetto ha raggiunto è quella di 
trovare altre persone che contribuiscano al suo sviluppo. E so che per 
arrivare a questo occorre standardizzare il codice e piu' che altro lo 
stile e la sintassi del progetto.
Grazie quindi degli appunti fatti e aspetto con anzia che torviate il tempo 
di esaminare più affondo la demo.
Luca
P.s. stasera lancio un find&cut di tutti gli "&"! :)


 Critiche che purtroppo screditano tra l'altro il progetto.
Non è tanto la critica che lo potrebbe screditare, quanto il fatto che se
qualcuno ci guarda dentro, sembra scritto da un principiante che sembrerebbe
ignorare che esiste CPAN, e visto così, non dà molta fiducia :-)
Inoltre come già suggerito quando ti ho detto di dare uno sguardo a
CGI::Application, e come molto elegantemente suggerito da Enrico:
   "Per un progetto così complesso forse l'approccio ad una programmazione
   ad oggetti potrebbe essere più indicato."
e di nuovo: se qualcuno ci guarda dentro, sembra che l'autore ignori anche
che esistono gli oggetti :-)
ciao
PS: le critiche sono volutamente sarcastiche, perché mirano a farti
vigorosamente muovere in una direzione più "perl" ;-)


 
si!
e Vi invito tutti a parteciparvi saro' lieto di scambiare opinioni.
Ripeto...
chiunque sia interessato a collaborare e ben accetto!!


Domizio Demichelis wrote:

AMENN!!!
LucaS

 on-line il progetto.
Non direi. A prima vista penso che tu possa riutilizzare
l'80% dello script.
   - Enrico


 all'interno di un gruppo di persone.
Ne sono certo!


 puro perl, o a moduli standard disponibili su qualunque server.
La valutazione sull'utilizzo di un modulo piuttosto di un altro
va ponderata con le esigenze dell'applicazione, la scalabilità,
le performance, la stabilità ecc.
Personalmente non ritengo però un vincolo il 'pure perl' soprattutto in
materia di template dove con il C (TT2) si raggiungono prestazioni
nettamente superiori.
   - Enrico
Ma stiamo andando inesorabilmente OT...


 di quel codice (Perl 4) nella tua applicazione.
copia e incolla da moduli perl????? Mi era sfuggito! Che orrore!
BUUUUUUUUUUUU!!!!!!!!!!! :-)
ciao
PS Questo č PROPRIO meglio che lo nascondi, perché stona proprio in un
progetto cosě!


 Ma stiamo andando inesorabilmente OT...
Se in qualche modo c'entra con perl, direi proprio che non è OT :-), e anzi,
mi interessa proprio sapere cosa mi sono perso.
Vuoi dire che con con 'sto TT2 (magari dire giusto cos'è in 2 parole di
numero per noi comuni mortali non avrebbe guastato), si potrebbe pensare di
installare in qualche modo moduli perl che necessitano di compilazione,
ANCHE SU HOSTS che non la permetterebbero? (perché questo è il problema che
mi fa pensare che il puro perl è da preferire, ovviamente non per
efficienza, bensí per portabilità).



--------------------------------
Inviato via 
http://usenet.libero.it

 efficienza, bensí per portabilità).
La portabilità non è tanto legata alla possibiltà di
funzionare su sistemi vincolati da determinati piani di hosting,
quanto alla caratteristica di funzionare su sistemi operativi
differenti.
Per le mie esperienze di hosting in outsourcing ho sempre avuto
(pagando, of course) shell, compilatori e quant'altro per
potermi installare il necessario e TT2 non è così 'atroce'
da installare. :-)
by
   - Enrico
PS: TT2 è il template engine utilizzato su 
slashdot.org


 da installare. :-)
Per un guru come te no :-), ma per un utente medio a cui potrebbe essere
destinato Isogest, direi proprio di si (l'installazione e la complicazione
di utilizzo di TT è atroce, sebbene non lo siano le prestazioni,
ovviamente), e comunque una graaaande fetta di utenza non ha né shell, né
compilatori, né quant'altro (includendo nel quant'altro la capacità di
usarli), e sono sicuro che preferirebbe semplicemente installare il sistema
copiando il tutto in una dir senza essere costretto a cambiare host! :-)


 copiando il tutto in una dir senza essere costretto a cambiare host! :-)
In genere la shell e i developers tools (in pratica il gcc)
dove non compresi, in un servizio di hosting professionale,
sono accessori acquistabili speratamente. Eppoi non penso
che l'hosting sia il luogo ideale di destinazione di Isogest,
quanto forse un server intranet aziendale. Ma questi sono
inutili processi alle intenzioni...
Spero comunque che tutte queste divagazioni siano d'aiuto per
Dante e non lo abbiano al contrario confuso!
 - Enrico


 (se non usare direttamente CPAN.pm).
Questo è appunto quello che moltissimi non hanno possibilità di fare, a meno
di pagare o cambiare server, e mi sembra che Isogest potrebbe essere MOLTO
utile anche a medi o piccoli utenti, quindi complicarne l'installazione
limiterebbe appunto la sua diffusione.
Comunque sono sicuro che Dante non si confonderà per niente: basta guardare
il suo code per dedurre che riesce a districarsi benissimo nelle situazioni
più difficili :-).


 più difficili :-).
Sure! Era solo che si stava divagando un po' troppo...


 aggiunto (es: già installato e configurato) ai propri utenti.
Così si, mi hai convinto: deve solo ottimizzare un "pochino" il code, perché
se gli guardano addosso.... :-)


Ciao a tutti,
è attiva per chi fosse interessato un mailing-list su Isogest. Potete 
iscrivervi all'indirizzo:
http://lists.sourceforge.net/mailman/listinfo/isogest-project
Saluti
[LucaS]
