Friday, October 24, 2014

Sitecore Symposium Recap slideware

Yesterday's Sitecore User Group presentation was a success. It was hard to get everything crammed into one presentation but I pulled it off in the end.
It is a hard task to get the correct feeling and bring it across correctly but I gave it my best shot

Download the information and slideware here:
http://files.meetup.com/14353282/Sitecore%20symposium%202014-SUG-BELUX.pptx



If you have any more questions or want me to give more detailed information feel free to contact me directly.

Kind regards.

Tuesday, October 21, 2014

High Sitecore memory consumption

Case

We experienced a problem last week on a number of servers that steadily kept on using up memory.
After inspection it turned out that each and every page request was creating up-to 7 new caches for BlobId's. Since we saw the following in our logs:



As you can see, each of these caches took up 500KB and in our case (since 7 caches were created) this resulted in a 3,5MB of consumed memory on the server for each page request.
Furthermore, it turned out that these caches were not accessed or used at all but only kept on consuming valuable memory.

Find the problem and solution below so you never make the same mistake and don't have to embark on a wild goose-hunt to solve this one.

Okay, how did we fix this and what was causing it !?

First off, our sincerest thanks to the intervention of Sitecore support which helped us pinpoint the problem directly and made for a quick resolve.

Sitecore informed us that the creation of these cache entries is done when a new instance of a Sitecore Database object is created instead of using the Factory that helps provide these.

In other words:         new Database("web"); 

The reason that we had the problem appear so heavily is that the following code:
LanguageCollection configuredLanguages = LanguageManager.GetLanguages(new Database("web"));
 was used in a utility method for handling language information... and of course this method was called a number of times.


Where we should be using any of the below:  
var database = Sitecore.Data.Database.GetDatabase("web");
var database = Sitecore.Configuration.Factory.GetDatabase("web")

Or in the case where you just need the current context database:
var database = Sitecore.Context.Database;

Cool, any pitfalls though ?

Obviously no pitfalls exist here. The only important thing that has to be done is make sure NONE of your projects/code bases are still using the red-highlighted code above.

Tuesday, October 14, 2014

Preparing for the SUG-BELUX next meeting - hard at work

That's right,

I'm working on the last preparations for the presentation on the next SUG-BELUX event hosted in Ghent.
http://www.meetup.com/Sitecore-User-Group-Belgium/events/197698722/

The following are the two sessions that will be presented at this meetup:

Session 1 : Sitecore Symposium Highlights - Kris Verheire
Session 2 : How-to (e-)CRM - Johan Becue

Afterwards there will be plenty of time to mingle and do some of your best networking.

Hope to see sou all there on October 23 in Ghent !



Tuesday, October 7, 2014

Sitecore Symposium 2014 - Recap of Session Day 2


The Sitecore Symposium Party in the Maritime museum of Barcelona, combined with some recaps and brainstorms on the sessions of the first day after a few drinks, made us enter the second session-filled Symposium day with too little sleep.
The same seemed true for the bulk of the audience that trickled into the various interesting sessions this second day had to offer.

This second day had to become a mix for me where I could follow up on the sessions as well as getting through 8 more Partner booths to make sure I captured all information and contacts that were available there too.

Since I want to cover the Partner information in seperate posts, I'll skip this and might have some holes in my timeline and continuity.

Let's do this:

Product track - Developers aren't marketers, but can we coexist

 

A good track to open with since it helps spot one of the tricky parts of developing a full-fledged CXP implemented website presented by Mike Edwards and Mike Shaw.

Since personas and profiles are created and conceived of by marketers, a number of assumptions are being made onf how these should best be constructed.
With the information your website is capturing through the xDB, all the information required to view existing profile information and compare it against each other is available.



This implies that you can also determine which users are currently not being profiled into specific personas and profile types.
The tool that was presented in this session gave a good insight into what the future of marketers and developers in terms of maximizing the amount of captured information and behavior combined with constantly streamlining your visitor identification efforts in order to make your site more responsive by serving the most relevant information. 

Simply because your website has a good coverage of all the type of visitors that are approaching it.

More really interesting information can be found here:

Developer track - Sitecore new reporting services and custom aggregations


This session by David Morrison provided some welcome insight on how the xDB information gathering and segmentation engine actually works. I actually showed up a little late for this session but I'll give a quick rundown.

In short, David showed how the different aspects of information are stored inside the xDB as facets of data. Most interestingly, data stored in the xDB is stored in a cumulative manner.

To clarify: when you have a facet for the gender (Male, Female) data stored in the xDB is stored as flat data with regards to the individual records that are added for each action (page-visit / click / campaign / realized goal / ...) as well as an cumulation for the facet values. Which actually means that if 15 visitors (8 males / 7 females) made it to the website you will find 15 flat records for the visits and a value of 8 of the male value of the gender facet and 7 for the female value of the gender facet.

In other terms, requesting the xDB what the amount of visits (for example) were female or male does not result in an actual query that has to go over the stored visits but can simply revert to the accumulated data stored as facet information on the xDB.

But what happens when a certain facet/variant needs to be added afterwards ?
Apparently, the xDB has an extra setting in the connectionstrings that allows for a 'primary' and 'secondary' analytics configuration. 
Whereas the primary is being used to serve information to the website, the secondary website can be used to rebuild the 'indexes/facet information' based on the collected data inside the xDB.
This approach allows for quite some flexibility without impacting the live website behavior.

To sum up, the architecture behind the xDB platform looks really nice and, like everything in Sitecore, allows for enough flexibility to create these custom aggregations, tables, report services, dashboards, mobile reports and so on.

Guest Keynote - Dietmar Dahmen, Creative Consultant - Do it Now


Wow... That kind of sums it up for me :)



If you were there, like me, you would now be stating a large number of buzz words, re-usable quotes and so on. Because it all made sense, even though there was a thin line with how scary this all might be becomming...

I know Dietmar Dahmen @MrDahmen has been giving this presentation with a number of variations in a large number of locations and inspiration seminars, but it was still very impressive. Presentation, Visualization, Inspiration, a professional and veteran presentor in my honest opinion.

He showed us on how we should not perceive of things too much in their current state, either as a brand or products but try to see them as what they could be. Through examples of how brands are unable to make the transfer across channels, products and technologies (Sony, Samsung, Nokia, Apple) and so on we were requested to think outside of the box and find the bigger picture. Or if there was no bigger picture, to paint it ourselves and move forward.


We need to start thinking about what is possible, how can we change, rather than asking ourselves why we should change. Ask yourself why we shouldn't change.



My favorite Dietmar quote (or quoted quote) : "Be less like a book, be more like a letter.", since this actually matches what we at The Reference are doing, we don't want to approach the customer with a general story but  go personal and rather do the effort of getting to know you personally and build a true relationship rather than being generalistic. We want to get under your skin, and become a part of you that understand you and can reason with you on an individual/personal level. Understanding is key, most (if not all) the rest is collateral. Apparently, these inspiration sessions are infectious... :)

More on Dietmar Dahmen here: 

Developer track - Creating dynamic brochures with Sitecore Print Experience Manager


After being all juiced up by dinner and an impressive guest keynote we were all ready for more.
This hands on session by Julia Gavrilova @julia812 in the developer track was something I had been looking forward to for quite some time.
The Adaptive Print Studio has been with Sitecore for a while now and we have played around with it and did an implementation but found it to be poorly supported, horribly documented and not transparent at all. In short, a lot of headaches for our developers, the project manager struggling to keep everything aligned and a worried customer. In the end we made it through, albeit unsatified.

So I was looking forward to the input Gavrilova could give us on the evolution of this product.
My first reaction was dissapointment because, and so please stick with me, what was displayed here featured more of an actual Case presentation. But then the vivid presentation by Gavrilova told a story I could relate to.

JD Little guest blog

When performing the implementation for the print integration on the weil.com site she was driven to the point of giving up, when at long last she found the information she needed by contacting Sitecore. Sitecore noticed the need for more information and clarity on the APS implementation and has since then put more effort in documenting, supporting and even providing code in the Jetstream demo website that should help along future implementations of what is now called the PXM (print experience manager - more in next topic)

Furthermore, a number of tools and head-ups were described for debugging efforts:
- Use the XML viewer that should give you a good insight in how your data is sent to InDesign
- Don't use inpage CSS, or make sure the mapping towards InDesign servers is done correctly.

It was good to hear that it was not only us who struggled on the implementation of this product, and that Sitecore has understood the need for more information and support.

More information here:


Product track - Beyond print: Delivering rich experiences


As a perfect continuation on the previous session, it was time to find out what the Print Experience Manager was evolving into and what the roadmap on this product is. Time for Mark Demeny @mde_sitecore and Hylke Heidstra to enlighten us further.

Even though the room was only moderately filled, I found this session to be one of the 'need-to-go-to' sessions since it fits perfectly into what Sitecore wants to do with its customers, and that is to go full-cirlce. Offline print media fed by online date holds the very key to success in my opinion.



Displayed above is the main concept, again a part of Sitecore that is handled through the connectors approach.

It was good to see that the product is still evolving and that they are looking into clearer and easier ways to adopt PXM into Sitecore.



One of the extra possibilities is to have an online document generator that lets you create tailored printable of digital catalogues depending on the customers intrest. For example, you can converse with the prospect and list the informtion he/she needs and have it printed directly at your reception desk for when the prospect leaves. But this time he/she will leave with the relevant information in hand.

Furthermore, the option to creation this ISSUU like "flip-able" catalogue of document in your website through use of the Rendition builder seems like quite a nice treat as well, since you can make sure the latest prices are displayed and have Javascript nested inside the flipbook that gets the correct information where needed, which to my eyes is quite innovative.

I'm looking into finding the Cookbook-format mentioned during the symposium and will update as soon as I found it.

More info:
APS Cases info
coming soon...

Developer track - Sitecore X-Developer class 101 - Upgrade your superpowers to match the next generation Sitecore Experience Platform


Quite the mouthfull as a topic name, this session presented by Alex Shyba @alexshyba showed us how we van use the xDB to be creative, innovative and scale applications with regards to functionalities.

What if your product analyst or direct chief asked for a pretty pie-chart like report that provided a good insight into the website usage and any other derived information ?

The REST API of the xDB was used to pass Json to the client which worked together with dc.js that helped render the charts on the report page/overview. This example was shown to indicate how easy it was to leverage and build experience analytics fed applications.
Further down the track, the session covered the code and effort needed to provide a clear drilldown into page visits and clickthrough by using the Path Analyzer that gave detailed page visits information as well as showing how engaged a visitor is during their journey.

Path analyzer, worst picture ever, sorry...
As a finisher, Alex showed u the possibilities of mixing input into the xDB. Through an application he conjured up, visitors of the session were able to log into this application with their LinkedIn profile (after granting access obviously) which then looked at the skills you have defined on your LinkedIn profile. These skills were then fed into the xDB and approached as a facet for the application to work on.

The result was a diagram with yourself in the center and lines stretching out to every connected user. How thin or fat the lines connecting you are was based on the amount of shared skills. All of this being fed from the REST Api of the xDB site. Quite impressive and nicely visuallized.


And on that bombshell.... oh wait, we have the Closing keynote to sum things up for us !

Closing keynote introduced by Sitecore CMO James Smith


To sum up everything, a brief closing keynote was given which served more as a teaser for next year's products that are to be released, the Sitecore roadmap and an open invitation into next year's Symposium.


After a good round of thank you for attending and the confirmation that there will be a symposium next year as well we moved along the topic of what is to come:


Which shows that more effort will be made in merging the online and offline world with regards to media, crm information, commerce approach and merchandising.


Finanlly the roadmap displaying what is to come... apparently we can expect Sitecore 9 to hit the 'shelves' in 2016, eventhough i'm guessing that this will more likely be a Q4 release then a Q1 ;)

Conclusion


Sitecore is very active, a lot of the things we see are only the tip of the iceberg. And there are a lot of elements at work behind the screen while the Sitecore architects are hard at work to enrich Sitecore with all the tools needed to make Sitecore into your Business Backbone. This backbone will help to store and unify all online and (optionally) offline data into one stronghold platform that allows for content editors, marketeers, product managers and business users alike to manage their aspect of your brands online presence.

The symposium came with a few very big wow moments, FXM, Path Analyzer, Revamp on SC8, xDB explained and so on, but luckily touched on a number of more fundamental and architectural decisions and future roadmaps as well.

Sitecore is heading in the right direction and I feel confident that we should all go there as well.