#GRBSitecoreUG : Inaugural Meeting 3/29/2017

4. March 2017 09:55 by Mark Servais in Sitecore  //  Tags:   //   Comments (0)

#GRBSitecoreUG : Inaugural Meeting 3/29/2017

Come join us for the initial meeting of the Green Bay Sitecore User Group. We will network and discuss all things Sitecore!

Rick Bauer, from Perficient, will speak about Sitecore personalization.


111 North Broadway Street
Suite B
Green Bay, WI 54303

Agenda 3/29:

5:30 PM – 6:15 PM–        Food, Refreshments, networking

6:15 PM – 7:30 PM –       Organizer overview – why we are doing this, what we want to accomplish as a group +

                                        Presentation – Let’s Get Personal  (Personalization in Sitecore CXP)

7:30 PM – 8:30 PM –       Audience input and ideas, more networking


About the presentation:

Let's get personal

Following up on a Personalization podcast on @coresampler, let’s take a detailed look at creating personalization in Sitecore CXP. Rick will cover the best practice steps that it takes to realize full personalization and discuss some details that developers can do to drive comfort and success for marketers. He will walk through a live demo of setting up personalization in the Marketing Control Panel and applying it to content plus discuss steps on where to go from there utilizing personalization planning documents.

About Rick Bauer

As Senior Marketing Technologist on Perficient’s Microsoft team, Rick provides insight, training, and a passion for a fully-realized potential of the Sitecore Customer Experience Platform. He utilizes his years of hands-on Sitecore know-how and certification to help deliver clear solutions and actionable results for marketers - both new to the platform, or looking to take it to the next level of maturity. Rick was awarded the Sitecore Digital Strategist MVP award for 2017. Follow on Twitter @Sitecordial.

About your Organizers:

John Rappel

John is a Software Developer at GeekHive, continually striving to exceed client expectations and holding the standard of perfectionism in all ways except for haircuts.

John has worked on over a dozen long term projects in his 3+ years with GeekHive and loves the energy that comes from working on something that will potentially be seen and used by millions of people. We’d be concerned that he’s a megalomaniac if he wasn’t such a great team player. When he’s not working, John is a dad, athlete, and fan of Reese’s Peanut Butter Everything.

Steve VandenBush

Steve is a Software Developer at GeekHive, applying ninja-like troubleshooting, unconventional thinking, and detailed planning to building quality products.

Steve is very active in sharing his knowledge with the greater Sitecore community and brings a naturally mechanical mind to the projects he works on at GeekHive, always ensuring every individual detail works cohesively with the whole. A lover of building and taking things apart in both the physical and digital realms, Steve also works on home improvement projects in his spare time.

Mark Servais

Mark is currently a Principal Web Developer for Velir, a digital agency based outside of Boston. He is a native son of the Green Bay area who currently lives in the southeastern part of the state.

Mark has 20+ years of Microsoft experience coupled with knowledge of development best practices and patterns.  Mark is a certified Sitecore developer and was recognized 4 times by Sitecore as a Most Valuable Professional (MVP) for years 2014 through 2017. In addition to Mark’s work experience, Mark holds 3 academic degrees which most recently includes a Master’s degree in Software Engineering from Carroll University.

Mark’s current passions include Sitecore, semantic web and artificial intelligence tech, home automation and bots, and test centric quality methodologies leading to better software. Mark also listens to an absurd amount and variety of music and has become a vocal disability advocate when necessary.


Sitecore MVP 2017 - 4-peat Recipient

1. February 2017 20:56 by Mark Servais in Sitecore  //  Tags:   //   Comments (0)

I am honored and privileged to be awarded Sitecore's Most Valuable Professional classification for 2017. I've been honored now for the past 4 years to be award this distinguished recognition.

I was one of only 215 Technologists worldwide to be named a Sitecore MVP this year.

Now it its eleventh year, Sitecore’s MVP program recognizes individual technology, digital strategy, commerce, and cloud advocates who share their Sitecore passion and expertise to offer positive customer experiences that drive business results. The Sitecore MVP Award recognizes the most active Sitecore experts from around the world who participate in online and offline communities to share their knowledge with other Sitecore partners and customers.

“The Sitecore MVP awards recognize and honor those who make substantial contributions to our loyal community of partners and customers,” said Pieter Brinkman, Director of Developer and Platform Evangelism, Sitecore. “MVPs consistently set a standard of excellence by delivering technical chops, enthusiasm and a commitment to giving back to the Sitecore community. They truly understand and deliver on the power of the Sitecore Experience Platform to create contextualized brand experiences for their consumers, driving revenue and loyalty for life.”

Sitecore’s experience platform combines web content management, omnichannel digital delivery, customer insight and engagement, and strategic digital marketing tools into a single, unified platform. The platform is incredibly easy to use, capturing every minute interaction—and intention—that customers and prospects have with a brand, both on a website and across other online and offline channels. The end-to-end experience technology works behind the scenes to deliver context marketing to individual customers, so that they engage in relevant brand experiences that earn loyalty and achieve business results.

More information can be found about the MVP Program on the Sitecore MVP site: http://www.sitecore.net/mvp

Sitecore Family Conference - Interested?

21. October 2016 21:06 by Mark Servais in Sitecore  //  Tags:   //   Comments (1)

So back in September I posted an idea about the possibility of holding a family friendly conference. After some initial feedback I want to get a bit more input on overall interest in the event.

I put together a very short survey (https://www.surveymonkey.com/r/YVFCBXK) about the potential event. If you are interested in the event, even just a little interested, please take 5 minutes and fill out the survey so I can get some feedback. Based on the amount of feedback we collect, we'll know if there is interest in going forward to make this event a reality.

Some of the feedback will also be used to determine types of sessions, location, topic areas, and budgeting limits to think about.

Thanks in advance for your time! Looking forward in seeing your answers.

From The Mouth of Sitecore Colleagues

20. September 2016 06:14 by Mark Servais in General Blog, Sitecore  //  Tags: , ,   //   Comments (0)

So last week I had a blast meeting some new folks, seeing some past friends, and deepening relationships with many of you. I had a ton of great stomach bursting laughs and learned a lot from all of you.

One of the many bits of information from last week's Sitecore MVP Summit and Symposium was we get to look forward to this each and every year. SUGCON NA has essentially been replaced with an annual Symposium.

Part of my learning about all of you came with hearing your personal stories, about your travel, about your families, all sorts of stuff.

I anticipated some conversations around user groups, and had some conversations of ideas around an online development conference. Going through those conversations many of your stories stuck with me about family, kids with their tablets and YouTube favorite series, and some of your kids programming. Along with our conversations about Sitecore development, these stories really stuck with me on the way home.

Well, I touched base with Akshay Sura after getting back home. One, to make sure he gave the camera phone a rest, but the other more important reason was to discuss a new Sitecore developer conference idea. Consider the results of the conversation to be what you will read below. Consider this a sort of exploratory effort to gauge interest and ideas.

  • Knowing that most companies will not send you folks to two Sitecore conferences, we wanted to mix the idea of mixing business and pleasure so we are looking at making this conference a family friendly event. Think of it as a vacation with the family, but getting your Sitecore knowledge gain as well.
  • We want to have the typical presentation tracks that we are accustomed to seeing at other conferences.
  • We would like this conference to have sessions geared at teaching aspects of technology (Sitecore related always a plus) to boys and girls of all ages. Gives us all an opportunity to help mentor and teach those coming after us.
  • We want to have attendee run discussions that are open and collaborative. In some past conferences these have been referred to birds of a feather conversation or "unconference" sessions (thanks Derek Dysart!).
  • We want to have attendee run hands on labs in smaller group settings.
  • After session activities that are family focused (game night, etc.) will be required.
  • We want the conference in a location near a major airport, at a family friendly resort/hotel.

There are other Microsoft family focused conferences which is where the final idea settled in for me. But we don't necessarily want to replicate those. After all we are Sitecore community members, we tend not to follow the typical norms.

We do want more feedback on the idea. Once we can gauge what you as the community are interested in, then we can drill down into the information, start getting people involved in the effort, and officially begin the organization of this conference.

You can reply to this blog, or a much better way to leave feedback is to send myself(@mservais) or Akshay(@akshaysura13) a message or tweet on Twitter. We really want to know if you would consider attending such an event and what else you might like to see.

Looking forward to hearing from you all.


Sitecore FYI post

14. August 2016 15:29 by Mark Servais in Sitecore  //  Tags:   //   Comments (0)

Just a really quick note on something I encountered this past week.....

I was working with a LinkField in Sitecore and I needed to retreive the Url. Obviously the Url property on the link field is available but doesn’t populate for internal links. So to determine when to use the field Url or process the internal link I was using the IsInternal property. Well I found out that this property isn’t always accurate. Confirmed by Mike Reynolds, another Sitecore MVP and enthusiast, when the LinkType is null or blank, it defaults to “internal”. This means if you clear out your LinkField, the IsInternal property will return true.


A Sitecore bug has been logged and the public reference number 120621 can be used to track status. More information about public reference numbers can be found here.


For the time being until the fix is put in a future update to Sitecore, check the LinkField TargetID property of IsGlobalNullId to determine if the LinkField is truly referencing a Sitecore item and thus really an internal link.

Knowing the Sitecore content: Opening up Solr's maximum returned results

18. April 2016 06:10 by Mark Servais in Sitecore  //  Tags:   //   Comments (0)

So I got a gentle reminder from a Sitecore project recently that Solr is going to only return 500 maximum results by default per the ContentSearch.SearchMaxResults setting.

As you can guess, I needed more than 500 results to be retrieved from the index.

So it was as easy as modifying the number and I was in a happier place.

But being me, always looking at the periphery, what if I wanted all results for everything. In older versions of Sitecore you were able to place a '0' for a value and receive the whole collection from the index for your search.

Well that was in older versions of Sitecore, so that didn't go. It actually gives me 0 results. Really useful by the way having a search forced to return zero results.

Regardless through a brief Slack chat conversation Mark Cassidy that the new unlimited results value is actually leaving it as an empty string (""). That did seem to bring everything back so great - curiosity extinguished - right?

Yes, but that flame was sparked again with a comment from Richard Seal. "... just a caveat when doing that. That will send int.MaxValue to Solr as the max rows." For those that don't have that memorized - that value would be 2,147,483,647 for an int32 and for an int64 it is 9,223,372,036,854,775,807. Yes I had to look those up a well.

In our case -  int.MaxValue is equivilent to an int32 value. The int64 number was impressive to me so I through it in to both educate and confuse.

Disclaimer: I have not used a decompilation tool to determine the exact interfaces from Sitecore to Solr for this blog, so I do not know how Sitecore addresses things like modification of FETCH-SIZE and etc. with Solr. Those tasks I do when I need to know and for this - I'm on a don't need to know basis.

So I return up to 2 billion records back. That can be a bit taxing.

In my original scenario of increasing the number of SearchMaxResults, I increased it to 15000. Why? Because the feed I was generating from the index had 3,987 (or something like that) pieces of content. Well over the 500.

But then why 15000? Simply for growth of content. New pages, articles, and events will both accumulate and drop out of content. It will take some time for them to hit that ceiling, and when they do - we can change the number.

Going after 2 billion results would still have only surfaced the 3987 pieces of content but it seems a little overhead might be coming for those 3987 records doing it this way.

Being Solr and Lucene are roomates of sort (Solr being built on top of Lucene), it is a bit interesting. As the amount of data increases in the index, I can assume that the algorithm will need an increasing amount of resources to parse records. This is a pretty safe assumption I think. If the algorithm to return resulting sets uses the same algorithm for numeric transformations that the steps should increase as well.

ref Schindler, U, Diepenbroek, M, 2008. Generic XML-based Framework for Metadata Portals. Computers & Geosciences 34 (12), 1947-1955. doi:10.1016/j.cageo.2008.02.023

Quote: Because Apache Lucene is a full-text search engine and not a conventional database, it cannot handle numerical ranges (e.g., field value is inside user defined bounds, even dates are numerical values). We have developed an extension to Apache Lucene that stores the numerical values in a special string-encoded format with variable precision (all numerical values like doubles, longs, floats, and ints are converted to lexicographic sortable string representations and stored with different precisions (for a more detailed description of how the values are stored, see NumericUtils). A range is then divided recursively into multiple intervals for searching: The center of the range is searched only with the lowest possible precision in the trie, while the boundaries are matched more exactly. This reduces the number of terms dramatically.

For the variant that stores long values in 8 different precisions (each reduced by 8 bits) that uses a lowest precision of 1 byte, the index contains only a maximum of 256 distinct values in the lowest precision. Overall, a range could consist of a theoretical maximum of 7*255*2 + 255 = 3825 distinct terms (when there is a term for every distinct value of an 8-byte-number in the index and the range covers almost all of them; a maximum of 255 distinct values is used because it would always be possible to reduce the full 256 values to one term with degraded precision). In practice, we have seen up to 300 terms in most cases (index with 500,000 metadata records and a uniform value distribution).

Lots of words isn't it? I think it is just easier (at least for my math skills) to generate calculations around content and expected returned results. Breaking up indexes potentially by ontologies and related categorizations of relationships will also assist with limited the scope set being returned.

Best said from an old man I once had the pleasure of having conversation with - "Take only what you really need".

2016 Sitecore MVP Awards and onward

18. February 2016 17:39 by Mark Servais in Sitecore  //  Tags: , ,   //   Comments (0)

It's been a wild and weird year.

I am extremely humbled and honored to be one of Sitecore's 2016 Technology MVPs. Get the list of names here.

During the past year, I found some different ways to preach to the goodness of Sitecore through involvement in the Sitecore! Experienced work, posting through a few different blogs, and conversing with Sitecore customers.

I did more with SPEAK than I imagined through working on XCentium's upcoming Vault product, I learned from each of our guests on the podcast, and really focused my personal interests into career development of myself and a few others.

This year the Sitecore site took hold and the Sitecore Community Slack channel was born. Watching both of these flourish this year has been really fun to watch.

Now there are more MVPs than ever before - 221 of us now. Going through the list some regular faces and a lot of newer folks. Group pictures are really going to suck getting everyone in the shot. A drone might be needed this year to take that group photo.

The community is getting better and better.

The weird for me, besides the weird zombie drunk guy in New Orleans trying to spit food on Mark Stiles, Dan Solovay, and myself, was the amount I took on and the speed of burnout that was incorporated. This year was the first time I felt I needed a hiatus from career focused and some personal endeavors. That was a bit tough for me to do, but in hindsight was necessary.

Going forward, changes are a coming for me this year. New directions around career and life are going to be interesting for me.

Sitecore! Experienced ideas are flowing and getting on the board to execute and finish...

Module, big data and whitepaper ideas are making me salivate like a dog hearing a bell..

We as co-creators are sending off the first of our offspring to university - our work to laying adulthood groundwork is complete and I get to enjoy the role of adviser instead of composer

Embracing and exercising my non-logical thinking more which produced a by product of strengthening my logical thinking. A little odd kinda like a politician that thinks for everyone else before themselves. (BTW - that politician thing doesn't exist in the United States. I don't want people to have false hope about money and politics.)

So here is to Sitecore's 2016 season that will bring the future MVPs of 2017...let's tear into this with a little more swagger in our step, shall we?


Things to know about Sitecore SPEAK

11. February 2016 19:00 by Mark Servais in Sitecore  //  Tags: , ,   //   Comments (0)

I just wrapped up a presentation (admittedly clearly not my best) for the Milwaukee Sitecore User Group where I gave an very brief overview of SPEAK and I did a little Betty Crocker baking of an existing Sitecore Marketplace module from Sheer UI to SPEAK.

The prezi is here. The MKE SUG presentation video is here. Finally the summary video I did as a backup is here.

A small Sitecore! Experienced video is here - our first Tangible Knowledge series piece. These are open forum so if you got something uniquely Sitecore to share see us on the Sitecore! Experienced site.

SPEAK has some portions that give it some heat. Let's review some of these nuggets:

Config files:

Sitecore.Speak.config -> Contains a series of SPEAK settings around requireJS files, caching, script minificaton, etc. Play with this file at your own risk. Big takeaway in this file is the addition for pre compilation of SPEAK views and the custom SPEAK handler which is critical for component rendering.

001.Sitecore.Speak.Important.config - Important enough to be at the head of the list. All the client piplelines are defined here for the client processing -clicks, layout rendering, scripts and stylesheets, and bindings.

Sitecore.Speak.ItemWebApi.config -> Pipelines. The word you're going to here for a bit more. So this ties in the pipelines related to item search for SPEAK. Item requests, searchs, and property retrieval are defined here.

Sitecore.Speak.Applications.config -> Some settings and pipelines that deal with dialog presentation overrides , the media browser dialog (XML control override), and logout functionality around SPEAK.

Sitecore.Speak.Components.config -> Some of those things, you know - pipelines. Rules, controls, styling are defined here.

Sitecore.Speak.Mvc.config -> MVC routing prefix is established here with command route and content rendering pipelines.

Sitecore.Speak.LaunchPad.config -> No pipelines! Instead a processor to work with SPEAK log in functions and a setting to enable personalized frames with Analytics.

Sitecore.Speak.AntiCsrf,SheerUI.config - Looks to be a rules filtering limitation - but don't quote me on that one.

Sitecore.ExperienceEditor.Speak.Requests.config & Sitecore.ExperienceExplorer.Speak.Requests.config - processes related to content author activities to verify that actions on the client can take place, retrieve specific information and perform specific processing actions. Looks like a lot of tool setup.

So knowing where things are defined for life in Sitecore will come in handy when having issues with very customized and complex controls.

In keeping with the theme of pipelines, we just don't have them for the code-behind. In your Sitecore instance file structure, go to website/sitecore/shell/client/Speak/Assets/lib/core/<pick your version here, we are looking at 2.0>. The sitecore.js file begins the journey of functions that are the girders and bolts for the SPEAK framework. You can read this at your leisure. 

Ok you really don't need to spend leisure time reading this, read Moby Dick, White Fang, Grapes of Wrath, or a great piece of literature.

Do however take a little bit of non-leisure time to review this script as it will give you some insights on the client side composition of SPEAK and where frameworks like jQuery, Knockout.js, and Backbone.js come into play and also where their wings may have been clipped/enhanced for SPEAK.

You likely will never want to make changes here, but always good to know what is going on where.

This URL -> https://doc.sitecore.net/speak = your friend when working with SPEAK. You are going to make a lot of other friends too. Several Sitecore employees, Sitecore MVPs, and dedicated developers have written blogs on some trials and successes with their speak efforts.

The most difficult part about working with SPEAK has been knowing what each of the components can and can't do. Even with the improvements in documentation, you are going to have needs and wants to push the provided components further than they were designed to go. You may even find the need to have to create something brand new (I encourage you to do so frequently).

There are a few good tutorials on how to get started with SPEAK and I will not reiterate that information here. I will though share with you some honest advice around my using SPEAK for XCentium's Vault product and other little tidbits I have worked on.

1. Don't screw with the main layouts. Yes that is a technical term that I made tamer than the original word. Sitecore has put these in place for a consistent feel for all customers. I haven't seen too many hard and fast UI best practices for consistency from the controls provided, but the dashboard pages and dialogs have a definitive sandbox to do you thing in. Play in the sandbox as much as possible.

2. The learning curve is certainly inclined. Even if you have a solid understanding of the stack behinds SPEAK (I consider myself mediocre here), there are things that you can, can't, should, and shouldn't do. Trial and error around building stuff is the best teacher here.

3. The premise of SPEAK is built on concepts you should know as a Sitecore developer. Placeholders, templates, renderings, etc. It's just a different composition toolbox and space.

4. Sitecore Rocks is another friend of yours. In fact you really can't do SPEAK without it. I did though have to go into the Content Editor within the Core database to verify some checkboxes. They didn't set very clean for me in Rocks.

5. Estimation is futile at first. That incline I mentioned before, it humbles you. Starting out, especially if building custom SPEAK components, you are going to mis-judge the time it will take you to accomplish tasks. If you are a consultant, and promising custom SPEAK based functionality, you may want to decide on some what-if overage scenarios. At minimum, give yourself plenty of runway to complete what needs to be done. If possible start with smaller tasks to begin to get a structural feel around the environment.

6. Understand the concepts behind backbone and knockout. While you will not want to rely on them entirely in case the stack changes later, you most likely will want to leverage the architecture the best you are able to keep your components and overall flow clean.

7. Listeners are king.

8. Rules help with component to component interaction. If that fails, utilize your page code capabilities to facilitate that communication. 

9. Keep your code generalizations in nuggets for re-use but expect that each "page" entity in SPEAK will require its own unique capabilities.

10. Provide as much feedback as possible. Sitecore has invested time and energy into this as a future piece of the puzzle. The more voices they here about issues, improvement ideas, etc., the better it is for the entire community. The real good part - they are listening.

11. Your browser development tools are another really close friend you will make. Learn them well.

I hope you found some wisdom in my words. Good luck with your adventures and share what you are doing.

Here are some of the best places for SPEAK information as of now:

Sitecore Support, the Sitecore community (community.sitecore.net, the Sitecore slack channel (#sitecore-speak), Twitter, etc.), your local Sitecore User Groups - talk to other Sitecore folks to see what they are doing.

Sitecore 8.1 - /sitecore/client/Business Component Library/version 2/Content/Guidance/Dashboard

Sitecore.Net Documentation - http://bit.ly/1JnuXrQ

Julia Gavrilova - http://bit.ly/1OCTWTY

Jakob Christensen – http://bit.ly/1mYrDtdhttp://bit.ly/1P9E4ZO

Martina Welander - http://bit.ly/1P9E7Vk

Anders Laub - http://bit.ly/22FHspb

Göran  Halvarsson - http://bit.ly/1MOmPLE

Vikram Rathore - http://bit.ly/1JnvqtQ

Martin English - http://bit.ly/1WgKD1e

Mike Robbins - http://bit.ly/1Tfas3I

My stuff - https://vimeo.com/sitecoreexperienced/sitecoreexperienced9   http://www.markservais.com/post/2015/08/24/xcentium-speaking-aloud-changing-css           https://prezi.com/firrr2kjvpcu/speak-converting-a-module/

You can always practice your Google Foo -> "Sitecore SPEAK".

The end of a series - Episode 9 of Sitecore! Experienced

20. October 2015 21:06 by Mark Servais in Sitecore  //  Tags: , , ,   //   Comments (0)


It's done. We did something that we weren't sure had much merit, how much work it was really going to be, nor did we think we originally were going to do more than 3 episodes.

Jamie and I took on these nine episodes and had a lot of fun doing it. Sure there were many nights staying up till 2-3 AM to shoot interviews, marathon video editing sessions, and countless challenges along the way, but it was something that two people in the Sitecore community were able to put together and move forward.

This was very garage punk band stuff for me. The sessions were pretty raw from a humor standpoint. Most material cut from the final versions of their episodes will never see the light of day. The guests were amazing. For many guests it felt like we knew  then from childhood making the process so much more enriching than I could have ever imagined.

But like everything in life, you can only ride the wave for as long as it lasts, and we felt like this wave crested and came to shore. It is time for both of us to determine what is next for Sitecore! Experienced. We know this much, it won't be a podcast.

We wanted to go on to other projects and endeavors within and outside of the Sitecore community.

Jamie and myself had developed this friendship from merely working together within the same team. We took that friendship and  this collaboration to allow others to share what they do in the Sitecore community, while we selfishly got to hang out, tell bad jokes, catch up on family news, and have some fun and laughs along the way.

While we will still be doing some things together in the future (and we really don't know what that will be yet) I would like to encourage the community, which we think is one of the better software development communities out there, to continue to extend, share, and find ways to share by working together.

The benefits of doing so have now been repeated a few times in the community since our episode #1 alone.

So thank you for all your support and your viewership.

You can find me soon on the next wave! I don't sit still for very long.


(XCentium) SPEAKing Aloud: Changing CSS

24. August 2015 22:01 by Mark Servais in Sitecore, ForEmployers  //  Tags:   //   Comments (0)

Blog post I did for XCentium:




I’ve been spending a lot of my time working with SPEAK over the past few months. Overall I’m happy where things are heading with our work with SPEAK in XCentium’s Research and Development. I’ve been meaning to put some thoughts together for a while so I’m going to put together a small series of SPEAK findings as I am cooking things up in the lab.



<<  November 2020  >>

View posts in large calendar

Month List