Elephant macros reach a new milestone: rich media content from BrightSide modules

New & Noteworthy Jul 17, 2014 Lluis Turró Cutiller 154 0

It has been a while since Elephant macros got their way into wiki syntax. Instead of Elephant methods, that compile into active pages inclusions, Elephant macros are interpreted in real-time and can include content from multiple sources. The Elephant annotation for macro parsers is @ExternalParser.

Adding templates to a macro parser

With the addition of templates based on Freemarker, macros can generate content based on real data. But, how this happen? Which elements we need to deal with?

To fully understand what is in this soup, let's see the ingredients one by one:

  • Data. Data iterators, given some parameters, return a list of raw data objects.
  • Formatting. For each object in the list a template is called. A list prone to be rendered as a tree will be called once.
  • Your imagination. Templates can generate any kind of content, not only HTML+CSS+JavaScript. With this in mind, adding scripts, rich media and mobile capabilities is up to you.
This behavior is provided by default. You can write your own parser and use a different approach to showing data.

You can see the example on line in SomCats landing page, the top slider.

Learn by example

In this example we will call a BrightSide Dossiers macro. The retrieved data will be passed to a Freemarker template using bxSlider based on jQuery.

Live Links move to client-side

New & Noteworthy Jun 13, 2014 Lluis Turró Cutiller 145 0

Elephant has changed Live Links paradigma, freeing server-side load.

Server doesn't store temporal sessions any longer

First approach to Live Links created a temporal key that was stored into server temporal-sessions file. Its purpose was, mainly, to allow mail links enter the application passing through sign-in unattendedly. Once used, the temporal key got removed from server and no longer would stay available for future uses.

Creating a new key, highly encrypted

New approach to Live Links uses a symmetric cipher algorithm to create intelligent keys. Those keys own application process-based information along with Elephant self-required fields.

New Live Links can be used multiple times before expire, can be part of mailing systems, web active links and RSS feeds. Live Links can also be AJAX based, allowing to sign-in and get content in a single step.

Si no em deixen, vull que es fotin

Blog May 27, 2014 Lluis Turró Cutiller 364 1

A veure, sí, estic emprenyat, i sí, no és bo dir res quan et bull la sang. Igual de dolent és deixar passar les coses perquè no s'hi pot fer res.

Mireu, m'emprenya sentir que si no ens deixen tenim plans alternatius, que no passa res. Sí que passa, i tant. Passa que demanem permís, com si dubtéssim de la nostra sobirania. Passa que estem més atents al que diuen que al que volem. Passa que som més reactius que pro-actius.

Mireu, no hi ha pla alternatiu a la consulta. Res és equiparable per saber què volem els catalans. L'alternativa és, simplement, l'adulteració del procés.

Sota quins escenaris creieu que no es podria fer la consulta?

Que declarin inconstitucional la llei de consultes? Una ordre als cossos de seguretat perquè retirin les urnes, com ja han fet amb les del @Multireferendum? Els qui sucumbeixin davant aquestes pressions ens han de portar a la independència? No fotem.

Que suspenguin l'autonomia, dissolguin el Parlament? Llavors farem unes plebiscitàries, quan ja no tinguem res? O ja hauríem d'anar una mica més per feina, no dubtar, actuar com propietaris del nostre destí?

Les plebiscitàries són el refugi dels covards, dels qui esperen les reaccions dels espanyols per decidir, dels venuts.

I sé que es va aprovar en el full de ruta de l'ANC, que la presidenta les contempla com opció i que el vice-president va dedicar la meitat del seu temps en el circ de Tarragona a parlar de les excel·lències del pla. Tot i així em reafirmo, les plebiscitàries són el refugi dels covards. I prenen posicions, i volen liderar-nos, i, si ens confiem, ens faran perdre una oportunitat única.

Cercar sinergies en la proximitat, és impossible?

Blog Jan 22, 2014 Lluis Turró Cutiller 226 0

Fa ja una bona dotzena d'anys que vaig obrir el codi de totes les aplicacions fetes en Java. Les experiències derivades d'aquest fet han estat enriquidores i altament motivants. Per posar alguns exemples:

  • El primer intent, una aplicació que arrancava la Java Enterprise Edition sobre Windows 98, fora dels sistemes suportats segons Sun Microsystems. Vaig rebre cents d'emails d'arreu encoratjant-me a continuar publicant codi.
  • Després d'uns mesos de publicar les primeres versions d'Elephant i amb unes 30.000 descàrregues per mes, vaig rebre tota la documentació i els recursos traduïts al xinès pel cap d'informàtica d'una empresa de telecomunicacions Taiwanesa. També aportacions al codi per bases LDAP.
  • El codi del vocabulari XML per a bases de dades, font de l'actual model per BS Financials, m'ha permès tenir contacte amb persones directament implicades en el desenvolupament de les abstraccions a la persistència.
  • Tot el codi de BrightSide és cas d'estudi del marc de desenvolupament ZK, amb 1.500.000 de descàrregues arreu del mon.
  • La implementació de Persona per Elephant ja ha estat revisada i corregida per Mozilla, dues setmanes després de la publicació.

El punt on vaig: cap d'aquests exemples inclou una relació de proximitat. Cap a Catalunya.

No és un tema que m'hagi preocupat excessivament fins aquests darrers temps. Ara ja sí, tot i pensant en una Catalunya que vol fer coses, i fer-les bé.

És per això que he començat a pensar en com trobar sinergies de proximitat. Usant eines provadament poderoses: el codi lliure, una fundació on es reconeixen els mèrits i uns beneficiaris amb ganes de millorar. Som-hi?

www.turro.org/services/sinergies

Passejant per Internet sense constipar-se

Blog Jan 13, 2014 Lluis Turró Cutiller 218 1

La darrera setmana una aplicació per Twitter a infectat alguns comptes dins el meu grup de contactes. Alguns dirien que això és degut a la bona fe, ingenuïtat, dels usuaris de xarxes socials. Jo crec que és més degut a la mala llet que tenen alguns.

Reconeixent dominis, primer pas quan no sabem on som

Els dominis de Internet son la primera part de l'adreça que es veu al navegador. Les parts es separen amb el símbol /. En l'adreça https://twitter.com/following el domini és twitter.com. El following és una part del domini. En aquest cas, el domini és conegut i hi confiem.

Quan es preparen paranys, alguns aprofitats col·loquen el domini que volen suplantar en la part del domini. Per exemple a http://parany.com/twitter.com/following el domini és parany.com. El twitter.com és una part d'aquest domini. Per confiar-hi, hauriem de confiar en parany.com.

Un altre manera de generar una adreça engany és usant els subdominis. Els subdominis apareixen abans del domini i es separen per un punt. En l'adreça http://twitter.parany.com/following el domini és parany.com. El twitter com a prefix és un subdomini d'aquest domini. Per confiar-hi, hauriem de confiar de nou en parany.com.

Quines eines tenim per saber quan una acció concreta pot ser perillosa?

Aquest seria l'arbre de decisions a seguir en cas de dubtes:

  • Som dins l'entorn conegut?
    • No
      • És l'adreça del navegador un domini conegut?
        • No
          • Mirar sí, introduir credencials mai.
          • Normalment ja haurem d'entrar autenticats. Si no és així, comprovar l'adreça de nou si es demanen credencials.
      • Ens dona l'entorn condicions d'ús i privadesa?
          • S'han de llegir. Encara que sigui per sobre. Normalment el propi entorn ens donarà un lloc on des-instal·lar / tirar enrere.
        • No
          • Desconfiem, no és habitual que no s'ofereixi informació del ús que es farà de les dades.


Conclusions

Compte, podem agafar un constipat.

M'ha costat, però... he entès el Twitter?

Blog Dec 31, 2013 Lluis Turró Cutiller 234 0

Les xarxes socials em semblen bones eines de comunicació, però sempre les he passat per alt perquè no compleixen els requisits mínims per ser eines de col·laboració. Amés, no comunico bé.

El meu entorn de treball està format per eines de comunicació en línia, on tinc persones a les que habitualment conec per temes de feina o personalment. Mai no ens diem res que no sigui imprescindible i curt.

Quan vull passar informació que requereix temps i esforços, utilitzo eines pròpies i correus electrònics.

D'acord... i Twitter?

La independència de Catalunya a entrat en la meva vida amb força. Sempre he anat a les manifestacions del 11 de Setembre, però ara, amés, he volgut implicar-me en el dia a dia. Twitter és un lloc on bullen les idees, on circulen sense control d'un lloc a l'altre i persones ben diferents entren en contacte. Juntar les dues coses és com veure cava.

Però Twitter no és un xat de col·laboradors. No et dius allò imprescindible, ni pretens que el que has dit vagi més enllà de ser llegit desordenadament per altres.

Poden enviar-te una salutació, però no vol dir que s'inicií una coneixença, ni tampoc que aquesta hagi de continuar. Són mostres de relació virtual, lleugeres i amb un significat constret a la pròpia virtualitat.

El 2014 ens porta Persona

New & Noteworthy Dec 31, 2013 Lluis Turró Cutiller 1,712 0

Preparada ja l'actualització de tots els Cloud Turro.Org amb la nova implementació de Persona. El projecte ja és als repositoris de codi de la Fundació TiC i compartit amb Mozilla.Org, un cop assolida la fase estable.

Què és i com funciona?

Persona és un sistema de Signatura Única (SSO) basat exclusivament amb l'email. Les sessions obertes amb Persona perduren segons les preferències del usuari, podent allargar-se infinitament en l'ordinador propi o ser de sessió única, acabant en tancar el navegador.

És fàcil i ràpid començar. En qüestió d'uns minuts, un usuari pot crear el seu compte i validar-lo, sense donar cap altre dada que el seu email.

És segur. Persona connecta usant el protocol HTTPS tant per conversar amb l'usuari com per validar les assercions.

Per entrar a les sessions de treball BrightSide usant Persona només cal prémer la nova opció Entrar usant Persona. Poc més a dir. La interfície és tan senzilla i potent que tot és percep en un instant.

Ara, amb Persona, encara més fàcil.

Persona implementation using Java, the whole story

Blog Dec 21, 2013 Lluis Turró Cutiller 602 3

I decided to publish Persona implementation mainly because wasn't as easy as explained in Persona site. Also because is lacking of Java code, at least, Java code with no-so-much dependencies.

Follow the instructions found in Quick Setup at Persona site. Notice that the instructions provide best practices for including Persona dependencies. When finished, come back here and prepare for Persona implemented in your Java code.

Lets begin with the easy part, the Java Script code. This is the persona.js file. The example uses JQuery.

/*stands for context path on servlets nomenclature*/
var webRoot = ""; 
/*persona wants to know who is signed in*/
var currentMail = null; 
/*for app servers running on different ports*/
var webPort = 80; 
/*did user signed in without persona*/
var internalSignIn = false;
/*should we reload current page */
var reloadSignIn = false; 

$(document).ready(function() {
  loadElephant();
  if(!internalSignIn) {
    navigator.id.watch({
      loggedInUser: currentMail,
      onlogin: function(assertion) {
        $.ajax({
          type: 'POST',
          url: webRoot + '/auth/login', 
          port: webPort,
          data: {assertion: assertion},
          success: function(res, status, xhr) { 
            if(reloadSignIn) { 
              window.location.href = window.location.href; 
            }
          },
          error: function(xhr, status, err) {
            navigator.id.logout();
          }
        });
      },
      onlogout: function() {
        $.ajax({
          type: 'POST',
          url: webRoot + '/auth/logout', 
          port: webPort,
          success: function(res, status, xhr) { 
            window.location.href = window.location.href; 
          },
          error: function(xhr, status, err) {  }
        });
      }
    });
  }
});

Notice the use of some variables that will make your coding more useful in the long term. OK, now we dive into their use and how to get them initialized:

Sabrem fer-ho bé

Blog Dec 20, 2013 Lluis Turró Cutiller 245 2

Catalunya està visquent aquest darrer any el moment que més pot marcar el nostre futur proper. Estem decidint si volem ser o no un estat independent. Tot i el munt de coses que es diuen, tot queda resumit a un sí o un no.

No puc deixar de preocupar-me respecte a com es presenta la opció d'estat independent. Portats per allò en que es fixen els contraris a la independència, tenim tendència a reforçar allò que els molesta i que acaba sent titular als diaris.

Parlem d'Espanya contra Catalunya, del “Espanya ens roba”. Parlem de si ens quedarem o no a Europa. Parlem del que han dit els del PP allà a Madrid i del que han dit els del PP i Ciutadans aquí. Parlem de que junts podem.

Omnium Cultural presenta una campanya que m'ha semblat molt encertada des d'un principi: Un País Normal. Jo vull això, un estat normal, independent. Un estat on puguem cercar objectius que ens motivin, que ens facin anar cada dia a la feina amb més ganes que mai.

  • Vull un estat on es respectin les cultures existents.
  • Vull un estat on s'administri amb coherència els impostos que paguem.
  • Vull un estat que cregui en la investigació.
  • Vull un estat que sigui exemple de com s'han de fer les coses.
  • Vull un estat català independent.

Amb tot aquest batibull, els partidaris de que ens quedem a Espanya es defensen dels atacs i ens mostren la “Constitución”. La seva proposta però, no conté millores pels qui viuen a Catalunya.

  • Diuen que fragmentem la comunitat. Que potser proposen un no a la amistat o als matrimonis amb persones d'un altre estat?
  • Diuen que aixequem fronteres, amagats darrera una paret d'incomprensió.
  • Diuen “Juntos mejor”, o sigui, com ara. Sortim junts que ja pago jo.
  • Diuen que la legalitat no ho permet, oblidant que les lleis són al servei de la gent. De TOTA la gent.
  • Diuen que s'hauria de modificar la Santa “Constitución”, tan pulcrament escrita que millor no tocar-la.
  • Diuen que no serem a Europa, junt amb l'amenaça de vetar-nos si marxem. Amor, sí, però un pel malaltís.

Una persona a qui no conec en persona, però que m'agrada seguir per la seva coherència, ens recorda que, un cop assumit que som una nació, no cal que demanem tant les coses i sí que ens posem a fer-les. Dins la legalitat, però dins la legalitat més legítima per nosaltres, la gent.

Som nosaltres, la gent, els qui hem fet que s'avancessin unes eleccions, els qui hem causat picors a aquells còmodament assentats a les seves cadires de poder. No crec en els polítics, però als d'aquí al menys, ja els hem fet moure.

Centrem-nos en el que és positiu, avancem amb fermesa i no tinguem por, sabrem fer-ho bé. Ho sé perquè aprenem dels errors i, on estem, ja n'hem vist prous.

BrightSide introduces Persona, a Single Sign On system developed and hosted at Mozilla

New & Noteworthy Dec 16, 2013 Lluis Turró Cutiller 724 0

OpenID has been the SSO universally accepted in social networks, once accepted that not everyone using it kwew what was this all about. Persona, formerly BrowserId, irrupted in SSO world with force, simplicity and open sourced. The ingredients seem perfect to atract developer interes.

Sign once, be recognized ever

That's what we expect from an SSO, not being asked every time for our nick name and password. The fact that security is one of the main factors when we sign into a system, may not be so atractive to the final user, but it is to developers. SSO systems are secured with SSL and this is a must have requirement for web based aplications.

BrightSide implementation of Persona

BrightSide allows and recomends using Persona to sign into the system. Major benefits:

  • Sign without password, but with your email. Persona takes care of asking, whether necessary, the Persona password.
  • Verify your identity using your own email.
  • Long term sessions.
  • Sign in and out of web sites separately. Persona remembers where the session was audited.
  • Sign up in less than one minute, manage your account in Persona's site.
  • Single account, multiple web sites.

How it works

Persona site already has multiple examples on different languages. Anyway, I'll publish the source code with the main changes I made to achieve the implementation. I'll also try to provide an easy explanation on how the system works and which security risks you may avoid on your system.

Learn more about Persona at https://login.persona.org.