/dev/24-2020
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.
Agenda
Opening, Agenda and Structure
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
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
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
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
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
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.
- Liferay Help Center > Liferay DXP Frameworks > Web Services > REST Builder (Official docs):
- Liferay.dev BLOGS - David's post: Use Liferay's REST Builder tool to generate your own Headless APIs
- Javier de Arcos' GitHub Account: RestBuilder Docs
- Swagger Editor
- REST Resource Naming Guide
- Liferay Nexus Repository
- DEV 24 RESTBuilder example code on GitHub
Building SPA in Liferay in modern way
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
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
Jorge Ferrer
2020-09-24 11:10 UTC
- 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,
- have tried to leverage the Asset Framework but found it too complex or maybe had limitations that didn't match their needs
- 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
- 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
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
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
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
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
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
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
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.
Quickly start coding with Liferay Starter
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.
https://github.com/lgdd/liferay-starter
Welcome Co-Host Antonio Tejada
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
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)
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
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
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
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.
Searching Beyond: showing results from multiple sources in one place with Liferay's federated search
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
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
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.
Custom Event and Custom Asset analytics
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)
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.
Building Interactive Experiences With Clay
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
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
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
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).
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
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
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.
Advancements in Digital Asset Management extending with Asset Library in Liferay DXP 7.3
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
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 the new Community site was built
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
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: