Assistance with Open Source adoption


Radio Liferay Episode 46: Thomas Schweiger on Coffee

Liferay - Tue, 12/16/2014 - 16:50

  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.

Follow @RadioLiferay and @olafk on twitter.

You'll find this episode - and make sure that you don't miss any of the future episodes - by subscribing to You can also subscribe on itunes.: Just search for "Radio Liferay" or just "Liferay" in the podcast directory. If you like this, make sure to write a review for the podcast directory of your choice - or leave your feedback on

Or just download the MP3 here:

Olaf Kock 2014-12-16T21:50:45Z
Categories: CMS, ECM

How to Stop Sales Teams from Asking the Most Annoying Question in the World

KnowledgTree - Tue, 12/16/2014 - 10:23
As B2B marketing budgets and buzzwords have increased over the years, and much has been made about significant gains in sales and marketing alignment, there remains a feeling in many sales organizations that marketing teams still aren’t all that helpful.

Sure, marketing might get an occasional pat on the back for generating a big batch of qualified leads, or for boosting brand awareness in the market. But when things get quiet and the pipeline gets thin, sales teams almost inevitably default to asking the same, old question:

“That’s great that marketing had a big month… but what have they done for us lately?”

Problem is, unlike development teams that produce tangible products and sales teams that yield hard quantitative outputs, marketing teams often lack a clear line of sight between how their ac-tivities impact revenue outcomes (i.e. closed deals). So, naturally, when growth slows or deal flow becomes sparse, it’s not uncommon for everyone in the organization — most notably, Sales — to look at Marketing and wonder what its value really is to the organization.

Here’s how to change that:

1. Align your work to company goals and measure your performance against them

Instead of creating inward-facing, qualitative marketing goals, set goals that are directly tied to the company’s key growth objectives (yes, that includes revenue). Doing this will help you focus your effort around the activities that drive sales, and allow you to prove the impact that your team is making on broader company objectives.

2. Plan your work, understand its purpose, and continuously improve

Every marketing team has an abundance of things they could be doing, but many are distractions. Make sure your team’s efforts are wholly aligned to the goals defined above, and set aside plenty of time each week, month, and quarter to actively engage sales in planning which content they need you to create and which personas you should be targeting. Over time, you should also monitor the effectiveness of specific content assets relative to specific conversion goals, and make adjustments as necessary.

3. Constantly communicate with the entire company

The bottom line is that the rest of your company won’t know what you do (or what to expect from you) unless you tell them. Take every opportunity to communicate your goals and activi-ties, and explain how they align with the company’s objectives. For instance, if your team is planning to publish a new case study or execute a new campaign, be proactive and explain to the team (sales in particular) why it will help them do their job.

The key takeaway here is that the more clarity you proactively provide, the less likely it is that sales will ask questions like, “what have you done for us lately?” Your relationship will be better, you’ll find it easier to create valuable assets for sales, and you’ll be much closer to achieving true sales and marketing alignment.

The post How to Stop Sales Teams from Asking the Most Annoying Question in the World appeared first on KnowledgeTree.

Categories: ECM

QuickPlays Support Sales Conversations with Best Practice Messages

KnowledgTree - Mon, 12/15/2014 - 10:06
Today’s B2B buyers don’t want sales people that simply push products. They want experts that help them to navigate the buying process. But according to Forrester, 61% of buyers felt that the sales people they work with add no value.

When sales people provide expert guidance to a buyer they don’t just add value to customers. They also add to your top-line. Studies by Aberdeen Group show that sales teams that adopt best practices, including best practice sales messaging, are twice as likely to hit quota as their peers.

What kind of content should sales people use and how do you get it to them efficiently? Let’s take a look and see how KnowledgeTree’s new QuickPlays technology can help.

Quick Access to Best Practice Messaging Boosts Effectiveness

Sales people that engage prospects and customers with relevant information – on the phone, via email, or in person – are more likely to advance prospects. But if your team is looking through notes, disconnected learning systems, or asking peers for best practices, they are wasting valuable time. Up to 20% of their core selling time in fact.

Look to give your sales team quick access to proven messaging that supports sales conversations. That means pushing the most effective messaging to your sales teams when they need it most.

In previous posts we’ve looked at how critical sales enablement content is to supporting this execution. It’s essential to give sales teams access to killer case studies and proven email templates. Yet, there’s more to being valuable in a sales process than sending PDFs or videos. There’s content that supports a sales conversation.

What Sales Enablement Materials Support Conversations?

As a sales or sales enablement leader, you know what messages support different sales teams. Look to provide relevant guidance to different members of your team depending on where they are in the sales process:

  • Sales Tips: Sometimes best practices are simple. They could be a helpful hint based on the current sales situation that can unstick a lead or advance an opportunity. Give your sales team relevant, proven tactics to help maneuver with a prospect.
  • Call Scripts: Especially important for outbound reps and lead qualification teams. Call scripts can provide a framework for reps to have a solid discussion with a prospect.
  • Product Information: As your product portfolio expands it becomes more difficult for reps to keep product benefits straight. Provide the key value propositions for your products so reps can readily weave them into discussions.
  • Competitive Insight: When a prospect is looking at an alternate product do your reps know what to say? Give them summaries of what to communicate to keep your product well-positioned.
  • Training Material: Three-quarters of information is forgotten within 90 days of a training session. Help sales find and use the powerful training content you’ve created so they can speak knowledgeably about your products.
Get Sales Process Guidance to Sales Teams

KnowledgeTree has now extended its Sales Enablement platform to make it easy to get this kind of content to your sales team. Our QuickPlays function matches tips, scripts, and other material that supports sales conversations with sales situations. So sales people can have valuable discussions with their prospects.

QuickPlays Deliver Sales Guidance FastSay KnowledgeTree helps your team sell more. We do it by boosting sales productivity 30% and beyond. KnowledgeTree helps your sales team to message effectively in any sales situation. We surface sales guidance right to your sales team, when they need it most. Your prospects don’t want sales people that simply push products. But Forrester found that 61% of buyers felt that the sales people they work with add no value. Instead, if you help your sales team with best practice guidance that helps buyers, they’re twice as likely to hit their quota, according to analysts from Aberdeen. Your sales team is most effective when they can guide a prospect through the buying process. But if your team can’t find or must recreate that guidance, they’re wasting up to 20% of their core selling time. KnowledgeTree’s Sales Enablement platform guides the selling process. Our QuickPlays function matches tips, scripts, videos, and other material that supports any sales situation. So your sales team has instant access to guidance that advances prospects. Let’s see how QuickPlays supports a guided selling approach for your team. KnowledgeTree surfaces the most relevant content and messaging to sales teams. It matches content -- of any type -- with sales records, like Leads or Opportunities. I’ll take the role of a Sales Development Rep. I’m looking to talk with a lead that I’ve been working. I’ll click on that lead. Here I see the lead I’m targeting. But I want to know what topics of conversation make the most sense to use with this lead. That is, what are the best practice messages that will resonate with my prospect? KnowledgeTree matches a range of content to this lead. So, as a rep, I know which case studies, presentations, and other material to share with my prospect. And I also need tips, guidance, scripts, and other plays that can help me to advance this lead. QuickPlays pushes that guidance directly to my sales team. There’s no more hunting for materials. It appears right within each Salesforce You can can add any kind of material to QuickPlays. It could be text-based content. That let’s me speak to the most targeted value propositions for my target, in this case a Sales leader. For this sales situation, I might need access to training materials so I can position the product effectively. QuickPlays boosts usage of your existing training material by pushing links to sales people when they need it most -- in the heat of a sales process. You can add content of any type, including embedded videos. That means your sales team doesn’t need to navigate elsewhere to get content. Rich, relevant guidance that matches my sales situation is right at hand. Adding new QuickPlays is easy. You can create new QuickPlays with rich text editing, fast. You can add videos, images, and links to further enrich the experience quickly. And as your sales process changes, maintenance is easy. You can assign different triggers to their QuickPlays, so the right play is pushed to sales teams when they need it. Plus, KnowledgeTree spots gaps in your guided selling approach. So you know which selling situations are missing QuickPlays. Like all of our products, KnowledgeTree believes in ‘fast ROI’. That means that we’re not a cumbersome playbook technology. There’s no long set-up process for managers. And there’s no ‘straightjacket’ for your sales teams. Instead, we’re all about helping you get helpful best practices into sales people’s hands fast. Want to see the product in more detail? Simply contact us for more information and to see a live demonstration of QuickPlays in action.

wistiaEmbed = Wistia.embed("z8e7qdh0pz");

Like all of our products, KnowledgeTree believes in ‘fast ROI’. That means that we’re not a cumbersome playbook technology. There’s no long set-up process for managers. And there’s no ‘straightjacket’ for sales teams. Instead, we’re all about helping sales and sales enablement leaders to get helpful materials into sales people’s hands fast.

QuickPlays surfaces relevant content right in leads, opportunities, and other records. So, as your sales people are planning their calls or responding to prospects, valuable sales plays or guidance are surfaced to them.

Sales and sales enablement leaders can match QuickPlays with different selling situations. So the right script, training material, or other content is presented to the sales person. That keeps your sales team having productive conversations with prospects. And it slashes time wasted looking for or re-creating messaging you’ve already built.

Want to see the product in more detail? Click here and we’ll get a demonstration for you today.

The post QuickPlays Support Sales Conversations with Best Practice Messages appeared first on KnowledgeTree.

Categories: ECM

URL shortener for Liferay

Liferay - Sun, 12/14/2014 - 09:43

At this year's Liferay DevCon, Suraj Bihari had an interesting session about short URLs. As I was about to do something like this anyway, I decided to make it public from the beginning.


And now everyone can have a look at the result: Ancud ShortURL Portlet


Technically, it's a really simple Liferay MVC Service Builder portlet built with Ant and extended by a Servlet Filter Hook, which will do the redirection. It has some permission settings to define who may add and manage links and a basic front end, that's it.

When creating new URLs, the portlet will generate an identifier made of 10 alphanumeric characters. You can use this or override it by your own custom identifier. Then, just add the URL to be redirected to and you're ready to share! Whenever someone tries to invoke your portal with the identifier, the Servlet Filter will redirect to the destination URL. So you can build your own


The whole project is free of charge and totally open source, so check out how easy it works. :)

David Kubitza 2014-12-14T14:43:39Z
Categories: CMS, ECM

Radio Liferay Episode 45: Bryan Ho on Design and Ray

Liferay - Thu, 12/11/2014 - 19:49

  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

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:

Follow @RadioLiferay, @thebryanho and @olafk on twitter.

You'll find this episode - and make sure that you don't miss any of the future episodes - by subscribing to You can also subscribe on itunes.: Just search for "Radio Liferay" or just "Liferay" in the podcast directory. If you like this, make sure to write a review for the podcast directory of your choice - or leave your feedback on

Or just download the MP3 here:

Olaf Kock 2014-12-12T00:49:48Z
Categories: CMS, ECM

Radio Liferay Episode 44: Stian Sigvartsen on Social Apps Proxy

Liferay - Thu, 12/11/2014 - 18:26

  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.

Follow @RadioLiferay, and @olafk on twitter.

You'll find this episode - and make sure that you don't miss any of the future episodes - by subscribing to You can also subscribe on itunes.: Just search for "Radio Liferay" or just "Liferay" in the podcast directory. If you like this, make sure to write a review for the podcast directory of your choice - or leave your feedback on

Or just download the MP3 here:

Olaf Kock 2014-12-11T23:26:50Z
Categories: CMS, ECM

B2B Marketers: Here’s What You Can Do to Improve Sales Execution in 2015

KnowledgTree - Mon, 12/08/2014 - 12:14
Sales enablement has quickly become a big buzzword in the B2B sales and marketing world, but how many companies are actually doing it? And, more importantly, how many are doing it effectively?

The good news is that several recent studies indicate that sales enablement investment and adoption is rapidly on the rise — with one study revealing that the average B2B sales enablement budget doubled between 2012 and 2014. The bad news: That ramp-up in investment has also created some significant challenges. Namely, many sales reps now feel overwhelmed with “sales enablement” content that they aren’t really sure is helping improve sales execution.

That needs to change in 2015, and there are a few easy steps B2B marketers can take to do that:

1. Organize your priorities

Ultimately, sales and marketing alignment (and then enablement) starts with a revenue goal. As such, both sales and marketing must focus on the common goal of driving revenue, and then build enablement processes and strategies around it. To do this, everyone (sales reps, BDRs, marketers, demand gen, etc.) must understand the company’s key targets, and establish very clear objectives that explicitly achieve them.

2. Dig deeper Get the eBook

Once you understand your targets better, you can dig deeper by breaking down key prospects by persona and segment. Are you targeting executives? Management? Operations? Each of those segments must be planned and approached differently to ensure effectiveness. What are the offers / messages that are going to be offered to each segment? Only after understanding your segmented targets (and your strategy to pursue those targets) can you determine the mutual support needed from the sales and marketing teams.

3. Utilize sales enablement to create preference

One of marketing’s jobs is to create awareness and generate interest. After all, if your market isn’t aware of your products or solutions, then sales is going to find it difficult to sell anything. But you knew that already. The key point here — and the thing to focus on in 2015 — is that marketing (and sales enablement specifically) doesn’t end with awareness. For a sales team to be most productive, sales enablement must also help them create preference and drive customer action. This is where sales and marketing must work together to create valued differentiation and content that helps customers make a decision.

Of course, those are just a few steps to consider.

In order to truly leverage sales enablement and optimize sales execution, this concept of enablement must become core to your organizational philosophy. When that happens, sales and marketing will achieve true harmony and your bottom line will benefit significantly.

The post B2B Marketers: Here’s What You Can Do to Improve Sales Execution in 2015 appeared first on KnowledgeTree.

Categories: ECM

Radio Liferay Episode 43: Brett Swaim on Application Performance Monitoring

Liferay - Thu, 12/04/2014 - 06:27

  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.

Follow @RadioLiferay, @Brett_Swaim and @olafk on twitter.

You'll find this episode - and make sure that you don't miss any of the future episodes - by subscribing to You can also subscribe on itunes.: Just search for "Radio Liferay" or just "Liferay" in the podcast directory. If you like this, make sure to write a review for the podcast directory of your choice - or leave your feedback on

Or just download the MP3 here:

Olaf Kock 2014-12-04T11:27:11Z
Categories: CMS, ECM

Radio Liferay Episode 42: Zsigmond Rab on Enterprise Support

Liferay - Thu, 12/04/2014 - 04:45

  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.

Follow @RadioLiferay, @zsigmond_rab and @olafk on twitter. You can also friend (or unfriend) Zsigmond ;)

You'll find this episode - and make sure that you don't miss any of the future episodes - by subscribing to You can also subscribe on itunes.: Just search for "Radio Liferay" or just "Liferay" in the podcast directory. If you like this, make sure to write a review for the podcast directory of your choice - or leave your feedback on

Or just download the MP3 here:

Olaf Kock 2014-12-04T09:45:35Z
Categories: CMS, ECM

Portlet Introduction / Portlet Technology Introduction

Liferay - Thu, 12/04/2014 - 03:56
Portlet is small fragment of dynamic content in the web page. And this dynamic content may be text,HTML,xml or some other MIME format. Portlet technology implemented by JSR 168 and JSR 286 standards.   Generally in web application we are very familiar with servlet technology and portlet technology is similar to servlet technology but it consist its own features. servlet technology based on client and server architecture in the web world here the client is browser.   Portlets life cycle is managed by portlet containers these are in application servers. portlet life cycle consist different stages like instantiation,serving and destroying. Portlet containers are similar to servlet containers to manage entire life cycle of portlet.
Generally in the portlet technology each page consist one or more portlets and each portlet render dynamic content to make complete web page.   In technical understand portlet technology implemented in Java in the package javax.portlet.   This portlet API consist many interfaces and implementation classes to developed portlet based application in the web world.   How does portlets are differed from servlet   Generally in servlet web application each servlet will be referred by URL to invoke or access and each web page content will be served by one servlet but in portlets each page will be served by different portlet and each portlet will have its own lifecycle and own URL pattern to execute.   Servlet will generate dynamic content which send to browser and it’s in single web page but portlet will server fragment of dynamic content and portal page is responsible to aggregate content from different portlet to generate whole page.   There are many people implemented the portlet technology.   Liferay JetSpeed Pluto uPortal WebLogic Websphere Entando   Understanding the Portlet Technology  

Basically we need to following things to run portlet based application

  JRE Portlet Container+Application Server Portlets
  Portlet Container   Portlet containers is responsible for run the portlet and it provides the required run time environment. Portlet containers manage the life cycle of portlets. When ever portal server send the request then portlet containers receive the requests and its invoke the respective portlet to process request means its instantiated the portlet and execute appropriate life cycle methods to prepare response. Portlet container send portlet response back to portal server like that portal server receive responses of different portlets and aggregate all response to complete client request.   Application Server   Application servers are responsible to process client request and send response back to client. Application server provided different services to manage and run web applications. The services like JMS, JNDI, JTS, JAAS, JDO,Connection Pooling and all these services required by the applications.   Application servers integrated with different containers to provide different run time environments like servlet containers to provides run time environment to execute servlets, portlet containers is to provides the run time environment to execute portlet, EJB containers to provided environment to execute Enterprise Java Beans applications.   Apart from this application severs have more capabilities to provide different services to run different technology based applications.   Portlets   As we already know each portlet has it own life cycle and which will be managed by portlet container. According to the JSR 168 standard portlet have three life cycle stages.   Basic portlet consist following life cycle stages   Portlet life cycle     init:   Initialize the portlet and put the portlet into service   Handle requests:   Process different kinds of action- and render-requests   Destroy:   Put portlet out of service   Theoretically we have 3 life cycle stages in portlets and these will be implemented via portlet interface. Portlet interface is implemented in javax.portlet package by Sun Microsystems.   Every portlet that should implements the portlet interface or it should extend the class that already implemented the portlet interface.   As we know portlet have three life cycle staged and the following are interface methods which handle portlet life cycle in portlet implementation.   init(PortletConfig config):   This method is initialize the portlet and this will be called only once when portlet is instantiated, we can say when we drag and drop portlet in page.   If any necessary functionality required at initial time of portlet we will use this method and write code here. It is similar to servlet init method. This method can be used to create expensive objects/resources used by the portlet.   processAction(ActionRequest request, ActionResponse response):   When user is requested to server then portlet will execute process action method. This method will notify the portlet that used has triggered an action this portlet. , a portlet can issue a redirect, change its portlet mode or window state, modify its persistent state, or set render parameters.   render(RenderRequest request, RenderResponse response):   Render method will generate content and that will be send to web client. In the portal page we have many portlet we have triggered action in one portlet then all portlet will be executed render method to aggregate dynamic content. The portlet can produce markup that may depend on the portlet mode or window state, render parameters, request attributes, persistent state, session data, or backend data.   destroy ():   Indicate to the portlet the life cycle's end. This method allows the portlet to free up resources and update any persistent data that belongs to this portlet.   Note:   In the portlet life cycle for each action or request the final method is render method. Render method will be called for every time to aggregate content or produce content.   Generally portlet have different URL to call these methods like Action URL and Render URL.    Action URL will execute portlet porcessAction(----) method and then it will be execute the render(----) method.   Render URL will execute the portlet render (---) method only.    Portlet Lyfecycle Execution Process        Portlet Characteristics   Portlet have addition Characteristics when we compare with servlet.   Portlet Widow States:   Portlet has different window states. Window state specifies how portlet will look in the page .Window state decides how much space will be accommodated in portlet page.   The following are important window states as for JSR 168 Standards.   Maximized:   When portlet state is decided as Maximized then entire page only one portlet is visible. Generally we will use this state after perform some action then we will make widow state is Maximized.   Normal:   Specified that is portlet may share the page with other portlets. This is the default window state.   Minimized:   Portlet should only render minimal output or no output at all.   Portlet Modes:   Portlet mode specifies that the function will be performed by portlet. Generally following are the portlet modes that each portlet should support as for JSR 168&286 standards.   View:   This view mode is when portlet is access or render then portlet is in view mode and this is default mode for portlet.   Edit:   Edit mode will be used to edit some portlet functionality and generally we wil use this mode for administrator to modify or edit something.   Help:   This will used to provide content to end user about portlet i.e how to use and access portlet like help information.      Persistent storage for preferences:   Portlets provide a Portlet Preferences object for storing user preferences. These preferences are stored in a persistent data store, so they will be available across server restarts. As a developer, you don't have to worry about the actual implementation of how it is stored.   Portlet Sessions:   Like Http Session in the portlet technology also have different scopes of session to share data among the portlet or with in the portlet. Portlet also can use Http Session.   Portlet Session by default scope is portlet level what ever the data stored in Portlet Session can be available with in portlet. If we want share data among the portlets then we have to use application level scope so that data can be shares across the portlets.   Portlet technology have concept called publics render parameters to exchange data among portlets this is we can all it as Inter Portlet Communication.   We can use portlet sessions or public render parameters to establish communication among portlets which are in same page.   Portal context      Portal context provides information such as the portal vendor, the portal version, and specific portal properties. The information allows the portlet to use specific vendor extensions when being called by a portal that supports these extensions and, when being called by other portals, to return to some simpler default behavior.   Properties      Properties communicate vendor-specific settings between the portlet and portlet container, and between the portlet and the portal.      These properties show up in several places in JSR 168. The portlet can read String properties with getProperty() from:      ActionRequest, to receive properties that are action-request specific   RenderRequest, to receive properties that are render-request specific   PortalContext, to receive properties that are portal specific and do not change for different requests      The portlet can write String properties with setProperty() to:      ActionResponse, to set properties in response to an action request   RenderResponse, to set properties in response to a render request   Packaging and deployment   Portlet are packages as web archive file(WAR) this archive file consist of portlet deployment descriptors, resources and other java libraries which are required by portlets.   In the portlet application we have two deployment descriptors that is web.xml and portlet.xml   web.xml specifies the things related to web application deployment properties   portlet.xml specifies the portlet application related deployment properties and it always describes only one specific portlet application.   portlet application deployment is a two-step deployment that deploys the Web application into the application server and the portlets into the portal server.   Author Meera Prince Liferay Top Contributor Award Winner(2013,2014) Meera Prince 2014-12-04T08:56:05Z
Categories: CMS, ECM

Four Solid Sales Enablement Metrics to Use

KnowledgTree - Wed, 12/03/2014 - 09:46
Sales Enablement has caught a lot of attention this year as a way to drive revenue. As with any initiative, it’s critical that you can measure results so you can adjust budget and invest in winning actions. You can’t improve what you can’t quantify.


Yet only 40% of sales enablement programs are measured, according to a survey by Vantage Point. Without a rigorous focus on metrics budgets can get reallocated and credibility of the initiative can be disrupted. It’s especially true for sales enablement, since sales people themselves are so tightly connected to a defined number.

So, what should you measure? I’ve seen some great thought put into this. Items like number of training sessions and training hours per rep help you understand cadence and inputs. But I propose that you tie your success as closely as possible to the teams you’re looking to enable. Look to use ‘hard’ metrics that are directly correlated with how much your organization actually sells.

By tying your achievement to real-world sales results you redirect focus to just how important the sales enablement function is. You drive renewed credibility, and you get a powerful force to argue for budget for sales enablement tools and programs.

Looking back at the KnowledgeTree definition of sales enablement, it’s a process that:

Creates and shares best practices that help client-facing teams to sell more.

With that definition, the net result of your sales enablement programs is to increase sales. If that’s the case, you should look at metrics that highlight the impact your sales enablement initiatives had. Here are four candidates as ‘solid’ sales enablement metrics:

Metric 1: Quota Attainment

Each sales person is measured by how well they hit their quota. And in any team, you’ll have the stars that exceed that number, those that are close, and those that lag. Part of sales enablement aims to bring the B and C players up to the same level of effectiveness as the rest of the team. If you can affect the number of reps that hit quota you can have a massive impact on your top-line (and buy-in across the sales organization).

But is this metric really influenced by Sales Enablement? Yes. According to Aberdeen Research, companies that adopted best practices across their sales team (i.e. sales enablement) had double the quota attainment of their peers.

Each sales enablement program that reallocates rep time toward core selling; each tool that cuts wasted effort; and each best practice that helps make sales reps more effective nets more quota attainment across the team.

Metric 2: Time to Quota

According to Sales Performance International 84% of what was learned in sales training is lost within 90 days.

One of the most common roles for sales enablement is to onboard sales people. Measuring the number of colleagues that have gone through training programs is not enough. Nor is measuring the number of hours allocated to training for your new team members. After all, the retention rate for sales training leaves much to be desired. According to Sales Performance International 84% of what was learned in sales training is lost within 90 days.

If simply going through the training process isn’t enough, what is an effective measure? Look to your goal with onboarding. You want your new reps to not be thought of as new anymore. You want them to be as effective as the rest of your team fast.

Effective sales enablement programs will focus on getting these teams using best practice as quickly as possible and making them effective team members. So, measure how quickly new reps are matching quota attainment for the rest of your team. This metric is particularly important for organizations that are scaling fast and need new recruits to be quickly productive.

Metric 3: Conversion Rates in the Funnel

Your sales enablement programs are influencing conversion rates. By how much is up to you to measure.

You likely have an established demand waterfall that your team uses to measure and compare conversion rates. A small variance in the conversion rate can have a massive impact on your funnel dynamics. Think moving from 9% to 10% conversion of Marketing Accepted to Sales Accepted Leads (SALs). That’s really more than a 10% bump in the number of SALs.

Providing sales enablement tooling that allows sales prospectors to hop on hot leads quickly. Using analytics to identify which leads will convert better. Providing best practice scripting and training that boosts sales effectiveness on a call. Each of these items directly connects to actual sales rep productivity.

Of course there are other factors, lead quality not least of which. But all important business metrics have multiple inputs. Don’t let that get in your way of making the linkage from sales enablement to a critical metric. Your sales enablement programs are influencing conversion rates. By how much is up to you to measure.

Metric 4: Time Spent on Core Selling

Your sales process is a machine that produces revenue. But as Nancy Nardin from Smart Selling Tools points out, the sales process is filled with ‘muda’, or waste. That’s time spent creating new presentations, looking for case studies, choosing who to prospect to, updating records, and other tasks that aren’t core selling activities.

“A salesperson has, typically, 50 hours in the week in which to work. It’s the job of both marketing and sales to ensure that those 50 hours are spent as productively as possible,” according to SiriusDecisions’ Jim Ninivaggi.

Any hour you can put back into these core selling activities allows your revenue machine to operate. And the fewer the interruptions, the less time your team wastes on context switching that can kill productivity.

Get the eBook

Use time studies to check on rep time allocation. Start with teams where measurement is easier – SDRs and Inside Sales – and then repeat each quarter. Every hour you recover will have a massive impact.

By adopting solid metrics for your sales enablement efforts you can better tie your results to the results you’re trying to influence. Next step: download this free eBook on how to plan your 2015 Sales Enablement initiative.

The post Four Solid Sales Enablement Metrics to Use appeared first on KnowledgeTree.

Categories: ECM

KnowledgeTree Expands Executive Team to Capitalize on 2014 Success

KnowledgTree - Tue, 12/02/2014 - 10:05
KnowledgeTree, a provider of software that helps enterprises sell more, has expanded its leadership team to build on rising momentum. Adoption by innovative, high-growth sales organizations has driven outstanding quarter-over-quarter results in 2014. KnowledgeTree has added three key executives to take advantage of this growth and continue to scale.

Chris Atkinson joins KnowledgeTree as its new CEO. His recruitment enables Daniel Chalef, as Chief Product Officer, to drive product vision and execution in the sales enablement market. Mr. Atkinson was previously the Executive Vice President and General Manager for StrikeIron, which was acquired by Informatica in June 2014. During his tenure, StrikeIron grew revenue by 440% from 2011 through mid-2014 and increased the team from 18 to over 60 full-time employees.

“I’ve admired the team at KnowledgeTree over the past few years for delivering a proven solution to a core problem most enterprises face,” said Atkinson. “Sales efficiency and effectiveness are markedly improved through data science driven by this platform.”

“KnowledgeTree has had an incredible year, validating the need for Sales and Marketing to better leverage enablement technology,” Atkinson added. ”The addition of marquee customers like Xactly, RingCentral, and Zuora testifies to that. Our customers quickly see large, measurable sales productivity gains, plus enthusiastic expansion across their organizations. Demonstrated ROI has translated into increased traction with Global 2000 companies. With these results, plus our position and opportunity in the enormous sales enablement space, I’m thrilled to join the KnowledgeTree team.”

KnowledgeTree helps sales organizations to boost productivity – by up to 30%. Its sales enablement software pushes the right content and messages to sales people when they need it most. It addresses a challenge particularly acute as sales teams scale.

KnowledgeTree has also recruited Alex Osadzinski as Executive Chairman. Mr. Osadzinski has built multiple start-ups and led product, sales, and marketing organizations for AT&T and Sun Microsystems. Following the acquisition of two startups and IPOs for another three, Alex spent seven years at a top-tier Silicon Valley venture firm, before returning to an operational executive role at a large public Swiss company.

To further accelerate growth KnowledgeTree hired John Finocchiaro as Head of Sales. Mr. Finocchiaro has extensive enterprise sales leadership experience and has held senior go-to-market and management roles with companies including TheOfferMachine and LocalSense.

About KnowledgeTree

KnowledgeTree’s sales enablement platform helps enterprises sell more. Our software enables large, fast-growing sales teams boost productivity up to 30%. Companies like RingCentral, Xactly, and Zuora depend on KnowledgeTree to push best-practice content and messaging across sales organizations. To see KnowledgeTree in action, visit

The post KnowledgeTree Expands Executive Team to Capitalize on 2014 Success appeared first on KnowledgeTree.

Categories: ECM

Adding Geolocation Support to Liferay 7.0

Liferay - Fri, 11/28/2014 - 07:32

Dear community!


Based on market research and community feedback, we’ve seen that more and more companies are using location-based information to make important decisions. Also usage of geolocation tools as a way to show map-based information to the end user is growing.


It is increasingly important to know where the information is being generated, showing maps of your entities, understanding where your users are filling in your forms from, or where they are uploading documents from. Showing maps with your offices’ location, training courses, etc is the norm on many IT projects nowadays.


This is why one of the Epics we are working for Liferay 7.0 is adding the geolocation layer to (y)our platform. The goal of this article is to explain the use cases we are covering with our current implementation in order to get your feedback, thoughts and ideas NOW we are in development phase (as opposed to after the official release, when it’ll be too late to quickly iterate).


#1: Geolocate documents, web contents and ddl records


The first feature the engineering team has been working on is adding the geolocation field to DDMStructures. This means that now you can add an additional field to your web content structures, document types (therefore images) and DDL records. Every time a user creates one of those assets, he’ll be able to define “where” it is.



The geolocation system can work in two different ways: first by letting the system know where you are using HTML5 (specially useful on mobile devices) or second by the user giving the system directions to a concrete place



[Note that we are currently implementing DDMStructure based custom fields, so when that is ready, this geolocation field will be available not only to assets but to all entities in the portal!]


#2: Show maps of assets


After the content is geolocalized by your users, the next step is to show that content on a map. For that, we’ve added map support to Liferay. We have created a reusable taglib that you can use in your portlets, ADTs and templates. Out of the box we have an ADT called “Maps” that can be used on your Asset Publisher: once you choose it, a map view will be loaded and you’ll see your geolocalized assets on it. Obviously, if you define filters in that Asset Publisher, they’ll be respected. Cool, isn’t it? ;)





#3: Support for different map providers


We’ve also thought on those who want to have the power to decide which map provider to use. We’ve made it configurable, and out of the box we offer Google Maps and Open Street Maps support, but of course, it is extensible, so you can create your own integration for additional map providers.






By this time you already know that we LOVE beta testers and feedback and that is why we share all this info with you. Before we continue implementing more user stories related to geolocation, we wanted to ask you: what do you think about these features? Do you think they’ll be useful for your projects? Are you thinking in a user case we are not covering? How could we improve it to better suit your needs?


Thanks for your help and passion!

Juan Fernández

Juan Fernández 2014-11-28T12:32:24Z
Categories: CMS, ECM

Introducing the Liferay SDK for Windows

Liferay - Wed, 11/26/2014 - 20:19

Greetings to all! 

As a proud member of this community, I always wanted to show my appreciation towards Liferay, its philosophy and the great people behind it. And that's why I spent the last few weeks building something to share with the whole community, in the hope that it will be useful in your projects and with the ultimate goal to enrich the Liferay ecosystem. So, without further ado, let me introduce...

Liferay SDK for Windows

The Liferay SDK for Windows is a new block in the Liferay Mobile SDK project. It consists of a Portable Class Library (PCL) for the .NET platform which enables your apps to easily consume the JSON web services exposed by Liferay and your plugins. It is written in C# and to date it targets the following platforms:

  • .NET Framework 4.5.1
  • Windows 8.1
  • Windows Phone 8.1

Anyway, it should be relatively easy to extend support for older platforms, so let me know if you're interested!

The Liferay SDK for Windows is an accurate port of the official Android and iOS SDKs and therefore it supports the same set of features, such as batch and asynchronous requests, non-primitive and binary arguments, and so on. But a simple example is worth a thousand words:

using Liferay.SDK; using Liferay.SDK.Service.V62.BlogsEntry; ---- var session = new Session(new Uri("http://localhost:8080"), "", "test"); var service = new BlogsEntryService(session); var entries = await service.GetGroupEntriesAsync(10184, 0, -1, -1); // Async call! // entries is a IEnumerable<dynamic> collection foreach (var entry in entries) { Console.WriteLine(entry.title); // Duck typing! }

The SDK library is generated by a template-based builder written in Java which integrates with the official Liferay Mobile SDK (thanks to Bruno for his help!) and can be used to generate the service classes for your custom plugins.

So now, where can you find it?

The Liferay SDK for Windows is available on NuGet:

Install-Package Liferay.SDK

While the source code of the SDK and the Java builder is available on GitHub!

I hope this little project will be useful, and let me know what you think, if you find any bugs, etc. Any feedback is more than welcome! 

Andrea Di Giorgi 2014-11-27T01:19:18Z
Categories: CMS, ECM

Liferay IDE 2.2.1 Release

Liferay - Wed, 11/26/2014 - 02:44

Just a quite notice that we have pushed a new release of Liferay IDE version 2.2.1 that just pushes a few fixes for the latest major release including a nasty memory, GC bug here that would affect anyone with portal-source open in their workspace.  Also this release prepares us for the upcoming Liferay Developer Studio 2.2 release which will be available on December 1st.

Also now Eclipse Luna SR1 (4.4.1) is out we need to let everyone know about a bug that slipped into that release that affects Liferay IDE 2.2 users that use IvyDE.  See details here:

TL;DR Install/Update below (link leads to protected page, but it works in Eclipse)

Full downloads can be found here.

For Ecipse 4.4.1 users, install the E4 RCP patch here:

More details found here.

Thanks all.

Gregory Amerson 2014-11-26T07:44:16Z
Categories: CMS, ECM

New OAuth Information Available on Liferay Developer Network

Liferay - Tue, 11/25/2014 - 16:26
You may have noticed that Liferay's new OAuth Provider application was released on Marketplace last week. This utility authorizes third-party applications to interact with a user’s resources. OAuth is a handshake mechanism that redirects Liferay users to a service provider, where they can tell the service provider to allow a plugin limited access to their Liferay accounts. This keeps the plugin from storing any of the user's credentials, avoiding security risks.     If you're interested in a Liferay Bodyguard (OAuth) and want to learn more about how it works, visit the Liferay Developer Network's user article on OAuth. If you'd like to implement OAuth yourself, visit the developer tutorial.   Special thanks to Igor Beslic for his helpful advice and insight. Also, thanks to Rich Sezov and Jim Hinkey for their guidance. Cody Hoag 2014-11-25T21:26:36Z
Categories: CMS, ECM

New Maven Tutorials on Liferay Developer Network

Liferay - Fri, 11/21/2014 - 15:38

I'm pleased to announce that there are two new tutorials on Liferay's Developer Network (LDN) for helping you with your Liferay Maven projects in Liferay IDE. Maven is a great build tool, but it can sometimes be difficult to manage. Fret not! Features recently added to Liferay IDE help manage your Liferay Maven projects.



The new tutorial Setting Up Liferay Maven Facets in Existing Liferay Maven Plugin Projects shows you how to add the required Liferay Maven facets to projects that you created outside of Liferay IDE, or in earlier versions of Liferay IDE. It also includes an explanation of what the Liferay Maven facets are and why they're required to make your project a first-class citizen in Liferay IDE. The second new tutorial, Adding Properties to a Maven Project in Liferay IDE, shows you how to use Liferay IDE's Quick Fix tool to add the Liferay properties required by Liferay Maven projects. If there are any additional details that you'd like to see in these tutorials, or in any of the other Maven tutorials on LDN, please let us know!

Special thanks goes out to Ashley Yuan, a member of the Liferay IDE team, for contributing the content for these tutorials. Thanks also goes out to Jim Hinkey of the Knowledge Management team for his guidance.               

Nicholas Gaskill 2014-11-21T20:38:08Z
Categories: CMS, ECM

Liferay Requires Name Spaced Parameters

Liferay - Thu, 11/20/2014 - 08:26
When we work with liferay 6.2 portlet development some time we may get null or empty values when we access request parameters or form input values in the portlet action class.   The reason is from Liferay 6.2 Portlet Action class only consider the request parameters which should append with portlet name space value. This is default behavior of Liferay 6.2 Portlet Action Class.   Example:   ParamUtil.getString(uploadPortletRequest, "paramName") ===> empty value actionRequest.getParameter("paramName") ===> null   Same behavior you can see for renderRequst, resourceRequest objects too while accessing request parameters or form inputs in the portlet action class respective methods.   What is Portlet Name Space?   Portlet Name Space will give unique name to the elements in the page and these elements are associated to respective portlet. This will avoid name conflicts in the page. We may use many portlets within one page and there may be chance to get name collision among elements in the page. portlet name space will avoid those name conflicts in the page.   Each portlet have its own portlet name space value so that we need to append these portlet name space value to each element in the portlet like HTML tag names or ids and we can use this for request parameters.   How can i get Portlet Namespace Value?   We can use following two ways  
  1. Using <portlet:namespace/> Tag.
  2. Using renderResponse Object
    Using <portlet:namespace/> Tag.   We can use <portlet:namespace/> Tag so that we can append portlet name space value for element names,ids and request parameters.   Note : we need to import respective tag library in the jsp page to use above tag.   <%@ taglib uri="" prefix="portlet" %>   Example Code Snippets:   <input type="text" name="<portlet:namespace/>employeeName" id="<portlet:namespace/>employeeName"/>   <div id="<portlet:namespace/>testDiv">this is div</div>   Using renderResponse Object   We can also use renderResponse object to get portet Name space value. renderResponse is liferay implicit object and  these Objects will be available in JSP page.
We need to use following tag to get portlet implicit objects and it will be available to JSP page.   <%@ taglib uri="" prefix="portlet" %> <portlet:defineObjects />   Example Code Snippets:   <input type="text" name="<%=renderResponse.getNamespace()%>employeeName" id="<%=renderResponse.getNamespace()%>employeeName"/>   <div id="<%=renderResponse.getNamespace()%>testDiv">this is div</div>     To avoid name conflicts among portlets element names and ids its recommended portlet name space for each element.     Liferay Requires Namespaced Parameters   Liferay 6.2 we have to append portlet Name space for every name of input element i.e. form input elements or request parameters names otherwise portlet action class ignore the parameters which does not have portlet name space to names. Due to this we will get NULL/Empty values in the portlet action class when we get parameters values from request objects.   Solutions   We must Use Portlet Name Space Value for Every form Inputs/Request parameters   Use <requires-namespaced-parameters> tag value “false” in liferay-portlet.xml     We must Use Portlet Name Space Value for Every form Inputs/Request parameters   When use forms in development we must use portlet name space for each form inputs. We need append portlet name space value to form input name attribute.   Example Code Snippets:   <input type="text" name="<portlet:namespace/>employeeName" id="<portlet:namespace/>employeeName"/>   OR   <input type="text" name="<%=renderResponse.getNamespace()%>employeeName" id="<%=renderResponse.getNamespace()%>employeeName"/>   OR   <aui:input name="employeeName" id="employeeName" label="Emplyee Name"/>   Note:   When we use aui form tags then portlet name space will be appended automatically and we need not required to append explicitly.   Use Request Parameters in Ajax   When we want to send request data using Ajax then we have to append portlet name space value to each request parameter then only portlet action class consider those request parameters and we can access request parameter values.   Liferay AUI Ajax Call   AUI().use('aui-base','aui-io-request', function(A){ //aui ajax call to get updated content'<%=updaContentURL%>',{ dataType: 'json', method: 'GET', data: { <portlet:namespace/>employeeName:employeeName, <%=renderResponse.getNamespace()%>employeeId:employeeId }, on: { success: function() { // response data will be received here } } }); });   jQuery Ajax Call   $(document).on('ready',function(){ //jquey aja methos to call server side content $.ajax({ url: '<%=updaContentURL%>', dataType: "json", data:{ <portlet:namespace/>employeeName:employeeName, <%=renderResponse.getNamespace()%>employeeId:employeeId   }, type: "get", success: function(data){ //here response data will come and we need to update in the page. }, beforeSend: function(){ // it will execute before Ajax call start }, complete: function(){ // this method will execute after success method is completed. }, error: function(){ } });   });     Use '<requires-namespaced-parameters>' tag value “false” in liferay-portlet.xml   Instead of adding portlet name space value to each request parameters we can make false value to <requires-namespaced-parameters> in liferay-portlet.xml then portlet action class consider request parameters even it don't have portlet name space.  
The following configuration we need to do in liferay-portlet.xml file   <requires-namespaced-parameters>false</requires-namespaced-parameters>     Finally you can access form inputs or request parameters in portlet action class so that we can get values   ParamUtil.getString(actionRequest, "paramName") ===>Some Value actionRequest.getParameter("paramName") ===> Some Value   ParamUtil.getString(renderRequest, "paramName") ===>Some Value renderRequest.getParameter("paramName") ===> Some Value   ParamUtil.getString(resourceRequest, "paramName") ===>Some Value resourceRequest.getParameter("paramName") ===> Some Value   Author Meera Prince Liferay Top Contributor Award Winner(2013,2014) Meera Prince 2014-11-20T13:26:54Z
Categories: CMS, ECM

Four Common Pitfalls to Avoid in Migrating to Liferay

Liferay - Wed, 11/19/2014 - 17:11

Corporate data is a very fragile and important thing. It’s the kind of thing you don’t want to break, the same way you don’t want to break a favorite vase. Or an airplane. The cleanup tends to be expensive or, at the very least, very troubling.


Fragility is the reason we make lists and rules. It’s the reason pilots go down an exhaustive list of checks and regulations before takeoff. And because data is fragile, and time is important, it’s best to plan on what you absolutely don’t want to forget before you undertake something as big as a portal migration.


Because we care, we’ve made you a list. The following are four pitfalls we see users falling into quite frequently when migrating their company’s data to Liferay.


Pitfall #1: Failing to backup before migration

If you’re in IT and an expert, it’s easy to let hubris be your guide, to rationalize not backing up immediately before migration. You’ve carefully built and tested the migration up to this point and accounted for every possible variable. It ran fine in the test run; why shouldn’t it go smoothly during the actual migration?


The point is that you can’t be one hundred percent sure, and the data that might have accrued in the scant two days since your last backup is valuable. Phil from HR might have a resume from the next Steve Jobs on file. Shannon from accounting might have finally completed that arduous auditing writeup. And Sarah from advertising may have drafted a game-changing jingle in an audio file that will make your company a hit every time it plays on the radio. A jingle that won’t be backed up if something goes wrong.


What if the power goes down mid-transfer? Or you find some cluster of unaccounted-for data has suddenly gone missing? A backup will keep that data intact. And intact data is the best kind of data there is.



Pitfall #2: Not identifying key stakeholders

Although people like surprises, people don’t tend to like change unless it’s broadcast early and often. A major switch to a new portal is some significant change. And allowing key stakeholders--that is, simply, people who care about what’s going on--a part in the process makes all the difference.


When Liferay released 6.2, every department had a key stake in the outcome, so Release Engineering asked key stakeholders to name a representative or two to go to regular release update meetings. In these meetings, everyone brought their unique angle: Docs was concerned with having precise information to create proper documentation, Marketing wanted to ensure its literature matched the product, and Sales was concerned with the timeframe and whether or not they had enough time to prepare sales collateral and demos. Everyone had a vested interest in the development of the product, and everyone had a unique agenda.



Because the project was honest and open with everyone involved, there were no last minute blowouts on release day. Not everyone got their way, but everyone was heard, which made everyone happier.


Pitfall #3: Not allowing for user acceptance testing / signing off without concrete guidelines or standards

You are ultimately migrating for the users. Not for drones or as an exercise. If you don’t keep in contact with your users and ask them for impressions of the finished product as you make it, you are setting yourself up for failure. Or angry users. And angry users, while easily placated with chocolates and roses, are not the kind of users you want.


So in the interest of conserving chocolate and keeping people happy: discern what matters to you and your audience beforehand. Make a list of concrete guidelines about what you care most about and then ask your users how your changes meet or fall short of these guidelines. Tell them to be honest.


Pitfall #4: Not outlining a strategy for content freeze during the migration execution

When you migrate all your data, there will be down time as the data moves. Because machines aren’t perfect. Yet.



So when you make your migration, give users an estimate of how long to expect the downtime. Make the transition over the weekend or at a time you know people won’t be relying on the system as heavily, and make sure certain people are well-informed beforehand. If your website or service goes down unexpectedly, users won’t be happy. Unhappy users have a tendency to scowl. Moreover, they might lose trust in your service. And you can’t have that.


Try to avoid the above pitfalls if possible. Mention them in meetings and by drink dispensaries. Foresight is often appreciated by supervisors, and sometimes accompanied by significant salary increases. You can find out more best practices in the whitepaper “Migrating to Liferay Portal” (which you can download here). If you’ve discovered tips from your migration to Liferay, we’d love to hear them. Please let us know in the comments.


Special thanks to James Min and Ken Dong, who answered several questions over the course of writing this post.

Duke H 2014-11-19T22:11:55Z
Categories: CMS, ECM

2014 Liferay Community Pulse Awards

Liferay - Wed, 11/19/2014 - 17:04

Wow. Just.. WOW. It's Liferay's 10th anniversary, and I've been blessed to be able to be a part of it the last several years, including this year. A big round of applause goes to you and our entire community for your work and achievements this year! It's been an interesting year for us, both in terms of technology and community. If you attended any online or in-person events this year and heard our community leaders talk, you have a head start on witnessing some of the cool stuff we are doing as we transition Liferay to an even more ultra-cool and modern web platform.

And the best part? Not only is it happening in open source, it's becoming even more accessible to you via our community and is right there in front of you waiting for you to dig in and help complete the journey with us! It's really easy to sit back, watch, and consume, but it's much more rewarding personally and professionally when you get involved. One of those rewards is one I strongly believe in, which is recognition amongst peers that you are helping to make a difference. So, to that end I was honored to be able to present this year's 2014 Community Pulse Awards to those organizations and individuals that are helping shape Liferay for the future!

Liferay Pulse Award: Community Contributors of the Year

This award is given to individuals (not employed by Liferay or its partners) that volunteer their time and effort to make Liferay and its community better. This year, extra marks were given for well-rounded participation and contribution in different areas, as well as for value given through venues (e.g. personal blogs,, and others).

In no particular order, I present to you our Liferay Community Contributors of the Year for 2014!

Bijan Vakili (USA)

Bijan is the de facto IRC channel maintainer and longtime community member - setting up a very useful log, and also developed a very cool set of open source Marketplace apps which connect Liferay admins directly to IRC to get questions answered from right inside Liferay!

Dave Nebinger (USA)

If you hang out on our forums at all, you probably know Dave - one of the most prolific contributors to our forums, with an impressive 1700+ posts this year alone and 56 solutions (as voted by those who asked!). He's also a 2-time winner of the quarterly Top Contributor award and is in the chase to become top poster of all time.

Nagul Meera (India)

Nagul is also a heavy contributor to our forums and wiki, with over 600 posts and comes in 3rd place in the answer-to-post ratio, and maintains a great blog on technical tips and tricks for Liferay.

Denis Signoretto (Italy)

Denis had a well-rounded contribution track this year, with contributions across many areas including the forums and wiki, as well as contributing an good amount of bug reports, 25% for which he contribution code solutions!

Krzysztof Gołębiowski (Poland)

Krzysztof is our #2 answer-to-post ratio (308/14) and also contributes around the community, including bug reporting and code contributions, and is active in the Poland user group, and unknowingly contributes in other ways (making sure Liferay supports his name!).

If you see these folks in our community, be sure to congratulate them on a job very well done this year!

Liferay Pulse Award: Community Excellence

Liferay's growth and success over the last several years has be in no small part due to our awesome worldwide network of partners. The Community Excellence Award is given to those in our partner community who demonstrate a unique and valuable dedication to our open source community. Companies here have spent their own time and resources to make our community better, which of course benefits everyone, so we recognize them here and thank them for their dedication to growing Liferay and its community.

EMEA ACA-IT (Belgium)

ACA has been a big supporter of our community this year, sponsoring (and contributing to!) events and has begun to document their Liferay chops in an excellent series of blogs on Liferay and other technologies in which they have expertise. ACA has also contributed 2 very useful apps to the Marketplace, heads up the Belgium User Group, and we value their continued presence in our community!

Arcusys (Finland)

Arcusys is probably best known for their 2 award-winning open source apps on the Marketplace, but also are active on our community forums, blogs, and the Finland user group. Arcusys is a big champion of Liferay throughout Finland's healthy open source ecosystem, recently achieved Platinum status, and their spirit aligns nicely with our open source community.

Componence (Netherlands)

Once again we find Componence on our list, due to their continued support of our Dutch Liferay community - including actively managing the Netherlands user group, sponsoring events (as well as organizing events within events), active contributors to our forums and Liferay Dutch translations and several utility apps on the Marketplace.

SMC (Italy)

SMC founded and continues to lead the Italy User Group, and was one of the first Liferay partners ever, so it is no surprise they are committed to our community. SMC also contributed to our Italian and English forums, and is the organizing sponsor of this year's Italy Symposium which begins today in Rome! They also developed a forums app for iOS/Android for you to participate in our forums, several outstanding Marketplace apps, and contribute to the Liferay Calendar feature and Mobile SDK.

Americas / APAC Cignex Datamatics (USA)

Cignex is a long time contributor and repeat winner of Community Excellence. They have "doubled down" on their community contribution and it shows - several individuals have been recognized as quarterly top contributors and they are heavy participants on our forums, blogs, and sponsor Liferay events worldwide.

Permeance Technologies (Australia)

Permeance continues to be a big open source contributor, authoring a set of 8 really useful apps on the Marketplace (I use the Log Viewer on a daily basis in our cloud infrastructure), and graciously contributing their source code to our community and showing us how to do apps right. They also routinely break Liferay as part of their training and support roles, file bugs, and work with Liferay to fix it so you don't have to!

Rivet Logic (USA)

This is Rivet Logic's first win for Community Excellence - the entire team has stepped up their game this year through road shows, event sponsorship, and they have also authored the most number of apps by a single company across the entire Marketplace - 18 of them - all free and open source. Their track record in our community helps all of you - and helps them as well, which is what community is all about. Hear their story.

Savoir-faire Linux (Canada)

I had some details on Savoir-faire but instead want you to watch this video - it says everything I'd put here. They are awesome contributors and really understand open source and community.


XTIVIA is ever present in our community, and has shown their passion for it through their contributions to our forums and community meetups (both offline and in person), spreading not only their passion but their knowledge of Liferay through these efforts. They lead the Austin, SoCal, and Denver user groups, sponsor events, and have contributed a handful of unique and useful Marketplace apps. Their recognition as Liferay's North America Partner of the Year I hope was in part due to their community excellence, and we look forward to 2015 with the team!

Please join me in congratulating all of these individual contributors and partners. They, along with the rest of our community, are what make my job so rewarding and what I believe makes Liferay stand out above all as an example of open source and community at its best. Great job everyone! I am very happy to see all the enthusiasm and passion for open source and for Liferay, and I look forward to seeing what we can accomplish in 2015 and beyond.


Note: Pulse Awards were also given to "Best" Liferay implementations as well.

James Falkner 2014-11-19T22:04:23Z
Categories: CMS, ECM
Syndicate content