RL061 Caris Chan
It took me long enough to bring her on: She's followed Liferay's history for longer than some of the other founders: Caris Chan. And yes, that name means that she's Brian Chan's wife. During my last visit in Liferay HQ, I took the opportunity and asked her about her view on Liferay's history - about 15 years for the company and 20 years for the software project. Here are some of the topics that we talked about: The history of Liferay as a product: How and why Brian started Liferay, and the first offer to buy the product. Caris' role from history to the present Early expansion and how Caris' pessimism balances Brian's optimism How Open Source opens doors that you didn't know where there (Shoutout to Bala) The reason for a lack of an exit strategy among the owners - why Liferay stays privately held without venture capital 10% of Liferay's profits go to Liferay Foundation - as smart investments in the world How does a company that strives to stay private get into the acquisition business, acquiring two companies?
26 Feb 2019
RL045 Bryan Ho on Design and Ray
I had a short meeting with Bryan Ho, Lead Graphic Designer at Liferay - With that role it's obvious that we're bridging the audio/visual gap again: A very visual topic in an audio only podcast. But if you're not driving while you listen to this podcast, you can click the links from the shownotes and browse through the archives. Apart from being the creator of the Radio Liferay Logo, Bryan is the creator of "Ray's intergalactiv adventures". You can check out this series at https://www.liferay.com/ray. We talked about The history of Ray: He is an "old" mascot, has been around on the very old website Bryan started to get involved with Ray for a T-Shirt contest in 2010 and continued to draw him How Ray's intergalactic adventures were started (Shoutouts to Paul Hinz and Martin Yan) At Devcon Bryan created a lot of variations on Ray "on demand". You can find several of them on the flickr stream from that event. Luckily, Bryan keeps Ray around, for example on community T-Shirts, even though the cartoon series is currently on hyades. And other things that the design team works on (Website, Events, improve overall visual appearance) Here's Ray listening to Radio Liferay:
15 Dec 2014
RL062 David Nebinger
A conversation with David Nebinger, the number one contributor on the Liferay forums, about frequently asked questions. David's history with Liferay, reaching back to version 4.x Should I use an ext-plugin and what problem does it seem to solve? (TL;DR: No) 10:35 Should I make changes to the database? (TL;DR: No) But... I need to add a column to the built-in tables... Liferay's Expando API (Custom Fields) What changes to the database might do to your future upgrades The alternative to change data directly Fake Entities (a ServiceBuilder feature that was of good use in earlier versions but is now well superceded by just standard OSGi Declarative Services) Things Liferay won't say. Full article, well worth a read What Appserver should I use? How should I build my portlets? What database should I use? Why doesn't Liferay tell me how to size my cluster? Devcon 2019: David's upcoming presentation on "Programmatically loading your site with content" His interest in Headless features of Liferay His recommendation to come to the Unconference How to come up with the topics for David's blog articles, and what's in his queue Why should I use ServiceBuilder? More reasons to come to Devcon ;)
14 Nov 2019
RL055 James Falkner on Change
In this episode I'm talking probably one last time to James Falkner about upcoming changes... James was the first guest on Radio Liferay (back in episode 1 - as well as others) and now - at least temporarily until episode 66 is published - will be the last. We're talking about upcoming changes, and sadly it looks like this will be his last appearance on this program. Note: Currently the audio is still in post production, I'll publish it soon. Just subscribe to the Radio Liferay feed in your favorite podcatcher to get it delivered automatically. If you know the background of this story already, you'll understand that I think full shownotes for this episode are not really appropriate. However, here are a few references if you want to follow up on some of the details: Community Tummler git manpage generator Community Security Team Marketplace Events App (iOS, Android) Community Expedition Vanilla JS Climate of Antarctica James' video farewell note Stay tuned for further updates on what changes in community relations
15 Feb 2016
Most Popular Podcasts
RL054 Scott Nicklous and Neil Griffin on JSR 362 - Portlet 3.0
In this episode, recorded at Liferay's Devcon 2015 in Darmstadt/Germany, I'm talking to Scott Nicklous and Neil Griffin. Scott is the specification lead for JSR-362 - otherwise known as the Portlet Specification 3.0 - and Neil serves as Liferay's representative on the expert group. Here are some of the topics that we talked about: JSR 362 page with all the latest and current information (spec, prototype implementation and javadoc) The expert group JSR 286 portlets will run unchanged on JSR 362 (runtime and compiletime compatibility) My repeat favourite statement about frameworks in the web world. JSR 362 and its impact on UI, there's a Client-Side standard (on ECMA script) for the first time in the portlet spec The big question: When will it be done? (Some time 2016) Early Draft Review Spec available, ~80-90% of content is expected to be there (That's the statement from Devcon, in October 2015) Reference Implementation (to prove that the spec can be implemented) and TCK still missing (again, October 2015) Reference Implementation and TCK will be implemented under the Apache Pluto project, help required New Features include Bean-Portlet-Approach (portlet methods specified through Annotations in any Managed Bean), portlet.xml file no longer required if Annotations used specifies a JS API despite being a JSR, which covers traditionally only Java Dependency to JavaEE: Minimum is JavaEE 7, e.g. Servlet 3.1 etc. Portlet Spec is not part of the JavaEE, but extends some of its elements. CDI JSR 378: Portlet 3.0 bridge for JSF (where Neil is the spec lead), being built in parallel with JSR-362 Multiplatform Support, Websocket, Devices The E-Mail Archive of the specification process is public - contribution and comments are very welcome
26 Jan 2016
RL053 Nate Cavanaugh - UI news in Liferay 7
I met repeat guest Nate Cavanaugh, Liferay's Director of UI Engineering, at this year's Devcon and he answered all UI-based questions that we could quickly think about - specifically with regards to Liferay 7. As we recorded this on site at Devcon, you'll hear more background noise than usual - Auphonic did their best to clean the recording, and they did a great job. Here are some of the topics that we talked about: UI frameworks get out of style soon. Can I still use AngularJS? Do I have to throw everything away that I have invested already? The YUI story and what its discontinuation means for AlloyUI Will AUI be reimplemented on jQuery? Is jQuery part of Liferay 7? What about different versions of jQuery? metal.js Lexicon, UI-Language, User Interface Guidelines Artifacts and Implementation of Lexicon Bootstrap, Bootstrap components, Atlas, the bootstrap versions in Liferay 6.2 and the components of it that are available. What happens when Bootstrap 4 comes out? Single Page Application, SPA, SennaJS: Go without full page reloads, largely by default. New Theming Tools - You can also use new tools in Liferay 6.2 (AYOR though). No more _diffs folder, pure frontend packages, themelets. What kind of themelets do we wish to have? We probably have forgotten something. Ask your questions in the comment section of this episode to be covered in future episodes.
30 Nov 2015
RL052 Raymond Augé - Upgrading your 6.x plugins to 7.0
A continuation of last week's episode, Milen Dyankov stepped in as a co-host and helped me ask the right questions: Ray Augé answers all sorts of questions about the Modularization in Liferay 7 and what to do with your existing investment in Liferay Plugins - what to do with the plugins you already have, where you will have to re-learn and what you can, should or shouldn't continue to do.. As we recorded this on site at Devcon, you'll hear more background noise than usual - Auphonic did their best to clean the recording, and they did a great job. Here are some of the topics that we talked about: Portlets: If you're not interacting with Liferay, e.g. a pure JSR-286 portlet: No changes required JSF: Last kinks are worked out - test the more complex the JSF implementation is If you're using Liferay API: You'll have to resolve API changes - e.g. recompile and check if the API is still valid. Check these breaking changes - well documented, huh? And even better: The document is machine-readable and there will be migration tools (future episode planned) If the service is still in Liferay's core: No change needs to be made. If the service is now in a module: Check if the package was updated. Fix if necessary and if the migration tool didn't do it for you. Circumstances under which Liferay automatically "translates" WAR file into OSGi bundles - and the caveats Extensions to Liferay MVC portlet: Check for the nature of those changes The use of CDI - especially when the appserver's implementation/resources are utilized - still requires some work. Everybody who's doing really advanced stuff on sophisticated frameworks is welcome to try it out now and let us know now if there are any problems that remain How little of OSGi can I get away with? Hooks Many of the hooks - especially on services and models will continue to work, but won't have more power than in 6.2. They're prime candidates to be converted to an OSGi module as this will enable them to tap into a lot more extension points in Liferay 7. Struts Action Hooks probably need changes - while they still work, most of the underlying actions have been reimplemented without Struts \o/, so possible overloads in Struts actions won't be taken into account for the new implementation. (most likely: You need to convert to an MVC Command, injected as an OSGi module. There are samples available) Liferay 7 has a lot more extension points than prior versions. The documentation is being made available on dev.liferay.com - obviously this is still work in progress, but is scheduled to be there until release. How can IDE and other tools help identifying which extension points are in use? And how to make lots of friends within the Liferay Community Overriding Language Keys is quite simple - choose "global" or "per portlet" - those are the two available scopes that a translation can live in. For migration you might have to decide which scope your changes should go into. Encoding still is done in UTF-8 JSP-Hooks: The elephant in the room: Seems to be very popular, but always has aimed at the implementation rather than to an API. As drastic UI changes happened in Liferay, these implementation need to be implemented on the new infrastructure, leveraging new techniquest (e.g. Lexicon). Also, most of the functionality has been moved into modules - JSP-Hooks only affected the core jsps... New options: JSPs can be deployed as proper OSGi bundles. There's still danger because technically the implementation is unchanged compared to earlier versions New fragment modules enable you to override JSPs in any portlet - not only core ones. But you shouldn't limit yourself to JSP-overrides: There are more ways to change Liferay's UI, e.g. replace the render-phase of a portlet through a portlet filter. A new "dynamic include" API to inject extension points at very specific places - e.g. at those UIs commonly targetted by overrides. (let us know which are missing) Application Adapters Ext Ext Plugins work just like before (in core). But most likely, the implementation has changed anyway, so that you need to make sure your code is still valid for the current version - but that's what you expected when you started writing that ext anyways, right? Of course you'll have to check if your changes still are contained in Liferay core. If they're extracted to a module, ext won't be yours any more (for these changes) Ideally, ext will be the easiest plugin, as it probably will be a lot smaller than before. We haven't covered all possible questions and are planning a "Listener Questions" episode. Please ask your questions in the comments to the blog article for this episode to get them answered in the next episode with Ray.
23 Nov 2015
RL060 Performance and Permissions with Preston Crary
An episode on the "Per" things: Performance and Permissions. I spoke to Preston Crary, who amazingly was not mad at me for losing an earlier recording. We're talking about these (and more) topics We open with the attention to detail that's required for working on performance tuning and some short conversation about this topic. Sadly, there's not often a single silver bullet, but many areas of dust. Sometimes the fastest code is not the most optimal Continuing with Preston's work on Permissions: ResourceBlock is deprecated, and there's an easy migration path an example upgrade path for bookmarks The usecase for Resources, ResourcePermission, and ResourceBlocks (as they're not at all visible on the UI) Preston's way through Liferay from Support to working on the topics that he's now working on The new API for Permissions - and the documentation is also done already (as of me writing this article, not yet published, but available on github - should be a matter of days or hours) And an example: The implementation of this API in Journal more documentation on registering and checking permissions Should you implement your own permission system? (and how the answer to this question might change in 7.1) Upgrades are being performance tuned. I smell a future episode coming up. Paging the team that is working on this area The remarkable memory savings that refactoring the UserBag introduced What happend during login Passwords are PBKDF2WithHmacSHA1/160/128000 hashed, a deliberately expensive password hashing algorithm. LPS-75747 and an update to my hardball question: Document Library's default.xml is still in core, can't be updated through a module, just through an ext.
20 Mar 2018
RL051 Raymond Augé - Motivation for Modularization
Another Devcon "private" session - I missed his presentations, but got the summary right when he was done: Ray Augé took the time to answer all sorts of questions about the Modularization in Liferay 7. In fact, he answered so many questions that we made it a 2-episode recording. This week it's about the motivation for modularization: What problem does it solve? Next week will be more technical, telling you about the implications of the updated architecture to your code. As we recorded this on site at Devcon, you'll hear more background noise than usual - As usual, Auphonic did their best to clean the recording, and they did a great job. Here are some of the topics that we talked about: OSGi in Liferay 6.2 vs Liferay 7.0 Modularization of Liferay 7.0 Surprisingly (not!), modularization is not yet fully done, but it came a lot further than expected initially How much do you have to re-learn to build plugins for Liferay 7 James: Community Roadmap Talk from Devcon (note: Ray also had several presentations at Devcon, you'll find his recordings there as well) Now everybody should be able to work the same way: Internally in Liferay's core as well as externally, in the plugins. Ant vs Maven vs others? What's the story with Liferay's supported Build environments? More energy will go into build tools other than the SDK Of course we cover a release date :) I'm getting a very rough one from Ray :)
16 Nov 2015
RL050 Pimp My Scriptengine with Jens Bruhn
9 Nov 2015
RL049 Security with Tomáš Polešovský
It's been a long time and finally... Radio Liferay is back with several episodes in the queue. Today, Tomáš Polešovský starts of by talking about Liferay's security team and -procedures as well as his work within that team. Tom has already been a guest on Radio Liferay's ancient episode 9 Here are some of the topics that we talked about: The glorious glamorous days one has on the security team (consisting mostly of email, tickets, pullrequests) Different ways to make Liferay more secure Gathering feedback from community and customers Monitoring Liferay Forums and full disclosure mailing lists (also about the various libraries that are used in Liferay) Scan source code for problems Liferay cooperates with external security researchers for penetration testing Customers perform external audits as well. An example of an actual audit report: 49 very alarming false positives vs. 1 real cornercase The security issue fixing process The first security episode with Sam Kong Link to community security update page. CE updates always only against the latest GA version Some low hanging fruits in secure Liferay administration (on the fly) Disable "create new accounts" if you don't want random users to create new accounts (e.g. in an intranet) JSONWS access Disable Control Panel, add "My Account" to user's personal pages instead The securing Liferay series and "additional Resources" here What will happen with Liferay 7? OAuth, and the related Radio Liferay episode 44 with Stian SQRL (disclaimer: I misled Tom by mispronouncing this library - he's aware, but there's no implementation - yet - for Liferay)
3 Nov 2015
RL046 Thomas Schweiger on Coffee
The nerdiest topic so far: I'm speaking to Thomas Schweiger, german national barista champion 2010-2012. He was sponsored by our german partner Prodyna to prepare coffee during this years Devcon and Portal Solutions Forum Germany. We talked about What do you need to do to become Barista Champion? Can you describe upfront what your coffee will taste like when you prepare it? Importing coffee, roasting, drying, grinding and preparing Latte Art (learn it by just listening to this episode): Foam the milk to be a homogenous liquid - stop adding air at 30°C, then roll around the foam to get microbubbles. The really hard stuff is to determine when to drop the milk under the coffee's crema and start drawing images with the foam on top. Find Latte Art tutorials on Youtube (or find out what it actually is and what pictures people actually do) Shoutout to Wolfram Sorg, from Prodyna Sales, who is teaming up with Thomas Did you know you can be a coffee consultant? Thomas is. He's consulting on coffee farms, cafés and barista training.
18 Dec 2014
RL059 Testing at Liferay with Kristoffer Onias and Victor Ware
Yay, another episode, and maybe in time to sweeten your trip to Devcon in Amsterdam. I spoke to Kristoffer Onias and Victor Ware. Both work on testing Liferay with different areas of interest. You'll hear quite a bit about what Liferay does internally on testing. I actually talked to them quite a while ago, and the episode has been sitting on my disk since then.The numbers that you hear may no longer be accurate, but the overall information definitely is. Sorry for keeping it a secret for so long (there's an even longer kept secret... up next...) We're talking about these (and more) topics Different levels of Tests: Unittests Integration Tests Functional Tests How SPA influenced frontend testing Selenium, Selenium IDE, Web Driver, Capybara, Docker, and Jenkins How pull requests are tested before they reach their addressee The scale of Liferay's testing infrastructure KC's (at the time) still unnamed project. Watch out for him at the North American Symposium for updates to this. Oh, and: By now his project actually has a name: Testray Maintenance of large test sets - UI locators etc. SevenCogs and its resurrection How to scale testing infrastructure for potentially a lot more servers and environments The Test Pyramid A wild idea: Livestream of test runs Liferay's Testing Whitepaper and a Testing Webinar 50 shades of red and its part 2
3 Oct 2017
RL064 - David Nebinger - Horror Stories
An episode that was recorded together with episode 62, but got a bit lost (well, I admit - it was just sitting on my disk). But here we are: David shares four of his favorite horror stories - those that tought him what he never wants to see again. Hopefully it's useful so that you learn from it before experiencing those stories yourself. We've talked about David's experience of bringing in Hibernate into Liferay projects versus utilizing ServiceBuilderUpgrading strategies, when you have a lot of customizations, and especially when you combine upgrades with further changes. Making up a proper, custom, framework for developing their applicationsThe three rules of dealing with Liferay Support (also helping a lot for improving Forum- and Slack-questions as well)Rather a success-, not a horror story: A pointer to Episode 48 about predicting an exact release date, announced months earlier, for 6.2 GA3.
30 Jan 2020
RL063 Andrew Jardine - Mastering Liferay
For this episode I spoke with Andrew Jardine, Community Contributor Award winner for 7 years in a row about his history with Liferay, the community, how to improve it and, of course, his new passion project, https://masteringliferay.com/ We've recorded this episode during Devcon 2019, but I've been keeping it back for a bit, to give Andrew a bit more time to produce more content for the site that we mainly talk about. Check it out - prepare to be amazed. Here are some of the topics that we talked about: How long he's around (and how he got his first fix of Liferay) His motivation to stay around, to help people How he started with masteringliferay.com and what you find on the site How does Mastering Liferay relate to Liferay University? Passion versus Business Potential for contributions, "Share an idea" Target Audience (currently Developer-centric, but conceptionally not limited to this audience) Shameless plug for ControlPanel Documentation (because I can ;) ) - by now you can find the first links to masteringliferay right in that plugin Andrew's presentation at Devcon, together with his business partner Julian "The journey of a Liferay Developer - Empowering the community" Thanking Andrew by making him work more - he was part of Opening Devcon, playing an authentic Canadian.
24 Jan 2020
RL058 Jorge Ferrer (continued)
Two episodes (or an eternity) ago, I spoke to Jorge Ferrer, Liferay's VP of Engineering. We didn't have enough time to finish the conversation, so we continued a while after - and then I buried the recording /o\. Anyway, apart from it being still from "before the release of the current version", it's still relevant stuff, I feel bad about missing to post it. Check for yourself - here it finally is. As before, we're speaking about various internal and external topics and I've also been teasing him a bit. We're talking about these (and more) topics Microservices vs Monoliths Buzzword or breeze of fresh air? DHH The Majestic Monolith Approach this technology option like any other If you can't build a monolith, you are probably getting an even bigger mess if you approach microservices Milen's presentation: Microservices and Modularity or the difference between treatment and cure (or on youtube) Shortly before the release many modules were moved around and renamed. We talk about the reasons and what this meant for the translations What's the meaning of "Feature-Complete"? A lot of Feedback starts to come in during the Beta Cycle Nitpicking on the Beta Criteria: JBoss and Upgrade Routines Lookahead on the next episode on Performance Tuning Releaseplans (of course, I could have retrofitted an exact release date...) What's it like to be hired into Liferay Engineering? https://liferay.com/careers office envy shared spaces, decoration, own desks, separate working environments, inspiration, agora Is it forbidden to write Javadoc?
20 Sep 2016
RL056 Jorge Ferrer
Today I'm welcoming a repeat guest, Jorge Ferrer, Liferay's VP of Engineering. I've had the great opportunity to ask him a lot of questions that provide deep insight into what's running behind the scenes in the engineering team. We didn't have enough time, so this is part 1 of our conversation, to be continued in episode 58. I need to squeeze in the (already recorded) episode that contains more information about the Javadoc Contest (please participate). Jorge gives an update on various internal as well as external topics. I'm also teasing him a bit, and hope that this episode will be as insightful for you as it was for me. We're talking about these (and more) topics the engineering team passed the 150 people mark, distributed world wide. Communication in a team that's distributed through the world, tools Some nasty german guy recently took Jorge's #3 contributor place on the public forums Participation & Contribution: Check https://dev.liferay.com/participate. What happens to pullrequests to the Liferay repository? Should you rather direct to the component lead? Coding Standards, Design Patterns and how many you want to use in a single project Pullrequests and who's working on them. The experience of upgrading the architecture to OSGi in Liferay 7 Jorge's Architecture Blog Article(s) News about Developer Network: Many new project documented there We're closing (for today) with a short fun quiz about new frontend tools introduced with Liferay 7, in which Jorge earns his street credibility. stay tuned for the continuation of this episode, most likely in episode 58.
14 Mar 2016
RL044 Stian Sigvartsen on Social Apps Proxy
This is my conversation with Stian Sigvartsen, winner of the Marketplace App contest with his Social Apps Proxy (Link) and well known member of the UK Liferay usergroup, working in Devon and quite a lot with Liferay. Our paths cross quite often, but we finally found some time to talk about Stian's award winning app which basically takes all the boring stuff out of OAuth integrations into Liferay He did a great job of explaining the background and solution in audio. Here's what we talked about: Social Apps Proxy enables you to integrate content from other social networks into your portal. It's working through OAuth, basically taking over all of the dirty work of authentication, leaving the actual integration works for the implementor Stian's sample app on github (Link): Getting twitter mentions with 10 lines of code What problem does OAuth solve? Comparing OAuth with a Valet Key. Linking Liferay's identity to twitter's (in this sample) How the social apps proxy works: An application just uses it as HTTP proxy, does not care about identity and is happy to get the identity automagically taken care of Social Apps Proxy on Marketplace Supported Versions of Liferay 6.1 to 6.2 and OAuth 1.0a to 2 to be extended Microservices All Code is to be open sourced soon, contributors are welcome.
11 Dec 2014
RL043 Brett Swaim on Application Performance Management
I'm talking with Brett Swaim, Principal Consultant at Liferay US, on application performance monitoring, horror stories and things to avoid. Brett is dealing with a lot of customers. He's one of Liferay's go-to resources for performance tuning and monitoring. Brett had a presentation on >DevOps Best Practices with Liferay, Logstash, Kibana, Elasticsearch, and New Relic at Devcon (among other symposiums and events). If you missed it or just want the audio summary (both were my motivations to talk to him), we're talking about his experience, using one of the projects (an unnamed one) as an example. This is a short conversation as we didn't have a lot of time in between different appointments, but we've committed to making this a series of episodes on similar topics - and more in depth. We talked about Application Lifecycle and Performance monitoring, New Relic (used as a sample here), Compuware , AppDynamics. Or check the Gartner Quadrant If you can't host in the cloud, you can use the same strategies that Brett is talking about with on-premise solutions How do you know your application is slow? ELK-Stack (Elasticsearch, Logstash and Kibana) adding page load times to Apache Logs It matters where you measure from: Internal network, external network. Default configuration of Liferay - memory, garbage collection and other JVM settings You can have too much memory in your JVM Liferay's Whitepapers have starting points, you shouldn't use them as your final settings. ...and you'll actually need to measure for yourself in order to find your number... CDN setup and its results on high volume site Be proactive. You'll find bottlenecks before your users do.
5 Dec 2014
RL042 Zsigmond Rab on Enterprise Support
At Devcon, I took the opportunity to meet several people - stay tuned for several more episodes during the rest of this year. For this episode, I spoke with Zsigmond Rab. Zsigmond is Lead Engineer, Technical Support & Trainer at Liferay Hungary. This is a short and informal tongue-in-cheek talk about support-related issues. We talked and joked about The structure of the Hungarian Support teams How bugs unexpected features are handled How to make sure that these don't show up again in the next version Fixpacks, Hotfixes, Servicepacks Other worldwide support teams You might or might not know that Liferay's business is built on Enterprise Edition - and specifically on the support services that we offer here. This is what keeps the new versions coming. This episode is meant to give you some information about the procedures that happen when you (as a customer) file an issue for Liferay support. Compared to the actual internal workflow, this is simplified, but gives sufficient insight. If you want more details, please comment.
4 Dec 2014