24h of live stream (2020 edition)

Yes, we were streaming for 24h about Liferay DXP and Liferay Portal 7.3 (and previous versions). All kinds of technical information that might be of interest for you. You might have missed it, but luckily we have it all recorded - and the recordings are available for you:

7:00 - 19:00 UTC (Session 1, with chapter marks)

19:00 - 7:00 UTC (Session 2, with chapter marks)

And if you don't want to miss the next event of this kind, follow @liferayeng, @dgomezg or @olafk on twitter.


Opening, Agenda and Structure

profile picture profile picture

David Gomez, Olaf Kock

2020-09-24 07:00 UTC

Let's kick it off: Well rested we're opening this full 24h marathon with lots of information about Liferay. We introduce the flow and discuss a couple of agenda items.

And if you were wondering about the opening song: It's this one:

Welcome Co-Host Suryakant Sinha

profile picture

Suryakant Sinha

2020-09-24 07:05 UTC

Welcome to our Co-Host Surya.

Surya has almost 3 years of experience with Liferay, started as trainer in version 6.2 interested in backend development, but currently works in a business role as Sales engineer. He takes care of government business of central and state government in North and East India.

He will help us stay on track, come up with interesting questions, share the burden of running this event behind the scenes.

Is this Devcon, or what?

Olaf Kock

2020-09-24 07:10 UTC

In case you're missing Devcon 2020: We'll open with some description of what this event is, what it isn't, what happened to Devcon and what you can expect in future.

If you like to re-live the Devcon experience (or just see it for the first time), here's the opening of 2018 in Amsterdam

Having Fun with the Item Selector

profile picture profile picture

Alejandro Tardin + Ambrin Chaudhary

2020-09-24 07:15 UTC

The audience are developers that have had the "pleasure" of writing custom Item selector views.

For 7.3 we've added a new API (ItemSelectorViewDescriptor) that simplifies a lot the process of adding item selection functionality for any kind of content. It is mostly declarative and removes the need to write a custom JSP file.

Building a health check for a containerized Liferay

profile picture

Louis-Guillaume Durand

2020-09-24 7:50 UTC

Checking on the application server (e.g. Tomcat) being able to receive connections might not be accurate to determine if Liferay is ready or live. So if you ever deployed Liferay as a container you may have make developments to expose a custom health endpoint. I recently worked on that matter in order to build a configurable API to help you expose more accurate readiness and liveness probes. Let's see how it works and discuss this topic together.

Deploying Liferay consistently and effortlessly on OpenShift

profile picture

Pablo Nuñez

2020-09-24 08:30 UTC

In this session, you'll learn how to get Liferay code and configurations changes deployed consistently to an OpenShift cluster by a simple Git push. You'll Learn how Liferay environments can be patched automatically with the most recent Liferay Service Packs and how deployments can be made consistent across environments, all while still using the Liferay tools you are already familiar with.

If you are someone who is interested in building a CICD solution for your containerized Liferay environment, then you will learn some nice tips and tricks during this session. Of course there are always dragons, you will learn about these too.

Even if you are not too familiar with Kubernetes or OpenShift concepts you will be able to understand this session (well... maybe at least a bit of Docker knowledge would help :P).

Extending the Headless APIs with your custom modules

profile picture

Martín Domínguez

2020-09-25 9:10 UTC

Oriented to solutions developers on Liferay, Integrator with third-party apps, Front-end developers who want to use Liferay's Services. Definitely, it's a good starting point for those who have to work with Liferay's Headless APIs.

We'll build live a couple of example endpoints and will explain the most important thing that you have to bear in mind while you're developing, as well as common mistakes and troubleshooting.

Building SPA in Liferay in modern way

profile picture profile picture

Milos Nikolic + Vladimir Vukadinovic

2020-09-24 09:50 UTC

Liferay doesn't have a solid and developer-friendly solution for building a SPA inside Liferay. We find solutions that give us the ability to create portlets in any FE framework with all the benefits like hot reloading, routing, etc and but also giving developers the opportunity to use Liferay object, language keys, and everything from Liferay.

The Frontend Developer’s Guide to the Galaxy: Integrating a Real-world App in DXP

profile picture

Carlos Lancha

2020-09-24 10:20 UTC

Developers. This was presented at past DevCon and showcases how to bring a pure React/Angular application into DXP

Modern front-end frameworks like React and Angular make it painless to create interactive and complex UIs and their ecosystems have seen continuous growth over the years making it a great choice for your frontend development. In this session you will learn how your team can leverage their existing React and Angular knowledge to build rich applications with ease, using pure frontend tools like create-react-app, angular-cli and Liferay’s own js-toolkit. Explore how you can connect your application with your business side logic using our Headless APIs and leverage DXP’s out-of-the-box features such as localization, configuration and authentication.

Introducing the Info Framework: Leveraging Modern Site Building with custom content types

profile picture

Jorge Ferrer

2020-09-24 11:10 UTC

The audience of this session is developers of solutions based on Liferay. Specially for those who... 
  1. have found cases where you needed a full custom portlet to support a custom content type or a custom entity in general, but it didn't really have any special functionality,
  2. have tried to leverage the Asset Framework but found it too complex or maybe had limitations that didn't match their needs
  3. love the new features built by the Modern Site Building project and would like your business users to leverage them not just for Web Content, Blogs and Documents, but also for custom entities in your project
  4. are interested in learning the newest kid in the block in the family of Liferay's frameworks and how we are applying everything we've learned all these years.

Let’s discover and extend the new Content Dashboard

profile picture

Sébastien Le Marchand

2020-09-24 11:50 UTC

Learn how the new Content Dashboard provided by Liferay 7.3 can be a precious tool for content administrators, contributors and developers. Beyond the out-of-the-box features, discover “filter favorites“ and “CSV export” custom extensions (open sourced for the /dev/24)  and deep-dive into implementation as an example of advanced portlet customization.

Welcome Co-Host Andrew Jardine

Andrew Jardine

2020-09-24 12:00 UTC

Andrew is the creator of masteringliferay.com, long time community member and a recent hire in Liferay's North American Customer Success team.

He will help us stay on track, come up with interesting questions, share the burden of running this event behind the scenes

Content Discussion

profile picture profile picture profile picture profile picture

Sébastien Le Marchand, Jan Binder, Jürgen Kappler, Tarik Demnati

2020-09-24 12:20 UTC

A lot has changed in Liferay's CMS over the years - particularly the last years. And in version 7.3, this all will be taken even further.

In this session, we have a discussion with some interested people of all sides to see where this all is headed, and what to do with the new features in 7.3.

Is the current feature set easy to use? What are the supported usecases? Do they surprise the developers of those features? Are there low hanging fruits for further extension? Which gems does the current implementation hide?

Different ways to personalize experiences in Liferay Portal CE

profile picture

Sarai Díaz

2020-09-24 12:40 UTC

The audience are users/marketers/content creators who want to tailor content for individual users depending on their characteristics, preferences, and behavior ultimately increasing both revenue and customer base.

Since Liferay Portal CE/DXP 7.2, there are a plethora of new features aimed at providing better and more personalized user experiences:
Defining your audience and creating personalized experiences
Configuring widgets

Some interesting related links

Providing custom asset selection with Information List Providers

profile picture

Jan Binder

2020-09-24 13:15 UTC

The Liferay Asset Publisher provides a huge amount of possibilities to customize which assets you want to display. But it falls short when it comes to e.g. display assets based on individual user preferences (e.g. personal interests). We built a solution for this based on Info List Providers. Users can select interests (based on Liferay categories) and the Info List Provider uses that information to filter the asset list.
With Information List Providers it is possible to programmatically adjust your scope and flexibly pick the desired assets based on your needs or the customers desires. They are part of the Liferay Info Framework and can hugely ease the use of Asset Publishers but even if they provide great ways to pick the documents and contents you want there are some things that are not available and should be considered when thinking of using them in your Liferay application.

In this session you can learn more on how to use Information List Providers. Which options and restrictions there are and what we have learned from working with them.

How to turn any existing website into Liferay Content Pages

profile picture

Sébastien Le Marchand

2020-09-24 13:40 UTC

Content Pages are an opportunity to migrate into Liferay some existing websites initially built upon other technologies.
Developers and architects will discover in this session some ways to maximize the automation of this kind of project. The key component is a home-made tool (open sourced for the /dev/24) converting static sites into Content Pages.

How to create your own segments criteria

profile picture

David Arques

2020-09-24 14:05 UTC

In this talk, we will explain how to create your own segmentation criteria and how to combine them with the existing ones.

To do this, first we will show the main functionalities of the Segments Editor and the new features that have been introduced in 7.3. And then... hands on! we will create a new section within the segment editor dedicated to our own criteria and we will show how simple and fast it is to add a new criterion.

Welcome Co-Host Danilo Buzar

profile picture

Danilo Buzar

2020-09-24 14:40 UTC

Danilo signed up to help monitoring all the background - and for many more things. In fact, he was one of the first people to sign up as volunteers.
He's also part of the LUG Brazil, so it's natural that he joins just before the Usergroup session.

Worldwide Usergroups

various presenters

2020-09-24 14:40 UTC

What does it take to build a usergroup? If you have a usergroup or want to build one, you can be part of this panel.

Quickly start coding with Liferay Starter

profile picture

Louis-Guillaume Durand

2020-09-24 15:00 UTC

If you are new to Liferay, you may want to quickly try some code without installing any specific tool. Even if you are not new to Liferay, you may have a new laptop or one for a mission with limited rights and installing a tool can become a hassle. That's why I developed ""Liferay Starter"" which is an app to help you create a basic Liferay Workspace along with modules from templates. Let's see how it works and discuss how it could evolve to make your life easier.

What I learned @ Liferay and what the future holds for Java

profile picture

James Falkner

2020-09-24 15:35 UTC

My experience working for Liferay and in the Liferay community, and what I'm working on now and how it relates to the future of Java for enterprise development

Welcome Co-Host Antonio Tejada

profile picture

Antonio Tejada

2020-09-24 16:06 UTC

Antonio is a prominent and active member of the Liferay Community. He has been around the Spanish Liferay User group for a while and since last year he stepped in as co-organizer. 

He is a Liferay certified backend developer, and has been working with Liferay for the last five years, using versions from 6.2 to the latest 7.3. 

The next talk, by Marcos castro will be part of the Liferay User Group meetup in Spain, and Antonio, as one of his organizers, will be our host and introduce a little bit more the LUG Spain.

Welcome Spain, welcome Antonio.

Dynamic Styling in DXP

profile picture

Marcos Castro

2020-09-24 16:10 UTC

Developers, Designers, Decision Makers

As part of our Styles Infrastructure Epic (https://issues.liferay.com/browse/LPS-114841) we've developed some mechanisms to allow:
- Creating dynamic themes
- That can be styled at runtime

The talk could present the technology behind this amazing feat (CSS Custom Properties) and the facilities we've built into DXP to leverage them, which can be enjoyed as a final user in our StyleBooks offering

Forget Amazon, help your users to buy with Alexa from Liferay Commerce (thanks to its headless APIs)

profile picture profile picture

Roselaine Marques and David Gómez G.

2020-09-24 16:45 UTC

In this session you will learn how to get the most of Commerce through an extension and its headless APIs to personalize the purchasing experience to the needs of some of your customers and make it easier for them to buy products by creating an Alexa Skill that will consume the commerce headless APIs.

We will also see how you can customize some of the commerce features, like coding your own discount rules to apply depending on your customers profile.

Headless APIs enable a lot of new use cases for Liferay based developments, and by that we mean any development on any Liferay product, including commerce, which also brings new headless APIs.

On the other hand, in the last years we have witnessed a bloom on the number of different channels that we could use to get to our customers. Having a Voice Assistant is now becoming more usual, and beyond those geek-nerdy technology lovers that love to have the latest gadgets, the fact is that those Voice Assistants are enabling us to deliver more personalized experiences or even make it easier for certain people to use our sites.

Welcome Co-Host Jonas Choi

profile picture

Jonas Choi

2020-09-24 17:30 UTC

Another great volunteer that knows the insides of Liferay for ages now and didn't wait to sign up to help with the event. He's working in the Diamond Bar office (which, for people from around the world would be better known as "Los Angeles", so he comes up at this time to cover the american timezones with us.

With gratitude for volunteering to help out in conducting this event and helping us in the fore- and background, we're welcoming Jonas Choi

Why Liferay APIs are awesome

profile picture

Javier Gamarra

2020-09-24 17:40 UTC

All the new and shiny things the Liferay Headless APIs and GraphQL endpoint has added for 7.3 (and backported to 7.1 and 7.2) like:

  • API extensibility: bend the existing endpoints to your will
  • Embedding: include your images, documents or rendered templates in the same request!
  • New API hub with Swagger and GraphQL integrated
  • Headless Admin Content! Search assets! Document Types!
  • More GraphQL relationships, documentation and many improvements
  • REST Builder out of beta :)

and obviously more APIs. I also talk about obscure things that were already present in 7.2 like automatic transactions, batch framework, permissions...

Monitor your Liferay DXP logs with Elastic Stack

profile picture

Patricia Hevia Teixeira

2020-09-24 18:35 UTC

Learn how to quickly detect errors by monitoring Liferay DXP logs using Elastic Stack. Convert Liferay logs to .log files, process them using Logstash, index them in Elasticsearch, and display and create graphs in Kibana.

Change of streams/sessions

The Terminator

2020-09-24 18:55 UTC

From time to time, we'll need to take care of technology. You know - we could go on forever, but the backend needs some cool down and new ice packs.

If you have the stream or webinar on play, you'll now need to switch over to another one and play it. There will be a brief interruption - naturally. But don't cry - and observe this site, we're publishing the new stream at the top of the page as soon as we hold it in our hands.

Welcome Co-Host Anne Durey

profile picture

Anne Durey

2020-09-24 18:58 UTC

This is a true group effort, and we're happy to have recruited Anne from the Liferay Brazil Marketing team.

She will help us stay on track, come up with interesting questions, share the burden of running this event behind the scenes

Searching Beyond: showing results from multiple sources in one place with Liferay's federated search

profile picture

Adam Brandizzi

2020-09-24 19:00 UTC

Often, we need to search for some content in various systems. It is, at best, an annoyance; at worst, a productivity drag. With Liferay Search, you can aggregate results from different indices and, so, from different sources. In this presentation, we will demonstrate how to use Liferay's widgets to display content from these various indices, in one page, with only one search request.

The "ultimate" guide for Production Ready Liferay in Kubernetes

profile picture

Alvin Estrada

2020-09-24 19:35 UTC

Deploying a Liferay using containers is just as easy as typing "docker run liferay/portal:7.3.3-ga4" in your terminal, however it gets complex when you start thinking about connectivity, high availability, security, resource management and production ready configurations.

While there are some good tutorials and material about how to start using Liferay with Docker, deploy it into Kubernetes and even how to ship code into a containerized Liferay instance, there is a lack of resources that explain the necessary technical aspects to deploy a "Production Ready Clustered Liferay CE 7.3" using containerized technologies.

The audience will learn how to configure a Liferay ecosystem with a replicated elasticsearch and database, all of this just using existing Docker images and Vanilla kubernetes components. This talk is aimed at Liferay developers and infrastructure engineers that want to migrate their old fashion VM-based Liferay environments into containerized environments with Docker and Kubernetes.

How to diagnose and recover Liferay cluster

profile picture

Mariano Álvaro Sáiz

2020-09-24 20:15 UTC

First I'll offer a brief introduction about what Liferay Cluster means, its basic concepts. I'll explain how do nodes get synchronized at background and which libraries are involved in communication (JGroups) and scheduling (Quartz).

After that I'll explain how to diagnose the cluster current status, how to check current scheduled jobs and understand the different messages that can be obtained due to unexpected situations.

Last, I can show some ways to recover from exceptional states where jobs are lost without the need of stopping nodes.

Basically it would be based on the post I've written: https://liferay.dev/blogs/-/blogs/how-to-diagnose-and-recover-liferay-cluster, but if I've time I can also show how to schedule a PERSISTED task since there are not enough examples about it.

Specially applicable to those who have to deal with cluster stuff, either administrators or developers, that want to get a deeper knowledge about how does Liferay handles cache synchronization or job scheduling, and how they can manage some of the most common failures or understand the reason of why certain states can be reached.

New Liferay Workspace features for 7.3

profile picture

Gregory Amerson

2020-09-24 20:50 UTC

New features we've recently built into workspace plugin that support Liferay 7.3 along with other products such as Liferay Commerce.

Custom Event and Custom Asset analytics

profile picture profile picture

Christopher Jeong + Jon Lee

2020-09-24 21:30 UTC

The target audience for this session is front end developers, product owners, product designers, and data analysts. Custom events and a redesigned custom asset tracking is schedule for development in the near term with a target release in 2021. I'd like to show a preview/prototype of our current thinking that relates to these features. From this session, attendees will learn the impact that events and attributes will have on the analysis of their unique products that are built on top of Liferay. Included in the presentation will be a preview of what the tracking looks like in the front end code and how Analytics Cloud will help them stay organized.

The Fragmentation of Liferay.com (in a good way)

profile picture

Ryan Schuhler

2020-09-24 22:00 UTC

In our journey to 7.3 we have reworked many of the applications and pages of our site to use more out of box and new features, one of which is fragments. I will be sharing some of our process, implementation, challenges, and benefits of moving to fragments.

LUG Brazil Introduction

profile picture

Anne Durey

2020-09-24 22:35 UTC

The brazilian user group is gathering online and invites you to participate in their meetings. Anne is driving the usergroup even in 2020. If you speak Portuguese, this is for you

Building Interactive Experiences With Clay

profile picture

Diego Nascimento

2020-09-24 22:40 UTC

Developers, this was presented as a Workshop at past devcon with good reception.

Clay has been rewritten from the ground up using React in a new major version, radically improving developer experience to deliver great, stable and consistent user experiences for your applications. In this workshop, you’ll learn all about the new components, features and improvements this version includes, build a rich and interactive application and see how easy it is to deploy and integrate it with Liferay DXP to deliver awesome experiences to your customers.

Remote Apps in Liferay DXP

profile picture

Bryce Osterhaus

2020-09-24 23:20 UTC

We are planning to present the initial work done as part of LPS-114812 that brings a "new" Remote App concept to Liferay DXP. This is basically a registered endpoint (url) that can be added to layouts as a widget. Yes, it's the iframe widget on steroids. We provide an additional layer of communication from-to the app and an SDK so the app can make authenticated calls to services and call other useful APIs on the platform. The remote app can be written in any language and deployed anywhere, since all it requires is an HTML endpoint.

Audience would most likely be developers and architects that could leverage this knowledge to build or think how to use this new feature.

Content Segmentation with InfoListProviders and ElasticSearch Queries

profile picture

Marcel Tanuri

2020-09-25 00:00 UTC

I will be demonstrating how InfoListProviders and ElasticSearch queries can be used together to cover a real world problem of content segmentation with complex combinations. That presentation can be interesting to devs and people from marketing teams.

Developing Web Applications on Liferay using ReactJS and Headless API

profile picture

Alexa Javellana + Maurice James Sepe

2020-09-25 0:30 UTC

The audience will be oriented on 2 main topics; ReactJS portlets and Headless API. We will be teaching them two different methods of deploying ReactJS portlets on Liferay, as well as common errors and how to troubleshoot them. As for Headless API, we will be discussing how to create a headless API module for a service and how we can customize it to support search. To conclude, we will be working with the audience in connecting these two modules into a complete full-stack application (Reservation System).

IDE New Features for 3.9

Simon Jiang

2020-09-25 01:05 UTC

An introduction to new features in Liferay IDE, e.g.

  • Upgrade planner offline support.
  • Maven workspace target platform support.
  • Support two versions of blade in IDE
  • Workspace Product support

Liferay CE Security Patching Info: Build binary patches

Yuxing Wu

2020-09-25 01:40 UTC

The audience are the community users who patch the Liferay Portal.In this session, you'll learn how to build binary patch yourself, how to get the security patch info in time. In addition, you'll know our security patch goals and how to report the security issues.

DSL (Domain Specific Language) Queries

profile picture

Preston Crary

2020-09-25 02:20 UTC

We'll cover what the use cases are for DSL, motivations for making it, key characteristics, how to use it and some concepts used to create it. DSL queries can be used instead of hand coded finders to write Java code that looks like SQL. Since they are objects, parsing and rewriting DSL queries is much safer than query strings. DSL queries prevent vendor specific syntax, enforce type safety, reduce syntax errors, and improve code readability.

Audience is any programmer that knows some Java and SQL.

Welcome Co-Host Jamie Sammons

Jamie Sammons

2020-09-24 02:58 UTC

Jamie is part of Liferay's Developer Relations team, and he's working on your "Questions" (what this means, you'll figure out at the end of his co-hosting time, and at the end of /dev/24 - scroll down if you're curious already)

Jamie will help us stay on track, come up with interesting questions, share the burden of running this event behind the scenes

Get involved with Apps and Translation

profile picture

Brian Wulbern

2020-09-25 03:00 UTC

There's one aspect to cover before you can claim that your code is reusable: Actual reuse.

How can you achieve reuse of your application? By making it available where others can find and comfortably use it. And by making it available in many languages natively. Brian covers both of these aspects, their advantages and the traps that you can fall in to.

How we make the sausage

profile picture

Brian Chan

2020-09-25 03:30 UTC

As Company Founder and Chief Software Architect, he still knows what's going on and reviews quite a lot of code that goes into the various Liferay products. If you're curious to know how the sausage is packed: He'll let you in on the secret

Advancements in Digital Asset Management extending with Asset Library in Liferay DXP 7.3

profile picture

Pooja Bhambani

2020-09-25 4:15 UTC

You've created sites and content throughout the year and now need what you wrote 2-3 weeks ago? It may be difficult to find it. Asset Library will provide ample of options to store the data/content and also we store the content with tags. So, in-future we can easily find the content and re-use it.
You're wondering if you should store your content in the global scope or in a site? You'll learn how to use the Asset Library as a means to organize your content.
And while we're there, you'll learn about some typical features of a DAM as well, starting with watermarking images, auto-tagging, image recognition, content conversion, compression.

Simple Tweaks

profile picture profile picture

Evan Thibodeau + Olaf Kock

2020-09-25 04:50 UTC

It feels like there's an infinite number of OSGi extension points, that can be utilized to quickly and easily add the functionality you've always been missing. And even better: Those features are just added to the platform - they don't change anything at all, so they're easy to maintain.

Both Evan and Olaf like to extract simple ideas into individual modules and will talk about their ways of exploring the API and the possibilities of the platform. Where Evan comes more from the frontend side of the equation, Olaf rather prefers work on the backend - so they each bring their unique perspective.

How Devops works in DXP Cloud

profile picture

Ibai Ruiz

2020-09-25 05:30 UTC

You'll learn how the SDLC (Software Development LifeCycle) is set up in DXP Cloud, how it works, and how can it be customized. Webhooks, Continuous Deployment, we'll talk about everything devops in DXP Cloud!

How the new Community site was built

profile picture

Javier Gamarra

2020-09-25 06:15 UTC

The new Community Site (also called Questions) was built using React + GraphQL served and using Liferay.

We'll see how to build a similar site and many tips regarding React in Liferay, how to interact with the GraphQL endpoint, use permissions, combine queries, use Apollo... everything powered by Liferay.

Closing Session

profile picture profile picture

David Gomez, Olaf Kock

2020-09-25 06:45 UTC

We're ending a 24h streaming session, in an unknown state of consciousness. Before finally going to bed, we'll have a look at what happened, what we learned, and where we go from here.

And of course, we're closing the same way that we were opening: