questa è l’ultima memoria tecnica che invio da Sorrento (sebbene purtroppo di Sorrento ormai non ho che il bel ricordo).
parleremo di poche e spero per voi interessanti tecnologie, magari secondarie rispetto a plone, ma sicuramente da tenere presenti per il proprio lavoro quotidiano.
la prima a cui faccio cenno e’ IPython.
per chi non lo conoscesse gia’ IPython e’ una shell python modificata con delle potenzialita’ piuttosto interessanti (a dire il vero io ne sono innamorato!):
avete l’auto-completamento, la ricerca automatica nel namespace corrente dei termini che inserite al prompt (che chiaramente varia a seconda degli import che effettuate), la documentazione dei vari moduli e funzioni in bel formato, il codice di moduli e funzioni con un semplice “??” richiamato dopo, l’editing inline (!) del modulo/funzione che vi interessa con un semplice “ed <nome modulo/funzione>“, etc. etc. etc.
insomma.. veramente una manna per chi e’ abituato alla normale shell!
per approfondire date uno sguardo al tutorial di ipython (c’e’ un profilo da far partire che praticamente e’ un tutorial..)
la versione per plone (e zope) potete ottenerla seguendo l’ottimo tutorial di david convent: http://plone.org/documentation/how-to/setup-ipython-for-zope
e chiaramente un grosso grazie a seletz (stephan) che ha aperto tale strada!!
una volta che avete seguito il tutorial, vi troverete nell’equivalente di un “zopectl debug“, ovvero avrete lo zope pronto a rispondere da shell solo a voi per introspezioni e transizioni varie, ma senza aprire nessuna porta 8080..
fateci un giro, credo lo riterrete interessante (e da aggiungere a clouseau, più flessibile, ma decisamente meno potente per il momento).
tangente al precedente argomento vi troverete forse a toccare “ploneenv“, a cui abbiamo gia’ accennato. vi siete mai trovati a dover installare moduli esterni allo zope, o a dover installare la giusta versione di un prodotto nel contesto operativo in cui vi trovate?
in tal caso sapete che prima di fare la cosa giusta dovete andare ad annotarvi le versioni di python, di zope, dei prodotti che avete installato, e magari dovrete scaricare dei sorgenti da compilare, etc. etc.
non sarebbe bello poter operare invece a mo’ di “apt-get install pippo“?
in molti casi si, si, e poi si!
ebbene, seguite questo tutorial di Daniel Nouri (grande personaggione!)
http://plone.org/documentation/how-to/how-to-hack-your-zope-2-instance-so-that-you-can-install-python-packages-using-easy_install
e magari date anche una letta a: http://danielnouri.org/blog/2007/Feb
alla fine del tutorial vi ritroverete nella condizione di poter lanciare comandi come:
easy_install elementtree
il tutto funziona utilizzando come base dei pacchetti python “egghificati” (tali pacchetti si chiamano eggs, uova, e contengono, oltre al codice necessario, le informazioni di versione e dipendenze utili a far funzionare il meccanismo di install automatico e coerente).
NB: plone 3.0 sara’ la prima versione di plone ad essere completamente egghizzata! quindi date un bello sguardo a questa roba
NB: non confondete ploneenv (e workingenv) con il meccanismo di buildout visto in precedenza, il secondo e’ gestito mediante uno script che fa da collante, le singole parti installate non si “conoscono” tra loro!
passerei ora ad un altro argomento, presentato da Rob Miller con nostra soddisfazione in quanto si era formata una richiesta piuttosto insistente: Deliverance.
date un bello sguardo.. e guardate 2 volte questo:
http://www.openplans.org/projects/deliverance/introduction
si, dovreste aver capito.. deliverance non e’ altro che un meccanismo per costruire pagine html, partendo da pagine html gestite da servizi diversi. per capirci, con deliverance si potrebbero ottenere velocemente risultati sorprendenti se si desiderasse fornire i propri contenuti gestiti mediante plone utilizzando la “skin” (meglio, il tema) offerto da un servizio che con plone non ha niente a che fare! in sostanza ci troveremmo ad iniettare in un contesto completamente diverso dal classico plone, i contenuti “piani” creati con plone, e chiaramente ci troveremmo ad ereditare un contesto e ovviamente uno stile dal contesto..
tutto cio’ avviene usando un motore XSLT, ma in verita’ dell’xslt si sfruttano i punti di forza, e non la sua complessita’..
ributtate un occhio a http://www.openplans.org/projects/deliverance/introduction
:p
tutto questo va certamente rivisto e rielaborato nelle varie situazioni in cui potrebbe essere applicato, ma certo non dovremmo dimenticare nel cassetto una tale possibilita’!
ultima cosa prima di chiudere.. Reinout, gran plonista proveniente dal nord, ci ha presentato il suo strumento di gestione progetti, Extreme Management Tool, sostenendo che non si aspettava nel tempo un cosi’ grande successo per quello che e’ stato il lavoro di stage di suo fratello. Eppure posso confermare che si tratta di uno strumento geniale nella sua semplicita’, ma con grosse potenzialita’ dal punto di vista sia della gestione progetti più classica, che dalla prospettiva dell’agile management (fare in modo che chi commissiona il lavoro sia maggiormente coinvolto nelle varie fasi produttive, sia all’inizio delle richieste, ma anche durante la fase piu’ meramente produttiva).
Reinout dice che, con tale strumento, nessuno ha piu’ avuto modo di contestare le fatture che presentavano, dettagliate a tal punto da arrivare alle singole ore di attivita’ dedicate al progetto..
Reinout e’ grande anche per un altro motivo: date uno sguardo al suo blog per le date del periodo dello sprint http://vanrees.org/weblog/archive/2007/03
troverete un resoconto dettagliatissimo su quanto e’ stato fatto allo sprint.. rasenta l’incredibile!
ok.. basta con questi post lunghi e tediosi..
spero di aver messo un minimo di curiosita’ in quel che si e’ fatto durante l’evento sorrentino, e vi rimando all’ultimo post per le mie considerazioni finali!
PS: buona pasqua! :p