My 27th of September at LSNA2016

After a thirty-minute train ride sitting amidst super-excited teenagers, even the energized atmosphere of a downtown Chicago Tuesday morning seemed like a peace cloud. Anyway, got to the Hilton in good time for a bagel and creamcheese breakfast and an aromatic Colombian brew before Sergio's session.


Create Amazing Web Services with Liferay DXP (Sergio Gonzalez)

  • APIs are first class citizens
  • Cons of current web service APIs.
  • Configure a REST end point in Control Panel to expose a web service suite.

A simple BasicJAXRSSampleApplication class definition.

  • This class is an OSGI component.
  • Has a getSingletons() method.
  • Pretty standard REST servlet container with the usual annotations, bells and whistles.
  • Classic JAXB for XML<->Object model conversion, with freedom to define your own MessageBodyReader and MessageBodyWriter.
  • Swagger for REST documentation
  • Standard JAX-RS annotation-driven marshalling (to XML or JSON) as well as pagination for each web service request.
  • Demo'ed a nifty cURL-initiated request that posted an image to the document repository using a web service. The cool part was when he tweaked the service to set assetTagNames via the ServiceContext taking a comma-separated set of tag names from the web service invocation’s query params.
  • Decouple the internal logic of the service from the exposed contract.


Taking Complete Control of Product Navigation in Liferay DXP (Julio Camarero)

“How many of you remember dockbar? How many remember Control Panel? Site Administration? Okay, all of that has been revamped in DXP.”

  • New Control menu is the one menu to rule them all.
  • New Product menu now includes the Control Panel, Site Administration and all configuration menus.
  • New User Personal Bar
  • New Simulation menu

New concept of Product Themes – themes for the product navigation. Traditional themes are now referred to as Site Themes.

Julio demonstrated the ease with which a new tool/widget can be coded that attaches itself to a particular location in an existing control menu.

“You can have this class in your application/module/anywhere. Liferay will find it and use it.”


Guest Keynote: Why Customer Experience! (Mark Grannan)

Mark made a pretty compelling case for investment in customer experience. This presentation is for you if you’re having trouble seeing why customer experience is even necessary. The experiential sailing analogy was super interesting. Customer experience has to be balanced with digital operational excellence to harness a fly-wheel effect and propel towards the end goal.


Pulse Awards

I was very pleased to be included in the awardee list for Individual Contributor of the Year for 2016.

Thanks, Liferay, for the recognition.

Thanks, Apollo, for the support and a fostering work environment.

Congratulations to all the other awardees. I'm honored to be among you.



The big highlight at lunch was not the food (don't get me wrong - great food!). Rather, it was a 4-minute conversation I had over lunch with the very talented Julio Camarero.

I pretty much described a content SEO issue I was hoping to have a work-around for, and he, right there, between mouthfuls of baked trout and asparagus, described a hook style fix for me, only asking for some time to recall the actual artifact that would need to be tweaked.

Extreme programming minus keyboard! 


The Changing Face of SEO (Corbin Murakami)

Corbin began with a sombre reminder.

“Don’t forget about SEO”

  • Distinguished between strategic and technical SEO.
  • Google increasingly rewards good UX
  • Google Knowledge Graphs
  • to find structure data
  • Optimize site structure from a search implications perspective

Corbin has got to be one of the (if not the) funniest speakers at the conference. Oh, and did leave us with a relevant reminder.

“Don’t forget about SEO”


Search Intelligently Using Elastic Search (Andre Oliveira)

I just knew it when Andre spoke in his dreamy low tones that there was something hot bubbling beneath the surface.

He began with a nice survey of the search landscape.

  • The Search-Centric Digital Experience
  • Multi-asset searching (already available), but each asset can lead to a different user journey
  • Go beyond grammar and spelling in search suggestions; think invisible search network of previously made decisions/choices

And then came the demo.

There is a whole bunch of features enabled by default in the new out-of-the-box Search portlet. Can be whittled down to meet requirements.

Search portlet is still instantiable, but you can have multiple search pages in a site.

Andre built a new search view by dragging and dropping a search bar, search result lists, a few facets, a map,…WHOA!

And then he searched for all potholes in Boston. (I didn’t even know you could geolocate those.)

Another awesome presentation!

Additional search features include autocomplete readiness

Best approach with DXP is to have an external search engine running alongside - that's where Elastic Search comes in. 

  • REST API extensible with OSGI
  • explore the best query for results relevance
  • visualization with Kibana
  • (just watch the presentation when it becomes available ...lot more here)



How Graph Theory Helps the Development of Liferay's Publication Tools (Máté Thurzó)

Mate provided a fantastic “got button, need shirt to sew it on” scenario when the design team found that at the heart of the publication process is a graph of publishable data. But they had to think afresh as to how the graph nature of the publication data lent itself to the actual publication process.

This landed up being a theoretical journey into graph theory with some cool insights into the topological ordering algorithms underlying the content publication process used by Liferay.

A beast called the Coffman-Graham algorithm fosters the possibility of parallel processing, validation before the publication process begins, some prediction (probably to optimize a publication plan before execution), etc.

Great presentation if you're up for a theoretical discussion, or want to get into the inner workings of the Staging/Publication process.

Oh, and Liferay has a Neo4j driver, available on github.


Closing Keynote

It was a sombre keynote (and I was glad for it) with Bryan interviewing the Founder of Rahab's Daughers, a local Chicago non-profit that "aims to spread awareness about the underrated problem of human trafficking within the United States".

Exemplars of courage. Amazing work!

-- -- -- -- -- -- -- --

It's been a fun two days. Got some ideas swimming around my head, and a casual conversation with my boss seems to suggest I can install DXP on a dev node and start experiementing with some of the goodness I've had the chance to hear about over these last two days.