amberjack
Nov 23, 2009
Un italiano a Budapest
Non vi racconterò di talk, di tecnologie, di nuove feature. Non vi racconterò nemmeno dell'ultima e della prossima release di plone. La mia gita alla plone conference è stata un viaggio emozionante tra persone e idee.
Non so esattamente quale sia la percezione dall'esterno, ma ogni anno la conference rappresenta, per me, la possibilità di ritrovare vecchi amici che hanno una passione in comune.
Si parte!
Già alla cena pre-conference l'accoglienza è stata incredibile.
Aaron aveva un posto buono a fianco a lui e subito i gruppi si sono mescolati: italiani, americani, polacchi, francesi, tedeschi, olandesi.
Tutti li' a parlare di tutto. C'era quello mi chiedeva di amberjack, quello che si ricordava di un piatto italiano e voleva la ricetta, quello che ti racconta che si è finalmente preso una spider e ne è così orgoglioso.
Tutto come se fossimo vecchi compagni di scuola che hanno condiviso qualcosa di particolare e prezioso.
Spesso si dice:
plone il cms, plone il framework, ma soprattutto plone la comunità
La solita retorica, trita retorica, dell'open source, vero? beh, magari no.
Se ne sei fuori, o meglio se ne vuoi stare fuori, sei libero di vederla così, ma così non è. Frequento e ho frequentato in passato altre comunità (i partner ibm, i lug, l'xpug) e nonostante abbia incotnrato alti livelli di eccellenza, questa community è quella più coinvolgente, appassionante, e professionalmente energizzante.
ZEA
Il gruppo ZEA si è riunito dopo diverso tempo in una riunione live. Ho potuto conoscere di persona e di scambiare opinioni con Matt, Russ, Kit e Jean Paul, che conoscevo solo in modo marginale, ma anche di rivedere vecchi amici come Xavier e Godefroid. E' stato utile, credo che il gruppo sia oggi più compatto e propositivo.
Plone Italia
Il riaggregarsi del gruppo italiano è stato allo stesso modo entusiasmante.
Ognuno aveva la sua idea, il suo modo di vedere le cose. E si è discusso, preso in considerazione le varie tesi.
Quello che ne è venuto fuori lo potete o lo avete letto sulla ML, ma il punto interessante, ancora una volta, non è stato solo il risultato finale.
Il confronto, il discutere, il mettere in dubbio quello che è il tuo piccolo mondo di fronte agli altri è un modo estremamente appagante di crescere. E ti rendi conto che dopo 12 anni di lavoro e non so quanti di informatica, non sei ancora arrivato. C'è sempre qualcuno che ha qualcosa di nuovo da raccontarti un punto di vista diverso, e cresci.
collective.amberjack
Poi c'è stata la mia personalissima ciliegina sulla torta: collective.amberjack.
Ho potuto presentarlo in un talk ufficiale, ho "guidato" uno sprint e raccontato a tutti gli sprinter gli avanzamenti del lavoro fatto.
Messa giù così ha un che di vagamente autocelebrativo e presuntuoso. E sicuramente una parte di me è decisamente soddisfatta dell'interesse che ne è uscito. Il punto però è un altro.
Perdersi nella comunità
Ho sempre visto tutti coloro che contribuivano come una specie di esseri con capacità tecniche, qualità personali di livello superiore.
Il che in parte è anche vero. Quello che è, però, ancora più vero non sono le capacità tecniche, ma la voglia di proporsi e di perseverare.
In fondo quello che è cambiato in me rispetto alle precedenti conference è stato il voler mettere sul piatto quello che so fare, tanto o poco non importa. La comunità ha apprezzato ed evidenziato. Poi, magari, amberjack sarà stata anche un buona idea, ma in ogni caso è stato l'impegno che ha fatto la differenza.
E' la differenza che passa tra lo stare nell'ombra e sfruttare l'open source, come molti purtroppo fanno, e il fondersi nella comunità: più dai, più ti impegni, più avrai in cambio in termini di credibilità, riconoscenza, amicizia!
Ritorno a casa
Alla fine del viaggio la lezione imparata è che tutta la retorica dell'open source, del fatto che tutti possono contribuire, che è la community che segna la strada è niente di più che la realtà.
Non ci si può, però, limitare a raccontarla (alle conferenze, ai linux day, in post sui blog), occorre declinarla in azioni, in codice, in attività, in quello che sai fare.
Allora? che pensi di proporre alla prossima ploneconf?
Nov 12, 2009
Plone Conference 2009 - un'esperienza da ricordare
Budapest, vecchi e nuovi amici, e molte cose interessanti come in tutte le Conference di Plone. Pare che anche RedTurtle sia piaciuta.
Due parole in più rispetto al precedente post di Massimo.
Tra gli elementi di soddisfazione, oltre al solito clima costruttivo che la comunità sa offrire, è stata l'impressione che RedTurtle si sia costruita un suo spazio e una sua credibilità anche al di fuori dei confini nazionali: se ci aveva fatto piacere veder accettare due talk su tre proposti, ce ne ha fatto ancora di più vedere con quanto interesse siano stati accolte le nostre presentazioni.
Ci pare di capire che Carneade (presentazione, video youtube, e talk ustream) è piaciuto perchè è un'idea, trasversale rispetto agli scenari di impiego, per rappresentare in Plone le strutture organizzative reali in tutta la loro complessità, e quindi ha un ampio ventaglio di applicazione sia nelle realtà pubbliche (il nostro tipico target), sia in quelle private.
Amberjack (presentazione, video youtube, e talk ustream), sebbene un po' meno "astratto", comunque risponde a un'esigenza diffusa, e sarà interessante vedere come la comunità lo farà crescere: l'idea di rendere i siti Plone sempre più autoesplicativi, trasformando un percorso guidato in un tutorial sulla tecnologia, sembra promettente.
La modestia è d'obbligo, quando si ha a che fare con chi ha creato una tecnologia e ne governa la roadmap, e quando ci si confronta con colleghi di aziende di tutto il mondo. Direi che, dopo Budapest, noi RedTurtle, sempre consapevoli dei nostri limiti, possiamo essere più tranquilli sulla nostra capacità di lavorare allo stesso livello degli altri sviluppatori mondiali Plone.
Oct 30, 2009
redturtle@ploneconf2009
alcuni riferimenti ai talk che abbiamo tenuto alla plone conference in corso in questo momento
I talk presentati sono stati 2:
- Carneade, dar vita alle relazioni del mondo reale: Plone come gestore di organizzazioni
- collective.amberjack: Plone come piattaforma per i tutorial
Tutto il materiale è già in linea.
Carneade
- La presentazione (su slideshare)
- un video di presentazione del sistema (su youtube)
- l'intero talk in streaming video (su ustream)
collective.amberjack
- La presentazione (su slideshare)
- un video di presentazione del sistema (su youtube)
- l'intero talk in streaming video (su ustream)
Aug 31, 2009
Amberjack on Plone: first steps
collective.amberjack project just released the first tours
What's that?
Amberjack is a tool that allows you to create tours on your site. The purpose of the collective.amberjack project is to improve its functionality and to provide a way for creating not just tours but something more: tutorials.
What does it provide?
The actual implementation provides 4 packages:
- collective.amberjack.core
- collective.amberjack.portlet
- collective.amberjack.plonetour
- collective.amberjack.metatour
collective.amberjack.core
This one contains all the basic functionalities:
- it lets you add tours via ZCML,
- it manages and validates tours and steps,
-
it draws the tour box and it manages all the UI interactions via javascript
collective.amberjack.portlet
this package provides two portlets:
- a one shot tour portlet
- a portlet with a set of tours
collective.amberjack.plonetours
this one contains the first released tours:
- Add and publish a Folder
- Add and publish a Page
- Add and publish a News Item
- Add and publish an Event
- Format a page using the visual editor
- Create internal links
- Create external links
- Upload an image
- Insert image on a page
- Using the Display menu
others will be released soon.
collective.amberjack.metatour
the idea is to provide a TTW way to create new tours. You can translate them via LinguaPlone and can be used by a non-technical user.
A next step is to export the TTW created tours as packaged that can be shared for example via pypi.
how simple adding a tour IS?
First of all you need to define the tour:
add_folder = {
'url': u'/',
'xpath': u'',
'xcontent': u'',
'title': _(u"Create a new folder"),
'text': _(u"Folders are ..."),
'steps': ({'description': _(u"Click the [Add new...] drop-down menu."),
'idStep': u'menu_add-new',
'selector': u'',
'text': u''},
{'description': _(u"Select [Folder] from the menu."),
'idStep': u'new_folder',
'selector': u'',
'text': u''})}
ajTour = {'tourId': u'basic01_example',
'title': _(u'Add a Folder'),
'steps': (add_folder,
)}
then you have to register it
<collective.amberjack:tour
tourdescriptor=".example_tour.ajTour"
/>
If you need a complete example, please refer to the code.
Where can I find infos and code?
- The project home page, with a mailing list and wiki pages
- The code:
- there is also a PLIP and a to do list
Aug 21, 2009
collective.amberjack sprint
short summary about the amberjack sprint in Ferrara
We have organized a small amberjack sprint. There was a lot of things to-do and only 5 sprinters: vincentfretin (online from France), fdelia, massimo, mirna and amleczko (all directly from Ferrara).
Beneath you can find summary of the sprint:
This is a report of the work made today
we just refer to the issue that were in today's worklist
put tours in a pipeline:
- Add a link to the first tour in the first page of the second one, so a user
who selects the second one directly will be able to takethe first one first,
since you need to create the MyFolder folder first.
- The whole Amberjack should manage branches like "if you are not logged in,
then, log in".
- At the end of a tour, add a link to the next tutorial.
We decided to have preconditions that has to added to a step (macrostep).
For example:
isAnonymous
isAuthenticated
etc.
there is already a initial implementation (amleczko).
completed - there are two basic validators: isAnonymous and isAuthenticated
when a precondition is not met a warning "the step is not visible"
is displayed. next, we should disable the step and all the followers.
we need to choose and implement a good strategy to define dependencies between
tours
- Check the entered texts: check if the texts entered in the fields are the
ones we expected. If not we may have problems with ids (in the url) and with
the xcontent. Otherwise, let both url and xcontent be function of what the
user entered.
we decided that before submitting we have a ajax call that checks if
all the mandatory things has been done by the user.
to be done.
- collective.jqueryui. actually we have a js file in core/skins. it contains
both jquery.ui and jquery.ui.draggable.
we could remove the jquery.ui stuff and leave only a file ui.draggable.js.
unluckly, collective.js.jquery + ui.draggable.js doesn't work (raise a js error)
Vincent Fretin, both complete this ticket and created two different profiles
for plone3.2 and plone>=3.3
- Write tests for meta directives, tour_manager...
Andrew Mleczko and federica d'elia wrote a couple of tests and also refactored the
code see:
http://svn.plone.org/svn/collective/collective.amberjack.core/trunk/docs/HISTORY.txt
- Add an option to the Unified Installer
- Add a run-profile option to plone.recipe.unifiedinstaller to run additional
profiles when the Plone Site is created
to be done
- Tours: (massimo azzolini e mirna bagnolatti)
Tour 5: Format a page using the visual editor
Tour 6.1: Create internal links
Tour 6.2: Create external links
to be completed
Tour 7: Upload an image
completed, but cannot show the last "all done" step since the url is
function of the name of the image uploaded. we need a fix [1]
Tour 8: Insert image on a page
completed, but cannot correctly save. when submitting the form the stuff
inside kupu is not saved. [2]
Tour 9: Upload and link to a File
completed, with the same problems as above:
1. the file obj's url is function of the name of the file itself. [1]
2. cannot save the kupu stuff [2]
Tour 10: Using the Contents tab
the main problem is that we have the same page, but we want to move on
many different tour steps. see [1]
Tour 12: Create a static text portlet
almost finished. problems:
1. click on Save button show the alert "are you sure you want to leave..." [2]
Some open issues
- [1] Provide a better way to manage the progression of the steps: too often
path + xpath/xcontent do not suffice.
Use the step position number 1/5, 2/5 etc.
to be done
- [2] all the submit buttons (form.button.save & co) have problems if just
"submitting", maybe we have to say that we are clicking on that button.
we cannot either click() on it since it opens the alert window
"are you sure you want to leave..."
to be investigated

