Personal tools

March

Mar 11, 2010

Careful with that ajax, Eugene

Filed Under:

Ajax calls are an invaluable and powerful tool to deploy pleasant user interfaces, but some attention must be paid to avoid bad surprises.

In these days it happened to me to work on a couple of custom Plone edit forms using ajax calls to simplify user data entry.

At a first glance, the user experience was great, but under the hood the whole machinery was hiding potential problems, the reason being that in both cases the ajax calls used in the form were relative to the document path, even when if the document was in the factory!

This means that every time the ajax call was invoked, additional security checks were performed and in the case of the documents inside the factory other this lead to an unwanted creation of temporary documents!

The security checks and the portal factory abuse increased the response time and could potentially raise conflict errors.

During the development phase the problem is hardly noticeable, but on a production server it will probably make the form unusable, especially if you complex security checks are needed.

The solution was simply to call the views with another context (in those cases the container). 

Lesson learned: be careful to the context of your ajax call

Mar 07, 2010

feedly: il tuo smart magazine

Filed Under:

Dai un po' di vita al tuo vecchio e stantio feedreader

Feedly fondamentalmente è un aggregatore di feed rss. bello eh?

FeedlyOk, 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.

Feedly feedL'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.

Feedly miniInteressante 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

Filed Under:

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:

Mar 01, 2010

Integration of PloneGazette with plone.app.discussion

Filed Under:

The new product collective.discussionintegration.plonegazette provides the integration of PloneGazette and plone.app.discussion.

The product plone.app.discussion is becoming the standard way to add comments in Plone. If both products plone.app.discussion and Products.PloneGazette are installed the creation of any PloneGazette content type fails, because PloneGazette content types not provide the adapter for "IConversation":

Traceback (innermost last):
  ...
  Module plone.app.discussion.catalog, line 29, in total_comments
TypeError: ('Could not adapt', <NewsletterTheme at /ausl/newslettertheme.2010-01-26.2440135204>, <InterfaceClass plone.app.discussion.interfaces.IConversation>)

 

 

To solve the problem we set an adapter for the types defined in Products.PloneGazette. This adapter provides the interface "IConversation" of plone.app.discussion. The adapter provides the attribute "total_comments" and the method "enabled", which returns False (means that the commeting is disable).

<adapter
      for="Products.PloneGazette.interfaces.INewsletterTheme"
      factory=".newsletter.NewsletterConversation"
      provides="plone.app.discussion.interfaces.IConversation"
      />

 

So you can create objects Newsletter without any problem.

Unfortunately PloneGazette does not define an interface for each content types, so through zcml we say that these content type implements a particular interfaces.Then we give the adapter for those interfaces.


The new product collective.discussionintegration.plonegazette makes possible the creation of the PloneGazette content types if there is an installation of plone.app.discussion in your instance.

http://svn.plone.org/svn/collective/collective.discussionintegration.plonegazette/