web
Sep 15, 2011
Rendering of HTML using innerHTML or .update() method with Javascript
By manipulating an element's innerHtml you'll be able to change your text and HTML as much as you like. But, pay attention!!!
These methods are very useful if you want to pupulate div's in your page, but at the end rendering would be strange.
Problem is that HTML that you produce in some way (e.g. agents in Lotus Domino) must be well-formatted and valid before you put it into your <div>
For example, if you want to put an image and you write:
<img src="<somePath>" alt="" border=0 />
instead of
<img src="<somePath>" alt="" border="0" />
Same behaviour if HTML TAG are not correctly nested.
Apr 24, 2010
Cool as Cooliris
Come inserire una galleria fotografica in Plone dalla spiaggia sorseggiando un drink
Cooliris ti permette di ottenere info da una risorsa multimediale web e di creare da queste una galleria fotografica estremamente attraente. Cooliris è stato pensato per le fonti più famose (flickr, youtube, picasa e facebook). In generale però ti permette di utilizzare un media rss generico.
Non è un tool plone, non è fortemente integrato, è tutto bellamente esterno. Se ne occupa qualcun altro a farlo funzionare. ahhh, relax.
Ma perchè ci interessa in ambito Plone?
Plone può essere utilizzato come portale, come blog, come intranet ecc. chiaramente inserire una galleria Cooliris vien comodo.
Questo blog è ovviamente realizzato in plone (what else? :) ed è stato banale inserire la gallery qui sopra. Ho semplicemente utilizzato il sistema Express di Cooliris e generato quello che loro chiamano "wall". Poi l'ho incluso in questo post.
D'altro canto, Plone è anche un generatore di contenuti.
Tutti sappiamo che possiamo inserire immagini in un portale plone, ma anche inserirle all'interno di una news o anche creare tipi ad-hoc che le prevedano.
Chiaramente anche eventuali video possono essere gestiti, così come (ad esempio se si utilizza redturtle.video) ottenere riferimenti a contenuti che sono su youtube.
Vien facile quindi pensare che, con un po' di programmazione, si possa dire a plone di generare, magari a partire da una collezione, un media rss che cooliris possa lavorare per noi. Un po' come si fa per il classico rss della collezione stessa.
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/"
xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<item>
<title>Picture A</title>
<media:description> This one's my favorite.</media:description>
<link>pl_images/A.jpg</link>
<media:thumbnail url="http://example.com/pl_thumbs/A.jpg"/>
<media:content url="http://example.com/pl_images/A.jpg"/>
</item>
<item>
<title>Video B</title>
<link>http://example.com/pl_images/B.jpg</link>
<media:thumbnail url="http://example.com/pl_thumbs/B.jpg"/>
<media:content type="video/x-flv"
url="http://example.com/pl_images/B.flv"/>
</item>
</channel>
</rss>
In questo modo puoi:
- avere contenuti "social" aggregati in qualche modo sul tuo portale
- avere contenuti del tuo portale che diventano "social" via i media rss
- avere i tuoi contenuti in una gallery "cool" nel tuo stesso portale (o in altri che tu stesso gestisci)
In aggiunta al servizio Express hai anche a disposizione un po' di API (se non hai delle API non sei nessuno :) e scegliere se utilzzare javascript o flash per realizzare la tua gallery. Chiaramente non è un lavoro per comuni mortali, serve sempre almeno tuo cugino, quello che sa di internet, o forse magari un bravo professionista :D
Tutto facile, tutto già pronto?
Un buon uomo di marketing ti direbbe: "thatì's all folks! enjoy"
Per vostra fortuna non sono ancora passato al lato oscuro della forza. Mi piace, quindi, ricordarvi che, per un sacco di buone ragioni, il buon Plone non ti permette di inserire tag object all'interno del corpo della pagina.
Niente di devastate comunque, occorre che vi ricordiate di abilitarlo esplicitamente. E il nostro amico Sam Knox ci ricorda come.
Chiaramente questo settaggio farà sì che ogni utente (si tutti, anche quello cui stai pensando e che fa sempre dei danni) abilitato sul vostro portale o blog Plone potrà effettuare questa operazione. Be careful :)
L'altro punto da tenere in considerazione è proprio il fatto che si tratta di un sistema esterno, che non controllo, che ha le sue politiche, che da un giorno all'altro potrebbe variarle.
Ma anche questo è questo il web 2.0, no? Occorre conoscere, pensare e valutare se un tool fa al caso nostro o meno. Una volta fatto, si vive tranquilli.
Mar 26, 2010
"Future is bright, future is Plone"
Sometimes when you are doing a lot of Plone development and integrations you could miss the big picture: Plone is not just a CMS. It's a damn good CMS with almost unlimited possibilities of integration. However its 'unlimity' has started to be one of its biggest limitations.
I'm working right now on a project that uses ore.contentmirror to serialize Plone content data to postgresql which can be later reused in repoze.bfg. I have found several similar deployments in the Plone community which were quite inspiring.
The scenario is almost always the same:
- to use Plone as a CMS (backend)
- to have fast framework (frontend) to serve my backend data
- to include in frontend layer Web2.0 functionality and some other dynamic stuff
- to make benefit of external indexing server for full text search, for both frontend and backend
You can of course use solr with collective.solr for search engine but thanks to tsearch2 some of the search/ranking functionalities can be taken directly from postgresql (making the whole stack much smaller and easier to maintain).
Serializing Plone data to SQL opens many possibilities. But with Plone you can do much more.

You can integrate other CMS's like Alfresco or Sharepoint using CMIS. You can connect your Plone instance to Salesforce. Instead of using tsearch2 or solr as an indexing engine - you can use Google Search Appliance inside your Plone instance. If you want to start online document collaboration you can even connect it to Google Docs.
External services and applications are not the end of the story. There is of course WSGI with collective.xdv and Deliverance and bunch of other interesting middlewares and we shouldn't forget about PAS plugins.
It's possible that I missed something interesting. Plone community is very creative, thought. It's hard to be always up to date. That's why I'm sure that I miss a place where integrators and developers can share they successful stories and discuss potential use cases. A place which will make Plone future bright.
Mar 07, 2010
feedly: il tuo smart magazine
Dai un po' di vita al tuo vecchio e stantio feedreader
Feedly fondamentalmente è un aggregatore di feed rss. bello eh?
Ok, se la metto giù così non vale neanche la pena di perderci tempo e di scrivere una pagina in questo allegro blog.
In effetti ha alcune simpatiche funzionalità che lo rendono decisamente gradevole e che lo rendono superiore ad altri sistemi.
Ovviamente è una web application e si integra con google: usi lo ss utente e sfrutti i feed che hai già configurato su Reader. Ovviamente li puoi riaggregare come preferisci e ne puoi aggiungere altri molto rapidamente.
L'effetto immediato è di ottenere una versione magazine dei tuoi feed. Dal feed stesso ottiene immagini e li riorganizza mettendone alcuni in evidenza.
Ma la cosa che lo distingue dagli altri è il fatto che, a partire dai tuoi feed, ottenga altre informazioni da altre fonti: twitter, flickr, youtube, amazon.
Per ogni tua aggregazione puoi definire una view predefinita.
Interessante la lettura del feed. Te lo presenta come popup in maniera estesa e già da li lo puoi ri-sharare verso i nostri cari vecchi social network, ma lo puoi anche inviare via gmail.
Lo installi come estensione di Firefox, di Chrome o di Safari, IE... non so :), altrimenti non va (questo non è per niente cool)
Interessante il feedly mini, li appoggiato in basso a destra nella pagina. Mentre navighi analizza il contenuto della pagina e ti propone i migliori post tra i tuoi feed relativi al contesto.
Puoi anche salvare la pagina piuttosto che postarla su twitter/facebook o inviarla via mail.
Mar 04, 2010
Wikitude: Realtà aumentata
Utilizza il tuo telefono per ottenere informazioni su dove ti trovi
Ogni tanto ti ritrovi con qualcuno che ti racconta le ultime meraviglie della realtà aumentata [wikipedia].
Fondamentalmente (e semplificando moltissimo la cosa..) si tratta di sovrapporre livelli informativi alla realtà che stiamo vivendo.
Lo possono fare sfruttando in vari modi oggettini che sono già presenti: dal famoso caschetto da realtà virtuale all'ormai famigerato iPhone.
Sicuramente l'uso di device mobili è l'opzione più attraente e più consumer.
I signori di wikitude si sono inventati:
- una community dove ognuno può aggiungere i suoi punti di interesse (POI): wikitude.me
- un browser che gira su Android, iPhone, e Symbian (Nokia N97 e N97 mini). iPhone 3GS. Il mio ovviamente non va :(
- volevamo farci mancare delle API? ovviamente no! Certo che in Java...
l'effetto finale è notevole:

