release
Aug 01, 2011
Sottositi in Plone: la nostra soluzione
Approfittando della migrazione a Plone 4, ci siamo presi il tempo di rilasciare finalmente, nella consueta ottica del riuso in stile PloneGov, il prodotto Plone per gestire sottositi in uso da qualche anno nel Comune di Modena
La priorità: capire cosa è un sottosito
Prima di addentrarsi nella scelta di una delle soluzioni Plone per gestire sottositi, è bene iniziare il tutto con un'esame della propria organizzazione (o di quella del Cliente che vi ha richiesto "Plone e sottositi") per capire che cosa è un sottosito agli occhi dell'utilizzatore finale.
Può sembrare un passo inutile e dal risultato ovvio in quanto ogniuno di voi avrà in questo momento un'idea ben precisa ma posso assicurarvi che in questi anni abbiamo potuto vedere come questo concetto possa essere percepito in modo molto diverso.
Diamo innanzi tutto una definizione abbastanza generica da poter essere corretta in ogni caso (che dite, la scrivo anche su Wikipedia?).
Un sottosito è una porzione di un sito più grande ma che risente di un certo grado di indipendenza, pur mantenendo un legame col sito principale o con eventuali sottositi fratelli.
Fin qui tutto ok ma in seguito inizieranno ad emergere dettagli e molto spesso le similitudini tra le differenti richieste finiranno qui.
Le variabili in gioco sono le seguenti: indipendenza e legame col sito principale. Tutti vedono queste due caratteristiche in modo molto diverso.
Il nostro lavoro in questi casi è sempre stato analizzare innanzi tutto che cosa l'utente vuole ottenere.
Non ci siamo sorpresi quando alle volte il concetto di sottosito si è fermato alla richiesta di avere un dominio diverso col quale poter navigare una parte del il sito principale (e.g: sottosito.ente.it) oppure alla semplice applicazione di un tema differente. Non c'è nulla di male: un logo differente, o poco più, alle volte è tutto quello che i vostri utenti si aspettano e basta ai visitatori del sito per dare il giusto messaggio.
Gradi di indipendenza dal sito madre
Vediamo i vari scenari che si possono presentare.
Indipendenza 0%, legame col principale 100%
E' l'esempio fatto poco fa. Stiamo quindi parlando di siti dove l'indipendenza è nulla mentre il legale col sito principale è completo. L'utente ha solo bisogno di un richiamo visuale che identifichi l'entrata in un dipartimento diverso, una sottosezione dell'ente o della compagnia, etc.
Indipendenza 100%, legame col sito principale 0%
Altro non infrequente esempio è lo sviluppo di tanti piccoli sottositi, potenzialmente diversi tra loro in tutto.
Al termine dell'analisi di queste situazioni ci vede essere da parte vostra la lecita domanda "Ma perché dite che vi serve un sottosito? Quale è il legame col sito principale?".
Anche in questo caso non stupitevi se la risposta a volte è "Nessun legame!".
Molto spesso l'utente ha davvero bisogno di siti Plone completamente separati che condividono semplicemente:
- i prodotti installati
- una base dati utente comune (ma non è detto)
- l'uso di un dominio principale condiviso (ente.it/sottosito oppure sottosito.ente.it)
In questi casi Plone risolve da solo brillantemente la necessità, permettendovi di creare siti Plone separati nella stessa istanza Zope. Non vi serve altro!
La verità sta nel mezzo
Ovviamente nella maggior parte dei casi si ha "la sana via di mezzo".
In questa zona grigia molto spesso non vi serve chissà quale prodotto installato, ma qualche piccolo accorgimento.
Un esempio reale:
"i sottositi dovranno essere completamente indipendenti ma il link "Home" delle briciole di pane deve puntare al sito principale".
Quindi la Home del sottosito parte in realtà dalla seconda voce. Come otteniamo una cosa simile? Una semplice modifica che personalizzi la viewlet che genera questo elemento, per inserire un link assoluto al sito base. Per il resto: siamo ancora in presenza di un ambiente altamente indipendente. Il vostro "Plonista di fiducia" può farvi ottenere questo comportamento con poche ore di lavoro!
Da qui possiamo incontrare casi dove l'indipendenza cala piano piano e i prodotti da personalizzare ed installare crescono e si complicano...
Quando arrivate a questo, vale la pensa guardarvi attorno a capire che cosa vi serve davvero, e verificare che cosa Plone vi offre.
Altri prodotti che SI OCCUPANO DI sottositi
La necessità di ottenere sottositi è largamente sentita in Italia (forse anche legata alle recenti norme di razionalizzazione dei siti esistenti per gli Enti Pubblici) ma assai meno all'estero.
Al termine della Plone Conference di Budapest ho partecipato ad un Open Space dove si è parlato di sottositi, ma per il resto abbiamo dovuto faticare, inviare segnalazioni, discutere ed aspettare perché Plone ci facilitasse questo comportamento. Anche le discussioni a riguardo non sono poi tante (vale la pena leggere "Subsites in Plone: Review of info and call for sharing products, experiences, and best practices").
Ad oggi l'unico prodotto che sembra abbastanza mantenuto e aggiornato che si occupa di questa necessità è Lineage.
... almeno fino al rilascio del nostro prodotto! 
Ad ogni modo con la release 4 il nostro CMS preferito è diventato un ottimo ambiente per avere sottositi.
Fare sottositi in Plone senza usare Plone: redturtle.subsite
La natura di redturtle.subsites si riassume in questo. Spostare al di fuori di Plone (Apache) tutta una serie di problematiche che, grazie a funzionalità native di Plone (anche se poco conosciute) è possibile gestire senza codice aggiuntivo.
Il prodotto nasce da alcuni esperimenti di RedTurtle ma viene portato poi avanti grazie alle esplicite richieste del Comune di Modena, che ha sentito da molti anni questa necessità in alcune installazioni ed è quindi un precursore dell'esplorazione dei sottositi in Plone.
Siamo in presenza di sottositi dove il rapporto "indipendenza/legame col principale" è variabile, ma comunque molto spostata verso un livello di bassa indipendenza ed altra integrazione: i sottositi fanno tutti parte della Rete Civica e questo non viene mai completamente nascosto.
Descriviamo nel dettaglio le richieste originali.
Back-end
I redattori dei sottositi devono poter accedere ad un indirizzo di back-end (anche detto "back-office") riservato, e si autenticano da quell'indirizzo (qualcosa come redazione.ente.it).
La caratteristica del back-end è quella di nascondere completamente tutto ciò che identifica i sottositi e mostrare il sito Plone principale. I sottositi risultano quindi semplici cartelle all'interno del portale visitato.
Anche il tema grafico può essere personalizzato fino ai limiti dello spartano, eliminando tutto quello che occupa spazio visivo nello schermo del redattore (o perché no, aggiungendovi elementi che abbiano il solo scopo di facilitare la redazione).
Il tema diventa quindi un vero e proprio tema riservato al back-end (ma non è obbligatorio).
Il redattore può quindi facilmente eseguire link interni (usando l'editor di Plone) tra documenti di sottositi diversi, creare collezioni che catturino informazioni da più sottositi, ...
Front-end
Questo comportamento deve cambiare nel front-end. Quando il visitatore accedere ad un sottosito deve ovviamente vedere il tema applicato a questo, ma deve avere un livello di integrazione col sito principale molto più basso.
I link alla home del sito, dal logo e dalle briciole di pane, devono riferirsi al sottosito corrente, non a quello principale.
Se non fosse per le ricerche effettuate nel sito o per la presenza di collezioni che qua e là possono mostrare contenuti proveniente dagli altri sottositi fratelli, potrebbe quasi sembrare di trovarsi all'interno si un sito Plone separato.
Con Plone è estremamente semplice (leggasi "senza installare nulla") isolare una cartella perché questa funzioni come un sito indipendente, ma questo influenzerebbe sia il back-end che il front-end (livello di indipendenza troppo elevato).
La nostra soluzione
Il nostro prodotto offre un modo estremamente semplice e poco invasivo di avere:
- un back-end che nasconda completamente i sottositi
- un front-end che mostri alcune cartelle come sottositi
- una metodologia semplice per creare temi aggiuntivi per questi sottositi
Creare uno di questi temi per i sottositi, o personalizzare un tema esistente, è estremamente semplice.
Il prodotto offre già alcune piccole personalizzazioni di Plone (modificandolo il meno possibile) per non dover sviluppare nessun codice aggiuntivo. Abbiamo anche fornito un tema di esempio per un sottosito Plone.
Le altre caratteristiche fornite sono:
- la navigazione di front-end interna al sottosito è altamente limitata al sottosito stesso (briciole di pane, link alla radice, ...)
- le ricerche sono eseguite a livello globale
- le collezioni comprendono tutto il sito (viene lasciato quindi al redattore il compito di limitarle, se lo desidera)
- ipotetici redattori di front-end (utenti esterni alla redazione) sono fortemente limitati, come se stessero lavorando in un sito Plone indipendente
Conclusioni
Il prodotto redturtle.subsite è semplicemente un aggregatore di tutta la splendida tecnologia sottostante e la pagina ufficiale del prodotto può essere vista come un manuale dei sottositi in Plone, per chiunque volesse intraprendere la strada (anche senza voler per forza usare redturtle.subsite potreste trovare informazioni interessanti).
La sua limitata dimensione dimostra come Plone sia di per se uno strumento estremamente maturo e, lasciatemelo dire, ancora una volta pieno di belle sorprese!
Jul 26, 2011
Ferrara Eventi: rilasciata l'app iPhone
Resta sempre aggiornato sul calendario eventi di Ferrara e provincia grazie all'ultima applicazione di casa RedTurtle disponibile su iTunes
Sei in pieno centro a Ferrara, ma non sai cosa c'è in giro questa sera? Abbiamo una sorpresa per te.
RedTurtle ha appena rilasciato sull'App Store l'applicazione Ferrara Eventi. L'app si scarica gratuitamente dal sito e ti permette di vedere sul tuo iPad, iPhone o iPod Touch, tutto il calendario eventi di Ferrara e provincia.

Abbiamo realizzato l'applicazione nell'ambito di una collaborazione con la Provincia di Ferrara, per rendere le informazioni del portale del turismo più accessibili anche sulle nuove piattaforme.
I dati sono disponibili sia in italiano che in inglese, per consentire ai visitatori sia italiani che stranieri di godersi appieno la città.
Good to know: è possibile riordinare il calendario secondo le tue esigenze. Sarà sufficiente applicare i filtri periodo, località o categoria, per visualizzare solo gli eventi che ti possono interessare.
Jun 29, 2011
cciaa.modulistica: da PloneGov Italia al mondo
Vale la pena di rinnovare gli investimenti su un prodotto di pubblico dominio? Ecco perché noi di RedTurtle e i nostri Clienti pensiamo di si.
Il prodotto
Utilità: etimologicamente, attitudine ad essere usato. Come dimostra l'esempio di redturtle.smartlink (che si avvicina ai 7000 download), l'utilità di un oggetto è tanto maggiore, quanto più diffuso è il bisogno che esso soddisfa, ma non solo: perché l'oggetto sia davvero utile, quindi usato spesso e volentieri, deve essere innanzitutto facile da usare. Da tutti questi punti di vista, il prodotto cciaa.modulistica, di cui è stata appena rilasciata al pubblico la versione 2.0.0, è certamente tra le cose più utili che RedTurtle, assieme ai suoi Clienti, abbia sviluppato fino ad oggi.

Una lunga storia
La versione 1 di cciaa.modulistica, sviluppata originariamente per Plone 2.1, ha poi rincorso Plone nelle versioni 2.5 e poi 3.3. In questa sua lunga prima fase di vita il prodotto (cogestito anche dal Comune di Modena che ne aveva reso disponibile una prima versione italiana, nell'ambito di PloneGov Italia) non era disponibile in versione scaricabile ed installabile. La versione 2, che si è giovata della fusione con il progetto cciaa.c3p.folder nato in ambito Plone 3, nasce per Plone 4.1 ed è la prima ad essere rilasciata al pubblico su Pypi e su Plone.org, previa traduzione completa in inglese.
A cosa serve
cciaa.modulistica dota le normali cartelle Plone di una serie di attributi aggiuntivi: una vista tabellare, in formato descrizione / collegamento al file scaricabile, sui contenuti di una cartella Plone, e un campo tramite il quale si può liberamente impostare l'intestazione delle colonne della tabella. La vista è automaticamente limitata agli oggetti di tipo file, ed ai collegamenti, contenuti nel folder. Il campo che, per ogni file caricato in Plone, memorizza gli elementi ad esso correlati, viene utilizzato per rilevare l'esistenza di versioni dello stesso file in altri formati, il che provoca l'automatica comparsa di ulteriori colonne nella vista tabellare.
Numerosi esempi pratici sono disponibili nella sezione "Modulistica" del portale della Camera di Commercio di Ferrara.
La sezione "corpo" di eventuali contenuti di tipo "pagina" presenti nella cartella, è intercalata a tutta larghezza nella vista tabellare sopra descritta, consentendo di fornire preziose indicazioni sulla modulistica ed il suo utilizzo. L'ordine delle pagine nella cartella determina la loro collocazione all'interno della vista, consentendo di posizionare il relativo testo nel modo più idoneo.

Un curriculum esemplare
Questa storia non si è solo snodata in un lungo arco di tempo, ma ha coinvolto in modo decisivo almeno due dei nostri Clienti storici, il Comune di Modena ma soprattutto la Camera di Commercio di Ferrara, la cui fedeltà a Plone ed alla sua evoluzione nel tempo è stato il motivo fondamentale del suo costante aggiornamento ai successivi rilasci del CMS libero. L'unico motivo dell'attesa del rilascio pubblico è che si è preferito attendere lo sviluppo di una versione per Plone 4.
Tanto arrosto, poco fumo
Nulla di strano, insomma: niente fuochi d'artificio e una grande concretezza. Spesso, è proprio questo a servire: cciaa.modulistica è stato scaricato una quarantina di volte nei primi tre giorni dal lancio, e a questo ritmo in pochi mesi potrà diventare uno dei maggiori successi tra la cinquantina di prodotti rilasciati fino ad oggi da RedTurtle.
Jul 21, 2010
Migliorare l'usabilità dei link interni in TinyMCE
Analisi di collective.tinymceplugins.advfilelinks, un'alternativa al plugin di TinyMCE per i link interni a Plone che permette di gestire in modo differente i link a file del sito.
La Regione Emilia Romagna sta lavorando alacremente al miglioramento dell'accessibilità e dell'usabilità di Plone.
Dato che il futuro dell'editor WYSIWYG in Plone non è più Kupu (difficilmente personalizzabile e non troppo supportato) ma TinyMCE, già da tempo la scelta è stata di passare a TinyMCE anche nella versione 3 di Plone, usata in vari siti regionali.
Migliorare TinyMCE è più semplice che Kupu e lo dimostra come è stato possibile da parte nostra aumentarne le funzionalità per venire incontro ad alcune delle richieste della Legge Stanca (modifiche di cui si è discusso in un altro post, e ora integrate nella release ufficiale già dalla versione 1.1rc9); Altro particolare: trovo importante che questo editor esista anche come progetto indipendente.
Altre novità: la gestione dei link
Una richiesta recente per aumentare l'usabilità dei documenti è stata la seguente:
Modificare Plone in modo che i link interni, se fatti a contenuto di tipo File, mostrino l'icona del tipo di contenuto e la dimensione del file stesso
Una simile modifica aumenta l'usabilità generale della pagina, nonché impatta col Requisito 19 della Legge Stanca.
Dopo una prima analisi è risultato chiaro come fosse necessario scrivere un nuovo plugin per TinyMCE.
Come funziona collective.tinymceplugins.advfilelinks?
Il prodotto rilasciato fornisce il minimo delle modifiche possibili a TinyMCE (ma non minime quanto avrei voluto... ne parliamo dopo). Si tratta di un un plugin aggiuntivo (e per fortuna la presenza di plugin è prevista non solo dall'editor ma anche dalla sua configurazione di Plone) che sostituisce quello predefinito di Plone per i link interni (dal nome autoesplicativo plonelink).
Dopo un'analisi attenta di come poter ottenere le funzionalità richieste e della flessibilità delle API di TinyMCE, su indicazione della Regione stessa abbiamo preso la seguente strada, forse un po' limitata ma di minimo impatto sullo sviluppo e con una resa eccezionale se il browser è aggiornato:
- I link a file acquisiscono un nuovo attributo type (previsto dallo standard HTML anche se poco conosciuto) ed viene fornito un CSS aggiuntivo contenente varie regole per fornire l'icona.
Esempio:
a[type='application/pdf'] { background: url(pdf.png) no-repeat 0 50%; padding-left: 20px; }Questo tipo di regola CSS ha un buon supporto (da Internet Explorer 7 in poi). - La dimensione del file è prima di tutto inserita nel title del link (che normalmente il plugin originale non fornisce) ma un buon effetto è ottenuto associando una ulteriore regola CSS:
a.internal-link-tofile:after { content: " ("attr(title)")"; }Questa magica regola CSS (fa parte dello standard CSS 2, per quanto Internet Explorer la supporti solo dalla versione 8 in poi) inserisce del testo aggiuntivo dopo i link con classe internal-link-tofile.
Il contenuto di questo testo è preso dall'attributo title, ma vi vengono aggiunte delle parentesi. Ovviamente questa classe CSS aggiuntiva è inserita dal nostro plugin in aggiunta alla già nota internal-link.
L'ultima funzionalità è forse la più interessante e per quanto il metodo usato sia davvero poco invasivo e l'effetto finale a dir poco bello, il limite ad avere Internet Explorer 8 è ancora grande.
E' comunque sopportabile? Sì, dato che l'attributo title rimane comunque disponibile agli utenti (e agli Screen Reader) in tutti i casi.

Note tecniche di estendibilità
TinyMCE per Plone sfrutta chiamate AJAX per richiedere al server informazioni sui contenuti. Come sempre le modifiche lato server sono minime e perfettamente integrate con quanto Plone già fornisce.
E' bastato fornire un nuovo adapter.
<adapter
for="Products.ATContentTypes.interface.IATFile"
provides="Products.TinyMCE.adapters.interfaces.JSONDetails.IJSONDetails"
factory=".adapters.JSONDetails"
/>
Grazie alla ZCA, questo adapter aggiuntivo interviene solo per i contenuti di tipo File o sottotipi (a volte ho l'impressione che senza adapter i plonisti non vivrebbero più!).
I problemi maggiori sono lato client... L'idea sarebbe come sempre estendere e non sovrascrivere. In un mondo perfetto questo plugin si sarebbe dovuto integrare con quello preesistente, sfruttandone tutto il codice presente.
Non mi è ancora chiaro se questo non è stato possibile per limiti miei, del plugin stesso, o di TinyMCE, ma il risultato per quanto funzionante è anche una copia di molti dei file originali (una forma di branch del plugin)... probabilmente non dormirò di notte per aver dovuto copiare i file di lingua... ma dopo tutto è una versione alpha!
Il limite maggiore di TinyMCE attualmente è che non usa jQuery (per quanto ci sia un progetto che integra jQuery e TinyMCE) e soprattutto che non c'è uso di eventi Javascript.
Sarebbe stato bello (ma che dico bello! Utile) se al click del mouse sul pulsante radio che seleziona un file piuttosto che un qualunque altro documento a cui associare il link, venisse lanciato un evento Javascript... evento al quale un buon plugin per jQuery avrebbe potuto reagire per eseguire azioni...
Per ora questo non pare possibile, ma sarebbe un buon passo avanti per TinyMCE.
Nota sul namespace
Sono rimasto colpito nel vedere come sulla collective ci siano così pochi plugin the TinyMCE (l'unica eccezione pare essere collective.tinymcetiles). Ci sono state sanguinose discussioni in passato sull'uso di namespace a 2 o 3 livelli (ne ricordo una completa e interessante). In questo caso l'uso dei 3 livelli mi è parso opportuno.
Spero che in futuro altri contribuiscano al gruppo di plugin collective.tinymceplugins e figli!
Riferimenti
Jul 14, 2010
New collective.navigationtoggle release: integration with any theme (I hope)
The new release only fixed a small bug, but also add some better integration with Plone themes. What if fun: a bug inside Sunburst theme was the demonstration that the approach is good!
I already talked about the features of collective.navigationtoggle in previous post, but the new release helped me to be sure of one thing: the unobtrusive approach chosen was good.
The new version also add some refactoring and support for other themes than the classic Plone one. Plone 4 is coming... we must live with this and luckily the products migration has begun.
What is more difficult, after years the default theme is changed (for what I remember, the default theme you all know is with us from Plone 2.0... maybe some changes was done to it at Plone 2.1, but the core never changed). All products that act on Plone UI must check also the new Sunburst theme.
Going back to navigationtoggle, I choosed an approach that was "use existing Plone navigation element to know how to render new ones".
For the new release I only empowered some existings feature, like also generate CSS classes for new element on the navigation.
Why? In Plone 3 navigation main node is like this:
<li class="navTreeItem visualNoMarker">
<div>
<a title="..." class="state-... navTreeFolderish" href="...">
<img width="16" height="16" alt="..." src="...">
<span>Foo</span>
</a>
</div>
...
</li>
And Sunburst is like this:
<li class="navTreeItem visualNoMarker">
<a title="" class="state-... navTreeFolderish contenttype-..." href="...">
<img height="16" width="16" alt="Folder" src="...">
<span>Foo</span>
</a>
...
</li>
Apart some node difference (no more containing DIV) the new theme also rely on a contenttype-xxx class.
What is funny (and what make me say "thanks navigationtoggle") is an unwanted behavior of the current Sunburst theme. A bug that double the content type icon: one given from the IMG tag and another ones from CSS, thanks to the new class.
I'm not interested in this bug (Irene says that probably it has been already fixed), but using navigationtoggle with this bugged version of Sunburst... also make the bug applyed to elements navigation nodes generated by our script!
This (uncommonly) is good as respect the original idea: the original theme use doubled icons?! Is not a problem of navigationtoggle, so do it!
May 17, 2010
rilasciato collective.amberjack 1.0
Questa è la prima versione per Plone 4
abbiamo un team di supporto!
Dalla 1.0x RedTurtle ha deciso di supportare il progetto.
Questo non significa che collective.amberjack sta diventando un progetto aziendale, ma semplicemente che avremo un team che ne porterà avanti lo sviluppo.
Il team, oltre a me, è composto da Mirco Angelini, Federica D'Elia, Andrew Mleczko e Luca Fabbri. All'ultimo sprint a Ferrara abbiamo avuto il supporto di Jacopo Deyla e il ritorno di Giacomo Spettoli (tra i primi contributori) entrambi della Regione Emilia Romagna.
Ora, sei ancora di più il benvenuto se vorrai partecipare allo sviluppo, supportare l'iniziativa o semplicemente utilizzare il sistema. Il tuo contributo sarà ancora più utile ora che qualcuno lo porterà avanti sistematicamente.
what's new?
Questa prima release 1.0x supporta completamente Plone 4:
- i 12 tour sono stati completamente rivisti
- è stato introdotto il supporto per TinyMCE
- abbiamo un piano di battaglia
what next?
Dicevo di un piano di battaglia. Il piano prevede che al prossimo sprint a Sorrento si concludano le operazioni che ci porteranno ad una versione 1.1 rifattorizzate e ulteriormente migliorata.
Nel frattempo predisporremo una serie di step che ci porteranno ad avere un sistema più solido, usabile e soprattutto estensibile.
Contiamo di introdurre Windmill come tool di creazione di tour via web. I primi tentativi sono molto promettenti. Andrea Benetti sta portando avanti la parte di studio che verrà integrata successivamente in collective.amberjack.
Dove puoi seguire il progetto?
Se sei interessato a partecipare, i posti dove ci incontriamo sono questi:
- launchpad, per la gestione del progetto (blueprint, bug, ecc.)
- coactivate, ci è utile per documentare il tutto attraverso il suo wiki e per gestire la mailing list
- il codice è tutto rilasciato su collective.
Se, viceversa, vuoi utilizzare il sistema, pypi è il tuo amico:
collective.amberjack 1.0 released
This is the first plone 4 compliant release
we have a support team!
Starting from 1.0 release, RedTurtle decided to support the project providing a 4 person team.
It doesn't mean that collective.amberjack is going to be company branded - quite the contrary - it means that we have a stable team that is going to enhance and mantain the tool.
Except me, the team contains: Mirco Angelini, Federica D'Elia, Luca Fabbri e Andrew Mleczko. During the last Ferrara' sprint, we were glad to have Jacopo Deyla's contribution and the Giacomo Spettoli's return (former contributor) both of them from Regione Emilia Romagna.
You are even more then welcome to participate in the development, in supporting the initiative or just in using and testing the tool. Your contribution will be more useful since, from now, there will be someone that will take care of it.
WHAT'S NEW?
This 1.0 release supports Plone 4:
- the 12 tours has been completely revised
- the TinyMCE support has been added
- we have a battle plan
WHAT NEXT?
I talked about a roadmap. It assumes that during next Sorrento sprint we'll complete the tasks that will refactore the code and improved 1.1 release.
In the meanwhile we're going to schedule a set of steps that move collective.amberjack in a more solid, usable and mostly, extensible tool.
We are also confident to introduce Windmill as the TTW tool for creating tutorials. Andrea Benetti from University of Ferrara is starting to extend it. Then we'll integrate it into a collective.amberjack.windmill package.
how could you get involved inTO the project?
If you are interested in contribution, the places where we meet are these:
- launchpad, for the project management (blueprints, bugs, etc.)
- coactivate, extremely useful for documentation through its wiki and for the mailing lists
- the code is obviously release on collective.
Otherwise, if you just want to use the system, pypi is your friend:
May 04, 2010
New collective.funkload releases
I have recently released a new version of collective.funkload and collective.recipe.funkload. There is one major improvment - funkload recorder is now working properly with collective.funkload scripts.
Here @RedTurtle we are heavily using funkload for acceptance and benchmarking tests. We have started using it in 2008 just after Bristol Performance Sprint. We have found even more useful with buildout recipe. The only missing part was the recorder. It's built-in Funkload itself, but it was not enabled in the recipe. Well - now it is ;-)
/ If you want to know how to include funkload in buildout project - check my previous blog /
Starting a recorder is quite easy:
$ ./bin/funkload record -p 8080 MyTest
for full usage call:
$ ./bin/funkload record --help
This will start proxy on 8080 port and save all your browser requests to MyTest funkload scenario. Now open your browser, change proxy configuration to localhost:8080 and click-through test case. When you finish - stop the proxy with Ctrl-C. Funkload will generate a test_MyTest.py file and notify you where you can find it. It should be now collective.funkload compatible - you can lunch:
$ ./bin/funkload test /path/to/test_MyTest.py
To test it.
Another small improvement is a PloneFLTestCase. It extends default funkload test case, implementing two additional methods helping with Plone content creation. Right now instead of using this approach:
folder_portal_factory = self._browse(server_url + "/coreloadtests/Members/" + self.user_id +"/createObject?type_name=Folder",
method='get',
follow_redirect=False,
description = 'Get folder portal factory')
folder_edit_url = folder_portal_factory.headers.get('Location')
folder_id = folder_edit_url.split('/')[-2]
folder_created = self.post(folder_edit_url, params=[
['id', folder_id],
['title', 'folder'],
['description', ''],
['description_text_format', 'text/plain'],
['subject_existing_keywords:default:list', ''],
['last_referer', 'http://localhost:8080/coreloadtests/Members/' + self.user_id + '/view'],
['form_submit', 'Save']],
description="Post /coreloadtests/Members/user...280843853/atct_edit")
new_folder_id = folder_created.url.split('/')[-2]
you can just do:
new_folder_id = self.addContent(
server_url,
portal_type='Folder',
params=[['id', 'id'],
['title', 'testing title'],
['description', 'testing description'],
['description_text_format', 'text/plain'],
['form.submitted', '1'],
['last_referer', ''],
['form_submit', 'Save']],
description='Create folder')
It doesn't do much, but for sure it helps you keep you test case readable.
Apr 26, 2010
I prodotti Plone di RedTurtle Technology: una panoramica sui rilasci pubblici
Una pagina riepilogativa rivela l'impressionante ventaglio di soluzioni che RedTurtle ha condiviso con la Community Plone
Mentre tentavo di riassumere i rilasci pubblici di prodotti Plone sviluppati da RedTurtle, compilando la tabella ora disponibile sul nostro sito, mi sono reso conto di due cose:
- prima di impegnarmi nella raccolta di informazioni sui nostri prodotti, non ero consapevole di quanto siamo stati capaci di fare: certamente, il resto del mondo ne sapeva ancora meno, così posso senz'altro affermare che la nostra lista di prodotti Plone va a sanare un punto dolente della nostra visibilità
- il numero e la qualità dei nostri contributi è eccezionale, come testimoniato dal numero di download: Amberjack e Carneade, che hanno ottenuto visibilità internazionale all'ultima Plone Conference, sono la punta dell'iceberg, e soluzioni come l'integrazione dei Google Docs, RedTurtle Video, e l'integrazione con Google Maps sono egualmente meritevoli di menzione, per non parlare delle cose più tecniche come l'integrazione con ExtJS o i moduli, a quanto pare molto graditi, che supportano FSS.
In futuro, tornerò sull'argomento. Ora, prima di chiudere, mi piacerebbe farvi vedere qualche numero sui più scaricati tra i nostri prodotti:
redturtle.portletpage.views : 338 collective.googlesystemstorage : 40 redturtle.smartlink : 1373 redturtle.extjs : 323 collective.googlemodifycontent : 37 redturtle.speedupui.pathbar : 242 redturtle.custommenu.factories : 100 redturtle.catalogmount : 330 collective.googlesharing : 36 redturtle.maps.portlet : 392 redturtle.externalizelink : 214 redturtle.imagedevent : 888 redturtle.bent : 373 collective.flowplayer_toolbar : 158 Products.Plone2FSS : 861 redturtle.hide_subtypes : 76 munin.plone : 34 collective.googleauthentication : 38 redturtle.maps.core : 1479 collective.relatedof : 14 Products.PloneboardPasteObject : 38 Products.AutoRoleFromHostHeader : 50 collective.navigationtoggle : 94 redturtle.portlet.lightreviewlist : 351 munin.zope : 142 redturtle.fss : 567 redturtle.video : 817 collective.discussionintegration.plonegazette: 77

