Welcome to Radio Liferay, a peek into what is going on in Liferay from the people doing it themselves.
Radio Liferay Episode 60: 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 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)
- 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.
You'll find this episode - and make sure that you don't miss any of the future episodes - by subscribing to http://feeds.feedburner.com/RadioLiferay. You can also subscribe on itunes.: Just search for "Radio Liferay" or just "Liferay" in the podcast directory. Make sure to write a review for the podcast directory of your choice - or find everything about Radio Liferay on radioliferay.com.
Or just download the MP3 here:
The Learning Curve, Chapter 4, Well hidden documentation
Are you new to Liferay? Found Liferay and want to know what it can do for you? Or are you with Liferay and still remember the time when you were new and unexperienced? Where did you come from and what was the biggest problem you faced? Can you ever learn enough? And how do you keep up with the current trends and new features?
A platform as big as Liferay spans several technologies and areas of best practices that are beneficial to know of. Nobody can know everything - there's always a learning curve. At the beginning, it's quite steep. Some argue that it's flattening the more you know. Some argue that it gets steeper: The more you know, the more you know what you don't know.
I'd like to give you pointers to resources that are available to you, in order to learn about Liferay, resources that help you avoid steep detours, when there are flatter direct connections. This is meant to be (eventually) comprehensive but I'm sure that it will never be complete. It's just what I remember while I write this article and the follow ups (yes, there are more, already drafted)
Today's Target Audience: mostly Developers, but some generic pointers for everybody.
After last week's call to read the official documentation, here's the documentation that you may easily miss
Javadoc has not been Liferay's strength for a long time. The explanation for this is available in the end of Radio Liferay, Episode 21, but since then, a lot of Javadoc has been added to Liferay. It's available at docs.liferay.com, and growing. If you're wondering why some commonly used class is not documented there, you might also want to follow the master branch on github, as this gets all the latest and greatest javadoc (speaking of well hidden documentation). The API might not be 100% identical (this is the next version, after all) but as we add new features there, you'll find javadoc there first.
Did you ever extract Liferay's original portal.properties file? Or inspected it in the source code? This file has well over 10.000 lines in 6.2, and it's a wealth of information about Liferay. I do wholeheartly recommend to browse through it at least once. I personally have gotten a lot of ideas from this file about Liferay's extension points. There are some extension points that I only learned of because I've read that file. "Properties" you say, "what kind of reading enjoyment will that be?" Well: Look at it. Huge portions of that file are comments, describing the options you find, the preconditions as well as the features that you can configure here. Note: Some features are available only in portal.properties (or your overriding file portal-ext.properties) while others are available on the UI as well.
DTD and XSD
Have you developed plugins for Liferay and wondered about the possible configurations that you can add in the various xml files? Have you ever looked at the headers of those xml files? They do refer to a DTD or XSD file. Hands up if you know the peculiarities of DTD and XSD! ...
(I don't see any hands)
Well, try Liferay's definitions: Similar to portal.properties, you'll find a wealth of documentation right where you need it. I predict that you are able to make reasonable sense of most of Liferay's DTDs and XSDs, if only of the human readable comments. Your xml editor will help you make sense of the machine readable parts.
Care for some examples?
Or even more generic: Try http://docs.liferay.com/portal/6.2/. If you're on older versions, go further to the root directory (It's worth exploring that site)
You might know that Liferay hosts quite a lot of events around the world. Even though it's impossible to attend every single event, you should keep an eye on them and on the presentations that are available there. For one, they might spark your ideas, when you just look at the presentations. If you've been there, you might remember everything, when you read the slides again. And for some events there are even recorded presentations. E.g. here is DevCon 2013.
Which brings me to point to a presentation that never aired on Radio Liferay (despite being scheduled as such) because the pure audio recording didn't come out and the video had a bit too much room noise to extract the audio IMHO. I'll refer to it as "the hidden Radio Liferay Episode" from now on, here it is for your viewing pleasure. It's short, less than 18 minutes.
And if you're not yet on Liferay 6.2, you might be interested in the literal "Well Hidden Features" episode
Speaking of which: Devcon 2014 registration just opened, including the Call For Papers. You can be part of this year's event and add to this chapter. Events like this (depending on where you are: North American Symposium and various others around the world - there are rumors for more to come) really give you a lot of insider information and insight.
(more about Devcon in another upcoming blog post)
Even better hidden?
When I woke up this morning, I was thinking of a great resource - but forgot which one it was. Obviously it's quite well hidden. If it comes back, I'll make a note and add it to one of the next posts. Unfortunately, that's the nature of these well hidden items. If you have your own favorite hidden documentation: Please add it in the comments. Oh, and: There's another well hidden place that is so well hidden, that I'll better not yet speak about it. Keep your eyes open and subscribe to the blogs - you'll probably get it here first.
Also, let me sneak something in, which is clearly linked on this site, but not as documentation: If you rather learn hands-on, you might want to consider one of the certified Liferay Trainings - There's a course for almost any role that you can have in Liferay: Content Provider, Developer, System Administrator, Business Owner - you name it, we have it. Not only do you get a lot of structured knowledge, you'll also have the chance to get your questions answered by an experienced Trainer.
While Training is not documentation, it can definitely help to flatten the learning curve.
Stay tuned for Chapter 5: Community Resources (please let me know your favorite recommendations)